---
title: "Returns XBRL-tagged financial fundamentals from public-company 10-K and 10-Q filings, sourced from SEC EDGAR's company-facts API"
method: GET
path: "/v1/fundamentals"
---

# Returns XBRL-tagged financial fundamentals from public-company 10-K and 10-Q filings, sourced from SEC EDGAR's company-facts API

`GET /v1/fundamentals`

## Request

- Base URL: `https://api.keyvex.com`
- URL: `https://api.keyvex.com/v1/fundamentals`
- Auth: API key in header `x-api-key`

Returns XBRL-tagged financial fundamentals from public-company 10-K and 10-Q filings, sourced from SEC EDGAR's company-facts API. Each record is one observation of one concept at one period end.  Use this when the user asks about: revenue, profit, margins, cash position, debt, shareholder equity, EPS, share count, operating vs. financing cash flow, or any line-item-level financial state of a public company.  v1A scope: a curated 40-concept watchlist covering:   - income_statement: Revenues / RevenueFromContractWithCustomer /     CostOfRevenue / GrossProfit / OperatingExpenses / R&D / SG&A /     OperatingIncomeLoss / InterestExpense / IncomeTaxExpenseBenefit /     NetIncomeLoss   - balance_sheet: Assets / AssetsCurrent / Cash / AccountsReceivable     / Inventory / PP&E / Goodwill / Liabilities / LongTermDebt /     StockholdersEquity / CommonStockSharesOutstanding   - cash_flow: NetCash{Operating/Investing/Financing}Activities /     PaymentsToAcquirePPE (capex) / PaymentsForRepurchaseOfCommonStock     / PaymentsOfDividends / DepreciationDepletionAndAmortization   - metrics: EarningsPerShareBasic/Diluted, weighted-avg share counts   - entity: EntityCommonStockSharesOutstanding (dei taxonomy)  Key cautions on the data:   - The same concept can appear in multiple units (e.g., 'USD' and     'USD/shares' for EPS). Filter by unit if you need a specific shape.   - Many concepts have BOTH year-to-date cumulative observations AND     quarterly-period observations on 10-Q filings. The `frame` field     (e.g., 'CY2025Q3') marks the per-quarter point-period observation;     rows with empty `frame` are typically cumulative YTD.   - Older filings may use deprecated concept names; KeyVex catalog     includes both modern and legacy names where companies migrated     (e.g., Revenues AND RevenueFromContractWithCustomerExcludingAssessedTax).  Set `latest_only=true` to get one record per (ticker × concept) — the most-recent observation. Useful for 'current state' snapshots.  Pure-publisher posture: values are AS FILED. We do NOT compute derived ratios (P/E, ROE, ROIC), YoY/QoQ deltas, or 'real' vs nominal versions. Agents calculate those on top.

## Query parameters

- `ticker` string
- `company_cik` string
- `concept` string
- `category` 'income_statement' | 'balance_sheet' | 'cash_flow' | 'metrics' | 'entity'
- `fiscal_year` integer
- `fiscal_period` 'Q1' | 'Q2' | 'Q3' | 'Q4' | 'FY'
- `form` '10-K' | '10-Q' | '10-K/A' | '10-Q/A'
- `since` string
- `until` string
- `latest_only` boolean
- `sort_by` 'period_end' | 'filed_date' | 'value'
- `sort_order` 'desc' | 'asc'
- `limit` integer

## Response `200`

JSON envelope: { results: [...], count, has_more }.

## Other responses

- `400`: Invalid parameter.
- `401`: Missing or invalid API key.
- `402`: This tool requires a higher plan (upgrade_required). Retrying will not help.
- `429`: Tier rate/quota limit reached (rate_limited). Retry-After points at the reset.

---

[API](https://skmtc.dev/keyvex/apis/keyvex-api.md) · [All operations](https://skmtc.dev/keyvex/apis/keyvex-api/llms.txt) · [OpenAPI document](https://skmtc.dev/keyvex/apis/keyvex-api/revisions/01c0210c19cd?raw)
