View as markdown
Webhooks

State-change deduplication

Why you never receive 500 webhook events for one breakout.

The rule

One event per not-matching → matching transition.

For webhooks, the API tracks the last-known match state per (webhook, ticker) and only delivers an event when a ticker transitions from not-matching to matching. If a flag flickers true → false → true inside a minute, you get one event. If a ticker stays in the match set for three days, you get one event when it first matched and nothing for those three days. To re-fire for that ticker, it has to leave the match set first.

Polling is different

Deduplication is a webhook concept only.

Polling endpoints (/scan, /tickers, /signals) always return current state with no deduplication. If you’re polling and want edge-triggered behavior, diff the result set yourself between calls.

See also

Adjacent topics.