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

nano-banana-2

Nano Banana 2 - Gemini 3.1 Flash Image Preview

Repository Source
41.4K153inferen-sh
General

qwen-image-2

Qwen-Image - Alibaba Image Generation

Repository Source
41.2K153inferen-sh