Skip to main content
We are deploying tonight (September 3) at approximately 1:00 AM ET, at the conclusion of the last MLB game. We expect brief downtime and will cancel open orders on live markets before resuming trading.
We are deploying tonight (August 26) at the conclusion of the last MLB game. We expect some downtime overnight and will cancel open orders on live markets before resuming trading.Two changes ship with tonight’s deploy:outcomeIds filter becomes comma-separated. GET /nbx/v2/emm/positions/all requires the outcomeIds filter as a single comma-separated value. The repeated-parameter and outcomeIds[] bracket styles will no longer filter the response.Before (no longer filters):
After:
Action required if you request more than one outcome ID at a time: switch to the comma-separated form before maintenance tonight. Requests for a single outcomeIds value are unaffected. After cutover, the old form returns your full position list unfiltered rather than erroring, so check that your response size matches what you asked for.Gzip compression on HTTP responses. Responses from api.novig.com are now gzip-encoded when the request sends Accept-Encoding: gzip and the body is 1 KB or larger. Those responses carry Content-Encoding: gzip and Vary: Accept-Encoding; everything else is byte-identical to before. Schemas are unchanged, and WebSocket traffic is unaffected.Any mainstream HTTP client decompresses this transparently. Any client that advertises gzip and then ignores Content-Encoding may break. Honor the header, or drop gzip from your Accept-Encoding.
Effective Thursday, August 20, 2026, RFQ parlay settlement pays out a scalar of the legs’ resolved values instead of refunding the full stake on any void — a lost leg still settles the parlay as a loss. Full details: Parlay Settlement.
NCAA Football (NCAAF) events and markets are going live in Production starting August 14, 2026.Supported market types:
  • MONEY - Moneyline
  • SPREAD - Point spread
  • TOTAL - Total points
Two new pages: Trading Fees and the Live Trading Maker Credit Program.Action required: reset all ID mappings. Every NBX identifier was regenerated at cutover — event, market, and outcome UUIDs alike.Trading fees. One formula, charged on the taker side only, and only on fills matched while the underlying event is live:
P is the fill’s execution price (not your limit price), the coefficient is currently 0.03, and Contracts counts $1.00-payout contracts — note that the API’s qty field is in minimal units, 100 qty to a contract. Each fill is priced independently and charged exactly, sub-cent amounts included: there is no cent floor and no rounding up, only the ledger’s 5-decimal ($0.00001) precision. The formula is symmetric around $0.50, so a fill at $0.30 costs what a fill at $0.70 costs, peaking at $0.0075 per contract at $0.50. Worked examples are on the Trading Fees page.Maker Credit Program, live as of 12:00 AM ET on August 4, 2026. There is no maker fee, and no opt-in or contract is required. If your make order is matched while the event is in-game, you earn a cash credit of 50% of the taker fee actually collected on that trade — 0.015 × P × (1 − P) × Contracts at the current percentage — credited as cash within seven calendar days. The timing of when you placed the order doesn’t matter; a resting order placed before kickoff that fills in-game qualifies. Combination (parlay) contracts are excluded, as are Affiliates of the Exchange and Members with an executed Market Maker Agreement. Full terms on the program page.Both hinge on liveness, so read it from the API, not the clock. Fees and credits apply only while an event’s status is OPEN_INGAME, evaluated at match time. Use the EVENT_GOLIVE / EVENT_UNLIVE ticks on the lifecycle channel, or the status field on the events endpoints — see Market Lifecycle Channel. A delayed or suspended game can enter and leave live play more than once, so the fee window can open more than once per event.Trade history from the sweepstakes platform is not available on the DCM. If you would like a detailed trading history from the previous environment, reach out to caleb.henry@novig.co and we will send it over.
The lifecycle channel now publishes two new tick types, EVENT_GOLIVE and EVENT_UNLIVE, marking the two edges of an event entering and leaving live play (OPEN_INGAME). Full details: Market Lifecycle Channel.Why you want this: taker fees follow liveness. Taker fees are charged only on fills matched while the event is live (OPEN_INGAME). Non-live fills are uncharged, and makers are never charged a fee. Liveness is resolved at match time from the event status these ticks announce, so the lifecycle channel is now the low-latency signal for whether a fill you are about to take will be charged.What’s new:
  • EVENT_GOLIVE — the event went live. Every order resting across that event’s markets is cancelled. The markets stay OPEN and keep accepting orders.
  • EVENT_UNLIVE — the event is no longer live (delayed, suspended, final). Nothing is cancelled; resting orders are untouched.
  • Both are event-level: you receive one tick per open market in the event, each carrying the same eventId.
  • On EVENT_GOLIVE, the tick arrives before the individual CANCEL ticks that itemize the drain on the tape, market, and private channels.
  • No changes to existing tick types, and no action required if you don’t consume liveness — but if you switch on type, expect the two new values.
