HuffPost API endpoint
Returns a HuffPost author or contributor profile by `url`, a canonical `https://www.huffpost.com/author/<slug>` link. The response has the name, recent articles, and, when the profile shows them, `job_title`, `image_url`, `biography` and `social_links` (platform and URL). Outside contributors often lack most of these optional fields.
/huffpost/authorQuery parameters:
url (required): a canonical https://www.huffpost.com/author/<slug> URL.HuffPost mixes staff writers and outside contributors on the same profile template, and the two do not carry the same fields: a staff writer typically has a job title, headshot, and social links, while a "Contributor"-badged outside writer may have none of those (the badge text itself is returned as job_title when no dedicated job-title element is present). job_title, image_url, biography, and social_links are therefore all optional and simply absent when the profile doesn't show them.
Example response (truncated):
{"code":200,"data":{"url":"https://www.huffpost.com/author/lee-moran","name":"Lee Moran","job_title":"European correspondent, HuffPost","image_url":"https://img.huffingtonpost.com/asset/example.jpg","biography":["Lee Moran is a half-Spanish, half-English journalist..."],"social_links":[{"platform":"facebook","url":"https://www.facebook.com/leemoranjournalist"},{"platform":"x","url":"https://www.x.com/lee_moran"}],"articles":[{"title":"Example story by this author","url":"https://www.huffpost.com/entry/example-story_n_1234567890abcdef12345678"}]}}
| Field | Filled in, of 10 checked | Values in the sample |
|---|---|---|
| title | 10 | median 80 characters |
| url | 10 | huffpost.com |
| image_url | 10 | img.huffingtonpost.com |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| url | string | Yes | Canonical huffpost.com/author/<slug> URL | https://www.huffpost.com/author/lee-moran | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/huffpost/author?url=https%3A%2F%2Fwww.huffpost.com%2Fauthor%2Flee-moran" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"data": {
"url": "https://www.huffpost.com/author/lee-moran",
"name": "Lee Moran",
"job_title": "European correspondent, HuffPost",
"image_url": "https://img.huffingtonpost.com/asset/example.jpg",
"biography": [
"Lee Moran is a half-Spanish, half-English journalist..."
],
"social_links": [
{
"platform": "facebook",
"url": "https://www.facebook.com/leemoranjournalist"
},
{
"platform": "x",
"url": "https://www.x.com/lee_moran"
}
],
"articles": [
{
"title": "Example story by this author",
"url": "https://www.huffpost.com/entry/example-story_n_1234567890abcdef12345678"
}
]
}
}Request schema
No body schema
Response schema
#/definitions/publicnews.huffPostAuthorResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| data | huffpost.AuthorResponse | No | ||||
| data.articles | array | No | ||||
| data.articles[].author | string | 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[].type | string | No | ||||
| data.articles[].url | string | No | ||||
| data.biography | array | No | ||||
| data.image_url | string | No | ||||
| data.job_title | string | No | ||||
| data.name | string | No | ||||
| data.social_links | array | No | ||||
| data.social_links[].platform | string | No | ||||
| data.social_links[].url | string | No | ||||
| data.url | string | No |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 404 | Not Found | #/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/huffpost/author?url=https%3A%2F%2Fwww.huffpost.com%2Fauthor%2Flee-moran" \
-H "x-api-key: $CRAWLORA_API_KEY"