Blog / Developer guides
Developer guides

CIK, CUSIP and Ticker: How SEC Company Identifiers Fit Together

A practical guide to the CIK, CUSIP and ticker symbol, why SEC filings use all three, where each one comes from, and how to look one up from another.

By the SecFeed teamOctober 16, 20265 min read
Key takeaways

SEC filings, stock exchanges and back office systems each use a different identifier for the same company, and that trips up anyone building on top of EDGAR data for the first time. A 10-K is filed under a CIK. A trade happens under a ticker. A 13F holding is reported under a CUSIP. None of them are interchangeable, and knowing which one a dataset uses, and how to convert it, saves a lot of debugging.

This guide explains what each identifier is, who assigns it, and how to map between them.

What is a CIK?

A CIK (Central Index Key) is the number the SEC assigns to every entity that files with EDGAR: public companies, investment managers, insiders, mutual funds and more. It is a permanent identifier, usually shown as up to 10 digits, often zero padded to 10 digits in URLs (for example, CIK 320193 appears as 0000320193 in an EDGAR accession path).

A CIK is assigned once, when an entity first registers or files electronically, and it does not change even if the company renames itself, changes its ticker, or moves exchanges. This makes it the most reliable key for following one company's filing history over time.

What is a ticker symbol?

A ticker symbol is the short code an exchange assigns to a listed security for trading, such as AAPL for Apple on Nasdaq. Tickers are convenient because people recognize them, but they are not stable identifiers:

Get this data as clean JSON

SecFeed turns SEC filings into structured data with one API call: GET /v1/mapping/ticker?ticker=BRK-B. 500 free calls a month.

Get a free API key →

What is a CUSIP?

A CUSIP is a nine character alphanumeric code that identifies a specific security, not a company. CUSIPs are issued by CUSIP Global Services, operated on behalf of the American Bankers Association. The structure matters:

CharactersIdentifies
First 6The issuer
Characters 7 and 8The specific issue, for example a class of common stock or a bond series
Character 9A check digit

Because the issuer portion is shared, a company's different securities (common stock, preferred stock, different bond issuances) have different CUSIPs that share the same first six characters. This is why 13F and Schedule 13D/13G filings, which report positions in specific securities rather than companies, use CUSIP as the key field.

A CUSIP can change when a security is restructured, such as after a merger, a name change that triggers a new issue, or a reclassification of share classes. The CIK of the underlying company usually stays the same through these events even when the CUSIP does not.

Why you need all three

Different parts of the EDGAR dataset key off different identifiers:

Filing or datasetPrimary identifier
10-K, 10-Q, 8-K, proxy statementsCIK
Form 4, Form 3, Form 5 (insider transactions)CIK of the issuer and the reporting owner
Form 13F holdingsCUSIP
Schedule 13D and 13GCUSIP, plus the filer and subject company CIKs
Market data, news, tradingTicker

If you are joining insider transaction data (CIK based) with 13F holdings (CUSIP based) for the same company, you need a reliable way to go from one identifier to the other, and back to a ticker for display.

How to look up each identifier

SecFeed exposes mapping endpoints that resolve any of the three from any of the others:

EndpointInputOutput
/v1/mapping/tickertickerCIK, company name, exchange
/v1/mapping/cikCIKtickers
/v1/mapping/cusipCUSIPissuer and ticker
/v1/mapping/namecompany namematching companies
curl "https://secfeedapi.com/v1/mapping/ticker?ticker=BRK-B" \
  -H "Authorization: Bearer YOUR_API_KEY"

curl "https://secfeedapi.com/v1/mapping/cusip?cusip=743315103" \
  -H "Authorization: Bearer YOUR_API_KEY"

In Python, with the SDK:

from secfeed import Client

sf = Client("YOUR_API_KEY")
company = sf.map_ticker("AAPL")
cik = company["cik"]

by_cusip = sf.map_cusip("037833100")
print(by_cusip)

Once you have a CIK, you can pull that company's filings, insider transactions and 13F appearances without ever touching a ticker again, which matters for entities that never had one.

Common pitfalls

Frequently asked questions

Is a CIK the same as a ticker?

No. A CIK identifies the filer with the SEC and never changes. A ticker identifies a security on an exchange and can change or be reused.

Can one company have multiple CUSIPs?

Yes. Each class of security the company has issued, common stock, preferred stock, or separate bond issuances, gets its own CUSIP, even though they share the same company.

Where do I find a company's CIK?

You can look it up by ticker or company name through /v1/mapping/ticker or /v1/mapping/name, or by searching for the company directly on EDGAR.

Why does Form 13F use CUSIP instead of ticker?

Form 13F reports specific security positions, including some that are not exchange listed stocks, so CUSIP is the more precise and universally issued identifier for the SEC to require.

Does a private company have a CIK?

Only if it has filed something with the SEC, such as a Form D for a private placement. A CIK is assigned on first EDGAR filing, not on incorporation.

Get this data as clean JSON

SecFeed turns SEC filings into structured data with one API call: GET /v1/mapping/ticker?ticker=BRK-B. 500 free calls a month.

Get a free API key →

For information only, not investment advice. Data from public SEC filings; verify important figures on SEC.gov. See our AI Disclosure.