10-K / 10-Q
Periodic financial statements, narrative, controls, and risk disclosure.
Choose submissions, documents, XBRL facts, and form records without losing filing identity or evidence.

companyCIK, names, tickers, exchanges, and entity metadata.
submissionForm, filing date, accession number, and primary document.
filing indexThe authoritative inventory of documents and exhibits.
documentHTML, text, XML, XBRL, image, or exhibit file.
factConcept, taxonomy, unit, period, context, and filing source.
derived recordYour extraction plus parser version and evidence links.
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.
Keep control of ingestion, caching, document retrieval, and normalization while linking every record to the SEC source.
A provider can reduce setup work with ticker search, consistent schemas, extracted sections, or client libraries.
A filing index is not the same as normalized 10-K financials, Form 4 transactions, or 13F holdings.
Test pagination, amendments, missing tickers, historical files, 429 responses, and source URL persistence.
| Question | Best starting point | Do not assume |
|---|---|---|
| What did a company file? | Submissions metadata | The primary document contains every exhibit |
| What documents are in one filing? | Filing index | Filename alone explains document role |
| What financial facts were reported? | Company facts / XBRL frames | Taxonomy concepts are comparable without context |
| What does a section say? | Primary document plus section parser | A parser heading is sufficient evidence |
| What changed? | Versioned documents by accession | The newest filing can represent the past |
Periodic financial statements, narrative, controls, and risk disclosure.
Current events with item codes and exhibits.
Registration statements and offering disclosure.
Beneficial ownership positions and amendments.
Insider transactions and ownership changes.
Proxy matters, governance, and executive compensation.
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.
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.
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.
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.
Separate filing date from report period, include amendments deliberately, and decide whether the application needs metadata, the primary HTML document, exhibits, or XBRL facts.
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.
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.
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.
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.
Submission metadata identifies the accession, form, dates and document names. This proves an index record exists, not that every artifact has been downloaded.
The primary document and required exhibits were fetched, hashed and linked to the accession. A failed exhibit download remains partial, not an empty filing.
A named parser version produced sections or facts. Store warnings, unsupported tables and source offsets; parser success is not the same as financial validation.
Schema, periods, units, totals, amendment lineage and source links passed explicit checks. Publish the validation state and unresolved exceptions with derived values.
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.
Resolve CIK and verify the company identity.
Request filing metadata with form and date filters.
Use accession and filing index to select documents.
Extract fields while preserving document and section links.
Store accession, retrieval time, ETag, and parser version.
Handle amendments, duplicates, corrections, and pagination.
| Decision check | Official SEC EDGAR | Third-party free tier |
|---|---|---|
| Authentication | No API key; identify the client. | Usually account and API key. |
| Data shape | Source JSON, documents, XBRL facts. | May add normalized records and search. |
| Free boundary | Public access under current policy. | Quota, endpoint, history, or trial limits. |
| Must verify | Client identity, caching, pacing, endpoint semantics. | Quota, freshness, provenance, license, export rights. |
| Historical completeness | Recent 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 content | You own parsing, section boundaries, taxonomy logic, and parser versions. | Verify extraction method, evidence offsets, correction policy, and whether output is provider-derived. |
| Source portability | Official identifiers and documents remain available under SEC policy. | Check whether raw filings, source URLs, normalized exports, and cached history can leave the service. |
| Gate | Pass condition | Failure action |
|---|---|---|
| Identity | CIK and issuer match | Stop and resolve entity |
| Version | Accession is preserved | Do not merge records |
| Source | Every claim links to a document | Mark unsupported |
| Rate policy | User-Agent, pacing, retry are configured | Back off and queue |
| Parser | Version and test fixtures are stored | Quarantine changed layouts |
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.
For form-specific implementation details, use the QVeris guides for 10-K data, 10-K annual filing data, and S-1 registration filing data.
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.
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.
Public data.sec.gov endpoints do not require one. Automated clients should identify themselves, follow current SEC access policies, pace requests, and cache responsibly.
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.
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.
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.
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.
Test metadata, full documents, an amendment, an older filing, XBRL facts, form-specific records, provenance, pagination, latency, exports, licensing, and failure behavior.
