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.5.tar.gz (24.3 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.5-py3-none-any.whl (23.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: edgar_agent_tool-0.0.5.tar.gz
  • Upload date:
  • Size: 24.3 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.5.tar.gz
Algorithm Hash digest
SHA256 1582a88d0bd604f031abacb9d38118ebc327e4b0229545634b90c7d45557d1b1
MD5 1a4365577fbd7bb3d7d00e62b91a3201
BLAKE2b-256 e877bdef7a5b5a28c3ebb04b0068fba8da910e1632b7ba5533e990098e7b8ea3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for edgar_agent_tool-0.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 59df798483b139f29166668d0efcc40f09ed6074ed26f99117ae9680d32d1940
MD5 a7836863f496891df2095bf633e85c18
BLAKE2b-256 f0915a2df9589fe489d58ed869e97fcbc6e36474c7e5487d75abbc038e354b3e

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