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:

EndpointPurpose
GET /v3/companies-listPage through the universe — one row per company with its primary listing embedded. API reference
GET /v3/company/profileEverything 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.

FieldExampleNotes
companyFiscalIdentifierFSCLC6CGT4DXS597Fiscal.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.
companyKeyNASDAQ_MSFTHuman-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).
companyId2Numeric 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 / cusipRequires 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

ParameterDefaultDescription
pageNumber11-indexed. Page size is fixed at 1000 rows.
allCompaniesfalseBy 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).
compactfalseReturn 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:

  • exchangeCode is the human-facing venue code: NYSE, NYSEAM, NYSEARCA, NASDAQ, TSX, TSXV in North America; the ISO operating MIC (e.g. XLON, XTKS) everywhere else.
  • operatingMic vs segmentMic: the operating MIC identifies the exchange; the segment MIC — plus the human-readable segmentName (e.g. "Nasdaq Global Select Market") — identifies the market segment within it.
  • securityType is one of common_stock, preferred_stock, depositary_receipt, unit.
  • tradingCurrency is 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 return GBX (100 GBX = 1 GBP), Johannesburg cents lines return ZAc — so the currency label always matches the unit the listing's prices are quoted in.
  • Use securityFiscalIdentifier to 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:

FieldDescription
peerRelationshipdirect_competitor, business_model_peer (similar economics at a different scale or geography), or industry_peer
peerMarketSegmentSet 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
peerReasoningA 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

FieldMeaning
displayNameEnglishThe name we recommend displaying. Usually the legal name; where a company formally operates under a distinct registered trade name, that name is used.
legalNameEnglishThe registered legal name in English.
tradeNameEnglishThe name people actually use in conversation — "TSMC" for Taiwan Semiconductor Manufacturing. Useful for search.
legalNameNative / tradeNameNativeThe same, in the company's native language and script (e.g. 台灣積體電路製造股份有限公司). Null when it matches the English name.

Classification and status

FieldValues
companyTypeoperating_company, investment_company, reit, spac, government
companyStatusactive, 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 / subIndustryThe four levels of the GICS hierarchy.
reportingTemplateWhich 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

FieldMeaning
marketCapUsdLatest market capitalization in USD, computed from the company's shares outstanding and share prices. null when we cannot compute it reliably.
reportingCurrencyThe currency the company reports its financials in (ISO 4217) — the currency you will see in the financials endpoints. Distinct from any listing's tradingCurrency.
cikThe company's SEC Central Index Key, for companies that file with the SEC. null otherwise.

Freshness

FieldMeaning
updatedAtUnix 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.
earningsFilingDateTimestamp (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 on companyFiscalIdentifier, and use updatedAt to decide which companies need a data refresh.
  • Don't parse companyKey for exchange and ticker — read primaryListing.exchangeCode and primaryListing.ticker instead; they are the structured source.
  • Deduplicate across venues with securityFiscalIdentifier when you consume secondaryListings.
  • Rate limits are documented in Rate Limits & Errors; free-trial keys are additionally restricted to a sample set of companies on single-company endpoints.