All guides
Grow your audience6 min read

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.

Your MP3 direct link
https://listen.stream.nobexpartners.com/station_moonlightfm
                                                ^^^^^^^^^^^
                                                your station key

Note

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.

Request
https://streaming-api.nobexpartners.com/public/stations/YOUR-KEY/now-playing
Response
{
  "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"
}
FieldWhat it tells you
onlineWhether the station is broadcasting right now.
listenersPeople tuned in at this moment.
max_listenersThe listener ceiling on your plan.
now_playing.titleThe track title, or the show name during a live broadcast.
now_playing.artistThe artist, when the track carries one. May be absent.
now_playing.albumThe album, when known. Often null — treat it as optional.
updated_atWhen 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.

HTML + JavaScript
<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.

Plain text — artist and title
https://listen.stream.nobexpartners.com/station_YOUR-KEY/currentsong

The Hold Steady - Backseat Star
Status line — counts and title
https://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 seeWhat it means
An empty titleThe station is reachable but nothing is playing, or a live broadcast is carrying no track information. This is a normal answer, not an error.
404The station key does not match a station. Check it against your MP3 direct link — it is the part after station_.
"online": falseNobody is broadcasting. Start your station and the feed follows within a few seconds.
The title lags the audioUp 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