Normalized company filings and fundamentals data: divergent upstream accounting tags are resolved to a stable metric vocabulary, fiscal periods are aligned across filers with different year ends, margins and period-over-period changes are computed, and the tag that resolved each figure is reported back, so a consumer gets directly comparable numbers without writing per-filer parsing code.
3 of these are free. Identify a company and see what it has filed at no cost; you pay only when you ask for analysis.
| Endpoint | What it returns | Price |
|---|---|---|
/cik | SIC industry code, exchanges and fiscal year end. | Free |
/filings | Recent EDGAR filings, optionally filtered by form type. | Free |
/metrics | Canonical metric vocabulary and derived ratio definitions. | Free |
/concept | Time series for one normalized metric with the resolved XBRL tag. | $0.04 |
/financials | Normalized metric set for one filer with derived ratios and resolved tags. | $0.05 |
/compare | One metric across several filers with fiscal periods aligned. | $0.10 |
Settled in USDC on eip155:8453. No account, no
subscription, no API key. Prices here are generated from the live registry; the
authoritative machine-readable copy is
/.well-known/x402.
/cik is free. No payment, no account, no key — it
answers 200 straight away, so you can see the data shape before
deciding whether the paid routes are worth it:
curl -s "https://api.toolfeeds.com/sec-edgar/cik?ticker=AAPL"
An unpaid request returns 402 with the price and the address to
pay, so you can inspect the terms before spending anything:
curl -i "https://api.toolfeeds.com/sec-edgar/concept?ticker=AAPL"
A client that speaks x402 signs the quote and retries automatically:
import { wrapFetchWithPayment, x402Client } from "@x402/fetch";
import { toClientEvmSigner, ExactEvmScheme } from "@x402/evm";
import { privateKeyToAccount } from "viem/accounts";
const signer = toClientEvmSigner(privateKeyToAccount(PRIVATE_KEY));
const client = new x402Client();
client.register("eip155:8453", new ExactEvmScheme(signer));
const res = await wrapFetchWithPayment(fetch, client)(
"https://api.toolfeeds.com/sec-edgar/concept?ticker=AAPL"
);