For developers
One music link in. Every platform out.
Matching a track across streaming services is a tar pit of near-identical titles, regional catalogues, and remasters. I match on ISRC first, the recording's actual identifier, and fall back to search only when I have to. You always know which one you got.
isrc GBARL9300135 · 3 direct · 2 search fallback
https://open.spotify.com/track/4cOdK2wGLETKBW3PvgPWqT
Never Gonna Give You Up
Rick Astley
isrc GBARL9300135 · 3 direct · 2 search fallback
Live demo
Not a screenshot. The real endpoint.
Paste any Spotify, Apple Music, YouTube Music, Deezer, Tidal, or SoundCloud link. What comes back is the real JSON from the same code path a paying key hits: same fields, same matching, same speed.
Pricing
Start at €4.99. Grow one step at a time.
Flat monthly plans, no per-call surprises. The price per 1,000 conversions drops the more you convert: from €1.00 on Starter down to €0.39 on Pro. Drag the slider to find where you land.
Your plan
Indie
€0.60 per 1,000
80% of the plan
Sandbox
Wire it up and see real JSON. Not for production traffic.
- 500 conversions / mo
- The real endpoint, full response
- No card required
Starter
€1.00/1kFor hobby projects and a first integration.
- 5,000 conversions / mo
- Bring your own platform keys
- Usage dashboard + API keys
Indie
€0.60/1kFor growing side-projects and small apps.
- 25,000 conversions / mo
- Higher burst limit
- Email support
Pro
€0.39/1kFor production apps that ship to real users.
- 100,000 conversions / mo
- Email support
- Volume rate on every call
Every plan includes the whole resolver: every platform, ISRC-first matching, the honest search fallback. Cached repeat links come back free. Access is invite-only for now. Join the waitlist and I'll send you a key with your own budget.
How it works
ISRC first, search second
Every commercially released recording carries an ISRC, the same identifier on every platform. When I can read it from the source, I look up that exact code everywhere else. When a platform doesn't expose one, I match on artist and title instead, verify it, and flag the difference.
The identifier route
Every commercially released recording carries an ISRC. When I can read it from the source platform, I look up that exact code everywhere else. No guessing which “Anniversary Remaster” you meant.
The honest fallback
Some platforms don't expose an ISRC, and some catalogues just don't carry the track. Then I match on artist and title and flag it with isSearchFallback: true, so your code decides what to do with it.
A verification gate for every match
Every text-based match passes a duration check (±4s), a title and artist match, and a guard against covers, remixes, and live takes claiming to be the original. An exact ISRC hit skips this: the code already is the recording's identity.
Cross-platform ISRC rescue
One recording can carry several ISRCs, and platforms don't always agree on which. MusicBrainz bridges Spotify and Deezer when they disagree, still behind the same verification gate.
YouTube gets the same verification
A YouTube link is a source too. I derive a title and artist from the video, then search Spotify, then Deezer, then Apple Music, and only trust the result once it verifies.
SoundCloud is the one gap in the target list: no free metadata source, so its link comes from a plain search URL I generate myself, not a verified match. Paste a SoundCloud link as your source, though, and I can't read it at all. That case goes to Odesli end to end: no self-serve paid plan, about 10 requests a minute, and required attribution. Limits SongPort doesn't have.
Playlists and podcasts aren't in scope. Albums are in scope: they resolve at release level via UPC, with the same cross-platform matching tracks get. I'm not a catalogue or a metadata provider. Title, artist, and artwork come along for the ride, but they aren't the product.
Access
I open access in small groups
I issue keys by hand, so I can watch what the matching does under your traffic before you depend on it. Leave your address and tell me what you're building: that's what decides who goes first.
Read the full reference
Every field, every status code, the versioning promise, and the rate limits. All before you commit to anything.