CUSIP

GET/v0/cusip

Validates a CUSIP (Committee on Uniform Security Identification Procedures) identifier — the 9-character code used to identify financial instruments in the United States and Canada. A CUSIP consists of a 6-character issuer number, a 2-character issue number, and a 1-digit check digit computed using a modified Luhn algorithm with a character-to-number mapping that covers digits 0–9, letters A–Z, and special characters *, @, and #. Whitespace in the input is stripped automatically.

When the CUSIP is structurally valid, the endpoint looks up instrument details from two sources simultaneously. OpenFIGI (Bloomberg) is queried directly with the CUSIP. ESMA FIRDS (the EU regulatory reference database under MiFID II, synchronised daily) is queried via the derived US ISIN (US + CUSIP + Luhn check digit). 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.

For US and Canadian ISINs the NSIN is identical to the CUSIP, so the /v0/isin endpoint also returns a cusip field derived from the ISIN NSIN when the country code is US or CA.

Guides: Node.js · Python

Try it

Query Parameters

ParameterTypeRequiredDescription
valuestringYesThe 9-character CUSIP to validate (e.g. 037833100)

Example Request

curl -H "Authorization: Bearer YOUR_API_KEY" \
  "https://api.isvalid.dev/v0/cusip?value=037833100"

Response Fields

FieldTypeDescription
validbooleanWhether the CUSIP passed format and check digit validation
issuerNumberstringFirst 6 characters identifying the issuer, assigned by the CUSIP Global Services bureau
issueNumberstringCharacters 7–8 identifying the specific issue (share class, bond series, etc.)
checkDigitstringThe check digit (9th character, always a digit 0–9)
isinstringUS ISIN derived from the CUSIP (US + CUSIP + Luhn check digit), e.g. US0378331005
foundboolean | nullWhether the instrument was found in any data source. true — found, instrument details included; false — structurally valid CUSIP but not found in either source; null — all data sources unavailable, structural validation result only
dataSourcestringWhich 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
namestring | nullFull instrument name (e.g. Apple Inc.). Present when found is true
fisnstring | nullFinancial Instrument Short Name (ISO 18774), e.g. APPLE INC/SH SH. From FIRDS; null when FIRDS data is unavailable
statusstring | nullInstrument lifecycle status from FIRDS. ACTV — active; TERM — terminated (delisted or expired). Present when found is true; null when FIRDS data is unavailable
cfiCodestring | null6-character Classification of Financial Instruments code (ISO 10962), e.g. ESVUFR for equity. From FIRDS; null when FIRDS data is unavailable
currencystring | nullISO 4217 notional currency code (e.g. USD). From FIRDS; null when FIRDS data is unavailable
tradingVenuestring | nullISO 10383 Market Identifier Code (MIC) of the primary trading venue (e.g. XNAS for NASDAQ). From FIRDS; null when FIRDS data is unavailable
issuerLeistring | nullLegal Entity Identifier (LEI) of the instrument issuer. From FIRDS; null when FIRDS data is unavailable
maturityDatestring | nullMaturity or expiry date in YYYY-MM-DD format for bonds and derivatives. From FIRDS; null for equities or when FIRDS data is unavailable
tickerstring | nullExchange ticker symbol (e.g. AAPL). From OpenFIGI; null when OpenFIGI data is unavailable
exchCodestring | nullBloomberg exchange code (e.g. US). From OpenFIGI; null when OpenFIGI data is unavailable
securityTypestring | nullSecurity type from OpenFIGI (e.g. Common Stock). From OpenFIGI; null when OpenFIGI data is unavailable
marketSectorstring | nullMarket sector from OpenFIGI (e.g. Equity). From OpenFIGI; null when OpenFIGI data is unavailable
figistring | nullFinancial Instrument Global Identifier (e.g. BBG000B9XRY4). From OpenFIGI; null when OpenFIGI data is unavailable
compositeFIGIstring | nullComposite 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,
  "issuerNumber": "037833",
  "issueNumber": "10",
  "checkDigit": "0",
  "isin": "US0378331005",
  "found": true,
  "dataSource": "firds+openfigi",
  "name": "Apple Inc.",
  "fisn": "APPLE INC/SH SH",
  "cfiCode": "ESVUFR",
  "currency": "USD",
  "tradingVenue": "HAMB",
  "issuerLei": "HWUPKR0MPOU8FGXBT394",
  "maturityDate": null,
  "status": "ACTV",
  "ticker": "AAPL",
  "exchCode": "US",
  "securityType": "Common Stock",
  "marketSector": "Equity",
  "figi": "BBG000B9XRY4",
  "compositeFIGI": "BBG000B9XRY4"
}

Example Response — found via OpenFIGI only

{
  "valid": true,
  "issuerNumber": "037833",
  "issueNumber": "10",
  "checkDigit": "0",
  "isin": "US0378331005",
  "found": true,
  "dataSource": "openfigi",
  "name": "Apple Inc.",
  "fisn": null,
  "cfiCode": null,
  "currency": null,
  "tradingVenue": null,
  "issuerLei": null,
  "maturityDate": null,
  "status": null,
  "ticker": "AAPL",
  "exchCode": "US",
  "securityType": "Common Stock",
  "marketSector": "Equity",
  "figi": "BBG000B9XRY4",
  "compositeFIGI": "BBG000B9XRY4"
}

Example Response — not found

{
  "valid": true,
  "issuerNumber": "037833",
  "issueNumber": "10",
  "checkDigit": "0",
  "isin": "US0378331005",
  "found": false
}

Example Response — invalid

{
  "valid": false
}