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.
Try it
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| value | string | Yes | The 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
| Field | Type | Description |
|---|---|---|
| valid | boolean | Whether the CUSIP passed format and check digit validation |
| issuerNumber | string | First 6 characters identifying the issuer, assigned by the CUSIP Global Services bureau |
| issueNumber | string | Characters 7–8 identifying the specific issue (share class, bond series, etc.) |
| checkDigit | string | The check digit (9th character, always a digit 0–9) |
| isin | string | US ISIN derived from the CUSIP (US + CUSIP + Luhn check digit), e.g. US0378331005 |
| found | boolean | null | Whether 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 |
| 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 | null | Full instrument name (e.g. Apple Inc.). Present when found is true |
| fisn | string | null | Financial Instrument Short Name (ISO 18774), e.g. APPLE INC/SH SH. From FIRDS; null when FIRDS data is unavailable |
| status | string | null | Instrument lifecycle status from FIRDS. ACTV — active; TERM — terminated (delisted or expired). 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. USD). From FIRDS; null when FIRDS data is unavailable |
| tradingVenue | string | null | ISO 10383 Market Identifier Code (MIC) of the primary trading venue (e.g. XNAS for NASDAQ). 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. US). 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,
"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
}