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. We match on ISRC first — the recording's actual identifier — and fall back to search only when we must, and tell you when we did.
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 actual JSON from the same code path a paying key hits — same fields, same matching, same speed.
How it works
ISRC first, search second
The identifier route
Every commercially released recording carries an ISRC. When we can read it from the source platform, we look up that exact code everywhere else. No guessing about which “Anniversary Remaster” you meant — it's the same recording or it isn't.
The honest fallback
Some platforms don't expose an ISRC, and some catalogues simply don't carry a track. Then we match on artist and title and hand back a search URL — flagged with isSearchFallback: true, so your code can decide whether to show it, hide it, or mark it as approximate.
Limits
What it doesn't do
You'll find this out on day two anyway, so here it is on day zero.
- 01Not every track exists on every platform. When a catalogue doesn't carry it, you get a search URL, not a fabricated deep link.
- 02YouTube has no ISRC to match on, so those links come from title matching. Treat them as good, not certain.
- 03Playlists and podcasts are still out of scope. Albums aren't — they resolve at release level via UPC, with the same reverse-ISRC and Apple multi-storefront logic tracks get.
- 04We're not a catalogue or a metadata provider. Title, artist and artwork come along for the ride; they aren't the product.
Under the hood
ISRC, UPC, and one honest fallback
Matching isn't a lookup table we maintain by hand. It runs on identifiers that mean the same thing on every platform — the ISRC for a recording, the UPC for a release — plus three problems that come with trusting that at scale.
A verification gate, not a guess
Every text-based match passes a duration check (±4s), a title/artist match and a guard that rejects 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. When Spotify and Deezer disagree, MusicBrainz is the free, published cross-reference that bridges them — still behind the same verification gate.
YouTube identified, not guessed
A YouTube link is read as a source too: we derive a title and artist from the video, then search Spotify, then Deezer, then Apple Music — and only trust the result once it verifies. Not just a similarly named video.
SoundCloud is the one gap left: no free metadata source, so it still goes to a fallback. That fallback is Odesli — which is also where its role ends today. Beyond that one case: no self-serve paid plan, roughly 10 requests a minute, and required attribution — limits SongPort doesn't have.
Built in public
Shipped this month, shipping next
This is an active build, not a finished product with a changelog nobody reads. Four points on the timeline — including today.
Album support. Albums now resolve at release level via UPC, with the same reverse-ISRC and Apple multi-storefront fallbacks tracks already had.
Pricing
We haven't set pricing yet
It's still too early to put real numbers on this. We'd rather set pricing we can stand behind than post a placeholder and quietly walk it back. Concrete plans are coming in the next few weeks.
The waitlist is how you hear first — and the people on it help shape what those plans end up being.
Access
We open access in small groups
Keys are issued by hand, so we can watch what the matching does under your traffic before you depend on it. Leave your address and tell us 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 — before you commit to anything.