latestOpenAPI 3.0.02026-08-2010141507.9 KB

3d5897270d8a

Financials

Income statement

Free Starter Stock ETF Pro

Returns normalized income statement data — revenue, cost of revenue, operating expenses, EBITDA, net income, EPS, and more. Facts are mapped from raw XBRL to a curated set of standardized line items.

Monetary values default to US dollars. Pass the currency parameter to receive any supported ISO 4217 currency instead: line items not already in that currency are converted on the fly (flow items at the period-average rate, balance-sheet items at the period-end spot rate), and the per-period fx block records the exact rate(s) applied so each conversion is reproducible. Values already in the requested currency are passed through untouched.

Use period=ttm to get trailing twelve months data, computed by summing the last 4 reported quarters.

get/api/financials/income-statement

Query parameters

symbolstring

Stock ticker symbol. Identify the entity by exactly one of: symbol, cik, cusip, composite_figi, or share_class_figi. At least one is required.

cikinteger

SEC Central Index Key (CIK).

cusipstring

CUSIP identifier (9 characters).

composite_figistring

Composite OpenFIGI identifier.

share_class_figistring

Share-class OpenFIGI identifier.

currencystring

Currency to return all monetary values in (default USD).

Pass any ISO 4217 code from the table below, or original to disable conversion and receive every figure in its own as-reported currency. With a target currency, any line item not already in it is converted on the fly at the period-appropriate rate (spot for balance-sheet instants, period-average for income/cash-flow flows); values already in the target pass through untouched (no round-trip), and the per-period fx block records the rate(s) applied. A currency that cannot be priced for a given period leaves those facts native and flags them under fx.unconverted.

Accepted values

