edgartools
Python library to access and analyze SEC Edgar filings, XBRL financial statements, 10-K, 10-Q, and 8-K reports
Decision gist · record as of 2026-08-14
Yes. EdgarTools is actively maintained, has low install friction, carries no security vulnerabilities, and solves a real problem—turning free but messy SEC data into usable Python objects. The MIT license is permissive. The 21 dependencies are all standard and well-maintained. Use it if you need to work with SEC filings programmatically. The main gotcha is that you must provide an email to the SEC with every request, but that is a documented requirement.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- SEC EDGAR requires an email address (set via set_identity) with every request; no API key or signup needed, but the email is mandatory.
- Low friction: pure Python wheel with no compiled dependencies.
- Active maintenance—last commit 2026-08-14, 2586 GitHub stars.
License · maintenance · safety
MIT (permissive) — MIT license (permissive): you can use, modify, and distribute EdgarTools freely in commercial and private projects with minimal restrictions. No copyleft obligations.
last release 2026-08-12 (2 days) · last repo commit 2026-08-14 · 2,586 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 941,567 downloads/mo, #4,677 on PyPI
Alternatives
Verify before relying
pip install edgartools
from edgartools import Company, set_identity
set_identity("your.name@example.com")
Company("AAPL").get_financials().income_statement()- Exact count of supported form types beyond the examples listed in the description.
- Performance characteristics when querying large date ranges or many companies in sequence.
- Whether the built-in rate limiting and caching are sufficient for high-volume pipelines without tuning.
What it is and what it does
EdgarTools is a Python library that fetches SEC EDGAR filings and converts them into typed Python objects and pandas DataFrames, eliminating the need to parse raw XBRL or HTML yourself. It wraps the free SEC EDGAR API and handles the messy work of standardizing financial statements, insider trades, fund holdings, proxy statements, and other forms into a consistent, queryable format. You identify yourself with an email, then call methods to get clean, structured data in a few lines.
The library is built for production use: it includes configurable rate limiting, smart caching, type hints throughout, and an MCP server for AI integration. It has 21 runtime dependencies (httpx, pandas, pydantic, lxml, beautifulsoup4, and others) that handle HTTP requests, data manipulation, parsing, and text processing. The dependency footprint is moderate but standard for a data-extraction tool of this scope. It supports Python 3.10 through 3.14 and is actively maintained.
Use it for
- Extract standardized income statements, balance sheets, and cash flow from 10-K and 10-Q filings for cross-company financial analysis.
- Query insider trading transactions from Form 4 filings as a DataFrame to track executive buy/sell activity.
- Retrieve 13F institutional holdings to analyze hedge fund and mutual fund portfolios over time.
- Parse 8-K current reports to identify corporate events programmatically.
- Build time-series datasets of financial metrics across companies using the Company Facts API.
- Feed SEC filing text and structured data into RAG pipelines or AI systems via the built-in MCP server.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
EdgarTools is actively maintained, has low install friction, carries no security vulnerabilities, and solves a real problem—turning free but messy SEC data into usable Python objects. The MIT license is permissive. The 21 dependencies are all standard and well-maintained. Use it if you need to work with SEC filings programmatically. The main gotcha is that you must provide an email to the SEC with every request, but that is a documented requirement.
Install
edgartools on PyPI
Before you install
Low friction: pure Python wheel with no compiled dependencies. Active maintenance—last commit 2026-08-14, 2586 GitHub stars. Supports Python 3.10 through 3.14. 21 runtime dependencies are all well-established, adding moderate but manageable footprint.
SEC EDGAR requires an email address (set via set_identity) with every request; no API key or signup needed, but the email is mandatory.
License in practice
MIT license (permissive): you can use, modify, and distribute EdgarTools freely in commercial and private projects with minimal restrictions. No copyleft obligations.
Quickstart
pip install edgartools
from edgartools import Company, set_identity
set_identity("your.name@example.com")
Company("AAPL").get_financials().income_statement()
Verify before relying
- Exact count of supported form types beyond the examples listed in the description.
- Performance characteristics when querying large date ranges or many companies in sequence.
- Whether the built-in rate limiting and caching are sufficient for high-volume pipelines without tuning.
Package facts
| License | MIT permissive |
| Python support | Supports the current Python release >=3.10 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 21 packagesbeautifulsoup4httpxhttpxthrottlecachehumanizejinja2lxmlnest-asyncioorjsonpandaspyarrowpydanticpyrate-limiterrank-bm25rapidfuzzrichstaminatabulatetextdistancetqdmtruststoreunidecode |
| Maintenance | Actively maintained 2 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 941,567 / month, #4,677 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 4 - BetaIntended Audience :: DevelopersIntended Audience :: Financial and Insurance IndustryIntended Audience :: Science/ResearchLicense :: OSI Approved :: MIT LicenseProgramming Language :: PythonProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: Implementation :: CPythonProgramming Language :: Python :: Implementation :: PyPyTopic :: Office/Business :: FinancialTopic :: Office/Business :: Financial :: InvestmentTopic :: Scientific/Engineering :: Information Analysis |
Evidence: edgartools-5.48.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “parse 10-k 10-q financial statements”
- edgartoolsEdgarTools parses SEC EDGAR filings into typed Python objects and…
- sec-apiA Python client for the SEC-API.io service that provides programmatic…
- sec-edgar-downloaderDownloads SEC EDGAR company filings by ticker or CIK, supporting all…
Give your agent the search over MCP, or paste the wish link into any chat.
More Information Analysis packages
A drop-in replacement for Python's standard `re` module that adds advanced regex features like nested sets, fuzzy matching, lookaround in conditionals, and full Unicode case-folding while maintaining backward compatibility.
pyarrow provides Python bindings to Apache Arrow's C++ libraries for efficient columnar data processing, serialization, and interoperability with pandas, NumPy, and other Python ecosystem tools.
NetworkX provides data structures and algorithms for creating, analyzing, and manipulating graphs and networks, supporting everything from simple undirected graphs to complex directed and weighted networks.
Connects Python applications to Snowflake data warehouses using the DB API 2.0 specification, enabling SQL queries, data transfers, and warehouse operations.
ContourPy calculates contours of 2D quadrilateral grids using C++11 algorithms wrapped in Python, offering serial and multithreaded implementations without requiring Matplotlib as a dependency.
Snowpark Python provides APIs to query and process data directly in Snowflake without moving data to your local system, with support for both native Snowpark and pandas-compatible interfaces.
Install it if you use Snowflake and want to process data without moving it to your application layer.
See also arelle-release · sec-api · sec-edgar-downloader · openbb-sec · yahooquery · finvizfinance · ofxparse · tradingeconomics · pandas-ta · vnstock