edgartools — SEC EDGAR Data

SkillCommerce & finance

Lets your agent pull and analyze SEC filings, financial statements, insider trades, and institutional holdings from EDGAR.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the edgartools — SEC EDGAR Data skill

About this capability

Python library for accessing, analyzing, and extracting data from SEC EDGAR filings. Use when working with SEC filings, financial statements (income statement, balance sheet, cash flow), XBRL financial data, insider trading (Form 4), institutional holdings (13F), company financials, annual/quarterly

What this skill tells your AI

The instructions your AI receives, as published by foryourhealth111-pixel/vibe-skills in bundled/skills/edgartools/SKILL.md and read by ahel’s review.

Python library for accessing all SEC filings since 1994 with structured data extraction.

Authentication (Required)

The SEC requires identification for API access. Always set identity before any operations:

from edgar import set_identity
set_identity("Your Name your.email@example.com")

Set via environment variable to avoid hardcoding: EDGAR_IDENTITY="Your Name your@email.com".

Installation

uv pip install edgartools
# For AI/MCP features:
uv pip install "edgartools[ai]"

Core Workflow

Find a Company

from edgar import Company, find

company = Company("AAPL")        # by ticker
company = Company(320193)         # by CIK (fastest)
results = find("Apple")           # by name search

Get Filings

# Company filings
filings = company.get_filings(form="10-K")
filing = filings.latest()

# Global search across all filings
from edgar import get_filings
filings = get_filings(2024, 1, form="10-K")

# By accession number
from edgar import get_by_accession_number
filing = get_by_accession_number("0000320193-23-000106")

Extract Structured Data

# Form-specific object (most common approach)
tenk = filing.obj()              # Returns TenK, EightK, Form4, ThirteenF, etc.

# Financial statements (10-K/10-Q)
financials = company.get_financials()     # annual
financials = company.get_quarterly_financials()  # quarterly
income = financials.income_statement()
balance = financials.balance_sheet()
cashflow = financials.cashflow_statement()

# XBRL data
xbrl = filing.xbrl()
income = xbrl.statements.income_statement()

Access Filing Content

text = filing.text()             # plain text
html = filing.html()             # HTML
md = filing.markdown()           # markdown (good for LLM processing)
filing.open()                    # open in browser

Key Company Properties

company.name                     # "Apple Inc."
company.cik                      # 320193
company.ticker                   # "AAPL"
company.industry                 # "ELECTRONIC COMPUTERS"
company.sic                      # "3571"
company.shares_outstanding       # 15115785000.0
company.public_float             # 2899948348000.0
company.fiscal_year_end          # "0930"
company.exchange                 # "Nasdaq"

Form → Object Mapping

FormObjectKey Properties
10-KTenKfinancials, income_statement, balance_sheet
10-QTenQfinancials, income_statement, balance_sheet
8-KEightKitems, press_releases
Form 4Form4reporting_owner, transactions
13F-HRThirteenFinfotable, total_value
DEF 14AProxyStatementexecutive_compensation, proposals
SC 13D/GSchedule13total_shares, items
Form DFormDoffering, recipients

Important: filing.financials does NOT exist. Use filing.obj().financials.

Common Pitfalls

  • filing.financials → AttributeError; use filing.obj().financials
  • get_filings() has no limit param; use .head(n) or .latest(n)
  • Prefer amendments=False for multi-period analysis (amended filings may be incomplete)
  • Always check for None before accessing optional data

Reference Files

Load these when you need detailed information:

  • companies.md — Finding companies, screening, batch lookups, Company API
  • filings.md — Working with filings, attachments, exhibits, Filings collection API
  • financial-data.md — Financial statements, convenience methods, DataFrame export, multi-period analysis
  • xbrl.md — XBRL parsing, fact querying, multi-period stitching, standardization
  • data-objects.md — All supported form types and their structured objects
  • entity-facts.md — EntityFacts API, FactQuery, FinancialStatement, FinancialFact
  • ai-integration.md — MCP server setup, Skills installation, .docs and .to_context() properties

Signals

GitHub stars
3k
Forks
277
Last commit
Aug 2026
Advanced
Catalog kind
skill
Gateway key
edgartools
Source
github.com/foryourhealth111-pixel/vibe-skills