Skip to content

OpenCorpFilings

OpenCorpFilings OpenCorpFilings

OpenCorpFilings finds a public company's filings at the regulator that holds them and returns the original documents through one Python API. Every filing keeps the regulator's own identifiers, dates and URLs as provenance.

The library normalizes access, not accounting meaning. It does not build comparable financial statements, map concepts across taxonomies or download filings in bulk across companies. A download covers one company and needs an explicit bound.

Release status

Version 1.0.2, Python 3.11 to 3.13, MIT licensed. Install from GitHub; the package is not published to PyPI. See Getting started to install it.

A filing in five lines

from opencorpfilings import Company

apple = Company("AAPL", market="US", user_agent="Your Name you@example.com")
filing = apple.filings(form="annual").latest()
print(filing)
filing.primary_document.download("apple-10k.htm")
<Filing 0000320193-25-000079 10-K ANNUAL period=2025-09-27 filed=2025-10-31 US/sec>

That is Apple's 10-K for fiscal 2025, saved byte for byte from EDGAR. The same calls work on every route; only the identifier and the credentials change:

Company("00185647", market="UK").filings(form="annual").latest()            # Companies House number
Company("969500XXRPGD7HCAFA90", market="FR").filings(form="annual").latest() # LEI
Company("7203", market="JP").filings(form="annual", start="2026-06-01", end="2026-06-30").latest()
<Filing MzUzNDA4NzU2M2FkaXF6a2N4 AA ANNUAL period=2026-02-28 filed=2026-07-21 UK/companies_house>
<Filing 370:623156_20260408 300005 ANNUAL filed=2026-04-08 FR/france_oam>
<Filing S100Y8NY 120 ANNUAL period=2026-03-31 filed=2026-06-10 JP/edinet>

Each regulator keeps its own filing ID and form code (10-K, AA, 300005, 120). form="annual" selects across them; the native code stays on the filing as filing_type_raw. Outputs on this site were captured from the live sources in October 2026; a later run returns later filings.

Coverage at a glance

Market Source Identify a company by Forms Credentials Tier
US SEC EDGAR ticker, CIK annual, quarterly, interim, current, prospectus, ownership, other identifying User-Agent supported
UK Companies House company number, exact company name annual, other none; optional API key supported
JP EDINET four-digit securities code, EDINET code annual, interim, quarterly, current, other API key supported
FR AMF / DILA Info-Financiere OAM LEI, exact source issuer name annual, interim, quarterly none supported
21 countries ESEF index (filings.xbrl.org) LEI annual none limited
KR Open DART stock code, corporation code annual, interim, quarterly, other API key experimental
ES, NL, DK, SE, PL, FI national officially appointed mechanisms (OAMs) varies by market annual, interim (SE also quarterly; PL annual only) none experimental

The market overview has the full route matrix and the tier definitions. provider_info() and ocf markets return the same profile for any route without credentials or network access.

Where to go next

  • Getting started: install, credentials, your first filing.
  • Guide: finding companies, selecting filings, documents, text, tables and facts, per-company downloads, the ocf command.
  • Markets: a page per source with identifiers, form codes, dates and known gaps.
  • Identifiers, dates and provenance: what each field on a filing means.
  • API reference, generated from the public names.
  • Stability: what the version number promises.