Create a target and rule
Use the account webhook-target and alert-rule endpoints in the reference. Each POST has a UUIDrequest_id: retry identical content with the same ID, or receive 409 for conflicts. Target creation and rotation show a base64url signing secret once. A repeated response omits the secret; rotate explicitly if the first response was lost.
A rule binds to an active key ID owned by the account, explicit namespace/source, permanent native_fixture_id and exact quote_key. It requires current alerts and odds API grants, source/sport/family/beta access, plus a separate expiring account/source/region alerts-purpose review. Ordinary REST, history/export or paid access does not establish outbound rights. Working-source customer webhook rights remain unresolved.
Rules start at the current head without historical backfill. threshold_bps (1–10000) measures the absolute change in gross probability, not a relative odds percentage. within_seconds (1–3600) bounds the gap from the prior price’s last recorded confirmation to the new observation. Direction up|down|either refers to probability; decimal 2.00→4.00 is −2500 bps. Comparisons are exact rational math; reported changes are strings with eight decimal places.
This watches adjacent observations of one native offer/outcome/side/depth. Unchanged confirmations refresh the baseline without adding ticks. Tied-time A→B→A survives replay/restarts. Stale, suspended, unknown-liquidity, missing-baseline and changed-metadata evidence do not become alerts. There is no sharp, fair-price, arbitrage or rolling-high/low opportunity signal. Current reference coverage is insufficient for those products.
Receive signed raw bytes
The POST includesOddswire-Signature: t=<unix-seconds>,v1=<hex HMAC-SHA256>. The signed message is the ASCII timestamp, a period, then the exact raw request body. Verify before JSON parsing with a ±300-second tolerance:
id, atomically with your work/enqueue, before returning 2xx. The payload includes method, rule/region/threshold/window, canonical before/after observations with native identity, detected time and expiry. It is historical movement evidence, not a confirmed executable price. Never use an unsigned delivery header alone as your deduplication authority.