Skip to content

Radio metadata API

The track now playing on any radio station, through a single API.

Artist, title and cover art, normalized and up to date, whatever the source: ICY streams, publisher APIs or hosting platforms. One request, one clean JSON response.

Free tier, no credit card · Key in 1 minute · Hosted in Europe

Live

For developers

One request. One clean response.

Identify a station by slug or UUID and get the current track in milliseconds, served from cache.

  • Stable, documented format (OpenAPI), errors as problem+json
  • Explicit status: ok, talk, stale or unavailable
  • Key in the Authorization or X-API-Key header, open CORS

Request

curl "https://api.radio-nowplaying-api.sacha-cohen.fr/v1/stations/radio-paradise/now-playing" \
  -H "Authorization: Bearer rnp_live_YOUR_KEY"

Response

{
  "station": {
    "id": "01a10c37-9fc9-70eb-9836-cd8cedeef9ab",
    "slug": "radio-paradise",
    "name": "Radio Paradise"
  },
  "now_playing": {
    "artist": "Joe Jackson",
    "title": "Fools in Love (Live)",
    "cover_url": "https://img.radioparadise.com/covers/l/8125.jpg",
    "started_at": "2026-10-05T13:21:50Z",
    "duration_s": 274,
    "source": "http_json",
    "confidence": 90,
    "fetched_at": "2026-10-05T13:22:48Z"
  },
  "status": "ok"
}

How it works

Every source, one output.

Each station has an ordered chain of sources. We query the best one, fall back to the next on failure, then clean up and normalize the result.

ICY streams

Icecast, SHOUTcast

Publisher APIs

Radio groups, official sites

Hosting platforms

Streaming platforms

Normalization

  • · Per-station fallback chain
  • · Artist / title cleanup
  • · Ads and jingles filtering
  • · Cover art and timestamps
GET /v1/now-playing → One single API

Coverage that grows every day.

Active stations
275
Countries
1
Titling rate (24 h)
73%
Tracks detected (24 h)
2.5K

Figures computed live by the API and refreshed every 5 minutes.

Features

Everything you need to display live music.

  • Batch requests

    Up to 100 stations in a single call, counted as one request.

  • History

    The latest tracks played per station, cursor-paginated.

  • Real-time (SSE)

    Receive every track change via Server-Sent Events, no polling.

  • Signed webhooks

    An HMAC-SHA256 signed POST to your server on every new track.

  • Transparent quotas

    Limits visible in every response (headers) and in your dashboard.

  • Controlled keys

    Domain or IP restrictions, rotation with grace period, instant revocation.

Pricing

Start free, scale without friction.

No credit card for the free tier. Change plans anytime.

  • Free

    For testing and side projects

    €0/ month

    • 1,000 requests / day
    • 10 requests / second
    • Batch up to 100 stations
    • Last 20 tracks history
    Start for free
  • Popular

    Pro

    For production apps

    €19/ month

    • 100,000 requests / day
    • Real-time (SSE)
    • Signed webhooks
    • Last 200 tracks history
    Go Pro
  • Business

    High volumes and custom needs

    Custom

    • Custom quotas
    • Unlimited real-time and webhooks
    • Priority support
    • Dedicated sources
    Contact us

FAQ

Frequently asked questions

What exactly does the API return?

For each station: artist, title, cover art when available, start time, the source used and a status (ok, talk, stale, unavailable).

Which stations are covered?

Stations from all over the world, added continuously. The exact number of stations and countries is shown above and through the search endpoint.

Is the data really live?

Tracks are refreshed continuously for requested stations and served from cache. If data is too old, the status says so (stale) instead of misleading you.

Do you stream audio?

No. We only distribute metadata (artist, title, cover art), never audio streams.

Where does the data come from?

From public sources: ICY stream metadata, public publisher and hosting APIs. Every source is reviewed and its legal status tracked.

What does the free tier include?

A daily request quota, batch and recent history. The exact limits of each plan are listed in the Pricing section.

How do I get real-time updates?

On eligible plans, open a Server-Sent Events stream on a station, or register a signed webhook called on every new track.

My station isn't covered yet, what can I do?

Get in touch: we regularly add new stations and sources.

Show live music today.

Create an account, generate your key and make your first call in under a minute.