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 3 companies by Buffett Quality Score (ties broken by revenue), recomputed every night from the latest SEC filings. Live from /spotlight — free.
Loading latest rankings…
All endpoints are GET and return JSON. Companies are identified by SEC CIK number (lookup): Apple=320193, Microsoft=789019, NVIDIA=1045810, Amazon=1018724, Alphabet=1652044, Tesla=1318605.
| Endpoint | Description | Price |
|---|---|---|
| /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 | Buffett Quality Score — rank companies 0–100 on value-investing fundamentals over a
5-year window: owner earnings (net income + D&A − capex), ROE consistency at the 15% bar,
balance-sheet safety (liabilities/equity), and FCF quality. Per-pillar breakdown included;
financial-sector and short-history results flagged.
Params: fy, min_score, min_revenue, industry,
exclude_foreign (default true), limit.
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 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, min_score, min_margin_of_safety,
min_revenue, industry, exclude_foreign (default true),
limit. 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?fy=2025&min_score=70&min_revenue=1000000000&limit=10
{"insight": "buffett_scan", "count": 10, "results": [{
"name": "Example Corp", "tickers": ["EXMP"],
"buffett_score": 85,
"score_owner_earnings": 25, // OE positive, ≥90% cash conversion, growing
"score_roe_consistency": 27, // 5y avg ROE 31%, 4 of 5 years ≥15%
"score_debt_safety": 20, // liabilities/equity 0.42
"score_fcf_quality": 13,
"owner_earnings": 8123000000.0,
"avg_roe_5y": 0.31, "liabilities_to_equity": 0.42,
"history_years": 5, "flags": ""}, ...]}
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. Nine tools:
company_financials, company_facts, company_filings,
industry_aggregate, screen_companies, compare_to_peers, buffett_scan, buffett_value, market_insight, 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 (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 "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.close_date.XYZ-PD)
are excluded.exclude_foreign=false to include them.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.
Use the SEC's
company search, or query /screen and read CIKs from results. 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 →