IOL API endpoint
Returns an IOL author profile, identified by `slug` (such as `xolile-mtembu`) or a canonical `iol.co.za/authors/<slug>/` `url`; provide exactly one. The response has the name, `role` and `image_url` when present, and up to 25 recent articles with title, URL, summary, section and a `published_date` taken from the article URL. Unknown authors return not found.
/iol/authorQuery parameters:
slug (optional): an author slug, e.g. xolile-mtembu, the last segment of the author link in a story's byline.url (optional): a canonical https://iol.co.za/authors/<slug>/ URL, as an alternative to slug.Exactly one of slug/url is required. The response covers the first page of the author's archive (up to 25 of the most recent articles; no further pagination); each article has title, url, summary, section and published_date (the YYYY-MM-DD date IOL puts in the article URL, because the author page only shows relative times; omitted for undated URLs). role and image_url are omitted when the author has none. The contact e-mail address IOL shows on the profile is not returned. An unknown author returns a not-found error.
Example response (truncated):
{"code":200,"data":{"name":"Xolile Mtembu","slug":"xolile-mtembu","url":"https://iol.co.za/authors/xolile-mtembu/","role":"Digital Journalist, IOL News","image_url":"https://iol-prod.appspot.com/image/f67fc379e08a1fc50070b5a5aa23f2565c0849af","articles":[{"title":"Petition demands permanent serial crime task team after Kempton Park murders","url":"https://iol.co.za/news/crime-and-courts/2026-09-23-petition-demands-permanent-serial-crime-task-team-after-kempton-park-murders","summary":"A petition is calling on Finance Minister Enoch Godongwana and Acting Police Minister Firoz Cachalia to establish and permanently fund a specialised serial crime task team following the deaths of nine women in Ekurhuleni.","section":"Crime and Courts","published_date":"2026-09-23"}]}}
| Field | Filled in, of 25 checked | Values in the sample |
|---|---|---|
| title | 25 | median 77 characters |
| url | 25 | iol.co.za |
| summary | 25 | median 193 characters |
| section | 25 | |
| published_date | 25 | 2026-10-05 to 2026-10-13 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| slug | string | No | Author slug, e.g. xolile-mtembu | xolile-mtembu | |
| url | string | No | Canonical iol.co.za/authors/<slug>/ URL; alternative to slug | https://iol.co.za/authors/xolile-mtembu/ | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/iol/author" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"data": {
"name": "Xolile Mtembu",
"slug": "xolile-mtembu",
"url": "https://iol.co.za/authors/xolile-mtembu/",
"role": "Digital Journalist, IOL News",
"image_url": "https://iol-prod.appspot.com/image/f67fc379e08a1fc50070b5a5aa23f2565c0849af",
"articles": [
{
"title": "Petition demands permanent serial crime task team after Kempton Park murders",
"url": "https://iol.co.za/news/crime-and-courts/2026-09-23-petition-demands-permanent-serial-crime-task-team-after-kempton-park-murders",
"summary": "A petition is calling on Finance Minister Enoch Godongwana and Acting Police Minister Firoz Cachalia to establish and permanently fund a specialised serial crime task team following the deaths of nine women in Ekurhuleni.",
"section": "Crime and Courts",
"published_date": "2026-09-23"
}
]
}
}Request schema
No body schema
Response schema
#/definitions/publicnews.iolAuthorResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| data | iol.AuthorResponse | No | ||||
| data.articles | array | No | ||||
| data.articles[].published_date | string | No | PublishedDate is the YYYY-MM-DD date IOL puts in the article URL. The author page itself only shows a relative "2 days ago" label, so this is omitted for the rare undated (partnered) URL. | |||
| data.articles[].section | string | No | ||||
| data.articles[].summary | string | No | ||||
| data.articles[].title | string | No | ||||
| data.articles[].url | string | No | ||||
| data.image_url | string | No | ||||
| data.name | string | No | ||||
| data.role | string | No | ||||
| data.slug | 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/iol/author" \
-H "x-api-key: $CRAWLORA_API_KEY"