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
| Parameter | Type | Default | Max | Description |
|---|---|---|---|---|
q | string | — | 200 | Search term (required) |
limit | integer | 20 | 100 | Maximum 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
| Field | Type | Description |
|---|---|---|
results | array | Matching episodes (same format as the Episodes endpoint) |
query | string | The search term used |
total | integer | Number 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