Income Statements
A company's income statement as clean, normalized numbers — revenue, cost of revenue, operating income, net income, and per-share figures — derived deterministically from the SEC XBRL data companies file. Annual, quarterly, or trailing-twelve-month, with the source accession and filing URL on every row.
/v1/financials/income-statementsProvide a ticker or cik and a period. Each row covers one reporting period, newest first, and carries the source accession and filing URL.
Query parameters#
tickerstringoptionalAAPL. Provide ticker or cik (at least one is required).cikstringoptionalticker.period"annual" | "quarterly" | "ttm"requiredannual = 10-K periods, quarterly = 10-Q periods, ttm = trailing twelve months.limitnumberoptional4.report_periodstringoptionalYYYY-MM-DD, the fiscal period end). Combine with the range filters as an additional AND constraint.report_period_gtestringoptionalYYYY-MM-DD). Also available: report_period_lte, report_period_gt, report_period_lt.Example request#
curl "https://api.focusalpha.ai/v1/financials/income-statements?ticker=AAPL&period=annual&limit=4" \
-H "Authorization: Bearer $FOCUSALPHA_API_KEY"Response#
Returns an income_statements array, newest first. Each row carries the shared identifying fields, then the income statement line items.
Shared row fields#
Every statement row carries the same identifying fields, then its line items.
tickerstringrequiredciknumberrequiredreport_periodstringrequiredYYYY-MM-DD).periodstringrequiredannual, quarterly, or ttm.fiscal_periodstring | nulloptionalFY, Q1, Q2, Q3, or Q4. Q4 appears on quarterly/ttm rows whose period ends in the fiscal-year-end quarter; annual rows are always FY.currencystringrequiredaccession_numberstring | nulloptionalfiling_urlstring | nulloptionalcalendar_datestring | nulloptionalIncome statement line items#
Fields: revenue, cost_of_revenue, gross_profit, operating_expense, selling_general_and_administrative_expenses, research_and_development, operating_income, interest_expense, nonoperating_income_expense, ebit, income_tax_expense, net_income_discontinued_operations, net_income_non_controlling_interests, net_income, net_income_common_stock, preferred_dividends_impact, consolidated_income, earnings_per_share, earnings_per_share_diluted, dividends_per_common_share, weighted_average_shares, weighted_average_shares_diluted. A line item not reported for a period is null.
Example response#
{
"income_statements": [
{
"ticker": "AAPL",
"cik": 320193,
"report_period": "2024-09-28",
"period": "annual",
"fiscal_period": "FY",
"currency": "USD",
"accession_number": "0000320193-24-000123",
"filing_url": "https://www.sec.gov/Archives/edgar/data/320193/000032019324000123",
"revenue": 391035000000,
"cost_of_revenue": 210352000000,
"gross_profit": 180683000000,
"operating_income": 123216000000,
"net_income": 93736000000,
"earnings_per_share": 6.11,
"earnings_per_share_diluted": 6.08
}
]
}Errors#
Statuses: 400 (missing both ticker and cik, a missing or invalid period, or a bad limit / date), 401 (bad or missing API key), 402 (per-minute rate limit or monthly quota exceeded — upgrade your plan), 404 (unresolvable ticker or CIK), 503 with a Retry-After header (data temporarily unavailable — retry shortly), and 500. A known company with no US-GAAP data is a successful 200 with empty arrays, not an error. See Errors.