Blog · 2026-10-07

Company Subsidiaries API: Corporate Structure as JSON

Company Subsidiaries API: Corporate Structure as JSON
Every US public company files its subsidiaries with the 10-K. Free on EDGAR, as Exhibit 21.

You want every legal entity that rolls up to a public company. The SEC already publishes the list, for free, inside a filing almost nobody reads.

A company subsidiaries API returns that list as JSON, pulled from Exhibit 21 of a company's annual 10-K. Each entry is a legal entity name and its jurisdiction of incorporation, with the date the list was filed. Instead of parsing the different HTML layout every company uses, you get a clean array in one call. The honest catch, which most vendors skip: Exhibit 21 covers significant subsidiaries, not the full org chart.

Key takeaway: A company subsidiaries API returns a public company's subsidiary list as JSON, parsed from Exhibit 21 of its annual 10-K: each entity's legal name and jurisdiction of incorporation, plus the parent, a count, and the filing date. Edgrapi's /v1/subsidiaries/{ident} normalizes the varied Exhibit 21 layouts on one key. The honest limit: it lists only significant subsidiaries (no ownership percentages, no tree), filed once a year, for US public companies.

What does a company subsidiaries API return?

A company subsidiaries API returns a public company's subsidiary list as structured JSON: the parent's name and CIK, a count, the date the list was filed, and an array of subsidiaries, each with its legal name and jurisdiction of incorporation. It reads the data from Exhibit 21 of the company's latest 10-K. Pull Apple and you get 19 entities, Coca-Cola 37, Berkshire Hathaway 275, each tagged with where it is incorporated.

The data is already public. Every US public company files it.

What you pay for is the parsing. Exhibit 21 is an HTML or text exhibit, and the layout is different at almost every company. Some use tables, some use indented lists, some cram it into one paragraph.

An API normalizes all of that into the same shape, so your code reads Apple and a tiny micro-cap the same way.

The layout variance is not small. One filer gives you a clean table of names and states. The next buries the list in a single run-on paragraph, or nests it with indentation you have to interpret. A parser that handles one breaks on the next, which is the maintenance an API takes off your plate. You can pass a ticker, a CIK, or a company name, and the lookup resolves server-side, so you do not fetch the CIK first.

What is SEC Exhibit 21, and who files it?

Exhibit 21 is the list of subsidiaries a company attaches to its annual report. Under Item 601(b)(21) of Regulation S-K, SEC registrants must file the names of their significant subsidiaries with the 10-K, along with each one's jurisdiction of incorporation. Every US-listed operating company files one each year. It is the cleanest free source of a company's legal-entity structure.

The key word is significant. A company does not have to list every entity it owns.

Under Rule 1-02(w) of Regulation S-X, a subsidiary is significant if it crosses roughly a 10% threshold on the parent's assets, investments, or income. Subsidiaries that fall below that line, even added together, can be left off.

The test runs three ways, and clearing any one makes a subsidiary significant: how much the parent has invested in it, how large its assets are against the parent's, and how much income it contributes. Pass one of the three and it has to be named.

So Exhibit 21 is a list of the subsidiaries that matter to the financials, filed once a year. That makes it reliable for the large entities and incomplete for the small ones.

How short the list runs depends on the company. Coca-Cola reports 37 significant subsidiaries, Apple 19, and Berkshire Hathaway 275. A holding company with many large operating units lists a lot. A focused single-product company lists almost none, because few of its subsidiaries clear the threshold.

The filing is a snapshot. The as_of date tells you when the list was current, which is the company's fiscal year end, not today.

Four ways to get company subsidiary data
The raw exhibit and a parsed API read SEC Exhibit 21; registry and hierarchy vendors answer a different, pricier question.

How do you get a company's subsidiaries as JSON?

You have four routes, and they split on how much structure you need. You can parse the raw EDGAR exhibit yourself, call an API that parses it for you, buy a global registry dataset, or buy a full corporate-hierarchy product. The first two read SEC Exhibit 21; the last two are different products that cost a lot more and answer a different question.

The raw route is EDGAR. The exhibit is free and public, attached to every 10-K. The pain is the parsing, because the layout varies so much that one parser rarely handles every filer. A GameStop-style filing can come back empty from a naive parser even though the data is sitting right there in an unusual layout.

The API route hands you the parsed JSON. You call one endpoint with a ticker or CIK and get the array back, normalized across layouts.

The registry route is OpenCorporates. It covers company registration data across 140-plus jurisdictions, from about 2,250 pounds a year, but it is registry lookups, not corporate hierarchy. It will not hand you a parent's subsidiary tree.

The hierarchy route is the enterprise vendors like Dun and Bradstreet or Moody's. These give you the full ownership tree with percentages and ultimate owners, which Exhibit 21 does not. They are powerful and expensive, and sales-gated.

