Skip to main content
A filing can report its revenue in more than one breakdown: by operating segment, by product line and by region. Each of those breakdowns is an axis, and the API serves each axis as its own list. Each list has a reconciliation status for whether its rows add up to the revenue that the filing reports.

Axes

axis_qname is the XBRL axis of the list as filed, such as us-gaap:StatementBusinessSegmentsAxis or srt:ProductOrServiceAxis.

Members and rows

Each row of an axis is one XBRL member: member is the member as filed, such as msft:IntelligentCloudMember, and label is a readable name made from the member name, not from the filing’s own label text. So a label can look odd: the label of Coca-Cola’s ko:A.PacificMember is A Pacific. The kind of each row is one of two values:
  • segment: a part of the business, a product line or a region.
  • reconciling: an amount between the sum of the parts and the total, such as an elimination of sales between segments, a corporate item or an amount that the filing does not allocate. These rows come from members of ConsolidationItemsAxis in US GAAP and SegmentConsolidationItemsAxis in IFRS, such as IntersegmentEliminationMember, CorporateNonSegmentMember and UnallocatedAmountsMember.
An elimination is negative. When an axis has an elimination row, its segment rows alone can add up to more than revenue while the axis is still reconciled. Each row has its revenue and its revenue_share, the row’s revenue over the revenue that the filing reports. operating_income, total_assets and depreciation_amortization are set when the filing reports them for the member, and null when it does not.

Reconciliation

For each axis, numi adds up the rows and compares the sum with the revenue that the filing reports for the whole company:
  • revenue_total: the revenue that the filing reports, from the concept in revenue_concept.
  • segment_revenue_sum and reconciling_revenue_sum: the revenue of the segment rows and of the reconciling rows. The second is null when the axis has no reconciling rows.
  • coverage_ratio: the two sums together over revenue_total.
reconciliation is a status that depends on coverage_ratio: In an axis that is under, part of revenue is in no row. In an axis that is over, some revenue is usually in two rows, such as sales between segments when the axis has no elimination row for them.

Rows from more than one axis add up to more than 100 percent

Microsoft’s 10-K for the fiscal year to June 30, 2026 reports revenue of $331,839 million. It reports that revenue on all three axes. The business axis has three segments: On the product axis, the same revenue is in ten product lines, from Server Products and Cloud Services at $129,425 million to Other Products and Services at $109 million. On the geography axis, it is in two rows: the United States, $170,794 million, and other countries, $161,045 million. Each axis adds up to 100 percent of revenue. In one list with the rows of all three axes, the 15 rows add up to 300 percent of revenue, and the rows of two axes add up to 200 percent. On the product axis, Microsoft also tags us-gaap:ProductMember and us-gaap:ServiceOtherMember, a second breakdown of the same revenue, so in a list with every member, that revenue is in the list twice. When one axis has two complete breakdowns, the API keeps the one that comes closest to the reported revenue, and the one with more rows when both come equally close: for Microsoft, the ten product lines. Without axis, the response has every axis of the filing, each as its own list with its own reconciliation.

Which filing

Without filing_id, the response comes from the newest filing of period_type that has the axis in axis, or any axis when you do not set axis. So when you set axis and the newest filing does not have that axis, you get the axis from the newest filing that has it. period_type is annual by default, or quarterly. With filing_id, the response comes from that filing. GET /v1/companies/{ref} returns the filings of a company and their ids. currency is the currency code of the filing’s own units, such as USD or TWD. The API does not convert between currencies.

History

GET /v1/companies/{ref}/segments/history?axis=business returns one axis in every filing of period_type that has it, the oldest period first. A filing and its amendment for the same period are two entries, and each entry has its own filing field.

Segment note

GET /v1/companies/{ref}/filings/{filing_id}/segment-note returns the segment note of a filing as plain text, and source_concept, the XBRL concept of the note. Each table row stays on one line. has_note on a filing is true when the filing has a segment note.