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.
5 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 |
/insider/codes | The three SEC ownership form types (3, 4, 5) and every Form 3/4/5 transaction code in plain language, including which represent an open-market decision. Only P is a purchase and only S is a sale; F is shares withheld or delivered to satisfy an exercise cost or a tax liability; M is an option exercise or conversion; A is a grant. No parameters, no corpus read. | Free |
/insider/latest | The newest Form 3, 4 and 5 rows across every issuer and insider, capped at 20, with no filters — the free preview of the corpus. Every filter that narrows this lives on a paid capability below. | Free |
/metrics | Canonical metric vocabulary and derived ratio definitions. | Free |
/concept | Time series for one normalized metric with the resolved XBRL tag. | $0.04 |
/insider/issuer | One company's insider transactions and holdings, selected by ticker, newest first. Direction is read from the filing's own acquired/disposed flag, never inferred from the transaction code. Optional date range, transaction code and direction filters. | $0.04 |
/financials | Normalized metric set for one filer with derived ratios and resolved tags. | $0.05 |
/insider/person | One insider's profile by SEC owner CIK: every issuer and role held, the position series per security, and a realized-proceeds ledger counting open-market sales only, with every excluded transaction itemized and why it was excluded. | $0.05 |
/compare | One metric across several filers with fiscal periods aligned. | $0.10 |
/insider/people | The same filters as the transaction screen, aggregated the other way: one row per person, ranked by realized proceeds in the window. Returns people, not transactions. | $0.10 |
/insider/screen | Insider transaction rows across every issuer at once, filtered by date range, transaction code, direction, minimum stated value, role and Rule 10b5-1 status. Paginated, one row per transaction. | $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"
);