NPR API endpoint
Returns an NPR author profile from a required `url` in the form `https://www.npr.org/people/<id>/<slug>`. The response has `name`, `job_title`, `bio` and the recent stories listed under Stories By, each with title, URL, summary, publication date and a lead image where the card has one. Other hosts or paths return a bad-request error.
/npr/authorQuery parameter: required url, a canonical NPR staff/author profile URL, https://www.npr.org/people/<id>/<slug>. Any other host or path is rejected with a bad-request error before any upstream request.
Returns the author's public profile, read from the page's own bio module plus the same page's "Stories By" article list: name, job title, bio, and recent articles (title, URL, summary, publication date, and lead image where the story card has one).
| Field | Filled in, of 24 checked | Values in the sample |
|---|---|---|
| title | 24 | |
| url | 24 | npr.org |
| summary | 24 | median 192 characters |
| published_at | 24 | 2026-06-01 to 2026-10-10 |
| image_url | 22 | npr.brightspotcdn.com |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| url | string | Yes | Canonical www.npr.org author URL | https://www.npr.org/people/14562108/bill-chappell | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/npr/author?url=https%3A%2F%2Fwww.npr.org%2Fpeople%2F14562108%2Fbill-chappell" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"url": "https://www.npr.org/people/14562108/bill-chappell",
"name": "Bill Chappell",
"job_title": "Reporter, Producer",
"bio": "Bill Chappell is a correspondent and editor, and a leader on NPR's flagship digital news team.",
"articles": [
{
"title": "Example headline",
"url": "https://www.npr.org/2026/09/21/nx-s1-5973179/example",
"published_at": "2026-09-21"
}
]
}
}Request schema
No body schema
Response schema
#/definitions/npr.authorResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | npr.AuthorResponse | No | ||||
| data.articles | array | No | ||||
| data.articles[].image_url | string | No | ||||
| data.articles[].published_at | string | No | ||||
| data.articles[].summary | string | No | ||||
| data.articles[].title | string | No | ||||
| data.articles[].url | string | No | ||||
| data.bio | string | No | ||||
| data.job_title | string | No | ||||
| data.name | string | No | ||||
| data.url | string | No | ||||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 404 | Not Found | #/definitions/app.Response |
| 429 | Too Many Requests | #/definitions/app.Response |
| 503 | Service Unavailable | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/npr/author?url=https%3A%2F%2Fwww.npr.org%2Fpeople%2F14562108%2Fbill-chappell" \
-H "x-api-key: $CRAWLORA_API_KEY"