跳到正文

API 参考

API 的每个路由,读取自 OpenAPI 文档。每个路由都有使用真实公司的示例请求。交互式参考 可以在浏览器中运行同样的调用。路由说明为英文。

GET /v1/companies

Search or page the company directory. Use it to turn a name into a company id, or to list every company with a dataset. Each item has fmd_id, cik, primary_ticker and available_datasets.

Example: GET https://api.financial.md/v1/companies?q=Apple&limit=5

ParameterInDescription
qqueryName or ticker search (names as substring, tickers as prefix; case-insensitive)
countryqueryISO 3166-1 alpha-2
exchangequeryMIC of a listing, e.g. XNAS
templatequeryReporting template
statusqueryCompany status
updated_sincequeryCompanies updated since this date or timestamp
limitqueryMaximum companies per page
cursorqueryOpaque cursor from meta.next_cursor
curl "https://api.financial.md/v1/companies?q=Apple&limit=5"

GET /v1/company/profile

One company's identity: CIK, listings with exchange codes, sector, industry, reporting template, fiscal year end and which datasets are served. Call it first when you are unsure a ticker is covered.

Example: GET https://api.financial.md/v1/company/profile?company=ticker:AAPL

ParameterInDescription
company (required)queryCompany as fmd_<id>, cik:<number>, ticker:<symbol>[.<mic>]; a bare symbol means ticker, bare digits mean cik
curl "https://api.financial.md/v1/company/profile?company=ticker:AAPL"

GET /v1/company/financials/{statement}/standardized

A financial statement on the FinancialMD template, so line items compare across companies. Use it for questions such as "What was Apple's revenue in fiscal 2024?" or "What is AAPL's free cash flow?". data.periods is most recent first and row.cells[i] is the value object for periods[i], each with the 10-K or 10-Q it came from. Add as_of for what was known on a date, original=true for first-reported values, history=true for every restatement.

Example: GET https://api.financial.md/v1/company/financials/income_statement/standardized?company=ticker:AAPL&period_type=annual&limit=5

ParameterInDescription
statement (required)pathStatement; supplemental carries share counts and per-share figures
company (required)queryCompany as fmd_<id>, cik:<number>, ticker:<symbol>[.<mic>]; a bare symbol means ticker, bare digits mean cik
period_typequeryPeriod type
limitqueryMaximum periods (most recent first)
as_ofqueryPoint in time: a date (YYYY-MM-DD, end of day UTC) or ISO timestamp. Answers what was known then.
originalqueryFirst-reported version of each period
historyqueryEvery knowledge version of each period, oldest first
curl "https://api.financial.md/v1/company/financials/income_statement/standardized?company=ticker:AAPL&period_type=annual&limit=5"

GET /v1/company/financials/{statement}/as_reported

The same grid with the filer's own line items: one row per XBRL tag and dimension as filed. Use it when you need the company's exact label or a line the template folds into a total.

Example: GET https://api.financial.md/v1/company/financials/balance_sheet/as_reported?company=cik:320193&period_type=annual&limit=2

ParameterInDescription
statement (required)pathStatement
company (required)queryCompany as fmd_<id>, cik:<number>, ticker:<symbol>[.<mic>]; a bare symbol means ticker, bare digits mean cik
period_typequeryPeriod type (as-reported serves annual and quarterly; balance sheets are instants at the period end)
limitqueryMaximum periods
as_ofqueryPoint in time: a date (YYYY-MM-DD, end of day UTC) or ISO timestamp. Answers what was known then.
historyqueryEvery filing's version of each line and period, oldest first
accessionqueryOnly facts from this filing
curl "https://api.financial.md/v1/company/financials/balance_sheet/as_reported?company=cik:320193&period_type=annual&limit=2"

GET /v1/company/ratios

Margins, returns, leverage, liquidity, growth and per-share ratios for each period, computed from the standardized facts. Each ratio carries the proof ids of its inputs, so it can be traced to the filing.

Example: GET https://api.financial.md/v1/company/ratios?company=ticker:AAPL&period_type=annual&limit=5