These edges repeat — EVENT_GOLIVE is not a one-time flag. A game that is delayed or suspended mid-play goes OPEN_INGAME → DELAYED → OPEN_INGAME, emitting EVENT_GOLIVE, EVENT_UNLIVE, then EVENT_GOLIVE again. Each EVENT_GOLIVE drains every order resting on that event’s markets, including orders you placed during the delay. Keep a per-event live flag, set it on EVENT_GOLIVE, clear it on EVENT_UNLIVE, and don’t treat the first EVENT_GOLIVE as terminal. Halftime does not un-live a game; a weather or injury suspension does.REST is the snapshot; the WebSocket is the edges. Event status has always been readable over REST, and it remains the authoritative snapshot — use it to bootstrap on connect and after any reconnect, since you can’t see edges that fired while you were disconnected:
Derive liveness from the tick type or from the REST status field — not from market.event.status on a tick, which is a snapshot from when the market entered the book and may be absent entirely.
Trading has resumed. All open orders were cancelled prior to unlocking.
The system has been locked due to a technical issue. Open orders will be cancelled prior to the resumption of trading.
After Sunday, August 2, 2026, the 5 second taker delay (speedbump) will be removed, as previously announced ahead of the DCM cutover.What’s changing:
  • Incoming orders will no longer be held for a delay before matching — they will be eligible to match immediately upon acceptance.
  • No API changes are required; request and response schemas are unchanged.
Trading has resumed. All open orders were cancelled prior to unlocking.
The system has been locked due to a technical issue. Open orders will be cancelled prior to the resumption of trading.
Trading has resumed. All open orders were cancelled prior to unlocking.
The system has been locked due to a technical issue. Open orders will be cancelled prior to the resumption of trading.
We are deploying tonight (July 29) at the conclusion of the last MLB game. We expect some downtime overnight and will cancel all open orders before resuming trading.What’s changing: JIT collateral replaces the credit system.
  • Your balance is only deducted when an order fills.
  • Resting orders no longer decrease your available balance.
  • Collateral is taken just-in-time at match, so you can rest more size against the same balance.
This is not the DCM cutover. Tonight’s deploy happens on the current platform. See DCM Cutover: FAQ & Steps for what you need to do before cutover, including the onboarding form.Questions or anything unexpected after the deploy, reach out.Separate Reminder: Novig will be at Bet Bash. If you’d like to connect while we’re there, reach out to Caleb Henry and we’ll find time.
Ahead of our cutover to a CFTC-regulated DCM, here’s what you need to do and what’s changing. For full details, see DCM Cutover: FAQ & Steps.DCM Onboarding Form (Action Required):
  • Ensure you’ve completed the DCM onboarding form
  • Without this form, you will not be able to trade post DCM cutover.
New Order Type: Post Only (PO):
  • A new PO (post only) order type is now available. Also known as make only / rest only.
Taker Delay Removal:
  • Post DCM cutover, we will be removing the 5 second taker delay.
Credit System Removal:
  • We are removing the credit system and switching to just-in-time (JIT) collateral. In practice this means your balance is only deducted when an order fills — you will be able to place resting orders without decreasing your available balance.
  • This shipped ahead of cutover, on July 29, 2026.
Maker Rebate:
  • Post cutover, we will have a maker rebate, calculated as 50% of taker trading fees on live markets.
  • There will be no maker fee, and no opt-in or contract is required to collect maker rebates.
Parlays via RFQ:
  • If you’re interested in quoting parlays via RFQ, please reach out to caleb.henry@novig.co and we will get you onboarded.
