Overview
You can show Novig prices on your odds screen with our REST API. You list a league’s markets from the catalog, then read each market’s order book to get its prices. Every example reads the host fromNOVIG_HOST. On Production that is https://api.novig.com.
Get a key
The catalog accepts atrading or trading::read key, and you sign every request.
A trading::read key can read but can’t place orders, so it fits a read-only integration.
- Get a key shows how to create each kind of key.
- Sign a request explains the three signature headers in the examples below.
- Location checks explains why a signed route can return
451.
Routes
Each route spends the
read throttle. Throttling explains how to pace your requests.
List a league’s markets
A market leaves the catalog when it closes, so the catalog lists only markets you can still trade.- Request
- 200
To read the next page, pass the reply’s
next as after.
Catalog lists every filter, including marketType, startsAfter, and startsBefore.
For each event’s name, start time, and status, call GET /v3/catalog/events?league=NFL and match on eventId.
Build on IDs, not on
description. An outcome ID stays stable for the life of its market.Read the order book
- Request
- 200
orders is an outcome ID.
Each outcome’s array lists the best price first. Within a price, it lists the earlier order first.
depth sets how many price levels you get per outcome, from to . It defaults to .
To skip an unchanged book, send the previous reply’s ETag in If-None-Match. An unchanged book returns 304.
Turn the book into prices
Every order on the book is a bid: an offer to buy one outcome at a price. A price is a probability, written as a decimal string. A bid resting at0.665 on one outcome is liquidity for the other outcome.
A taker on the other outcome trades against it at 0.335.
So the price you show for an outcome is 1 minus the best bid on the other outcome.
The size you show is the qty of that bid, in contracts.
Using the book above:
Monetary representations explains prices, quantities, and the price grid.
A three-way moneyline is three separate Yes / No markets, not one market with three outcomes.
Three-way moneylines explains how to read them.
When an event goes live, we void every resting order on its markets, so its books start empty in-game.
Event lifecycle lists each event status.
Show the last traded price
GET /v3/catalog/markets/{id}/trades lists a market’s executions, newest first.
Each trade carries its outcomeId, price, qty, and ts.
Get live updates
Each book request spends from yourread throttle.
To follow prices live, subscribe to the book channel on the websocket. It reports every change to a market’s book.
The REST book’s seq is the book’s sequence number at that snapshot. The next book delta on the websocket follows it.
Supported leagues
Read the current list of leagues fromGET /v3/types/leagues.
Pass one or more of its names to league, separated by commas.
