Skip to main content
Subscribe to events when you create an endpoint. An endpoint only receives the types it asked for. The live list is served from GET /api/webhooks/events.

Billing

Your balance has fallen below $1.00. Fires once on the request that crosses the threshold, not on every request after it, so topping up is the only thing that arms it again.
A request was refused because the balance could not cover it. The request that triggered this also returned 402.
A top-up settled and the credit has been applied.
A top-up did not complete. No credit was applied.

API keys

A new API key was issued. The secret is never included.
A key was revoked and stopped working immediately.
These two are useful as an audit trail. Forward them to your own logging and you have a record of every credential issued against the account.
A search finished.
search.completed fires on every search, so a busy account will generate a high volume of deliveries. Searches are synchronous, which means the caller already has the results when the HTTP response returns. Subscribe to this only if something other than the caller needs to know.

Envelope

Every payload has the same four fields regardless of type.
New event types and new fields inside data are added over time. Ignore what you do not recognise rather than failing on it.

Ordering and duplicates

Deliveries are not ordered. A retried event can arrive after a newer one, so do not infer sequence from arrival time. Use created_at when order matters. Each event is delivered to each endpoint once, and a retry reuses the same id. Treat id as an idempotency key and ignore one you have already processed.