Metro API endpoint
Returns a Metro author's name, job title, biography, topic areas, social links, and most recent articles from a canonical author URL.
/metro/authorQuery parameter: url (required) is a Metro author page in the canonical https://metro.co.uk/author/<slug>/ form, for example the byline link on any article. www.metro.co.uk and a missing trailing slash are accepted. Paginated (/page/2/) and non-author URLs return 400; an author that does not exist returns 404.
Returns the author's name, job_title, bio, image_url, knows_about (topic areas the author covers), same_as (linked social profiles), and articles, their most recent stories (up to about 30). Each article has title, url, summary, published_at (RFC 3339, UTC), section, and image_url when available. Not every author has a biography, topic areas, or social links.
Example response (truncated):
{"code":200,"data":{"url":"https://metro.co.uk/author/craig-munro/","name":"Craig Munro","job_title":"Senior Politics Reporter","bio":"Craig Munro is Metro's senior politics reporter.","image_url":"https://metro.co.uk/wp-content/uploads/2023/01/Craig_headshot-dfbd.png","knows_about":["Politics","Crime News","World"],"same_as":["https://twitter.com/crunro"],"articles":[{"title":"Why Andy Burnham has been talking about Russia this week","url":"https://metro.co.uk/2026/09/24/andy-burnham-talking-russia-this-week-29649003/","summary":"The new prime minister took a far more pugilistic tone with the Kremlin","published_at":"2026-09-24T07:08:40Z","section":"Politics","image_url":"https://metro.co.uk/wp-content/uploads/2026/09/SEI_313580460-cd1a.jpg"}]}}
| Field | Filled in, of 27 checked | Values in the sample |
|---|---|---|
| title | 27 | median 77 characters |
| url | 27 | metro.co.uk |
| published_at | 27 | 2026-09-20 to 2026-10-13 |
| section | 20 | |
| image_url | 25 | metro.co.uk |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| url | string | Yes | Canonical Metro author URL | https://metro.co.uk/author/craig-munro/ | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/metro/author?url=https%3A%2F%2Fmetro.co.uk%2Fauthor%2Fcraig-munro%2F" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"data": {
"url": "https://metro.co.uk/author/craig-munro/",
"name": "Craig Munro",
"job_title": "Senior Politics Reporter",
"bio": "Craig Munro is Metro's senior politics reporter.",
"image_url": "https://metro.co.uk/wp-content/uploads/2023/01/Craig_headshot-dfbd.png",
"knows_about": [
"Politics",
"Crime News",
"World"
],
"same_as": [
"https://twitter.com/crunro"
],
"articles": [
{
"title": "Why Andy Burnham has been talking about Russia this week",
"url": "https://metro.co.uk/2026/09/24/andy-burnham-talking-russia-this-week-29649003/",
"summary": "The new prime minister took a far more pugilistic tone with the Kremlin",
"published_at": "2026-09-24T07:08:40Z",
"section": "Politics",
"image_url": "https://metro.co.uk/wp-content/uploads/2026/09/SEI_313580460-cd1a.jpg"
}
]
}
}Request schema
No body schema
Response schema
#/definitions/publicnews.metroAuthorResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| data | metro.AuthorResponse | No | ||||
| data.articles | array | No | ||||
| data.articles[].image_url | string | No | ||||
| data.articles[].published_at | string | No | ||||
| data.articles[].section | string | No | ||||
| data.articles[].summary | string | No | ||||
| data.articles[].title | string | No | ||||
| data.articles[].url | string | No | ||||
| data.bio | string | No | ||||
| data.image_url | string | No | ||||
| data.job_title | string | No | ||||
| data.knows_about | array | No | ||||
| data.name | string | No | ||||
| data.same_as | array | 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/metro/author?url=https%3A%2F%2Fmetro.co.uk%2Fauthor%2Fcraig-munro%2F" \
-H "x-api-key: $CRAWLORA_API_KEY"