Events API: Eleven Filing Streams, One Schema, One Key

Eleven US filing event streams in one schema, on one key: insider clusters, Form 144, 13D/G, 13F, 8-K, Form D, FDA, trial readouts, NIH grants, federal contracts and congressional trades. Cursor-based feed, every score recomputable. From $29 a month.

The only signal source in this niche with a daily verifiable track record, confluence across every data stream, and direct agent access over MCP.

Every score in every report lists the terms it was built from, so you can check the number instead of trusting it.

One endpoint instead of eleven scrapers. Insider clusters, Form 144 sales, 13D/G stakes, 13F holdings, 8-K events, Form D raises, FDA actions, trial readouts, NIH grants, federal contract awards and congressional trades - all in the same record shape, behind one key, with a cursor that guarantees no duplicates and no gaps.

Two endpoints need no key at all, so you can check us before you rely on us:

curl https://datasignalslab.com/v1/event-types
curl https://datasignalslab.com/v1/health

The first tells you which fields each stream carries and whether its score can be recomputed. The second tells you how stale each source is right now, and how many records are anchored in our published hash chain. No other feed in this niche publishes its own freshness.

The cursor is the whole point

Every response carries a cursor. Pass it back and you get what arrived since, nothing else.

curl -H "Authorization: Bearer ds_live_..." \
  "https://datasignalslab.com/v1/events?limit=100"
# -> { "events": [...], "cursor": 4471, "has_more": true }

curl -H "Authorization: Bearer ds_live_..." \
  "https://datasignalslab.com/v1/events?since=4471"

An hourly job never sees the same event twice and never silently skips one. Run out of quota and the feed does not throw a 402 in the middle of a sync: it returns an empty page with your cursor intact and a plain notice, so you resume exactly where you stopped.

Every score shows its work

A score you cannot check is a number you have to trust. Every record carries the terms it was built from:

{
  "event_id": "insider_cluster:CAMP:2026-08-03",
  "event_type": "insider_cluster",
  "company": { "name": "Camp4 Therapeutics Corp", "ticker": "CAMP" },
  "score": 67.2,
  "scored_on": "2026-08-06",
  "score_inputs": { "formula": "insider_cluster/v1", "inputs_complete": true },
  "proof": { "status": "anchored", "day": "2026-08-06" }
}

inputs_complete is the field that matters. When a term of the formula is missing from the published source, it says false instead of quietly inventing a number. proof is looked up in the hash chain we publish daily, not asserted.

How fresh is fresh

Sources are refreshed once a night. Congressional trades are weekly and 13F is quarterly, because that is how often they are published. The freshest an event can be is this morning's round.

We say that plainly because the alternative is a customer who discovers it on day two. "No added delay" on the paid plans means we do not hold the stream back, not that filings arrive as they are signed.

Plans

PlanPriceEvents / monthDeliveryWebhooks
FreeFree25024 hours0
Starter$29 / mo25,00015 minutes1
Growth$95 / mo150,000No added delay5
Scale$199 / mo500,000No added delay20

Volume, delay and webhook count are the only differences. Fields are never trimmed per plan - a half record earns bad reviews, and that is what has ruined comparable markets. Cancel any time; a cancelled plan keeps working until the period you paid for ends.

Prices are in US dollars, excluding VAT. Payment and invoicing run through Lemon Squeezy as merchant of record.

Webhooks instead of polling

Register an address and we deliver new events to it as they land. Each webhook has its own cursor, so a receiver that was down for an hour misses nothing. Deliveries are signed with HMAC-SHA256 over <timestamp>.<raw body> so you can prove a payload came from us; GET /v1/webhooks/signature documents the exact check.

Only https, only public addresses, verified again immediately before each delivery.

Endpoints

  • GET /v1/event-types - fields per stream, and whether the score is recomputable. Free.
  • GET /v1/health - freshness per source, anchored counts. Free.
  • GET /v1/events - the feed. Filter on event_type, ticker, cik, min_score, page with since.
  • GET /v1/events/{id} - one event.
  • GET /v1/companies/{ticker or cik}/events - everything for one company.
  • GET /v1/revisions - where the source has since said something different from what we published. Does not count against your monthly events.
  • GET /v1/usage - what you used this period and when it resets.
  • POST / GET / DELETE /v1/webhooks - manage delivery.

Errors say what went wrong and what to do about it, never just "forbidden".

FAQ

Do I need an Apify account?

No. You call `datasignalslab.com/v1` with the key we email you, and nothing else.

What happens when I hit my monthly limit?

The feed returns an empty page with your cursor unchanged and a notice explaining why. Nothing is skipped: resume from that cursor when your period resets or you upgrade.

When does my quota reset?

On your own renewal date, not on the first of the month. `GET /v1/usage` shows you which date that is.

Can I get history?

Every record we have ever ingested stays in the feed, so `?since=0` walks the whole archive within your monthly allowance.

Where does the data come from?

SEC EDGAR, openFDA, ClinicalTrials.gov, NIH RePORTER, USAspending.gov and the US House Clerk. All official, all public, each record linking back to its own filing.

Is the free plan a trial?

No, it is a permanent plan. It carries one stream, 250 events a month and a 24 hour delay - enough to check the shape of the data and the honesty of the scores before you pay.

What happens when I hit my monthly limit? The feed returns an empty page with your cursor unchanged and a notice explaining why. Nothing is skipped: resume from that cursor when your period resets or you upgrade.

When does my quota reset? On your own renewal date, not on the first of the month. GET /v1/usage shows you which date that is.

Can I get history? Every record we have ever ingested stays in the feed, so ?since=0 walks the whole archive within your monthly allowance.

Where does the data come from? SEC EDGAR, openFDA, ClinicalTrials.gov, NIH RePORTER, USAspending.gov and the US House Clerk. All official, all public, each record linking back to its own filing.

Is the free plan a trial? No, it is a permanent plan. It carries one stream, 250 events a month and a 24 hour delay - enough to check the shape of the data and the honesty of the scores before you pay.