X-Novig-Signature header, and both have hard timing requirements.
POST {webhook_url}/quote
Novig calls /quote for every parlay RFQ that names outcomes you might quote. You return a price and a maximum wager you’re willing to back at that price.
Request body
Header:
X-Novig-Signature: BLAKE3(shared_secret, body).hex() — see Signing.
Response body
There is no expiry field. Quote validity is platform-owned: Novig anchors a TTL when the auction closes (currently 30
seconds pregame, 10 seconds for live markets) — your quote simply lapses when it expires.
Hard rules
- Non-2xx responses are dropped.
max_wager <= 0is dropped.- Malformed/unparseable JSON is dropped.
- A bad signature is dropped.
Declining to quote
If you don’t want to quote a particular RFQ, the simplest way is to return HTTP 204 No Content. Anything non-2xx works.POST {webhook_url}/confirm
If your quote is selected as the winner, Novig calls /confirm with the actual taker wager (which may be ≤ your max_wager) immediately before writing the trade. This is your last chance to back out.
Request body
Header: same
X-Novig-Signature scheme as /quote.
Response body
Type & encoding notes
- Decimal numbers (
max_wager,wager,priceon/confirm) are JSON strings, not numbers. priceon/quoteresponse is a JSON number in(0, 1)decimal probability.- UUIDs are lowercase strings with hyphens.