CodeCurrency
originalReturn every value in its original as-reported currency (no conversion)
USDUS Dollar — default
AEDUnited Arab Emirates Dirham
AFNAfghan Afghani
ALLAlbanian Lek
AMDArmenian Dram
ANGNetherlands Antillean Guilder
AOAAngolan Kwanza
ARSArgentine Peso
AUDAustralian Dollar
AWGAruban Florin
AZNAzerbaijani Manat
BAMBosnia-Herzegovina Convertible Mark
BBDBarbadian Dollar
BDTBangladeshi Taka
BGNBulgarian Lev
BHDBahraini Dinar
BIFBurundian Franc
BMDBermudan Dollar
BNDBrunei Dollar
BOBBolivian Boliviano
BRLBrazilian Real
BSDBahamian Dollar
BTNBhutanese Ngultrum
BWPBotswanan Pula
BYNBelarusian Ruble
BZDBelize Dollar
CADCanadian Dollar
CDFCongolese Franc
CHFSwiss Franc
CLPChilean Peso
CNYChinese Yuan
COPColombian Peso
CRCCosta Rican Colón
CUPCuban Peso
CVECape Verdean Escudo
CZKCzech Koruna
DJFDjiboutian Franc
DKKDanish Krone
DOPDominican Peso
DZDAlgerian Dinar
EGPEgyptian Pound
ERNEritrean Nakfa
ETBEthiopian Birr
EUREuro
FJDFijian Dollar
FKPFalkland Islands Pound
GBPBritish Pound
GELGeorgian Lari
GHSGhanaian Cedi
GIPGibraltar Pound
GMDGambian Dalasi
GNFGuinean Franc
GTQGuatemalan Quetzal
GYDGuyanaese Dollar
HKDHong Kong Dollar
HNLHonduran Lempira
HTGHaitian Gourde
HUFHungarian Forint
IDRIndonesian Rupiah
ILSIsraeli New Shekel
INRIndian Rupee
IQDIraqi Dinar
IRRIranian Rial
ISKIcelandic Króna
JMDJamaican Dollar
JODJordanian Dinar
JPYJapanese Yen
KESKenyan Shilling
KGSKyrgyz Som
KHRCambodian Riel
KMFComorian Franc
KPWNorth Korean Won
KRWSouth Korean Won
KWDKuwaiti Dinar
KYDCayman Islands Dollar
KZTKazakhstani Tenge
LAKLaotian Kip
LBPLebanese Pound
LKRSri Lankan Rupee
LRDLiberian Dollar
LSLLesotho Loti
LYDLibyan Dinar
MADMoroccan Dirham
MDLMoldovan Leu
MGAMalagasy Ariary
MKDMacedonian Denar
MMKMyanmar Kyat
MNTMongolian Tugrik
MOPMacanese Pataca
MRUMauritanian Ouguiya
MURMauritian Rupee
MVRMaldivian Rufiyaa
MWKMalawian Kwacha
MXNMexican Peso
MYRMalaysian Ringgit
MZNMozambican Metical
NADNamibian Dollar
NGNNigerian Naira
NIONicaraguan Córdoba
NOKNorwegian Krone
NPRNepalese Rupee
NZDNew Zealand Dollar
OMROmani Rial
PABPanamanian Balboa
PENPeruvian Sol
PGKPapua New Guinean Kina
PHPPhilippine Peso
PKRPakistani Rupee
PLNPolish Zloty
PYGParaguayan Guarani
QARQatari Riyal
RONRomanian Leu
RSDSerbian Dinar
RUBRussian Ruble
RWFRwandan Franc
SARSaudi Riyal
SBDSolomon Islands Dollar
SCRSeychellois Rupee
SDGSudanese Pound
SEKSwedish Krona
SGDSingapore Dollar
SHPSt. Helena Pound
SLESierra Leonean Leone
SOSSomali Shilling
SRDSurinamese Dollar
SSPSouth Sudanese Pound
STNSão Tomé & Príncipe Dobra
SVCSalvadoran Colón
SYPSyrian Pound
SZLSwazi Lilangeni
THBThai Baht
TJSTajikistani Somoni
TMTTurkmenistani Manat
TNDTunisian Dinar
TOPTongan Paʻanga
TRYTurkish Lira
TTDTrinidad & Tobago Dollar
TWDNew Taiwan Dollar
TZSTanzanian Shilling
UAHUkrainian Hryvnia
UGXUgandan Shilling
UYUUruguayan Peso
UZSUzbekistani Som
VESVenezuelan Bolívar
VNDVietnamese Dong
VUVVanuatu Vatu
WSTSamoan Tala
XAFCentral African CFA Franc
XCDEast Caribbean Dollar
XDRSpecial Drawing Rights
XOFWest African CFA Franc
XPFCFP Franc
YERYemeni Rial
ZARSouth African Rand
ZMWZambian Kwacha
ZWGZimbabwean Gold
period'annual' | 'quarter' | 'ttm'

Reporting period: annual, quarter, or ttm (trailing twelve months). TTM sums the last 4 quarters for flow items and uses the latest quarter for point-in-time items.

The reporting period: annual, quarter, or ttm (trailing twelve months). TTM sums the last 4 quarters for flow items and uses the latest quarter for point-in-time items.

limitinteger

Maximum number of periods to return (may be clamped by subscription tier). Ignored when period=ttm.

splitAdjustboolean

On by default: EPS and share counts are normalized onto the current split-adjusted basis so the series stays continuous across stock splits. Periods still reported on a pre-split basis are scaled by the cumulative split factor; periods the latest filing already restated are left untouched, so there is no double-adjustment. Only per-share and share-count fields are affected (EPS, basic/diluted weighted-average shares); absolute dollar amounts never change. Adjusted periods carry a splitFactor. Pass false to get the raw values exactly as originally filed. Either way, the sources/dateFiled audit trail is left as-filed.

Response

Income statement data organized by period

periodstring

The fiscal period end date

fiscalYearinteger

The company's fiscal year (handles non-December year-ends — AAPL FY ends Sep, COST FY ends Aug).

