Novig has an official API for its sports prediction exchange, with a play-money paper environment for testing and a real-money production environment. Almost every route needs a signed request, and Novig checks your location on each one. This guide covers hosts, keys, signing and the main endpoints, from Novig’s developer documentation as checked October 2026.
The API at a glance
| Environment | REST host | Money | Location check |
|---|---|---|---|
| Paper | https://api.paper.novig.com |
Play money ($10,000 to start) | No |
| Production | https://api.novig.com |
Real money | Yes |
The websocket uses the same host as REST (for paper, wss://api.paper.novig.com). Keys only work in the environment where you created them, so production rejects a paper key. The full reference is Novig’s OpenAPI 3.1 spec.
Keys
- Management key: runs the account. It reads every wallet and manages subaccounts and keys, and it can move money, but it can’t place orders. Create it at Profile → Settings → Novig API on novig.com or paper.novig.com. Your browser generates the keypair and downloads the private key once; Novig never shows it again.
- Trading key: places and cancels orders for one subaccount and streams its order book and fills. It can’t move money. Each subaccount has one live trading key.
- Read-only scopes (
management::read,trading::read) can read but not write. Any key can read the catalog and market history.
Signing requests
Requests are signed with Ed25519, or P-256 where hardware needs it, and carry three headers: Novig-Key-Id, Novig-Timestamp and Novig-Signature. Test your signer with POST /v3/echo, which returns your request body with a 200 when the signature checks out.
Where you can use it
Every signed route runs two location checks and returns HTTP 451 if either fails (cancel requests skip them):
- An IP check that refuses Arizona, Michigan and Nevada, and VPN, proxy or Tor addresses. Data-centre addresses are allowed.
- A device check: the key holder’s phone must have geolocated outside those states, and placing orders needs a check from the past 3 days. Opening the Novig app refreshes it.
Main endpoints
| Endpoint | What it returns |
|---|---|
GET /v3/catalog/events, /v3/catalog/markets |
Events and markets, filtered by league, marketType, eventStatus, startsAfter/startsBefore; limit 1–5,000 (default 500), paged with after |
GET /v3/catalog/markets/{id}/book, /trades |
A market’s order book and trades |
GET /v3/catalog/consensus |
Consensus prices by league, market type or event |
GET /v3/history/markets, /events, /trades |
Settled markets and past trades |
GET /v3/history/markets/{id}/candles |
Price candles at 1m, 5m, 1h or 1d |
GET /v3/types/leagues, /sports, /markets |
Reference lists |
One route needs no key: GET /v3/public/types/markets/live, which lists live market types by league but can be up to two hours old. We called it on October 28, 2026 and got JSON back:
curl "https://api.novig.com/v3/public/types/markets/live"
Novig’s docs name two throttle classes, read and history, but don’t publish numeric limits.
Fees through the API
API trades follow Novig’s normal fee schedule: pre-game straights are free, and live and futures straights carry a taker fee. Parlays can’t be taken through the API. Details in our Novig fees guide.
FAQ
Does Novig have an API?
Can I use the Novig API from a VPN?
Sources: Novig developer docs (environments, API keys, catalog), checked October 28, 2026, plus our own test request that day.
Related: Prediction market APIs compared · Novig review · Kalshi API