company_id (cmp_…). Every other company-scoped dataset is keyed on it, and responses always carry company_id back so you never have to resolve twice.
The registry is a current-state snapshot, rewritten as identifiers change — not a time series. It refreshes weekly (coverage.update_frequency: "weekly", history_status: "current_snapshot").
All registry routes are available on every plan and cost 1 credit per call. Responses use the standard envelope with { data, next_cursor, coverage } — see Pagination and Errors.
GET /v1/companies
Search the registry. At least one filter is required — an unfiltered listing returns400.
Plan: Free and above · Credits: 1 per call
string
Trading symbol. Non-US symbols carry their market suffix, e.g.
2330.TW. Also matches tickers a company no longer trades under.string
SEC Central Index Key, with or without zero-padding.
string
International Securities Identification Number.
string
Taiwan security code, e.g.
2330. Resolved through both the .TW and .TWO suffixes.string
Korean DART corp code, 8 digits.
string
ISO country code of incorporation/domicile, e.g.
US, JP, TW. Case-insensitive.string
Company-name substring, case-insensitive, minimum 2 characters. Exact substring match — not fuzzy — so a miss means no name contains the string, not that the nearest name was hidden.
string
next_cursor from the previous page, passed back verbatim.integer
default:"100"
Rows per page, 1–1000.
A company found here may still have no SEC filings. The record’s
cik is the honest test: a company with no CIK files nothing with the SEC, however well known it is.GET /v1/companies/{company_id}
The canonical record for one company. Unlike every other company-scoped route, this one requires the literalcmp_ id — a ticker or CIK in the path returns 404. Resolve identifiers through the search route above.
Plan: Free and above · Credits: 1 per call
string
required
Canonical company id, e.g.
cmp_006294.{ data, coverage } with the same record shape as search. 404 when the id does not exist.
GET /v1/companies/{company_id}/identifiers
Every identifier the company is known by, typed.id_type is returned verbatim — CIK, TICKER, ISIN, TW_UBN, DART_CORP, and others — because the type is the difference between a Taiwan business number and a Korean corp code.
Plan: Free and above · Credits: 1 per call
string
required
Canonical
cmp_ id.GET /v1/companies/{company_id}/listings
All listings for the company, with the window each symbol was valid for. Active listings sort first, then retired ones. Plan: Free and above · Credits: 1 per callstring
required
Canonical
cmp_ id.symbol, exchange, market, status, valid_from, and valid_to (null while the listing is still active).
GET /v1/companies/{company_id}/events
Corporate events: splits, mergers, ticker and name changes. Rows carryevent_type, event_date, symbol, ratio, counterpart_company_id, counterpart_name, detail, and source, newest first.
Plan: Free and above · Credits: 1 per call
string
required
Canonical
cmp_ id.Event history is partial — the response’s
coverage.history_status says so. An empty result means no events are recorded, not that none ever happened.Resolving identifiers on other routes
Every/v1/companies/{company_id}/... dataset route — market data, news, guidance, the Taiwan and Korea datasets, and the rest — accepts a ticker, CIK, ISIN, or cmp_ id in the path segment and resolves it for you. An identifier that resolves to nothing returns 404 with a message naming the accepted forms. The four registry routes on this page (GET /v1/companies/:company_id, /identifiers, /listings, /events) are strict: they require the literal cmp_ id.