/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 |
|---|---|---|---|
| status | string | no | — |
| request_id | string | yes | — |
| timestamp | string | no | — |
| data | array | no | Matching mapping records. With chain=true, additional historical mappings are appended to this same array. |
| data[].cusip6 | string | yes | Optional; omitted when not applicable. |
| data[].ticker | string | yes | — |
| data[].security_name | string | yes | — |
| data[].security_type | string | yes | Optional; omitted when not applicable. |
| data[].cik | string | yes | Optional; omitted when not applicable. |
| data[].exch_code | string | yes | Optional; omitted when not applicable. |
| data[].mic_code | string | yes | Optional; omitted when not applicable. |
| data[].figi | string | yes | Optional; omitted when not applicable. |
| data[].composite_figi | string | yes | Optional; omitted when not applicable. |
| data[].share_class_figi | string | yes | Optional; omitted when not applicable. |
| data[].sector | string | yes | Optional; omitted when not applicable. |
| data[].industry | string | yes | Optional; omitted when not applicable. |
| data[].id_type | string | yes | Optional; omitted when not applicable. |
| data[].superseded_by | string | yes | Optional; omitted when not applicable. |
| data[].last_updated | string | yes | Optional; omitted when not applicable. |
| data[].created_at | string | yes | Optional; omitted when not applicable. |
| data[].cusip | string | no | — |
| data[].is_valid | boolean | yes | Optional; omitted when not applicable. |
| data[].from_chain | boolean | no | Optional; omitted when not applicable. Only present on an additional mapping found through chain=true. |
Sample response
- "status": "success"
- "request_id": null
- "timestamp": "2026-09-25T12:00:00Z"
- "data":
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/RKLB?chain=true" \
-H "X-API-Key: YOUR_API_KEY"Generate an API key in /account/credentials to run live queries (literal YOUR_API_KEY placeholder shown until then).