更新日志
API、MCP 服务和数据的变更,最新的在前。条目为英文。同样的列表另有 Markdown 版 https://api.financial.md/changelog 和 JSON 版 https://api.financial.md/changelog.json。
2026-11-13 · api: Per-call payment is open on agent.financial.md
- Priced routes on agent.financial.md take x402 payments in USDC on Base (eip155:8453). A priced route answers 402 with a PAYMENT-REQUIRED header; send the call again with PAYMENT-SIGNATURE.
- Prices are the sheet of 2026-11-12: standardized statements and ratios $0.005, verify $0.02, KPIs, segments and the screen $0.05. Every other route is free. pricing.json and the OpenAPI x-price carry them.
- A call that fails is not charged. The same signed payment sent again within 15 minutes gets the same answer without a second charge.
- api.financial.md stays free without a key, within the daily limits.
2026-11-13 · api: Requests are merged, voted on and tracked until they ship
- Similar requests merge into one demand item (by kind, company and concept); a repeat request is a vote. POST /v1/request-data answers with request_id, item_id, the item's status and its request and requester counts.
- GET /v1/request-data/{id} answers the status (new, triaged, planned, done or wontfix), our public note and, once done, the endpoint or tool that serves it. MCP tool request_status does the same (thirty-seven tools in all).
- Requested and shipped: https://financial.md/requested lists the items a person reviewed and titled, aggregate only, with the JSON feed GET /v1/requested. Nothing is listed automatically.
- People can request data or analysis from the terminal's form, the command palette, every empty or not-covered state and the footer. No email address is collected: follow a request by its id.
- Data that needs a licence is closed as wontfix with a note pointing to GET /v1/coverage; later requests for it still count as votes.
2026-11-13 · api: metric_alias replaces fiscal_alias
- Concept rows (GET /v1/company/metrics, statements, ratios) carry metric_alias: another id accepted wherever concept_id is. fiscal_alias is deprecated: it is still sent with the same value until the next release, then removed. The MCP output schemas follow.
2026-11-13 · api: 8-K news, full-text search, and a coverage map with clear not_covered answers
- GET /v1/news: 8-K filings across all companies, newest first, each with its items, event types, a headline and an importance from 1 to 5 (FinancialMD's rule by item number). Filter by event_type, importance_min, company and dates. Not wire news.
- GET /v1/company/events gains importance_min, and importance and headline on every filing.
- GET /v1/search/filings: keyword search across EDGAR documents since 2001 through SEC EDGAR full-text search, with FinancialMD ids for the companies on each document.
- GET /v1/coverage lists every dataset with its status. Licensed datasets (consensus estimates, analyst ratings, transcripts, real-time prices) and those not built or waiting on a decision answer 404 not_covered at their own path (/v1/company/estimates, /v1/company/analyst_ratings, /v1/company/transcripts, /v1/company/stock_prices/intraday, /v1/company/logo, /v1/politician_trades, /v1/fund_letters) with the reason and alternatives in error.details.
2026-11-13 · mcp: news, filing_search and coverage tools
- news: 8-K news across all companies with importance; filing_search: keyword search over EDGAR documents; coverage: what FinancialMD serves and does not (consensus estimates, transcripts, real-time prices and other licensed data are named as not covered, with alternatives). company_events takes importance_min.
2026-11-12 · api: Tell us what data you need
- POST /v1/request-data takes { kind, want, why?, company?, endpoint_or_tool? }: free, keyless, never charged, reviewed weekly. GET /v1/request-data describes the body.
- unknown_company, not_covered, unknown_concept, an unknown ratio and an unknown /v1/ route answer with a request_data remedy; an empty search or screen carries one in meta.remedies.
- A ticker= query parameter is read as company= when company= is absent. An unknown_company remedy names the directory search for the value.
- MCP tool request_data does the same from an agent.
2026-11-12 · api: One price sheet for the agent host (planned, not charged)
- Planned per-call prices on agent.financial.md: standardized statements and ratios $0.005 ($0.002 from a funded key), verify $0.02, KPIs, segments and the screen $0.05. Fields and the filing layer stay free.
- Every per-call x402 price is at least $0.005, and answers stay within the $1 default cap of x402 v2 clients. The sheet is in llms.txt, the OpenAPI x-price (with keyed_usd where it differs) and docs/API.md section 6.1.
- Nothing is charged today: per-call payment is not switched on.
2026-11-12 · api: Dividends with dates, total return, Form 3 holdings, fund types and fees
- GET /v1/company/dividend_events: cash dividends with declaration, record, ex and pay dates as filed and how each was captured; a missing ex-date is never inferred.
- GET /v1/company/stock_prices?adjust=total_return adds a dividend-adjusted series beside the split-adjusted one.
- GET /v1/company/ownership/insider_holdings serves Form 3, 4 and 5 holding lines; insider holders include them.
- GET /v1/fund/profile: a fund's type and ETF flag from N-CEN and each share class's prospectus fees (VOO 0.03 percent). N-PORT holders of a company take period= and read only the newest window.
- MCP tools dividends and fund_profile (thirty-two tools in all).
2026-11-12 · api: Company-reported metrics
- GET /v1/company/kpis serves adjusted (non-GAAP) measures and operating KPIs read from the companies' own earnings releases and reports, point in time, with a confidence label (high = printed identically in two or more places).
- Each value's proof resolves to its citation: accession, document, table, row and value index, character span, raw printed text and the GAAP reconciliation table. Values two documents print differently are withheld and never served.
- MCP tool company_kpis (thirty tools in all).
2026-11-12 · api: Delisted and inactive filers, employees, shares per class
- Profiles carry listing status (active, delisted with its date, inactive), business address, incorporation country, former names and filing dates from SEC submissions.
- GET /v1/screen covers active companies by default; status=delisted|inactive|all opts in.
- Profiles carry the newest head count at confidence 0.90 or more with its source sentence, and cover-page shares per share class, never summed.
2026-11-12 · api: Share classes, names, foreign filers and speed
- A ticker naming one share class (BRK-A) is served as that listing on prices and valuation, never swapped for another; meta.company.listing names it.
- Name search matches common and Chinese names of widely held companies; the MCP company_lookup falls back to a name search when a word is not a ticker.
- country is no longer US for foreign filers whose country is not stored (null, or CA for Canadian provinces); a missing fiscal year end comes from the latest annual report.
- Faster: filing lookups by accession, 13F holders and holdings, and screens (ten-minute universe window, warmed at its start).
2026-11-12 · api: Split-aware valuation, screening on multiples, capital ratios
- Valuation ratios put share counts on the close's basis with confirmed splits (share_adjustment on the value); only unexplained split-sized moves withhold a point.
- GET /v1/screen filters and sorts on market_cap, pe_ttm, ev_ebitda_ttm and the other valuation ids.
- net_interest_margin is renamed nii_to_avg_loans_securities: net interest income over average net loans plus securities, which is not a bank's reported NIM (docs/ratios.md). CET1, tier 1 and tier 1 leverage ratios as filed in XBRL.
- Proof ids of segment facts, N-PORT values and calendar events resolve at GET /proof/{id}. Listings OpenFIGI types as ADR are not priced.
- Segments carry the filer's exact period_start and period_end (the SEC data sets round dates to month ends), with period_exact and fsds_period_end.
2026-11-11 · api: Valuation ratios on IEX closes
- GET /v1/company/ratios adds market_cap, enterprise_value, pe_ttm, ps_ttm, pb, ev_ebitda_ttm, ev_ebit_ttm, fcf_yield and dividend_yield, priced at the last IEX close on or before each period end.
- GET /v1/company/ratios/daily/{ratio_id} serves a valuation ratio one point per session, each using the facts known that evening.
- Every valuation value lists the close's proof first in proof.inputs; GET /proof/{id} recomputes it. data.price_basis says which listing was used and why a company is not priced (several share classes, an ADR, no prices).
- Bank ratios (net_interest_margin, efficiency_ratio, loans_to_deposits) and insurer ratios (loss_ratio, acquisition_cost_ratio).
2026-11-11 · api: OAuth 2.1 for MCP connectors
- RFC 8414 metadata at /.well-known/oauth-authorization-server; dynamic client registration, Client ID Metadata Documents, PKCE (S256), refresh-token rotation, revocation.
- Tokens carry the keyless daily limits in an allowance of their own. No account, no payment.
- GET /v1/me reports key.audience, key.expires_at and tier.
2026-11-11 · api: Share-class tickers in any spelling
- BRK.B, BRK-B, BRK/B and brk-b resolve to one listing; a bare root such as BRK resolves to the company whose class listings it names.
2026-11-11 · mcp: Ten new tools and 26 skills
- New tools: ratios_daily, corporate_actions, events_calendar, company_events, segments, insider_holders, fund_holders, fund_holdings, identifiers, filing_document (twenty-nine in all); stock_prices takes adjust "splits".
- 26 task skills under /skills/, all of them in one /skills.zip.
2026-11-11 · api: Splits, dividends, calendar, 8-K events, segments, insider holders, funds, identifiers
- New routes: /v1/company/splits, /v1/company/dividends, /v1/events_calendar, /v1/company/events, /v1/company/segments, /v1/company/ownership/insider_holders, /v1/company/ownership/funds, /v1/funds, /v1/fund/holdings, /v1/company/identifiers.
- GET /v1/company/stock_prices?adjust=splits adds split-adjusted values (confirmed splits only).
2026-11-11 · api: Filing documents; derivation in proofs
- GET /v1/filing/{accession}/document links a filing's EDGAR pages; format=html serves the primary document.
- Proofs of derived values (Q4, LTM, formula lines) list every as-reported fact with its weight and a sum check.
- GET /v1/company/metrics lists the concepts each template shows, so a bank's list matches its statements.
2026-11-11 · docs: Reference pages
- Swagger UI at /docs, the whole reference in one file at /llms-full.txt, and this changelog at /changelog.
2026-11-10 · api: Daily prices from IEX
- GET /v1/company/stock_prices serves daily bars built from trades at IEX only, with the venue's citation in meta.attribution and a proof per number.
2026-11-10 · api: Ownership
- Insider transactions (Forms 3, 4, 5), institutional holders of a company and a manager's holdings (Form 13F), with proofs back to each form.
2026-11-10 · api: Classification
- Profiles say where sector and industry come from: the filer's SIC code in its EDGAR submissions document.
2026-11-09 · api: Screen, filing facts and the supplemental statement
- GET /v1/screen filters and sorts every covered company on latest-period metrics.
- GET /v1/filing/{accession}/facts returns every mapped fact a filing tagged, by statement.
- Share counts and per-share figures in /v1/company/financials/supplemental/standardized; sector and industry on company lists.
2026-11-08 · api: Version 1
- Standardized and as-reported statements with proofs, point-in-time reads (as_of, original, history), ratios, verify, proofs, the changes feed, and the discovery files.