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.
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.
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.
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.
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.
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.
| Endpoint | Description | Price |
|---|---|---|
| /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).
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
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())
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
$ 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.
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, ...}]}
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}]}
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, ...}, ...]}
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, ...}, ...]}
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/..."}]}
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}, ...]}
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}]}
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}, ...]}
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": ""}]}
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:
402 with
payment requirements: $ amount, USDC contract, our address, network (Base, eip155:8453).X-PAYMENT-RESPONSE header.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.
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).
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"}
}}}
Runs locally and pays each tool call from your wallet via x402 — no API key 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
// 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
}}}}
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.
revenue ← RevenueFromContractWithCustomerExcludingAssessedTax,
Revenues, SalesRevenueNet, ...), continuously expanded by breadth-of-use analysis./facts and excluded
from aggregates.score_basis reports what fraction of the 100-pt weight
was actually scored. A 60% floor exists as a safety net, but it currently excludes nobody —
the lowest score_basis in the published set is 70.close_date.XYZ-PD)
are excluded.exclude_foreign=false to include them.balance_sheet_estimated on the row.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.
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.
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.
/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.
Email help@multyplylabs.com for API keys, volume pricing, or custom datasets.
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 →