GB News API endpoint
Returns one GB News story by its `gbnews.com` `url` (news, opinion or sport; query strings are ignored). The response has the title, description, publish and update times, section label, authors, lead image and body `paragraphs`, without captions or widgets. `paywalled` is never set. Video, audio, author and hub pages return an error.
/gbnews/articleQuery parameter: url is a canonical HTTPS gbnews.com story URL, for example https://www.gbnews.com/news/<slug>, https://www.gbnews.com/politics/<slug>, https://www.gbnews.com/news/world/<slug> or https://www.gbnews.com/sport/cricket/<slug>. Returns public metadata (title, description, publication and update times, section label, authors, lead image) and the story body. News stories, opinion columns and sport reports use the same format.
paragraphs holds the body text in reading order. Headings, image captions and photo credits, embedded social posts, video prompts, the "TRENDING" widget and the "Our Standards" footer are not included.
GB News stories are freely readable, with no subscription wall, so paywalled is never set. Video and audio pages (/watch/..., /listen/...), show, presenter and author pages, section hubs, and any page without a readable story body are not supported and return an error rather than an empty article. Query strings on the URL are ignored.
| Field | In the sample | Value in the sample |
|---|---|---|
| url | Has a value | gbnews.com |
| title | Has a value | 92 characters |
| description | Has a value | 151 characters |
| published_at | Has a value | 2026-09-24 |
| updated_at | Has a value | 2026-09-25 |
| section | Has a value | “Opinion” |
| authors | Has a value | 1 entry |
| image_url | Has a value | gbnews.com |
| paragraphs | Has a value | 38 entries |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| url | string | Yes | Canonical GB News story URL | https://www.gbnews.com/news/north-yorkshire-gaza-barracks-fire-catterick-garrison | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/gbnews/article?url=https%3A%2F%2Fwww.gbnews.com%2Fnews%2Fnorth-yorkshire-gaza-barracks-fire-catterick-garrison" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"data": {
"url": "https://www.gbnews.com/news/example-story",
"title": "Example story",
"published_at": "2026-09-24T22:47:44Z",
"updated_at": "2026-09-24T23:36:21Z",
"section": "News",
"authors": [
"Example Author"
],
"image_url": "https://www.gbnews.com/media-library/example.png?id=1&width=1200&height=600",
"paragraphs": [
"Example public 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/gbnews/article?url=https%3A%2F%2Fwww.gbnews.com%2Fnews%2Fnorth-yorkshire-gaza-barracks-fire-catterick-garrison" \
-H "x-api-key: $CRAWLORA_API_KEY"