Metadata-Version: 2.4
Name: edgar_agent_tool
Version: 0.0.3
Summary: A tool to read through filings on the EDGAR site from the SEC
Home-page: https://github.com/problemsolversguild/edgar_agent_tool
Author: Kevin Bird
Author-email: kevin@problemsolversguild.com
License: Apache Software License 2.0
Keywords: nbdev jupyter notebook python
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: License :: OSI Approved :: Apache Software License
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Provides-Extra: dev
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: keywords
Dynamic: license
Dynamic: license-file
Dynamic: provides-extra
Dynamic: requires-python
Dynamic: summary

# Edgar Agent Tool


<!-- WARNING: THIS FILE WAS AUTOGENERATED! DO NOT EDIT! -->

## 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

``` sh
# 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

``` bash
pip install edgar-agent-tool
```

Or install from GitHub for the latest version:

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

### Documentation

Documentation can be found hosted on this GitHub
[repository](https://github.com/problemsolversguild/edgar_tool)’s
[pages](https://problemsolversguild.github.io/edgar_tool/). Additionally
you can find package manager specific guidelines on
[conda](https://anaconda.org/problemsolversguild/edgar_tool) and
[pypi](https://pypi.org/project/edgar_tool/) respectively.

## Quick Start

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

``` bash
export SEC_USER_AGENT="YourName your@email.com"
```

``` python
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'
    [31m---------------------------------------------------------------------------[39m
    [31mModuleNotFoundError[39m                       Traceback (most recent call last)
    [36mCell[39m[36m [39m[32mIn[1][39m[32m, line 1[39m
    [32m----> [39m[32m1[39m [38;5;28;01mfrom[39;00m[38;5;250m [39m[34;01medgar_agent_tool[39;00m[34;01m.[39;00m[34;01mfilings[39;00m[38;5;250m [39m[38;5;28;01mimport[39;00m get_filing, get_recent_filings
    [32m      3[39m [38;5;66;03m# Get Apple's latest 10-K with automatic section parsing[39;00m
    [32m      4[39m filing = get_filing([33m"[39m[33mAAPL[39m[33m"[39m, filing_type=[33m"[39m[33m10-K[39m[33m"[39m)

    [31mModuleNotFoundError[39m: No module named 'edgar_agent_tool'

``` python
# 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")
```

``` python
# 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
