Radio Airplay Tracker - Was My Song Played? iHeart & BBC Spins
Pricing
from $2.00 / 1,000 spins
Radio Airplay Tracker - Was My Song Played? iHeart & BBC Spins
Find every new spin of your songs and artists on iHeart stations (optional BBC): station, market, time. Metadata-based, no audio fingerprinting; scheduled runs return only new spins. Unofficial APIs, see README risks. Failed stations are never charged.
Pricing
from $2.00 / 1,000 spins
Rating
0.0
(0)
Developer
mohamed alaya
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a month ago
Last modified
Categories
Security
Limited permissionsShare
Tells you when your songs and artists are played on iHeart radio stations (about 3,600 US stations listed, around 90% publish what they play) and, optionally, BBC Radio. Built for independent artists, labels and radio pluggers who want proof of airplay without paying a monitoring subscription. Schedule it and each run returns only new spins.
It reads the "now playing / recently played" metadata that stations publish. There is no audio fingerprinting, so it sees what the station's playout system reports, not what the transmitter actually broadcast.
Input examples
Watch your artist name and one song on the 300 biggest stations, check every 3 hours (schedule it):
{ "artists": ["Olivia Dean"], "songs": ["The Weeknd - Starboy"], "maxStations": 300, "historyPerStation": 40 }
Only hip hop stations in New York and California:
{ "artists": ["My Artist Name"], "genres": ["Hip Hop"], "markets": ["New York", "CA"], "maxStations": 500 }
Whole iHeart network, once a day (raise the history so a busy station is covered):
{ "songs": ["Artist - Title"], "maxStations": 4000, "historyPerStation": 300, "lookbackHours": 24 }
{} works: with nothing to watch it returns a free sample of the latest spins from the 60 biggest stations.
Input guide
| Field | Meaning |
|---|---|
artists, songs | What to watch. Songs may be Artist - Title. Matching ignores case, accents, punctuation and "(feat. ...)". |
stationIds, stationNames, markets, genres | Which stations to scan. Several filters are combined (all must match). |
maxStations | Cap on stations, biggest audience first. |
historyPerStation, lookbackHours | How many recent plays per station to check, and how far back to report. |
newOnly, stateStoreName | Report each spin once (remembered in a named key-value store). |
includeBbc, bbcServices | Optional BBC Radio now-playing feed (off by default). |
maxSpins | Safety cap per run. |
Output fields
| Field | Meaning |
|---|---|
type | spin, or error for a station that failed. |
matched, matchedType | Which watch entry matched, and whether it was an artist or song entry. |
artist, title, album, durationSec | The play as reported by the station. |
playedAt | When the play started (UTC). For BBC this is empty; see firstSeenAt. |
stationId, stationName, callLetters, frequency, band | The station. |
market, state, genre, stationListeners | Market, state, format, and iHeart's audience figure for the station. |
source | iheart or bbc. |
Sample row:
{"type":"spin","source":"iheart","matched":"Olivia Dean","matchedType":"artist","artist":"Olivia Dean","title":"A Couple Minutes","playedAt":"2026-10-04T21:30:48.000Z","stationId":"5902","stationName":"106.1 BLI","callLetters":"WBLI-FM","market":"Long Island","state":"NY","genre":"Top 40 & Pop","stationListeners":768100}
The run summary (key-value store record SUMMARY) includes spin counts per watched entry and weekly totals that accumulate across runs.
Use it with
- Apify schedule every 1-3 hours, then Slack / email / Google Sheets integration for new spins.
- A spreadsheet of "who played us" for pitching radio promoters or proving airplay to a label.
FAQ
How is this different from WARM or Radiomonitor? Those fingerprint broadcasts at thousands of stations worldwide. This Actor only reads iHeart's published metadata (and optionally the BBC's), so coverage is far narrower, but it costs cents.
Why does a scheduled run only return new spins? The Actor keeps the spin ids it already reported in the named key-value store. Delete that store to start fresh.
A station shows nothing. Why? Some stations (talk, some markets) publish no track metadata; those are skipped and not charged.
Honest limits and risks (please read)
- iHeart's API is unofficial. The endpoints are the public JSON the iHeart website and apps use. They are not a documented partner API, there is no SLA, and iHeart can change or block them at any time. iHeart's Terms of Use prohibit obtaining information "through any means not intentionally made available" through their site; the track-history feed is public and unauthenticated, and this Actor makes a small number of read requests, but you should decide for yourself whether that fits your use. Use it for your own airplay monitoring, not for republishing iHeart's data.
- BBC is opt-in and riskier. The BBC's robots.txt and terms say "no scraping, crawling or systematic extraction" and no dataset building. The BBC feed also has no exact timestamps and only the latest few tracks, so it needs a schedule of every 10-15 minutes. It is off by default.
- Metadata is a market-level log. It is not audio fingerprinting and not an official audit; it cannot prove a broadcast to a collection society.
- Only the last recent plays are available per station: schedule often enough that
historyPerStationcovers the gap. - Coverage is iHeart (US, plus a few BBC services). Not Spotify, not other radio groups.
Price
Pay per event: spin $0.002 per new spin returned, station-scanned $0.0003 per station read. Example: a scheduled run over 300 stations with 5 new spins = 300 x $0.0003 + 5 x $0.002 = $0.10. Demo spins (empty watch list), error rows and stations without metadata are free.