Financials
Income statement
- Coverage
- US / CN / JP, the last 3 years
- Billing
- 20 cr / thousand calls
Income statement line items and per-share data, one row per period: 29 line-item columns in total, plus the 12 common fields from the section preamble. ebitda is a derived column (not an as-reported line); the rest are as-reported line-item values.
The example shows only a selection of the line-item columns; the response field table is authoritative for the full key set. A line item that was not disclosed appears as null in the actual response.
Shared financials conventions
US / CN / JP, the last 3 years; markets out of scope return 404 . The three statement endpoints take the same parameters (ticker / period / limit) and return one row per period, aligned on (ticker, fiscal_year, period); for each ticker they return the most recent limit periods in descending report_period order. Valuation and derived financial metrics are provided separately by /financial-metrics-snapshot.
period: FY (default) / Q1–Q4 / H1. Accepts multiple comma-separated values. Periods actually disclosed per market: US FY Q1–Q3 (no standalone Q4 single-quarter figure), CN FY Q1 H1 Q3, JP FY H1 (no quarterly reports); a period that does not exist returns an empty array (Q4 is currently not disclosed separately in any of the three markets and is always an empty array; the caller computes fourth-quarter flow figures itself: US = FY − Q1 − Q2 − Q3, CN = FY − Q3 (Q3 is year-to-date cumulative), and JP has no quarterly figures; /balance-sheets holds point-in-time values, so no such subtraction applies). There is no date filter; limit counts back from the most recent period.
Common fields (present on every row of all three statements):
| Field | Type | Description |
|---|---|---|
ticker | string | Canonical ticker (US has no suffix, e.g. AAPL; CN is 600519.SH; JP is 7203.T) |
market | string | Market code: US / CN / JP |
fiscal_year | int | Fiscal year |
period | string | FY / Q1–Q4 / H1 |
period_start | date | Period start date; null for /balance-sheets |
report_period | date | Period end date |
currency | string | Reporting currency |
accounting_standard | string | US-GAAP / IFRS / CN-GAAP / JP-GAAP |
accession_number | string | Native document number from the official source: US is the SEC accession (e.g. 0000320193-25-000123), JP the EDINET docID, CN the cninfo announcement id |
form_type | string | Type of the source filing, in the market's native encoding (US: SEC form names such as 10-K / 10-Q; JP: EDINET numeric codes; CN: annual_report and the like) |
filing_url | string | Deep link to the official filing; opens the source document directly |
filing_date | date | Filing date: the date the document became public on the official channel |
Value conventions (common to all three statements):
- Field names are cross-market canonical line-item names; values are numbers in the base unit of
currency; line items that do not apply arenull. - Cash outflows are negative, inflows positive.
- Flow line items are as reported, no de-cumulation is applied, and the value corresponds to the
[period_start, report_period]range: US quarterly reports carry single-quarter figures; the CN third-quarter report (Q3) is year-to-date cumulative, the single-quarter figure =Q3−H1and the fourth quarter =FY−Q3; the semi-annual report (H1) is cumulative for the first half. - For derived line items (
ebitda/total_debt/net_debt/free_cash_flow), missing components count as 0; the value isnullonly when all components are missing. - Only GAAP / statutory-basis figures are returned; for non-GAAP numbers, use
/filing-search.
Query parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| ticker | string | required | Up to 10 tickers, comma-separated. |
| period | string | optional | FY / Q1–Q4 / H1; multiple values allowed, comma-separated; see the head of this section for which periods each market has. Default FY. |
| limit | int | optional | Number of periods per ticker, counting back from the most recent period; maximum 40. Default 4. |
Response fields
| Field | Type | Description |
|---|---|---|
| ticker | string | Canonical ticker (US has no suffix, e.g. AAPL; CN is 600519.SH; JP is 7203.T) |
| market | string | Market code: US / CN / JP |
| fiscal_year | int | Fiscal year |
| period | string | FY / Q1–Q4 / H1 |
| period_start | date | Period start date; null for /balance-sheets |
| report_period | date | Period end date |
| currency | string | Reporting currency |
| accounting_standard | string | US-GAAP / IFRS / CN-GAAP / JP-GAAP |
| accession_number | string | Native document number from the official source: US is the SEC accession (e.g. 0000320193-25-000123), JP the EDINET docID, CN the cninfo announcement id |
| form_type | string | Type of the source filing, in the market's native encoding (US: SEC form names such as 10-K / 10-Q; JP: EDINET numeric codes; CN: annual_report and the like) |
| filing_url | string | Deep link to the official filing; opens the source document directly |
| filing_date | date | Filing date: the date the document became public on the official channel |
| revenue | number | Operating revenue / Revenue / Net sales |
| cost_of_revenue | number | Cost of revenue |
| gross_profit | number | Gross profit |
| research_and_development_expense | number | Research and development expense |
| selling_and_marketing_expense | number | Selling expense |
| general_and_administrative_expense | number | General and administrative expense |
| selling_general_and_administrative_expense | number | Total selling, general and administrative expenses (US filers commonly disclose only the combined total) |
| taxes_and_surcharges | number | Taxes and surcharges (CN only) |
| operating_expenses | number | Total operating expenses |
| operating_income | number | Operating profit / Operating income |
| interest_income | number | Interest income |
| interest_expense | number | Interest expense |
| other_non_operating_income | number | Other non-operating income and expenses, net |
| ordinary_income | number | Ordinary income (JP-GAAP only) |
| extraordinary_gains | number | Extraordinary gains (JP-GAAP only) |
| extraordinary_losses | number | Extraordinary losses (JP-GAAP only) |
| pretax_income | number | Pretax income |
| income_tax_expense | number | Income tax expense |
| net_income | number | Net income (including noncontrolling interests) |
| net_income_attributable_to_parent | number | Net income attributable to parent |
| net_income_attributable_to_noncontrolling_interests | number | Net income attributable to noncontrolling interests |
| depreciation_and_amortization | number | Depreciation and amortization (as disclosed on the income statement or in the notes) |
| share_based_compensation | number | Share-based compensation expense |
| eps_basic | number | Basic earnings per share |
| eps_diluted | number | Diluted earnings per share |
| dividend_per_share | number | Dividend per share (declared) |
| weighted_average_shares_basic | number | Weighted average shares (basic) |
| weighted_average_shares_diluted | number | Weighted average shares (diluted) |
| ebitda | number | Derived (not an as-reported line) = operating_income + depreciation_and_amortization |
No key yet? Create one under API Keys — it is shown once, so store it where your shell can read it. Connecting an agent over MCP instead? That signs in through the browser and needs no key at all.
Authentication, conventions, rate limits and error shapes are the same for every endpoint — they live on REST API.