Skip to main content
Form 20-F Data serves the content of a foreign private issuer’s annual Form 20-F filing with the SEC. Each observation belongs to one filing, addressed by section: the filing profile, as-reported segments, disclosed ownership, the notes, and the filing’s own XBRL facts. A 20-F is an annual filing — there are no quarterly rows in this dataset.
Plan: Free and above · Credits: 1 per call · MCP tools: get_adr_20f_data, get_adr_20f_notes

What You Can Use Form 20-F Data For

Read a non-US issuer’s segment breakdown as it reported it. See the holders the filing disclosed. Pull a specific XBRL fact from the filing’s own instance. Confirm which accounting standard and reporting currency a filing used before comparing it with anything.

The Financial Statements Are Not in This Dataset

The three financial statements are not served here. Income Statements, Balance Sheets and Cash Flow Statements are the single contract for them, and a covered 20-F filer’s annual IFRS statements are served there through the 20-F fallback.Look for a 20-F filer’s statements on the ordinary statement endpoints, not here.

The Form 20-F Sections

profile says which filing this is: its date, its accession number, its reporting currency, and whether it reports under IFRS or US GAAP. segments carries as-reported business and geographic breakdowns, filterable by dimension, metric or fiscal_year. ownership carries the holders the filing disclosed. notes carries the filing’s note disclosures. xbrl-facts carries the filing’s own XBRL instance.

Do Not Sum Form 20-F Ownership Rows

Board-as-a-group lines appear beside individual holders in the ownership section. Adding them together double-counts every board member.

XBRL Facts Require a Narrowing Parameter

A single XBRL instance holds thousands of facts, so the xbrl-facts section requires at least one of tag, accession or period_end. An unnarrowed request is rejected rather than returning an unusable page.

Form 20-F Date Convention

A 20-F covers a fiscal year. fiscal_year on the segments section selects one. period_end on the XBRL section selects facts by their period end date.

Form 20-F Sources

All content is read from the issuer’s own Form 20-F filing on SEC EDGAR, including the XBRL instance the issuer filed with it.

Form 20-F Coverage

Coverage is about 320 foreign private issuers filing Form 20-F, from 2014-12, updated annually as each issuer files.

GET /v1/companies/{company_id}/20f/profile

Which filing this is: one object, not a list. It carries ticker, name, country, form, filing_date, accession, filing_url, the reporting currency, the taxonomy (ifrs-full or US GAAP), and ownership_status and ownership_as_of for the ownership section.
string
required
A ticker, CIK, ISIN or company_id.

GET /v1/companies/{company_id}/20f/notes

The notes to the accounts — accounting policies, risk disclosures, lease, pension and tax notes — in full text. Find the note first, then read it. By default this returns the index: each note’s readable note_title (for example Leases), its note_tag (the IFRS concept), period_end and text_chars, with no text. You do not have to know taxonomy concept names — list the index, pick by title, then set include_text on a narrowed request, and the text comes back in content_text. With include_text the page is capped at 10 rows, because a single note can run to 50,000 characters.
string
required
A ticker, CIK, ISIN or company_id.
string
Substring of the note title, at least 2 characters, for example lease.
string
The note’s concept, with or without its taxonomy prefix — DisclosureOfLeasesExplanatory works as well as ifrs-full:DisclosureOfLeasesExplanatory.
string
One filing’s accession number, for example 0001628280-26-025362.
boolean
default:"false"
Return the note text.
integer
default:"200"
Rows per page, between 1 and 1000 — capped at 10 when include_text is set. Page through with cursor.

GET /v1/companies/{company_id}/20f/segments

As-reported business and geographic breakdowns. Each row carries dimension, segment_path, segment_name, depth, is_elimination, metric, the XBRL tag, period_end, fiscal_year, value and currency.
string
required
A ticker, CIK, ISIN or company_id.
string
geographic or business.
string
For example revenue or assets.
integer
Fiscal year.
integer
default:"200"
Rows per page, between 1 and 1000. Page through with cursor.

GET /v1/companies/{company_id}/20f/ownership

The holders the filing disclosed. Each row carries holder_name, shares, ownership_pct, voting_pct, share_class, as_of and filing_url. As noted above, a board-as-a-group line sits beside the individual holders — do not sum them.
string
required
A ticker, CIK, ISIN or company_id.
string
One filing’s accession number.
integer
default:"100"
Rows per page, between 1 and 1000. Page through with cursor.

GET /v1/companies/{company_id}/20f/xbrl-facts

The filing’s own XBRL instance. Each row carries taxonomy, tag, value, unit, decimals, period_start, period_end and is_instant. At least one of tag, accession or period_end is required; a request with none returns 400.
string
required
A ticker, CIK, ISIN or company_id.
string
The concept name without its taxonomy prefix — CashAndCashEquivalents, not ifrs-full:CashAndCashEquivalents. The taxonomy comes back in its own taxonomy field.
string
One filing’s accession number.
string
Period end date, YYYY-MM-DD.
integer
default:"200"
Rows per page, between 1 and 1000. Page through with cursor.
See also Income Statements and its siblings for a 20-F filer’s statements, Segmented Financials for the US-filer equivalent of the segments section, SEC Filings Index for the filing itself, and Exchange Disclosures for what the same issuer told its home market.