Skip to main content

Search

Search your station's episodes by keyword.

Search episodes

GET /v1/search

Searches episode titles, show names, and presenter names. Returns matching episodes, newest first.

Query parameters

ParameterTypeDefaultMaxDescription
qstring200Search term (required)
limitinteger20100Maximum results to return

Response

{
"results": [
{
"id": 1234,
"title": "Morning Show - Interview with Jane",
"description": "This week we chat with Jane about community radio",
"image": "https://cdn.example.com/episodes/1234.png",
"datetime": 1707472800,
"audio_url": "https://cdn.example.com/audio/episode-1234.mp3",
"audio_length": 48000000,
"show": "Morning Show",
"show_id": 15
}
],
"query": "morning",
"total": 3
}

Fields

FieldTypeDescription
resultsarrayMatching episodes (same format as the Episodes endpoint)
querystringThe search term used
totalintegerNumber of results returned

What gets searched

The search checks three fields (case-insensitive):

  • Episode title — matches on any part of the title
  • Show name — matches on the show's title
  • Presenter name — matches on the presenter associated with the show

Filtering

The same filters apply as the episodes endpoint:

  • Only published shows
  • Only active, non-archived episodes
  • Only episodes with a publish date in the past

Examples

# Search for episodes mentioning "jazz"
curl -H "X-API-Key: your-key" \
"https://api.autopod.xyz/v1/search?q=jazz"

# Search with a limit
curl -H "X-API-Key: your-key" \
"https://api.autopod.xyz/v1/search?q=morning+show&limit=5"

Empty queries

If q is empty or not provided, the response returns an empty results array:

{
"results": [],
"query": "",
"total": 0
}

Search tips

  • Searches are case-insensitive — "Jazz" and "jazz" return the same results
  • The search uses substring matching — "morn" will match "Morning Show"
  • Search terms longer than 200 characters are truncated