ParameterInDescription
company (required)queryCompany as fmd_<id>, cik:<number>, ticker:<symbol>[.<mic>]; a bare symbol means ticker, bare digits mean cik
period_typequeryPeriod type
limitqueryMaximum periods (most recent first)
as_ofqueryPoint in time: a date (YYYY-MM-DD, end of day UTC) or ISO timestamp. Answers what was known then.
curl "https://api.financial.md/v1/company/ratios?company=ticker:AAPL&period_type=annual&limit=5"

GET /v1/company/ratios/daily/{ratio_id}

One ratio as a series. Fundamental ratios have one point per fiscal period; valuation ratios (market cap, P/E, EV/EBITDA and others) have one point per trading session, pairing the IEX close with the facts known that evening.

Example: GET https://api.financial.md/v1/company/ratios/daily/gross_margin?company=ticker:AAPL&period_type=annual&limit=10

ParameterInDescription
ratio_id (required)pathRatio id from GET /v1/company/metrics?statement=ratios
company (required)queryCompany as fmd_<id>, cik:<number>, ticker:<symbol>[.<mic>]; a bare symbol means ticker, bare digits mean cik
period_typequeryPeriod type
limitqueryMaximum periods (most recent first); sessions for a valuation ratio
as_ofqueryPoint in time: a date (YYYY-MM-DD, end of day UTC) or ISO timestamp. Answers what was known then.
tickerqueryValuation ratios: the listing whose close is used
fromqueryValuation ratios: first session, inclusive
toqueryValuation ratios: last session, inclusive
cursorqueryOpaque cursor from meta.next_cursor
curl "https://api.financial.md/v1/company/ratios/daily/gross_margin?company=ticker:AAPL&period_type=annual&limit=10"

GET /v1/company/metrics

The concept ids, labels, display order and subtotal formulas of the company's template. Use the ids in /v1/screen, /v1/verify and to read statement rows. statement=ratios lists the ratio ids and formulas.

Example: GET https://api.financial.md/v1/company/metrics?company=ticker:AAPL&statement=income_statement

ParameterInDescription
company (required)queryCompany as fmd_<id>, cik:<number>, ticker:<symbol>[.<mic>]; a bare symbol means ticker, bare digits mean cik
statementqueryOnly this statement; ratios lists the serve-time ratios with their formulas
curl "https://api.financial.md/v1/company/metrics?company=ticker:AAPL&statement=income_statement"

GET /v1/company/filings

A company's SEC filings, newest first, with accession number, form, period and filing date and an EDGAR link.

Example: GET https://api.financial.md/v1/company/filings?company=ticker:AAPL&form=10-K&limit=5

ParameterInDescription
company (required)queryCompany as fmd_<id>, cik:<number>, ticker:<symbol>[.<mic>]; a bare symbol means ticker, bare digits mean cik
formqueryForm type, e.g. 10-K
as_ofqueryPoint in time: a date (YYYY-MM-DD, end of day UTC) or ISO timestamp. Answers what was known then.
limitqueryMaximum filings
cursorqueryOpaque cursor from meta.next_cursor
curl "https://api.financial.md/v1/company/filings?company=ticker:AAPL&form=10-K&limit=5"

GET /v1/filing/{accession}

One filing by accession number: form, fiscal period, filing and acceptance times, primary document and EDGAR link.

Example: GET https://api.financial.md/v1/filing/0000320193-24-000123

ParameterInDescription
accession (required)pathAccession number, e.g. 0000320193-24-000123
curl "https://api.financial.md/v1/filing/0000320193-24-000123"

GET /v1/filing/{accession}/document

Links to every document of a filing on EDGAR. format=html returns the primary document itself.

Example: GET https://api.financial.md/v1/filing/0000320193-24-000123/document

ParameterInDescription
accession (required)pathAccession number
formatqueryjson: the links; html: the primary document as EDGAR serves it (relative links resolve to EDGAR)
curl "https://api.financial.md/v1/filing/0000320193-24-000123/document"

