Mirror API endpoint
Returns a Mirror author profile by `slug` (for example `neil-shaw`) or by a mirror.co.uk author `url`; supply exactly one. The response has `name`, `job_title`, `bio`, `email`, `twitter` and one page of recent articles with title, URL and label. There is no paging, and unlisted contact details are omitted rather than raising an error.
/mirror/authorQuery parameters:
slug (optional): an author slug, e.g. rucsandra-moldoveanu.url (optional): a canonical https://www.mirror.co.uk/authors/<slug>/ URL, as an alternative to slug.Exactly one of slug/url is required. The response is a single page of the author's most recent articles as shown on their profile page; there is no further pagination. email and twitter reflect whatever contact links the author's page actually shows; unlisted contact details are simply absent, not an error.
Example response (truncated):
{"code":200,"data":{"name":"Rucsandra Moldoveanu","slug":"rucsandra-moldoveanu","url":"https://www.mirror.co.uk/authors/rucsandra-moldoveanu/","job_title":"Live News Reporter","bio":"Rucsandra covers UK and world breaking news for the Mirror's live news desk in London...","email":"[email protected]","articles":[{"title":"Putin 'plots drone strikes on Mediterranean tourist destinations' as holidaymakers put on alert","url":"https://www.mirror.co.uk/news/world-news/putin-plots-drone-strikes-mediterranean-37696384","label":"Russia Ukraine war","label_url":"https://www.mirror.co.uk/all-about/russia-ukraine-war"}]}}
| Field | Filled in, of 24 checked | Values in the sample |
|---|---|---|
| title | 24 | median 83 characters |
| url | 24 | mirror.co.uk |
| label | 24 | |
| label_url | 24 | mirror.co.uk |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| slug | string | No | Author slug, e.g. neil-shaw | neil-shaw | |
| url | string | No | Canonical mirror.co.uk/authors/<slug>/ URL; alternative to slug | https://www.mirror.co.uk/authors/neil-shaw/ | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/mirror/author" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"data": {
"name": "Rucsandra Moldoveanu",
"slug": "rucsandra-moldoveanu",
"url": "https://www.mirror.co.uk/authors/rucsandra-moldoveanu/",
"job_title": "Live News Reporter",
"bio": "Rucsandra covers UK and world breaking news for the Mirror's live news desk in London...",
"email": "[email protected]",
"articles": [
{
"title": "Putin 'plots drone strikes on Mediterranean tourist destinations' as holidaymakers put on alert",
"url": "https://www.mirror.co.uk/news/world-news/putin-plots-drone-strikes-mediterranean-37696384",
"label": "Russia Ukraine war",
"label_url": "https://www.mirror.co.uk/all-about/russia-ukraine-war"
}
]
}
}Request schema
No body schema
Response schema
#/definitions/publicnews.mirrorAuthorResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| data | mirror.AuthorResponse | No | ||||
| data.articles | array | No | ||||
| data.articles[].label | string | No | ||||
| data.articles[].label_url | string | No | ||||
| data.articles[].title | string | No | ||||
| data.articles[].url | string | No | ||||
| data.bio | string | No | ||||
| data.email | string | No | ||||
| data.job_title | string | No | ||||
| data.name | string | No | ||||
| data.slug | string | No | ||||
| data.twitter | 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/mirror/author" \
-H "x-api-key: $CRAWLORA_API_KEY"