Every object now carries its accession number

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.