TimesLIVE API endpoint
Returns article metadata and body paragraphs for a canonical TimesLIVE editorial article URL. Some stories may have a publisher access gate; paywalled is set when the page's first-party access flags indicate restricted content.
/timeslive/articleQuery parameter: url is required and must be an absolute HTTPS URL on timeslive.co.za or www.timeslive.co.za whose path is a dated editorial story. Other hosts and non-article paths return HTTP 400. Query strings and fragments are removed from the canonical output URL.
Returns public article metadata, authors, image, and body paragraphs when present. paywalled is set to true when TimesLIVE's page access flags indicate premium or metered access; the body may then be partial. A single free story was live-verified; the behavior of restricted stories has not been independently confirmed against a gated example.
Start from the checked request: GET /timeslive/article?url=https%3A%2F%2Fwww.timeslive.co.za%2Fnews%2Fsci-tech%2F2026-09-29-insight-chinas-ai-agents-can-lie-and-scheme-just-like-their-us-rivals%2F. Live check on 2026-10-14: one record. Fields present in every checked record: url, title, description, published_at, updated_at, authors, image_url, paragraphs.
Return to section story discovery with Get TimesLIVE section headlines.
| Field | In the sample | Value in the sample |
|---|---|---|
| url | Has a value | timeslive.co.za |
| title | Has a value | 74 characters |
| description | Has a value | 156 characters |
| published_at | Has a value | 2026-09-29 |
| updated_at | Has a value | 2026-09-29 |
| authors | Has a value | 1 entry |
| image_url | Has a value | timeslive.co.za |
| paragraphs | Has a value | 46 entries |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| url | string | Yes | Canonical TimesLIVE article URL | https://www.timeslive.co.za/news/sci-tech/2026-09-29-insight-chinas-ai-agents-can-lie-and-scheme-just-like-their-us-rivals/ | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/timeslive/article?url=https%3A%2F%2Fwww.timeslive.co.za%2Fnews%2Fsci-tech%2F2026-09-29-insight-chinas-ai-agents-can-lie-and-scheme-just-like-their-us-rivals%2F" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"data": {
"url": "https://www.timeslive.co.za/news/world/2026-09-29-example-story",
"title": "Example TimesLIVE story",
"description": "A short standfirst.",
"published_at": "2026-09-29T15:00:00Z",
"section": "World",
"authors": [
"Example Reporter"
],
"image_url": "https://example.com/story.jpg",
"paragraphs": [
"First body paragraph.",
"Second body paragraph."
]
}
}Request schema
No body schema
Response schema
#/definitions/publicnews.articleResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| data | newsplatform.ArticleResponse | No | ||||
| data.authors | array | No | ||||
| data.description | string | No | ||||
| data.image_url | string | No | ||||
| data.paragraphs | array | No | ||||
| data.paywalled | boolean | No | Paywalled is true when the publisher serves only a teaser of this article to anonymous readers, so Paragraphs is a partial body rather than the full text. It is omitted when the full public body was returned. | |||
| data.published_at | string | No | ||||
| data.section | string | No | ||||
| data.title | string | No | ||||
| data.updated_at | 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/timeslive/article?url=https%3A%2F%2Fwww.timeslive.co.za%2Fnews%2Fsci-tech%2F2026-09-29-insight-chinas-ai-agents-can-lie-and-scheme-just-like-their-us-rivals%2F" \
-H "x-api-key: $CRAWLORA_API_KEY"