How to find the ISRC of a track already on streaming
15 · · 14 min read · Español
Search the International ISRC Database at isrcsearch.ifpi.org. It is free, it needs no account, and it takes a half-remembered title as readily as a code. If the recording is not in there, the code is with whoever assigned it, and the standard says they owe it to you. What none of this buys you is authority: every route below returns the code a service was handed, which is not always the code that was assigned.
- The International ISRC Database is searchable free of charge and without an account. It covers repertoire submitted to SoundExchange, so an empty result is not proof that a recording has no code.
- Whoever assigned the code owes you its details. Where a distributor assigned it, handing them over is a duty written into the standard.
- Spotify publishes the code in its Web API rather than on the page, on the track object’s
external_ids, which needs a registered app and an access token to read. - Apple Music’s API runs the query in both directions, and warns that one ISRC may return more than one song.
- MusicBrainz answers at
musicbrainz.org/isrc/<code>, free and without an account, from data its community enters.
Why isn’t the code on the page?
Because it was never written for a listener. The ISRC identifies a recording to the systems that pay for it, so it travels in the delivery metadata rather than on the page you are looking at.
Spotify files it exactly there in its own glossary for artists, where metadata is “the collection of liner-notes information embedded in a digital music file” — what you can see on the page, plus “back-end data like release year, label, producer, and identifiers such as ISRC or ISWC.” Back-end is the operative half. The artwork is for you. The code is for the accounting.
Which makes it sound obscure, and it is the opposite of obscure. Linnaeus fixed two Latin words to every living thing on earth so that a botanist in Uppsala and a botanist in Java could prove they meant the same plant. Yours is twelve characters and nobody prints it on the sleeve. The four parts of that string, and what each one means, are taken apart properly in fixing a wrong ISRC after release. This page is only about getting your hands on it.
Where can you look one up for free?
The International ISRC Database, at isrcsearch.ifpi.org. The International ISRC Agency’s own search page states the terms plainly: “You can search in our database free of charge at any time to see if a recording is registered,” and “This search facility is powered by SoundExchange.”
You do not need the code to start. The Agency’s FAQ answers the case where you have almost nothing to go on — “You can search free-of-charge in the International ISRC Database, which uses fuzzy matching and will return details to any very basic query.” A title and an artist name is a query. The same database is served at isrc.soundexchange.com, because SoundExchange operates it: the Agency describes an agreement with SoundExchange, “which operates the largest high quality database of ISRC in the world, gathered direct from recording rights owners globally.”
Now the part that matters more than the search box, and that nothing else writing about this bothers to say. An empty result is not a missing code. The Agency is explicit about what its database contains and where the gaps come from:
The international ISRC database references repertoire data submitted to Soundexchange and is updated on a daily basis. If the recording you are searching for does not appear, it may be because the Soundexchange database has not completed its daily update, or the repertoire has not been submitted to Soundexchange.
And the sentence underneath that one, about the route most of this audience actually used: “If you used a music distributor to assign ISRC, the music distributor may or may not enter the data into the International ISRC Database.” May or may not. That is the whole coverage guarantee, stated by the people who run it.
So a blank result means the database has not been told, not that the recording is unclaimed. Get that backwards and you go and have a second code assigned to a recording that already has one — which is a self-inflicted duplicate, and two ISRCs on one recording is a bad week you can skip entirely. Getting the data in there is the registrant’s job, incidentally, not the database’s: the standard says registrants should ensure the details of a recording and its ISRC are supplied to all relevant repertoire databases.
What about the copy you were already given?
Ask whoever assigned the code. If that was a distributor, handing you the details is not a courtesy — it is a condition of the role the standard let them play.
The ISRC Handbook’s annex on ISRC Managers is the relevant text, and it is short: once assigned, the details of assigned ISRCs shall be provided by the ISRC Manager to the owner of the recording, who uses that ISRC to identify the recording in all circumstances thereafter. Not may. Whether you got a code out of your own prefix or somebody else’s is a decision made before delivery, and it changes who holds the register — it does not change whether you are entitled to the code.
So it is in the dashboard. It has been in the dashboard the whole time, three menus down, in a release detail view or a CSV export nobody has ever opened on purpose, and you went to a search engine first because nothing in that interface has ever once suggested the number mattered. It was your code the entire time. You still had to go and fucking find it. Look there before you look anywhere else — it is the only route on this page that tells you what was actually assigned rather than what somebody was sent.
The same rule survives a sale. Sell or license a recording on unchanged and its ISRC does not change; the standard puts the duty on the original Registrant to tell the new owner what the code is.
How do you get the ISRC of a Spotify track?
From the Web API, not from the page. A track carries an external_ids object, and the isrc field inside it is the International Standard Recording Code — Spotify’s own reference for the track endpoint says so in those words.
The identifier the endpoint wants is the string at the end of a share link. Copy the song link, take everything after /track/ and before the question mark, and that is the track you are asking about.
Then the toll. Reading one public field requires, in Spotify’s own account of it: logging into the developer dashboard with a Spotify account, creating an app, taking the credentials that “will be required for API authorization to obtain an access token,” and using that token on the request. There is also a line in the Getting started section that is worth reading twice if you are an artist looking up your own recording — “Note: You need a Spotify Premium account to use the Web API.”
None of that is a scandal and none of it was built to keep you out. It is an interface for developers, doing what interfaces for developers do. It is worth being clear-eyed about the shape of it, though: the fastest route to twelve characters that describe your own recording runs through a subscription and an OAuth flow, and the free database two sections up exists partly because that is true.
How do you get it from Apple Music?
The Apple Music API carries the ISRC on the song, and it runs the query in the other direction as well. The endpoint Get Multiple Catalog Songs by ISRC exists to “Fetch one or more songs by using their International Standard Recording Code (ISRC) values,” taking a filter[isrc] parameter on the catalogue songs endpoint in place of a list of Apple identifiers, up to twenty-five at a time.
Which is genuinely useful in the other direction: hand it a code out of your register and it tells you every listing in a storefront that answers to it. Apple attaches the warning that makes this section worth reading: “Note that one ISRC value may return more than one song.”
Read that carefully, because it is not a bug and it is not a duplicate. One recording has one code, and that one code can be sitting under a single, a deluxe edition, a compilation and a regional release all at once — four listings, one recording, one ISRC. That is the system working. Two different codes on one recording is the failure, and which version is entitled to its own code is decided by written rules rather than by how the release looks.
The toll here is steeper than Spotify’s and Apple states it flatly: “To make requests to the Apple Music API, you need to authorize yourself as a trusted developer and member of the Apple Developer Program.” The token has to be signed with a MusicKit private key using ES256, and Apple rejects unsecured tokens or tokens signed any other way. Paid membership, a key, and a signing step, to read one field.
Is there anywhere else free to look?
MusicBrainz. The address musicbrainz.org/isrc/ followed by a code lists every recording in the database carrying it, with no account and no token, and the API answers the same question at /isrc/<isrc>.
It describes itself as “a community-maintained, open source encyclopedia of music information,” run by a non-profit foundation, and that cuts both ways. A recording that is in there is often in there with more detail than a store will give you. A recording that is not in there proves nothing at all — less, even, than a blank result from the ISRC Database, which at least has a stated source. Treat what you find as a lead you then confirm against your distributor or the code you assigned.
Two house rules if you go near it with a script rather than a browser, both of them MusicBrainz’s own words rather than ours: “All users of the API must ensure that each of their client applications never make more than ONE call per second,” and it is important that your application sets a proper User-Agent string in its request headers. It is a non-profit answering for free. Hammering it is not clever.
MusicBrainz is also unusually clear-headed in its documentation of the code itself: an ISRC identifies sound recordings and not the song, and different recordings, edits, remixes and remasters of the same song each get their own. Which is the same rule the standard states and the same one the stores enforce, from a third direction.
What if two sources show different codes?
Then the lookup worked. Two live codes on one recording is a duplicate; a code that does not match your own register is a delivery that went out wrong. They are different problems with different repairs, and the first job is telling them apart.
Every one of those cases has a rule sitting behind it in the ISRC Handbook, the standard’s own rulebook, 4th Edition, 2021:
| What you are looking at | What the standard says | The rule |
|---|---|---|
| Two different codes, both live, one recording | Each distinct recording gets one and only one ISRC, and any ISRC belongs to one and only one recording | 4.1 |
| A code you have never seen before | Whoever assigned it must supply the details of every code they assign to the owner of the recording | Annex D |
| A prefix you do not recognise | The characters of the prefix cannot be assumed to identify a current rights owner | 3.3.1 |
| A recording you sold or licensed on | The ISRC does not change, and the original Registrant must inform the new owner what it is | 4.6 |
| A code that is in no database anywhere | Registrants should ensure the recording’s details and its ISRC reach all relevant repertoire databases | 4.7 |
| A code you were hoping proves ownership | Assignment of an ISRC does not affect ownership in any way | A.14.6 |
Two live codes is the repair described in two ISRCs on one recording, and there is less to salvage than you would hope. One code that is simply wrong — a typo, somebody else’s code, a code for the wrong version — is its own procedure, in its own order, and doing it out of order costs you the streams.
What you should not do is ask anyone to change anything on the strength of a single lookup. Check the code against your register first. If the two agree, the answer was never in doubt and you have just confirmed it from outside, which is worth ten minutes. If they disagree, you now know which of the two problems you have, which is worth considerably more.
Every route on this page answers the same narrow question: what code is a particular service carrying today; the UPC of the release it sits on rides the same APIs, one object up, and is its own piece. None of them answers who assigned it, or when, or out of whose prefix — the standard forecloses that reading of a code outright, and it goes further, because assignment does not touch ownership at all. The code that was assigned lives in the register the assigner kept.
Which is the argument for that register being yours. One recording, one code, written down the day it was assigned, in something that will outlive the dashboard you found it in — the catalogue audit checklist is what that looks like when somebody keeps it properly. Do that, and this entire page becomes a way of checking somebody else’s work rather than reconstructing your own.
FAQ
Can you find an ISRC from a Spotify link?
Yes, through the Web API rather than the page. The track identifier at the end of a share link goes to the Web API’s track endpoint, which returns the code in the track’s external_ids object.
Can you find out who owns a recording from its ISRC?
No. The ISRC Handbook says the characters of the prefix cannot be assumed to identify a current rights owner, and that assignment of a code does not affect ownership in any way. The code identifies the recording, not whoever holds it today.
Is a recording’s ISRC public?
The code a service was delivered is published through that service’s API, and codes registered with SoundExchange are searchable free of charge in the International ISRC Database. Who assigned the code, and what else that prefix has issued, are not public.
A store shows a code you do not recognise. Is it wrong?
Not necessarily. Changing distributors or redelivering a release can put a second code on the same recording, which is a duplicate rather than a failed lookup. Check it against your own register before you ask anyone to change anything.
Sources
- International ISRC Agency, ISRC Search — that the database can be searched free of charge at any time to see whether a recording is registered, and that the facility is powered by SoundExchange.
- International ISRC Agency, FAQs — fuzzy matching on a very basic query; what the database references and how often it updates; that a distributor may or may not enter assigned codes into it; and the agreement with SoundExchange behind the data.
- International ISRC Database, isrcsearch.ifpi.org — the search itself, also served at
isrc.soundexchange.com. - IFPI, ISRC Handbook, 4th Edition (2021) — one code per recording in both directions (4.1), what the prefix cannot be read to mean (3.3.1), the code’s survival of a sale and the duty to inform the buyer (4.6), the duty to supply details to repertoire databases (4.7), assignment against ownership (A.14.6), and the ISRC Manager’s duty to hand assigned codes to the owner (Annex D). Clause codes in the table link to their page in the PDF.
- Spotify for Artists, Glossary of music industry terms — metadata as liner-notes information embedded in the file, with identifiers such as ISRC named as back-end data.
- Spotify, Web API reference: Get Track — the
external_idsobject and itsisrcfield. - Spotify, Web API — the dashboard, the app credentials required to obtain an access token, and the note that a Premium account is needed to use the Web API.
- Apple, Apple Music API: Get Multiple Catalog Songs by ISRC — fetching songs by their ISRC values with
filter[isrc], the limit of twenty-five, and the note that one ISRC may return more than one song. - Apple, Generating developer tokens — Apple Developer Program membership, the MusicKit private key, and the ES256 signing requirement.
- MusicBrainz, API documentation — the
/isrc/<isrc>lookup, the one-call-per-second limit, and the User-Agent requirement. - MusicBrainz, About — a community-maintained, open source encyclopedia of music information, operated by the non-profit MetaBrainz Foundation.
- MusicBrainz, ISRC — that an ISRC identifies sound recordings rather than songs, and that edits, remixes and remasters each take their own.
Every page cited here was read on the date at the top of this piece. Developer interfaces, endpoints and their terms change without notice, and what a service publishes today it can stop publishing tomorrow — confirm anything operational against that service’s own documentation before you build on it. None of this is legal advice.
Keeping the register
Doing this once is an afternoon. Doing it across a catalogue is what CatalogTracker is for: import a discography by artist name, Apple Music URL or streaming link and it fills the ISRC in from MusicBrainz, with Apple Music enrichment behind the OS permission prompt if you allow it, and it tells you plainly when a match failed instead of reporting a clean success. The code then sits on the track beside the version and the recording type, search reads the identifiers directly, and every change is kept with who made it and what it was before. Two honest limits: the import asks MusicBrainz one question per second by design, so a deep catalogue is a background job rather than a moment; and looking a recording up anywhere means sending its details somewhere, including here. In development for iPhone.