Washington Post API endpoint
Returns one Washington Post staff author's public profile: byline metadata, bio, contact/social links, and one page of their recent articles.
/wapo/authorQuery parameters:
slug (optional): a Washington Post people slug, e.g. adam-taylor.url (optional): a canonical https://www.washingtonpost.com/people/<slug>/ URL, as an alternative to slug. A URL that itself carries a ?page= query sets the page from that query.page (optional): 1-based page number of the author's article list; overrides any page number embedded in url. Defaults to 1.Exactly one of slug/url is required. total_count and total_pages (20 articles per page) describe the author's full public byline history on washingtonpost.com; requesting a page past total_pages returns 404. bio prefers the author's long-form biography and falls back to their short byline blurb when no long biography is published. email, twitter_url, facebook_url, and linkedin_url reflect whatever contact links the author's page actually publishes -- unlisted fields are simply absent, not an error.
Example response (truncated):
{"code":200,"data":{"name":"Adam Taylor","slug":"adam-taylor","url":"https://www.washingtonpost.com/people/adam-taylor/","author_type":"Staff writer","role":"Reporter","location":"Washington, D.C.","expertise":"National Security reporter with a focus on the State Department","bio":"Adam Taylor writes about national security and foreign policy for The Washington Post.","email":"[email protected]","twitter_url":"https://twitter.com/mradamtaylor","image_url":"https://author-service-images-prod-us-east-1.publishing.aws.arc.pub/washpost/5ca9816b-ff47-49a9-a99d-778fc202b6fe.png","page":1,"total_pages":15,"total_count":283,"articles":[{"title":"Trump pledges to open new Arctic military bases as he signs Greenland deal","url":"https://www.washingtonpost.com/national-security/2026/09/22/trump-pledges-open-new-arctic-military-bases-he-signs-greenland-deal/","section":"National Security","published_at":"2026-09-22T17:18:23.392Z"}]},"msg":"OK"}
| Field | Filled in, of 20 checked | Values in the sample |
|---|---|---|
| title | 20 | |
| url | 20 | washingtonpost.com |
| description | 20 | median 159 characters |
| section | 20 | |
| published_at | 20 | 2026-07-07 to 2026-10-13 |
| image_url | 20 | cloudfront-us-east-1.images.arcpublishing.com |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| slug | string | No | Washington Post people slug, e.g. adam-taylor | adam-taylor | |
| url | string | No | Canonical washingtonpost.com/people/<slug>/ URL, optionally with a ?page= query; alternative to slug | https://www.washingtonpost.com/people/adam-taylor/?page=2 | |
| page | integer | No | 1-based page number; overrides any page number in url | ||
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/wapo/author?page=1" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"data": {
"name": "Adam Taylor",
"slug": "adam-taylor",
"url": "https://www.washingtonpost.com/people/adam-taylor/",
"author_type": "Staff writer",
"role": "Reporter",
"location": "Washington, D.C.",
"expertise": "National Security reporter with a focus on the State Department",
"bio": "Adam Taylor writes about national security and foreign policy for The Washington Post.",
"email": "[email protected]",
"twitter_url": "https://twitter.com/mradamtaylor",
"image_url": "https://author-service-images-prod-us-east-1.publishing.aws.arc.pub/washpost/5ca9816b-ff47-49a9-a99d-778fc202b6fe.png",
"page": 1,
"total_pages": 15,
"total_count": 283,
"articles": [
{
"title": "Trump pledges to open new Arctic military bases as he signs Greenland deal",
"url": "https://www.washingtonpost.com/national-security/2026/09/22/trump-pledges-open-new-arctic-military-bases-he-signs-greenland-deal/",
"section": "National Security",
"published_at": "2026-09-22T17:18:23.392Z"
}
]
},
"msg": "OK"
}Request schema
No body schema
Response schema
#/definitions/wapo.authorResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | wapo.AuthorResponse | No | ||||
| data.articles | array | No | ||||
| data.articles[].description | string | No | ||||
| data.articles[].image_url | string | No | ||||
| data.articles[].published_at | string | No | ||||
| data.articles[].section | string | No | ||||
| data.articles[].title | string | No | ||||
| data.articles[].url | string | No | ||||
| data.author_type | string | No | ||||
| data.bio | string | No | ||||
| data.email | string | No | ||||
| data.expertise | string | No | ||||
| data.facebook_url | string | No | ||||
| data.image_url | string | No | ||||
| data.linkedin_url | string | No | ||||
| data.location | string | No | ||||
| data.name | string | No | ||||
| data.page | integer | No | ||||
| data.role | string | No | ||||
| data.slug | string | No | ||||
| data.total_count | integer | No | ||||
| data.total_pages | integer | No | ||||
| data.twitter_url | 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/wapo/author?page=1" \
-H "x-api-key: $CRAWLORA_API_KEY"