ISIN
Validates an International Securities Identification Number (ISIN) as defined by ISO 6166. An ISIN is a 12-character alphanumeric code that uniquely identifies a financial instrument worldwide: 2-letter ISO country code, 9-character NSIN (National Securities Identifying Number), and 1 check digit verified using a Luhn-based algorithm.
When the ISIN is structurally valid, the endpoint looks up instrument details from two sources simultaneously. ESMA FIRDS (the EU regulatory reference database under MiFID II, synchronised daily) provides the richest data for European instruments. OpenFIGI (Bloomberg) extends coverage to global instruments such as US equities. Both sources are queried in parallel and their fields are merged into a single response. The dataSource field indicates which source(s) returned data: firds, openfigi, or firds+openfigi when both found the instrument. Fields from an unavailable or non-matching source are returned as null. OpenFIGI results are cached for 24 hours. Whitespace in the input is stripped automatically.
XT-ISINs (prefix XT) identify digital tokens registered with the Digital Token Identifier Foundation (DTIF) under ISO 24165. They share the same 12-character structure and Luhn check digit as regular ISINs. No enrichment data from FIRDS or OpenFIGI is available for digital tokens, so XT-ISINs always return found: false. Note: the NSIN of an XT-ISIN is assigned independently by the numbering authority and is not the same as the token's DTI (ISO 24165 identifier).
Try it
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| value | string | Yes | The 12-character ISIN to validate (e.g. US0378331005) |
Example Request
curl -H "Authorization: Bearer YOUR_API_KEY" \ "https://api.isvalid.dev/v0/isin?value=US0378331005"
Response Fields
| Field | Type | Description |
|---|---|---|
| valid | boolean | Whether the ISIN passed format and check digit validation |
| countryCode | string | ISO 3166-1 alpha-2 country code extracted from the ISIN prefix (e.g. US) |
| countryName | string | null | Full country name (e.g. United States). Always present; null for unrecognised country codes |
| nsin | string | National Securities Identifying Number — the 9-character country-specific part |
| cusip | string | null | CUSIP identifier (9 characters) derived from nsin. Present for US and CA ISINs; null for all other countries |
| checkDigit | string | The Luhn check digit (last character of the ISIN) |
| found | boolean | null | Whether the instrument was found in any data source. true — found, instrument details included; false — structurally valid ISIN but not found in either source; null — all data sources unavailable, structural validation result only |
| dataSource | string | Which source(s) found the instrument. firds — ESMA FIRDS only; openfigi — OpenFIGI only; firds+openfigi — both sources returned data (fields from each are merged). Present only when found is true |
| name | string | Full instrument name (e.g. APPLE INC). Present when found is true |
| fisn | string | null | Financial Instrument Short Name (ISO 18774) — a standardised human-readable label in the format ISSUER/DESCRIPTION, e.g. PKN ORLEN SA/SHS. From FIRDS; null when FIRDS data is unavailable |
| status | string | null | Instrument lifecycle status from FIRDS. ACTV — active; TERM — terminated (delisted or expired). Always present when found is true; null when FIRDS data is unavailable |
| cfiCode | string | null | 6-character Classification of Financial Instruments code (ISO 10962), e.g. ESVUFR for equity. From FIRDS; null when FIRDS data is unavailable |
| currency | string | null | ISO 4217 notional currency code (e.g. EUR). From FIRDS; null when FIRDS data is unavailable |
| tradingVenue | string | null | ISO 10383 Market Identifier Code (MIC) of the primary trading venue (e.g. XWAR for Warsaw Stock Exchange). From FIRDS; null when FIRDS data is unavailable |
| issuerLei | string | null | Legal Entity Identifier (LEI) of the instrument issuer. From FIRDS; null when FIRDS data is unavailable |
| maturityDate | string | null | Maturity or expiry date in YYYY-MM-DD format for bonds and derivatives. From FIRDS; null for equities or when FIRDS data is unavailable |
| ticker | string | null | Exchange ticker symbol (e.g. AAPL). From OpenFIGI; null when OpenFIGI data is unavailable |
| exchCode | string | null | Bloomberg exchange code (e.g. UN for NYSE). From OpenFIGI; null when OpenFIGI data is unavailable |
| securityType | string | null | Security type from OpenFIGI (e.g. Common Stock). From OpenFIGI; null when OpenFIGI data is unavailable |
| marketSector | string | null | Market sector from OpenFIGI (e.g. Equity). From OpenFIGI; null when OpenFIGI data is unavailable |
| figi | string | null | Financial Instrument Global Identifier (e.g. BBG000B9XRY4). From OpenFIGI; null when OpenFIGI data is unavailable |
| compositeFIGI | string | null | Composite FIGI representing the instrument across all exchanges. From OpenFIGI; null when OpenFIGI data is unavailable or the instrument has no composite FIGI |
Example Response — found in both sources
{
"valid": true,
"countryCode": "PL",
"countryName": "Poland",
"nsin": "000PKN0RH1",
"cusip": null,
"checkDigit": "6",
"found": true,
"dataSource": "firds+openfigi",
"name": "PKN ORLEN SA",
"fisn": "PKN ORLEN SA/SHS",
"cfiCode": "ESVUFR",
"currency": "PLN",
"tradingVenue": "XWAR",
"issuerLei": "259400VMBIZKDL26YB25",
"maturityDate": null,
"status": "ACTV",
"ticker": "PKN",
"exchCode": "WSE",
"securityType": "Common Stock",
"marketSector": "Equity",
"figi": "BBG000BW0VH6",
"compositeFIGI": "BBG000BW0VH6"
}Example Response — found via FIRDS only (EU instrument not in OpenFIGI)
{
"valid": true,
"countryCode": "PL",
"countryName": "Poland",
"nsin": "000PKN0RH1",
"cusip": null,
"checkDigit": "6",
"found": true,
"dataSource": "firds",
"name": "PKN ORLEN SA",
"fisn": "PKN ORLEN SA/SHS",
"cfiCode": "ESVUFR",
"currency": "PLN",
"tradingVenue": "XWAR",
"issuerLei": "259400VMBIZKDL26YB25",
"maturityDate": null,
"status": "ACTV",
"ticker": null,
"exchCode": null,
"securityType": null,
"marketSector": null,
"figi": null,
"compositeFIGI": null
}Example Response — found via OpenFIGI only (non-EU instrument)
{
"valid": true,
"countryCode": "US",
"countryName": "United States",
"nsin": "037833100",
"cusip": "037833100",
"checkDigit": "5",
"found": true,
"dataSource": "openfigi",
"name": "APPLE INC",
"fisn": null,
"cfiCode": null,
"currency": null,
"tradingVenue": null,
"issuerLei": null,
"maturityDate": null,
"status": null,
"ticker": "AAPL",
"exchCode": "UN",
"securityType": "Common Stock",
"marketSector": "Equity",
"figi": "BBG000B9XRY4",
"compositeFIGI": "BBG000B9XRY4"
}Example Response — terminated instrument
{
"valid": true,
"countryCode": "DE",
"countryName": "Germany",
"nsin": "000A0MR4U3",
"cusip": null,
"checkDigit": "4",
"found": true,
"dataSource": "firds",
"name": "EXAMPLE BOND 2020",
"fisn": "EXAMPLE BOND/FLT 14-20",
"cfiCode": "DBFNFR",
"currency": "EUR",
"tradingVenue": "XFRA",
"issuerLei": "5299009XBDRSN8D5E918",
"maturityDate": "2020-12-31",
"status": "TERM",
"ticker": null,
"exchCode": null,
"securityType": null,
"marketSector": null,
"figi": null,
"compositeFIGI": null
}Example Response — not found
{
"valid": true,
"countryCode": "US",
"countryName": "United States",
"nsin": "037833100",
"cusip": "037833100",
"checkDigit": "5",
"found": false
}Example Response — data sources unavailable
{
"valid": true,
"countryCode": "US",
"countryName": "United States",
"nsin": "037833100",
"cusip": "037833100",
"checkDigit": "5",
"found": null
}Example Response — XT-ISIN (digital token, Bitcoin)
{
"valid": true,
"countryCode": "XT",
"countryName": "Digital Tokens (ISO 24165)",
"nsin": "V15WLZJMF",
"cusip": null,
"checkDigit": "0",
"found": false
}Example Response — invalid
{
"valid": false
}