Fiscal.ai API - Companies List & Company Profile
The complete guide to the Companies List and Company Profile endpoints — coverage, stable identifiers, listings, peers, every field, and how to page through the universe.
The Companies List is your entry point to the Fiscal.ai API: it tells you which companies exist, how to reference them, and which datasets are available for each one. The Company Profile gives you the full picture of a single company — names, classification, descriptions, every exchange listing it trades under, and its peer set.
What the list covers
Fiscal.ai maintains a curated universe of about 55,000 publicly listed companies across 20+ countries and 150+ exchanges. Every entity in the list is a real company — operating businesses, banks and insurers, REITs, royalty companies, investment companies, and pre-deal SPACs. Funds, ETFs, structured products, empty shells, and non-equity instruments are excluded before the data ever reaches you, so you never have to filter them out yourself.
Each company carries:
- Stable identifiers — a Fiscal Identifier that never changes, plus CIK, FIGI, and (license-permitting) ISIN and CUSIP.
- Names — display, legal, and trade names in English and in the company's native language.
- Classification — company type and status, the four-level GICS sector hierarchy, and the reporting template its financials follow.
- Geography — headquarters (country and region) and legal domicile, kept separate because many companies incorporate in a different country than they operate from.
- Listings — the primary exchange line plus every other venue the company trades on.
- Market cap, reporting currency, peers, and the datasets available for that company.
Two endpoints serve this data:
| Endpoint | Purpose |
|---|---|
GET /v3/companies-list | Page through the universe — one row per company with its primary listing embedded. API reference |
GET /v3/company/profile | Everything about one company — including secondary listings, descriptions, leadership, and peers. API reference |
Migrating from v2?:
If you currently use the v2 Companies List or Company Profile, the v2 → v3 migration guide has the exact field-by-field mapping.
Identifiers: how to reference a company
Every company has three identifiers. Use the Fiscal Identifier as your durable key.
| Field | Example | Notes |
|---|---|---|
companyFiscalIdentifier | FSCLC6CGT4DXS597 | Fiscal.ai's stable company identifier. It never changes — not across ticker changes, exchange moves, or re-listings. It is checksummed, so a mistyped identifier fails validation instead of silently resolving to the wrong company. Recommended. |
companyKey | NASDAQ_MSFT | Human-readable exchangeCode_ticker of the primary listing. Convenient, but it changes if a company changes its ticker or primary exchange (old keys keep resolving — see below). |
companyId | 2 | Numeric id, supported for backward compatibility. |
Listings and securities carry identifiers of the same family:
listingFiscalIdentifier— one specific exchange line (Apple on Nasdaq, Apple on the London Stock Exchange, …).securityFiscalIdentifier— one security. It is shared by every venue that trades the same instrument, so Apple's common stock carries one security identifier across all of its exchange lines, while an ADR is a different security with its own identifier.
Looking up a single company
Every single-company endpoint accepts any of these query parameters:
| Parameter(s) | Example |
|---|---|
fscl | ?fscl=FSCLC6CGT4DXS597 — the companyFiscalIdentifier value |
companyKey | ?companyKey=NASDAQ_MSFT |
ticker + exchange | ?ticker=MSFT&exchange=NASDAQ |
ticker + micCode | ?ticker=MSFT&micCode=XNAS |
ticker alone | ?ticker=MSFT — US-listed companies only; elsewhere tickers are ambiguous across venues |
cik | ?cik=789019 |
isin / cusip | Requires a CUSIP/ISIN license |
figi | ?figi=BBG000BPHFS9 |
Lookups are forgiving by design: a secondary-listing key (say, Microsoft's Frankfurt line), a former ticker, or a predecessor CIK all resolve to the same company. You always get the canonical company back — check companyKey and companyFiscalIdentifier in the response to see what you resolved to.
Companies List
curl "https://api.fiscal.ai/v3/companies-list?pageNumber=1&apiKey=YOUR_API_KEY"
Request parameters
| Parameter | Default | Description |
|---|---|---|
pageNumber | 1 | 1-indexed. Page size is fixed at 1000 rows. |
allCompanies | false | By default the list returns only companies with API-enabled data — the set you can pull datasets for (~12,000). Pass true to page through the entire ~55,000-company universe instead (useful as a reference universe or for entity resolution). |
compact | false | Return a reduced row (see below). |
Response
{
"pagination": { "page": 1, "pageSize": 1000, "totalPages": 12, "totalCount": 11946, "hasNextPage": true, "hasPreviousPage": false },
"data": [ ... ]
}
Page until hasNextPage is false. totalCount and totalPages reflect the selected set (allCompanies on or off). The final page contains the remainder — use the length of data, not pageSize, for its size.
The company row
{
"companyId": 2,
"companyFiscalIdentifier": "FSCLC6CGT4DXS597",
"companyKey": "NASDAQ_MSFT",
"displayNameEnglish": "Microsoft Corporation",
"legalNameEnglish": "Microsoft Corporation",
"tradeNameEnglish": "Microsoft",
"legalNameNative": null,
"tradeNameNative": null,
"companyType": "operating_company",
"companyStatus": "active",
"headquartersCountryCode": "US",
"headquartersCountryName": "United States",
"headquartersRegion": "North America",
"legalDomicileCountryCode": "US",
"legalDomicileCountryName": "United States",
"sector": "Information Technology",
"industryGroup": "Software & Services",
"industry": "Software",
"subIndustry": "Systems Software",
"reportingTemplate": "Standard",
"cik": "789019",
"marketCapUsd": 3110000000000,
"primaryListing": {
"listingFiscalIdentifier": "FSCLL7NBQ4XVR263",
"ticker": "MSFT",
"exchangeCode": "NASDAQ",
"exchangeName": "Nasdaq Stock Market",
"exchangeCountryCode": "US",
"exchangeCountryName": "United States",
"operatingMic": "XNAS",
"segmentMic": "XNGS",
"segmentName": "Nasdaq Global Select Market",
"securityFiscalIdentifier": "FSCLS8TBZ3EGU251",
"securityType": "common_stock",
"tradingCurrency": "USD",
"tradingStatus": "active",
"isin": "US5949181045",
"cusip": "594918104",
"figi": "BBG000BPHFS9"
},
"reportingCurrency": "USD",
"updatedAt": 1782924606,
"earningsFilingDate": "2026-05-01T10:01:00Z",
"availableDatasets": ["filings", "financials", "adjusted_numbers", "stock_prices", "ownership", "news", "logos", "segments_and_kpis"]
}
Compact rows (compact=true)
For pipelines that only need identity and classification, the compact row drops tradeNameEnglish, the native names, the legal-domicile pair, and the industryGroup/industry/subIndustry levels; its primaryListing drops exchangeCountryCode, exchangeCountryName, segmentMic, and segmentName. All identifiers, marketCapUsd, and availableDatasets are retained.
Free trial: free-trial keys receive the compact shape and the API-enabled set only — requests with compact=false or allCompanies=true return 403. Paid plans have access to the full shape and the full universe.
Company Profile
curl "https://api.fiscal.ai/v3/company/profile?fscl=FSCLC6CGT4DXS597&apiKey=YOUR_API_KEY"
One company, everything we know about it. Accepts any lookup parameter from the table above. On top of the list row, the profile adds:
descriptionShort— a 3–5 sentence summary: what the company does, where it operates, what makes it distinctive.descriptionLong— an analyst-oriented profile (typically 150–400 words): business model, revenue sources, key products and services, competitive position.chiefExecutiveOfficer,foundingYear,ipoYear.secondaryListings— every other exchange line the company trades under.peers— the company's peer set.
Listings: primary and secondary
Companies rarely trade in just one place — a large cap can have dozens of lines across its home market, US exchanges, and European venues. The profile returns them all:
primaryListing— the company's main reference line.secondaryListings— an array of every other listing, in the same shape.
Every listing object carries: listingFiscalIdentifier, ticker, exchangeCode, exchangeName, exchangeCountryCode, exchangeCountryName, operatingMic, segmentMic, segmentName, securityFiscalIdentifier, securityType, tradingCurrency, tradingStatus, figi, and — with a CUSIP/ISIN license — isin and cusip.
Notes on listing fields:
exchangeCodeis the human-facing venue code:NYSE,NYSEAM,NYSEARCA,NASDAQ,TSX,TSXVin North America; the ISO operating MIC (e.g.XLON,XTKS) everywhere else.operatingMicvssegmentMic: the operating MIC identifies the exchange; the segment MIC — plus the human-readablesegmentName(e.g. "Nasdaq Global Select Market") — identifies the market segment within it.securityTypeis one ofcommon_stock,preferred_stock,depositary_receipt,unit.tradingCurrencyis the order-book currency of that specific line. The same company can trade in many currencies across venues. Where an exchange quotes in a minor unit, the code reflects that — e.g. London Stock Exchange lines quoted in pence returnGBX(100 GBX = 1 GBP), Johannesburg cents lines returnZAc— so the currency label always matches the unit the listing's prices are quoted in.- Use
securityFiscalIdentifierto group listings of the same instrument: lines that share it are the same security trading in different places; a different value (say, an ADR next to the home-market common stock) means a genuinely different security.
Peers
The profile embeds the company's peer set, closest first. Each entry carries three relationship fields plus a compact company summary:
| Field | Description |
|---|---|
peerRelationship | direct_competitor, business_model_peer (similar economics at a different scale or geography), or industry_peer |
peerMarketSegment | Set when the peer maps to one of the company's business segments rather than the company as a whole (e.g. "Cloud Infrastructure"); otherwise null |
peerReasoning | A short explanation of why this company is considered a peer |
The summary includes companyId, companyFiscalIdentifier, companyKey, displayNameEnglish, companyType, the headquarters fields, the GICS hierarchy, marketCapUsd, cik, and a minimal primaryListing (listingFiscalIdentifier, ticker, exchangeCode, exchangeName, operatingMic, securityFiscalIdentifier, figi, plus licensed isin/cusip). Every peer is itself a company in the list, so you can fetch its full profile with the same identifiers.
Field reference
Names
| Field | Meaning |
|---|---|
displayNameEnglish | The name we recommend displaying. Usually the legal name; where a company formally operates under a distinct registered trade name, that name is used. |
legalNameEnglish | The registered legal name in English. |
tradeNameEnglish | The name people actually use in conversation — "TSMC" for Taiwan Semiconductor Manufacturing. Useful for search. |
legalNameNative / tradeNameNative | The same, in the company's native language and script (e.g. 台灣積體電路製造股份有限公司). Null when it matches the English name. |
Classification and status
| Field | Values |
|---|---|
companyType | operating_company, investment_company, reit, spac, government |
companyStatus | active, dormant, shell, reorganizing, defunct — the entity-level lifecycle status. The list retains some defunct and dormant names so historical data stays reachable. |
tradingStatus (per listing) | active, suspended, delisted, pre_ipo — the status of one exchange line. A company can be perfectly healthy while one of its venues is suspended, and vice versa. |
sector / industryGroup / industry / subIndustry | The four levels of the GICS hierarchy. |
reportingTemplate | Which financial-statement template the company's standardized financials follow: Standard, Financials, Capital Markets, Insurance, Real Estate, Utilities. Determined by the company's GICS sub-industry. |
Geography
headquartersCountryCode / headquartersCountryName / headquartersRegion describe where the company actually operates from; legalDomicileCountryCode / legalDomicileCountryName describe where it is legally incorporated. For Alibaba those are China and the Cayman Islands respectively. Country codes are ISO 3166-1 alpha-2; regions are North America, Europe, Asia-Pacific, Middle East, Africa, Latin America, Oceania.
Financial context
| Field | Meaning |
|---|---|
marketCapUsd | Latest market capitalization in USD, computed from the company's shares outstanding and share prices. null when we cannot compute it reliably. |
reportingCurrency | The currency the company reports its financials in (ISO 4217) — the currency you will see in the financials endpoints. Distinct from any listing's tradingCurrency. |
cik | The company's SEC Central Index Key, for companies that file with the SEC. null otherwise. |
Freshness
| Field | Meaning |
|---|---|
updatedAt | Unix timestamp (seconds) of the last time any of this company's data changed — new filings parsed, financials updated, datasets refreshed. Poll it to know when to re-fetch. |
earningsFilingDate | Timestamp (YYYY-MM-DDTHH:mm:ssZ) of the company's most recent earnings-relevant filing. |
Both are served live on every request — they are never stale-cached.
availableDatasets
availableDatasets tells you which datasets you can actually pull for a company through the API:
filings, financials, adjusted_numbers, stock_prices, ownership, news, logos, segments_and_kpis
It reflects real data availability, not plan entitlements — a dataset appears once the company has it, and endpoints for datasets not listed return 404 for that company. Companies outside the API-enabled set (visible with allCompanies=true) always report an empty array. The vocabulary grows as new datasets launch, so treat unrecognized values as informational rather than errors.
Licensing: ISIN and CUSIP
CUSIP/ISIN License Requirement:
isin and cusip are licensed identifiers. They appear in responses — and are accepted as lookup parameters — only for organizations with a CUSIP/ISIN license on their plan. All other identifiers (companyFiscalIdentifier, figi, cik, tickers, MICs) are unrestricted. Contact sales to add the license.
Practical tips
- Store
companyFiscalIdentifier. It is the one identifier guaranteed stable across ticker changes, venue moves, and corporate actions. - Sync pattern: page
/v3/companies-list(about 12 pages for the API-enabled set) daily or weekly, upsert oncompanyFiscalIdentifier, and useupdatedAtto decide which companies need a data refresh. - Don't parse
companyKeyfor exchange and ticker — readprimaryListing.exchangeCodeandprimaryListing.tickerinstead; they are the structured source. - Deduplicate across venues with
securityFiscalIdentifierwhen you consumesecondaryListings. - Rate limits are documented in Rate Limits & Errors; free-trial keys are additionally restricted to a sample set of companies on single-company endpoints.