FilingFirehose
SEC EDGAR filings parsed: 8-K body-text classification, 13D activist tagging, S-3 ATM detection.
Open source Repository Open in the app JSON README (API)
About
SEC EDGAR filings parsed: 8-K body-text classification, 13D activist tagging, S-3 ATM detection.
Details
- Kind
- MCP servers
- Topic
- No topic detected
- Publisher
- com.filingfirehose
- Origin
- official
- Category
- ferramentas
- Transport
- http
- Version
- 0.1.0
- Stars
- 1
- Last push
- 2026-05-10T01:14:37Z
- Repository state
- ativo
- Language
- Python
- License
- MIT
- Added
- 2026-08-29 03:01:07
- Updated
- 2026-08-29 03:01:07
- Origin id
com.filingfirehose/firehose
README
# filing-firehose
Python client for the [FilingFirehose](https://filingfirehose.com) 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:
```python
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](https://filingfirehose.com):
```python
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
```python
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](https://filingfirehose.com/research/buried-events),
**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.