PUBLIC API

tilderadio, but machine-readable

Small JSON endpoints for now playing, recent tracks, the schedule, DJ profiles, and completed live episodes. No API key is required for these public read-only endpoints.

ENDPOINTS

/api/now/

Current track, listeners, live-DJ state, artwork, and recent history.

cache: about 10 seconds

/api/history/

The recent track history currently reported by the station.

cache: about 10 seconds

/api/schedule/

Upcoming schedule entries with Unix timestamps and UTC data.

cache: about 60 seconds

/api/djs/

DJ profiles merged with upcoming schedule information.

cache: about 60 seconds

/api/episodes/

Live and completed sets with resolved show/format metadata, stats, and automatic track logs.

cache: about 30 seconds

RESPONSE SHAPE

Every JSON response includes api_version, status, and updated_at. Existing endpoint fields remain at the top level so older consumers keep working.

{
  "api_version": 1,
  "status": "ok",
  "updated_at": 1786990000,
  "...": "endpoint-specific fields"
}
TERMINAL

The human-facing DJ and schedule pages notice curl/wget and answer with plain text instead of HTML.

curl https://tilderadio.org/now/
curl https://tilderadio.org/schedule/
curl https://tilderadio.org/djs/
curl https://tilderadio.org/episodes/
curl https://tilderadio.org/api/now/

Add ?format=text to /schedule/ or /djs/ to request text explicitly. Add ?format=html to force the normal page from a terminal client.

PUBLIC STREAMS