ISRC Lookup API: Get Streaming Links From Any ISRC
An ISRC (International Standard Recording Code) is a 12-character identifier assigned to every unique recording. It looks like GBARL9300135. If you have one, MusicLink can resolve it to streaming links across every major platform in a single API call — something the old Odesli API never supported.
#What Is an ISRC?
ISRCs follow the format CC-XXX-YY-NNNNN:
CC— country code of the registrant (e.g.GB,US)XXX— registrant code (identifies the label or distributor)YY— last two digits of the year the ISRC was assignedNNNNN— designation code (unique within the registrant + year)
Example: GBARL9300135 is "Never Gonna Give You Up" by Rick Astley.
ISRCs are the gold standard for identifying music because they're global, permanent, and platform-independent. A Spotify track ID, Apple Music ID, and Deezer ID can all point to the same ISRC.
#Looking Up an ISRC
Pass the bare ISRC to the ?q= auto-detect endpoint, or use the explicit /isrc/ path:
# Auto-detect (recommended)
curl "https://api.ml.jadquir.com/v1/v1/lookup?q=GBARL9300135" \
-H "Authorization: Bearer YOUR_API_KEY"
# Explicit
curl "https://api.ml.jadquir.com/v1/v1/lookup/isrc/GBARL9300135" \
-H "Authorization: Bearer YOUR_API_KEY"Response:
{
"success": true,
"data": [{
"public_id": "huUKtw-D",
"url": "https://ml.jadquir.com/song/rick-astley/never-gonna-give-you-up",
"title": "Never Gonna Give You Up",
"artist": "Rick Astley",
"isrc": "GBARL9300135",
"image_url": "https://is4-ssl.mzstatic.com/image/thumb/...",
"links": {
"musiclink": "https://ml.jadquir.com/song/rick-astley/never-gonna-give-you-up",
"spotify": "https://open.spotify.com/track/4cOdK2wGLETKBW3PvgPWqT",
"apple_music": "https://music.apple.com/album/never-gonna-give-you-up/1559885420?i=1559885421",
"youtube": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"youtube_music":"https://music.youtube.com/watch?v=dQw4w9WgXcQ",
"deezer": "https://www.deezer.com/track/15646529",
"tidal": "https://listen.tidal.com/track/491206012",
"soundcloud": "https://soundcloud.com/rickastleyofficial/never-gonna-give-you-up",
"amazon_music": "https://music.amazon.com/albums/...",
"qobuz": "https://open.qobuz.com/track/385574059"
}
}]
}#Why Odesli Didn't Support ISRCs
The old Odesli API (api.song.link/v1-alpha.1/links) only accepted platform URLs or platform-specific IDs — you had to know which platform the recording was on and pass a URL from that platform. There was no way to pass a bare ISRC.
MusicLink resolves ISRCs directly, which is more useful when you're working with rights management data, metadata databases, or any system that stores ISRCs rather than platform-specific IDs.
#TypeScript Example
async function lookupByIsrc(isrc: string) {
const res = await fetch(
`https://api.ml.jadquir.com/v1/v1/lookup?q=${isrc}`,
{ headers: { Authorization: `Bearer ${process.env.MUSICLINK_API_KEY}` } }
);
if (!res.ok) return null;
const { data } = await res.json();
return data[0] ?? null;
}
const track = await lookupByIsrc("GBARL9300135");
console.log(track.title); // "Never Gonna Give You Up"
console.log(track.artist); // "Rick Astley"
console.log(track.links.spotify); // Spotify URL
console.log(track.links.apple_music); // Apple Music URL
console.log(track.url); // Shareable MusicLink page#Where to Get ISRCs
From Spotify: The Spotify Web API returns the ISRC in the track object:
const track = await spotify.tracks.get("4cOdK2wGLETKBW3PvgPWqT");
const isrc = track.external_ids.isrc; // "GBARL9300135"From Apple Music: The MusicKit API includes isrc in track attributes.
From music databases: MusicBrainz (musicbrainz.org) has ISRCs for millions of recordings and a free API.
From distributors: If you're a label or distributor, ISRCs are assigned by DistroKid, TuneCore, CD Baby, or your PRO at registration time.
#Why ISRC Is Better Than Platform IDs
Platform IDs are fragile — Spotify IDs can change when a track gets re-uploaded, Apple Music IDs differ by country, and Deezer IDs are internal. An ISRC never changes.
| Input type | Stability | Matches exact recording |
|---|---|---|
| ISRC | Permanent | Always |
| Spotify ID | Changes on re-upload | Usually |
| Apple Music ID | Country-specific | Usually |
| Title + artist text search | Ambiguous | Sometimes |
For any application where accuracy matters — rights management, royalty tracking, playlist sync — use ISRC as your primary key.
#Handling Missing Links
Not every track is on every platform. Check before using:
const track = await lookupByIsrc(isrc);
const appleLink = track?.links.apple_music;
const spotifyLink = track?.links.spotify;
if (!appleLink) {
// Track not available on Apple Music in our data.
// Fall back to the shareable MusicLink page.
return track?.url;
}MusicLink returns whatever links it can find. Regional restrictions and catalog differences mean some platforms may be absent.
#Free Playground
You can test any ISRC right now at ml.jadquir.com — paste the ISRC in the search box, no sign-up required.