/api/v1/cusip/ticker/{ticker}?chain=trueResolve Ticker to CUSIP with full successor chain.
Resolve Ticker to CUSIP with full successor chain.
Why use this
Common use case
Ticker-keyed entrypoint into the CUSIP successor chain — the natural variant when your downstream system speaks tickers but needs CUSIP-shaped historical coverage. With ?chain=true, returns all historical CUSIPs in chronological order with from_chain: true on predecessors and from_chain: false on the current/seed CUSIP. Without the flag, response is byte-identical to GET /api/v1/cusip/ticker/{ticker} for backwards compatibility — the chain expansion is strictly opt-in. Phase 11/47 work product. The CUSIP-keyed equivalent is GET /api/v1/cusip/chain/{cusip} — both endpoints walk the same underlying chain table. The historical-issuer-names in chain[].issuer_name reflect the issuer AT THE TIME each CUSIP was active (e.g. VECTOR ACQUISITION CORP is preserved on the pre-SPAC entry).
Parameters
| Name | In | Required | Default | Allowed | Description | Example |
|---|---|---|---|---|---|---|
| ticker | path | required | — | — | Canonical hyphen-form ticker. v3.14.2 ticker-normalization shim applies (`BRK.A`/`BRK/A`/`BRKA` all coerce to `BRK-A`). The CURRENT ticker is required — historical-only tickers like `VACQ` (pre-SPAC RKLB) are not supported as input; use the CUSIP variant if you need to seed the chain walk from a historical entity. | RKLB |
| chain | query | optional | false | — | When `true`, response includes a `chain[]` array of all historical CUSIPs sharing this security's lineage. When `false` (default) or omitted, response is byte-identical to [GET /api/v1/cusip/ticker/{ticker}](/docs/reference-data/cusip-api/get-cusip-ticker) and returns CURRENT CUSIP only — backwards-compatible with pre-Phase-11 callers. | — |
Response schema
| Field | Type | Nullable | Description |
|---|---|---|---|
| ticker | string | no | Echoed canonical ticker (post-normalization to hyphen form). |
| cusip | string | no | 9-character CUSIP for the CURRENT primary security mapped to this ticker. Same field as the no-chain variant; present even when `chain=true`. |
| issuer_name | string | no | Issuer name of the CURRENT security (all-caps EDGAR convention). |
| cik | string | yes | 10-character zero-padded SEC CIK of the CURRENT issuer. |
| cusip6 | string | no | 6-character CUSIP issuer prefix of the CURRENT CUSIP. NOTE: CUSIP6 changes across reorgs — do NOT use as a stable issuer identifier. |
| chain | array | yes | Array of historical CUSIPs sharing this security's lineage, in CHRONOLOGICAL order (oldest first, current last). Only present when `?chain=true`. Each entry: `{ cusip: string, issuer_name: string, effective_date: string|null, reason: string|null, from_chain: boolean }`. The `from_chain: true` flag distinguishes chain predecessors from the seed CUSIP itself. |
Sample response
- "ticker": "RKLB"
- "cusip": "773121108"
- "issuer_name": "ROCKET LAB CORPORATION"
- "cik": "0001819810"
- "cusip6": "773121"
- "chain":
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/ticker/{ticker}?chain=true?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).