8-K event and registration objects gained an accession field —
the SEC accession number, the unique, stable identity of every filing. Form 4
objects have carried it since Aug 8; as of today every object served by
/v1/events, /v1/registrations, and the matching webhook
payloads has it too, including all historical rows (additive change, nothing else
moved). Dedupe on accession, not source_url — the
polling recipe has been updated to match. Also today: ticker and CIK filters got
dedicated indexes, taking the hottest queries from ~150 ms (and multi-second
cold-cache outliers) to single-digit milliseconds of server time.
Affiliate program, and referral attribution in the signup funnel
We now share revenue with people who send us customers:
25% recurring for the first 12 months of referred
subscriptions, with the complete terms on one page — no income hype, disclosure
required. Under the hood, ?ref= links attribute signups end-to-end
(30-day window, last click wins), the code rides the Stripe subscription itself so
renewals credit correctly, and a malformed ref can never break a signup. Also fixed
in passing: the Terms page still described the service as free-of-charge early
access — paid tiers have been live since July 31, and section 5 now says so.
Postman collection, and a nightly index-reconciliation pass
The whole REST surface is now importable into Postman in one click:
filingpulse.postman_collection.json,
generated from the API's own OpenAPI spec with key auth, example filter values, and
per-parameter documentation prewired. And behind the scenes, the ingest daemon now
re-checks the trailing three days against EDGAR's own daily indexes every night — on
its first production run the pass recovered 8 filings the live feed had dropped, so
gaps now self-heal within a day instead of waiting for someone to notice.
until= filter and research study #1: the Form 4 filing delay
All three list endpoints (and the MCP tools) now take until= alongside
since= — an inclusive upper bound on filed_date, so a fixed
date window returns the same population forever. Built for reproducible research and
bounded historical pulls. First use:
we measured the delay between insider transaction
dates and EDGAR filing dates for every Form 4 filed in July 2026, with per-day
counts cross-checked against EDGAR's own daily index — the whole study runs from one
script on a free key. The check also caught (and we repaired) four filings our live
feed had missed.
Free insider-trades screener
A no-signup screener over live Form 4 transaction legs:
filter by ticker, transaction code, acquired/disposed, filing window, dollar value, and
derivative table — every number exactly as filed, every row linking back to EDGAR. The
view is shareable by URL and each ticker page now links straight into it. The JSON,
CSV export, and webhooks behind the page remain a free API key away.
Comparison pages and llms.txt
Three new pages compare the realistic ways to get EDGAR data programmatically —
Best SEC EDGAR API in 2026,
sec-api.io alternatives, and
FilingPulse vs sec-api.io — with every
competitor fact read from the provider's own pages on a stated date, sources linked,
and honest sections on when a competitor is the better choice. The site also now
serves /llms.txt and /llms-full.txt:
the whole product — endpoints, the frozen schema, tier limits, query patterns —
as one machine-readable file for AI assistants, generated from the same contract
the API serves so it cannot drift.
Hosted MCP server
FilingPulse now speaks the Model Context Protocol: point Claude, ChatGPT, Cursor, or
any MCP client at https://mcp.filingpulse.io/mcp and query normalized
Form 4, 8-K, and S-1/IPO data with seven read-only tools — no install, no key required
to explore. Anonymous access is rate-limited (20 tool calls/min, 25 rows/call); the
MCP page has per-client setup. The REST API also now sees real
client IPs behind the proxy, so per-IP throttles apply per client instead of sharing
one bucket.
Query patterns page
New Query patterns page: the questions the API gets
asked most — filter by ticker, CIK, or amendment status, build an 8-K item digest,
thread an offering by SEC file number, sync incrementally with since=
and accession dedupe — each as a copy-paste request. Every request on
the page is executed against a live API instance by the regression suite; the page
is generated from the tested catalog, so it cannot document a request CI never ran.
Form 4 objects now carry accession and filed_date
Every Form 4 returned by the API — and every form4 webhook payload —
now includes the SEC accession number (the filing's stable id, and the path parameter
for fetching one filing) and the EDGAR acceptance date as filed_date
(normalized YYYY-MM-DD, the value since= filters on). Additive
change, applied to all historical rows; previously the only stable id on a Form 4 object
was buried in source_url. The machine-readable
schema at /v1/schema documents both fields.
JavaScript recipes
Two Node examples join the Recipes page: a poller that
watches for new filings without re-downloading history (narrow with since=,
dedupe by source_url, back off on rate limits), and a webhook receiver that
verifies the HMAC signature over the raw request bytes — the thing every JSON
body parser quietly breaks. Both run in CI against a live API instance, like the Python
four.
Recipes: runnable examples, tested in CI
New Recipes page: four complete programs — CSV export of
a ticker's Form 4 transactions, an 8-K item digest, a signature-verifying webhook
receiver with Slack forwarding, and IPO threading by SEC file number. Every script is
executed against a live API instance in the regression suite; the downloads are the
tested files themselves.
S-1 registrations on the homepage
The homepage live section now includes the newest registration events alongside
insider trades, and the 30-day volume band counts all three verticals.
Registration pipeline, browsable
New /registrations/ page: the S-1/F-1 pipeline with
lifecycle stages and file-number threads, refreshed every six hours. Notices of
effectiveness are listed separately — most cover form types we don't track yet, and
the page says so.
Third data vertical: S-1/IPO registration lifecycle
GET /v1/registrations and the registration webhook event:
S-1/F-1 registrations, amendments, SEC effectiveness notices, and final priced
prospectuses, threaded across one offering by SEC file number. Live-forward from
August 1; no backfill yet.
Self-serve signup opens — free and paid tiers
Key delivery by email at /signup.html; paid tiers
checkout via Stripe. Official Python and JavaScript SDKs published to PyPI and npm.
Support inbox live at keys@filingpulse.io.
Site redesign; search indexing begins
New public site with live dataset statistics on the homepage. Domain verified with
Google Search Console; sitemap of 2,900+ issuer pages submitted and accepted.
Per-issuer data pages
2,911 ticker pages published at /insider-trades/ —
insider transaction history and 8-K events per issuer, regenerated from the live dataset
every six hours.
Automated pipeline monitoring
Health evaluation every ten minutes across ingestion freshness, backfill progress, and
service state, with thresholds aware of EDGAR's filing calendar (quiet weekends don't
false-alarm; weekday stalls surface within the hour).
Backfill resilience fix
Found and fixed a stall where EDGAR's unusual error behavior for never-published
weekend index files could livelock historical backfill. Backfill errors are now fully
isolated from live polling, with regression tests pinning the fix.
Public launch
filingpulse.io and api.filingpulse.io live with TLS. Production ingestion running in
Ashburn, Virginia; 24-month historical backfill started.
Core platform
Normalized schema v1 frozen (values as filed, fields never missing, additive-only
evolution). Form 4 and 8-K ingestion, REST API v1 with keys and rate limits, and
HMAC-signed webhook delivery with automatic retries — all pinned by a regression corpus
of real filings.