EnzonicRadio Powered by Enzonic

For developers

Radio API

Everything the radio.enzonic.com player uses is open: what is on air, what comes next, every track and every artist. JSON over HTTPS, no key, Access-Control-Allow-Origin: * on every answer and on the audio and art files, so a page anywhere can play the station and analyse its beat.

Credit the artists. Wherever you play or show this music, show the artist’s name and link their channel (artist.channelUrl). Every track in every answer carries its credit block for exactly that.

Base URL

https://radio.enzonic.com/api

Endpoints

GET/api/now-playingWhat is on air: the track with its artist credit, when it started, the position, when it ends, the next tracks and the audio URLs. ?station=enzonic-radio, ?next=1..10 (default 3). Cached for 5 seconds. Try it
GET/api/scheduleThe coming tracks with their start times. ?station=, ?count=1..50. Try it
GET/api/stationsAll stations, and /api/stations/{id} for one. Try it
GET/api/tracksEvery track with credits, art and audio, and /api/tracks/{slug} for one. Try it
GET/api/tracks/{slug}/beatsThe track’s strong bass hits as [ms, strength, strong] and a 10 Hz loudness envelope (base64 bytes, 0–255). Good for visuals without Web Audio. Try it
GET/api/hostsThe Enzonic Host clips: the station’s own announcer, on air between every two songs. Try it
GET/api/artistsThe artists: name, channel, subscribe link, avatar, banner, bio, track count, and the collaborators they credit. /api/artists/{id} for one. Try it

The Enzonic Host

Between every two songs the station plays a short host clip. In now-playing, schedule and next these items have "type": "host", "title": "Enzonic Host" and "artist": null (songs have "type": "track"). Show them as “Enzonic Host”; they are not in the tracklist or the artist credits. They play from streamUrl like any track.

Play it in sync

The station is a real radio: everyone hears the same moment. Ask what is on air, then start the audio at the live position. serverTime lets you correct for your own clock.

const res = await fetch('https://radio.enzonic.com/api/now-playing');
const np = await res.json();
const offset = np.serverTime - Date.now();          // station clock minus yours
const at = (Date.now() + offset - np.now.startedAt) / 1000;

const audio = new Audio();
audio.crossOrigin = 'anonymous';                     // keeps Web Audio analysis possible
audio.src = `${np.now.streamUrl}#t=${at.toFixed(2)}`;  // AAC, plays everywhere (Safari too)
await audio.play();                                  // call from a click: browsers block autoplay
// At np.now.endsAt, ask again and load the next track.

console.log(`${np.now.title} by ${np.now.artist.name} – ${np.now.artist.channelUrl}`);

Audio

Each track comes as Opus 128 kb/s (audio/webm) and AAC 160 kb/s (audio/mp4), loudness-matched to −14 LUFS so tracks play at an even volume. streamUrl is the AAC file; sources lists both. Files answer range requests (206 Partial Content) and are cached for a year (the ?v= changes when a file does).

A track

{
  "slug": "fortress",
  "title": "Fortress",
  "artist": {
    "name": "HexitX",
    "channelName": "kapie",
    "handle": "@hexitx",
    "channelUrl": "https://www.youtube.com/@hexitx",
    "subscribeUrl": "https://www.youtube.com/@hexitx?sub_confirmation=1",
    "avatar": "https://radio.enzonic.com/art/artists/hexitx.webp"
  },
  "youtubeUrl": "https://www.youtube.com/watch?v=U9alcCNIFZs",
  "uploadDate": "2025-09-23",
  "durationMs": 72669,
  "discArtBy": [{ "name": "HexitX", "url": "https://www.youtube.com/@hexitx" }],
  "art": { "square": "…/art/fortress-sq.webp?v=1", "wide": "…/art/fortress.webp?v=1", "youtube": "…" },
  "streamUrl": "https://radio.enzonic.com/audio/fortress.m4a?v=1",
  "sources": [{ "type": "audio/webm; codecs=opus", "url": "…" }, { "type": "audio/mp4; codecs=mp4a.40.2", "url": "…" }],
  "permission": "Played with the artist’s permission."
}

Fair use

Free for bots, sites and game servers. Please keep requests reasonable (now-playing once per track, not every second), and do not re-host or download the catalog: the music belongs to its artists and is here with their permission.