Prediction Markets WebSocket streams use the same protocol as the main WebSocket API. Symbols follow the prediction markets format (e.g. GEMI-PRES2028-VANCE).
Book Ticker
Schema
Frequency
Description
{symbol}@bookTicker
Real-time
Real time updates to the best bid/ask price for an order book.
Status, NEW / OPEN / FILLED / PARTIALLY_FILLED / CANCELED / REJECTED / MODIFIED
O
string
Event outcome, YES / NO
p
string
Order price
q
string
Original quantity
z
string
Remaining quantity
Z
string
Executed quantity. For FILLED / PARTIALLY_FILLED events, this is the quantity filled in the last execution. For CANCELED and other events, this is the cumulative quantity filled over the lifetime of the order.
L
string
Last execution price
t
number
Trade ID
r
string
Rejection reason
T
number
Update time (nanoseconds)
Fields with empty or zero values may be omitted from the event.
Rejection Reasons
When an order is REJECTED, the r field contains one of:
Reason
Description
MarketNotOpen
Market is closed or paused
InsufficientFunds
Account lacks sufficient balance
InvalidPrice
Price must be between $0.01–$0.99
LimitPriceOffTick
Price does not align with tick size
InvalidQuantity
Quantity below minimum or off increment
InvalidTotalSpend
Total spend calculation error
DuplicateOrder
Duplicate client order ID
InsufficientLiquidity
Not enough liquidity at price
UnknownInstrument
Trading pair does not exist
TERMS_NOT_ACCEPTED
Prediction Markets terms not accepted in the Gemini Exchange UI
Cancellation Reasons
When an order is CANCELED by the system, the r field contains one of:
Reason
Description
SelfCrossPrevented
Self-trade prevention triggered
FillOrKillWouldNotFill
FOK order could not fill completely
ImmediateOrCancelWouldPost
IOC order would post to book
MakerOrCancelWouldTake
MOC order would take liquidity
AuctionCancelled
Auction-related cancellation
ExceedsPriceLimits
Price moved beyond limits
Balance Updates
Requires an authenticated session
Schema
Frequency
Description
balances@account
Real-time
Real time balance updates for the account associated with the authenticated API key
balances@account@1s
Periodic (1s)
Periodic snapshot of all balances every second for the account associated with the authenticated API key
The balances@account stream pushes updates in real time whenever a balance change occurs, and only includes the assets that changed. The balances@account@1s stream sends a complete snapshot of all account balances every second, regardless of whether they changed. On subscribe, balances@account@1s will immediately send the current balances if available.