United States (SEC EDGAR)¶
supported · market US · provider sec · regulator US Securities and Exchange Commission
Source¶
Filings come from SEC EDGAR: the submissions profile for listings, and the original filing index and archive for documents.
Identifiers¶
| Identifier | Example |
|---|---|
| ticker | Company("AAPL", market="US") |
| CIK | Company("320193", market="US") |
Exact ticker lookup uses the SEC's ticker/CIK map and verifies the ticker
against the submissions profile; a miss or stale mapping falls back to the
exchange list, also verified. search_companies("Apple", market="US") searches
the SEC's exchange ticker list by name.
A ticker resolves to the current SEC registrant. A corporate
reorganization can put older filings under another CIK: current XOM
resolves to 0002115436, while its predecessor's 2026 annual filing is under
Company("0000034088", market="US"). The library does not combine those
entities.
Forms¶
| Category | Native forms |
|---|---|
annual |
10-K, 20-F, 40-F, 10-KT; before 2009 also 10-K405, 10-KSB, 10-KSB40, 10-KT405 |
quarterly |
10-Q, 10-QT, 10-QSB |
interim |
the same filings as quarterly |
current |
8-K, 6-K |
prospectus |
forms starting S-1, F-1 or 424B |
ownership |
3, 4, 5, SC 13D, SC 13G, and since December 2024 SCHEDULE 13D, SCHEDULE 13G. For XML forms the primary document is the filed XML, not SEC's rendered view |
other |
every other form |
An amendment (/A) belongs to its base form's category. Category requests
return originals by default; include_amendments=True adds amendments. Any
exact EDGAR form is accepted: form="10-K" excludes 10-K/A, which
form="10-K/A" selects.
Dates¶
| Field | Source value |
|---|---|
filing_date |
EDGAR filing date; start=/end= filter on it |
published_at |
the acceptance date-time from the submissions profile |
period_end |
the report date |
order_basis is filing_date. For date-filtered listings, the provider skips
older submission files whose SEC-declared date range cannot contain a match.
Direct lookup¶
company.get_filing(accession) reads the original EDGAR index page directly,
checking the CIK and the accession:
The accession prefix need not equal the issuer CIK: Microsoft's
0001193125-26-323660 resolves under Microsoft's CIK 0000789019. A filing
read this way keeps the page's displayed acceptance time raw, because the
page does not state its time zone.
Documents and content¶
filing.primary_document,filing.text()andfiling.download()use the primary filename EDGAR supplies, without listing the whole archive.filing.documentscombines the typed rows of the filing index with the full archive directory. Exhibits keep their EDGAR type (select_document(document_type="EX-21.1")),description, andprovider_metadata["index_sequence"]. Generated files stay visible with no invented type.- Roles: the primary file is
report;EX-101and XBRL files aredata; otherEX-types areexhibit; EDGAR renderings and indexes aregenerated. - Raw facts come from the original XBRL instance or the inline XBRL tags in the primary document.
- Item sections for qualifying original 10-K, 10-Q and 8-K HTML, with page and exhibit pointers for 10-Ks that use a cross-reference index.
Example¶
From the quickstart notebook:
from opencorpfilings import Company
apple = Company("AAPL", market="US", user_agent="Your Name you@example.com")
filing = apple.filings(form="annual").latest()
filing, filing.primary_document
(<Filing 0000320193-25-000079 10-K ANNUAL period=2025-09-27 filed=2025-10-31 US/sec>,
<FilingDocument aapl-20250927.htm text/html 10-K report primary>)
Authentication and limits¶
Every SEC request needs an identifying User-Agent with a name or organization
and a contact email: user_agent=, OPENCORPFILINGS_SEC_USER_AGENT, or
--user-agent on the command line. No registration is needed. Without one,
Company(..., market="US") raises AuthenticationError.
For example, Alex Morgan alex@example.com means a name followed by a
contact email, separated by a space. Replace both with your own details.
See SEC request identity for
Python, notebook and terminal setup.
The SEC's fair-access policy sets an aggregate limit of 10 requests per second. The provider paces its own requests below that; if several processes share an IP address, their combined traffic must stay within the limit.
Known gaps¶
- Item sections require an original with verifiable Item boundaries; amended
filings (
10-K/A,10-Q/A,8-K/A) and ambiguous layouts raiseUnsupportedCapabilityError. interimandquarterlyselect the same filings (the quarterly forms).- Predecessor and successor registrants are separate entities.
See also the SEC terms in Source access and the SEC provider notes.