SEC EDGAR Filings API — Real-Time 8-K/10-K Filing Monitor
Pricing
from $4.00 / 1,000 filing records
SEC EDGAR Filings API — Real-Time 8-K/10-K Filing Monitor
Real-time SEC EDGAR filing alerts (8-K/10-K/10-Q/Form 4) via the official data.sec.gov API — a fraction of the cost of $300+/mo commercial SEC data feeds. No API key.
Pricing
from $4.00 / 1,000 filing records
Rating
0.0
(0)
Developer
Moose & Raven
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
0
Monthly active users
44 minutes ago
Last modified
Categories
Share
Real-time monitoring of SEC EDGAR for new company filings (10-K, 10-Q, 8-K, Form 4 insider
transactions, or any other form type) and full-text search matches, via the official
data.sec.gov and efts.sec.gov APIs — no API key, no account, no scraping. Optional incremental
monitor mode tracks new filings across scheduled runs, so you can get alerted as soon as a company
files. Because it runs on the free, official SEC data service rather than a paid third-party
reseller, it's available at a fraction of the cost of commercial SEC data feeds.
What makes this different
Zero account friction. SEC EDGAR requires no API key and no account at all — the only
requirement is a descriptive User-Agent header identifying the requester, which SEC's own
fair-access policy publishes and this actor sends on every request (
Moose and Raven support@mooseandraven.comBundles what's normally scattered across separate tools: company filings (10-K/10-Q/8-K), insider Form 4 transactions, and full-text search across all of EDGAR, in one actor with incremental new-filing monitoring for scheduled runs.
How it works
- No API key needed. Nothing to register, nothing to configure beyond
companies. - Supply
companiesas ticker symbols (e.g."AAPL") or raw numeric CIKs — tickers are resolved via SEC's own official ticker-to-CIK mapping file. A ticker/CIK that doesn't resolve is reported as an explicitcompany-not-foundrecord, never silently skipped. - Choose which
formTypesto watch (default:10-K,10-Q,8-K,4) or leave empty for every filing type on record. - Optional
fullTextSearchQueryruns a one-shot keyword search across EDGAR's full-text search index (all companies, not just the ones being watched), optionally restricted byfullTextSearchForms. Automatically paginates up tomaxSearchResults(default 1,000). If EDGAR's real total exceeds that cap, an explicitsearch-truncatedrecord surfaces the true total — a capped search is never reported as if it were exhaustive. - Optional incremental monitor mode: remembers which filings it has already delivered per
company (by accession number, via Apify key-value store) and only reports genuinely NEW filings
on later runs. Charges one
monitor-runevent in addition to per-filing/per-search-result events. - A failed lookup/fetch is never silently treated as "nothing new." Ticker-resolution,
submissions, and full-text-search failures each push an explicit
fetch-failed(orrate-limited, if SEC's fair-access limit was tripped) status record naming which company and stage failed.monitor-runis not billed on a run containing any such compromised result. - An unexpectedly-shaped submissions response is treated as an anomaly, not a clean empty result. SEC's own filing-list structure isn't a versioned, guaranteed-stable contract — if it is ever missing the expected fields, this actor flags it rather than silently reporting zero filings for that company.
- SEC's 10 requests/second fair-access limit is respected by design: every request this actor
makes to
*.sec.govis client-side throttled with a minimum spacing, so a multi-company run should never trip the limit. If it is tripped anyway, that surfaces as an explicitrate-limitedrecord, not a silent gap.
⚠️ Limitations
- Only the most recent ~1,000 filings per company are available via the submissions API used
here (SEC's own documented ceiling on the
filings.recentwindow) — a company with a longer history has older filings in separate paginated files this actor does not fetch. This is sufficient for monitor mode (which only needs the newest filings since the last checkpoint) but is a real ceiling for a one-time deep historical pull. - Full-text search is not deduplicated across monitor runs — it's a one-shot query each run, independent of the per-company monitor checkpoint.
- Full-text search is capped at
maxSearchResults(default 1,000), not exhaustive by default — a broad query can match 10,000+ filings (EDGAR's own count). SetmaxSearchResultshigher for a broader pull; either way, if the real total exceeds what was fetched, asearch-truncatedrecord surfaces the true total so this is never silent. Note EDGAR itself sometimes reports only "at least 10,000" (totalRelation: "gte") rather than an exact count for very broad queries — that's EDGAR's own reporting behavior, passed through honestly, not this actor rounding. - Form 4 (and other structured filings) are delivered as metadata + a link to the primary document, not with the underlying transaction details (shares, price, insider name) parsed out — that would require fetching and parsing each filing's own XML/HTML document individually, out of scope for v1.
Pricing
Pay per event:
filing-record— per new filing deliveredsearch-result— per full-text search hit deliveredmonitor-run— per scheduled monitor-mode run, in addition to per-record charges
Input
Key fields (see the Input tab for the full form): companies, formTypes, monitorMode,
fullTextSearchQuery, fullTextSearchForms, maxSearchResults. Provide at least one of
companies or fullTextSearchQuery.
Output
Each dataset item has a recordType of "company-info", "filing", "search-result",
"search-truncated", "company-not-found", "fetch-failed", or "rate-limited". See the
Output tab for the full field reference.
Local development
npm installnpm test # recorded-fixture unit tests, no network needednpx apify-cli run # local end-to-end run — works immediately, no key/account needed
Support
Built and maintained by Moose & Raven. Questions or issues: support@mooseandraven.com.