Skip to main content

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

License

See LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

parsimony_sec_edgar-0.0.1.tar.gz (21.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

parsimony_sec_edgar-0.0.1-py3-none-any.whl (26.3 kB view details)

Uploaded Python 3

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

Hashes for parsimony_sec_edgar-0.0.1.tar.gz
Algorithm Hash digest
SHA256 43e21dfd6d99d0d2089d60c59891896de5f564dfdf4818166a5f6965af3772f7
MD5 4f65cb58273b3fd2cc7f843113323fb7
BLAKE2b-256 ac6a092c532a7112d3dfd3f99615f8feb828bc543774eb8c63ea5884e1a1ed62

See more details on using hashes here.

Provenance

The following attestation bundles were made for parsimony_sec_edgar-0.0.1.tar.gz:

Publisher: release.yml on ockham-sh/parsimony-connectors

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file parsimony_sec_edgar-0.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for parsimony_sec_edgar-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 5c90b16ebdcdd643131c250ef1804de48ba0c5c52b20b32f4e2d5f722187c7ca
MD5 d6ec3464f3e4527e1eb6ca0ed44e202d
BLAKE2b-256 3e2a70569fddbcb8da007db6034bd29db169b569d3d12da342d6ea2d25843224

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page