All APIs

Company filings, financial statements and large holders

Get company filings, standardised financial statements and holders of 5% or more through Narwhal, with one API key for REST and MCP.

First request

Quickstart →
curl --request GET \
  --url "https://api.narwhalapi.com/v1/companies?q=microsoft" \
  --header "Authorization: Bearer $NARWHAL_API_KEY"
Example response Illustrative response · not a live request
{
  "results": [
    {
      "id": "usa:0000789019",
      "name": "Microsoft Corp",
      "country": "USA",
      "registry": "usa",
      "status": "active",
      "exchange": "XNAS",
      "code": "MSFT",
      "matched": "name"
    }
  ]
}

Endpoints

GETList companies/v1/companies
GETList a company's filings/v1/companies/{company_id}/filings
GETGet standardised company financial statements/v1/companies/{company_id}/financials
GETGet holders of 5% or more/v1/companies/{company_id}/holders

What Narwhal returns

Filing records

Read filing dates, types and titles, with links to official copies.

Standardised financials

Use 77 standard items across income statements, balance sheets, cash flow, per share and shares.

Large holders

Get holders of 5% or more in the US, Japan and Korea.

Coverage spans US, Japan, Korea, 26 EU/EEA registries (not Germany or Ireland), the UK and Taiwan; Korea is partly loaded. The EU/EEA registries and UK issuers on regulated markets have annual reports only. Taiwan covers about 1,980 TWSE and TPEx listed companies, with annual and quarterly reports. The official filing is always the source of truth.

Response fields

listings (on a company)
Stock listing ids linked to the company, such as XNAS:MSFT, to use with the stock routes. A listing is linked by an exact match of exchange and ticker that is active today, never by name. An empty list means none.

Explore related pages

Financial statements API for company analysis

Standardised statements, reporting periods and historical versions

Explore the API →

Company filings API for lists and individual records

Filing lists, individual records and the latest filings across companies

Explore the API →

Shareholders API for large company holders

Holders of 5% or more from ownership filings

Explore the API →

Common questions

Can I use a ticker instead of a company ID?

Yes. Use an identifier such as usa:0000789019 or an accepted ticker alias such as usa:MSFT.

Can I receive notifications when a filing is published?

Paid plans include webhooks that notify you when a filing is published.

Are financial amounts converted or scaled?

Amounts are decimal strings in the filing's own currency, without conversion or scaling to millions. Missing items are omitted, while reported zeroes remain zero.

How do I get from a company to its stock listing?

A company carries a list of its stock listing ids. Use one with the stock routes for prices, history, dividends, splits and valuation. A stock listing carries the company id back, so you can go either way.