API Reference
All endpoints are read-only and require no authentication. Base URL for station endpoints:http://localhost:3000
Station
GET
/api/now-playingReturns the current track playing on the live stream.
{
"title": "In Too Deep",
"artist": "Genesis",
"listeners": 3,
"streamUrl": "http://192.168.1.103:8000/live",
"online": true
}GET
/api/current-showReturns the show currently on air based on the WordPress schedule.
{
"show": "The Morning Mix",
"day": "Wednesday",
"time": "9:30"
}GET
/api/statsReturns listener count and stream online status.
{
"listeners": 3,
"online": true
}GET
/api/healthHealth check for all services. Returns 200 if all ok, 503 if degraded.
{
"status": "ok",
"timestamp": "2026-06-04T10:00:00.000Z",
"services": {
"icecast": { "ok": true, "listeners": 3 },
"wordpress": { "ok": true, "latencyMs": 45 }
}
}Content (WordPress)
GET
/wp-json/station/v1/showsReturns all published shows.
[
{
"id": 1,
"title": "The Morning Mix",
"slug": "the-morning-mix",
"description": "...",
"image": "http://advradio.dev/...",
"genres": ["Pop", "Dance"],
"hosts": ["DJ Jim"],
"acf": {}
}
]GET
/wp-json/station/v1/shows/:slugReturns a single show by slug.
{ "id": 1, "title": "...", "slug": "...", ... }GET
/wp-json/station/v1/episodesReturns episodes. Optional ?show_id=1 to filter by show.
[{ "id": 1, "title": "...", "date": "...", "acf": {} }]GET
/wp-json/station/v1/scheduleReturns all schedule blocks ordered by start time.
[{ "id": 1, "title": "The Morning Mix", "acf": { "day": "Monday", "start_time": "09:00", "end_time": "11:00" } }]