ouachitalabs/skills

edgartools

Learn the basics of the edgartools library - an SEC EDGAR API wrapper.

First seen Jan 24, 2026

Installation

$ npx skills add ouachitalabs/skills --skill edgartools

Also in this package

Other skills from ouachitalabs/skills.

npx skills add ouachitalabs/skills

Browse all from ouachitalabs/skills

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 2
License LICENSE
Default branch main
Open issues 0
Status Active

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 2,265 B
  • docs SUMMARY.md 88 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 29 installs

SKILL.md

Edgartools

Find the latest up to date information by visiting https://edgartools.readthedocs.io/en/latest/.

Edgartools is a python wrapper around the SEC EDGAR API. It's extremely useful for navigating anything that is publicly accessible through this API.

This includes but is not limited to:

  • Explore companies
  • Get latest filings of all types
  • Manipulate structured xbrl data
  • Download entire filings as text or markdown

Some tips

  • You must always set an identity with edgar.set_identity("First Last [email protected]").
  • This format of "name email" is enforced by the SEC.
  • There are convenience methods to access a company's latest filings, see docs/filings.md
  • Do not veer into the deep end of XBRL parsing unless explicitly asked
  • Most documents can fit into your context window.
  • However, if you must partially read a filing, read the appropriate report.

Reading filings

Essential setup

Install with uv

uv add edgartools
>>> import edgar # Notice the difference between package install name and import name. This is extremely important.
>>> edgar.set_identity("name [email protected]")

Fetching company filings

>>> filing = edgar.get_by_accession_number("0000104169-25-000191") # fetch filing by ID - no need to create Company class.

>>> company = edgar.Company("WMT") # protip: you can use CIK, or ticker here.
>>> filing = company.latest(form=["10-K", "10-Q"]) # protip: you can specify multiple form types here
>>> filing.markdown() # get entire filing as markdown
>>> filing.text() # get entire filing as beautifully rendered text. Prefer this as output for readability.

>>> # You may save the entire file to /tmp/ for fast repeated grepping
>>> with open(f"/tmp/{filing.accession_number}.txt", "w") as fh:
...     fh.write(filing.text())

>>> filing.reports # get list of specific reports (disaggregated revenues, etc)
>>> print(str(filing.reports[37].text())) # get a specific report as text

A full filing may be too large to read at once with the Read tool. However, you can either split the file into 3-4 chunks, or read only the relevant reports directly.