/api/v1/cusip/lookup/{cusip}Resolve CUSIP to Ticker.
Resolve CUSIP to Ticker.
Why use this
Common use case
Single-CUSIP lookup — the per-row variant of POST /api/v1/cusip/batch. Resolves a 9-character CUSIP to its current ticker, issuer name, CIK, CUSIP6 prefix, and security_group classification. Backed by FinRadar's cusip_security_catalog (~26K rows after the v3.11.0 expansion to 6 security groups). For stale or successor-replaced CUSIPs (SPAC mergers, reorgs, redomiciles) this returns the CURRENT ticker only — to walk the full historical chain use GET /api/v1/cusip/chain/{cusip}. For multi-CUSIP workflows always prefer the batch endpoint — single-CUSIP cost: 1 × 1,000 rows = 1,000 tokens vs batch cost: 5 for the same 1,000 rows. The OpenFIGI enrichment caveat applies: without OPENFIGI_API_KEY set ~24% of legacy CUSIPs return ticker: null (the catalog has the CUSIP but the ticker mapping failed); with the key set this drops to <2%.
Parameters
| Name | In | Required | Default | Allowed | Description | Example |
|---|---|---|---|---|---|---|
| cusip | path | required | — | — | 9-character CUSIP. Whitespace and case are normalized server-side; 8-character CUSIPs (missing the trailing check digit) are zero-padded to 9. Returns 404 when the CUSIP is not in `cusip_security_catalog` — for stale or successor-replaced CUSIPs try `/cusip/chain/{cusip}` to chase corporate-action history. Real public-domain examples: `037833100` (Apple), `594918104` (Microsoft), `02079K305` (Alphabet Class A), `02079K107` (Alphabet Class C), `084670702` (Berkshire Class B). | 037833100 |
Response schema
| Field | Type | Nullable | Description |
|---|---|---|---|
| cusip | string | no | Echoed 9-character CUSIP (post-normalization — leading whitespace stripped, padded to 9 chars if input was 8). Use for index-matching against the request input. |
| ticker | string | yes | Resolved canonical ticker (hyphen form — `BRK-A` not `BRK.A`). Null when (a) the CUSIP exists in the catalog but has no associated ticker (debt securities, private placements, delisted issuers), or (b) the OpenFIGI enrichment fallback failed without a key (~24% of legacy CUSIPs without `OPENFIGI_API_KEY` set; with the key set this drops to <2%). |
| issuer_name | string | yes | Issuer name from the canonical catalog (typically all-caps EDGAR convention for SEC-registered issuers — `APPLE INC` not `Apple Inc.`; varies for international issuers). Null when the CUSIP is unmapped. |
| cik | string | yes | 10-character zero-padded SEC CIK of the issuer (e.g. `0000320193` for Apple). Null when the issuer has no SEC registration (rare; foreign-private issuers without ADR programs). Pair with `/api/v1/sec/filings?cik=...` for filing history. |
| cusip6 | string | no | First 6 characters of the CUSIP — the ISSUER PREFIX. A single legal issuer can have multiple 9-char CUSIPs across share classes / debt issues, all sharing the same `cusip6`. Useful for grouping multi-class issuers (e.g. BRK-A `084670108` and BRK-B `084670702` both share `cusip6=084670`). |
| security_group | string | yes | Security classification — one of `Stocks` (common equity), `ETFs`, `Preferred`, `Warrants`, `Debt` (bonds, notes), `Other` (REITs, partnership units). Null when the catalog entry exists but security_group is not yet enriched. |
Sample response
- "cusip": "037833100"
- "ticker": "AAPL"
- "issuer_name": "APPLE INC"
- "cik": "0000320193"
- "cusip6": "037833"
- "security_group": "Stocks"
Errors
| Status | Label | Description |
|---|---|---|
| 200 | OK | Request succeeded. |
| 400 | Bad Request | Invalid query, body, or path parameter. |
| 401 | Unauthorized | Missing or invalid Authorization header / api_Token. |
| 402 | Payment Required | Insufficient token balance for this call. Top up |
| 429 | Too Many Requests | Rate limit exceeded for your tier (see /pricing for tier limits). Tier limits |
| 500 | Server Error | Unexpected server-side failure. Retry with backoff; report if persistent. |
Code samples
curl "https://api.finradar.ai/api/v1/cusip/lookup/{cusip}?api_Token=YOUR_API_KEY" \
-H "Authorization: Bearer YOUR_JWT_TOKEN"Generate an API key in /account/credentials to run live queries (literal YOUR_API_KEY placeholder shown until then).