API Reference
The Radio Index API lets you pull data from our catalog — 3,054 shows, 233,264 episodes, cast and crew, broadcast dates, and audio file metadata. All responses are JSON.
Authentication
Every endpoint requires an API key. Grab one from your Dashboard. Keys start with ri_. Pass it as a Bearer token:
curl -H "Authorization: Bearer ri_your_key_here" \
https://api.radioindex.org/showsEach key has an hourly rate limit. Go over it and you get a 429 with a Retry-After header.
Search
Full-text search across shows, episodes, people, genres, loglines, and transcripts.
Base: https://search-api.the-archive-of-american-radio.workers.dev
GET /searchSearch episodes. Returns results with facets for filtering.
q required Search queryseries Filter by show IDgenre Filter by genrenetwork Filter by network (CBS, NBC, Mutual, etc.)dateFrom Start date (YYYY-MM-DD)dateTo End date (YYYY-MM-DD)page Page number (default: 1)GET /search?q=haunted+houseGET /allSearch across all types at once — shows, episodes, people, genres, loglines, transcripts.
q required Search queryGET /card/:idRich episode card — show name, cast, genres, and the previous/next episodes.
:id required Episode ID (in the URL)Each returns results matching the query. All take q as a required parameter.
GET /shows?q= Search shows by nameGET /episodes?q= Search episodes by nameGET /people?q= Search cast and crewGET /genres?q= Search genresGET /loglines?q= Search episode loglinesGET /transcripts?q= Search transcriptsGET /dates?pattern= Find episodes by broadcast dateShows
Browse and look up radio shows. Filter by network, genre, or year.
GET /showsList shows. All parameters are optional — call with no params to get everything.
GET /shows/:idGet a single show with its genres, networks, and 10 most recent episodes.
Episodes
Get episode metadata — title, logline, broadcast date, duration.
GET /episodesList episodes. At least one filter is recommended.
GET /episodes/:idGet a single episode. Use expand to include related data.
POST /episodes/batchFetch up to 100 episodes at once by ID.
People
Actors, writers, directors, and other contributors.
GET /peopleList people. Filter by name, role, or show.
GET /people/:idGet a person's profile — roles, top shows, Wikipedia photo.
Genres
All the genres in the catalog and how many shows and episodes each one has.
GET /genresList all genres. No parameters.
GET /genres/:idGet a genre with its top shows.
Airdates
Look up what aired on a specific date, browse by year and month, or pull a date range.
GET /airdatesList dates that have episodes. Filter by year and month.
GET /airdates/:dateGet all episodes that aired on a specific date.
GET /airdates/rangeGet episodes in a date range.
Files
Audio file metadata — duration, bitrate, sample rate, and quality grade.
GET /filesList audio files. You must pass either episode or show.
GET /files/:idGet a single file with audio quality metrics.
Base URL for all authenticated endpoints: https://api.radioindex.org
Pagination
Every list endpoint uses cursor-based pagination. The response includes a cursor you pass to get the next page.
Default page size is 50. You can change it with ?limit=, max 100. When has_more is false, you're at the end.
Errors
Errors come back with a standard HTTP status code and a JSON body.
400Bad request — missing or invalid parameters401Unauthorized — missing or invalid API key404Resource not found429Rate limit exceeded500Internal server errorFor LLMs
Machine-readable docs that follow the llms.txt spec.