Every SEC number, traced to the printed line.
Search returns the line. Trace opens it. Verify checks your number against it. One API, one MCP.
Free tier: 500 requests a day. No card.
# one call, one receipt
curl "https://api.filingstudio.com/v1/search?ticker=NVDA&q=revenue&type=rows" \
-H "X-API-Key: $KEY"
{ "data": [ {
"kind": "cell",
"label": "Revenue",
"printedText": "215,938",
"period": "Jan 25, 2026",
"traceId": "NVDA|1045810-26-21|p20|3|2|v10",
"links": { "highlight": "https://filingstudio.com/source?trace=…" }
} ],
"provenance": { … }, "pagination": { … } }
curlPythonTypeScriptReactMCP
8,804tickers
173,119filings
359Mprinted cells
18.6Mtables
Sep 9, 2026latest filed
The trace
What a trace id opens
The filing, scrolled to the row, with the cell marked. Same handle next year.
NVDA|1045810-26-21|p20|3|2|v10
│ │ │ │ │ └ version
│ │ │ │ └ column
│ │ │ └ row
│ │ └ table 20
│ └ accession 0001045810-26-000021
└ ticker

The API
Six endpoints.
GET
/v1/searchRows, tables and prose for a ticker.GET
/v1/filings/{ticker}The filings we have for a ticker.GET
/v1/tables/{ticker}/{accession}/{tableId}One table. Grid, records or CSV.GET
/v1/trace/{traceId}The printed line behind a value.POST
/v1/verifyYour number in. Supported, unsupported, or not found.GET
/v1/coverageWhat we have for a ticker.SDK
React pieces.
<ProvenanceProvider>
Mount once. Points at your proxy route.
<Citation>
Wrap a number. Click opens the receipt.
<FilingSearch>
Search one company’s filings.
<FilingViewer>
The filing, in your page.
useVerify()
Check a number. Get a verdict.
<VerifyBadge>
The verdict, rendered.
<ReceiptDrawer>
The receipt, as a drawer.
@filingstudio/proxy
Holds your key on the server.
npm i @filingstudio/react @filingstudio/proxy
<ProvenanceProvider proxy="/api/filings">
Data Center revenue was
<Citation ticker="NVDA" traceId="NVDA|1045810-26-75|pbp238|…">
$89.0B
</Citation>
</ProvenanceProvider>
# clients
pip install filingstudio # FilingStudio, AsyncFilingStudio
npm i @filingstudio/client # FilingStudio, RateLimitError
MCP
For Claude, Cursor and Codex.
One URL. Your key is in the path.
search_tablesfind tables across a filer’s filings by plain wordsfind_in_filingCtrl-F over one filing’s printed tablessearch_prose_factsnumbers printed as prose: press releases, MD&Aget_printed_tableone whole table as a compact gridget_rowsrows from one table by printed labelget_tracewhat a trace id points tolabel_historyone printed line across past filingslist_filingsthe issuer’s recent filings# claude.ai › Settings › Connectors › Add
https://api.filingstudio.com/mcp/fsk_your_key
# cursor / codex
{ "mcpServers": { "filingstudio": {
"url": "https://api.filingstudio.com/mcp/fsk_your_key"
} } }
Pricing