Normalized SEC financial data,
priced per call, built for agents.

Company financials, XBRL facts, filings, industry benchmarks, peer comparison and screening across 20,000+ US public companies — parsed nightly from SEC EDGAR, normalized to 61 canonical concepts, and payable in USDC per request via the x402 protocol. No signup. No API key required. Your agent pays $0.005–$0.25 and gets JSON back.

x402 USDC on Base 20,057 companies 123M+ facts 61 canonical concepts Nightly EDGAR refresh ~10 min new-filing latency

Why this API

Answers, not raw filings

Raw EDGAR XBRL is messy: thousands of overlapping tags, custom extensions, comparative-period traps. We map it all to a canonical concept set with data-quality flags, so "revenue" means revenue — for every company, every year.

Aggregates & curated insights

The only per-call API selling industry benchmark percentiles and pre-built market analyses: sector margin medians, biggest margin movers, the R&D spend arms race, buyback-vs-dividend mix — one GET request each, catalog at /insights.

Agent-native payments

HTTP 402 + x402: your agent discovers the price, signs a USDC payment, and gets data — one round trip, no account, no key management, no subscription. Human? Use an API key instead.

Today's Buffett Quality leaders

Top 20 companies by Quality Score (0–100, blending return on invested capital, durability through the cycle, cash conversion, balance-sheet strength and capital discipline over a 10-year window; ties broken by revenue), recomputed every night from the latest SEC filings. Live from /spotlight — free.

Loading latest rankings…

A dash (–) means that component had no usable data for the company and was dropped, with the remaining weights renormalized — not a zero.

Endpoints

All endpoints are GET and return JSON. Companies are identified by SEC CIK number (free lookup: /company/lookup?q=AAPL): Apple=320193, Microsoft=789019, NVIDIA=1045810, Amazon=1018724, Alphabet=1652044, Tesla=1318605.

