BBC APInews.bbc.co.uk ↗
Fetch BBC News section front pages, full article text, and search results via 3 endpoints. Get headlines, body paragraphs, authors, topics, and publication timestamps.
What is the BBC API?
The BBC News API exposes 3 endpoints covering BBC News section front pages, full article content, and keyword search across BBC properties. The list_section_stories endpoint returns curated story collections for any section path (e.g. world, technology, business), while get_article delivers structured body paragraphs, author metadata, topic tags, and a millisecond-epoch publication timestamp for a single article URL.
curl -X GET 'https://api.parse.bot/scraper/f8a1cffa-eb10-459a-9008-c235920bb5f5/list_section_stories?section=world' \ -H 'X-API-Key: $PARSE_API_KEY'
Returns the stories currently shown on a BBC News section front page, grouped into the page's curated collections (e.g. an untitled top-stories block, 'Latest updates', 'Most read', 'Sport'). Each story carries its title, summary, canonical URL, content type (article, video, live, etc.), section/topic labels, and millisecond epoch timestamps. article_id is populated only for standard articles (URLs containing /articles/); videos and live pages have article_id null. One round trip; no pagination is available (the site loads further 'Latest updates' pages only through interactive browsing, so only the initially rendered items are returned). The same story may appear in more than one collection. An unknown section path returns a 422 not-found error.
| Param | Type | Description |
|---|---|---|
| section | string | Section path under BBC News, without leading slash, e.g. world, uk, business, technology, or a nested path such as world/africa. Omitted or empty returns the main News front page. |
{
"type": "object",
"fields": {
"section": "requested section path, null for the main front page",
"sections": "array of curated collections in page order; each has title (null for untitled blocks) and stories",
"page_title": "section title as shown on the page (empty string on the main front page)",
"story_count": "total story cards across all collections (duplicates across collections counted separately)",
"sections[].stories": "array of story cards: title, description, url, article_id (null for non-article content), content_type, subtype, topics (label strings), first_published and last_updated (ms epoch), is_live, image_url, image_alt"
},
"sample": {
"data": {
"section": "world",
"sections": [
{
"title": null,
"stories": [
{
"url": "https://www.bbc.com/news/articles/cqgmrr9ekr7ko",
"title": "Iran offers US deal to reopen Strait of Hormuz in seven days",
"topics": [
"Middle East"
],
"is_live": false,
"subtype": "news",
"image_alt": "Ships in the Strait of Hormuz from the Oman coast",
"image_url": "https://ichef.bbci.co.uk/news/480/cpsprodpb/50c9/live/f69f3490-b97f-11f1-8fe1-e102ea0756fc.jpg",
"article_id": "cqgmrr9ekr7ko",
"description": "Asked about the Iranian proposal, a US official told the BBC \"constructive discussions\" were taking place through mediators.",
"content_type": "article",
"last_updated": 1790398989859,
"first_published": 1790373443012
}
]
},
{
"title": "Latest updates",
"stories": [
{
"url": "https://www.bbc.com/news/videos/ck9800jdj1q0o",
"title": "Bangkok declares disaster as heavy rains spark flooding",
"topics": [
"Asia"
],
"is_live": false,
"subtype": "clip news",
"image_alt": "Two women in Thailand navigate thigh-deep floods with a shopping trolley in Thailand",
"image_url": "https://ichef.bbci.co.uk/news/480/cpsprodpb/d4e5/live/b396e410-b987-11f1-a430-4d16ee157c41.jpg",
"article_id": null,
"description": "Days of near continuous downpours have caused widespread flooding in the Thai capital.",
"content_type": "video",
"last_updated": 1790404138551,
"first_published": 1790404138551
}
]
}
],
"page_title": "World",
"story_count": 30
},
"status": "success"
}
}About the BBC API
Section Front Pages
The list_section_stories endpoint accepts an optional section parameter — a path string such as uk, business, or a nested path — and returns all curated collections visible on that section's front page. Each collection in the sections array carries a title (null for untitled top-story blocks) and a stories array. Each story card includes title, description, url, content_type, subtype, article_id (null for non-article content such as video), and topics. The response also reports page_title and a story_count that counts each card separately even if it appears in multiple collections.
Full Article Content
The get_article endpoint takes an article_url — directly usable from any url field returned by list_section_stories or search_content where content_type is article — and returns the full structured body as both a paragraphs array and a pre-joined body string. Additional fields include headline, published (ms epoch), authors (each with name and nullable role), sections (the section the article belongs to, with title and url), topics (with id and title), images (inline stills with url and alt), and the parsed article_id.
Search
The search_content endpoint accepts a free-text query and an optional 1-based page number. It returns up to 9 result cards per page in the same shape as section story cards. The response includes total_results (the site-reported match count, capped at 10,000), has_more for pagination checks, and the page_size as served. Results span news articles, sport, video, and audio programmes — the content_type and subtype fields let you filter client-side.
The BBC API is a managed, monitored endpoint for news.bbc.co.uk — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when news.bbc.co.uk changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official news.bbc.co.uk API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Monitor BBC News front-page story rotation by polling
list_section_storiesfor a section and diffing the returnedstory_countand story URLs over time. - Build a news digest tool that fetches
paragraphsandauthorsfromget_articlefor each article URL surfaced by a section scan. - Extract
topicstag arrays from articles to classify BBC coverage by subject and track topic frequency across sections. - Search BBC archives by keyword using
search_contentand paginate throughhas_moreto collect all matching article URLs. - Aggregate
publishedtimestamps from batchget_articlecalls to analyze BBC publishing cadence for a given section or topic. - Pull inline
imagesarrays from articles to build a media asset index linked to editorial content. - Identify non-article content (video, audio) in section pages using the
content_typeandsubtypefields on story cards fromlist_section_stories.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does BBC News have an official developer API?+
What does `list_section_stories` return for the main front page versus a named section?+
section parameter (or pass an empty string); page_title will be an empty string and section will be null. For named sections like technology or world/europe, pass the path without a leading slash. Either way the response groups stories into named and untitled curated collections in their on-page order.Does `get_article` work for BBC video or audio content?+
get_article is designed for items where content_type is article. Video and audio content surfaces through list_section_stories and search_content as story cards with their own content_type and subtype values, but those items don't have a fetchable article body. You can fork this API on Parse and revise it to add a dedicated endpoint for video metadata if needed.Is there a way to retrieve comments or reader engagement data for BBC articles?+
How does pagination work in `search_content`, and is there a limit on results?+
page parameter (1-based) and check has_more in the response to know whether another page exists. Each page returns up to 9 results as reported by page_size. The total_results field reflects the site-reported match count, but the site caps that figure at 10,000 regardless of the actual corpus size.