Show what your station is playing, anywhere
Fetch your station's current track as JSON, drop it onto your website with a few lines of code, and hand the classic formats to radio directories.
Your station publishes what's playing right now as a small public feed. Put it on your own website, hand it to a radio directory, or wire it into an app — no key, no sign-in, and without touching your audio stream.
Find your station key
Every request needs your station key — the short name that identifies your station. It is the last part of your MP3 direct link. Open Share in your dashboard, copy the MP3 direct link, and read the key off the end.
https://listen.stream.nobexpartners.com/station_moonlightfm
^^^^^^^^^^^
your station keyNote
Your station ID works anywhere the key does, so either one is fine if you already have it to hand.
The now playing feed
This is the one to use for anything you build yourself. It answers immediately, with no authentication.
https://streaming-api.nobexpartners.com/public/stations/YOUR-KEY/now-playing{
"online": true,
"listeners": 42,
"max_listeners": 100,
"now_playing": {
"title": "Backseat Star",
"artist": "The Hold Steady",
"album": null
},
"updated_at": "2026-09-01T09:14:22.481Z"
}| Field | What it tells you |
|---|---|
online | Whether the station is broadcasting right now. |
listeners | People tuned in at this moment. |
max_listeners | The listener ceiling on your plan. |
now_playing.title | The track title, or the show name during a live broadcast. |
now_playing.artist | The artist, when the track carries one. May be absent. |
now_playing.album | The album, when known. Often null — treat it as optional. |
updated_at | When this snapshot was taken. |
Check `online` before you show a title
now_playing is null when nothing is on air, and a live show carrying no track information reports the show name rather than a song.
Put it on your website
Drop this anywhere in your page and change the key on the first line. It keeps itself up to date, and it fails quietly — if one refresh does not come back, the last known track stays on screen instead of flashing an error at your listeners.
<div id="now-playing">...</div>
<script>
var STATION = "YOUR-KEY";
var el = document.getElementById("now-playing");
function refresh() {
fetch("https://streaming-api.nobexpartners.com/public/stations/" + STATION + "/now-playing")
.then(function (res) { return res.json(); })
.then(function (data) {
var track = data.now_playing;
if (!data.online) { el.textContent = "Off air"; return; }
if (!track || !track.title) { el.textContent = "On air"; return; }
el.textContent = track.artist
? track.artist + " \u2014 " + track.title
: track.title;
})
.catch(function () {
// Keep whatever is already on screen.
});
}
refresh();
setInterval(refresh, 20000);
</script>Style the #now-playing element however you like — the script only sets its text.
Formats for directories and players
Radio directories and older player software expect two long-standing formats rather than JSON. Your station answers both, and it answers them on your stream host as well as the API — so a directory that only has your stream URL can find them without being told where to look.
https://listen.stream.nobexpartners.com/station_YOUR-KEY/currentsong
The Hold Steady - Backseat Starhttps://listen.stream.nobexpartners.com/station_YOUR-KEY/7.html
<HTML><BODY>42,1,58,100,42,128,The Hold Steady - Backseat Star</BODY></HTML>The 7.html values are comma-separated, in the order these tools expect: current listeners, on-air status, peak listeners, listener ceiling, unique listeners, bitrate, then the track. A trailing ?sid=1 is accepted and ignored.
How often to refresh
- Every 15 to 30 seconds. Each answer is cached for ten seconds, so asking more often returns the same thing and gains you nothing.
- Expect up to ten seconds of lag on a track change. That is the cache, plus whatever your listeners’ players have buffered — not a fault.
Do not read titles from the audio stream
Some tools get the current track by connecting to the MP3 stream and pulling it apart. Use the endpoints above instead: they answer instantly, they cost you no bandwidth, and repeatedly opening the audio stream counts against you as though someone were listening — those requests get rate-limited.
If something looks wrong
| What you see | What it means |
|---|---|
| An empty title | The station is reachable but nothing is playing, or a live broadcast is carrying no track information. This is a normal answer, not an error. |
404 | The station key does not match a station. Check it against your MP3 direct link — it is the part after station_. |
"online": false | Nobody is broadcasting. Start your station and the feed follows within a few seconds. |
| The title lags the audio | Up to ten seconds of caching, plus your listeners’ own player buffer. Expected. |
Do I need an API key to read my station metadata?
No. The now playing feed and the directory formats are public and read-only. There is nothing to sign, and no key to keep secret.
How do I show the current song on my own website?
Fetch the now playing feed and write the title into an element on your page. The guide above includes a snippet you can paste in and edit — change the station key on the first line and it works as-is.
Can radio directories read my now playing information automatically?
Yes. Your station answers the two formats directories expect — currentsong and 7.html — on the same host as your stream, so most directories pick them up without any configuration from you.
How current is the information?
Answers are cached for ten seconds, so a track change can take up to ten seconds to appear. Refreshing every 15 to 30 seconds keeps a page comfortably in step.
Need something these do not cover — recently played history, or a feed that pushes to you instead of being polled? Tell support what you are building.
Keep reading
Ready to put this into practice?
Start free and be on air in under five minutes — no software to install.
Start streaming free