What SEC Exhibit 21 includes and leaves out
Significant subsidiary names and jurisdictions are in; immaterial subs, ownership percentages, and the tree are out.

Is Exhibit 21 a complete list of subsidiaries?

No. Exhibit 21 lists only significant subsidiaries, so it undercounts on purpose. A company can omit subsidiaries that, even combined, stay under the Rule 1-02(w) significance threshold, which is why a sprawling business can report a surprisingly short list. The exhibit also gives you a flat list, not a tree. You get a name and a jurisdiction, never the ownership percentage or which subsidiary owns which.

Read it for what it is. A reliable list of the entities large enough to matter, not a complete corporate map.

If you need the full tree, with every shell entity and the ownership chain, Exhibit 21 will frustrate you. That is a job for a paid hierarchy vendor.

But for most practical work, the significant-subsidiary list is enough. It names the real operating entities, the acquired brands, and the jurisdictions the company books through.

The undercount is a feature of the rule, not a flaw in the data. The SEC asks for the subsidiaries that move the financials, because that is what investors need to see. If your use case matches, material entities, the list fits. If your use case is every shell and holding company, it does not.

One more honest point. The list reflects one filing a year, so a mid-year acquisition will not show up until the next 10-K.

Using subsidiary data for entity resolution
A subsidiary name resolves to its public parent via Exhibit 21, powering KYC, account mapping, supply-chain, and research.

What can you build with subsidiary data?

Subsidiary data is most useful for entity resolution: matching a name you have to the public parent it belongs to. A vendor, counterparty, or sanctions hit is often a subsidiary, not the listed company. Mapping "Acme Brick Company" back to Berkshire Hathaway is the kind of link that KYC, sales, and risk teams need, and Exhibit 21 is the public record that proves it.

Here is where it earns its place.

In KYC and onboarding, you resolve a counterparty to its ultimate public parent and screen the whole group, not just the entity in front of you.

In sales, you map which legal entities roll up to a target account, so a signature at one subsidiary counts toward the parent relationship.

In supply-chain and risk work, you check a supplier's jurisdictions, because a US brand that books through a dozen foreign entities carries exposure you want to see.

In competitive and M&A research, the subsidiary list shows what a rival has acquired and where it operates, year over year.

Jurisdiction is the field people underuse. Take Coca-Cola: its significant subsidiaries sit mostly in Delaware, but the list also names entities in Ireland, China, Brazil, and France. That spread is a readable map of where a company books and operates, straight from one filing, with no extra data purchase.

In investment research, a thesis sometimes turns on a subsidiary buried under the parent, an acquired brand or a foreign unit that is not obvious from the ticker. The list is where you find the entity the market treats as invisible. And because every entry links back to the source filing, the finding holds up when someone asks where it came from.

What if a company lists no subsidiaries?

Sometimes you get a count of zero, and it usually is not a bug. A company can file no Exhibit 21 if it has no significant subsidiaries, it can list them inside the 10-K body instead of a separate exhibit, or it can use a layout the parser cannot read. A good API tells you which case you hit and points you to the raw filing so you can check by hand.

Edgrapi's endpoint returns a hint when the count is zero, naming the likely reason, and links the source exhibit so you can confirm.

curl -s -H "X-API-Key: $KEY" \
  "https://api.edgrapi.com/v1/subsidiaries/GME"
# -> { "count": 0, "hint": "No subsidiaries parsed ... file no
#      Exhibit 21, or a layout the parser couldn't read; raw via /v1/download" }

When the parse comes back empty, pull the raw exhibit with /v1/download using the accession from the company's filing list, and read it directly. The zero is a prompt to verify, not a dead end.

This matters because a silent zero is dangerous. If an API returned an empty array with no explanation, you might record "no subsidiaries" for a company that simply filed in an unusual format. So treat a zero as a prompt to check by hand, and spot-check it against the raw exhibit before it enters a dataset other people will trust.

What is the best company subsidiaries API?

There is no single best company subsidiaries API, because the options answer two different questions: "what are the significant legal entities" and "what is the full ownership tree." Pick by which one you need. The table below sorts the real options by what they give you and what they cost, since the SEC data underneath the first two is the same free filing.

OptionWhat you getOwnership % and full treeAuth and priceBest for
Raw SEC EDGAR Exhibit 21the exhibit, you parse itNoFree, no keyFull control, the source
Edgrapi /v1/subsidiariesparsed name + jurisdiction JSONNoOne key, SEC + governmentClean parse of the primary source
OpenCorporatesglobal registry lookupsNo hierarchyFrom ~2,250 GBP/yr140+ jurisdiction registry data
Dun and Bradstreet / Moody'sfull ownership tree + UBOYesEnterprise, sales-gatedThe real org chart with ownership
sec-api.ioSEC filings incl Exhibit 21NoSubscriptionDeep SEC filing coverage

