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

# Bbc Radio & Music Services

The BBC Radio and Music Services (RMS) API encapsulates the metadata and personalisation logic that powers iPlayer Radio and BBC Music across web, mobile, and connected devices. It surfaces broadcasts and schedules, music categories and collections, popular artists, playlists and tracks, and a per-user 'my' namespace for follows, favourites, and music export jobs. With 75 endpoints, the API is the canonical source of broadcast metadata for any client integrating BBC Radio listings, station experiences, or personalised music recommendations.

## For AI agents

Browse BBC Radio broadcasts, schedules, and music collections, plus manage a user's follows, favourites, and music exports. Useful for media catalogue agents and personalised radio assistants.

## Scope

Does not handle TV programmes, iPlayer video playback, or news content - use for BBC Radio broadcasts, BBC Music browsing, and per-user music personalisation only.

## Capabilities

- Fetch the latest broadcasts or a specific broadcast by PID with /broadcasts and /broadcasts/{pid}
- Browse music categories and category members via /categories and /collections/{pid}/members
- Pull popular artists, playlists, and tracks from /music/popular/* endpoints
- Manage a user's category follows with GET, POST, and DELETE /my/categories/follows
- Trigger and track music export jobs via /my/music/exports/jobs
- Render the homepage experience payload via GET /experience/homepage

## Use cases

### BBC Radio Listings Client

A connected radio device or Alexa skill needs to display 'what's on now' across BBC Radio stations. The RMS API provides GET /broadcasts/latest for currently airing programmes and GET /broadcasts/{pid} for full programme metadata. The client can render the schedule, jump to live audio, and surface programme art using a single backend call per station.

Example prompt: Call GET /broadcasts/latest, render the current programme on each station, and refresh on a 60-second interval

### Personalised Music Discovery

BBC Music's recommendation surfaces are powered by category follows and popular-content endpoints. Apps can call GET /my/categories/follows to read the user's followed genres, then GET /music/popular/tracks and /music/popular/artists to suggest new content. Adding a follow is a POST /my/categories/follows away.

Example prompt: GET /my/categories/follows, then for each followed category call GET /music/popular/tracks?category={id} and surface the top three tracks

### Music Export Job Tracking

Listeners exporting their BBC Music history (favourites, plays) trigger an export job via POST /my/music/exports/jobs. The client polls GET /my/music/exports/jobs to track progress, then fetches the resulting tracks with GET /my/music/exports/tracks once the job completes. This flow is suitable for data-portability automations and account-cleanup agents.

Example prompt: POST /my/music/exports/jobs, poll GET /my/music/exports/jobs every 30 seconds, and call GET /my/music/exports/tracks when status is complete

### Catalogue and Collection Browser

Editorial tooling that surfaces BBC Music collections (curated playlists, themed groupings) can use GET /collections/{pid}/members to enumerate the items in a collection and GET /categories/{id} for category metadata. The endpoints support pagination so even large collections can be walked predictably.

Example prompt: Call GET /categories, then for each category fetch GET /collections/{pid}/members to build a faceted browse experience

### Agent-Driven Music Lookup via Jentic

A voice-assistant agent answering 'what was playing on Radio 1 at 8pm' can use the BBC Radio & Music API through Jentic to query broadcasts and collections without managing client code. Jentic exposes the 75 RMS operations as discoverable tools indexed by natural-language intent.

Example prompt: Search Jentic for 'fetch latest bbc radio broadcasts', load the GET /broadcasts/latest schema, and execute to return current on-air programmes

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | /broadcasts/latest | Get the latest broadcasts across BBC Radio stations |
| GET | /broadcasts/{pid} | Fetch metadata for a specific broadcast |
| GET | /categories | List music categories |
| GET | /music/popular/tracks | Get popular tracks on BBC Music |
| GET | /my/categories/follows | List categories the current user follows |
| POST | /my/categories/follows | Follow a music category |
| POST | /my/music/exports/jobs | Trigger a music export job |
| GET | /experience/homepage | Get the BBC Music homepage experience payload |

## Key resources

- **Broadcasts** — List, fetch, and look up the latest BBC Radio broadcasts by PID
- **Categories** — Browse music categories and individual category metadata
- **Collections** — Enumerate the members of curated music collections
- **Popular Music** — Fetch popular artists, playlists, and tracks across BBC Music
- **My (User Personalisation)** — Manage the authenticated user's category follows, music export jobs, and exported tracks
- **Experience** — Render the BBC Music homepage experience payload via GET /experience/homepage

## Why Jentic

- **Setup:** Wiring the Radio and Music Services API by hand means separating the public broadcast and music endpoints from the /my/* endpoints that need a BBC Account session, and managing that session yourself. Through Jentic you install once, import the Radio and Music Services API from the API Directory, store any session credential once, and your agent calls it.
- **Permission scoping:** The public broadcast, category, and music endpoints carry their targets as path or query parameters, so scope the agent to the operations it needs, such as fetching latest broadcasts or popular tracks. You choose that operation set, so the /my/* writes like following a category or exporting music are not included unless you add them.
- **Credential handling:** Any BBC Account session token for the /my/* endpoints is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'fetch latest BBC radio broadcasts' or 'list popular BBC music tracks', and Jentic returns the matching RMS operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **BBC Nitro API** — BBC Programmes Metadata API - covers the underlying programmes/episodes data referenced by Radio & Music broadcasts
- **BBC iPlayer Business Layer** — iPlayer's TV-side metadata API - pair with Radio & Music for a full BBC playback client
- **StarCraft 2 API** — Different media domain; included as a media-API peer in the absence of another broadcast-metadata API in the corpus

## FAQ

### What authentication does the BBC Radio & Music Services API use?

The OpenAPI spec does not declare a security scheme - most read endpoints (broadcasts, categories, popular music) are public. The /my/* endpoints (follows, exports) imply a BBC Account session, which the client must establish via the standard BBC iD flow. Through Jentic, any session credentials are stored in the vault.

### Can I get the BBC Radio schedule with this API?

Yes. GET /broadcasts/latest returns currently airing programmes across stations and GET /broadcasts/{pid} fetches a specific broadcast's metadata. For station-by-station listings, walk /broadcasts with the appropriate filters.

### How do I fetch popular BBC Music tracks through Jentic?

Search Jentic for 'popular bbc music tracks', which surfaces GET /music/popular/tracks. Load the schema and execute. Jentic returns the current popular tracks payload, which you can filter by category or artist client-side.

### What are the rate limits for the BBC Radio & Music API?

The OpenAPI spec does not declare explicit rate limits. The RMS API is intended for BBC's own clients, so apply conservative polling (no faster than once per minute for broadcast endpoints) and back off on any 429 or 5xx response.

### Can I follow a music category for a user?

Yes, the API exposes a /my namespace: GET /my/categories/follows lists current follows, POST /my/categories/follows adds one, and DELETE /my/categories/follows removes one. These endpoints require the user to be authenticated against their BBC Account.

### Does the BBC Radio & Music API support exporting a user's music data?

Yes. POST /my/music/exports/jobs triggers an export job, GET /my/music/exports/jobs returns job status, and GET /my/music/exports/tracks fetches the exported tracks. The flow is asynchronous - poll for completion before pulling results.

### Can I limit what my agent is allowed to do with the BBC Radio & Music Services API?

Yes. Because you run Jentic One yourself, your own rules decide which of the 75 RMS operations and which credentials the agent may use. You can allow only the public read operations, such as fetching latest broadcasts, listing music categories, or getting popular tracks, and leave out the /my/* writes like following a category or triggering a music export unless you explicitly add them. Any BBC Account session token needed for the /my/* endpoints is held by your own instance and injected only for the operations you have permitted.
