SEC EDGAR connector for the parsimony framework
Project description
parsimony-sec-edgar
SEC EDGAR connector plugin for parsimony — full-text search over filing content, company lookup, a filer's filings, raw filing documents, and XBRL financial data (per-company concept history, all-concepts facts, and cross-company frames) for U.S. issuers over the public efts.sec.gov / data.sec.gov / www.sec.gov APIs.
Part of the parsimony-connectors monorepo. Distributed standalone on PyPI as parsimony-sec-edgar.
Connectors
| Name | Kind | Description |
|---|---|---|
sec_edgar_full_text_search |
connector | Native EDGAR full-text search over the content of every filing since 2001, across all filers. Filter by form, date range, or CIK; returns the cik + accession + document needed to fetch a hit. |
sec_edgar_find_company |
connector | Fast exact lookup of a registrant by ticker symbol or CIK from the published ticker map (the ~10.4k exchange-listed issuers). Returns cik + ticker + company title. |
sec_edgar_submissions |
connector | List a CIK's filings (newest first): accession number, filing date, form type, primary document, report date. form filters to one form type; include_older walks the additional pages so the full history is reachable. |
sec_edgar_fetch_filing |
connector | Fetch one filing document body from the EDGAR archives. Resolves the primary document via the filing's index.json (works for any filing, however old). |
sec_edgar_company_concept |
connector | One XBRL concept's full reported history for a company, as a tidy long timeseries (period, value, unit, fiscal year/period, form, filed). |
sec_edgar_company_facts |
connector | Raw XBRL company-facts blob for a CIK (all reported concepts keyed by taxonomy). |
sec_edgar_frames |
connector | One XBRL concept for one period across every reporting company — a cross-sectional snapshot. |
Coverage
EDGAR is not a timeseries provider — it exposes four atomic units (registrant, filing, document, XBRL fact), and the seven connectors cover all of them. Discovery is native: sec_edgar_full_text_search searches the content of every filing since 2001 across all ~800k+ filers, so there is no built catalog (the provider has first-party search). Fetch reaches a filer's whole filing history (include_older), any document (index.json resolution), and the XBRL financial data three ways — per-company concept history, all-concepts facts, and cross-company frames.
Deliberately not wrapped (publish/ETL tooling, not on-demand agent fetches): the nightly bulk ZIP archives (companyfacts.zip, submissions.zip) and the quarterly full-index crawl. Data is U.S. federal public domain; SEC's only requirement is the fair-access User-Agent below.
Install
pip install parsimony-sec-edgar
Pulls in parsimony-core>=0.7,<0.8 automatically. Verify discovery:
python -c "from parsimony import discover; print([p.name for p in discover.iter_providers()])"
User-Agent (required)
SEC's fair-access policy (max 10 requests/second) requires every request to carry a User-Agent header that identifies the requester (a name and contact email). A generic or missing User-Agent gets a 403/429. There is no API key — the User-Agent is the only thing you must supply, via the SEC_EDGAR_USER_AGENT environment variable:
export SEC_EDGAR_USER_AGENT="Acme Research contact@acme.com"
If it is unset, the connectors fail fast with UnauthorizedError naming the env var, before any network call.
Quick start
from parsimony_sec_edgar import CONNECTORS
# Discover filings by content across all filers...
hits = CONNECTORS["sec_edgar_full_text_search"](query="climate risk", forms="10-K")
print(hits.data.head())
# ...or look up a known issuer and read its financials as a timeseries.
rev = CONNECTORS["sec_edgar_company_concept"](cik="320193", tag="Revenues")
print(rev.data.head())
For multi-plugin composition:
from parsimony import discover
connectors = discover.load_all()
Provider
- Homepage: https://www.sec.gov
- EDGAR: https://www.sec.gov/edgar
- Fair-access policy: https://www.sec.gov/os/accessing-edgar-data
License
See LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file parsimony_sec_edgar-0.0.1.tar.gz.
File metadata
- Download URL: parsimony_sec_edgar-0.0.1.tar.gz
- Upload date:
- Size: 21.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
43e21dfd6d99d0d2089d60c59891896de5f564dfdf4818166a5f6965af3772f7
|
|
| MD5 |
4f65cb58273b3fd2cc7f843113323fb7
|
|
| BLAKE2b-256 |
ac6a092c532a7112d3dfd3f99615f8feb828bc543774eb8c63ea5884e1a1ed62
|
Provenance
The following attestation bundles were made for parsimony_sec_edgar-0.0.1.tar.gz:
Publisher:
release.yml on ockham-sh/parsimony-connectors
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
parsimony_sec_edgar-0.0.1.tar.gz -
Subject digest:
43e21dfd6d99d0d2089d60c59891896de5f564dfdf4818166a5f6965af3772f7 - Sigstore transparency entry: 1971014771
- Sigstore integration time:
-
Permalink:
ockham-sh/parsimony-connectors@517cb5874f97ffede7738611ed75bb3ed27e26a0 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/ockham-sh
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@517cb5874f97ffede7738611ed75bb3ed27e26a0 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file parsimony_sec_edgar-0.0.1-py3-none-any.whl.
File metadata
- Download URL: parsimony_sec_edgar-0.0.1-py3-none-any.whl
- Upload date:
- Size: 26.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5c90b16ebdcdd643131c250ef1804de48ba0c5c52b20b32f4e2d5f722187c7ca
|
|
| MD5 |
d6ec3464f3e4527e1eb6ca0ed44e202d
|
|
| BLAKE2b-256 |
3e2a70569fddbcb8da007db6034bd29db169b569d3d12da342d6ea2d25843224
|
Provenance
The following attestation bundles were made for parsimony_sec_edgar-0.0.1-py3-none-any.whl:
Publisher:
release.yml on ockham-sh/parsimony-connectors
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
parsimony_sec_edgar-0.0.1-py3-none-any.whl -
Subject digest:
5c90b16ebdcdd643131c250ef1804de48ba0c5c52b20b32f4e2d5f722187c7ca - Sigstore transparency entry: 1971014852
- Sigstore integration time:
-
Permalink:
ockham-sh/parsimony-connectors@517cb5874f97ffede7738611ed75bb3ed27e26a0 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/ockham-sh
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@517cb5874f97ffede7738611ed75bb3ed27e26a0 -
Trigger Event:
workflow_dispatch
-
Statement type: