Python library for SEC Edgar filings analysis.
- Simple API, complex data: Hide SEC complexity behind intuitive Python objects
- Progressive disclosure: Basic usage is easy; advanced features available when needed
- Read before write: Understand existing patterns before modifying code
| Need | Location | Key Classes |
|---|---|---|
| Filing access | edgar/_filings.py |
Filing, Filings |
| Company data | edgar/entity/core.py |
Company, Entity |
| XBRL parsing | edgar/xbrl/xbrl.py |
XBRL |
| Statements | edgar/xbrl/statements.py |
Statement |
| Documents | edgar/documents/ |
Document, HTMLParser |
| Reports (10-K/Q/8-K) | edgar/company_reports.py |
TenK, TenQ, EightK |
| Reference data | edgar/reference/ |
Tickers, forms |
from edgar import Filing, Filings, Company, find, objCompany("AAPL")- Get company by ticker or CIKfind(form="10-K", ticker="AAPL")- Search filingsfiling.xbrl()- Parse XBRL financialsfiling.obj()- Get typed report object (TenK, TenQ, etc.)
Filing → filing.obj() → TenK/TenQ/EightK
Filing → filing.xbrl() → XBRL → statements
Company → company.get_facts() → EntityFacts → Statement
Filing → filing.document() → Document → extractors
When modifying these, read in chunks:
_filings.py(72KB),xbrl/rendering.py(72KB),xbrl/xbrl.py(66KB)entity/entity_facts.py(63KB),xbrl/facts.py(55KB),xbrl/statements.py(46KB)
We use bd (beads) for issue tracking. Full docs: docs/beads-workflow.md
bd list --status open # Ready/open issues
bd list --status in_progress # Currently active
bd list --status open -p 0 # Critical priority (0=critical, 4=backlog)
bd list -t bug # Filter by type (bug/feature/task)
bd show ISSUE_ID # View details
bd update ISSUE_ID --status in_progress # Change status
bd create --title "..." --type bug --priority P1 # Create issueStatuses: open, in_progress, blocked, closed
| Task | Reference |
|---|---|
| Testing | docs/testing-guide.md |
| API examples | edgar/ai/skills/core/quickstart-by-task.md |
| Data objects | edgar/ai/skills/core/data-objects.md |
| Workflows | edgar/ai/skills/core/workflows.md |
hatch run test-fast # Fast tests (no network)
hatch run test-network # Network tests
hatch run test-regression # Regression tests
hatch run cov # With coverageOnly parallelize fast tests to avoid SEC rate limits.
Check edgar/__about__.py