Create Webhook
Subscribe an HTTPS endpoint to signed event pushes.
Events that fire on their own: race.odds_open (a race's first bookmaker prices landed), race.result (a race's result went final, from 2026-10-13) and arb.opportunity (a cross-book arb opened). odds.change is the event POST /v1/webhooks/{id}/test sends and nothing else does. An unknown event name is a 422 that lists the events that fire, and nothing is created; market.suspend, withdrawn on 2026-10-13 because it never fired, is refused the same way.
Each delivery is a POST of the JSON payload with X-PuntersEdge-Event naming the event and X-Webhook-Signature: sha256=<hex>, the HMAC-SHA256 of the raw body keyed with the secret in this response. The secret is returned once, here (POST /v1/webhooks/{id}/rotate-secret issues a new one when the delivery queue is enabled).
Delivery is at-least-once: the same event can arrive more than once, so deduplicate on event_id (in the body, and sent as the X-PuntersEdge-Id and Idempotency-Key headers). There is no ordering guarantee between events. Each delivery carries X-PuntersEdge-Timestamp, X-PuntersEdge-Attempt and two signatures: X-Webhook-Signature: sha256=<hex> (HMAC-SHA256 of the raw body with your secret) and X-PuntersEdge-Signature: t=<unix seconds>,v1=<hex> (HMAC-SHA256 of <t>.<raw body>; refuse a t more than 5 minutes from now to block replays). Any 2xx answer is success. A 5xx, 408, 429, timeout or connection failure is retried after 1 min, 5 min, 30 min, 2 h, 6 h (6 tries in all, about 8.5 hours), honouring Retry-After up to the next step; any other answer is final. After 10 consecutive undeliverable events, or a day of continuous failure, the subscription is paused and the owner is emailed; POST /v1/webhooks/{id}/resume restarts it with the same secret, and POST /v1/webhooks/{id}/replay re-sends what was missed. The delivery log returns the newest 50 rows unless limit says otherwise.
Request
- Base URL: https://api.puntersedge.online
- URL: https://api.puntersedge.online/v1/webhooks
- Auth: API key in header X-API-Key
Headers
Request body
Example request
{
"url": "https://example.com/hooks/puntersedge",
"events": [
"arb.opportunity"
],
"min_edge_pct": 1.5,
"sports": [
"nrl",
"afl"
]
}Response
Successful Response
Changes
No recorded changes to this operation across all 1 revision of this API.