Filing Research API
v1 · read-only · JSON
SEC filings as data, with the receipts.
The filer's printed text, never interpreted. Every value carries a
traceId and a link that opens the filing and highlights the line.
Base https://api.filingstudio.com · auth
X-API-Key header or ?key= ·
docs · health
copy
export KEY="your-api-key" ; export API="https://api.filingstudio.com"
# every "revenue" figure covering FY2020 — including comparatives in later filings
curl "$API/v1/rows/search?ticker=FDX&q=revenue&period=2020&limit=5" -H "X-API-Key: $KEY"
# a whole table, flat + dataframe-ready
curl "$API/v1/tables/FDX/0000950170-22-012762/primary:83?format=records" -H "X-API-Key: $KEY"
Search
/v1/search prose + rows + tables, one call
/v1/rows/search printed figures by keyword
/v1/prose/search full-text over disclosures
/v1/tables/search find tables, one hit per table
Filters on all: period (year the data covers — not filed year),
forms, start_date/end_date, source,
limit/offset.
Tables
/v1/tables/{t}/{acc}/{id} full table · ?format=grid|records|csv
/v1/tables/{t}/{acc}/{id}/xlsx Excel download
/v1/tables/{t}/{acc}/{id}/periods its printed period headers
/v1/tables/{t}/{acc}/{id}/same-in find it in other filings
Discover
/v1/tickers what's indexed, with counts + span
/v1/filings/{ticker} filing browser · ?year= forms=
/v1/filings/{t}/{acc} one filing's card + doors
/v1/filings/{t}/{acc}/tables every table in the filing
/v1/filings/{t}/{acc}/prose the full filing text, in order
/v1/filings/{t}/{acc}/exhibits exhibits carrying tables
/v1/history filings list · ?forms= start_date=
/v1/forms which filing types exist
/v1/periods years the data covers
Vocabulary — how this filer actually words things
/v1/labels autocomplete over row captions
/v1/labels/variants every caption containing q
/v1/labels/history one line across every filing
/v1/headings distinct table headings
/v1/statements pl / bs / cf candidates per filing
Provenance & ops
/v1/trace ?id= any traceId → the printed line
/v1/find locate a value/label in a filing
/v1/status index freshness + totals
/v1/changes ?since= filings indexed since a timestamp
Rules: values are printed literals (parens = negative), never rescaled —
units is the filer's own scale line. Matching is literal; no synonyms, no
normalization. Errors are plain: 400 bad input, 401 bad key, 404 not found.
Demo ticker: FDX.