# Find a public company's EIN

> How do I find a public company's EIN (Employer Identification Number)?

For a company that files with the SEC, EDGAR's company data includes the EIN the company gave when filing. Find the company's CIK with `GET /v1/sec/companies/search` (by `ticker` or by name with `q`), then read `ein` from `GET /v1/sec/companies/{cik}`; Apple Inc. (CIK 0000320193), for example, returns `942404110`. To go the other way, `GET /v1/resolve?scheme=US-EIN&value=94-2404110` returns the company. Private companies generally have no public source for their EIN: the IRS keeps tax information confidential and gives a business its EIN only after verifying that the caller is authorised.

## What an EIN is

The IRS describes it this way: "An EIN is a federal tax ID number for businesses, tax-exempt organizations and other entities." It has nine digits and is usually written `XX-XXXXXXX`. An EIN identifies a taxpayer, not a security: a company's ticker and its SEC Central Index Key (CIK) are separate identifiers, and a corporate group can have many EINs, one for each legal entity.

## Look up an EIN by ticker, name or CIK

1. **Find the CIK.** `?ticker=AAPL` is an exact, case-insensitive match and returns a list, because a ticker can briefly be shared during a reorganisation. `?q=apple` is a fuzzy name search that returns ranked candidates, so check the name and CIK before you use one.
2. **Read the company profile.** `ein` holds the nine digits as EDGAR publishes them, or null when the filer gave none or the value is not a valid EIN.

By ticker:

```sh
curl -s "https://api.olympus.new-odyssey.com/v1/sec/companies/search?ticker=AAPL" \
  -H "X-API-Key: $OLYMPUS_API_KEY"
```

By name:

```sh
curl -s "https://api.olympus.new-odyssey.com/v1/sec/companies/search?q=apple&limit=5" \
  -H "X-API-Key: $OLYMPUS_API_KEY"
```

Company profile by CIK:

```sh
curl -s "https://api.olympus.new-odyssey.com/v1/sec/companies/320193" \
  -H "X-API-Key: $OLYMPUS_API_KEY"
```

200 OK (abridged):

```json
{
  "data": {
    "cik": "0000320193",
    "name": "Apple Inc.",
    "primary_ticker": "AAPL",
    "state_of_incorporation": "CA",
    "ein": "942404110",
    "entity_id": "org_…",
    "identifiers": [
      { "scheme": "OLY-US-SEC-CIK", "value": "0000320193", "method": "published", "confidence": 1, "source": { … } },
      { "scheme": "US-EIN", "value": "942404110", "method": "published", "confidence": 1, "source": { … } }
    ],
    "links": { "sec": "https://www.sec.gov/cgi-bin/browse-edgar?action=getcompany&CIK=0000320193", … },
    "provenance": { "source_url": "https://data.sec.gov/submissions/CIK0000320193.json", … }
  },
  "meta": { "datasets": [ … ] }
}
```

`provenance.source_url` is the SEC's own submissions record for the company, so you can check the value at the source. The `identifiers` list appears once the company's identifiers are registered; until then `entity_id` is null and the list is empty, but `ein` is still returned.

ein_lookup.py:

```python
import os
import requests

API = "https://api.olympus.new-odyssey.com"
HEADERS = {"X-API-Key": os.environ["OLYMPUS_API_KEY"]}

def ein_for(*, ticker: str | None = None, name: str | None = None) -> list[dict]:
    """EINs EDGAR publishes for the companies matching a ticker or a name."""
    params = {"ticker": ticker} if ticker else {"q": name, "limit": 5}
    r = requests.get(f"{API}/v1/sec/companies/search", params=params, headers=HEADERS, timeout=30)
    r.raise_for_status()
    out = []
    for match in r.json()["data"]:
        c = requests.get(f"{API}/v1/sec/companies/{match['cik']}", headers=HEADERS, timeout=30)
        c.raise_for_status()
        company = c.json()["data"]
        out.append({"cik": company["cik"], "name": company["name"], "ein": company["ein"]})  # ein may be None
    return out

print(ein_for(ticker="AAPL"))
print(ein_for(name="apple"))  # name search returns candidates; check the CIK and name
```

## From an EIN to the company

The shared identifier registry resolves an EIN, in any common format, to the entity it is published for, with its CIK and the records other Olympus APIs serve for it:

Resolve an EIN:

```sh
curl -s "https://api.olympus.new-odyssey.com/v1/resolve?scheme=US-EIN&value=94-2404110" \
  -H "X-API-Key: $OLYMPUS_API_KEY"
```

No match answers `404 ENTITY_NOT_FOUND`. Only identifiers a source publishes are registered; nothing is matched on name. See [Identifiers and entities](https://olympus.new-odyssey.com/docs/identifiers).

## What this does and doesn't cover

- **SEC registrants only.** Companies, funds and other entities that file with the SEC, as listed in EDGAR's submissions data. The EIN is the one the filer supplied to EDGAR; we check that it has nine digits and a prefix the IRS assigns, but don't otherwise verify it.
- **Not every filer has one in EDGAR.** When EDGAR has no EIN for a filer, or one that is not a valid EIN, `ein` is null.
- **One EIN per registrant.** The EIN belongs to the filing entity. Subsidiaries that don't file with the SEC are not covered.
- **From an AI agent:** the MCP tools don't return the EIN today. Agents can call the REST endpoints above with the same API key.

## Why private companies' EINs are generally not public

EINs are issued by the IRS, and the IRS treats tax information as confidential: "IRC Section 6103 generally prohibits the release of tax information by an IRS employee." Nothing requires a private company to publish its EIN, so for most private companies no public dataset contains it.

- **Your own business:** the IRS suggests looking at the EIN notice it issued, past tax returns, your bank or the agencies that issued your licences, and otherwise calling its Business and Specialty Tax Line, where it will "verify your identity and provide the number over the phone if you're authorized to receive it."
- **A supplier or customer:** ask them for it.
- **Tax-exempt organisations:** the IRS publishes the Exempt Organizations Business Master File Extract, whose records are sorted by EIN, and its Tax Exempt Organization Search tool.

> Data from SEC EDGAR. Olympus is not affiliated with or endorsed by the U.S. Securities and Exchange Commission or the IRS.

## Sources

- Internal Revenue Service: [Employer identification number](https://www.irs.gov/businesses/employer-identification-number)
- Internal Revenue Service: [Disclosure laws](https://www.irs.gov/government-entities/federal-state-local-governments/disclosure-laws)
- Internal Revenue Service: [Exempt Organizations Business Master File Extract (EO BMF)](https://www.irs.gov/charities-non-profits/exempt-organizations-business-master-file-extract-eo-bmf)
- U.S. Securities and Exchange Commission: [EDGAR Application Programming Interfaces (APIs)](https://www.sec.gov/search-filings/edgar-application-programming-interfaces)

## Related

- [SEC Filings & Financial Data API reference](https://olympus.new-odyssey.com/docs/sec)
- [Identifiers and entities (GET /v1/resolve)](https://olympus.new-odyssey.com/docs/identifiers)
- [Get SEC financial statements as JSON](https://olympus.new-odyssey.com/guides/sec-financial-statements-json)
- [Methodology: SEC filings and financial data](https://olympus.new-odyssey.com/methodology/sec)

---
Published 2026-10-21, updated 2026-10-21 by New Odyssey. Canonical: https://olympus.new-odyssey.com/guides/find-a-public-company-ein
