3.1 KiB
3.1 KiB
SEC EDGAR — Corporate Filings
1. Summary
EDGAR (Electronic Data Gathering, Analysis, and Retrieval) is the SEC's system for corporate disclosure filings: 10-K (annual), 10-Q (quarterly), 8-K (current events), DEF 14A (proxy), Form 4 (insider trading), 13F (institutional holdings).
2. Access Methods
- API:
https://data.sec.gov/submissions/CIK<10-digit-padded>.json(no auth) - Filing index:
https://www.sec.gov/cgi-bin/browse-edgar?action=getcompany&CIK=... - Full-text search:
https://efts.sec.gov/LATEST/search-index?q=... - Auth: None — requires
User-Agentheader with contact info per SEC policy - Rate limit: 10 requests/second per IP (enforced)
3. Data Schema
Key fields emitted by fetch_sec_edgar.py (filings index):
| Column | Type | Description |
|---|---|---|
cik |
str | Central Index Key (10-digit padded) |
company_name |
str | Registrant name |
form_type |
str | 10-K, 10-Q, 8-K, etc. |
filing_date |
str | YYYY-MM-DD |
accession_number |
str | Filing accession (e.g. 0000320193-24-000123) |
primary_document |
str | Filename of main document |
filing_url |
str | Direct URL to filing index |
reporting_period |
str | Period of report (where applicable) |
4. Coverage
- All public US registrants from 1993 → present
- 1993-2000 has spotty coverage of older filings (paper-to-electronic migration)
- ~12M filings cumulative
- Updated within minutes of filing acceptance
5. Cross-Reference Potential
- USAspending ↔
company_name(public companies as federal contractors) - Senate LD ↔
company_name(public companies hire lobbyists) - OFAC SDN ↔
company_name(sanctions screening of public registrants)
Join key: company name OR CIK if you have it. CIK is canonical and stable.
6. Data Quality
- Subsidiaries often filed under parent CIK — be careful with name matches
- Name changes over time (rebrands, acquisitions) — CIK remains constant
- 10-K Item 1A Risk Factors are free-form text — useful for
web_extract-style parsing, not structured queries - Foreign private issuers file 20-F instead of 10-K
7. Acquisition Script
Path: scripts/fetch_sec_edgar.py
# By CIK
python3 SKILL_DIR/scripts/fetch_sec_edgar.py --cik 0000320193 \
--types 10-K,10-Q --out data/edgar_filings.csv
# By company name (resolves to CIK first via name search)
python3 SKILL_DIR/scripts/fetch_sec_edgar.py --company "APPLE INC" \
--types 8-K --since 2024-01-01 --out data/edgar_filings.csv
Set SEC_USER_AGENT env var with your contact email (SEC requirement).
Example: SEC_USER_AGENT="Research example@example.com".
8. Legal & Licensing
- Public record under SEC Rule 24b-2 / 17 CFR § 230.401
- No commercial use restrictions on filing content
- SEC asks all bulk users to include a
User-Agentwith contact info and to respect 10 req/s — failure to do so can result in IP blocking
9. References
- Developer docs: https://www.sec.gov/edgar/sec-api-documentation
- EDGAR full-text search: https://efts.sec.gov/LATEST/search-index
- Fair access policy: https://www.sec.gov/os/accessing-edgar-data