Command Palette

Search for a command to run...

UnylyUnyly
Browse all

FilingFirehose

FreeNot checked

SEC EDGAR filings parsed: 8-K body-text classification, 13D activist tagging, S-3 ATM detection.

GitHubEmbed

About

SEC EDGAR filings parsed: 8-K body-text classification, 13D activist tagging, S-3 ATM detection.

README

Python client for the FilingFirehose SEC EDGAR API — body-text-parsed 8-Ks (with buried-event detection), activist-tagged Schedule 13D/G filings, and ATM offerings extracted from S-3 / 424B5 prospectus supplements.

Install

pip install filing-firehose

Quick start

The free public tier returns the last 72 hours of filings — no API key required:

from filing_firehose import FilingFirehose

ff = FilingFirehose()

# Recent 8-Ks where the body language flags items the filer didn't report
buried = ff.recent_8k(suspected_buried_only=True, limit=10)
for f in buried:
    print(f"{f.company_name}: filer reported {f.filer_reported_items}, "
          f"body suggests {f.suspected_buried_events}")

# Recent activist 13D / 13G filings
for f in ff.recent_13d(activist="Saba"):
    print(f"{f.company_name} — {f.percent_of_class}% by {f.activist_filers}")

# Recent ATM offerings with shelf size > $50M
for f in ff.recent_atm(min_shelf_million_usd=50):
    print(f"{f.company_name}: ${f.shelf_size_million_usd:.1f}M via {f.sales_agents}")

For the full historical archive, get an API key at filingfirehose.com:

ff = FilingFirehose(api_key="ff_live_...")

# Search the entire archive for cyber events
for f in ff.search_8k(items="1.05", since="2026-01-01"):
    print(f.company_name, f.filed_at)

Async

import asyncio
from filing_firehose import AsyncFilingFirehose

async def main():
    async with AsyncFilingFirehose() as ff:
        filings = await ff.recent_8k(items="1.05,5.02")
        for f in filings:
            print(f.company_name, f.detected_items)

asyncio.run(main())

Why this client

The wedge: most SEC filings APIs trust the filer-reported item codes on 8-K filings. We body-text-classify every filing and surface a suspected_buried_events field flagging when the body language doesn't match the filer's claimed item codes. From a 21-day analysis of 4,251 8-Ks, 7.3% of Item 8.01 filings contain language suggesting a more specific item should have been used — including buried cyber incidents (1.05), officer departures (5.02), and material agreements (1.01).

License

MIT.

from github.com/jaablon/filingfirehose-python

Installing FilingFirehose

This server has no published package — it is built from source. Open the repository and follow its README.

▸ github.com/jaablon/filingfirehose-python

FAQ

Is FilingFirehose MCP free?

Yes, FilingFirehose MCP is free — one-click install via Unyly at no cost.

Does FilingFirehose need an API key?

No, FilingFirehose runs without API keys or environment variables.

Is FilingFirehose hosted or self-hosted?

A hosted option is available: Unyly runs the server in the cloud, no local setup required.

How do I install FilingFirehose in Claude Desktop, Claude Code or Cursor?

Open FilingFirehose on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.

Related MCPs

Compare FilingFirehose with

Not sure what to pick?

Find your stack in 60 seconds

Author?

Embed badge for your README

Browse similar

All development MCPs