New market types are available on QA as of June 29, 2026, and will be rolled out to Production by Tuesday, June 30, 2026.New market types:
  • TO_ADVANCE - Which team advances to the next round (FIFA World Cup)
  • PLAYER_GAMES_WON - Tennis player total games won in a match (ATP, WTA)
Expanded markets:
  • SPREAD and TOTAL alternates are now offered across all soccer leagues
Hey everyone, we’ll be doing a deployment tonight starting around 1AM EDT. We’ll cancel open orders before resuming trading.
We will be deploying critical infrastructure updates tomorrow (June 2) at 9:00 AM eastern. We expect approximately 1 hour of downtime.Separate Reminder: The deadline for the new tick table has passed. We have not yet started rejecting orders on invalid ticks, but will be doing so soon and with minimal notice — please get your implementation across the line ASAP.If you have any questions about the tick table please do not hesitate to reach out.
You can now call GET /nbx/v2/emm/markets/{marketId} for markets that have already settled. The response includes settledAt and the outcomes’ WIN/LOSS statuses, so you can look up final results without needing to capture them while the market was still open.
We’ve raised the limits on the user history endpoints:
  • Burst: 16 requests/second (up from 5)
  • Sustained: 256 requests/minute (new, smoothed over 60s)
  • Page size (limit parameter): max 256 items per request (up from 100)
Affected endpoints:
  • GET /nbx/v2/emm/fills/all
  • GET /nbx/v2/emm/orders/all
  • GET /nbx/v2/emm/transactions
A note on last week’s change: Last week’s rate-limit adjustment broke things for some of you and we’re sorry about that. The new burst + sustained limits above should give you a lot more room to work with. Going forward, any rate limit change will be announced in our changelog with enough lead time for you to adjust.
A new REST endpoint is available for fetching the canonical set of valid order prices (ticks).New endpoint:Orders must be priced at a valid tick; submissions at off-tick prices will be rejected.Migration cutover: June 1, 2026. Until then, previously valid prices will continue to be accepted. After June 1, only tick-table prices will be accepted.Market makers should fetch the tick table dynamically and not hardcode it, as the table may change in the future. See the Tick Table page for details.
A new REST endpoint is now available for requesting new strikes on existing markets.New endpoint:Submit a marketId and strike value to notify the Novig team. Whole number strikes (e.g. 300) are automatically converted to half-point strikes (e.g. 300.5). A successful response does not guarantee the market will be created.
TEAM_TOTAL markets for NCAA Basketball (NCAAB) are now active on Production as of March 19, 2026.New market type:
  • TEAM_TOTAL - Individual team total points markets for NCAAB events
Two new baseball leagues are now available on QA as of March 4, 2026, and will go live in Production start of business March 5, 2026.New leagues:
  • NCAABSB - NCAA Baseball
  • WBC - World Baseball Classic
Supported market types:
  • Mainline
  • Spread
  • Totals
New market types for soccer events are now available on QA as of February 23, 2026, and will be rolled out to Production by end of month.New market types:
  • ASSISTS - Player assist markets
  • BOTH_TEAMS_TO_SCORE - Both teams to score markets
  • FOULS - Foul markets
  • GOALS_ASSISTS - Combined goals and assists markets
  • PLAYER_GOALS - Individual player goal markets
  • SAVES - Goalkeeper save markets
  • SHOTS_ON_TARGET - Shots on target markets
  • TEAM_TOTAL_CORNERS - Team corner kick totals
  • TOTAL_CORNERS - Match total corner markets
New REST endpoints for fetching events and markets are now available on both Production and QA environments. These endpoints provide a simpler alternative to GraphQL for event discovery and market data.New endpoints:
  • GET /nbx/v2/emm/events - List events with filters
  • GET /nbx/v2/emm/events/{eventId} - Get a single event
  • GET /nbx/v2/emm/events/getMarketsByEvent/{eventId} - Get markets with orderbook data
  • GET /nbx/v2/emm/event-metadata/leagues - List available leagues
  • GET /nbx/v2/emm/event-metadata/types - List event types
  • GET /nbx/v2/emm/event-metadata/statuses - List event statuses
If you’re currently using GraphQL for event queries, see our GraphQL to REST Migration Guide for detailed migration instructions.
The oauth/token endpoint will be deprecated on January 31, 2026. Please migrate to the new /auth/emm-token endpoint before this date. See the Auth Migration Guide for details.