Documentation Blog Free tools [email protected]Log in

SEC EDGAR API

SEC EDGAR is a full-text search and a submissions feed, but the useful data is trapped behind a User-Agent contract, a CIK zero-padding rule and two different response shapes for search versus company mode. This endpoint returns filings as rows — company, CIK, form type, filing date, description and a direct document link — whether you searched the full text of every filing by keyword or asked for one company's history by ticker.

$0.0005 per delivered filing · $2 free every month · Failed runs never billed

POST /v1/scraper/collectors/sec_filings/run
$ curl $QD/sec_filings/run \
    -H "Authorization: Bearer $QD_API_KEY" \
    -d '{"query": "artificial intelligence risk factors", "forms": "10-K", "max_results": 20}'
{ "status": "done", "count": 20,
  "results": [
    {
      "company": "…",
      "cik": "…",
      "form": "…",
      "filed_date": "…" } ],
  "cost": 0.01 }
# 20 filings × $0.0005 · nothing delivered, nothing charged
$0.0005 / filing4,000 filings on the free $2 every month
Semantic inputquery, ticker, cik — no URL lists
Up to 100filings per run, pagination handled for you
No browserread over HTTP/TLS — cheaper and faster than rendering

What a SEC EDGAR API does

EDGAR exposes two surfaces that answer different questions. Full-text search scans the body of every 10-K, 8-K or S-1 for a phrase and returns the matching documents; company mode takes a ticker, resolves it to the numeric CIK and lists that filer's recent submissions. Both come back here as the same flat row shape, with the filing URL already assembled from the accession number so you never build the path yourself.

The reason not to hit EDGAR directly is the ritual around it: a descriptive User-Agent is mandatory, requests are capped per second, and CIKs must be zero-padded to ten digits in some calls and passed bare in others while the two modes disagree on field names. Resolving a ticker to a CIK, honouring the cap and normalising both responses into one schema is the part that turns "an afternoon" into a column in your dataset.

What one filing looks like

Every delivered filing carries these fields. Nullable means the source did not publish it — the field stays empty instead of being guessed.

FieldTypeWhat it holds
rankinteger1-based position.
companystring · nullableFiler name.
cikstring · nullableSEC CIK.
formstring · nullableForm type (10-K, 8-K…).
filed_datestring · nullableFiling date.
report_datestring · nullablePeriod of report (company mode).
file_typestring · nullableDocument type (search mode).
descriptionstring · nullableDocument description (search mode).
accessionstring · nullableAccession number.
is_xbrlboolean · nullableWhether the filing has XBRL data (company mode).
urlstring · nullableDirect link to the filing document.

Inputs

The whole request. Anything you leave out falls back to the default shown in the catalog.

InputTypeRequiredWhat it does
querystringnoFull-text search across all filings. Use this OR ticker/cik.
tickerstringnoCompany ticker — resolved to its CIK. Use with company mode.
cikstringnoSEC Central Index Key (numeric). Alternative to ticker.
formsstringnoFilter to a form type, e.g. 10-K, 8-K, S-1.
max_resultsintegernoHow many filings to deliver at most (1–100). You pay only for delivered filings.

Pricing

SEC EDGAR API pricing

$0.0005 per delivered filing. A run that delivers nothing costs nothing: blocked pages, challenges and retries are on us, and the $2 monthly allowance covers about 4,000 filings before you spend anything.

$0.0005per delivered filing$0.5 per 1,000 delivered filings
4,000 filingson the free allowance$2 every month, no card
Zero rowszero chargeblocks, captchas and retries are on us
−30%on volume tiersthe catalog returns your key's price

Pay as you go

$0/mo
  • $2 free credit / month
  • 60 requests / min
  • List unit prices

Starter

$19/mo
  • $15 free credit / month
  • 300 requests / min
  • 10% off unit prices

Scale

$299/mo
  • $250 free credit / month
  • 1,200 requests / min
  • 30% off unit prices

Same wallet, same key and same $2 monthly allowance as every other Data API. Prices are launch pricing read live from the billing config — GET /v1/scraper/collectors returns the price your key actually pays.

Integration

One POST, typed rows

Base URL https://api.quanticdata.io/v1, Bearer auth, the same key as every other Data API. Endpoint: POST /v1/scraper/collectors/sec_filings/run.

curl -X POST https://api.quanticdata.io/v1/scraper/collectors/sec_filings/run \
  -H "Authorization: Bearer $QD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query":"artificial intelligence risk factors","forms":"10-K","max_results":20}'

What people build with the SEC EDGAR API

Three shapes of work this endpoint was designed around.

Filing monitors

Poll one company by ticker for new 8-Ks and each event filing arrives with its form type, date and document URL, ready to diff against yesterday's pull.

Disclosure text mining

Full-text search returns the documents that mention a phrase — "artificial intelligence risk factors", a supplier name, a going-concern clause — as rows to feed a model rather than a results page to scrape.

Entity-linked finance datasets

Every row carries the CIK, the stable key that joins a filing back to the company across price data, ownership records and your own tables.

SEC EDGAR API versus rolling your own

The differences that actually cost time when you build this in-house.

DIY scraperThis collector
Company lookupZero-pad the CIK, guess the submissions URLPass a ticker; the CIK is resolved for you
Two query modesTwo endpoints, two response shapesFull-text and company history in one row schema
Document linkRebuild it from the accession numberDirect filing URL on every row

FAQ

Questions we get about the SEC EDGAR API.

Something else? Ask us →

Do I need to send a User-Agent or back off from a rate limit?

EDGAR requires a descriptive User-Agent on every request and caps requests per second. Both are handled on our side, so you send a ticker or a query and get rows back — no header to set and no throttle to manage.

Can I search the full text of filings, or only list a company's filings?

Both. Send query to search the body of every filing for a phrase, or send ticker/cik to get one filer's recent submissions. The two modes return the same fields, differing only where the source does — report_date and is_xbrl in company mode, file_type and description in search mode.

How do I go from a stock ticker to its filings?

Pass the ticker and the collector resolves it to the SEC's numeric CIK before querying, so "AAPL" reaches the right filer without you first looking up 0000320193.

Can I filter to a specific form type?

Yes — set forms to 10-K, 8-K, S-1 and so on to keep only that filing type in either mode.

Is there a free SEC EDGAR API?

Every account gets $2 of credit every month with no card, which is about 4,000 delivered filings on this endpoint at $0.0005 each. It renews monthly, and a run that delivers nothing is never billed — so a failed or blocked attempt does not eat the allowance.

How much does one run cost?

Multiply the rows you actually receive by $0.0005. A run capped at 100 filings — the maximum for this collector — costs $0.05 if every row comes back, and less when the source has fewer. Volume tiers take up to 30% off, and GET /v1/scraper/collectors returns the price your key actually pays.

Run the SEC EDGAR API now

$2 of free credit every month, no card. Your key returns its own prices from GET /v1/scraper/collectors.

Get my free API key
Get my free API key