Get free API key

Learn

EDINET XBRL guide: finding the financial data you need through documents, tags and hierarchy

Parsing XBRL from EDINET means choosing the right document, then checking what an item means and under which conditions a value applies. This page sets out what to look at, and in what order, when you trace one number in an annual securities report.

What you will learn

  • check_circleIdentify the company and the document, then check each value's period, scope and unit.
  • check_circleKeep the table hierarchy and the tag definitions apart, and record the source and version.
  • check_circleChoose the entry point you need: key items, line-item hierarchy or facts.

First, decide the document type and what it covers

Getting an overview of a company and fetching data for analysis call for reading different places. Separating the document, the item, the period and the table structure narrows down the work.

EDINET carries not only annual securities reports but also securities registration statements, large shareholding reports and more. Do not pick a document just because the filer's name resembles the company you want; check the document type and what it covers. FSA: About EDINET (in Japanese)

To study a company's business and annual financials, the annual securities report is one entry point. To answer who holds a large stake in that company, you look at different documents, and the filer relates to the company differently.

Your questionWhat to check first
What business is the company in?The business description and the document type
What was revenue for the year?The fiscal year, consolidated or non-consolidated, the income statement
Which businesses generate profit?The segment breakdown and how the measures are defined
How did pay or headcount change?Filing company or group, the period, the unit

Even within one document, average annual salary and consolidated headcount may not cover the same scope. “Appears in the same report” is not the same as “comparable on the same basis”.

Keep the document ID separate from the company ID

Knowing the company does not tell you which report you read. In EDINET API listings, docID identifies a document. Check related information such as parentDocID, the document type, and status related to corrections and withdrawals according to the specification you use. EDINET API specification (in Japanese)

What to storeWhat it lets you answer later
Document identifierWhich document the value came from
Filer and subjectWhose report it is and what it covers
Period coveredWhen the results are from
Filing time and retrieval timeWhen it was published and when you fetched it
Related documents and statusWhether you need to check a correction or withdrawal

An amendment report does not necessarily restate every number you need. Check the original document and the amendment, then decide what needs to change. Avoid designs that replace everything based on the title text alone.

Read XBRL as item, value and conditions together

The taxonomy defines items and their relations; the instance holds the values reported this time. Check the context for what a value covers and its period, and the unit for its unit. These may sit in different places in the same file.

Linking a revenue figure to its period and unit

NetSales / 323,609,000,000

  • contextRef → context

    2025-04-01 → 2026-03-31

    Check the start and end dates it points to

  • unitRef → unit

    JPY = Japanese yen

    Check the measure it points to

Organized from the FSA's official 2026 sample. Not a real company's results or an API response.

The figure organizes one fact from the official samples for the 2026 EDINET taxonomy. It does not show a real company's results or a ZENITH Code API response.

PartWhat to checkEasy to miss
ElementNamespace and element nameTreating items as the same because the prefix matches
ContextEntity, period, axesAssuming meaning from the ID's name
UnitCurrency, shares, numerator and denominatorTreating yen and yen per share as the same
FactValue, missing value, precision and so onTurning nil or not-retrieved into zero

Even when the same revenue tag appears several times, prior year and current year, consolidated and non-consolidated, or per segment serve different uses. Taking the first search hit or the largest value does not guarantee the conditions you need.

Do not build the table hierarchy from the order of numbers alone

Do not treat the order in which elements appear in an XBRL file as the display order of the financial statements. The presentation linkbase is what tells you the parent–child relations and order of items.

In the presentation linkbase, loc points to an item and presentationArc lets you follow the relation between items. Use order for sequence and preferredLabel for the role of the label to display. The same item can appear in tables with different roles, so keep the role each relation belongs to. Guidelines for filer-specific taxonomies (in Japanese)

Display you wantWhat you need to check
A table that keeps the line-item orderPresentation role, parent–child relations, order
Headings that distinguish opening and closing balancesLabel roles and the point-in-time condition
A comparison table of numbers onlyItem meaning, period, scope, unit

Child items in the presentation do not always add up. There are headings, deductions, signs and different aggregation scopes. Treat “I can display the hierarchy” and “I recomputed the subtotal and it matches” as separate checks.

Look tags up each time, or keep a list?

For a single document while you are learning, checking the source file against the official definitions is fine. As documents increase, consider a cache that reuses definitions you have already read, so you do not reread the same definition again and again.

But avoid permanently merging tags you find under one name. Keep the taxonomy version, namespace, filer-specific definitions and source document distinct. The same Japanese label does not always mean the same thing.

Newly foundHow to store it
An unknown elementKeep the original namespace, element name and source
A new labelKeep the language and the label role
An item with a similar nameSeparate “candidate mapping” from “confirmed as equivalent”
A taxonomy updateDistinguish versions; do not overwrite existing definitions unconditionally

Collecting published definitions and deciding how they map to common items for analysis are separate. Do not build a one-step process that automatically absorbs every unknown tag into an existing item.

In ZENITH Code, choose the entry point by the level of detail you need

Following key items over time and examining the tags in one document call for different data shapes.

PurposeAPI entry pointWhat to check
Comparing revenue and profitIncome statementFiscal period, period type, accounting standard, missing values
Table breakdowns and hierarchyFull financial statementsDepth, parent, order, original tag, value conditions
Element-level values in annual securities reportsXBRL factsDocument, context, dimension members, result limit

Structured data from an API still needs to be checked for fit. For example, a partial-match search on element names may return candidates from the prior year or a different scope. Matching the search condition does not by itself give you a row ready for comparison.

Start with one company, one period and one item, and check the value and conditions in the response. Then add years if you want a trend, or widen the scope within the same period if you want a breakdown. Not increasing companies, years and items all at once makes it easier to see which condition changed the result.

Read next

FAQ

For investors and developers

Can every table in an annual securities report be fetched as individual numbers?
Do not assume so. Some parts treat text and tables as blocks, which is different from information tagged as individual numbers. Check the format and level of detail in which the item you want is recorded.
Which material should I practice with first?
With the FSA's official 2026 samples (in Japanese), you can fix the target and check the same values and references. Do not treat the sample numbers as a real company's results, and record the version and file you used.

For AI builders and researchers

If an AI judges two Japanese labels to be the same, can I merge the items?
Similar names alone are not enough to merge. Check the definition, type, period, scope, namespace and so on, and keep the reasons for the decision. Separating “proposed as a candidate” from “adopted as data” makes errors easier to trace.
gavel

Disclaimer

This guide explains how the data works and how to use the API. It does not recommend buying or selling any security and is not investment advice. Example values reflect responses at the time of writing and may change with later filings or corrections. Investment decisions are your own responsibility.