GET /api/radio/top
Returns the current Broadcastify Top 50 live audio feeds, scraped and cached for 5 minutes.Rate limit: 30 requests per minute per IP.
Response
An array of feed objects:Broadcastify feed ID. Used to construct the stream URL.
Current listener count.
Geographic location label (e.g.
"Los Angeles, CA").Feed name (e.g.
"LAPD Central Bureau").Feed category (e.g.
"Police")Direct MP3/AAC stream URL:
https://broadcastify.cdnstream1.com/{id}Example
GET /api/radio/openmhz/systems
Returns the full directory of OpenMHz trunked radio systems (450+ entries). Results are cached for 1 hour.Rate limit: 30 requests per minute per IP.
Example
GET /api/radio/openmhz/calls/
Returns recent trunked radio call recordings (.m4a audio bursts) for a specific OpenMHz system. Results are cached for 20 seconds.
Rate limit: 60 requests per minute per IP.
Path parameters
OpenMHz system short name (e.g.
wmata, sfpd). Obtain the full list from /api/radio/openmhz/systems.Example
GET /api/radio/nearest
Finds the single closest OpenMHz trunked system to the given coordinates using Haversine distance.Rate limit: 60 requests per minute per IP.
Query parameters
Latitude in decimal degrees (−90 to 90).
Longitude in decimal degrees (−180 to 180).
Example
GET /api/radio/nearest-list
Returns up to 20 nearest OpenMHz systems sorted by distance from the given coordinates.Rate limit: 60 requests per minute per IP.
Query parameters
Latitude in decimal degrees (−90 to 90).
Longitude in decimal degrees (−180 to 180).
Maximum number of systems to return. Accepts 1–20.