GET /v1/filing/{accession}/facts

Every fact one filing tagged that maps to a statement concept, grouped by statement, in one call. Use it to read what a single 10-K or 10-Q said.

Example: GET https://api.financial.md/v1/filing/0000320193-24-000123/facts?statement=income_statement

ParameterInDescription
accession (required)pathAccession number
statementqueryOnly this statement
limitqueryMaximum facts
curl "https://api.financial.md/v1/filing/0000320193-24-000123/facts?statement=income_statement"

GET /v1/company/ownership/insiders

Insider transactions from Forms 3, 4 and 5, newest first: who, role, transaction code, shares, price and the filing.

Example: GET https://api.financial.md/v1/company/ownership/insiders?company=ticker:AAPL&limit=20

ParameterInDescription
company (required)queryCompany as fmd_<id>, cik:<number>, ticker:<symbol>[.<mic>]; a bare symbol means ticker, bare digits mean cik
as_ofqueryPoint in time: a date (YYYY-MM-DD, end of day UTC) or ISO timestamp. Answers what was known then.
limitqueryMaximum transactions
cursorqueryOpaque cursor from meta.next_cursor
curl "https://api.financial.md/v1/company/ownership/insiders?company=ticker:AAPL&limit=20"

GET /v1/company/ownership/institutional

Form 13F managers that reported a position in the company for a quarter, with shares, value and the change against the prior quarter.

Example: GET https://api.financial.md/v1/company/ownership/institutional?company=ticker:AAPL&limit=20

ParameterInDescription
company (required)queryCompany as fmd_<id>, cik:<number>, ticker:<symbol>[.<mic>]; a bare symbol means ticker, bare digits mean cik
periodqueryCalendar quarter end the holdings are reported for
as_ofqueryPoint in time: a date (YYYY-MM-DD, end of day UTC) or ISO timestamp. Answers what was known then.
limitqueryMaximum positions
cursorqueryOpaque cursor from meta.next_cursor
curl "https://api.financial.md/v1/company/ownership/institutional?company=ticker:AAPL&limit=20"

GET /v1/ownership/institutional/holders

Search Form 13F managers by name. Each has a CIK to pass to /v1/ownership/institutional/holdings.

Example: GET https://api.financial.md/v1/ownership/institutional/holders?q=Berkshire

ParameterInDescription
qqueryManager name search (case-insensitive substring)
as_ofqueryPoint in time: a date (YYYY-MM-DD, end of day UTC) or ISO timestamp. Answers what was known then.
limitqueryMaximum managers
cursorqueryOpaque cursor from meta.next_cursor
curl "https://api.financial.md/v1/ownership/institutional/holders?q=Berkshire"

GET /v1/ownership/institutional/holdings

One Form 13F manager's portfolio for a quarter, largest positions first.

Example: GET https://api.financial.md/v1/ownership/institutional/holdings?holder=cik:1067983&period=2026-06-30&limit=20

ParameterInDescription
holder (required)queryThe manager's SEC CIK
periodqueryCalendar quarter end the holdings are reported for
as_ofqueryPoint in time: a date (YYYY-MM-DD, end of day UTC) or ISO timestamp. Answers what was known then.
limitqueryMaximum positions
cursorqueryOpaque cursor from meta.next_cursor
curl "https://api.financial.md/v1/ownership/institutional/holdings?holder=cik:1067983&period=2026-06-30&limit=20"

GET /v1/company/stock_prices

Daily bars built from trades at IEX only. This is not the consolidated tape and the close is not the official close. adjust=splits adds split-adjusted values; adjust=total_return adds dividend-reinvested values.

Example: GET https://api.financial.md/v1/company/stock_prices?company=ticker:AAPL&from=2026-10-01&to=2026-10-31

