skillfed

edgartools

Python library to access and analyze SEC Edgar filings, XBRL financial statements, 10-K, 10-Q, and 8-K reports

edgartools v5.48.0 941.6K downloads/30d#4,677 on PyPI2,586
Permissive license MIT Active released

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

EdgarTools parses SEC EDGAR filings into typed Python objects and pandas DataFrames, extracting financial statements, insider trades, fund holdings, and other filing types with a consistent API.

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

pip

pip install edgartools

uv

uv add edgartools

poetry

poetry add edgartools

Installing edgartools

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.

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()

SEC EDGAR requires an email address (set via set_identity) with every request; no API key or signup needed, but the email is mandatory.

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 — beautifulsoup4, httpx, httpxthrottlecache, humanize, jinja2, lxml, nest-asyncio, orjson, pandas, pyarrow, pydantic, pyrate-limiter, rank-bm25, rapidfuzz, rich, stamina, tabulate, textdistance, tqdm, truststore, unidecode
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)

Evidence: edgartools-5.48.0-py3-none-any.whl

Keywords: 10-K, 10-Q, 13F, 8-K, annual report, company filings, edgar, edgar api, edgar filings, filings, finance, financial data, financial statements, form 4, insider trading, institutional holdings, python, quarterly report, sec, sec api, sec filings, stock filings, xbrl

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

Tags

sec edgar filings pythonparse 10-k 10-q financial statementsinsider trading form 4 dataxbrl financial data extraction13f institutional holdingssec filings structured dataedgar api python library
sec-filingsfinancial-dataxbrl-parsing

More Information Analysis packages