edgartools

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

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "edgartools" with this command: npx skills add ouachitalabs/skills/ouachitalabs-skills-edgartools

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 first.last@example.com").
  • 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@example.com")

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.

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

beancount accounting

No summary provided by upstream source.

Repository SourceNeeds Review
General

baml

No summary provided by upstream source.

Repository SourceNeeds Review
General

OpenClaw Skill Growth

Make OpenClaw Skills observable, diagnosable, and safely improvable over time. Use this when the user wants to maintain many SKILL.md files, inspect repeated...

Registry SourceRecently Updated
171Profile unavailable
General

Find Skills for ClawHub

Search for and discover OpenClaw skills from ClawHub (the official skill registry). Activate when user asks about finding skills, installing skills, or wants...

Registry SourceRecently Updated
2871Profile unavailable