QVeris
SOURCE-LINKED SEC DATA

Free SEC Filings API: Official & Free-Tier Guide

Choose submissions, documents, XBRL facts, and form records without losing filing identity or evidence.

Free SEC Filings API: Official & Free-Tier Guide

Treat EDGAR as a document tree

company

CIK, names, tickers, exchanges, and entity metadata.

submission

Form, filing date, accession number, and primary document.

filing index

The authoritative inventory of documents and exhibits.

document

HTML, text, XML, XBRL, image, or exhibit file.

fact

Concept, taxonomy, unit, period, context, and filing source.

derived record

Your extraction plus parser version and evidence links.

Choose the right free SEC filings API path

A free SEC filings API search usually begins with price, but the decision is really about the answer shape and engineering responsibility. Official SEC sources provide authoritative submission metadata, filing documents, XBRL facts, and downloadable datasets. A third-party free tier may add ticker lookup, full-text or section search, normalized form-specific records, webhooks, bulk exports, or SDKs while imposing account, quota, retention, and licensing rules.

Define the job before choosing the endpoint. “Latest filings for a company” needs a submissions index; “revenue by quarter” needs XBRL facts plus taxonomy and period logic; “risk-factor text” needs document retrieval and section extraction; “insider purchase” or “institutional holding” needs ownership-form parsing; “new material event” needs form and item classification. One generic filings endpoint rarely solves all five correctly.

Use official EDGAR when provenance comes first

Keep control of ingestion, caching, document retrieval, and normalization while linking every record to the SEC source.

Use a free tier when speed matters

A provider can reduce setup work with ticker search, consistent schemas, extracted sections, or client libraries.

Keep form-specific tasks separate

A filing index is not the same as normalized 10-K financials, Form 4 transactions, or 13F holdings.

Validate before production

Test pagination, amendments, missing tickers, historical files, 429 responses, and source URL persistence.

Choose the endpoint by question

QuestionBest starting pointDo not assume
What did a company file?Submissions metadataThe primary document contains every exhibit
What documents are in one filing?Filing indexFilename alone explains document role
What financial facts were reported?Company facts / XBRL framesTaxonomy concepts are comparable without context
What does a section say?Primary document plus section parserA parser heading is sufficient evidence
What changed?Versioned documents by accessionThe newest filing can represent the past

Form families answer different questions

10-K / 10-Q

Periodic financial statements, narrative, controls, and risk disclosure.

8-K

Current events with item codes and exhibits.

S-1 / S-3

Registration statements and offering disclosure.

13D / 13G

Beneficial ownership positions and amendments.

Form 4

Insider transactions and ownership changes.

DEF 14A

Proxy matters, governance, and executive compensation.

What the official free SEC EDGAR API provides

The SEC EDGAR API documentation describes public JSON endpoints on data.sec.gov for submissions history and extracted XBRL data. These endpoints do not require an API key, but automated clients must identify themselves and follow current SEC access and security policies. Filing archives and primary documents live under SEC archive paths and should be linked by CIK, accession, and document name rather than treated as anonymous HTML pages.

Submissions JSON is a filing index, not the filing body

The company submissions response contains recent form types, filing and report dates, accession numbers, primary documents, and references to older submissions files. A complete backfill must follow those older-file references, handle amendments as separate filings, and preserve the sequence in which filings became public. The index tells you what exists; it does not contain every document, exhibit, inline XBRL fact, or narrative section.

XBRL endpoints answer fact-level questions

Companyfacts, companyconcept, and frames expose machine-readable facts. They help with standardized metrics, but each fact still has taxonomy, unit, period, form, filed date, accession, and sometimes segment or dimensional context. Selecting “the latest value” without duration-versus-instant logic or amendment handling can mix incompatible facts. XBRL also does not replace narrative sections, exhibits, signatures, or ownership-form fields.

Model a source-linked SEC filing request

1. Resolve ticker to CIK

CIK is the stable SEC entity identifier. Normalize it to the format required by the endpoint and store it alongside the ticker instead of treating ticker symbols as permanent identifiers.

2. Filter by form and date

Separate filing date from report period, include amendments deliberately, and decide whether the application needs metadata, the primary HTML document, exhibits, or XBRL facts.

3. Preserve accession number and source URL

Store the raw response next to normalized fields. The accession number, form, filing date, CIK, retrieval time, and official SEC URL form the minimum useful provenance record.

4. Treat documents, exhibits, facts, and extracted sections as separate layers

Store the filing index, raw primary document, exhibit inventory, structured facts, and derived section text independently. Each derived artifact should point to source accession, document, parser version, and extraction range. This prevents a parser update from silently changing the authoritative filing record.

5. Build point-in-time versions, not one mutable “latest” row

Keep original filings and amendments in filing-time order, then derive a current view and an as-known-at-time view. Research backtests should see only filings public by the analysis timestamp; production applications can separately expose the latest corrected state.

SEC filing clocks, processing states, and amendment history

A filing record needs more than one date. The report period describes the business period covered; the filing date is a calendar-level filing field; the SEC acceptance timestamp records when the submission entered EDGAR; retrieval time records when your system obtained it. A parsed fact can become available later than the raw document. Keep these clocks separate so an alert, backtest, and current dashboard can each use the correct one.

