Reference · Financials
get_reported_financials
A company's statements exactly as filed in XBRL. as_filed: one filing's own lines and columns, with concept and unit; segments: revenue, operating income and assets by business line, product and geography with the prior year; changes: the lines that moved most between the filing's periods. Use get_financials for standardized, comparable metrics.
GET https://api.fundalyze.ai/api/public/v1/get_reported_financialsMCPget_reported_financialsParameters
| Parameter | Type | Default | Description |
|---|---|---|---|
tickerrequired | stringup to 12 characters | — | US ticker symbol, e.g. AAPL or BRK-B. Use search_companies when unsure. |
statement | stringone of income, balance, cash_flow | income | income, balance or cash_flow (segments ignore it). |
view | stringone of as_filed, segments, changes | as_filed | as_filed: one filing's own lines and columns; segments: values by business line, product and geography; changes: the lines that moved most between the filing's periods. |
fiscal_year | integer | — | Fiscal year as filed; omit for the latest. |
period | stringone of FY, Q1, Q2, Q3, Q4 | FY | FY = annual report; Q1-Q3 = that 10-Q. Q4 only in segments. |
limit | integer | — | Max rows (defaults: as_filed 100, segments 60, changes 15). |
Example
A real call and its answer. Replace fdz_live_YOUR_KEY with your key, or set FUNDALYZE_API_KEY for the Python and JavaScript versions.
curl -H "Authorization: Bearer fdz_live_YOUR_KEY" "https://api.fundalyze.ai/api/public/v1/get_reported_financials?ticker=AAPL&statement=income&view=as_filed"import os
import requests
response = requests.get(
"https://api.fundalyze.ai/api/public/v1/get_reported_financials",
params={
"ticker": "AAPL",
"statement": "income",
"view": "as_filed",
},
headers={"Authorization": f"Bearer {os.environ['FUNDALYZE_API_KEY']}"},
timeout=60,
)
response.raise_for_status()
answer = response.json()
print(answer["text"])
print("Calls left today:", response.headers.get("X-Quota-Remaining"))const params = new URLSearchParams()
params.append("ticker", "AAPL")
params.append("statement", "income")
params.append("view", "as_filed")
const response = await fetch(`https://api.fundalyze.ai/api/public/v1/get_reported_financials?${params}`, {
headers: { Authorization: `Bearer ${process.env.FUNDALYZE_API_KEY}` },
})
const answer = await response.json()
if (!response.ok) throw new Error(`${response.status}: ${answer.detail}`)
console.log(answer.text)
console.log('Calls left today:', response.headers.get('X-Quota-Remaining'))The same call as an MCP tools/call: what an assistant sends.
{
"name": "get_reported_financials",
"arguments": {
"ticker": "AAPL",
"statement": "income",
"view": "as_filed"
}
}Response
Generated from live data on Oct 7, 2026; figures change as filings arrive. Rows trimmed to the first 5 for the docs: lines had 15.
What an assistant reads (and what MCP returns).
AAPL · income statement as filed · 10-K FY2025 · filed 2025-10-31 · accession 0000320193-25-000079 · scale M = millions of USD (money and shares), 1 = as reported (per share, counts)
line,concept,unit,scale,FY to 2025-09-27,FY to 2024-09-28,FY to 2023-09-30
Net sales,RevenueFromContractWithCustomerExcludingAssessedTax,usd,M,416161,391035,383285
Cost of sales,CostOfGoodsAndServicesSold,usd,M,220960,210352,214137
Gross margin,GrossProfit,usd,M,195201,180683,169148
Research and development,ResearchAndDevelopmentExpense,usd,M,34550,31370,29915
"Selling, general and administrative",SellingGeneralAndAdministrativeExpense,usd,M,27601,26097,24932
... 10 more rows in the full answer (trimmed for the docs)
SEC filing: https://www.sec.gov/Archives/edgar/data/320193/000032019325000079/0000320193-25-000079-index.html
More: https://fundalyze.ai/stocks/nasdaq/aapl?tab=statementsThe same content as JSON (REST).
{
"ticker": "AAPL",
"cik": 320193,
"statement": "income",
"view": "as_filed",
"form": "10-K",
"fiscal_year": 2025,
"period": "FY",
"filed": "2025-10-31",
"accession_number": "0000320193-25-000079",
"sec_url": "https://www.sec.gov/Archives/edgar/data/320193/000032019325000079/0000320193-25-000079-index.html",
"currency": "USD",
"periods": [
{
"label": "FY to 2025-09-27",
"period_type": "FY",
"period_start": "2024-09-29",
"period_end": "2025-09-27"
},
{
"label": "FY to 2024-09-28",
"period_type": "FY",
"period_start": "2023-10-01",
"period_end": "2024-09-28"
},
{
"label": "FY to 2023-09-30",
"period_type": "FY",
"period_start": "2022-09-25",
"period_end": "2023-09-30"
}
],
"lines": [
{
"label": "Net sales",
"concept": "RevenueFromContractWithCustomerExcludingAssessedTax",
"level": 4,
"unit": "usd",
"scale": "M",
"values": [
416161,
391035,
383285
]
},
{
"label": "Cost of sales",
"concept": "CostOfGoodsAndServicesSold",
"level": 4,
"unit": "usd",
"scale": "M",
"values": [
220960,
210352,
214137
]
},
{
"label": "Gross margin",
"concept": "GrossProfit",
"level": 3,
"unit": "usd",
"scale": "M",
"values": [
195201,
180683,
169148
]
},
{
"label": "Research and development",
"concept": "ResearchAndDevelopmentExpense",
"level": 5,
"unit": "usd",
"scale": "M",
"values": [
34550,
31370,
29915
]
},
{
"label": "Selling, general and administrative",
"concept": "SellingGeneralAndAdministrativeExpense",
"level": 5,
"unit": "usd",
"scale": "M",
"values": [
27601,
26097,
24932
]
}
],
"total_lines": 15
}Fields of data
What each field of data means. rows[].field is a field of each row in the rows list.
| Field | Meaning |
|---|---|
lines | Statement lines in filing order (list; see lines[]). |
periods | Period columns in order (labels). |
ticker | Ticker as listed in the SEC directory. |
cik | SEC Central Index Key. |
statement | income, balance or cash_flow. |
view | as_filed, segments or changes. |
form | The SEC form the figures come from (10-K, 10-Q, 20-F...). |
fiscal_year | Fiscal year as the filer labels it. |
period | FY or Q1-Q4. |
filed | Filing date (ISO). |
accession_number | SEC accession number of the filing. |
sec_url | The filing's index page on sec.gov. |
currency | ISO code of the reporting currency (as_filed, changes). |
periods[].label | Column heading: 'FY to 2025-09-27' or 'at 2025-09-27'. |
periods[].period_type | FY, Q1-Q4, YTD or INSTANT. |
periods[].period_start | Start of the column's period (null for an instant). |
periods[].period_end | End of the column's period. |
lines[].label | Line caption as filed. |
lines[].concept | XBRL concept name. |
lines[].level | Indentation level in the filed statement. |
lines[].unit | XBRL unit as filed. |
lines[].scale | M = millions of the currency or shares; 1 = as reported. |
lines[].values | One value per period, in `scale`; null when not reported. |
total_lines | Lines in the statement before `limit`. |
segments[].axis | business_segment, product_service or geographic. |
segments[].metric | revenue, operating_income, assets... or the XBRL tag. |
segments[].member | The segment, product or region as named in XBRL. |
segments[].value | This period's value, millions of `unit`. |
segments[].prior_year | Same period a year earlier, millions of `unit`. |
segments[].change_pct | Year-over-year change, percent. |
segments[].derived | true when Fundalyze computed it (Q4 = FY less Q1-Q3). |
segments[].tag | XBRL tag. |
segments[].unit | XBRL unit (usually USD). |
segments[].period_end | Period end date. |
total_rows | Segment rows before `limit`. |
previous_period_end | Earlier period compared (changes). |
current_period_end | Later period compared (changes). |
changes[].label | Line caption as filed. |
changes[].concept | XBRL concept name. |
changes[].previous | Earlier value, in `scale`. |
changes[].current | Later value, in `scale`. |
changes[].change | current minus previous, in `scale`. |
changes[].change_pct | Change in percent of the earlier value. |
changes[].kind | changed, new or dropped. |
changes[].material | true when the move is at least 1% of the statement's largest line. |
changes[].scale | M = millions; 1 = as reported. |
total_changes | Changed lines before `limit`. |
The link
Every answer ends with More: <link>, and REST returns the same URL as link: the fundalyze.ai page where the figures can be checked (here, fundalyze.ai/stocks/nasdaq/aapl?tab=statements). Cite it when you show the data to others, as the attribution rules ask.
Errors
A bad parameter is a 400 naming it, an unknown ticker a 404, a busy key or a used-up day a 429. Every status and message: Errors.
This page as Markdown, for language models and scripts: /developers/md/reference/get_reported_financials