EdgarTools: The Python Library for SEC EDGAR Data
Powerful Python library for SEC data analysis and financial research
EdgarTools makes it simple to access, analyze, and extract insights from SEC filings. Whether you're analyzing company financials, tracking insider trading, or researching investment funds, edgartools provides the tools you need.
What You Can Do
Get Key Company Data
Access shares outstanding, public float, and other key data points with simple properties.
company = Company("AAPL")
company.shares_outstanding # 15115785000.0
company.public_float # 2899948348000.0
See Apple on edgar.tools — filings, financials, and insider trades in a web UI →
Analyze Company Financials
Extract financial statements, calculate ratios, and track performance over time.
company = Company("AAPL")
financials = company.get_financials()
income_statement = financials.income_statement()
Track Insider Trading
Monitor insider transactions from Forms 3, 4, and 5 with structured data objects.
filings = company.get_filings(form="4").head(10)
transactions = pd.concat([f.obj()
.to_dataframe()
.fillna('')
for f in filings])
Analyze Executive Compensation
Get CEO pay, pay-vs-performance, and 5-year compensation trends from proxy statements.
proxy = company.get_filings(form="DEF 14A").latest().obj()
proxy.peo_name # "Mr. Cook"
proxy.peo_total_comp # 74609802
proxy.executive_compensation # 5-year DataFrame
Research Investment Funds
Analyze 13F holdings, track portfolio changes, and compare fund strategies.
fund = Company("BRK-A")
holdings = fund.get_filings(form="13F-HR").latest().obj()
Extract Filing Data
Access any SEC filing since 1994 with clean, structured data extraction.
filing = company.get_filings(form="10-K").latest()
text = filing.text() # Clean, readable text
Key Features
🚀 Easy to Use
- Simple, intuitive API designed for both beginners and experts
- Comprehensive documentation with real-world examples
- Smart defaults that handle edge cases automatically
📊 Complete SEC Data Access
- All filing types: 10-K, 10-Q, 8-K, 13F, Form 4, S-1, and more
- Historical data: Access filings back to 1994
- Real-time data: Get the latest filings as they're published
🔍 Advanced XBRL Support
- Extract structured financial data from XBRL filings
- Query individual financial line items with standardized concepts
- Handle complex financial statement hierarchies automatically
⚡ Performance Optimized
- Efficient data handling for large datasets
- Local caching to minimize API calls
- Batch processing capabilities for bulk analysis
🛠 Developer Friendly
- Type hints and comprehensive error handling
- Jupyter notebook integration with rich display
- Pandas DataFrames for seamless data analysis
Installation
Install edgartools with pip:
pip install edgartools
Or use uv for faster installation:
uv pip install edgartools
Get Started in 2 Minutes
-
Install and set your identity (required by SEC):
from edgar import * set_identity("your.name@email.com") -
Find a company and get their latest financial data:
company = Company("TSLA")
financials = company.get_financials()
financials.income_statement()
See it live on edgar.tools
Everything above runs locally. edgar.tools puts the same data in a web UI with AI enrichment on top — no code required.
- Browse Apple's filings, financials, and insider trades →
- Watch filings arrive in real time →
- Search disclosures across 12 XBRL topics →
Also includes a REST API (20+ endpoints), hosted MCP server, and data exports. Free tier: 100 API calls/day.
Popular Use Cases
Financial Analysis
- Compare companies across industries
- Track financial performance over time
- Calculate and analyze financial ratios
- Build custom financial dashboards
Investment Research
- Analyze fund holdings and strategy changes
- Track insider buying and selling activity
- Monitor material events through 8-K filings
- Research IPOs and new offerings
Academic Research
- Large-scale financial data analysis
- Corporate governance studies
- Market efficiency research
- Regulatory compliance analysis
AI/ML Applications
- Extract clean text for natural language processing
- Build predictive models with financial data
- Automate document analysis workflows
- Create training datasets for financial AI
- Advanced ranking search with BM25 and semantic structure awareness
Why Choose EdgarTools?
| Feature | EdgarTools | Alternative Solutions |
|---|---|---|
| Ease of Use | ✅ Simple, Pythonic API | ❌ Complex setup required |
| Data Quality | ✅ Clean, standardized data | ⚠️ Raw data needs processing |
| Performance | ✅ Optimized for large datasets | ❌ Slow for bulk operations |
| Documentation | ✅ Comprehensive with examples | ⚠️ Limited examples |
| Active Development | ✅ Regular updates and features | ❌ Infrequent updates |
| Community | ✅ Growing user base | ⚠️ Limited community |
Community & Support
- 📖 Documentation: Comprehensive guides and API reference
- 💬 GitHub Discussions: Ask questions and share insights
- 🐛 Issue Tracker: Report bugs and request features
- 📧 Email Support: Direct support for enterprise users
Support the Project
If you find EdgarTools useful, please consider supporting its development:
Your support helps maintain and improve EdgarTools for the entire community!
What's Next?
Quick Start - Your first analysis in 5 minutes
Financial Data - Get income statements, balance sheets, cash flow
Filing Types - Work with 10-K, 8-K, 13F, and more
API Reference - Complete documentation
Examples - Real-world code patterns
Ready to start analyzing SEC data? Install EdgarTools and begin your first analysis today.