1. Indexed

Submission metadata identifies the accession, form, dates and document names. This proves an index record exists, not that every artifact has been downloaded.

2. Retrieved

The primary document and required exhibits were fetched, hashed and linked to the accession. A failed exhibit download remains partial, not an empty filing.

3. Parsed

A named parser version produced sections or facts. Store warnings, unsupported tables and source offsets; parser success is not the same as financial validation.

4. Validated

Schema, periods, units, totals, amendment lineage and source links passed explicit checks. Publish the validation state and unresolved exceptions with derived values.

Worked example: keep original and amended values side by side.

A 10-Q accepted on August 1 reports a metric of $120 million. A 10-Q/A accepted on August 20 corrects it to $112 million for the same report period. The as-known view for August 10 must still return $120 million with the original accession; the current corrected view can return $112 million with the amendment accession and a link to the superseded value. Overwriting the original row makes the correction appear knowable nineteen days too early.

Build a source-linked client

  1. 01

    Identify

    Resolve CIK and verify the company identity.

  2. 02

    List

    Request filing metadata with form and date filters.

  3. 03

    Fetch

    Use accession and filing index to select documents.

  4. 04

    Parse

    Extract fields while preserving document and section links.

  5. 05

    Checkpoint

    Store accession, retrieval time, ETag, and parser version.

  6. 06

    Reconcile

    Handle amendments, duplicates, corrections, and pagination.

Compare free SEC filing data API limits

Decision checkOfficial SEC EDGARThird-party free tier
AuthenticationNo API key; identify the client.Usually account and API key.
Data shapeSource JSON, documents, XBRL facts.May add normalized records and search.
Free boundaryPublic access under current policy.Quota, endpoint, history, or trial limits.
Must verifyClient identity, caching, pacing, endpoint semantics.Quota, freshness, provenance, license, export rights.
Historical completenessRecent and older submissions files, archives, amendments, primary documents and exhibits require your ingestion logic.Verify oldest date, included forms, amendments, deleted or reprocessed records, and bulk access.
Derived contentYou own parsing, section boundaries, taxonomy logic, and parser versions.Verify extraction method, evidence offsets, correction policy, and whether output is provider-derived.
Source portabilityOfficial identifiers and documents remain available under SEC policy.Check whether raw filings, source URLs, normalized exports, and cached history can leave the service.

Reliability gates

GatePass conditionFailure action
IdentityCIK and issuer matchStop and resolve entity
VersionAccession is preservedDo not merge records
SourceEvery claim links to a documentMark unsupported
Rate policyUser-Agent, pacing, retry are configuredBack off and queue
ParserVersion and test fixtures are storedQuarantine changed layouts

Build a resilient SEC filings API Python client

Create one request layer that sets a descriptive User-Agent, timeout, and accepted response type. Add conservative pacing, conditional or immutable caching where appropriate, honor Retry-After, and retry temporary failures with jittered exponential backoff. Treat 403, 404, 429, and 5xx responses as different operational states rather than returning an empty dataset.

  • Resolve and store CIK as a string, with effective-dated ticker mappings rather than a permanent ticker assumption.
  • Ingest recent submissions and referenced older files, then reconcile accessions, forms, filing dates, report dates, and primary documents.
  • Fetch and hash raw filing artifacts before parsing; keep parser and taxonomy versions with every derived record.
  • Use bounded queues and global pacing across workers so parallel backfills still respect current access policy.
  • Reconcile daily additions and amendments, and alert on unexplained accession disappearance, document changes, or parser row loss.
  • Publish source URL, accession, form, filed date, report period, retrieval time, and derivation status with downstream answers.

For form-specific implementation details, use the QVeris guides for 10-K data, 10-K annual filing data, and S-1 registration filing data.

Inspect SEC data capabilities

Search by job—submission metadata, documents, facts, sections, or ownership—then inspect the exact input and output contract. Continue with SEC submissions tool, then confirm the calling contract in the QVeris REST API reference.

FAQ

Is there a free API for SEC filings?

Yes. The SEC publishes public submissions and XBRL APIs without an API key, along with filing archives and datasets. Third-party free tiers differ in normalization, search, quotas, and rights.

Does the official EDGAR API require an API key?

Public data.sec.gov endpoints do not require one. Automated clients should identify themselves, follow current SEC access policies, pace requests, and cache responsibly.

Can I query filings by ticker?

Resolve ticker to CIK and retain an effective-dated mapping. Third parties may automate this, but CIK, accession, form and document identity should remain in stored records.

Is submissions JSON the full filing?

No. It is an index containing metadata and document references. Fetch the primary document and required exhibits separately; follow older-submission references for complete history.

Are XBRL company facts the same as financial statements?

No. They are tagged facts with taxonomy, unit, period, form and source context. Statement presentation, narrative, custom tags, dimensions, and amendment logic require additional work.

How should amendments be stored?

Keep each accession and raw artifact in filing-time order, then derive current and point-in-time views. Never overwrite the original filing with the amended result.

How do I compare free SEC filing APIs?

Test metadata, full documents, an amendment, an older filing, XBRL facts, form-specific records, provenance, pagination, latency, exports, licensing, and failure behavior.

Official SEC references