EndpointDescriptionPrice
/company/lookup Find a company's CIK from its ticker, CIK or name, with no API key or payment. Best match first: exact ticker, exact CIK, name prefix, name contains, with companies that have tickers ahead of other filers (individuals, funds) in each. Returns cik, name, tickers, sic, sic_description. Params: q, limit (default 10, max 25) free
/company/{cik}/financials Annual financial statements per fiscal year: revenue, gross profit, operating & net income, full balance sheet, cash flow statement, and derived ratios (gross_margin, operating_margin, net_margin, rd_intensity, fcf, current_ratio, debt_to_equity, roa, roe). Params: fy_from, fy_to $0.02
/company/{cik}/facts Every normalized XBRL fact with filing provenance (form, accession, filed date), period, unit and quality flags. Params: concept, fy_from, fy_to, limit $0.01
/company/{cik}/filings Filing index with direct sec.gov document URLs — 10-K, 10-Q, 8-K, Form 4 insider trades, S-1 and every other form type, updated within ~10 minutes of EDGAR acceptance. Params: form, limit $0.005
/aggregate/{metric} Industry benchmark percentiles (p10 / p25 / median / p75 / p90, mean, n) for any metric, by 2-digit SIC industry group and revenue size bucket (micro / small / mid / large / mega). Params: industry, size, fy $0.05
/compare/{cik} One company's metrics side-by-side with its industry cohort percentiles — instantly see if margins, returns or leverage are above or below sector norms. Params: fy $0.05
/screen Screener over all companies: pass a JSON list of [metric, op, value] filters, get matching companies with names, tickers, industries and metrics. Params: fy, filters, limit $0.10
/insight/{name} Curated market-wide analyses computed live over all companies — top_companies (rank by any metric, optionally per industry), movers (biggest metric changes between two years), sector_landscape (margin medians per industry), metric_trend (yearly aggregate time series), capital_returns (buybacks vs dividends by size), filing_velocity (monthly filing counts). Free parameter catalog at /insights. $0.15
/insight/buffett_scan Quality Score — rank companies 0–100 over a 10-year window: return on invested capital (30, blended 60/40 with the company's industry percentile), durability through the cycle (20), cash conversion (20), balance-sheet strength (15) and capital discipline (15). Every component is explainable from the returned row; companies that stopped filing (4,313), have fewer than five fiscal years on file (1,702), lack the tags to measure returns on capital in enough of those years — missing EBIT tags, or an unclassified balance sheet, common among homebuilders and industrials with captive finance arms (1,612) — or are balance-sheet financials (banks, insurers, REITs; 1,539) are not scored: 2,885 of 12,051 companies (roughly a quarter of all filers, ~37% of active ones) are scored today. Params: fy (optional, defaults to the published fiscal year), min_score, min_revenue, industry, exclude_foreign (default true), limit. Methodology v3; heuristic screen, not investment advice. $0.25
/insight/piotroski · /insight/altman_z
/insight/beneish_m · /insight/magic_formula
/insight/accruals
Industry-standard scores — peer-reviewed formulas computed across all companies: Piotroski F-Score (0–9 quality), Altman Z-Score (bankruptcy/ distress zones), Beneish M-Score (accounting-quality signal), Greenblatt Magic Formula (earnings-yield + ROC rank), and the Sloan accrual ratio (earnings quality). Each is a named, cited metric — not a black box. Screening heuristics, not investment advice. $0.15
/insight/buffett_value Buffett Value Scan — the Quality Score (see buffett_scan) fused with previous-close valuation: market cap, FCF yield, owner-earnings yield, P/E, and a 10-year owner-earnings DCF with margin of safety. Find quality companies trading below intrinsic value; combined_score averages quality and value. Params: fy (optional, defaults to the published fiscal year), min_score, min_margin_of_safety, min_revenue, industry, exclude_foreign (default true), limit. Methodology v3; heuristic screen, not investment advice. $0.25
/company/{cik}/signal
/insight/top_signals
Composite factor scorecard — five independent evidence sources fused into 0–100 scores: quality (Piotroski, Altman, accruals), value (owner-earnings DCF margin of safety), insider conviction (Form 4 open-market buying as bps of market cap), institutional positioning (13F holder change + ownership %), and short sentiment (FINRA short-volume percentile within industry). Carries cross-dataset metrics available nowhere else — institutional ownership %, insider buy intensity, short-to-ADV — plus governance flags (Form 4 filing latency, Item 4.02 restatements, stale fundamentals). Scored on available factors and renormalized, with a coverage figure so thin results are visible. Factor weights are caller-overridable. Research signal, not investment advice. $0.05
$0.25
/company/{cik}/insider
/company/{cik}/institutional
/company/{cik}/short
Market signals per company — insider (Form 4 open-market buys vs sales, distinct buyers, net dollar value, 10b5-1 flags), institutional (13F holder count, aggregate shares/value, quarter-over-quarter accumulate/trim; 45-day lag), and short (FINRA daily short-volume ratio over ~20 trading days — a bearish-sentiment proxy; daily short-sale volume, not bi-monthly short interest / float). Not investment advice. $0.02
/insight/insider_buying
/insight/institutional_accumulation
/insight/heavy_shorting
Market-wide signal screens — companies with the strongest recent insider cluster buying, the fastest 13F institutional accumulation, and the heaviest short-selling pressure. Smart-money and sentiment positioning across the whole universe. Not investment advice. $0.15
/catalog · /llms.txt · /health · /insights Machine-readable catalog, agent documentation, health — plus /.well-known/x402.json and interactive OpenAPI docs. free

Available metrics for /aggregate and /screen: revenue, cost_of_revenue, gross_profit, operating_income, net_income, operating_cash_flow, investing_cash_flow, financing_cash_flow, fcf, capex, research_development, sga_expense, total_assets, total_liabilities, stockholders_equity, retained_earnings, long_term_debt, cash_and_equivalents, inventory, operating_lease_liability, gross_margin, operating_margin, net_margin, rd_intensity, current_ratio, debt_to_equity, roa, roe — and more (see /llms.txt).

Quickstart

1. See the price (any HTTP client)

Unpaid requests return HTTP 402 with x402 v2 payment requirements in the PAYMENT-REQUIRED header — including input/output schemas and worked examples for every route.

$ curl -i https://sec.multyplylabs.com/company/320193/financials

HTTP/2 402
payment-required: eyJ4NDAyVmVyc2lvbiI6Mi...   # base64: scheme, network, amount, payTo, schemas

2. Pay per call — Python

pip install "x402[evm]" eth-account
import asyncio
from eth_account import Account
from x402.client import x402Client
from x402.http.clients.httpx import x402HttpxClient
from x402.mechanisms.evm import EthAccountSigner
from x402.mechanisms.evm.exact import ExactEvmClientScheme

account = Account.from_key("0x...")          # wallet holding USDC on Base
client = x402Client()
client.register("eip155:8453", ExactEvmClientScheme(EthAccountSigner(account)))

async def main():
    async with x402HttpxClient(client) as http:
        r = await http.get(
            "https://sec.multyplylabs.com/company/320193/financials?fy_from=2023")
        print(r.status_code)                  # 200 — paid $0.02 automatically
        print((await r.aread()).decode()[:200])

asyncio.run(main())

2′. Pay per call — TypeScript

npm install x402-fetch viem
import { privateKeyToAccount } from "viem/accounts";
import { wrapFetchWithPayment } from "x402-fetch";

const account = privateKeyToAccount("0x...");     // USDC on Base
const fetchWithPay = wrapFetchWithPayment(fetch, account);

const res = await fetchWithPay(
  "https://sec.multyplylabs.com/aggregate/gross_margin?industry=73&size=mega&fy=2025");
console.log(await res.json());                     // paid $0.05 automatically

3. Or use an API key (prepaid / fiat customers)

$ curl -H "X-API-Key: YOUR_KEY" \
    "https://sec.multyplylabs.com/company/320193/financials?fy_from=2024"

Want an API key with volume pricing? Email help@multyplylabs.com.

Worked examples

Apple's financials (real response, abridged)

GET /company/320193/financials?fy_from=2025

{"cik": 320193, "years": [{
  "fiscal_year": 2025,
  "revenue": 416161000000.0,
  "gross_profit": 195201000000.0,
  "operating_income": 133050000000.0,
  "net_income": 112010000000.0,
  "eps_diluted": 7.46,
  "total_assets": 359241000000.0,
  "stockholders_equity": 73733000000.0,
  "operating_cash_flow": 111482000000.0,
  "capex": 12715000000.0,
  "fcf": 98767000000.0,
  "gross_margin": 0.4690,
  "operating_margin": 0.3197,
  "net_margin": 0.2691,
  "rd_intensity": 0.0830,
  "roe": 1.5191, ...}]}

Industry benchmarks: software gross margins

GET /aggregate/gross_margin?industry=73&size=mega&fy=2025

{"metric": "gross_margin", "cohorts": [{
  "industry_group": "73", "size_bucket": "mega", "fiscal_year": 2025,
  "p10": 0.41, "p25": 0.55, "median": 0.67, "p75": 0.78, "p90": 0.85,
  "mean": 0.66, "n": 42}]}

Screening: profitable large caps

GET /screen?fy=2025&filters=[["operating_margin",">",0.25],["revenue",">",10000000000]]

{"fiscal_year": 2025, "count": 87, "companies": [
  {"cik": 320193, "name": "Apple Inc.", "tickers": ["AAPL"],
   "revenue": 416161000000.0, "operating_margin": 0.3197, ...}, ...]}

Peer comparison

GET /compare/1065280?fy=2025          # Netflix vs its industry cohort

{"company": {"name": "NETFLIX INC", "gross_margin": 0.489, ...},
 "cohort_percentiles": [
   {"metric": "gross_margin", "median": 0.41, "p75": 0.58, ...}, ...]}

Fresh filings with document links

GET /company/320193/filings?form=10-K&limit=1

{"cik": 320193, "filings": [{
  "form": "10-K", "filed": "2025-11-01",
  "document_url": "https://www.sec.gov/Archives/edgar/data/320193/..."}]}

Curated insights: who improved margins the most?

GET /insight/movers?metric=gross_margin&fy_from=2023&fy_to=2025&min_revenue=1000000000

{"insight": "movers", "count": 20, "results": [
  {"name": "Example Corp", "tickers": ["EXMP"],
   "start_value": 0.31, "end_value": 0.47, "delta": 0.16}, ...]}

Curated insights: the R&D arms race

GET /insight/metric_trend?metric=research_development&agg=sum&fy_from=2015&fy_to=2025

{"insight": "metric_trend", "results": [
  {"fiscal_year": 2015, "value": 271.4e9, "companies_reporting": 3211},
  ...
  {"fiscal_year": 2025, "value": 702.9e9, "companies_reporting": 4187}]}

Quality Score: durable, capital-efficient businesses

GET /insight/buffett_scan?min_score=70&min_revenue=1000000000&limit=10

{"insight": "buffett_scan", "count": 10, "results": [{
  "name": "Example Corp", "tickers": ["EXMP"], "fiscal_year": 2025,
  "buffett_score": 87.9,
  "score_return_on_capital": 24.82,   // of 30: 10y median ROIC blended with industry percentile
  "score_durability": 20.0,           // of 20: worst-year ROIC, margin stability, revenue declines
  "score_cash_conversion": 20.0,      // of 20: FCF vs net income, FCF margin
  "score_balance_sheet": 9.86,        // of 15: net debt / EBIT, interest coverage
  "score_capital_discipline": null,   // of 15: no data here -- dropped and renormalized, not zeroed
  "score_basis": 85,                  // % of the 100-pt weight actually scored (coverage * 100)
  "roic_median": 0.1573, "roic_worst_year": 0.1471,
  "industry_percentile": 1.0, "peer_group_size": 12,
  "window_years": 10, "coverage": 0.85, "methodology_version": 3,
  "flags": [], "revenue": 56164630077.0}, ...]}

Raw normalized facts with provenance

GET /company/320193/facts?concept=revenue&fy_from=2023

{"cik": 320193, "facts": [{
  "concept": "revenue",
  "concept_raw": "RevenueFromContractWithCustomerExcludingAssessedTax",
  "value": 416161000000.0, "unit": "USD",
  "fiscal_year": 2025, "fiscal_period": "FY",
  "form": "10-K", "filed": "2025-11-01", "quality_flags": ""}]}

How payment works (x402)

x402 is the open protocol — stewarded by the Linux Foundation, backed by Coinbase, Cloudflare, Google, Visa and Mastercard — that turns HTTP 402 into a working payment flow for machines:

Client libraries handle all of this automatically — x402 SDKs exist for Python, TypeScript, Go and Rust. All you need is a wallet holding USDC on Base. Payments are final (no chargebacks); repeated identical requests are your responsibility to de-duplicate.

MCP server — plug into Claude, Cursor, or any MCP client

Give your AI assistant direct, self-paying access to SEC data. Tools: lookup_company (free ticker or name to CIK), company_financials, company_facts, company_filings, industry_aggregate, screen_companies, compare_to_peers, market_insight, buffett_scan, buffett_value, standard_score, insider_activity, institutional_ownership, short_pressure, company_signal, top_signals, and list_insights (free catalog).

Option A — Hosted endpoint (no install)

Point any MCP client at https://sec.multyplylabs.com/mcp (Streamable HTTP) and pass your API key as an X-API-Key header. Free tools (lookup_company, list_insights) work without a key; paid tools return payment guidance.

// Claude Desktop / Cursor / Cline
{"mcpServers": {"sec-data": {
  "url": "https://sec.multyplylabs.com/mcp",
  "headers": {"X-API-Key": "YOUR_KEY"}
}}}

Option B — Self-paying stdio server (pays per call in USDC)

Runs locally and pays each tool call from your wallet via x402 — no API key needed.

1. Download the server (single file, no package needed)

mkdir -p ~/mcp && curl -o ~/mcp/sec_data_server.py https://sec.multyplylabs.com/mcp-server.py
pip install "mcp>=1.10,<2" "x402[evm]" eth-account httpx

2. Add it to your MCP client

// Claude Desktop: ~/Library/Application Support/Claude/claude_desktop_config.json
// (Cursor, Cline, etc. use the same shape)
{"mcpServers": {"sec-data": {
  "command": "python3",
  "args": ["/Users/YOU/mcp/sec_data_server.py"],
  "env": {
    "SECPLATFORM_URL": "https://sec.multyplylabs.com",
    "BUYER_PRIVATE_KEY": "0x..."        // wallet with USDC on Base — pays per tool call
    // or instead: "SEC_PLATFORM_API_KEY": "..." for prepaid access
  }}}}

3. Restart your client and ask a question

Then ask: "How does NVIDIA's R&D intensity compare to other mega-cap semiconductor companies?" — the agent calls compare_to_peers and industry_aggregate, pays a few cents in USDC, and answers with sourced numbers.

Data & methodology

Source and freshness

Normalization (what you're paying for)

Quality Score (methodology v3)

Valuation (Buffett Value Scan)

Data is derived from public-domain SEC filings. Scores are heuristics inspired by Buffett's published writing — they are not Buffett's method, not a recommendation, and not investment advice. Prices are sourced from public EOD feeds and may contain errors.

FAQ

How do I find a company's CIK?

Call the free /company/lookup?q=AAPL with a ticker or company name (MCP: lookup_company), query /screen by criteria and read CIKs from results, or use the SEC's company search. Common ones: Apple 320193 · Microsoft 789019 · Amazon 1018724 · Alphabet 1652044 · Meta 1326801 · Tesla 1318605 · NVIDIA 1045810 · Netflix 1065280 · JPMorgan 19617 · Berkshire 1067983.

What do I need to pay with x402?

A wallet private key holding USDC on Base (the buyer needs no ETH — transfers are authorized off-chain and the facilitator pays gas). $1 covers 10–200 calls depending on endpoint.

Can I get quarterly data?

/facts includes quarterly (10-Q) facts today — filter by fiscal_period in the response. Clean quarterly statements and point-in-time snapshots are on the roadmap.

Do you have an SLA / higher rate limits / bulk pricing?

Email help@multyplylabs.com for API keys, volume pricing, or custom datasets.

Where else can my agent discover this service?

We're indexed in the Agentic Market / x402 Bazaar (via the Coinbase CDP facilitator) with machine-readable schemas in every 402 response, plus /llms.txt and /.well-known/x402.json.

Explore the interactive API reference →