Skip to main content

A tool to read through filings on the EDGAR site from the SEC

Project description

Edgar Agent Tool

Features

  • 🔍 Company Lookup — Convert stock tickers to SEC CIK numbers
  • 📑 Filing Retrieval — Fetch recent filings for any public company
  • 🧩 Automatic Section Parsing — Extract specific sections (Risk Factors, MD&A, etc.)
  • 🌐 Cross-Company Search — Find filings across all companies by date
  • 🤖 LLM-Friendly — Clean markdown output, structured returns, designed for AI agents
  • Smart Caching — Built-in TTL caches to respect SEC rate limits

Developer Guide

If you are new to using nbdev here are some useful pointers to get you started.

Install edgar_tool in Development mode

# make sure edgar_tool package is installed in development mode
$ pip install -e .

# make changes under nbs/ directory
# ...

# compile to have changes apply to edgar_tool
$ nbdev_prepare

Usage

Installation

pip install edgar-agent-tool

Or install from GitHub for the latest version:

pip install git+https://github.com/problemsolversguild/edgar-agent-tool.git

Documentation

Documentation can be found hosted on this GitHub repository’s pages. Additionally you can find package manager specific guidelines on conda and pypi respectively.

Quick Start

First, set up your SEC User-Agent (required by SEC):

export SEC_USER_AGENT="YourName your@email.com"
from edgar_agent_tool.filings import get_filing, get_recent_filings

# Get Apple's latest 10-K with automatic section parsing
filing = get_filing("AAPL", filing_type="10-K")
print(filing["summary"])
ModuleNotFoundError: No module named 'edgar_agent_tool'
---------------------------------------------------------------------------
ModuleNotFoundError                       Traceback (most recent call last)
Cell In[1], line 1
----> 1 from edgar_agent_tool.filings import get_filing, get_recent_filings
      3 # Get Apple's latest 10-K with automatic section parsing
      4 filing = get_filing("AAPL", filing_type="10-K")

ModuleNotFoundError: No module named 'edgar_agent_tool'
# Extract a specific section (e.g., Risk Factors)
filing = get_filing("AAPL", filing_type="10-K", section="1A")
print(f"Risk Factors: {len(filing['section']['content'])} characters")
# Get a list of recent 8-K filings
filings = get_recent_filings("MSFT", filing_type="8-K", count=5)
for f in filings:
    print(f"{f['filingDate']}: {f['form']} - {f['primaryDocDescription']} - {f['items']}")
2025-12-08: 8-K - 8-K - 5.02,5.07
2025-10-29: 8-K - 8-K - 2.02,7.01,9.01
2025-09-30: 8-K - 8-K - 5.02
2025-07-30: 8-K - 8-K - 2.02,9.01
2025-07-01: 8-K - 8-K - 5.03,9.01

Key Functions

Function Description
get_filing(ticker, filing_type, section) Get a parsed filing with automatic section extraction
get_recent_filings(ticker, filing_type, count) List recent filings for a company
get_latest_filings(filing_type, start_date, end_date) Search filings across all companies
ticker_to_cik(ticker) Convert ticker to SEC CIK number
get_filing_document(url) Fetch raw filing content as markdown

Filing Classes

For more control, use the typed filing classes directly:

Class Description
Filing10K Annual reports with 23 standard items across 4 parts
Filing10Q Quarterly reports with financial statements and MD&A
Filing8K Current reports for material events (earnings, exec changes, etc.)

Each class provides: - Lazy content loading — Content fetched only when accessed - Automatic section parsing — Structured access to all standard items - Convenience properties.business, .risk_factors, .mda, .financials - Summary generation — Human-readable filing overviews

Section Reference

10-K Sections

  • Item 1: Business description
  • Item 1A: Risk Factors ⭐
  • Item 7: Management’s Discussion & Analysis (MD&A) ⭐
  • Item 8: Financial Statements ⭐

10-Q Sections

  • I-1: Financial Statements
  • I-2: MD&A ⭐
  • II-1A: Risk Factor updates

8-K Items

  • 2.02: Results of Operations (earnings) ⭐
  • 5.02: Director/Officer changes
  • 7.01: Regulation FD Disclosure
  • 8.01: Other Events

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

edgar_agent_tool-0.0.4.tar.gz (23.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

edgar_agent_tool-0.0.4-py3-none-any.whl (21.2 kB view details)

Uploaded Python 3

File details

Details for the file edgar_agent_tool-0.0.4.tar.gz.

File metadata

  • Download URL: edgar_agent_tool-0.0.4.tar.gz
  • Upload date:
  • Size: 23.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for edgar_agent_tool-0.0.4.tar.gz
Algorithm Hash digest
SHA256 49b3c9d4c76d2f8e50bbb16e65e61b92edc2c1f1e51dd3c961061bcf087045f7
MD5 1f109094781767cdc2e3839d2fa6a22c
BLAKE2b-256 0c5fb1847c4655f226b413188d3e2e9da98530728d74c3b88202f18fc02f5fa8

See more details on using hashes here.

File details

Details for the file edgar_agent_tool-0.0.4-py3-none-any.whl.

File metadata

File hashes

Hashes for edgar_agent_tool-0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 7d258e872f2aca55bc56d38e5326dfb64f614cf4524d633da6a73d26b766915a
MD5 abfcaddad1296cb6cf72849dae5900f7
BLAKE2b-256 0776be1691246748201b1b30c1e0aa9d0caab03ff5521da741328ff4da4962a4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page