Reference · Financials
get_financials
Standardized financial statements (income, balance, cash_flow) built from SEC XBRL filings, annual or quarterly, one column per period, newest last, in USD millions (non-USD filers converted). Ask for only the metrics you need by key; margins, growth, free cash flow and per-share figures come precomputed. include_provenance shows each value's XBRL concept and SEC accession.
GET https://api.fundalyze.ai/api/public/v1/get_financialsMCPget_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 | Which statement: income, balance or cash_flow. |
metrics | list of string | — | Metric keys for the chosen statement (omit for the defaults: income: revenue, gross_profit, operating_income, net_income, eps_diluted; balance: cash, total_assets, total_liabilities, total_equity, total_debt; cash_flow: cfo, cfi, cff, capex, fcf). Repeat the parameter or comma-separate. income: revenue, cost_of_revenue, gross_profit, rd_expense, sga_expense, total_operating_expenses, operating_income, ebitda, interest_expense, pretax_income, income_tax, effective_tax_rate, net_income, eps_basic, eps_diluted, shares_diluted, dividends_per_share, gross_margin, operating_margin, net_margin, revenue_growth. balance: cash, short_term_investments, receivables, inventory, total_current_assets, ppe_net, goodwill, intangibles, total_assets, accounts_payable, deferred_revenue, current_debt, total_current_liabilities, long_term_debt, total_liabilities, retained_earnings, total_equity, shares_outstanding, total_debt, net_debt, working_capital, tangible_book_value, invested_capital, book_value_per_share. cash_flow: cf_net_income, cf_da, cf_sbc, cf_working_capital_change, cfo, capex, acquisitions, cfi, debt_issued, debt_repaid, buybacks, dividends_paid, cff, net_change_in_cash, ending_cash, fcf, fcf_margin. Industry lines (banks, insurers, REITs, utilities, oil & gas, asset managers) exist too; an unknown key's error lists every valid key. |
period_type | stringone of annual, quarterly | annual | annual = fiscal years (FY2024); quarterly = discrete quarters (2024Q3). |
years | integer1–20 | 5 | How many fiscal years back, 1-20: one column per year (annual) or four per year (quarterly). |
include_provenance | boolean | false | Also return each value's source: the XBRL concept (or formula) and the SEC accession it came from. |
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_financials?ticker=MSFT&metrics=revenue%2Coperating_income%2Cnet_income%2Ceps_diluted&years=3"import os
import requests
response = requests.get(
"https://api.fundalyze.ai/api/public/v1/get_financials",
params={
"ticker": "MSFT",
"metrics": ["revenue", "operating_income", "net_income", "eps_diluted"],
"years": 3,
},
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", "MSFT")
params.append("metrics", "revenue")
params.append("metrics", "operating_income")
params.append("metrics", "net_income")
params.append("metrics", "eps_diluted")
params.append("years", "3")
const response = await fetch(`https://api.fundalyze.ai/api/public/v1/get_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_financials",
"arguments": {
"ticker": "MSFT",
"metrics": [
"revenue",
"operating_income",
"net_income",
"eps_diluted"
],
"years": 3
}
}Response
Generated from live data on Oct 7, 2026; figures change as filings arrive.
What an assistant reads (and what MCP returns).
MSFT · income · annual · USD millions (per-share in USD, ratios as decimals, shares in millions)
metric,FY2024,FY2025,FY2026
revenue,245122,281724,331839
operating_income,109433,128528,155237
net_income,88136,101832,133749
eps_diluted,11.8,13.64,17.95
More: https://fundalyze.ai/stocks/nasdaq/msft?tab=statementsThe same content as JSON (REST).
{
"ticker": "MSFT",
"cik": 789019,
"statement": "income",
"period_type": "annual",
"units": "USD millions (per-share in USD, ratios as decimals, shares in millions)",
"periods": [
"FY2024",
"FY2025",
"FY2026"
],
"period_ends": [
"2024-06-30",
"2025-06-30",
"2026-06-30"
],
"metrics": [
{
"key": "revenue",
"label": "Revenue",
"unit_kind": "currency",
"values": [
245122,
281724,
331839
]
},
{
"key": "operating_income",
"label": "Operating income",
"unit_kind": "currency",
"values": [
109433,
128528,
155237
]
},
{
"key": "net_income",
"label": "Net income",
"unit_kind": "currency",
"values": [
88136,
101832,
133749
]
},
{
"key": "eps_diluted",
"label": "Diluted EPS",
"unit_kind": "per_share",
"values": [
11.8,
13.64,
17.95
]
}
]
}Fields of data
What each field of data means. rows[].field is a field of each row in the rows list.
| Field | Meaning |
|---|---|
ticker | The ticker as listed in the SEC EDGAR directory, upper case. |
cik | SEC Central Index Key, the company's permanent EDGAR id. |
statement | The statement returned: income, balance or cash_flow. |
period_type | annual (fiscal years) or quarterly (discrete quarters). |
units | How values are scaled: currency in USD millions, per-share in USD, ratios as decimals (0.25 = 25%), shares in millions. |
periods | Column labels, oldest first: FY2024 (annual) or 2024Q3 (quarterly). |
period_ends | The fiscal period end date of each column (ISO date), same order. |
metrics | One entry per requested metric, in request order. |
metrics[].key | The metric key (see the data dictionary). |
metrics[].label | The metric's display name. |
metrics[].unit_kind | currency, per_share, ratio or shares: decides the scaling in units. |
metrics[].values | One value per period, same order as periods; null where not reported. |
metrics[].provenance | Only with include_provenance: where each value came from. |
metrics[].provenance[].period | The period label the source belongs to. |
metrics[].provenance[].source | The XBRL concept the value was read from, or the formula it was computed with. |
metrics[].provenance[].accession | SEC accession number of the filing it came from. |
metrics[].provenance[].period_end | Period end date in that filing (ISO date). |
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/msft?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_financials