> ## Documentation Index
> Fetch the complete documentation index at: https://docs.financialdatapi.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Companies

> The scored SEC company universe (S&P 500 union Nasdaq-100) with sector and industry inline, plus entity resolution by ticker or CIK.

Financial Data API serves a curated, scored universe of US issuers built from public SEC filings. The companies endpoint lists that universe with classification inline, so sector-aware logic resolves without a per-company fan-out. The entity resolver turns a ticker or CIK you already hold into a Financial Data API entity you can use everywhere else.

<Columns cols={2}>
  <Card title="Company universe" icon="list" href="#list-the-scored-universe">
    `GET /companies` lists the curated fundamentals universe (S\&P 500 union Nasdaq-100) with sector and industry inline.
  </Card>

  <Card title="Entity resolution" icon="magnifying-glass" href="#resolve-by-ticker-or-cik">
    `GET /entities/resolve` turns a ticker or CIK into the Financial Data API entity id used across the rest of the API.
  </Card>
</Columns>

## What data is available

The universe is the constituents of the S\&P 500 and the Nasdaq-100, deduplicated into a single scored set of roughly 505 US companies. Membership is defined by carrying a SEC-derived sector, which excludes raw ticker-directory filers. Each row is intentionally lean: identity plus classification, so you get the ticker, CIK, exchange, domicile country, sector, and industry in one call.

<Columns cols={3}>
  <Card title="Identity" icon="id-card">
    `entityId`, `name`, `ticker`, `cik`, and primary `exchange` for each company.
  </Card>

  <Card title="Classification" icon="sitemap">
    SEC-derived `sector` and `industry` inline. Every universe member carries a sector.
  </Card>

  <Card title="Linkage" icon="link">
    Use `entityId`, `ticker`, or `cik` as the lookup for [financial statements](/apis/financial-statements) and entity observations.
  </Card>
</Columns>

<Info>
  The company universe is assembled from public SEC filings. Identity and classification are official-source and redistribution-safe. The `/companies` feed is part of the public surface.
</Info>

<Tip>
  Coverage totals change as index membership and filings update. Read live breadth from `GET /coverage` rather than hard-coding the count.
</Tip>

## Authentication

Send your key as `x-api-key` (or `Authorization: Bearer`) with the `data:read` scope. See [Authentication](/authentication).

## List the scored universe

`GET /companies` returns the universe, one company per row, with sector and industry inline. It is a standard cursor-paginated list endpoint. Unknown query parameters are rejected with `bad_request`.

### Parameters

### Example

<CodeGroup>
  ```bash cURL theme={"theme":"css-variables"}
  curl "https://api.financialdatapi.com/companies?limit=2" \
    -H "x-api-key: $FINANCIALDATA_API_KEY"
  ```

  ```typescript TypeScript (@financialdatapi/client) theme={"theme":"css-variables"}
  import { FinancialDataApiClient } from "@financialdatapi/client";

  const client = new FinancialDataApiClient({ apiKey: process.env.FINANCIALDATA_API_KEY! });

  // Auto-paginate over every page of the universe.
  for await (const company of client.paginate("/companies")) {
    console.log(company.ticker, company.name, company.sector);
  }
  ```
</CodeGroup>

```json Response theme={"theme":"css-variables"}
{
  "data": [
    {
      "entityId": "ent_aapl",
      "name": "Apple Inc.",
      "ticker": "AAPL",
      "cik": "0000320193",
      "exchange": "NASDAQ",
      "country": "USA",
      "sector": "Information Technology",
      "industry": "Technology Hardware, Storage & Peripherals"
    }
  ],
  "meta": {
    "api_version": "v1",
    "pagination": { "limit": 2, "cursor": null, "next_cursor": "...", "has_more": true }
  },
  "requestId": "..."
}
```

<Note>
  Example values above are illustrative. Pull the live universe from the endpoint.
</Note>

### Response fields

## Resolve by ticker or CIK

`GET /entities/resolve` turns an identifier you already hold into the Financial Data API entity. Pass the value as `alias` and, optionally, narrow the lookup with `alias_type`. Narrowing avoids ambiguity when one string could match more than one identifier kind.

### Parameters

### Example

<CodeGroup>
  ```bash cURL theme={"theme":"css-variables"}
  curl "https://api.financialdatapi.com/entities/resolve?alias=AAPL&alias_type=ticker" \
    -H "x-api-key: $FINANCIALDATA_API_KEY"
  ```

  ```typescript TypeScript (@financialdatapi/client) theme={"theme":"css-variables"}
  import { FinancialDataApiClient } from "@financialdatapi/client";

  const client = new FinancialDataApiClient({ apiKey: process.env.FINANCIALDATA_API_KEY! });

  // resolveEntity(alias, aliasType?)
  const { data: entity } = await client.resolveEntity("AAPL", "ticker");
  console.log(entity.id, entity.name);
  ```
</CodeGroup>

```json Response theme={"theme":"css-variables"}
{
  "data": {
    "id": "ent_aapl",
    "type": "company",
    "name": "Apple Inc.",
    "slug": "aapl",
    "active": true,
    "metadata": {}
  },
  "meta": { "api_version": "v1" },
  "requestId": "..."
}
```

<Warning>
  An unresolved alias returns `404 not_found`. Catch it and fall back to listing the universe if you need to confirm membership.
</Warning>

<Note>
  You can often skip resolution. The financials path lookup accepts a ticker or CIK directly, and the `entity` observation filter resolves a ticker for you. Resolve explicitly when you want to confirm identity before fetching.
</Note>

## Worked example: find, then pull

<Steps>
  <Step title="Find the company in the universe">
    List `/companies` (or resolve a ticker) to get the identity and sector, and confirm membership and classification.
  </Step>

  <Step title="Carry the identifier forward">
    Use `entityId`, `ticker`, or `cik` as the lookup for [financial statements](/apis/financial-statements) and for entity observations.
  </Step>

  <Step title="Trace any value to its filing">
    Statement and fundamentals values originate from observations. Follow `GET /provenance/observations/{id}` to the named SEC source and ingestion run.
  </Step>
</Steps>

## Notes and caveats

<AccordionGroup>
  <Accordion title="What defines membership">
    The universe is the S\&P 500 and Nasdaq-100 constituents, deduplicated. Membership is defined by carrying a SEC-derived sector, which excludes raw ticker-directory filers.
  </Accordion>

  <Accordion title="Coverage breadth">
    The universe is US issuers only. Use `GET /coverage` for the current catalog totals and covered categories rather than assuming a fixed count.
  </Accordion>

  <Accordion title="Where classification comes from">
    `sector` is SEC-derived and present on every member. `industry` is the finer classification within the sector and may be null.
  </Accordion>
</AccordionGroup>

## Related

<CardGroup cols={2}>
  <Card title="Financial statements" icon="building-columns" href="/apis/financial-statements">
    Pull income, balance-sheet, and cash-flow statements for any company in the universe.
  </Card>

  <Card title="Economic calendar & events" icon="calendar" href="/apis/economic-calendar">
    Company filings surface as `issuer_filing` events in the unified events feed.
  </Card>

  <Card title="Provenance" icon="route" href="/concepts/provenance">
    Trace any value back to its named SEC source and ingestion run.
  </Card>
</CardGroup>