ParameterInDescription
company (required)queryCompany as fmd_<id>, cik:<number>, ticker:<symbol>[.<mic>]; a bare symbol means ticker, bare digits mean cik
tickerqueryOne of the company's listings; default is the ticker named in company, else the primary listing with bars
fromqueryFirst session, inclusive
toqueryLast session, inclusive
as_ofqueryPoint in time: a date (YYYY-MM-DD, end of day UTC) or ISO timestamp. Answers what was known then.
limitqueryMaximum sessions
cursorqueryOpaque cursor from meta.next_cursor
adjustquerysplits: each bar also carries split_adjusted values (confirmed splits after the session only); total_return: also total_return values (split-adjusted times the dividend factors of every ex-date after the session)
curl "https://api.financial.md/v1/company/stock_prices?company=ticker:AAPL&from=2026-10-01&to=2026-10-31"

GET /v1/company/splits

Stock splits as filed in XBRL, each with whether IEX prices confirm it.

Example: GET https://api.financial.md/v1/company/splits?company=ticker:AAPL

ParameterInDescription
company (required)queryCompany as fmd_<id>, cik:<number>, ticker:<symbol>[.<mic>]; a bare symbol means ticker, bare digits mean cik
as_ofqueryPoint in time: a date (YYYY-MM-DD, end of day UTC) or ISO timestamp. Answers what was known then.
curl "https://api.financial.md/v1/company/splits?company=ticker:AAPL"

GET /v1/company/dividends

Dividends per share declared or paid in each fiscal period, as filed, with proof.

Example: GET https://api.financial.md/v1/company/dividends?company=ticker:AAPL&limit=8

ParameterInDescription
company (required)queryCompany as fmd_<id>, cik:<number>, ticker:<symbol>[.<mic>]; a bare symbol means ticker, bare digits mean cik
kindqueryOnly declared or only paid
as_ofqueryPoint in time: a date (YYYY-MM-DD, end of day UTC) or ISO timestamp. Answers what was known then.
limitqueryMaximum periods
curl "https://api.financial.md/v1/company/dividends?company=ticker:AAPL&limit=8"

GET /v1/events_calendar

Earnings releases (8-K Item 2.02 filed) and model-expected report dates, for one company or for every company in a date range.

Example: GET https://api.financial.md/v1/events_calendar?company=ticker:AAPL

ParameterInDescription
companyqueryOptional: one company
fromqueryFirst date, inclusive
toqueryLast date, inclusive
confidencequeryconfirmed: 8-K Item 2.02 filed; predicted: cadence model
as_ofqueryPoint in time: a date (YYYY-MM-DD, end of day UTC) or ISO timestamp. Answers what was known then.
limitqueryMaximum events
cursorqueryOpaque cursor from meta.next_cursor
curl "https://api.financial.md/v1/events_calendar?company=ticker:AAPL"

GET /v1/company/events

A company's 8-K filings with the items they report (earnings, leadership changes, agreements and others), newest first.

Example: GET https://api.financial.md/v1/company/events?company=ticker:AAPL&limit=10

ParameterInDescription
company (required)queryCompany as fmd_<id>, cik:<number>, ticker:<symbol>[.<mic>]; a bare symbol means ticker, bare digits mean cik
event_typequeryOnly items of this type
importance_minqueryOnly filings whose highest item is at least this important
as_ofqueryPoint in time: a date (YYYY-MM-DD, end of day UTC) or ISO timestamp. Answers what was known then.
limitqueryMaximum items
cursorqueryOpaque cursor from meta.next_cursor
curl "https://api.financial.md/v1/company/events?company=ticker:AAPL&limit=10"

GET /v1/news