fiscalPeriod'FY' | 'Q1' | 'Q2' | 'Q3' | 'Q4' | 'TTM'

Fiscal period of a reported value: FY (annual), Q1-Q4 (quarterly), or TTM (trailing twelve months).

splitFactornumber

Only present when splitAdjust=true and this period was adjusted. The cumulative forward split factor applied to share counts for this period (per-share figures used 1 / splitFactor). Absent means the period was already on the current split-adjusted basis.

sourcesFactSources

Map of SEC accession number to the filing's metadata and the list of curated fact names that filing supplied to this period. Combines provenance (which filing supplied each value) with the audit trail of restatements. Facts synthesized from other facts in the same period (e.g. grossProfit = revenue - costOfRevenue) are absent from this map and instead listed under derived. Q4 values reconstructed from cumulative period facts use a self-documenting synthetic key — Q4-Recon-FY-9M, Q4-Recon-FY-H1-Q3, or Q4-Recon-FY-Q1-Q2-Q3 — with type: "Q4-Recon" and no dateFiled (the matching 10-K's dateFiled is on the period entry's top-level dateFiled field). Pruning rules: non-amendment filings that supplied no surviving fact value are dropped (their existence is already conveyed by the period's top-level dateFiled). Amendment filings (/A) are always included even when their facts were all superseded by a later amendment — their facts may be empty, but their existence is itself the audit signal needed to reconstruct point-in-time data between filing dates. Combine sources[accession].facts (which values came from this filing) with sources[accession].dateFiled (when each became public) to reconstruct point-in-time data and detect restatements.

derivedstring[]

Names of facts whose values were calculated rather than taken directly from the source filing — for example, grossProfit synthesized from revenue minus costOfRevenue when the company did not tag gross profit explicitly, or every fact in a period=ttm response (summed across 4 quarters, or carried from the latest quarter for instant items).

dateFiledstring date

SEC filing acceptance date for the original 10-K (annual / Q4 quarterly entries) or 10-Q (Q1-Q3 quarterly entries) covering this period. Format: YYYY-MM-DD. Use this to gate point-in-time data access and avoid lookahead bias when joining with historical price data — backtesters should only treat the period's facts as "knowable" on or after this date. Amendments (10-K/A, 10-Q/A) are explicitly not used here; this field always reflects the original disclosure date. Not present when period=ttm — TTM is synthesized from 4 quarters and has no single filing date.

Example response

[
  {
    "period": "2023-09-30",
    "fiscalYear": 2025,
    "fiscalPeriod": "FY",
    "fx": {
      "targetCurrency": "USD",
      "originalCurrencies": [
        "USD",
        "EUR",
        "VEF"
      ],
      "rates": [
        {
          "from": "EUR",
          "method": "average",
          "rate": 1.0824,
          "start": "2024-01-01",
          "end": "2024-12-31"
        },
        {
          "from": "EUR",
          "method": "spot",
          "rate": 1.0389,
          "effectiveDate": "2024-12-31"
        }
      ],
      "unconverted": {
        "VEF": [
          "otherIncomeExpense"
        ]
      }
    },
    "splitFactor": 4,
    "sources": {
      "0000320193-22-000108": {
        "type": "10-K",
        "dateFiled": "2022-10-28",
        "amendment": false,
        "facts": {
          "revenue": {},
          "costOfRevenue": {},
          "netIncome": {},
          "eps": {}
        }
      },
      "0000320193-23-000063": {
        "type": "10-K",
        "dateFiled": "2023-02-15",
        "amendment": true,
        "facts": {
          "interestExpense": {
            "before": 2931000000
          }
        }
      }
    },
    "derived": [
      "grossProfit",
      "ebit",
      "ebitda",
      "totalDebt",
      "workingCapital",
      "freeCashFlow"
    ],
    "dateFiled": "2024-11-01"
  }
]