CBC News API endpoint
Returns a CBC journalist's profile, identified by `slug` (ending in CBC's author id, such as `darren-major-1.4462710`) or a `https://www.cbc.ca/author/<slug>` `url`; exactly one is required and an unknown author returns 404. The response has name, title, biography, photo, profile links and usually 10 latest articles, with `has_more_articles` showing whether older ones exist.
/cbc/authorReturns one CBC journalist's public profile: name, job title, biography, photo, the profile links CBC shows (personal sites, social profiles), and their most recent articles.
Query parameters:
slug (optional): a CBC author slug, which ends in CBC's author id, e.g. darren-major-1.4462710. Bylines in cbc-article responses do not include the slug; take it from a CBC author page URL.url (optional): a https://www.cbc.ca/author/<slug> URL, as an alternative to slug. Regional variants such as https://www.cbc.ca/news/canada/manitoba/author/<slug> are accepted too.articles is CBC's "Latest from" list for that author, newest first, usually 10 items. Each item has a title, URL, CBC content type (usually story), summary, section labels, publish and update times, and image. has_more_articles is true when CBC says the author has older articles beyond this list. The profile page does not expose those older articles, so this endpoint has no page parameter. A few items can point to CBC pages outside News and Sports (for example CBC Radio), which cbc-article does not accept.
Example response (truncated):
{"code":200,"data":{"name":"Darren Major","slug":"darren-major-1.4462710","url":"https://www.cbc.ca/author/darren-major-1.4462710","title":"Senior writer","biography":"Darren Major is a senior writer for CBC's parliamentary bureau in Ottawa.","image_url":"https://i.cbc.ca/ais/55f2e5ae-50ee-4f59-8a17-bc32fee05e29,1764871951641/full/max/0/default.jpg","has_more_articles":true,"articles":[{"title":"Will Eby's early election gamble pay off or backfire in B.C.? Here's what history tells us","url":"https://www.cbc.ca/news/politics/does-calling-an-early-election-work-9.7355667","type":"story","summary":"On the whole, premiers and prime ministers have benefited from similar gambles in the past.","sections":["News","Politics"],"published_at":"2026-09-24T08:00:00Z","updated_at":"2026-09-24T08:00:00Z"}]}}
| Field | Filled in, of 10 checked | Values in the sample |
|---|---|---|
| title | 10 | median 87 characters |
| url | 10 | cbc.ca |
| type | 10 | |
| summary | 10 | median 186 characters |
| sections | 10 | median 2 entries |
| published_at | 10 | 2026-09-15 to 2026-10-10 |
| updated_at | 10 | 2026-09-16 to 2026-10-10 |
| image_url | 10 | i.cbc.ca |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| slug | string | No | Author slug, e.g. darren-major-1.4462710 | darren-major-1.4462710 | |
| url | string | No | Canonical https://www.cbc.ca/author/<slug> URL; alternative to slug | https://www.cbc.ca/author/darren-major-1.4462710 | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/cbc/author" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"data": {
"name": "Darren Major",
"slug": "darren-major-1.4462710",
"url": "https://www.cbc.ca/author/darren-major-1.4462710",
"title": "Senior writer",
"biography": "Darren Major is a senior writer for CBC's parliamentary bureau in Ottawa.",
"image_url": "https://i.cbc.ca/ais/55f2e5ae-50ee-4f59-8a17-bc32fee05e29,1764871951641/full/max/0/default.jpg",
"has_more_articles": true,
"articles": [
{
"title": "Will Eby's early election gamble pay off or backfire in B.C.? Here's what history tells us",
"url": "https://www.cbc.ca/news/politics/does-calling-an-early-election-work-9.7355667",
"type": "story",
"summary": "On the whole, premiers and prime ministers have benefited from similar gambles in the past.",
"sections": [
"News",
"Politics"
],
"published_at": "2026-09-24T08:00:00Z",
"updated_at": "2026-09-24T08:00:00Z"
}
]
}
}Request schema
No body schema
Response schema
#/definitions/publicnews.cbcAuthorResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| data | cbc.AuthorResponse | No | ||||
| data.articles | array | No | ||||
| data.articles[].image_url | string | No | ||||
| data.articles[].published_at | string | No | ||||
| data.articles[].sections | array | No | ||||
| data.articles[].summary | string | No | ||||
| data.articles[].title | string | No | ||||
| data.articles[].type | string | No | ||||
| data.articles[].updated_at | string | No | ||||
| data.articles[].url | string | No | ||||
| data.biography | string | No | ||||
| data.has_more_articles | boolean | No | ||||
| data.image_url | string | No | ||||
| data.links | array | No | ||||
| data.links[].title | string | No | ||||
| data.links[].url | string | No | ||||
| data.name | string | No | ||||
| data.slug | string | No | ||||
| data.title | 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/cbc/author" \
-H "x-api-key: $CRAWLORA_API_KEY"