canonical: https://jentic.com/apis/bbci.co.uk/bbci

# Bbci BBC iPlayer Business Layer

The BBC iPlayer Business Layer (IBL) is the definitive iPlayer API - the metadata service that powers iPlayer's catalogue, playback, search, and recommendations across web, mobile, and connected devices. It exposes programmes and episodes by PID, channel schedules and highlights, A-Z and category browse, search and search-suggest, plus iPlayer-specific extras like prerolls, postrolls, and 'next episode' hints. With 30 endpoints, IBL is the canonical source any third party should integrate against to surface or play iPlayer content programmatically.

## For AI agents

Browse and search BBC iPlayer programmes, episodes, channel schedules, and recommendations. Useful for catalogue agents, search assistants, and connected-device clients.

## Scope

Does not handle radio playback, BBC News articles, or BBC Account user data - use for iPlayer programmes, episodes, schedules, and search only.

## Capabilities

- Look up a programme or episode by PID via /programmes/{pid} and /episodes/{pid}
- Browse the catalogue alphabetically with GET /atoz/{letter}/programmes
- Fetch a channel's schedule for a date with GET /channels/{channel}/schedule/{date}
- Search across iPlayer with GET /search and surface autocomplete via GET /search-suggest
- Pull preroll, postroll, and 'next episode' hints for an episode for playback flows
- Browse categories and category-specific programme/episode lists

## Use cases

### iPlayer Catalogue Browser

Apps surfacing the iPlayer catalogue can use GET /atoz/{letter}/programmes for alphabetical browse, GET /categories and GET /categories/{category}/programmes for genre browse, and GET /channels for channel listings. Combined with GET /channels/{channel}/schedule/{date}, this is enough to render the core iPlayer browse surfaces without rebuilding metadata locally.

Example prompt: Call GET /atoz/D/programmes, then for each programme fetch GET /programmes/{pid}/episodes to render an A-Z drill-down

### Episode Playback Setup

Before playing an iPlayer episode, the client needs episode metadata, prerolls, postrolls, and a 'next episode' hint to chain playback. GET /episodes/{pid} returns metadata, GET /episodes/{pid}/prerolls and /postrolls return ad/promo slots, and GET /episodes/{pid}/next returns the recommended next episode for autoplay.

Example prompt: Call GET /episodes/{pid}, then GET /episodes/{pid}/prerolls and GET /episodes/{pid}/next to assemble the playback session

### iPlayer Search Backend

A connected-device search box wires up to GET /search-suggest for autocomplete and GET /search for full results. Each search response includes programmes, episodes, and recommended categories, ready to render in a single results list.

Example prompt: Wire keystrokes to GET /search-suggest, and on submit call GET /search?q={query} to fetch the full result set

### Channel Schedule and Highlights

TV apps showing 'what's on' for a BBC channel can call GET /channels/{channel}/schedule/{date} for the day's broadcasts and GET /channels/{channel}/highlights for editorial highlights. Cache by channel+date and refresh against GET /status to detect IBL data updates.

Example prompt: Call GET /channels/bbcone/schedule/2026-06-10 and GET /channels/bbcone/highlights to render the BBC One channel page

### Agent-Driven iPlayer Lookup via Jentic

A voice-assistant or chat agent answering 'what new episodes of Line of Duty are on iPlayer?' can use IBL through Jentic to search and walk to the latest episode. Jentic isolates the IBL API key in its vault and exposes the 30 IBL operations as discoverable tools indexed by intent.

Example prompt: Search Jentic for 'search iplayer programmes', load the GET /search schema, and execute with the user's query

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | /programmes/{pid} | Fetch a programme by PID |
| GET | /episodes/{pid} | Fetch an episode by PID |
| GET | /episodes/{pid}/next | Get the recommended next episode |
| GET | /channels/{channel}/schedule/{date} | Get a channel's schedule for a date |
| GET | /search | Search iPlayer programmes and episodes |
| GET | /search-suggest | Autocomplete suggestions for a search query |
| GET | /atoz/{letter}/programmes | List programmes alphabetically |
| GET | /categories | List iPlayer categories |

