ISRC validator and format guide
Paste one code or a whole column to check its structure, decode what each part means, and catch the duplicates that quietly split your royalties — or search MusicBrainz to find the ISRC behind a track.
Validation runs entirely in your browser — nothing you paste is uploaded or stored. The MusicBrainz check only runs when you ask for it.
What the 12 characters mean
An ISRC is always 12 characters, written as CC-XXX-YY-NNNNN. The hyphens are for readability only — the code itself is the 12 characters, and that is what belongs in a metadata field.
Two letters allocated by the International ISRC Agency. Usually an ISO 3166-1 country code, but it identifies the pool a registrant was issued from — not where the recording was made.
Three letters or digits identifying whoever assigned the code — a label, a distributor, or an individual artist. Only unique in combination with the prefix.
The last two digits of the year the code was assigned to the recording. Not the release year, and it never changes once assigned.
Five digits the registrant assigns in sequence. Must be unique within that registrant's codes for that year, which is what makes the full 12 characters unique.
What a validator can and cannot tell you
Unlike an ISBN or a UPC, an ISRC carries no check digit. There is no arithmetic that proves a code is genuine, and no part of the code encodes the recording it belongs to. Anything that claims to validate an ISRC — this page included — is checking one thing: whether the 12 characters are shaped the way the standard requires.
That still catches most of what goes wrong in practice. Codes lose characters in spreadsheets, get a letter typed into the designation, arrive with an unassigned prefix, or get pasted twice across two different recordings. Those are the errors that cause a delivery to bounce or a play to be reported against the wrong master.
What structure alone cannot tell you is whether a well-formed code was ever actually assigned, or which recording it points at. The MusicBrainz check above adds evidence in one direction — a hit means the code is in use — but only the issuer can confirm a code authoritatively: your distributor, your label, or the ISRC agency for your territory.
Prefix codes
The first two characters identify the pool a registrant code was issued from. Most are ISO 3166-1 country codes, but when a national supply runs out the International ISRC Agency allocates from a special range instead — so the prefix is not a reliable statement about where a recording was made.
Special allocations — not countries
- QMAllocated to new US registrants from December 2010, once the US pool was exhausted. Not a country.
- QZAllocated to new US registrants from December 2010, once the US pool was exhausted. Not a country.
- QTAllocated to new US registrants from December 2010, once the US pool was exhausted. Not a country.
- CPReserved by the International ISRC Agency for future overflow allocations.
- DGReserved by the International ISRC Agency for future overflow allocations.
- ZZReserved for ISRCs assigned directly by the International ISRC Agency.
Country prefixes277
- ACAscension Island
- ADAndorra
- AEUnited Arab Emirates
- AFAfghanistan
- AGAntigua & Barbuda
- AIAnguilla
- ALAlbania
- AMArmenia
- ANCuraçao
- AOAngola
- AQAntarctica
- ARArgentina
- ASAmerican Samoa
- ATAustria
- AUAustralia
- AWAruba
- AXÅland Islands
- AZAzerbaijan
- BABosnia & Herzegovina
- BBBarbados
- BDBangladesh
- BEBelgium
- BFBurkina Faso
- BGBulgaria
- BHBahrain
- BIBurundi
- BJBenin
- BLSt. Barthélemy
- BMBermuda
- BNBrunei
- BOBolivia
- BQCaribbean Netherlands
- BRBrazil
- BSBahamas
- BTBhutan
- BUMyanmar (Burma)
- BVBouvet Island
- BWBotswana
- BYBelarus
- BZBelize
- CACanada
- CCCocos (Keeling) Islands
- CDCongo - Kinshasa
- CFCentral African Republic
- CGCongo - Brazzaville
- CHSwitzerland
- CICôte d’Ivoire
- CKCook Islands
- CLChile
- CMCameroon
- CNChina
- COColombia
- CQSark
- CRCosta Rica
- CSSerbia
- CUCuba
- CVCape Verde
- CWCuraçao
- CXChristmas Island
- CYCyprus
- CZCzechia
- DDGermany
- DEGermany
- DJDjibouti
- DKDenmark
- DMDominica
- DODominican Republic
- DYBenin
- DZAlgeria
- EACeuta & Melilla
- ECEcuador
- EEEstonia
- EGEgypt
- EHWestern Sahara
- EREritrea
- ESSpain
- ETEthiopia
- EUEuropean Union
- EZEurozone
- FIFinland
- FJFiji
- FKFalkland Islands
- FMMicronesia
- FOFaroe Islands
- FRFrance
- FXFrance
- GAGabon
- GBUnited Kingdom
- GDGrenada
- GEGeorgia
- GFFrench Guiana
- GGGuernsey
- GHGhana
- GIGibraltar
- GLGreenland
- GMGambia
- GNGuinea
- GPGuadeloupe
- GQEquatorial Guinea
- GRGreece
- GSSouth Georgia & South Sandwich Islands
- GTGuatemala
- GUGuam
- GWGuinea-Bissau
- GYGuyana
- HKHong Kong SAR China
- HMHeard & McDonald Islands
- HNHonduras
- HRCroatia
- HTHaiti
- HUHungary
- HVBurkina Faso
- ICCanary Islands
- IDIndonesia
- IEIreland
- ILIsrael
- IMIsle of Man
- INIndia
- IOBritish Indian Ocean Territory
- IQIraq
- IRIran
- ISIceland
- ITItaly
- JEJersey
- JMJamaica
- JOJordan
- JPJapan
- KEKenya
- KGKyrgyzstan
- KHCambodia
- KIKiribati
- KMComoros
- KNSt. Kitts & Nevis
- KPNorth Korea
- KRSouth Korea
- KWKuwait
- KYCayman Islands
- KZKazakhstan
- LALaos
- LBLebanon
- LCSt. Lucia
- LILiechtenstein
- LKSri Lanka
- LRLiberia
- LSLesotho
- LTLithuania
- LULuxembourg
- LVLatvia
- LYLibya
- MAMorocco
- MCMonaco
- MDMoldova
- MEMontenegro
- MFSt. Martin
- MGMadagascar
- MHMarshall Islands
- MKNorth Macedonia
- MLMali
- MMMyanmar (Burma)
- MNMongolia
- MOMacao SAR China
- MPNorthern Mariana Islands
- MQMartinique
- MRMauritania
- MSMontserrat
- MTMalta
- MUMauritius
- MVMaldives
- MWMalawi
- MXMexico
- MYMalaysia
- MZMozambique
- NANamibia
- NCNew Caledonia
- NENiger
- NFNorfolk Island
- NGNigeria
- NHVanuatu
- NINicaragua
- NLNetherlands
- NONorway
- NPNepal
- NRNauru
- NUNiue
- NZNew Zealand
- OMOman
- PAPanama
- PEPeru
- PFFrench Polynesia
- PGPapua New Guinea
- PHPhilippines
- PKPakistan
- PLPoland
- PMSt. Pierre & Miquelon
- PNPitcairn Islands
- PRPuerto Rico
- PSPalestinian Territories
- PTPortugal
- PWPalau
- PYParaguay
- QAQatar
- QOOutlying Oceania
- RERéunion
- RHZimbabwe
- RORomania
- RSSerbia
- RURussia
- RWRwanda
- SASaudi Arabia
- SBSolomon Islands
- SCSeychelles
- SDSudan
- SESweden
- SGSingapore
- SHSt. Helena
- SISlovenia
- SJSvalbard & Jan Mayen
- SKSlovakia
- SLSierra Leone
- SMSan Marino
- SNSenegal
- SOSomalia
- SRSuriname
- SSSouth Sudan
- STSão Tomé & Príncipe
- SURussia
- SVEl Salvador
- SXSint Maarten
- SYSyria
- SZEswatini
- TATristan da Cunha
- TCTurks & Caicos Islands
- TDChad
- TFFrench Southern Territories
- TGTogo
- THThailand
- TJTajikistan
- TKTokelau
- TLTimor-Leste
- TMTurkmenistan
- TNTunisia
- TOTonga
- TPTimor-Leste
- TRTürkiye
- TTTrinidad & Tobago
- TVTuvalu
- TWTaiwan
- TZTanzania
- UAUkraine
- UGUganda
- UKUnited Kingdom
- UMU.S. Outlying Islands
- UNUnited Nations
- USUnited States
- UYUruguay
- UZUzbekistan
- VAVatican City
- VCSt. Vincent & Grenadines
- VDVietnam
- VEVenezuela
- VGBritish Virgin Islands
- VIU.S. Virgin Islands
- VNVietnam
- VUVanuatu
- WFWallis & Futuna
- WSSamoa
- XAPseudo-Accents
- XBPseudo-Bidi
- XKKosovo
- YDYemen
- YEYemen
- YTMayotte
- YUSerbia
- ZASouth Africa
- ZMZambia
- ZRCongo - Kinshasa
- ZWZimbabwe
Frequently asked questions
Keep ISRCs with the audio, not in a spreadsheet
Postal stores ISRCs alongside every track, version and stem, so the code travels with the file you actually send out.
Start for free↗Free to try. No credit card required.
