Home / Developers / Identifier Mapping API
API reference

Identifier Mapping API

Translate between tickers, CIKs, CUSIPs and company names, and list companies by exchange or SIC industry. Ticker data comes from the SEC's daily ticker file; CUSIPs are learned from 13F holdings. Product overview →

Endpoints

/v1/mapping/ticker

GEThttps://secfeedapi.com/v1/mapping/ticker

Ticker to CIK, name, exchange.

ParameterTypeDescriptionExample
tickerrequiredstringTicker. Case-insensitive; dots and dashes are treated the same (BRK.B = BRK-B).BRK-B

/v1/mapping/cik

GEThttps://secfeedapi.com/v1/mapping/cik

CIK to tickers.

ParameterTypeDescriptionExample
cikrequiredintegerCompany CIK, without leading zeros.320193

/v1/mapping/cusip

GEThttps://secfeedapi.com/v1/mapping/cusip

CUSIP to issuer and ticker.

ParameterTypeDescriptionExample
cusiprequiredstring9 character CUSIP.037833100

/v1/mapping/name

GEThttps://secfeedapi.com/v1/mapping/name

Company name search.

ParameterTypeDescriptionExample
namerequiredstringAny part of the company name, case-insensitive.apple

/v1/mapping/exchange

GEThttps://secfeedapi.com/v1/mapping/exchange

Every listed company on an exchange.

ParameterTypeDescriptionExample
exchangerequiredstringNYSE, Nasdaq, CBOE or OTC, case-insensitive.NYSE

/v1/mapping/sic

GEThttps://secfeedapi.com/v1/mapping/sic

Companies by SIC industry code.

ParameterTypeDescriptionExample
sicrequiredinteger4 digit SIC code.3674
fromintegerOffset in steps of 100. Default 0.100

Request examples

Every response below is real output from the API, trimmed to the first records.

Ticker to CIK

One row per matching listing, with CIK, name and exchange.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/mapping/ticker?ticker=BRK-B"
import os, requests

r = requests.get(
    "https://secfeedapi.com/v1/mapping/ticker",
    params={'ticker': 'BRK-B'},
    headers={"Authorization": f"Bearer {os.environ['SECFEED_KEY']}"},
    timeout=60,
)
r.raise_for_status()
print(r.json())
[
  {
    "cik": 1067983,
    "name": "BERKSHIRE HATHAWAY INC",
    "ticker": "BRK-B",
    "exchange": "NYSE"
  }
]

CUSIP to company

issuerName is the name used in 13F filings; matches lists listed companies with that name.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/mapping/cusip?cusip=037833100"
import os, requests

r = requests.get(
    "https://secfeedapi.com/v1/mapping/cusip",
    params={'cusip': '037833100'},
    headers={"Authorization": f"Bearer {os.environ['SECFEED_KEY']}"},
    timeout=60,
)
r.raise_for_status()
print(r.json())
[
  {
    "cusip": "037833100",
    "issuerName": "APPLE INC",
    "matches": [
      {
        "cik": 320193,
        "name": "Apple Inc.",
        "ticker": "AAPL",
        "exchange": "Nasdaq"
      },
      {
        "cik": 1418121,
        "name": "Apple Hospitality REIT, Inc.",
        "ticker": "APLE",
        "exchange": "NYSE"
      }
    ]
  },
  {
    "cusip": "037833100",
    "issuerName": "Apple Inc",
    "matches": [
      {
        "cik": 320193,
        "name": "Apple Inc.",
        "ticker": "AAPL",
        "exchange": "Nasdaq"
      },
      {
        "cik": 1418121,
        "name": "Apple Hospitality REIT, Inc.",
        "ticker": "APLE",
        "exchange": "NYSE"
      }
    ]
  }
]

Companies in an industry

state is the location code EDGAR shows for the company.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/mapping/sic?sic=3674"
import os, requests

r = requests.get(
    "https://secfeedapi.com/v1/mapping/sic",
    params={'sic': '3674'},
    headers={"Authorization": f"Bearer {os.environ['SECFEED_KEY']}"},
    timeout=60,
)
r.raise_for_status()
print(r.json())
[
  {
    "cik": 1025881,
    "name": "3DLABS INC LTD",
    "state": "D0"
  },
  {
    "cik": 1651235,
    "name": "Acacia Communications, Inc.",
    "state": "MA"
  }
]

Response fields

FieldTypeMeaning
[].cikintegerCompany CIK.
[].namestringCompany name.
[].tickerstringTrading symbol.
[].exchangestringListing exchange.
[].cusipstringcusip endpoint: the CUSIP you asked for.
[].issuerNamestringcusip endpoint: issuer name used in 13F reports.
[].matches[].cik / name / ticker / exchangemixedcusip endpoint: listed companies matching that issuer name.
[].statestringsic endpoint: state or country code.

How to

Does BRK.B work as well as BRK-B?

Yes, dots are converted to dashes.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/mapping/ticker?ticker=brk.b"
How do I go from CIK to ticker?

Use the cik endpoint.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/mapping/cik?cik=320193"
How do I find a company when I only know part of its name?

Search by name; up to 25 matches come back.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/mapping/name?name=apple"
How do I list every NYSE company?

Use the exchange endpoint.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/mapping/exchange?exchange=NYSE"
How do I get the next page of an industry list?

Use from=100, 200 and so on.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/mapping/sic?sic=3674&from=100"
What does an unknown ticker return?

An empty list, not an error, so check the length of the result before reading row 0.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/mapping/ticker?ticker=AAPL"
Why does a CUSIP return several matches?

Matching is by name, so similar names can appear; check ticker and exchange.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/mapping/cusip?cusip=037833100"
How do I map a ticker to a CUSIP?

There is no direct ticker to CUSIP lookup; look up the company's holdings rows in the 13F API by name, or keep a CUSIP list and map it with the cusip endpoint.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/mapping/cusip?cusip=037833100"

Errors

See also the error codes every endpoint shares.

Try it with your own key

500 free calls a month.

Get free API key →