What is playing on internet radio, right now.
Tuneping keeps a live "what's playing" index across tens of thousands of internet radio stations and serves it as a searchable API with play history and wishlist alerts. We read the public metadata channel every radio player receives, the title line, and never the audio.
Live, against the real index: · · ·
Base URL https://api.tuneping.com/v1 · metadata only · public beta: live endpoints open without a key
What you get
Live search
Ask "who is playing Blue Monday right now?" and get the stations, fuzzy and accent-insensitive, with a confidence score per match.
Now playing for your favourites
One request for a batch of station IDs returns the current title, when it was first seen and when it was last confirmed.
Play history
What a station played, with estimated start and end times, 7 days on Developer and 12 months on Pro and above.
Wishlist alerts
Name a song or artist and find out the moment a station starts playing it. Poll it, stream it over SSE or receive a webhook.
Tracks and artists
Titles are normalised and, where possible, linked to MusicBrainz identifiers so you can aggregate plays per track or artist.
Station directory
Tens of thousands of stations with country, codec and the method we use to read their metadata, searchable and filterable.
How it works
Every internet radio stream carries a small side channel with the current title, the same text your player shows. Tuneping reads that channel and nothing else.
Directory
We start from the public, community-maintained Radio Browser directory and probe each station once to find the cheapest place its title is published: the streaming server's public status endpoint or the in-stream metadata block.
Poll, politely
Every 20 to 60 seconds we read a few hundred bytes to about 16 KB per station, then close the connection. At most two connections per server at a time, robots.txt and Retry-After honoured. Details for operators.
Normalise
Titles are split into artist and track, classified as song, jingle, advert or station name, and matched against MusicBrainz where the text allows it. The start time is estimated and carries an explicit uncertainty.
Serve
Everything is exposed through a plain JSON API with ETags, rate-limit headers and edge caching, documented in an OpenAPI file and the API reference.
Honest limits
- Coverage depends on stations publishing titles. Many stations send nothing, only their own name, or adverts and slogans as the title. We mark those and do not invent data; the status page shows how many stations currently deliver live metadata.
- Song starts are estimates. A change detected at a poll happened somewhere in the previous interval, and streaming servers lag their own status pages by a few seconds. Every play carries a
start_uncertainty_sfield; expect roughly plus or minus 10 to 30 seconds depending on the method. - Metadata is not fingerprinting. Detection from station metadata is less complete than audio recognition services and is never a certified play count. Where plays are shown as evidence, say "detected from station metadata".
- Stations come and go. Streams move, die and change hands daily. A station can opt out at any time and disappears from the API within 24 hours.
- Text only. We return station names as text; logos and artwork are not part of the service.
Plans
Self-serve, B2B, all prices excluding VAT. Annual billing is ten times the monthly price. Paid plans open with the public beta; write to [email protected] for early access.
Free
€0
forever
- 1,000 requests per day
- 2 requests/s, burst 5
- Live search, batch now-playing (up to 20 stations), station directory
- Track and artist lookups
- 1 API key after e-mail verification
- Shows a visible "Data by Tuneping" link
Developer
€29 / month
or €290 / year
- 100,000 requests per month
- 10 requests/s, burst 20
- Batch now-playing up to 100 stations
- 7 days of play history
- 10 wishlists, polled or via SSE
- E-mail support within 2 business days
- No attribution required
Pro
€99 / month
or €990 / year
- 1,000,000 requests per month
- 50 requests/s, burst 100
- 12 months of play history
- 5 webhook endpoints with station, track and artist filters
- 100 wishlists, also delivered by webhook
- Play reports per track and artist
- 5 API keys, e-mail support within 1 business day
Business
from €349 / month
annual invoice, custom volume
- Custom request volume and rate
- 12 months of history plus aggregates beyond
- 20 webhook endpoints, unfiltered firehose allowed
- 1,000 wishlists, 20 SSE connections
- CSV / JSONL exports
- 99.5 % monthly SLA on reads, named contact
Run a station?
You may see TunepingBot/0.1 (+https://tuneping.com/bot) in your server logs. It reads your public status endpoint or the first metadata block of your stream every 20 to 60 seconds and nothing more. Everything about it, including the IP addresses it comes from and three ways to opt out that take effect within 24 hours, is on tuneping.com/bot. Questions: [email protected].