---
title: "A company's revenue disaggregated by business segment, geography, and product/service from its dimensional XBRL facts, annual fiscal years only, latest restated values. Also carries per-segment operating income and margin when tagged. Empty axes mean the issuer reports revenue only as a consolidated total. Axis members may overlap hierarchically (a parent line tagged alongside its children), so never sum members — consolidatedRevenue carries the real per-year totals."
method: GET
path: "/v1/stocks/{ticker}/revenue-breakdown"
tags: ["Fundamentals"]
---

# A company's revenue disaggregated by business segment, geography, and product/service from its dimensional XBRL facts, annual fiscal years only, latest restated values. Also carries per-segment operating income and margin when tagged. Empty axes mean the issuer reports revenue only as a consolidated total. Axis members may overlap hierarchically (a parent line tagged alongside its children), so never sum members — consolidatedRevenue carries the real per-year totals.

`GET /v1/stocks/{ticker}/revenue-breakdown`

## Request

- Base URL: `https://api.equibles.com`
- URL: `https://api.equibles.com/v1/stocks/{ticker}/revenue-breakdown`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/equibles/apis/equibles-api/docs/v1/stocks/:ticker/revenue-breakdown/get.ts> (a function with typed inputs; its response is checked against the schema)

## Path parameters

- `ticker` string, required

## Response `200`

OK

- RevenueBreakdownResponse
  - `ticker` string, nullable
  - `companyName` string, nullable
  - `segments` RevenueBreakdownAxisDto: One disaggregation axis (segment, geography, or product/service). periodEnds are oldest first, and each member's values align to them by index. Members may OVERLAP HIERARCHICALLY — issuers tag a parent line alongside its children (e.g. Data Center next to Compute + Networking) — so summing members can double-count; use the response's consolidatedRevenue as the denominator instead.
    - `unit` string, nullable
    - `periodEnds` string[], nullable
    - `members` RevenueBreakdownMemberDto[], nullable
      - `member` string, nullable
      - `label` string, nullable
      - `values` number[], nullable
  - `geographies` RevenueBreakdownAxisDto: One disaggregation axis (segment, geography, or product/service). periodEnds are oldest first, and each member's values align to them by index. Members may OVERLAP HIERARCHICALLY — issuers tag a parent line alongside its children (e.g. Data Center next to Compute + Networking) — so summing members can double-count; use the response's consolidatedRevenue as the denominator instead.
    - `unit` string, nullable
    - `periodEnds` string[], nullable
    - `members` RevenueBreakdownMemberDto[], nullable
      - `member` string, nullable
      - `label` string, nullable
      - `values` number[], nullable
  - `products` RevenueBreakdownAxisDto: One disaggregation axis (segment, geography, or product/service). periodEnds are oldest first, and each member's values align to them by index. Members may OVERLAP HIERARCHICALLY — issuers tag a parent line alongside its children (e.g. Data Center next to Compute + Networking) — so summing members can double-count; use the response's consolidatedRevenue as the denominator instead.
    - `unit` string, nullable
    - `periodEnds` string[], nullable
    - `members` RevenueBreakdownMemberDto[], nullable
      - `member` string, nullable
      - `label` string, nullable
      - `values` number[], nullable
  - `segmentOperatingIncome` RevenueBreakdownAxisDto: One disaggregation axis (segment, geography, or product/service). periodEnds are oldest first, and each member's values align to them by index. Members may OVERLAP HIERARCHICALLY — issuers tag a parent line alongside its children (e.g. Data Center next to Compute + Networking) — so summing members can double-count; use the response's consolidatedRevenue as the denominator instead.
    - `unit` string, nullable
    - `periodEnds` string[], nullable
    - `members` RevenueBreakdownMemberDto[], nullable
      - `member` string, nullable
      - `label` string, nullable
      - `values` number[], nullable
  - `segmentOperatingMargin` RevenueBreakdownAxisDto: One disaggregation axis (segment, geography, or product/service). periodEnds are oldest first, and each member's values align to them by index. Members may OVERLAP HIERARCHICALLY — issuers tag a parent line alongside its children (e.g. Data Center next to Compute + Networking) — so summing members can double-count; use the response's consolidatedRevenue as the denominator instead.
    - `unit` string, nullable
    - `periodEnds` string[], nullable
    - `members` RevenueBreakdownMemberDto[], nullable
      - `member` string, nullable
      - `label` string, nullable
      - `values` number[], nullable
  - `consolidatedRevenue` RevenueConsolidatedTotalDto[], nullable: Consolidated (no-dimension) total revenue per fiscal year, oldest first — the denominator for member shares. Axis members may overlap hierarchically (a parent line tagged alongside its children), so summing members can exceed this real total; never sum members naively.
    - `periodEnd` string, date: Fiscal-year period end the total covers.
    - `unit` string, nullable: Unit of the value (e.g. USD).
    - `value` number, double: The consolidated total revenue for the period.

## Other responses

- `400`: Invalid request — a malformed parameter value or a query parameter this endpoint does not support.
- `404`: Not Found

## Changes

- **2026-11-06** `666e06778588`: 2 info
  - added the non-success response with the status `400`
  - added the optional property `error/availableDates` to the response with the `404` status

[Operation history](https://skmtc.dev/equibles/apis/equibles-api/changes/v1/stocks/:ticker/revenue-breakdown/get.md)

---

[API](https://skmtc.dev/equibles/apis/equibles-api.md) - [All operations](https://skmtc.dev/equibles/apis/equibles-api/llms.txt) - [OpenAPI document](https://skmtc.dev/equibles/apis/equibles-api/revisions/83f13ba1a993?raw)