Be honest about the split. If your job needs ownership percentages and the ultimate beneficial owner, the SEC data cannot give you that, and a hierarchy vendor is the right spend.

Edgrapi's lane is the free primary source, parsed. It returns the significant-subsidiary list as JSON across whatever layout the filer used, on the same key that also reads SEC filings, insider trades, 13F holdings, and US government data. If you want entity resolution against the public record without an enterprise contract, that is the fit.

The practical rule is short. If you already pull SEC or government data, subsidiaries is one more endpoint on the key you have. If ownership and ultimate beneficial owner are the core of your product, buy the vendor built for that, and use the free SEC list to cross-check what they sell you.

How do you call edgrapi's company subsidiaries API?

You call one GET endpoint with a ticker or CIK and an API key. GET /v1/subsidiaries/{identifier} returns the parsed subsidiary list, the parent's CIK and name, the count, the as_of date, and the accession of the source 10-K. A failed or unknown lookup costs nothing.

curl -s -H "X-API-Key: $KEY" \
  "https://api.edgrapi.com/v1/subsidiaries/AAPL"
# -> { "company": "Apple Inc.", "count": 19, "as_of": "...",
#      "subsidiaries": [ {"name": "Apple Canada Inc.",
#      "jurisdiction": "Canada"}, ... ], "source_10k": "..." }

Each subsidiary carries its legal name and jurisdiction of incorporation, and the response carries the source filing so you can trace any entry back to EDGAR.

Note that this is US public companies only. Private companies and foreign filers that do not file a 10-K have no Exhibit 21, so they will not resolve. For those you need a registry or a hierarchy vendor.

Because the same data is exposed as an MCP tool, an AI agent can pull it directly. Ask an agent "list the foreign subsidiaries of Coca-Cola," and it hits the endpoint and answers from the live filing. The full docs cover the parameters, and the companion 8-K event and Form D feeds sit on the same key.

Resolve the entity before you trust the match

If you screen counterparties, map accounts, or research rivals, a company subsidiaries API is the cheapest way to tie a name back to the public parent that owns it. Pull the Exhibit 21 list, resolve the entity, and read the jurisdictions, with the source filing attached so the link holds up in review. Just remember what it is: the significant subsidiaries, once a year, no ownership percentages. Start free on the docs.

Frequently asked questions

What is a company subsidiaries API?

A company subsidiaries API returns a public company's subsidiary list as JSON instead of raw filing HTML. It reads SEC Exhibit 21 from the company's 10-K and hands back each subsidiary's legal name and jurisdiction of incorporation, plus the parent, the count, and the filing date. It saves you from parsing the different Exhibit 21 layout that every company uses.

How do I get a list of a company's subsidiaries?

Pull it from SEC Exhibit 21, the subsidiary list attached to every US public company's annual 10-K. You can parse the raw exhibit from EDGAR for free, or call an API like edgrapi's /v1/subsidiaries/{ticker} that returns it as clean JSON with name and jurisdiction. For private companies or full ownership trees, you need a registry or a hierarchy vendor instead.

Is SEC Exhibit 21 a complete list of all subsidiaries?

No. Exhibit 21 lists only significant subsidiaries, defined by Rule 1-02(w) of Regulation S-X, roughly a 10% threshold on assets, income, or investments. A company can omit smaller entities, even in aggregate, so the list undercounts on purpose. It also shows a flat name-and-jurisdiction list, never ownership percentages or the parent-child tree.

Can I get ownership percentages from Exhibit 21?

No. Exhibit 21 gives you each significant subsidiary's name and jurisdiction of incorporation and nothing more. There are no ownership percentages, no parent-child links, and no revenue. If you need the ownership chain and ultimate beneficial owner, that is a paid hierarchy product like Dun and Bradstreet or Moody's, not SEC data.

How often is Exhibit 21 updated?

Once a year. Exhibit 21 is filed with the annual 10-K, so the list reflects the company's fiscal year end, not the current date. A mid-year acquisition or divestiture will not appear until the next annual filing. Check the as_of date on the data, and treat it as an annual snapshot rather than a live feed of corporate changes.

Where do corporate-structure data vendors get their data?

Partly from SEC Exhibit 21. Corporate-hierarchy and KYC vendors ingest Exhibit 21 alongside government registries like Companies House and others to build their trees. So Exhibit 21 is a primary source those products resell. If your need is US public companies and entity resolution, you can read the same source directly instead of paying for the repackaged version.

Get a free API key