8-K filings across every company, newest first, each with its items, event types, a headline and an importance from 1 to 5 (FinancialMD's rule by item number). importance_min=4 gives the top stories: earnings, M&A, impairments, auditor changes, restatements, bankruptcies. Built from EDGAR, not wire news.

Example: GET https://api.financial.md/v1/news?importance_min=4&limit=20

ParameterInDescription
companyqueryOptional: one company
event_typequeryOnly filings with an item of this type
importance_minqueryOnly filings whose highest item is at least this important (FinancialMD's rule by 8-K item; see note)
fromqueryAccepted on or after this date (UTC)
toqueryAccepted on or before this date (UTC)
as_ofqueryPoint in time: a date (YYYY-MM-DD, end of day UTC) or ISO timestamp. Answers what was known then.
limitqueryMaximum filings
cursorqueryOpaque cursor from meta.next_cursor
curl "https://api.financial.md/v1/news?importance_min=4&limit=20"

GET /v1/search/filings

Find the EDGAR documents (filings and exhibits since 2001) that contain words or a quoted phrase, through SEC EDGAR full-text search. Each hit names its filing, form, date and companies with FinancialMD ids, and links the document.

Example: GET https://api.financial.md/v1/search/filings?q=%22going%20concern%22&forms=10-K&limit=10

ParameterInDescription
q (required)queryWords to find; a phrase in double quotes matches exactly
formsqueryComma-separated form types
companyqueryOptional: only this company's documents
fromqueryFiled on or after
toqueryFiled on or before
pagequeryPage number, 1-based
limitqueryMaximum documents per page
curl "https://api.financial.md/v1/search/filings?q=%22going%20concern%22&forms=10-K&limit=10"

GET /v1/coverage

Which datasets FinancialMD serves and which it does not (licensed, not built, or waiting on a decision), with the routes, MCP tools, reason and alternatives for each. Read it before looking for consensus estimates, transcripts or real-time prices.

Example: GET https://api.financial.md/v1/coverage?status=conceded

ParameterInDescription
statusqueryOnly datasets with this status
curl "https://api.financial.md/v1/coverage?status=conceded"

GET /v1/company/segments

As-reported segment facts: revenue and other lines by business segment, geography or product.

Example: GET https://api.financial.md/v1/company/segments?company=ticker:AAPL&kind=geography

ParameterInDescription
company (required)queryCompany as fmd_<id>, cik:<number>, ticker:<symbol>[.<mic>]; a bare symbol means ticker, bare digits mean cik
period_typequeryAnnual (four quarters) or quarterly facts
kindquerySegment axis kind
tagqueryOnly this XBRL tag
limitqueryMaximum period ends
as_ofqueryPoint in time: a date (YYYY-MM-DD, end of day UTC) or ISO timestamp. Answers what was known then.
curl "https://api.financial.md/v1/company/segments?company=ticker:AAPL&kind=geography"

GET /v1/company/ownership/insider_holders

What each insider owned after their latest Form 4 or 5 transaction.

Example: GET https://api.financial.md/v1/company/ownership/insider_holders?company=ticker:AAPL

ParameterInDescription
company (required)queryCompany as fmd_<id>, cik:<number>, ticker:<symbol>[.<mic>]; a bare symbol means ticker, bare digits mean cik
as_ofqueryPoint in time: a date (YYYY-MM-DD, end of day UTC) or ISO timestamp. Answers what was known then.
limitqueryMaximum holders
curl "https://api.financial.md/v1/company/ownership/insider_holders?company=ticker:AAPL"

GET /v1/company/ownership/funds

Funds holding the company in their latest Form N-PORT, with shares and value.

Example: GET https://api.financial.md/v1/company/ownership/funds?company=ticker:AAPL&limit=20

ParameterInDescription
company (required)queryCompany as fmd_<id>, cik:<number>, ticker:<symbol>[.<mic>]; a bare symbol means ticker, bare digits mean cik
periodqueryReport period window ending on or before this date (default: the newest)
as_ofqueryPoint in time: a date (YYYY-MM-DD, end of day UTC) or ISO timestamp. Answers what was known then.
limitqueryMaximum funds
cursorqueryOpaque cursor from meta.next_cursor
curl "https://api.financial.md/v1/company/ownership/funds?company=ticker:AAPL&limit=20"

GET /v1/funds

Search Form N-PORT funds by name or series id. Each has a series id to pass to /v1/fund/holdings and /v1/fund/profile.

Example: GET https://api.financial.md/v1/funds?q=Vanguard%20500

ParameterInDescription
qqueryFund or registrant name, or a series id
as_ofqueryPoint in time: a date (YYYY-MM-DD, end of day UTC) or ISO timestamp. Answers what was known then.
limitqueryMaximum funds
cursorqueryOpaque cursor from meta.next_cursor
curl "https://api.financial.md/v1/funds?q=Vanguard%20500"

GET /v1/fund/holdings

One fund's Form N-PORT holdings for a report period, largest first.

Example: GET https://api.financial.md/v1/fund/holdings?fund=S000002839&limit=20

ParameterInDescription
fund (required)querySEC series id
periodqueryReport period (month end); default the newest
as_ofqueryPoint in time: a date (YYYY-MM-DD, end of day UTC) or ISO timestamp. Answers what was known then.
limitqueryMaximum holdings
cursorqueryOpaque cursor from meta.next_cursor
curl "https://api.financial.md/v1/fund/holdings?fund=S000002839&limit=20"

GET /v1/company/kpis

Company-reported metrics read from earnings releases and reports: adjusted (non-GAAP) measures and operating statistics such as product-line sales. Each value carries its exact citation and a confidence.

Example: GET https://api.financial.md/v1/company/kpis?company=ticker:AAPL&kind=operating&limit=20

ParameterInDescription
company (required)queryCompany as fmd_<id>, cik:<number>, ticker:<symbol>[.<mic>]; a bare symbol means ticker, bare digits mean cik
metricqueryOnly this metric slug (data.metrics lists the company's)
kindqueryadjusted: non-GAAP measures under the company's own definition; operating: operating statistics
period_typequeryOnly this period type
fromqueryFirst period end, inclusive
toqueryLast period end, inclusive
as_ofqueryPoint in time: a date (YYYY-MM-DD, end of day UTC) or ISO timestamp. Answers what was known then.
limitqueryMaximum values
cursorqueryOpaque cursor from meta.next_cursor
curl "https://api.financial.md/v1/company/kpis?company=ticker:AAPL&kind=operating&limit=20"

GET /v1/company/dividend_events

Cash dividends with declaration, record, ex and pay dates as the company's filings state them. A missing ex-date is never inferred.

Example: GET https://api.financial.md/v1/company/dividend_events?company=ticker:AAPL&limit=8

ParameterInDescription
company (required)queryCompany as fmd_<id>, cik:<number>, ticker:<symbol>[.<mic>]; a bare symbol means ticker, bare digits mean cik
fromqueryFirst date, inclusive
toqueryLast date, inclusive
as_ofqueryPoint in time: a date (YYYY-MM-DD, end of day UTC) or ISO timestamp. Answers what was known then.
limitqueryMaximum dividends
curl "https://api.financial.md/v1/company/dividend_events?company=ticker:AAPL&limit=8"

GET /v1/company/ownership/insider_holdings

Holding lines of Forms 3, 4 and 5 as filed.

Example: GET https://api.financial.md/v1/company/ownership/insider_holdings?company=ticker:AAPL&limit=20

ParameterInDescription
company (required)queryCompany as fmd_<id>, cik:<number>, ticker:<symbol>[.<mic>]; a bare symbol means ticker, bare digits mean cik
formqueryOnly lines of this form
as_ofqueryPoint in time: a date (YYYY-MM-DD, end of day UTC) or ISO timestamp. Answers what was known then.
limitqueryMaximum lines
curl "https://api.financial.md/v1/company/ownership/insider_holdings?company=ticker:AAPL&limit=20"

GET /v1/fund/profile

A fund's type (ETF, index fund and others) from Form N-CEN and each share class's prospectus fees and expense ratio. Accepts a series id or a share-class ticker.

Example: GET https://api.financial.md/v1/fund/profile?fund=VOO

ParameterInDescription
fund (required)querySeries id or share-class ticker
as_ofqueryPoint in time: a date (YYYY-MM-DD, end of day UTC) or ISO timestamp. Answers what was known then.
curl "https://api.financial.md/v1/fund/profile?fund=VOO"

GET /v1/company/identifiers

CIK, LEI and FIGI of a company with the evidence for each.

Example: GET https://api.financial.md/v1/company/identifiers?company=ticker:AAPL

ParameterInDescription
company (required)queryCompany as fmd_<id>, cik:<number>, ticker:<symbol>[.<mic>]; a bare symbol means ticker, bare digits mean cik
as_ofqueryPoint in time: a date (YYYY-MM-DD, end of day UTC) or ISO timestamp. Answers what was known then.
curl "https://api.financial.md/v1/company/identifiers?company=ticker:AAPL"

GET /v1/screen

Screen every covered company on its latest period. filter takes metric:min:max ranges with raw values (0.2 is 20 percent), sort takes metric:desc. Each result carries one value object with proof per metric.

Example: GET https://api.financial.md/v1/screen?filter=net_margin:0.2:,income_statement_total_revenues:10000000000:&sort=net_margin:desc&limit=20

ParameterInDescription
statusqueryListing status of the companies screened: active (default), delisted, inactive or all
metricsqueryComma-separated columns: concept ids (GET /v1/company/metrics) or ratio ids. Up to 12. Defaults to revenue, net income, the three margins, revenue growth and return on equity.
filterqueryComma-separated range filters metric:min:max; either bound may be empty. Values are raw: 0.1 is 10 percent, amounts are in the reporting currency. A company without a value for a filtered metric does not match.
sortquery<metric|name|ticker>[:asc|:desc]; companies without a value sort last. Default name:asc.
period_typequeryThe period type whose latest period is screened
qqueryName or ticker search (names as substring, tickers as prefix)
sectorqueryExact sector (case-insensitive)
industryqueryExact industry (case-insensitive)
templatequeryReporting template
countryqueryISO 3166-1 alpha-2
as_ofqueryPoint in time: a date (YYYY-MM-DD, end of day UTC) or ISO timestamp. Answers what was known then.
limitqueryMaximum companies per page
cursorqueryOpaque cursor from meta.next_cursor
curl "https://api.financial.md/v1/screen?filter=net_margin:0.2:,income_statement_total_revenues:10000000000:&sort=net_margin:desc&limit=20"

GET /v1/company/estimates

Always 404 not_covered: consensus estimates are licensed data FinancialMD does not carry. error.details names the reason and what to use instead; do not retry.

Example: GET https://api.financial.md/v1/company/estimates?company=ticker:AAPL

curl "https://api.financial.md/v1/company/estimates?company=ticker:AAPL"

GET /v1/company/analyst_ratings

Always 404 not_covered: analyst ratings and price targets are licensed. error.details names the reason and what to use instead; do not retry.

Example: GET https://api.financial.md/v1/company/analyst_ratings?company=ticker:AAPL

curl "https://api.financial.md/v1/company/analyst_ratings?company=ticker:AAPL"

GET /v1/company/transcripts

Always 404 not_covered: call transcripts and audio are licensed. error.details names the reason and what to use instead; do not retry.

Example: GET https://api.financial.md/v1/company/transcripts?company=ticker:AAPL

curl "https://api.financial.md/v1/company/transcripts?company=ticker:AAPL"

GET /v1/company/stock_prices/intraday

Always 404 not_covered: real-time and intraday prices are licensed; daily IEX bars are at /v1/company/stock_prices. error.details names the reason and what to use instead; do not retry.

Example: GET https://api.financial.md/v1/company/stock_prices/intraday?company=ticker:AAPL

curl "https://api.financial.md/v1/company/stock_prices/intraday?company=ticker:AAPL"

Always 404 not_covered: logos wait on a trademark review. error.details names the reason and what to use instead; do not retry.

Example: GET https://api.financial.md/v1/company/logo?company=ticker:AAPL

curl "https://api.financial.md/v1/company/logo?company=ticker:AAPL"

GET /v1/politician_trades

Always 404 not_covered: politician trades wait on a legal review. error.details names the reason and what to use instead; do not retry.

Example: GET https://api.financial.md/v1/politician_trades

curl "https://api.financial.md/v1/politician_trades"

GET /v1/fund_letters

Always 404 not_covered: fund letters are not built. error.details names the reason and what to use instead; do not retry.

Example: GET https://api.financial.md/v1/fund_letters

curl "https://api.financial.md/v1/fund_letters"

GET /proof/{id}

The proof behind any value: the filing, the XBRL tag and dimensions, the source URL and the raw as-reported facts it derives from.

Example: GET https://api.financial.md/proof/p_edt68ehn6cw3ed0

ParameterInDescription
id (required)pathProof id from any value object
curl "https://api.financial.md/proof/p_edt68ehn6cw3ed0"

POST /v1/verify

Check a number you got elsewhere against what the company filed. Returns verdict (matches, differs or unknown), the filed value with proof, the difference, the tolerance from the filer's precision, and a scale_hint when your number is off by a power of ten.

Example: POST https://api.financial.md/v1/verify with body {"company":"ticker:AAPL","concept":"income_statement_total_revenues","period":"FY2024","value":391035000000}

curl -X POST "https://api.financial.md/v1/verify" -H "content-type: application/json" -d '{"company":"ticker:AAPL","concept":"income_statement_total_revenues","period":"FY2024","value":391035000000}'

GET /v1/changes

Standardized facts whose knowledge interval opened since a time: new filings and restatements. Poll it to keep a local copy current.

Example: GET https://api.financial.md/v1/changes?since=2026-11-01T00:00:00Z&company=ticker:AAPL&limit=50

ParameterInDescription
since (required)queryFacts whose knowledge interval opened at or after this instant
companyqueryCompany as fmd_<id>, cik:<number>, ticker:<symbol>[.<mic>]; a bare symbol means ticker, bare digits mean cik
limitqueryMaximum changes
cursorqueryOpaque cursor from meta.next_cursor
curl "https://api.financial.md/v1/changes?since=2026-11-01T00:00:00Z&company=ticker:AAPL&limit=50"

GET /v1/request-data

How to tell us about data or analysis you needed and did not find: the body POST /v1/request-data takes, the kinds, the limits and how to follow a request.

Example: GET https://api.financial.md/v1/request-data

curl "https://api.financial.md/v1/request-data"

POST /v1/request-data

Tell us what you needed and did not find. Free, keyless, never charged. Similar requests merge into one demand item and count as votes; the answer has request_id, item_id, status and the vote counts. Do not include personal data.

Example: POST https://api.financial.md/v1/request-data with body {"kind":"dataset","want":"Quarterly order backlog by segment","why":"Modeling revenue visibility","company":"ticker:BA","endpoint_or_tool":"/v1/company/kpis"}

curl -X POST "https://api.financial.md/v1/request-data" -H "content-type: application/json" -d '{"kind":"dataset","want":"Quarterly order backlog by segment","why":"Modeling revenue visibility","company":"ticker:BA","endpoint_or_tool":"/v1/company/kpis"}'

GET /v1/request-data/{id}

Follow a request by the request_id POST /v1/request-data returned: new, triaged, planned, done (with served_by, the endpoint or tool) or wontfix (with a public note), and the vote counts.

Example: GET https://api.financial.md/v1/request-data/0b8f6a52-6f0e-4a8e-9a43-3c0f6b2d1e11

ParameterInDescription
id (required)pathThe request_id POST /v1/request-data returned, or a demand item id
curl "https://api.financial.md/v1/request-data/0b8f6a52-6f0e-4a8e-9a43-3c0f6b2d1e11"

GET /v1/requested

Requested and shipped: the reviewed demand items with status, public note, served_by and vote counts, and counts per status. Aggregate only, no submitter details.

Example: GET https://api.financial.md/v1/requested

curl "https://api.financial.md/v1/requested"

GET /v1/me

For a keyed caller: principal, plan and remaining limits. Needs an API key; keys are not issued publicly yet.

Example: GET https://api.financial.md/v1/me

curl "https://api.financial.md/v1/me"
API 参考 · FinancialMD