Financial statements from SEC filings for agents: every number cites its filing, point-in-time.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Optional API key; leave empty to use the keyless tier
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
List facts whose knowledge interval opened since a timestamp: new periods from fresh filings and restatements of earlier periods. Each item has the company, the concept_id, the version number (1 for a first report, higher for a restatement) and the new value object with its period, known interval, restated flag and proof. This is the pull twin of the financial_data_updated webhook: poll it to keep a model, a cache or a watchlist current, or scope it to one company to see what changed in its history. Cursor paging via data.next_cursor. Metadata call: free on every tier. If a dataset, field, company or analysis you need is missing, call request_data.
Return changes known since this instant (YYYY-MM-DD or RFC 3339 timestamp).
Maximum number of periods or items to return (default 100, at most 1000).
Opaque cursor from a previous page (data.next_cursor).
Optional: only changes for this company.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http financial-md https://mcp.financial.md/mcp
Headers
X-FMD-Api-Key (optional, not in the config above): Optional API key; leave empty to use the keyless tierList facts whose knowledge interval opened since a timestamp: new periods from fresh filings and restatements of earlier periods. Each item has the company, the concept_id, the version number (1 for a first report, higher for a restatement) and the new value object with its period, known interval, restated flag and proof. This is the pull twin of the financial_data_updated webhook: poll it to keep a model, a cache or a watchlist current, or scope it to one company to see what changed in its history. Cursor paging via data.next_cursor. Metadata call: free on every tier. If a dataset, field, company or analysis you need is missing, call request_data.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Maximum number of periods or items to return (default 100, at most 1000). |
| since* | string | Return changes known since this instant (YYYY-MM-DD or RFC 3339 timestamp). |
| cursor | string | Opaque cursor from a previous page (data.next_cursor). |
| company | string | Optional: only changes for this company. |
{
"type": "object",
"examples": [
{
"limit": 50,
"since": "2026-11-01T00:00:00Z"
},
{
"since": "2026-10-01",
"company": "ticker:AAPL"
}
],
"required": [
"since"
],
"properties": {
"limit": {
"type": "integer",
"default": 100,
"maximum": 1000,
"minimum": 1,
"description": "Maximum number of periods or items to return (default 100, at most 1000)."
},
"since": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2}))?$",
"examples": [
"2026-11-01T00:00:00Z"
],
"description": "Return changes known since this instant (YYYY-MM-DD or RFC 3339 timestamp)."
},
"cursor": {
"type": "string",
"maxLength": 512,
"description": "Opaque cursor from a previous page (data.next_cursor)."
},
"company": {
"type": "string",
"examples": [
"ticker:AAPL",
"cik:320193",
"fmd_01HZX8Q3K9W2M4N6P8R0T2V4X6"
],
"maxLength": 64,
"minLength": 1,
"description": "Optional: only changes for this company."
}
},
"additionalProperties": false
}Return the 8-K filings of a company, newest first, each with the items the filer selected (2.02 results, 5.02 officer changes, 1.01 agreements, 2.01 acquisitions, 4.02 non-reliance...) classified by event_type, with a headline and an importance from 1 to 5 (importance_min 4 keeps the major ones). A filing-based event feed, not wire news; for all companies use news; follow source_url for the text. Filing-layer read: served with generous limits on every tier. Use it when asked what material events one company disclosed. If a dataset, field, company or analysis you need is missing, call request_data.
| Argument | Type | Description |
|---|---|---|
| as_of | string | Knowledge date or timestamp (YYYY-MM-DD or RFC 3339). The answer is what FinancialMD knew at that instant: only facts whose known interval contains as_of. Omit for the current view. |
| limit | integer | Maximum number of periods or items to return (default 20, at most 500). |
| cursor | string | Opaque cursor from a previous page (data.next_cursor). |
| company* | string | Company identifier: a FinancialMD id ("fmd_01H..."), an SEC CIK ("cik:320193"), or a ticker ("ticker:AAPL", optionally with the MIC "ticker:AAPL.XNAS"). A bare ticker like "AAPL" is accepted and sent as ticker:AAPL. |
| event_type | string | Only filings with an item of this type (earnings, leadership_change, agreement, acquisition_disposition, restatement...). |
Return the metrics a company reports in its own earnings releases and reports: adjusted (non-GAAP) measures such as adjusted EBITDA or adjusted EPS, and operating KPIs such as segment or product sales. Each value carries the filer's row label, confidence (high: printed identically in two or more places; medium: printed once) and a proof id; proof_get on it returns the exact citation: accession, document, table, row and value index, character span, the raw printed text and the GAAP reconciliation table. Adjusted metrics are the company's own definitions: say "as reported by the company (non-GAAP)", never call them GAAP and never compare them across companies. Values two documents print differently are withheld and not returned (data.withheld counts them). data.metrics lists the company's metrics; filter with metric, kind, period_type, from and to. Percent metrics are percent points. Filing-layer read: served with generous limits on every tier. Use it when the question is about a non-GAAP figure or an operating metric the standardized statements do not carry. If a dataset, field, company or analysis you need is missing, call request_data.
| Argument | Type | Description |
|---|---|---|
| to | string | Last period end, inclusive (YYYY-MM-DD). |
| from | string | First period end, inclusive (YYYY-MM-DD). |
| kind | string | adjusted: non-GAAP measures; operating: operating statistics. |
| as_of | string | Knowledge date or timestamp (YYYY-MM-DD or RFC 3339). The answer is what FinancialMD knew at that instant: only facts whose known interval contains as_of. Omit for the current view. |
Resolve a ticker, CIK, FinancialMD id or company name to the company FinancialMD covers, so later calls can use a stable identifier. Identifiers (ticker:AAPL, cik:320193, fmd_...) resolve directly and return the profile with meta.company showing what matched; a free-text name searches the directory and returns candidates with their ids, tickers and listings. Use this first when you are not sure of the ticker, or when a ticker is ambiguous across exchanges (ticker:AAPL.XNAS pins the venue). Metadata call: free on every tier. If a dataset, field, company or analysis you need is missing, call request_data.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Maximum number of periods or items to return (default 10, at most 50). |
| query* | string | Ticker, "cik:<n>", "fmd_<id>", or a company name such as "Apple". |
| country | string | Optional ISO 3166-1 alpha-2 filter for name searches. |
| exchange | string | Optional exchange MIC filter for name searches (for example XNAS, XNYS). |
{
"type": "object",
"examples": [
{
"query": "AAPL"
},
{
"limit": 5,
"query": "Berkshire Hathaway",
"country": "US"
}
],
"required": [
"query"
],
"properties": {
"limit": {
"type": "integer",
"default": 10,
"maximum": 50,
"minimum": 1,
"description": "Maximum number of periods or items to return (default 10, at most 50)."
},
"query": {
"type": "string",
"examples": [
"AAPL",
"cik:320193",
"Berkshire Hathaway"
],
"maxLength": 120,
"minLength": 1,
"description": "Ticker, \"cik:<n>\", \"fmd_<id>\", or a company name such as \"Apple\"."
},
"country": {
"type": "string",
"pattern": "^[A-Za-z]{2}$",
"description": "Optional ISO 3166-1 alpha-2 filter for name searches."
},
"exchange": {
"type": "string",
"pattern": "^[A-Za-z0-9]{4}$",
"description": "Optional exchange MIC filter for name searches (for example XNAS, XNYS)."
}
},
"additionalProperties": false
}Return the profile of one company: legal name, FinancialMD id, CIK, listings (ticker, exchange, currency), sector and industry, the statement template it is standardized with (for example industrial, bank, insurer), its fiscal year end, and the list of datasets available (which statements, ratios, filings, KPIs exist), the listing status (active, delisted with the date, or inactive), country and business address, former names, the newest head count with its source sentence (served only at confidence 0.90 or more) and cover-page shares per share class (never summed across classes). Call it before pulling statements to learn the template and fiscal calendar, and to confirm the identifier resolved to the right company. Metadata call: free on every tier. If a dataset, field, company or analysis you need is missing, call request_data.
| Argument | Type | Description |
|---|---|---|
| company* | string | Company identifier: a FinancialMD id ("fmd_01H..."), an SEC CIK ("cik:320193"), or a ticker ("ticker:AAPL", optionally with the MIC "ticker:AAPL.XNAS"). A bare ticker like "AAPL" is accepted and sent as ticker:AAPL. |
{
"type": "object",
"examples": [
{
"company": "ticker:AAPL"
},
{
"company": "cik:1067983"
}
],
"required": [
"company"
],
"properties": {
"company": {
"type": "string",
"examples": [
"ticker:AAPL",
"cik:320193",
"fmd_01HZX8Q3K9W2M4N6P8R0T2V4X6"
],
"maxLength": 64,
"minLength": 1,
"description": "Company identifier: a FinancialMD id (\"fmd_01H...\"), an SEC CIK (\"cik:320193\"), or a ticker (\"ticker:AAPL\", optionally with the MIC \"ticker:AAPL.XNAS\"). A bare ticker like \"AAPL\" is accepted and sent as ticker:AAPL."
}
},
"additionalProperties": false
}For one fiscal period of a company, compare every line item as first reported (the original filing) with its current value (after any restatement, reclassification or correction in later filings), with the proofs of both versions so each can be traced to its filing. The result lists each concept with first_reported, current, changed, delta and delta_percent, and counts how many items changed. Use it for restatement reviews, earnings-quality work and to explain why a number in an old report differs from today's database. Optionally restrict to one concept. Costs two standardized reads. If a dataset, field, company or analysis you need is missing, call request_data.
| Argument | Type | Description |
|---|---|---|
| company* | string | Company identifier: a FinancialMD id ("fmd_01H..."), an SEC CIK ("cik:320193"), or a ticker ("ticker:AAPL", optionally with the MIC "ticker:AAPL.XNAS"). A bare ticker like "AAPL" is accepted and sent as ticker:AAPL. |
| concept | string | Optional: compare only this standardized concept id. |
| statement* | string | Which financial statement. |
| fiscal_year* | integer | Fiscal year as the filer labels it (for example 2024 for Apple's year ending 2024-09-28). |
| period_type | string | Period basis to search; defaults to annual for FY and quarterly for Q1 to Q4. |
Return a company's stock splits (as reported in XBRL, with whether IEX prices across the ex-date confirm the ratio) and its dividends per share declared or paid in each fiscal period, as filed. A dividend row is a per-period total, not one payment, and has no ex-date. Every value carries the XBRL fact as proof. For split-adjusted prices call stock_prices with adjust "splits". Filing-layer read: served with generous limits on every tier. Use it to check for a stock split before comparing per-share figures or prices across dates. If a dataset, field, company or analysis you need is missing, call request_data.
| Argument | Type | Description |
|---|---|---|
| kind | string | Only declared or only paid dividends. |
| as_of | string | Knowledge date or timestamp (YYYY-MM-DD or RFC 3339). The answer is what FinancialMD knew at that instant: only facts whose known interval contains as_of. Omit for the current view. |
| limit | integer | Maximum number of periods or items to return (default 12, at most 400). |
| company* | string | Company identifier: a FinancialMD id ("fmd_01H..."), an SEC CIK ("cik:320193"), or a ticker ("ticker:AAPL", optionally with the MIC "ticker:AAPL.XNAS"). A bare ticker like "AAPL" is accepted and sent as ticker:AAPL. |
{
"type": "object",
"examples": [
{
"company": "ticker:AAPL"
}
],
"required": [
"company"
],
"properties": {
"kind": {
"enum": [
"declared",
"paid"
],
"type": "string",
"description": "Only declared or only paid dividends."
},
"as_of": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2}))?$",
"examples": [
"2024-11-15",
"2025-02-01T00:00:00Z"
],
"description": "Knowledge date or timestamp (YYYY-MM-DD or RFC 3339). The answer is what FinancialMD knew at that instant: only facts whose known interval contains as_of. Omit for the current view."
},
"limit": {
"type": "integer",
"default": 12,
"maximum": 400,
"minimum": 1,
"description": "Maximum number of periods or items to return (default 12, at most 400)."
},
"company": {
"type": "string",
"examples": [
"ticker:AAPL",
"cik:320193",
"fmd_01HZX8Q3K9W2M4N6P8R0T2V4X6"
],
"maxLength": 64,
"minLength": 1,
"description": "Company identifier: a FinancialMD id (\"fmd_01H...\"), an SEC CIK (\"cik:320193\"), or a ticker (\"ticker:AAPL\", optionally with the MIC \"ticker:AAPL.XNAS\"). A bare ticker like \"AAPL\" is accepted and sent as ticker:AAPL."
}
},
"additionalProperties": false
}Say whether FinancialMD serves a dataset, and if not, why and what to use instead. Call it before searching for data that may not be here: Street consensus estimates, EPS and revenue estimates, analyst ratings, price targets, earnings call transcripts and audio, real-time, intraday or consolidated prices, CUSIP or ISIN, Morningstar research, wire news, mutual fund NAV, logos, politician (congressional) trades, fund letters and model estimates are not served (licensed, not built, or waiting on a decision). With no topic it lists every dataset with its routes and tools. Metadata read: free. If a dataset, field, company or analysis you need is missing, call request_data.
| Argument | Type | Description |
|---|---|---|
| topic | string | What you are looking for, in a few words (for example "consensus estimates", "transcripts", "intraday prices", "segments"). |
| status | string | Only datasets with this status. |
{
"type": "object",
"examples": [
{
"topic": "consensus estimates"
},
{
"status": "conceded"
}
],
"required": [],
"properties": {
"topic": {
"type": "string",
"maxLength": 80,
"minLength": 2,
"description": "What you are looking for, in a few words (for example \"consensus estimates\", \"transcripts\", \"intraday prices\", \"segments\")."
},
"status": {
"enum": [
"served",
"conceded",
"not_built",
"founder_decision"
],
"type": "string",
"description": "Only datasets with this status."
}
},
"additionalProperties": false
}Return a company's cash dividends per share as its SEC filings state them, newest first: amount (on the basis of the day declared, not split-adjusted), declaration, record, ex-dividend and payment dates, each null when the filing does not state it, with how each was captured (xbrl date tags, a dividend table or a sentence) and the citation text. ex_date_method says whether the ex-date is stated or derived from the record date by the settlement rule. When EDGAR states no record date (JPMorgan after 2018) or only the month paid (Realty Income), there is no ex-date: say so and never infer one. Dividends announced only on a company's website are absent. For split-adjusted and total-return prices call stock_prices with adjust. Filing-layer read: served with generous limits on every tier. Use it for dividend history, ex-dividend dates and payment dates. If a dataset, field, company or analysis you need is missing, call request_data.
| Argument | Type | Description |
|---|---|---|
| to | string | Last date, inclusive (YYYY-MM-DD). |
| from | string | First date, inclusive (YYYY-MM-DD). |
| as_of | string | Knowledge date or timestamp (YYYY-MM-DD or RFC 3339). The answer is what FinancialMD knew at that instant: only facts whose known interval contains as_of. Omit for the current view. |
| limit | integer | Maximum number of periods or items to return (default 12, at most 500). |
| company* | string | Company identifier: a FinancialMD id ("fmd_01H..."), an SEC CIK ("cik:320193"), or a ticker ("ticker:AAPL", optionally with the MIC "ticker:AAPL.XNAS"). A bare ticker like "AAPL" is accepted and sent as ticker:AAPL. |
Return earnings-release dates for one company or every company: confirmed dates are when an 8-K with Item 2.02 (results of operations) was accepted, with session bmo, dmh or amc; predicted dates are a model (the release a year earlier plus 364 days), labelled "expected (model)". Without from or to the window starts 30 days before as_of. Do not call a confirmed date an earnings call. Filing-layer read: served with generous limits on every tier. Use it when asked when a company reports results, or which companies report in a window. If a dataset, field, company or analysis you need is missing, call request_data.
| Argument | Type | Description |
|---|---|---|
| to | string | Last date, inclusive (YYYY-MM-DD). |
| from | string | First date, inclusive (YYYY-MM-DD). |
| as_of | string | Knowledge date or timestamp (YYYY-MM-DD or RFC 3339). The answer is what FinancialMD knew at that instant: only facts whose known interval contains as_of. Omit for the current view. |
| limit | integer | Maximum number of periods or items to return (default 50, at most 1000). |
| cursor | string | Opaque cursor from a previous page (data.next_cursor). |
| company | string | Company identifier: a FinancialMD id ("fmd_01H..."), an SEC CIK ("cik:320193"), or a ticker ("ticker:AAPL", optionally with the MIC "ticker:AAPL.XNAS"). A bare ticker like "AAPL" is accepted and sent as ticker:AAPL. |
Return where a filing's documents are: the primary document on EDGAR, the filing index, the full submission text, the inline XBRL viewer, and a FinancialMD URL that serves the primary HTML document. PDF rendering is not served. Filing-layer read: served with generous limits on every tier. Use it when you need to read or link the text of a filing. If a dataset, field, company or analysis you need is missing, call request_data.
| Argument | Type | Description |
|---|---|---|
| accession* | string | Accession number, e.g. 0000320193-24-000123. |
{
"type": "object",
"examples": [
{
"accession": "0000320193-24-000123"
}
],
"required": [
"accession"
],
"properties": {
"accession": {
"type": "string",
"pattern": "^\\d{10}-\\d{2}-\\d{6}$",
"description": "Accession number, e.g. 0000320193-24-000123."
}
},
"additionalProperties": false
}Return every fact one filing tagged that maps to a FinancialMD concept, across all statements in one call: income statement, balance sheet, cash flow and supplemental (share counts, per-share figures), each in display order with the newest period first. Each fact is a value object with the filer's XBRL taxonomy, tag and dimensions, the concept it maps to, its label, and a proof pointing at the page and anchor in the filing. Prior-year comparatives printed in the filing are included (their fiscal labels are null). Tags without a mapping (company extensions) are not included. Use it to read a filing end to end instead of calling financials_as_reported once per statement. Filing-layer read: served with generous limits on every tier. If a dataset, field, company or analysis you need is missing, call request_data.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Maximum number of periods or items to return (default 2000, at most 5000). |
| accession* | string | SEC accession number in dashed form, for example 0000320193-24-000123. |
| statement | string | Optional: only facts of this statement. |
{
"type": "object",
"examples": [
{
"accession": "0000320193-24-000123"
},
{
"limit": 200,
"accession": "0000320193-24-000123",
"statement": "balance_sheet"
}
],
"required": [
"accession"
],
"properties": {
"limit": {
"type": "integer",
"default": 2000,
"maximum": 5000,
"minimum": 1,
"description": "Maximum number of periods or items to return (default 2000, at most 5000)."
},
"accession": {
"type": "string",
"pattern": "^\\d{10}-\\d{2}-\\d{6}$",
"examples": [
"0000320193-24-000123"
],
"description": "SEC accession number in dashed form, for example 0000320193-24-000123."
},
"statement": {
"enum": [
"income_statement",
"balance_sheet",
"cash_flow",
"supplemental"
],
"type": "string",
"description": "Optional: only facts of this statement."
}
},
"additionalProperties": false
}Return one filing by its SEC accession number: registry, form, period end, fiscal year and period, filing date and acceptance time, the primary document name and its SEC source URL, and the accession it amends (for 10-K/A and 10-Q/A). The document itself is not returned (it can be megabytes); read it from source_url, and read its numbers with financials_as_reported. Filing-layer read: served with generous limits on every tier. Use it when you hold an accession number and need the filing's form, dates and source URL. If a dataset, field, company or analysis you need is missing, call request_data.
| Argument | Type | Description |
|---|---|---|
| accession* | string | SEC accession number in dashed form, for example 0000320193-24-000123. |
{
"type": "object",
"examples": [
{
"accession": "0000320193-24-000123"
}
],
"required": [
"accession"
],
"properties": {
"accession": {
"type": "string",
"pattern": "^\\d{10}-\\d{2}-\\d{6}$",
"examples": [
"0000320193-24-000123"
],
"description": "SEC accession number in dashed form, for example 0000320193-24-000123."
}
},
"additionalProperties": false
}Keyword search across the text of EDGAR documents filed since 2001 (10-K, 10-Q, 8-K and their exhibits, proxies, S-1s...) through SEC EDGAR full-text search. Put a phrase in double quotes. Returns documents, best match first, each with its form, filing date, the companies on it (FinancialMD ids where covered) and links to the document and the filing index. Use it to find which companies mention a risk, customer, product or term; then read numbers with financials_standardized or the document with filing_document. Filing-layer read: served with generous limits on every tier. If a dataset, field, company or analysis you need is missing, call request_data.
| Argument | Type | Description |
|---|---|---|
| q* | string | Words to find; a phrase in double quotes matches exactly. Letters, digits, spaces and common punctuation. |
| to | string | Filed on or before (YYYY-MM-DD). |
| from | string | Filed on or after (YYYY-MM-DD). |
| page | integer | Page number, 1-based. |
| forms | string | Comma-separated form types, for example "10-K,10-Q". |
| limit | integer | Maximum number of periods or items to return (default 10, at most 100). |
| company | string |
List a company's filings newest first: accession number, form type (10-K, 10-Q, 8-K, 20-F, 40-F, 6-K and others), filing date, acceptance time, period end, fiscal year and period, the primary document and its SEC URL, and the filing it amends. Filter by form; as_of limits the list to filings known on a date; cursor pages through long histories. Use filing_get for one filing's details and financials_as_reported to read its numbers. Filing-layer read: served with generous limits on every tier. If a dataset, field, company or analysis you need is missing, call request_data.
| Argument | Type | Description |
|---|---|---|
| form | string | Optional form type filter, for example "10-K", "10-Q", "8-K", "20-F". |
| as_of | string | Knowledge date or timestamp (YYYY-MM-DD or RFC 3339). The answer is what FinancialMD knew at that instant: only facts whose known interval contains as_of. Omit for the current view. |
| limit | integer | Maximum number of periods or items to return (default 50, at most 500). |
| cursor | string | Opaque cursor from a previous page (data.next_cursor). |
| company* | string | Company identifier: a FinancialMD id ("fmd_01H..."), an SEC CIK ("cik:320193"), or a ticker ("ticker:AAPL", optionally with the MIC "ticker:AAPL.XNAS"). A bare ticker like "AAPL" is accepted and sent as ticker:AAPL. |
Return a statement exactly as the filer presented it: the company's own line-item labels, XBRL taxonomy and tags, dimensions, and the values with proof. Use it when the standardized template hides a detail you need (an unusual line, a segment axis, a footnote-level item) or when you must quote the filer's own wording. Supports as_of for point-in-time replay. Filing-layer read: served with generous limits on every tier. If a dataset, field, company or analysis you need is missing, call request_data.
| Argument | Type | Description |
|---|---|---|
| as_of | string | Knowledge date or timestamp (YYYY-MM-DD or RFC 3339). The answer is what FinancialMD knew at that instant: only facts whose known interval contains as_of. Omit for the current view. |
| limit | integer | Maximum number of periods or items to return (default 4, at most 40). |
| company* | string | Company identifier: a FinancialMD id ("fmd_01H..."), an SEC CIK ("cik:320193"), or a ticker ("ticker:AAPL", optionally with the MIC "ticker:AAPL.XNAS"). A bare ticker like "AAPL" is accepted and sent as ticker:AAPL. |
| history | boolean | Return every filing's version of each cell ({ versions }, oldest first) instead of the latest one. |
| statement* | string | Which financial statement. |
| period_type |
Return one standardized statement (income statement, balance sheet, cash flow, or the supplemental statement with share counts and per-share figures) for a company, mapped to the FinancialMD concept template so line items are comparable across companies. Choose annual, quarterly, ltm or ytd periods and how many. Every cell is a value object with unit, currency, period, the known interval (when FinancialMD first and last knew this value), a restated flag and a proof that points at the filing, page and XBRL tag. as_of replays the statement as it was known on a date; original=true returns the first-reported version of each period; history=true returns every knowledge version of each period, oldest first, so restatements are visible. Filing-layer read: served with generous limits. Nothing is charged today; the planned per-call price is $0.005. Use it for comparable statement numbers, trends over periods and the inputs of a model. If a dataset, field, company or analysis you need is missing, call request_data.
| Argument | Type | Description |
|---|---|---|
| as_of | string | Knowledge date or timestamp (YYYY-MM-DD or RFC 3339). The answer is what FinancialMD knew at that instant: only facts whose known interval contains as_of. Omit for the current view. |
| limit | integer | Maximum number of periods or items to return (default 10, at most 200). |
| company* | string | Company identifier: a FinancialMD id ("fmd_01H..."), an SEC CIK ("cik:320193"), or a ticker ("ticker:AAPL", optionally with the MIC "ticker:AAPL.XNAS"). A bare ticker like "AAPL" is accepted and sent as ticker:AAPL. |
| history | boolean |
Return the mutual funds and ETFs (Form N-PORT series) holding a company in their latest report, largest position first: value in USD, shares, percent of the fund's net assets (a fraction), report month end, with the filing as proof. Complements institutional_holders (13F managers). Only the latest report per fund in each quarterly SEC data set is loaded. Filing-layer read: served with generous limits on every tier. Use it when asked which funds hold a company. If a dataset, field, company or analysis you need is missing, call request_data.
| Argument | Type | Description |
|---|---|---|
| as_of | string | Knowledge date or timestamp (YYYY-MM-DD or RFC 3339). The answer is what FinancialMD knew at that instant: only facts whose known interval contains as_of. Omit for the current view. |
| limit | integer | Maximum number of periods or items to return (default 20, at most 500). |
| cursor | string | Opaque cursor from a previous page (data.next_cursor). |
| period | string | Report window ending on or before (default the newest) (YYYY-MM-DD). |
| company* | string | Company identifier: a FinancialMD id ("fmd_01H..."), an SEC CIK ("cik:320193"), or a ticker ("ticker:AAPL", optionally with the MIC "ticker:AAPL.XNAS"). A bare ticker like "AAPL" is accepted and sent as ticker:AAPL. |
Return one fund's Form N-PORT portfolio: give a series id (S000002277) or a fund name, which is searched first. Positions are largest first with value in USD, balance, percent of net assets and the company when the CUSIP maps to one; data.periods lists other report months. Filing-layer read: served with generous limits on every tier. Use it when asked what a fund holds. If a dataset, field, company or analysis you need is missing, call request_data.
| Argument | Type | Description |
|---|---|---|
| fund* | string | Series id S000... or a fund name such as "Vanguard 500 Index". |
| as_of | string | Knowledge date or timestamp (YYYY-MM-DD or RFC 3339). The answer is what FinancialMD knew at that instant: only facts whose known interval contains as_of. Omit for the current view. |
| limit | integer | Maximum number of periods or items to return (default 25, at most 1000). |
| cursor | string | Opaque cursor from a previous page (data.next_cursor). |
| period | string | Report month end; default the newest (YYYY-MM-DD). |
{
"type": "object",
"examples": [
{
"fund": "Vanguard 500 Index",
"limit": 10
}
],
"required": [
"fund"
],
"properties": {
"fund": {
"type": "string",
"maxLength": 80,
"minLength": 2,
"description": "Series id S000... or a fund name such as \"Vanguard 500 Index\"."
},
"as_of": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2}))?$",
"examples": [
"2024-11-15",
"2025-02-01T00:00:00Z"
],
"description": "Knowledge date or timestamp (YYYY-MM-DD or RFC 3339). The answer is what FinancialMD knew at that instant: only facts whose known interval contains as_of. Omit for the current view."
},
"limit": {
"type": "integer",
"default": 25,
"maximum": 1000,
"minimum": 1,
"description": "Maximum number of periods or items to return (default 25, at most 1000)."
},
"cursor": {
"type": "string",
"maxLength": 512,
"description": "Opaque cursor from a previous page (data.next_cursor)."
},
"period": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Report month end; default the newest (YYYY-MM-DD)."
}
},
"additionalProperties": false
}Return a fund's type from its latest Form N-CEN (ETF, index, money market, interval, fund of funds...), closed-end fees and tracking difference where filed, and every share class with its prospectus fee table (expense ratio, management fee, 12b-1, waivers) as fractions of net assets (0.0003 is 0.03 percent). Give a series id (S000002839) or a class ticker (VOO). Filing-layer read: served with generous limits on every tier. Use it when asked what kind of fund this is or what it charges. If a dataset, field, company or analysis you need is missing, call request_data.
| Argument | Type | Description |
|---|---|---|
| fund* | string | Series id or share-class ticker. |
| as_of | string | Knowledge date or timestamp (YYYY-MM-DD or RFC 3339). The answer is what FinancialMD knew at that instant: only facts whose known interval contains as_of. Omit for the current view. |
{
"type": "object",
"examples": [
{
"fund": "VOO"
}
],
"required": [
"fund"
],
"properties": {
"fund": {
"type": "string",
"pattern": "^[A-Za-z0-9.\\-]{1,12}$",
"maxLength": 12,
"minLength": 1,
"description": "Series id or share-class ticker."
},
"as_of": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2}))?$",
"examples": [
"2024-11-15",
"2025-02-01T00:00:00Z"
],
"description": "Knowledge date or timestamp (YYYY-MM-DD or RFC 3339). The answer is what FinancialMD knew at that instant: only facts whose known interval contains as_of. Omit for the current view."
}
},
"additionalProperties": false
}Return a company's CIK, LEI and FIGI identifiers with their evidence: LEI accepted only when Form N-PORT filers agree and GLEIF has the record; FIGI from OpenFIGI by ticker (public domain). Metadata call: free on every tier. Use it to join FinancialMD data to another system by CIK, LEI or FIGI. If a dataset, field, company or analysis you need is missing, call request_data.
| Argument | Type | Description |
|---|---|---|
| as_of | string | Knowledge date or timestamp (YYYY-MM-DD or RFC 3339). The answer is what FinancialMD knew at that instant: only facts whose known interval contains as_of. Omit for the current view. |
| company* | string | Company identifier: a FinancialMD id ("fmd_01H..."), an SEC CIK ("cik:320193"), or a ticker ("ticker:AAPL", optionally with the MIC "ticker:AAPL.XNAS"). A bare ticker like "AAPL" is accepted and sent as ticker:AAPL. |
{
"type": "object",
"examples": [
{
"company": "ticker:AAPL"
}
],
"required": [
"company"
],
"properties": {
"as_of": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2}))?$",
"examples": [
"2024-11-15",
"2025-02-01T00:00:00Z"
],
"description": "Knowledge date or timestamp (YYYY-MM-DD or RFC 3339). The answer is what FinancialMD knew at that instant: only facts whose known interval contains as_of. Omit for the current view."
},
"company": {
"type": "string",
"examples": [
"ticker:AAPL",
"cik:320193",
"fmd_01HZX8Q3K9W2M4N6P8R0T2V4X6"
],
"maxLength": 64,
"minLength": 1,
"description": "Company identifier: a FinancialMD id (\"fmd_01H...\"), an SEC CIK (\"cik:320193\"), or a ticker (\"ticker:AAPL\", optionally with the MIC \"ticker:AAPL.XNAS\"). A bare ticker like \"AAPL\" is accepted and sent as ticker:AAPL."
}
},
"additionalProperties": false
}Return what each director and officer owned after their latest reported transaction (shares_owned_after on Forms 4 and 5), per security and direct or indirect ownership, largest first: the later of the balance after their latest transaction and their latest holding line (a Form 3 initial statement, or a Form 4 or 5 holdings table); source says which. Say "as last reported" with the date. Filing-layer read: served with generous limits on every tier. Use it when asked how much a company's directors and officers own. If a dataset, field, company or analysis you need is missing, call request_data.
| Argument | Type | Description |
|---|---|---|
| as_of | string | Knowledge date or timestamp (YYYY-MM-DD or RFC 3339). The answer is what FinancialMD knew at that instant: only facts whose known interval contains as_of. Omit for the current view. |
| limit | integer | Maximum number of periods or items to return (default 25, at most 500). |
| company* | string | Company identifier: a FinancialMD id ("fmd_01H..."), an SEC CIK ("cik:320193"), or a ticker ("ticker:AAPL", optionally with the MIC "ticker:AAPL.XNAS"). A bare ticker like "AAPL" is accepted and sent as ticker:AAPL. |
{
"type": "object",
"examples": [
{
"company": "ticker:AAPL"
}
],
"required": [
"company"
],
"properties": {
"as_of": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2}))?$",
"examples": [
"2024-11-15",
"2025-02-01T00:00:00Z"
],
"description": "Knowledge date or timestamp (YYYY-MM-DD or RFC 3339). The answer is what FinancialMD knew at that instant: only facts whose known interval contains as_of. Omit for the current view."
},
"limit": {
"type": "integer",
"default": 25,
"maximum": 500,
"minimum": 1,
"description": "Maximum number of periods or items to return (default 25, at most 500)."
},
"company": {
"type": "string",
"examples": [
"ticker:AAPL",
"cik:320193",
"fmd_01HZX8Q3K9W2M4N6P8R0T2V4X6"
],
"maxLength": 64,
"minLength": 1,
"description": "Company identifier: a FinancialMD id (\"fmd_01H...\"), an SEC CIK (\"cik:320193\"), or a ticker (\"ticker:AAPL\", optionally with the MIC \"ticker:AAPL.XNAS\"). A bare ticker like \"AAPL\" is accepted and sent as ticker:AAPL."
}
},
"additionalProperties": false
}List the transactions a company's officers, directors and ten percent owners reported on SEC Forms 3, 4 and 5, newest first: transaction date, the owner and their relationship and title, the security, the SEC transaction code as filed (P purchase, S sale, A grant, M exercise, F tax withholding, G gift), acquired or disposed, shares, price and shares owned after. Every number carries a proof that opens the ownership form on sec.gov. as_of limits the list to forms accepted by a date; cursor pages. Filing-layer read: served with generous limits on every tier. Use it when asked what a company's insiders bought or sold. If a dataset, field, company or analysis you need is missing, call request_data.
| Argument | Type | Description |
|---|---|---|
| as_of | string | Knowledge date or timestamp (YYYY-MM-DD or RFC 3339). The answer is what FinancialMD knew at that instant: only facts whose known interval contains as_of. Omit for the current view. |
| limit | integer | Maximum number of periods or items to return (default 50, at most 500). |
| cursor | string | Opaque cursor from a previous page (data.next_cursor). |
| company* | string | Company identifier: a FinancialMD id ("fmd_01H..."), an SEC CIK ("cik:320193"), or a ticker ("ticker:AAPL", optionally with the MIC "ticker:AAPL.XNAS"). A bare ticker like "AAPL" is accepted and sent as ticker:AAPL. |
{
"type": "object",
"examples": [
{
"limit": 20,
"company": "ticker:AAPL"
},
{
"as_of": "2025-01-01",
"company": "cik:320193"
}
],
"required": [
"company"
],
"properties": {
"as_of": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2}))?$",
"examples": [
"2024-11-15",
"2025-02-01T00:00:00Z"
],
"description": "Knowledge date or timestamp (YYYY-MM-DD or RFC 3339). The answer is what FinancialMD knew at that instant: only facts whose known interval contains as_of. Omit for the current view."
},
"limit": {
"type": "integer",
"default": 50,
"maximum": 500,
"minimum": 1,
"description": "Maximum number of periods or items to return (default 50, at most 500)."
},
"cursor": {
"type": "string",
"maxLength": 512,
"description": "Opaque cursor from a previous page (data.next_cursor)."
},
"company": {
"type": "string",
"examples": [
"ticker:AAPL",
"cik:320193",
"fmd_01HZX8Q3K9W2M4N6P8R0T2V4X6"
],
"maxLength": 64,
"minLength": 1,
"description": "Company identifier: a FinancialMD id (\"fmd_01H...\"), an SEC CIK (\"cik:320193\"), or a ticker (\"ticker:AAPL\", optionally with the MIC \"ticker:AAPL.XNAS\"). A bare ticker like \"AAPL\" is accepted and sent as ticker:AAPL."
}
},
"additionalProperties": false
}List the investment managers that reported a position in a company on SEC Form 13F for one quarter, largest reported value first: the manager, shares, market value as the manager reported it, the same manager's shares one quarter earlier, the change, whether the position is new, increased, decreased or unchanged, and the share of the company's reported shares outstanding. data.periods lists the quarters on file. Only positions that an SEC filing ties to the company are listed, so coverage is partial and the list is not a full register. Every number carries a proof that opens the 13F on sec.gov. Filing-layer read: served with generous limits on every tier. Use it when asked which institutions hold a company and how their positions changed. If a dataset, field, company or analysis you need is missing, call request_data.
| Argument | Type | Description |
|---|---|---|
| as_of | string | Knowledge date or timestamp (YYYY-MM-DD or RFC 3339). The answer is what FinancialMD knew at that instant: only facts whose known interval contains as_of. Omit for the current view. |
| limit | integer | Maximum number of periods or items to return (default 50, at most 500). |
| cursor | string | Opaque cursor from a previous page (data.next_cursor). |
| period | string | Optional calendar quarter end (YYYY-03-31, -06-30, -09-30 or -12-31). Default: the newest quarter on file. |
| company* | string | Company identifier: a FinancialMD id ("fmd_01H..."), an SEC CIK ("cik:320193"), or a ticker ("ticker:AAPL", optionally with the MIC "ticker:AAPL.XNAS"). A bare ticker like "AAPL" is accepted and sent as ticker:AAPL. |
Read the portfolio an investment manager reported on SEC Form 13F for one quarter, largest reported value first: issuer and class as the manager wrote them, the company the security resolves to when an SEC filing ties them together (null otherwise, never guessed), shares, market value, the prior quarter's shares and the change. data.filings carries the filing with the manager's own summary totals and whether the loaded table adds up to them; data.periods lists the quarters on file. Pass holder as cik:<n>, or pass a manager name: one match returns its portfolio, several return the matching managers with their CIKs so you can pick. Filing-layer read: served with generous limits on every tier. Use it when asked what a manager owns, or what it bought and sold in a quarter. If a dataset, field, company or analysis you need is missing, call request_data.
| Argument | Type | Description |
|---|---|---|
| as_of | string | Knowledge date or timestamp (YYYY-MM-DD or RFC 3339). The answer is what FinancialMD knew at that instant: only facts whose known interval contains as_of. Omit for the current view. |
| limit | integer | Maximum number of periods or items to return (default 100, at most 1000). |
| cursor | string | Opaque cursor from a previous page (data.next_cursor). |
| holder* | string | The manager: "cik:<n>" or a bare SEC CIK, or part of the manager's name as filed, such as "Berkshire Hathaway". |
| period | string |
List the standardized concepts (metrics) available for a company's template, with display order, statement, label, unit and the formula for derived concepts (for example free_cash_flow = cash_from_operations - capital_expenditure). Use it to learn the exact concept ids before calling verify_value or compare_versions, and to see which rows a statement will contain. Optionally filter to one statement. Metadata call: free on every tier. If a dataset, field, company or analysis you need is missing, call request_data.
| Argument | Type | Description |
|---|---|---|
| company* | string | Company identifier: a FinancialMD id ("fmd_01H..."), an SEC CIK ("cik:320193"), or a ticker ("ticker:AAPL", optionally with the MIC "ticker:AAPL.XNAS"). A bare ticker like "AAPL" is accepted and sent as ticker:AAPL. |
| statement | string | Optional: only concepts of this statement (or supplemental). |
{
"type": "object",
"examples": [
{
"company": "ticker:AAPL"
},
{
"company": "ticker:JPM",
"statement": "income_statement"
}
],
"required": [
"company"
],
"properties": {
"company": {
"type": "string",
"examples": [
"ticker:AAPL",
"cik:320193",
"fmd_01HZX8Q3K9W2M4N6P8R0T2V4X6"
],
"maxLength": 64,
"minLength": 1,
"description": "Company identifier: a FinancialMD id (\"fmd_01H...\"), an SEC CIK (\"cik:320193\"), or a ticker (\"ticker:AAPL\", optionally with the MIC \"ticker:AAPL.XNAS\"). A bare ticker like \"AAPL\" is accepted and sent as ticker:AAPL."
},
"statement": {
"enum": [
"income_statement",
"balance_sheet",
"cash_flow",
"supplemental"
],
"type": "string",
"description": "Optional: only concepts of this statement (or supplemental)."
}
},
"additionalProperties": false
}Return the newest 8-K filings across all companies (or one), each with its items, event types (earnings, acquisition_disposition, leadership_change, restatement, bankruptcy, agreement...), a headline and an importance from 1 to 5. Use importance_min 4 for top stories (earnings, M&A, impairments, auditor changes, restatements, bankruptcies). Importance is FinancialMD's rule by 8-K item number; this is a filing-based feed, not wire news, so follow source_url for the text. Filing-layer read: served with generous limits on every tier. Use it for what was filed recently across the market or by one company. If a dataset, field, company or analysis you need is missing, call request_data.
| Argument | Type | Description |
|---|---|---|
| to | string | Accepted on or before (YYYY-MM-DD). |
| from | string | Accepted on or after (YYYY-MM-DD). |
| as_of | string | Knowledge date or timestamp (YYYY-MM-DD or RFC 3339). The answer is what FinancialMD knew at that instant: only facts whose known interval contains as_of. Omit for the current view. |
| limit | integer | Maximum number of periods or items to return (default 20, at most 200). |
| cursor | string | Opaque cursor from a previous page (data.next_cursor). |
| company | string | Optional: one company. Company identifier: a FinancialMD id ("fmd_01H..."), an SEC CIK ("cik:320193"), or a ticker ("ticker:AAPL", optionally with the MIC "ticker:AAPL.XNAS"). A bare ticker like "AAPL" is accepted and sent as ticker:AAPL. |
Return the full proof behind a value: the proof itself (filing accession, form and filing date, XBRL taxonomy, tag and dimensions, source URL, page and anchor), the kind (std for a standardized value, ar for a raw as-reported fact), the value object, the concept it maps to, the company, the filing summary, the raw as-reported facts the standardized value derives from, and the derivation (method, calc_type and the pipeline run). For a ratio (kind "ratio") it also returns the formula and the standardized input values, each with its own proof. Every value object carries proof.id; pass it here when a person asks "where does this number come from" or before quoting a figure in a report. A human page exists at meta.proof_base + proof_id. Metadata call: free on every tier. If a dataset, field, company or analysis you need is missing, call request_data.
| Argument | Type | Description |
|---|---|---|
| proof_id* | string | The proof id from a value object, for example p_01JC.... |
{
"type": "object",
"examples": [
{
"proof_id": "p_01JCA4Q7Z3K8M2N5R9T1V6X0Y2"
}
],
"required": [
"proof_id"
],
"properties": {
"proof_id": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_\\-]{2,200}$",
"examples": [
"p_01JCA4Q7Z3K8M2N5R9T1V6X0Y2"
],
"description": "The proof id from a value object, for example p_01JC...."
}
},
"additionalProperties": false
}Return the ratios FinancialMD computes from a company's standardized facts: gross, operating, net and free cash flow margins, revenue growth year over year, return on equity and on assets, asset turnover, current ratio, debt to equity, interest coverage, basic and diluted EPS; for banks net interest income to average loans and securities (not the bank's reported NIM), efficiency ratio and loans to deposits; for insurers loss and acquisition cost ratios; and valuation at each period end (market cap, EV, P/E, P/S, P/B, EV/EBITDA, EV/EBIT, FCF and dividend yield) from the last IEX close on or before the period end (data.price_basis says which close, or why valuation is empty: several share classes, an ADR, no prices). The result has the statement grid shape (periods most recent first, one row per ratio, cells aligned with periods); margins and growth are fractions (0.462 is 46.2 percent). Every cell is a value object whose proof lists the proof ids of its inputs (proof.inputs) and whose method is derived_lineitem; proof_get on a ratio proof returns the inputs and the formula. A cell is null when an input is missing (a bank has no gross margin) or a denominator is zero: never NaN. as_of computes from the facts known on that date. For valuation on every trading day use ratios_daily. Metered call: 1 of 25 keyless calls a day. Nothing is charged today; the planned per-call price is $0.005. Use it when the question is about margins, returns, leverage, growth or valuation at period ends. If a dataset, field, company or analysis you need is missing, call request_data.
| Argument | Type | Description |
|---|---|---|
| as_of | string | Knowledge date or timestamp (YYYY-MM-DD or RFC 3339). The answer is what FinancialMD knew at that instant: only facts whose known interval contains as_of. Omit for the current view. |
| limit | integer | Maximum number of periods or items to return (default 10, at most 200). |
Return one ratio as a series, most recent first. For a valuation ratio (market_cap, enterprise_value, pe_ttm, ps_ttm, pb, ev_ebitda_ttm, ev_ebit_ttm, fcf_yield, dividend_yield) there is one point per trading session: the IEX close of that day times the standardized facts known that evening (trailing twelve months for flows, the latest balance sheet), so a P/E series never uses a filing accepted later. Points are withheld after a split-sized move until split data exists; data.price_basis says which listing was used and why a company is not priced (several share classes such as BRK-A and BRK-B, an ADR, no prices). Each point is a value object whose proof.inputs lists the close first, then the facts; proof_get recomputes it. For a fundamentals ratio (gross_margin, roe, nii_to_avg_loans_securities...) there is one point per fiscal period of period_type. IEX is a single venue and its last trade is not the official close; say so when quoting. Metered call: 1 of 25 keyless calls a day. Nothing is charged today; the planned per-call price is $0.005. Use it for the history of one ratio, such as a P/E series or a margin trend. If a dataset, field, company or analysis you need is missing, call request_data.
| Argument | Type | Description |
|---|---|---|
| to | string | Valuation only: last session date, inclusive (YYYY-MM-DD). |
| from | string | Valuation only: first session date, inclusive (YYYY-MM-DD). |
| as_of | string | Knowledge date or timestamp (YYYY-MM-DD or RFC 3339). The answer is what FinancialMD knew at that instant: only facts whose known interval contains as_of. Omit for the current view. |
| limit | integer | Maximum number of periods or items to return (default 30, at most 1000). |
Tell FinancialMD about data you needed and did not find: a dataset or field we lack, a company we do not cover, an analysis you had to do by hand, or an answer that looked wrong. Use it when no other tool serves what you need. Send kind and one or two sentences in want; why, company and the tool you were using help. Free, takes seconds and needs no key or account. Similar requests are merged and count as votes; they are reviewed weekly and the most asked-for data is built first. The answer has a request_id to follow with request_status. Do not include personal data.
| Argument | Type | Description |
|---|---|---|
| why | string | Optional: the task it blocks. |
| kind* | string | dataset: a whole dataset we lack; field: a line item or attribute; analysis: a computation; coverage: a company or market we do not cover; bug: a wrong or broken answer; other. |
| want* | string | What you needed and did not find, in one or two sentences. |
| company | string | Optional: the company it concerns (ticker, CIK or name). |
| endpoint_or_tool | string | Optional: the tool or route you were using, for example "ratios". |
{
"type": "object",
"examples": [
{
"why": "Comparing reported EPS with expectations",
"kind": "dataset",
"want": "Consensus EPS estimates for the next two quarters",
"company": "AAPL",
"endpoint_or_tool": "company_kpis"
},
{
"kind": "coverage",
"want": "Statements for Japanese filers (EDINET)"
}
],
"required": [
"kind",
"want"
],
"properties": {
"why": {
"type": "string",
"maxLength": 1000,
"minLength": 1,
"description": "Optional: the task it blocks."
},
"kind": {
"enum": [
"dataset",
"field",
"analysis",
"coverage",
"bug",
"other"
],
"type": "string",
"description": "dataset: a whole dataset we lack; field: a line item or attribute; analysis: a computation; coverage: a company or market we do not cover; bug: a wrong or broken answer; other."
},
"want": {
"type": "string",
"maxLength": 500,
"minLength": 1,
"description": "What you needed and did not find, in one or two sentences."
},
"company": {
"type": "string",
"maxLength": 64,
"minLength": 1,
"description": "Optional: the company it concerns (ticker, CIK or name)."
},
"endpoint_or_tool": {
"type": "string",
"maxLength": 120,
"minLength": 1,
"description": "Optional: the tool or route you were using, for example \"ratios\"."
}
},
"additionalProperties": false
}The status of a data request sent with request_data: new (received), triaged (reviewed), planned, done (with the endpoint or tool that now serves it) or wontfix (with a note, for example data that only licensed feeds carry). Pass the request_id request_data returned. Use it to follow a request until it ships. Also gives how many requests and distinct requesters the item has. Free, no key.
| Argument | Type | Description |
|---|---|---|
| request_id* | string | The request_id request_data returned (a uuid). A demand item id works too. |
{
"type": "object",
"examples": [
{
"request_id": "0b8f6a52-6f0e-4a8e-9a43-3c0f6b2d1e11"
}
],
"required": [
"request_id"
],
"properties": {
"request_id": {
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
"description": "The request_id request_data returned (a uuid). A demand item id works too."
}
},
"additionalProperties": false
}Screen every covered company on its latest period: range filters on metrics, a sort and paging, all applied on the server over the whole universe. A metric is a standardized concept id (from metrics_list, for example income_statement_total_revenues) or a ratio id (gross_margin, operating_margin, net_margin, fcf_margin, revenue_growth_yoy, roe, roa, asset_turnover, current_ratio, debt_to_equity, interest_coverage, eps_basic, eps_diluted, bank and insurer ratios) or a valuation id (market_cap, enterprise_value, pe_ttm, ps_ttm, pb, ev_ebitda_ttm, ev_ebit_ttm, fcf_yield, dividend_yield: the latest IEX close times the screened period, so use period_type ltm for trailing multiples). Filter bounds are raw values: 0.2 is 20 percent, amounts are in the reporting currency. A company with no value for a filtered metric does not match; when sorting, missing values come last. Each item has the company (with sector and industry), the period screened and one value object with proof per metric, so every number can be cited. data.total is the size of the whole match and data.next_cursor pages through it. as_of screens on what was known on a date. Metered call: 1 of 25 keyless calls a day. Nothing is charged today; the planned per-call price is $0.05. Use it to find or rank companies by fundamentals or valuation instead of calling each company in turn. If a dataset, field, company or analysis you need is missing, call request_data.
| Argument | Type | Description |
|---|---|---|
| as_of | string | Knowledge date or timestamp (YYYY-MM-DD or RFC 3339). The answer is what FinancialMD knew at that instant: only facts whose known interval contains as_of. Omit for the current view. |
| limit | integer | Maximum number of periods or items to return (default 25, at most 200). |
| query | string | Optional name or ticker search to narrow the universe. |
Return a company's segment facts as the filer tagged them (business segments, geographies, products) from the SEC Financial Statement Data Sets: tag, member, dims and value with the filing as proof. Members are never renamed or mapped across companies; eliminations appear under dims.ConsolidationItems. tag narrows to one line (for example RevenueFromContractWithCustomerExcludingAssessedTax). Filing-layer read: served with generous limits on every tier. Use it when asked for revenue or profit by business line, geography or product. If a dataset, field, company or analysis you need is missing, call request_data.
| Argument | Type | Description |
|---|---|---|
| tag | string | Only this XBRL tag. |
| kind | string | Segment axis kind. |
| as_of | string | Knowledge date or timestamp (YYYY-MM-DD or RFC 3339). The answer is what FinancialMD knew at that instant: only facts whose known interval contains as_of. Omit for the current view. |
| limit | integer | Maximum number of periods or items to return (default 2, at most 20). |
| company* | string | Company identifier: a FinancialMD id ("fmd_01H..."), an SEC CIK ("cik:320193"), or a ticker ("ticker:AAPL", optionally with the MIC "ticker:AAPL.XNAS"). A bare ticker like "AAPL" is accepted and sent as ticker:AAPL. |
| period_type | string |
One call that returns the income statement, balance sheet and cash flow statement of a company exactly as FinancialMD knew them on a date: no later restatements, no periods filed afterwards. This is the tool for point-in-time work: backtests, "what did an investor know on the day", reproducing a past model, or checking whether a decision was made on numbers that were later restated. Each statement carries its own meta; a statement the company does not have is reported as an error inside the snapshot rather than failing the whole call. The ratios computed from the same facts as known on that date ride along under `ratios`. Costs three filing-layer reads and one metered ratios read. If a dataset, field, company or analysis you need is missing, call request_data.
| Argument | Type | Description |
|---|---|---|
| as_of* | string | The knowledge date to replay (YYYY-MM-DD or RFC 3339). Required. |
| limit | integer | Maximum number of periods or items to return (default 5, at most 200). |
| company* | string | Company identifier: a FinancialMD id ("fmd_01H..."), an SEC CIK ("cik:320193"), or a ticker ("ticker:AAPL", optionally with the MIC "ticker:AAPL.XNAS"). A bare ticker like "AAPL" is accepted and sent as ticker:AAPL. |
| period_type | string | Period basis: annual (fiscal years), quarterly, ltm (last twelve months) or ytd (year to date). |
{
"type": "object",
"examples": [
{
"as_of": "2023-06-30",
"limit": 4,
"company": "ticker:AAPL",
"period_type": "annual"
}
],
"required": [
"company",
"as_of"
],
"properties": {
"as_of": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2}))?$",
"examples": [
"2024-11-15",
"2025-02-01T00:00:00Z"
],
"description": "The knowledge date to replay (YYYY-MM-DD or RFC 3339). Required."
},
"limit": {
"type": "integer",
"default": 5,
"maximum": 200,
"minimum": 1,
"description": "Maximum number of periods or items to return (default 5, at most 200)."
},
"company": {
"type": "string",
"examples": [
"ticker:AAPL",
"cik:320193",
"fmd_01HZX8Q3K9W2M4N6P8R0T2V4X6"
],
"maxLength": 64,
"minLength": 1,
"description": "Company identifier: a FinancialMD id (\"fmd_01H...\"), an SEC CIK (\"cik:320193\"), or a ticker (\"ticker:AAPL\", optionally with the MIC \"ticker:AAPL.XNAS\"). A bare ticker like \"AAPL\" is accepted and sent as ticker:AAPL."
},
"period_type": {
"enum": [
"annual",
"quarterly",
"ltm",
"ytd"
],
"type": "string",
"default": "annual",
"description": "Period basis: annual (fiscal years), quarterly, ltm (last twelve months) or ytd (year to date)."
}
},
"additionalProperties": false
}Daily open, high, low, close and volume of one listing of a company, newest session first, built from trades executed at IEX only. IEX is a single exchange with a small share of US volume: this is not the consolidated tape, close is the last IEX trade of the session and not the official closing price, volume is IEX volume only, and nothing is adjusted for splits or dividends. Say so when you quote a number, and show the citation in meta.attribution. For P/E, market capitalisation and other multiples use ratios_daily, which pairs each close with the facts known that day and withholds points after a likely split. ticker picks another listing of the company; from and to bound the session dates; as_of replays what was known on a date; cursor pages. Every number carries a proof naming the IEX session file it was read from. Filing-layer read: served with generous limits on every tier. If a dataset, field, company or analysis you need is missing, call request_data.
| Argument | Type | Description |
|---|---|---|
| to | string | Last session date, inclusive (YYYY-MM-DD). |
| from | string | First session date, inclusive (YYYY-MM-DD). |
| as_of | string | Knowledge date or timestamp (YYYY-MM-DD or RFC 3339). The answer is what FinancialMD knew at that instant: only facts whose known interval contains as_of. Omit for the current view. |
| limit | integer | Maximum number of periods or items to return (default 30, at most 1000). |
| adjust | string | splits: each bar also carries split_adjusted values (confirmed splits after the session only); total_return: also total_return values, dividends reinvested at the IEX close before each ex-date (only dividends with an ex-date in the filings). |
Check a number you have (from a model, a news story, a spreadsheet or memory) against what the company filed. Give the company, the concept (a concept_id or fiscal alias from metrics_list, for example revenue or net_income), the period (fiscal_year plus fiscal_period, or a period string such as "FY2024", "Q4 2024" or a period end date) and the value in whole currency units; FinancialMD returns the filed value object with its proof, the delta (absolute and percent), the tolerance (half a unit at the filed precision), a scale_hint when the number would match after a power-of-ten scale (millions given as units), and a verdict: matches, differs, or unknown (company and concept exist but no fact matches the period). Optionally name the source so the audit trail records it, and as_of to verify against what was known on a date. Metered call: 1 of 25 keyless calls a day. Nothing is charged today; the planned per-call price is $0.02. Use it before repeating a figure that came from a model, an article or memory. If a dataset, field, company or analysis you need is missing, call request_data.
| Argument | Type | Description |
|---|---|---|
| as_of | string | Knowledge date or timestamp (YYYY-MM-DD or RFC 3339). The answer is what FinancialMD knew at that instant: only facts whose known interval contains as_of. Omit for the current view. |
| value* | number | The number to check, in the concept's base unit (whole currency units, not millions). |
| period | string | Alternative to fiscal_year and fiscal_period: "FY2024", "Q4 2024", "2024Q4", or a period end date "2024-09-28". |
| source | string | Optional: where your number came from, recorded in the audit trail. |
We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 13, 2026.
| importance_min |
| integer |
| Only filings whose highest item is at least this important. |
{
"type": "object",
"examples": [
{
"limit": 10,
"company": "ticker:AAPL"
}
],
"required": [
"company"
],
"properties": {
"as_of": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2}))?$",
"examples": [
"2024-11-15",
"2025-02-01T00:00:00Z"
],
"description": "Knowledge date or timestamp (YYYY-MM-DD or RFC 3339). The answer is what FinancialMD knew at that instant: only facts whose known interval contains as_of. Omit for the current view."
},
"limit": {
"type": "integer",
"default": 20,
"maximum": 500,
"minimum": 1,
"description": "Maximum number of periods or items to return (default 20, at most 500)."
},
"cursor": {
"type": "string",
"maxLength": 512,
"description": "Opaque cursor from a previous page (data.next_cursor)."
},
"company": {
"type": "string",
"examples": [
"ticker:AAPL",
"cik:320193",
"fmd_01HZX8Q3K9W2M4N6P8R0T2V4X6"
],
"maxLength": 64,
"minLength": 1,
"description": "Company identifier: a FinancialMD id (\"fmd_01H...\"), an SEC CIK (\"cik:320193\"), or a ticker (\"ticker:AAPL\", optionally with the MIC \"ticker:AAPL.XNAS\"). A bare ticker like \"AAPL\" is accepted and sent as ticker:AAPL."
},
"event_type": {
"type": "string",
"pattern": "^[a-z_]{2,40}$",
"description": "Only filings with an item of this type (earnings, leadership_change, agreement, acquisition_disposition, restatement...)."
},
"importance_min": {
"type": "integer",
"default": 1,
"maximum": 5,
"minimum": 1,
"description": "Only filings whose highest item is at least this important."
}
},
"additionalProperties": false
}| limit |
| integer |
| Maximum number of periods or items to return (default 50, at most 1000). |
| cursor | string | Opaque cursor from a previous page (data.next_cursor). |
| metric | string | Only this metric slug (for example adjusted_ebitda); data.metrics lists them. |
| company* | string | Company identifier: a FinancialMD id ("fmd_01H..."), an SEC CIK ("cik:320193"), or a ticker ("ticker:AAPL", optionally with the MIC "ticker:AAPL.XNAS"). A bare ticker like "AAPL" is accepted and sent as ticker:AAPL. |
| period_type | string | Only this period type. |
{
"type": "object",
"examples": [
{
"kind": "adjusted",
"limit": 10,
"company": "ticker:MSFT"
},
{
"metric": "apple_iphone_net_sales",
"company": "AAPL"
}
],
"required": [
"company"
],
"properties": {
"to": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Last period end, inclusive (YYYY-MM-DD)."
},
"from": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "First period end, inclusive (YYYY-MM-DD)."
},
"kind": {
"enum": [
"adjusted",
"operating"
],
"type": "string",
"description": "adjusted: non-GAAP measures; operating: operating statistics."
},
"as_of": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2}))?$",
"examples": [
"2024-11-15",
"2025-02-01T00:00:00Z"
],
"description": "Knowledge date or timestamp (YYYY-MM-DD or RFC 3339). The answer is what FinancialMD knew at that instant: only facts whose known interval contains as_of. Omit for the current view."
},
"limit": {
"type": "integer",
"default": 50,
"maximum": 1000,
"minimum": 1,
"description": "Maximum number of periods or items to return (default 50, at most 1000)."
},
"cursor": {
"type": "string",
"maxLength": 512,
"description": "Opaque cursor from a previous page (data.next_cursor)."
},
"metric": {
"type": "string",
"pattern": "^[a-z][a-z0-9_]{1,80}$",
"description": "Only this metric slug (for example adjusted_ebitda); data.metrics lists them."
},
"company": {
"type": "string",
"examples": [
"ticker:AAPL",
"cik:320193",
"fmd_01HZX8Q3K9W2M4N6P8R0T2V4X6"
],
"maxLength": 64,
"minLength": 1,
"description": "Company identifier: a FinancialMD id (\"fmd_01H...\"), an SEC CIK (\"cik:320193\"), or a ticker (\"ticker:AAPL\", optionally with the MIC \"ticker:AAPL.XNAS\"). A bare ticker like \"AAPL\" is accepted and sent as ticker:AAPL."
},
"period_type": {
"enum": [
"annual",
"quarterly",
"point"
],
"type": "string",
"description": "Only this period type."
}
},
"additionalProperties": false
}| fiscal_period* |
| string |
| Fiscal period label: FY for the full year, or Q1, Q2, Q3, Q4. |
{
"type": "object",
"examples": [
{
"company": "ticker:AAPL",
"statement": "income_statement",
"fiscal_year": 2023,
"fiscal_period": "FY"
},
{
"company": "cik:320193",
"concept": "total_assets",
"statement": "balance_sheet",
"fiscal_year": 2024,
"fiscal_period": "Q2"
}
],
"required": [
"company",
"statement",
"fiscal_year",
"fiscal_period"
],
"properties": {
"company": {
"type": "string",
"examples": [
"ticker:AAPL",
"cik:320193",
"fmd_01HZX8Q3K9W2M4N6P8R0T2V4X6"
],
"maxLength": 64,
"minLength": 1,
"description": "Company identifier: a FinancialMD id (\"fmd_01H...\"), an SEC CIK (\"cik:320193\"), or a ticker (\"ticker:AAPL\", optionally with the MIC \"ticker:AAPL.XNAS\"). A bare ticker like \"AAPL\" is accepted and sent as ticker:AAPL."
},
"concept": {
"type": "string",
"pattern": "^[a-z][a-z0-9_]{1,80}$",
"description": "Optional: compare only this standardized concept id."
},
"statement": {
"enum": [
"income_statement",
"balance_sheet",
"cash_flow"
],
"type": "string",
"description": "Which financial statement."
},
"fiscal_year": {
"type": "integer",
"maximum": 2100,
"minimum": 1990,
"description": "Fiscal year as the filer labels it (for example 2024 for Apple's year ending 2024-09-28)."
},
"period_type": {
"enum": [
"annual",
"quarterly",
"ltm",
"ytd"
],
"type": "string",
"description": "Period basis to search; defaults to annual for FY and quarterly for Q1 to Q4."
},
"fiscal_period": {
"enum": [
"FY",
"Q1",
"Q2",
"Q3",
"Q4"
],
"type": "string",
"description": "Fiscal period label: FY for the full year, or Q1, Q2, Q3, Q4."
}
},
"additionalProperties": false
}{
"type": "object",
"examples": [
{
"limit": 8,
"company": "MSFT"
}
],
"required": [
"company"
],
"properties": {
"to": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Last date, inclusive (YYYY-MM-DD)."
},
"from": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "First date, inclusive (YYYY-MM-DD)."
},
"as_of": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2}))?$",
"examples": [
"2024-11-15",
"2025-02-01T00:00:00Z"
],
"description": "Knowledge date or timestamp (YYYY-MM-DD or RFC 3339). The answer is what FinancialMD knew at that instant: only facts whose known interval contains as_of. Omit for the current view."
},
"limit": {
"type": "integer",
"default": 12,
"maximum": 500,
"minimum": 1,
"description": "Maximum number of periods or items to return (default 12, at most 500)."
},
"company": {
"type": "string",
"examples": [
"ticker:AAPL",
"cik:320193",
"fmd_01HZX8Q3K9W2M4N6P8R0T2V4X6"
],
"maxLength": 64,
"minLength": 1,
"description": "Company identifier: a FinancialMD id (\"fmd_01H...\"), an SEC CIK (\"cik:320193\"), or a ticker (\"ticker:AAPL\", optionally with the MIC \"ticker:AAPL.XNAS\"). A bare ticker like \"AAPL\" is accepted and sent as ticker:AAPL."
}
},
"additionalProperties": false
}| confidence | string | confirmed: an 8-K Item 2.02 was filed; predicted: the cadence model. |
{
"type": "object",
"examples": [
{
"company": "ticker:AAPL"
},
{
"to": "2026-11-19",
"from": "2026-11-12",
"confidence": "predicted"
}
],
"required": [],
"properties": {
"to": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Last date, inclusive (YYYY-MM-DD)."
},
"from": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "First date, inclusive (YYYY-MM-DD)."
},
"as_of": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2}))?$",
"examples": [
"2024-11-15",
"2025-02-01T00:00:00Z"
],
"description": "Knowledge date or timestamp (YYYY-MM-DD or RFC 3339). The answer is what FinancialMD knew at that instant: only facts whose known interval contains as_of. Omit for the current view."
},
"limit": {
"type": "integer",
"default": 50,
"maximum": 1000,
"minimum": 1,
"description": "Maximum number of periods or items to return (default 50, at most 1000)."
},
"cursor": {
"type": "string",
"maxLength": 512,
"description": "Opaque cursor from a previous page (data.next_cursor)."
},
"company": {
"type": "string",
"examples": [
"ticker:AAPL",
"cik:320193",
"fmd_01HZX8Q3K9W2M4N6P8R0T2V4X6"
],
"maxLength": 64,
"minLength": 1,
"description": "Company identifier: a FinancialMD id (\"fmd_01H...\"), an SEC CIK (\"cik:320193\"), or a ticker (\"ticker:AAPL\", optionally with the MIC \"ticker:AAPL.XNAS\"). A bare ticker like \"AAPL\" is accepted and sent as ticker:AAPL."
},
"confidence": {
"enum": [
"confirmed",
"predicted"
],
"type": "string",
"description": "confirmed: an 8-K Item 2.02 was filed; predicted: the cadence model."
}
},
"additionalProperties": false
}| Optional: only this company's documents. Company identifier: a FinancialMD id ("fmd_01H..."), an SEC CIK ("cik:320193"), or a ticker ("ticker:AAPL", optionally with the MIC "ticker:AAPL.XNAS"). A bare ticker like "AAPL" is accepted and sent as ticker:AAPL. |
{
"type": "object",
"examples": [
{
"q": "\"going concern\"",
"from": "2026-01-01",
"forms": "10-K"
},
{
"q": "tariffs",
"company": "ticker:AAPL"
}
],
"required": [
"q"
],
"properties": {
"q": {
"type": "string",
"maxLength": 200,
"minLength": 2,
"description": "Words to find; a phrase in double quotes matches exactly. Letters, digits, spaces and common punctuation."
},
"to": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Filed on or before (YYYY-MM-DD)."
},
"from": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Filed on or after (YYYY-MM-DD)."
},
"page": {
"type": "integer",
"default": 1,
"maximum": 100,
"minimum": 1,
"description": "Page number, 1-based."
},
"forms": {
"type": "string",
"pattern": "^[A-Za-z0-9/\\- ]{1,20}(,[A-Za-z0-9/\\- ]{1,20}){0,9}$",
"description": "Comma-separated form types, for example \"10-K,10-Q\"."
},
"limit": {
"type": "integer",
"default": 10,
"maximum": 100,
"minimum": 1,
"description": "Maximum number of periods or items to return (default 10, at most 100)."
},
"company": {
"type": "string",
"examples": [
"ticker:AAPL",
"cik:320193",
"fmd_01HZX8Q3K9W2M4N6P8R0T2V4X6"
],
"maxLength": 64,
"minLength": 1,
"description": "Optional: only this company's documents. Company identifier: a FinancialMD id (\"fmd_01H...\"), an SEC CIK (\"cik:320193\"), or a ticker (\"ticker:AAPL\", optionally with the MIC \"ticker:AAPL.XNAS\"). A bare ticker like \"AAPL\" is accepted and sent as ticker:AAPL."
}
},
"additionalProperties": false
}{
"type": "object",
"examples": [
{
"form": "10-K",
"limit": 5,
"company": "ticker:AAPL"
},
{
"as_of": "2020-01-01",
"limit": 20,
"company": "cik:320193"
}
],
"required": [
"company"
],
"properties": {
"form": {
"type": "string",
"pattern": "^[0-9A-Za-z\\-/]{1,12}$",
"examples": [
"10-K",
"10-Q"
],
"description": "Optional form type filter, for example \"10-K\", \"10-Q\", \"8-K\", \"20-F\"."
},
"as_of": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2}))?$",
"examples": [
"2024-11-15",
"2025-02-01T00:00:00Z"
],
"description": "Knowledge date or timestamp (YYYY-MM-DD or RFC 3339). The answer is what FinancialMD knew at that instant: only facts whose known interval contains as_of. Omit for the current view."
},
"limit": {
"type": "integer",
"default": 50,
"maximum": 500,
"minimum": 1,
"description": "Maximum number of periods or items to return (default 50, at most 500)."
},
"cursor": {
"type": "string",
"maxLength": 512,
"description": "Opaque cursor from a previous page (data.next_cursor)."
},
"company": {
"type": "string",
"examples": [
"ticker:AAPL",
"cik:320193",
"fmd_01HZX8Q3K9W2M4N6P8R0T2V4X6"
],
"maxLength": 64,
"minLength": 1,
"description": "Company identifier: a FinancialMD id (\"fmd_01H...\"), an SEC CIK (\"cik:320193\"), or a ticker (\"ticker:AAPL\", optionally with the MIC \"ticker:AAPL.XNAS\"). A bare ticker like \"AAPL\" is accepted and sent as ticker:AAPL."
}
},
"additionalProperties": false
}| string |
| Period basis: annual or quarterly (as-reported facts are not derived into ltm or ytd). |
{
"type": "object",
"examples": [
{
"limit": 2,
"company": "ticker:AAPL",
"statement": "income_statement",
"period_type": "annual"
}
],
"required": [
"company",
"statement"
],
"properties": {
"as_of": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2}))?$",
"examples": [
"2024-11-15",
"2025-02-01T00:00:00Z"
],
"description": "Knowledge date or timestamp (YYYY-MM-DD or RFC 3339). The answer is what FinancialMD knew at that instant: only facts whose known interval contains as_of. Omit for the current view."
},
"limit": {
"type": "integer",
"default": 4,
"maximum": 40,
"minimum": 1,
"description": "Maximum number of periods or items to return (default 4, at most 40)."
},
"company": {
"type": "string",
"examples": [
"ticker:AAPL",
"cik:320193",
"fmd_01HZX8Q3K9W2M4N6P8R0T2V4X6"
],
"maxLength": 64,
"minLength": 1,
"description": "Company identifier: a FinancialMD id (\"fmd_01H...\"), an SEC CIK (\"cik:320193\"), or a ticker (\"ticker:AAPL\", optionally with the MIC \"ticker:AAPL.XNAS\"). A bare ticker like \"AAPL\" is accepted and sent as ticker:AAPL."
},
"history": {
"type": "boolean",
"default": false,
"description": "Return every filing's version of each cell ({ versions }, oldest first) instead of the latest one."
},
"statement": {
"enum": [
"income_statement",
"balance_sheet",
"cash_flow"
],
"type": "string",
"description": "Which financial statement."
},
"period_type": {
"enum": [
"annual",
"quarterly"
],
"type": "string",
"default": "annual",
"description": "Period basis: annual or quarterly (as-reported facts are not derived into ltm or ytd)."
}
},
"additionalProperties": false
}| Return every knowledge version of each period (oldest first). Mutually exclusive with original. |
| original | boolean | Return the first-reported value of each period instead of the current one. |
| statement* | string | Which financial statement. supplemental carries share counts (outstanding, weighted average) and per-share figures. |
| period_type | string | Period basis: annual (fiscal years), quarterly, ltm (last twelve months) or ytd (year to date). |
{
"type": "object",
"examples": [
{
"limit": 5,
"company": "ticker:AAPL",
"statement": "income_statement",
"period_type": "annual"
},
{
"as_of": "2024-12-31",
"company": "cik:320193",
"statement": "balance_sheet",
"period_type": "quarterly"
},
{
"limit": 3,
"company": "ticker:MSFT",
"history": true,
"statement": "cash_flow",
"period_type": "annual"
}
],
"required": [
"company",
"statement"
],
"properties": {
"as_of": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2}))?$",
"examples": [
"2024-11-15",
"2025-02-01T00:00:00Z"
],
"description": "Knowledge date or timestamp (YYYY-MM-DD or RFC 3339). The answer is what FinancialMD knew at that instant: only facts whose known interval contains as_of. Omit for the current view."
},
"limit": {
"type": "integer",
"default": 10,
"maximum": 200,
"minimum": 1,
"description": "Maximum number of periods or items to return (default 10, at most 200)."
},
"company": {
"type": "string",
"examples": [
"ticker:AAPL",
"cik:320193",
"fmd_01HZX8Q3K9W2M4N6P8R0T2V4X6"
],
"maxLength": 64,
"minLength": 1,
"description": "Company identifier: a FinancialMD id (\"fmd_01H...\"), an SEC CIK (\"cik:320193\"), or a ticker (\"ticker:AAPL\", optionally with the MIC \"ticker:AAPL.XNAS\"). A bare ticker like \"AAPL\" is accepted and sent as ticker:AAPL."
},
"history": {
"type": "boolean",
"default": false,
"description": "Return every knowledge version of each period (oldest first). Mutually exclusive with original."
},
"original": {
"type": "boolean",
"default": false,
"description": "Return the first-reported value of each period instead of the current one."
},
"statement": {
"enum": [
"income_statement",
"balance_sheet",
"cash_flow",
"supplemental"
],
"type": "string",
"description": "Which financial statement. supplemental carries share counts (outstanding, weighted average) and per-share figures."
},
"period_type": {
"enum": [
"annual",
"quarterly",
"ltm",
"ytd"
],
"type": "string",
"default": "annual",
"description": "Period basis: annual (fiscal years), quarterly, ltm (last twelve months) or ytd (year to date)."
}
},
"additionalProperties": false
}{
"type": "object",
"examples": [
{
"company": "ticker:MSFT"
}
],
"required": [
"company"
],
"properties": {
"as_of": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2}))?$",
"examples": [
"2024-11-15",
"2025-02-01T00:00:00Z"
],
"description": "Knowledge date or timestamp (YYYY-MM-DD or RFC 3339). The answer is what FinancialMD knew at that instant: only facts whose known interval contains as_of. Omit for the current view."
},
"limit": {
"type": "integer",
"default": 20,
"maximum": 500,
"minimum": 1,
"description": "Maximum number of periods or items to return (default 20, at most 500)."
},
"cursor": {
"type": "string",
"maxLength": 512,
"description": "Opaque cursor from a previous page (data.next_cursor)."
},
"period": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Report window ending on or before (default the newest) (YYYY-MM-DD)."
},
"company": {
"type": "string",
"examples": [
"ticker:AAPL",
"cik:320193",
"fmd_01HZX8Q3K9W2M4N6P8R0T2V4X6"
],
"maxLength": 64,
"minLength": 1,
"description": "Company identifier: a FinancialMD id (\"fmd_01H...\"), an SEC CIK (\"cik:320193\"), or a ticker (\"ticker:AAPL\", optionally with the MIC \"ticker:AAPL.XNAS\"). A bare ticker like \"AAPL\" is accepted and sent as ticker:AAPL."
}
},
"additionalProperties": false
}{
"type": "object",
"examples": [
{
"limit": 20,
"company": "ticker:AAPL"
},
{
"period": "2026-06-30",
"company": "cik:320193"
}
],
"required": [
"company"
],
"properties": {
"as_of": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2}))?$",
"examples": [
"2024-11-15",
"2025-02-01T00:00:00Z"
],
"description": "Knowledge date or timestamp (YYYY-MM-DD or RFC 3339). The answer is what FinancialMD knew at that instant: only facts whose known interval contains as_of. Omit for the current view."
},
"limit": {
"type": "integer",
"default": 50,
"maximum": 500,
"minimum": 1,
"description": "Maximum number of periods or items to return (default 50, at most 500)."
},
"cursor": {
"type": "string",
"maxLength": 512,
"description": "Opaque cursor from a previous page (data.next_cursor)."
},
"period": {
"type": "string",
"pattern": "^\\d{4}-(03-31|06-30|09-30|12-31)$",
"examples": [
"2026-06-30"
],
"description": "Optional calendar quarter end (YYYY-03-31, -06-30, -09-30 or -12-31). Default: the newest quarter on file."
},
"company": {
"type": "string",
"examples": [
"ticker:AAPL",
"cik:320193",
"fmd_01HZX8Q3K9W2M4N6P8R0T2V4X6"
],
"maxLength": 64,
"minLength": 1,
"description": "Company identifier: a FinancialMD id (\"fmd_01H...\"), an SEC CIK (\"cik:320193\"), or a ticker (\"ticker:AAPL\", optionally with the MIC \"ticker:AAPL.XNAS\"). A bare ticker like \"AAPL\" is accepted and sent as ticker:AAPL."
}
},
"additionalProperties": false
}| Optional calendar quarter end (YYYY-03-31, -06-30, -09-30 or -12-31). Default: the newest quarter on file. |
{
"type": "object",
"examples": [
{
"limit": 50,
"holder": "cik:1067983"
},
{
"holder": "Berkshire Hathaway",
"period": "2026-06-30"
}
],
"required": [
"holder"
],
"properties": {
"as_of": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2}))?$",
"examples": [
"2024-11-15",
"2025-02-01T00:00:00Z"
],
"description": "Knowledge date or timestamp (YYYY-MM-DD or RFC 3339). The answer is what FinancialMD knew at that instant: only facts whose known interval contains as_of. Omit for the current view."
},
"limit": {
"type": "integer",
"default": 100,
"maximum": 1000,
"minimum": 1,
"description": "Maximum number of periods or items to return (default 100, at most 1000)."
},
"cursor": {
"type": "string",
"maxLength": 512,
"description": "Opaque cursor from a previous page (data.next_cursor)."
},
"holder": {
"type": "string",
"examples": [
"cik:1067983",
"Berkshire Hathaway"
],
"maxLength": 120,
"minLength": 1,
"description": "The manager: \"cik:<n>\" or a bare SEC CIK, or part of the manager's name as filed, such as \"Berkshire Hathaway\"."
},
"period": {
"type": "string",
"pattern": "^\\d{4}-(03-31|06-30|09-30|12-31)$",
"examples": [
"2026-06-30"
],
"description": "Optional calendar quarter end (YYYY-03-31, -06-30, -09-30 or -12-31). Default: the newest quarter on file."
}
},
"additionalProperties": false
}| event_type | string | Only filings with an item of this type (earnings, leadership_change, agreement, acquisition_disposition, restatement, bankruptcy, impairment, auditor_change...). |
| importance_min | integer | Only filings whose highest item is at least this important (5 critical, 4 major, 3 notable, 2 routine, 1 exhibits only). |
{
"type": "object",
"examples": [
{
"limit": 10,
"importance_min": 4
},
{
"from": "2026-11-01",
"event_type": "earnings"
}
],
"required": [],
"properties": {
"to": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Accepted on or before (YYYY-MM-DD)."
},
"from": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Accepted on or after (YYYY-MM-DD)."
},
"as_of": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2}))?$",
"examples": [
"2024-11-15",
"2025-02-01T00:00:00Z"
],
"description": "Knowledge date or timestamp (YYYY-MM-DD or RFC 3339). The answer is what FinancialMD knew at that instant: only facts whose known interval contains as_of. Omit for the current view."
},
"limit": {
"type": "integer",
"default": 20,
"maximum": 200,
"minimum": 1,
"description": "Maximum number of periods or items to return (default 20, at most 200)."
},
"cursor": {
"type": "string",
"maxLength": 512,
"description": "Opaque cursor from a previous page (data.next_cursor)."
},
"company": {
"type": "string",
"examples": [
"ticker:AAPL",
"cik:320193",
"fmd_01HZX8Q3K9W2M4N6P8R0T2V4X6"
],
"maxLength": 64,
"minLength": 1,
"description": "Optional: one company. Company identifier: a FinancialMD id (\"fmd_01H...\"), an SEC CIK (\"cik:320193\"), or a ticker (\"ticker:AAPL\", optionally with the MIC \"ticker:AAPL.XNAS\"). A bare ticker like \"AAPL\" is accepted and sent as ticker:AAPL."
},
"event_type": {
"type": "string",
"pattern": "^[a-z_]{2,40}$",
"description": "Only filings with an item of this type (earnings, leadership_change, agreement, acquisition_disposition, restatement, bankruptcy, impairment, auditor_change...)."
},
"importance_min": {
"type": "integer",
"default": 1,
"maximum": 5,
"minimum": 1,
"description": "Only filings whose highest item is at least this important (5 critical, 4 major, 3 notable, 2 routine, 1 exhibits only)."
}
},
"additionalProperties": false
}| ratios |
| array |
| Optional: only these ratio ids (the grid is trimmed client-side; the call costs the same). |
| company* | string | Company identifier: a FinancialMD id ("fmd_01H..."), an SEC CIK ("cik:320193"), or a ticker ("ticker:AAPL", optionally with the MIC "ticker:AAPL.XNAS"). A bare ticker like "AAPL" is accepted and sent as ticker:AAPL. |
| period_type | string | Period basis: annual (fiscal years), quarterly, ltm (last twelve months) or ytd (year to date). |
{
"type": "object",
"examples": [
{
"limit": 5,
"company": "ticker:AAPL",
"period_type": "annual"
},
{
"as_of": "2024-12-31",
"ratios": [
"roe",
"net_margin"
],
"company": "ticker:JPM",
"period_type": "quarterly"
}
],
"required": [
"company"
],
"properties": {
"as_of": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2}))?$",
"examples": [
"2024-11-15",
"2025-02-01T00:00:00Z"
],
"description": "Knowledge date or timestamp (YYYY-MM-DD or RFC 3339). The answer is what FinancialMD knew at that instant: only facts whose known interval contains as_of. Omit for the current view."
},
"limit": {
"type": "integer",
"default": 10,
"maximum": 200,
"minimum": 1,
"description": "Maximum number of periods or items to return (default 10, at most 200)."
},
"ratios": {
"type": "array",
"items": {
"enum": [
"gross_margin",
"operating_margin",
"net_margin",
"fcf_margin",
"revenue_growth_yoy",
"roe",
"roa",
"asset_turnover",
"current_ratio",
"debt_to_equity",
"interest_coverage",
"eps_basic",
"eps_diluted",
"nii_to_avg_loans_securities",
"efficiency_ratio",
"loans_to_deposits",
"loss_ratio",
"acquisition_cost_ratio",
"market_cap",
"enterprise_value",
"pe_ttm",
"ps_ttm",
"pb",
"ev_ebitda_ttm",
"ev_ebit_ttm",
"fcf_yield",
"dividend_yield"
],
"type": "string"
},
"maxItems": 27,
"minItems": 1,
"description": "Optional: only these ratio ids (the grid is trimmed client-side; the call costs the same).",
"uniqueItems": true
},
"company": {
"type": "string",
"examples": [
"ticker:AAPL",
"cik:320193",
"fmd_01HZX8Q3K9W2M4N6P8R0T2V4X6"
],
"maxLength": 64,
"minLength": 1,
"description": "Company identifier: a FinancialMD id (\"fmd_01H...\"), an SEC CIK (\"cik:320193\"), or a ticker (\"ticker:AAPL\", optionally with the MIC \"ticker:AAPL.XNAS\"). A bare ticker like \"AAPL\" is accepted and sent as ticker:AAPL."
},
"period_type": {
"enum": [
"annual",
"quarterly",
"ltm",
"ytd"
],
"type": "string",
"default": "annual",
"description": "Period basis: annual (fiscal years), quarterly, ltm (last twelve months) or ytd (year to date)."
}
},
"additionalProperties": false
}| cursor | string | Opaque cursor from a previous page (data.next_cursor). |
| ticker | string | Valuation only: the listing whose close is used (default the primary listing with bars). |
| company* | string | Company identifier: a FinancialMD id ("fmd_01H..."), an SEC CIK ("cik:320193"), or a ticker ("ticker:AAPL", optionally with the MIC "ticker:AAPL.XNAS"). A bare ticker like "AAPL" is accepted and sent as ticker:AAPL. |
| ratio_id* | string | Ratio id. Valuation ids give a daily series; the others one point per period. |
| period_type | string | Period basis: annual (fiscal years), quarterly, ltm (last twelve months) or ytd (year to date). |
{
"type": "object",
"examples": [
{
"limit": 30,
"company": "ticker:AAPL",
"ratio_id": "pe_ttm"
},
{
"company": "ticker:JPM",
"ratio_id": "efficiency_ratio",
"period_type": "quarterly"
}
],
"required": [
"company",
"ratio_id"
],
"properties": {
"to": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"examples": [
"2025-01-02"
],
"description": "Valuation only: last session date, inclusive (YYYY-MM-DD)."
},
"from": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"examples": [
"2025-01-02"
],
"description": "Valuation only: first session date, inclusive (YYYY-MM-DD)."
},
"as_of": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2}))?$",
"examples": [
"2024-11-15",
"2025-02-01T00:00:00Z"
],
"description": "Knowledge date or timestamp (YYYY-MM-DD or RFC 3339). The answer is what FinancialMD knew at that instant: only facts whose known interval contains as_of. Omit for the current view."
},
"limit": {
"type": "integer",
"default": 30,
"maximum": 1000,
"minimum": 1,
"description": "Maximum number of periods or items to return (default 30, at most 1000)."
},
"cursor": {
"type": "string",
"maxLength": 512,
"description": "Opaque cursor from a previous page (data.next_cursor)."
},
"ticker": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9.\\-/]{0,11}$",
"description": "Valuation only: the listing whose close is used (default the primary listing with bars)."
},
"company": {
"type": "string",
"examples": [
"ticker:AAPL",
"cik:320193",
"fmd_01HZX8Q3K9W2M4N6P8R0T2V4X6"
],
"maxLength": 64,
"minLength": 1,
"description": "Company identifier: a FinancialMD id (\"fmd_01H...\"), an SEC CIK (\"cik:320193\"), or a ticker (\"ticker:AAPL\", optionally with the MIC \"ticker:AAPL.XNAS\"). A bare ticker like \"AAPL\" is accepted and sent as ticker:AAPL."
},
"ratio_id": {
"enum": [
"gross_margin",
"operating_margin",
"net_margin",
"fcf_margin",
"revenue_growth_yoy",
"roe",
"roa",
"asset_turnover",
"current_ratio",
"debt_to_equity",
"interest_coverage",
"eps_basic",
"eps_diluted",
"nii_to_avg_loans_securities",
"efficiency_ratio",
"loans_to_deposits",
"loss_ratio",
"acquisition_cost_ratio",
"market_cap",
"enterprise_value",
"pe_ttm",
"ps_ttm",
"pb",
"ev_ebitda_ttm",
"ev_ebit_ttm",
"fcf_yield",
"dividend_yield"
],
"type": "string",
"description": "Ratio id. Valuation ids give a daily series; the others one point per period."
},
"period_type": {
"enum": [
"annual",
"quarterly",
"ltm",
"ytd"
],
"type": "string",
"default": "annual",
"description": "Period basis: annual (fiscal years), quarterly, ltm (last twelve months) or ytd (year to date)."
}
},
"additionalProperties": false
}| cursor | string | Opaque cursor from a previous page (data.next_cursor). |
| sector | string | Optional exact sector (case-insensitive). |
| country | string | Optional ISO 3166-1 alpha-2 country code. |
| filters | array | Range filters, all of which must hold. Give min, max or both (inclusive, raw values). |
| metrics | array | Columns to return: concept ids or ratio ids (default: revenue, net income, the three margins, revenue growth, return on equity). |
| sort_by | string | A metric id, "name" or "ticker" (default name). |
| industry | string | Optional exact industry (case-insensitive). |
| sort_dir | string | Sort direction (default asc). |
| period_type | string | Which latest period to screen: annual (default), quarterly or ltm. |
{
"type": "object",
"examples": [
{
"limit": 20,
"filters": [
{
"min": 0.2,
"metric": "net_margin"
}
],
"sort_by": "roe",
"sort_dir": "desc"
},
{
"filters": [
{
"min": 1000000000,
"metric": "income_statement_total_revenues"
},
{
"max": 1,
"min": 0.1,
"metric": "revenue_growth_yoy"
}
],
"metrics": [
"income_statement_total_revenues",
"revenue_growth_yoy"
],
"period_type": "ltm"
}
],
"required": [],
"properties": {
"as_of": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2}))?$",
"examples": [
"2024-11-15",
"2025-02-01T00:00:00Z"
],
"description": "Knowledge date or timestamp (YYYY-MM-DD or RFC 3339). The answer is what FinancialMD knew at that instant: only facts whose known interval contains as_of. Omit for the current view."
},
"limit": {
"type": "integer",
"default": 25,
"maximum": 200,
"minimum": 1,
"description": "Maximum number of periods or items to return (default 25, at most 200)."
},
"query": {
"type": "string",
"maxLength": 64,
"minLength": 1,
"description": "Optional name or ticker search to narrow the universe."
},
"cursor": {
"type": "string",
"maxLength": 512,
"description": "Opaque cursor from a previous page (data.next_cursor)."
},
"sector": {
"type": "string",
"maxLength": 80,
"minLength": 1,
"description": "Optional exact sector (case-insensitive)."
},
"country": {
"type": "string",
"pattern": "^[A-Za-z]{2}$",
"description": "Optional ISO 3166-1 alpha-2 country code."
},
"filters": {
"type": "array",
"items": {
"type": "object",
"anyOf": [
{
"required": [
"min"
]
},
{
"required": [
"max"
]
}
],
"required": [
"metric"
],
"properties": {
"max": {
"type": "number",
"description": "Inclusive upper bound."
},
"min": {
"type": "number",
"description": "Inclusive lower bound."
},
"metric": {
"type": "string",
"pattern": "^[a-z][a-z0-9_]{1,80}$",
"description": "Concept id or ratio id."
}
},
"additionalProperties": false
},
"maxItems": 12,
"minItems": 1,
"description": "Range filters, all of which must hold. Give min, max or both (inclusive, raw values)."
},
"metrics": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[a-z][a-z0-9_]{1,80}$"
},
"maxItems": 12,
"minItems": 1,
"description": "Columns to return: concept ids or ratio ids (default: revenue, net income, the three margins, revenue growth, return on equity).",
"uniqueItems": true
},
"sort_by": {
"type": "string",
"pattern": "^[a-z][a-z0-9_]{1,80}$",
"description": "A metric id, \"name\" or \"ticker\" (default name)."
},
"industry": {
"type": "string",
"maxLength": 120,
"minLength": 1,
"description": "Optional exact industry (case-insensitive)."
},
"sort_dir": {
"enum": [
"asc",
"desc"
],
"type": "string",
"default": "asc",
"description": "Sort direction (default asc)."
},
"period_type": {
"enum": [
"annual",
"quarterly",
"ltm"
],
"type": "string",
"default": "annual",
"description": "Which latest period to screen: annual (default), quarterly or ltm."
}
},
"additionalProperties": false
}| Annual (four-quarter) or quarterly facts. |
{
"type": "object",
"examples": [
{
"tag": "RevenueFromContractWithCustomerExcludingAssessedTax",
"kind": "geography",
"company": "ticker:AAPL"
}
],
"required": [
"company"
],
"properties": {
"tag": {
"type": "string",
"pattern": "^[A-Za-z0-9_]{2,200}$",
"description": "Only this XBRL tag."
},
"kind": {
"enum": [
"business",
"geography",
"product",
"mixed"
],
"type": "string",
"description": "Segment axis kind."
},
"as_of": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2}))?$",
"examples": [
"2024-11-15",
"2025-02-01T00:00:00Z"
],
"description": "Knowledge date or timestamp (YYYY-MM-DD or RFC 3339). The answer is what FinancialMD knew at that instant: only facts whose known interval contains as_of. Omit for the current view."
},
"limit": {
"type": "integer",
"default": 2,
"maximum": 20,
"minimum": 1,
"description": "Maximum number of periods or items to return (default 2, at most 20)."
},
"company": {
"type": "string",
"examples": [
"ticker:AAPL",
"cik:320193",
"fmd_01HZX8Q3K9W2M4N6P8R0T2V4X6"
],
"maxLength": 64,
"minLength": 1,
"description": "Company identifier: a FinancialMD id (\"fmd_01H...\"), an SEC CIK (\"cik:320193\"), or a ticker (\"ticker:AAPL\", optionally with the MIC \"ticker:AAPL.XNAS\"). A bare ticker like \"AAPL\" is accepted and sent as ticker:AAPL."
},
"period_type": {
"enum": [
"annual",
"quarterly"
],
"type": "string",
"default": "annual",
"description": "Annual (four-quarter) or quarterly facts."
}
},
"additionalProperties": false
}| cursor | string | Opaque cursor from a previous page (data.next_cursor). |
| ticker | string | Optional ticker of another listing of the same company (BRK.B). Default: the ticker in company, else the primary listing. |
| company* | string | Company identifier: a FinancialMD id ("fmd_01H..."), an SEC CIK ("cik:320193"), or a ticker ("ticker:AAPL", optionally with the MIC "ticker:AAPL.XNAS"). A bare ticker like "AAPL" is accepted and sent as ticker:AAPL. |
{
"type": "object",
"examples": [
{
"limit": 5,
"company": "ticker:AAPL"
},
{
"to": "2025-03-31",
"from": "2025-01-02",
"limit": 250,
"company": "cik:320193"
}
],
"required": [
"company"
],
"properties": {
"to": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"examples": [
"2025-01-02"
],
"description": "Last session date, inclusive (YYYY-MM-DD)."
},
"from": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"examples": [
"2025-01-02"
],
"description": "First session date, inclusive (YYYY-MM-DD)."
},
"as_of": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2}))?$",
"examples": [
"2024-11-15",
"2025-02-01T00:00:00Z"
],
"description": "Knowledge date or timestamp (YYYY-MM-DD or RFC 3339). The answer is what FinancialMD knew at that instant: only facts whose known interval contains as_of. Omit for the current view."
},
"limit": {
"type": "integer",
"default": 30,
"maximum": 1000,
"minimum": 1,
"description": "Maximum number of periods or items to return (default 30, at most 1000)."
},
"adjust": {
"enum": [
"none",
"splits",
"total_return"
],
"type": "string",
"default": "none",
"description": "splits: each bar also carries split_adjusted values (confirmed splits after the session only); total_return: also total_return values, dividends reinvested at the IEX close before each ex-date (only dividends with an ex-date in the filings)."
},
"cursor": {
"type": "string",
"maxLength": 512,
"description": "Opaque cursor from a previous page (data.next_cursor)."
},
"ticker": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9.\\-/]{0,11}$",
"examples": [
"BRK.B"
],
"description": "Optional ticker of another listing of the same company (BRK.B). Default: the ticker in company, else the primary listing."
},
"company": {
"type": "string",
"examples": [
"ticker:AAPL",
"cik:320193",
"fmd_01HZX8Q3K9W2M4N6P8R0T2V4X6"
],
"maxLength": 64,
"minLength": 1,
"description": "Company identifier: a FinancialMD id (\"fmd_01H...\"), an SEC CIK (\"cik:320193\"), or a ticker (\"ticker:AAPL\", optionally with the MIC \"ticker:AAPL.XNAS\"). A bare ticker like \"AAPL\" is accepted and sent as ticker:AAPL."
}
},
"additionalProperties": false
}| company* | string | Company identifier: a FinancialMD id ("fmd_01H..."), an SEC CIK ("cik:320193"), or a ticker ("ticker:AAPL", optionally with the MIC "ticker:AAPL.XNAS"). A bare ticker like "AAPL" is accepted and sent as ticker:AAPL. |
| concept* | string | Concept id or fiscal alias from metrics_list, for example revenue, net_income, total_assets, free_cash_flow. |
| fiscal_year | integer | Fiscal year of the period to check (use with fiscal_period, or give period instead). |
| fiscal_period | string | Fiscal period label: FY, Q1 to Q4 (or H1, H2). Defaults to FY when fiscal_year is given alone. |
{
"type": "object",
"examples": [
{
"value": 391035000000,
"source": "analyst note",
"company": "ticker:AAPL",
"concept": "revenue",
"fiscal_year": 2024,
"fiscal_period": "FY"
},
{
"value": 14736000000,
"period": "Q4 2024",
"company": "ticker:AAPL",
"concept": "net_income"
}
],
"required": [
"company",
"concept",
"value"
],
"properties": {
"as_of": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2}))?$",
"examples": [
"2024-11-15",
"2025-02-01T00:00:00Z"
],
"description": "Knowledge date or timestamp (YYYY-MM-DD or RFC 3339). The answer is what FinancialMD knew at that instant: only facts whose known interval contains as_of. Omit for the current view."
},
"value": {
"type": "number",
"description": "The number to check, in the concept's base unit (whole currency units, not millions)."
},
"period": {
"type": "string",
"examples": [
"FY2024",
"Q4 2024",
"2024-09-28"
],
"maxLength": 24,
"description": "Alternative to fiscal_year and fiscal_period: \"FY2024\", \"Q4 2024\", \"2024Q4\", or a period end date \"2024-09-28\"."
},
"source": {
"type": "string",
"maxLength": 256,
"description": "Optional: where your number came from, recorded in the audit trail."
},
"company": {
"type": "string",
"examples": [
"ticker:AAPL",
"cik:320193",
"fmd_01HZX8Q3K9W2M4N6P8R0T2V4X6"
],
"maxLength": 64,
"minLength": 1,
"description": "Company identifier: a FinancialMD id (\"fmd_01H...\"), an SEC CIK (\"cik:320193\"), or a ticker (\"ticker:AAPL\", optionally with the MIC \"ticker:AAPL.XNAS\"). A bare ticker like \"AAPL\" is accepted and sent as ticker:AAPL."
},
"concept": {
"type": "string",
"pattern": "^[A-Za-z][A-Za-z0-9_.\\-]{0,127}$",
"examples": [
"revenue",
"net_income",
"free_cash_flow"
],
"description": "Concept id or fiscal alias from metrics_list, for example revenue, net_income, total_assets, free_cash_flow."
},
"fiscal_year": {
"type": "integer",
"maximum": 2100,
"minimum": 1990,
"description": "Fiscal year of the period to check (use with fiscal_period, or give period instead)."
},
"fiscal_period": {
"enum": [
"FY",
"Q1",
"Q2",
"Q3",
"Q4",
"H1",
"H2"
],
"type": "string",
"description": "Fiscal period label: FY, Q1 to Q4 (or H1, H2). Defaults to FY when fiscal_year is given alone."
}
},
"additionalProperties": false
}