## Key resources

- **Programmes** — Look up programmes by PID and list their episodes
- **Episodes** — Fetch episode metadata, prerolls, postrolls, next-episode hints, and recommendations
- **Channels** — List channels and fetch per-channel schedules and editorial highlights
- **Categories** — Browse iPlayer categories and category-specific programme/episode lists
- **Search** — Full-text search and autocomplete suggestions across iPlayer content
- **Status** — Health and freshness signal for the IBL data layer

## Why Jentic

- **Setup:** Wiring the BBC iPlayer Business Layer by hand means carrying the apiKey and any Basic credentials, learning the programmes, episodes, and search endpoints, and threading programme ids and dates through the schedule calls yourself. Through Jentic you install once, import the iPlayer Business Layer from the API Directory, store the credentials once, and your agent calls it.
- **Permission scoping:** The Business Layer is read-only and carries its programme ids, channels, and dates as path or query parameters, so scope the agent to the operations it needs, such as searching programmes or reading a channel schedule. You choose that operation set, and there are no write operations to add.
- **Credential handling:** Your IBL API key and any Basic credentials are stored once, encrypted, by your own Jentic One instance and injected at execution time. They never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'search iPlayer programmes' or 'get an iPlayer channel schedule', and Jentic returns the matching IBL operation with its parameter schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **BBC Nitro API** — BBC programmes-metadata API - pair with IBL when you need full catalogue/franchise data alongside iPlayer playback metadata
- **BBC Radio & Music Services** — Radio and music personalisation API - pair with IBL for a full audio+video BBC client
- **StarCraft 2 API** — Unrelated media domain; listed as a placeholder peer in the absence of a competing iPlayer-style API

## FAQ

### What authentication does the iPlayer Business Layer API use?

IBL declares two security schemes - an API key and HTTP Basic auth. In practice most read endpoints are gated behind the BBC's developer programme, which issues an API key. Through Jentic, the key is stored encrypted in the vault and only a scoped token reaches the agent.

### Can I search BBC iPlayer with this API?

Yes. GET /search?q={query} returns programmes and episodes matching the query, and GET /search-suggest provides autocomplete. The two endpoints together back any iPlayer-style search box.

### How do I fetch the iPlayer schedule for a channel through Jentic?

Search Jentic for 'iplayer channel schedule', which surfaces GET /channels/{channel}/schedule/{date}. Load the schema, supply the channel slug (e.g. 'bbcone') and date, and execute to receive the day's broadcasts.

### What are the rate limits for the IBL API?

The OpenAPI spec does not declare explicit rate limits. IBL is intended for the BBC's own clients, so apply conservative caching (per channel/date) and back off on 429 or 5xx responses. Check the BBC developer portal for any per-account limits.

### Can I get an episode's next-episode recommendation?

Yes. GET /episodes/{pid}/next returns the recommended next episode for autoplay, and GET /episodes/{pid}/recommendations returns broader related-content suggestions. Use both together to drive an iPlayer-style 'up next' panel.

### Does the IBL API include preroll and postroll metadata for playback?

Yes. GET /episodes/{pid}/prerolls and GET /episodes/{pid}/postrolls return the ad and promo slots for an episode. The client uses these to schedule playback breaks before and after the main content.

### Can I limit what my agent is allowed to do with the BBC iPlayer Business Layer API?

Yes. Because you run Jentic One yourself, your own rules decide which IBL operations the agent may call, so you can grant it just what it needs, such as searching programmes with GET /search or reading a channel schedule with GET /channels/{channel}/schedule/{date}. The Business Layer is read-only and passes programme ids, channels, and dates as path or query parameters, so there are no write operations to worry about and the agent can only read the data you allow. You also control which stored credentials it may use, and they are injected at execution time rather than exposed to the agent.
