Financial data is informational and may be inaccurate. See Disclaimer.

drillr.ai
API keys →

Financials

Income statement

GET/api/v2/income-statements
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) / Q1Q4 / H1. Accepts multiple comma-separated values. Periods actually disclosed per market: US FY Q1Q3 (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):

FieldTypeDescription
tickerstringCanonical ticker (US has no suffix, e.g. AAPL; CN is 600519.SH; JP is 7203.T)
marketstringMarket code: US / CN / JP
fiscal_yearintFiscal year
periodstringFY / Q1Q4 / H1
period_startdatePeriod start date; null for /balance-sheets
report_perioddatePeriod end date
currencystringReporting currency
accounting_standardstringUS-GAAP / IFRS / CN-GAAP / JP-GAAP
accession_numberstringNative 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_typestringType 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_urlstringDeep link to the official filing; opens the source document directly
filing_datedateFiling 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 are null.
  • 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 = Q3H1 and the fourth quarter = FYQ3; 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 is null only when all components are missing.
  • Only GAAP / statutory-basis figures are returned; for non-GAAP numbers, use /filing-search.

Query parameters

ParameterTypeRequiredDescription
tickerstringrequiredUp to 10 tickers, comma-separated.
periodstringoptionalFY / Q1–Q4 / H1; multiple values allowed, comma-separated; see the head of this section for which periods each market has. Default FY.
limitintoptionalNumber of periods per ticker, counting back from the most recent period; maximum 40. Default 4.

Response fields

FieldTypeDescription
tickerstringCanonical ticker (US has no suffix, e.g. AAPL; CN is 600519.SH; JP is 7203.T)
marketstringMarket code: US / CN / JP
fiscal_yearintFiscal year
periodstringFY / Q1–Q4 / H1
period_startdatePeriod start date; null for /balance-sheets
report_perioddatePeriod end date
currencystringReporting currency
accounting_standardstringUS-GAAP / IFRS / CN-GAAP / JP-GAAP
accession_numberstringNative 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_typestringType 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_urlstringDeep link to the official filing; opens the source document directly
filing_datedateFiling date: the date the document became public on the official channel
revenuenumberOperating revenue / Revenue / Net sales
cost_of_revenuenumberCost of revenue
gross_profitnumberGross profit
research_and_development_expensenumberResearch and development expense
selling_and_marketing_expensenumberSelling expense
general_and_administrative_expensenumberGeneral and administrative expense
selling_general_and_administrative_expensenumberTotal selling, general and administrative expenses (US filers commonly disclose only the combined total)
taxes_and_surchargesnumberTaxes and surcharges (CN only)
operating_expensesnumberTotal operating expenses
operating_incomenumberOperating profit / Operating income
interest_incomenumberInterest income
interest_expensenumberInterest expense
other_non_operating_incomenumberOther non-operating income and expenses, net
ordinary_incomenumberOrdinary income (JP-GAAP only)
extraordinary_gainsnumberExtraordinary gains (JP-GAAP only)
extraordinary_lossesnumberExtraordinary losses (JP-GAAP only)
pretax_incomenumberPretax income
income_tax_expensenumberIncome tax expense
net_incomenumberNet income (including noncontrolling interests)
net_income_attributable_to_parentnumberNet income attributable to parent
net_income_attributable_to_noncontrolling_interestsnumberNet income attributable to noncontrolling interests
depreciation_and_amortizationnumberDepreciation and amortization (as disclosed on the income statement or in the notes)
share_based_compensationnumberShare-based compensation expense
eps_basicnumberBasic earnings per share
eps_dilutednumberDiluted earnings per share
dividend_per_sharenumberDividend per share (declared)
weighted_average_shares_basicnumberWeighted average shares (basic)
weighted_average_shares_dilutednumberWeighted average shares (diluted)
ebitdanumberDerived (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.