Webhooks API — push sports event updates, no polling
Orbistats' webhooks API subscribes to the events you care about — goals, final results, odds moves — and pushes a signed JSON payload to your endpoint the instant they happen. No polling loop, no wasted requests, no delay waiting for the next poll interval.
Watch an event go out, live
The moment an event fires, we sign the payload and push it straight to your endpoint — no request from you, no polling loop, no delay. If your server doesn't answer, we automatically retry.
Everything in the webhooks feed
Event Subscriptions
Subscribe to specific leagues, matches or event types.
Instant Delivery
Payloads sent the moment an event occurs.
Retry Logic
Automatic retries with backoff on failed deliveries.
Signed Payloads
Verify authenticity with an HMAC signature header.
Delivery Logs
See every attempt, response code and retry in your dashboard.
13 Sports, One Format
Same event schema across every sport we cover.
Webhook events across 13 sports
Subscribe to the events you care about — the same signed payload format across every sport we cover.
Register an endpoint
Register the URL you want events delivered to, and the event types you want to subscribe to.
| Field | Type | Required | Description |
|---|---|---|---|
| url | string | Required | Your HTTPS endpoint to receive events. |
| events | array | Required | Event types to subscribe to, e.g. ["match.goal","match.finished"]. |
| sport | string | Optional | Limit the subscription to one sport. |
| secret | string | Optional | Custom signing secret. Auto-generated if omitted. |
Authorization: Bearer YOUR_API_KEY
{
"url": "https://yourapp.com/webhook",
"events": ["match.goal", "match.finished"]
}
What we send you
Every event arrives as a signed POST request to the URL you registered.
X-Orbistats-Signature: sha256=a1b2c3...
{
"event": "match.finished",
"event_id": "evt_9f2a1c4b",
"delivery_id": "dlv_7c3e08a1",
"sequence": 214,
"match_id": 48213,
"sport": "football",
"final_score": "2-1",
"timestamp": "2026-09-14T16:52:11Z"
}
event_id identifies the event itself — the same one on every retry. delivery_id identifies this one delivery attempt, so your logs can tell a fresh event apart from a retry of one you've already seen.
Compute an HMAC-SHA256 of the raw request body using your webhook secret, and compare it to the X-Orbistats-Signature header before trusting the payload.
Respond within 5 seconds — a timeout counts as a failure and queues a retry. Deliveries to one endpoint are also capped in flight at once, so a goal-heavy minute across hundreds of matches won't slam your server all at once.
Webhooks are at-least-once, not exactly-once — a retried delivery can land after the original already succeeded on our side. Two fields make that safe to build on:
| Field | What it guarantees |
|---|---|
| event_id | Stable per event. Dedupe on it — if you've already processed it, discard the repeat. |
| sequence | Monotonic per match_id. A retried delivery can arrive after a newer event, so gate on sequence, not arrival order. |
| Attempt | Delay |
|---|---|
| 1 | Immediate |
| 2 | ~30 seconds |
| 3 | ~2 minutes |
| 4 | ~10 minutes |
| 5 | ~1 hour, then marked failed |
Endpoint was down for longer than that? Nothing is lost — list and replay missed deliveries with GET /v1/webhooks/{id}/deliveries and POST /v1/webhooks/{id}/replay.
What you can subscribe to
| Event | Fires When | Ordering Key |
|---|---|---|
| match.started | A match kicks off. | match_id |
| match.goal | A goal or scoring event occurs. | match_id |
| match.finished | A match ends, final score included. | match_id |
| odds.moved | A price moves past your configured threshold. | match_id |
Register a webhook from any language
Official SDKs cover Python, JavaScript and PHP — every other language works over plain REST.
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{"url":"https://yourapp.com/webhook","events":["match.goal"]}'
Related products & sports
Prefer to hold a connection open instead of receiving pushes? Or jump straight to a sport-specific page.
WebSocket API
Persistent streaming alternative.
Live Scores API
The events behind the webhooks.
Odds API
Pre-match and live odds, normalized.
Trading Desks
React the instant odds move.
Football Data
Football-specific coverage and endpoints.
Full API Reference
Every endpoint, parameter and schema.
Start free. Upgrade when you need enterprise SLAs.
Self-serve API keys for developers today — dedicated infrastructure, custom feeds and SLAs when you're ready.