ℹ️ US Only: Prediction markets are currently only available to users in the United States.
Trade on real-world events using Gemini's same trading infrastructure that powers crypto markets. Prediction markets use the same order books, market data feeds, and trading APIs you already know.
⚡ First trade in 10 minutes: Follow steps 1-3 to go from API key to live order.
Trading Workflow
Use the interactive API reference to try each endpoint with live examples.
1. Discover Markets
Browse active events to find markets you want to trade. Each event returns the trading symbol, current price, and expiry date you need to place orders.
GET /v1/prediction-markets/events- List all eventsGET /v1/prediction-markets/events/{ticker}- Get event detailsGET /v1/prediction-markets/categories- List categories
2. Check Market Data
See live prices and liquidity before trading. Prediction markets use the exact same market data endpoints as crypto trading:
GET /v1/book/{symbol}- Order book depthGET /v1/trades/{symbol}- Recent tradesGET /v2/ticker/{symbol}- Current prices- WebSocket - Subscribe to real-time updates (docs)
- Fast API - Low-latency market data (same as crypto)
3. Place Orders
Submit limit orders using Gemini's proven trading engine. Only limit orders are currently supported.
POST /v1/prediction-markets/order- Place orderPOST /v1/prediction-markets/order/cancel- Cancel order
4. Monitor Your Trades
Track your active orders and view filled positions.
POST /v1/prediction-markets/orders/active- Get active ordersPOST /v1/prediction-markets/orders/history- Get order historyPOST /v1/prediction-markets/positions- Get current positions
Understanding Pricing
Prediction markets work differently than traditional trading. Each contract pays $1 USD if you're right or $0 if you're wrong. All prediction markets trade in USD.
The Basics
Price = Probability
- If YES costs $0.65, the market thinks there's a 65% chance YES happens
- If NO costs $0.35, the market thinks there's a 35% chance NO happens
- YES price + NO price = $1.00 (always)
Why They're Connected
Since only one outcome can win, buying YES is the same as taking a position against NO. Here's how it works:
- You pay $0.65 for a YES position
- The other side pays $0.35 for a NO position
- Total: $1.00 collected
- Winning side receives the $1.00 payout
Example 1: Buying YES
You want to buy YES because you think YES is underpriced at $0.65
API call:
Code
What happens:
- You pay $65 for 100 YES contracts at $0.65
- Someone else pays $35 for 100 NO contracts at $0.35
- Platform holds $100 ($1 per contract)
At settlement:
- YES wins: You get $100 back → $35 profit ($100 - $65)
- NO wins: Other side gets $100 → You lose $65
Example 2: Selling YES (Buying NO)
You want to sell YES because you think YES is overpriced at $0.65
This is the same as buying NO at $0.35:
API call:
Code
What happens:
- You pay $35 for 100 NO contracts at $0.35
- Someone else pays $65 for 100 YES contracts at $0.65
- Platform holds $100 ($1 per contract)
At settlement:
- YES wins: Other side gets $100 → You lose $35
- NO wins: You get $100 back → $65 profit ($100 - $35)
Key Takeaway
Markets are fully collateralized - the platform always holds $1 per contract. Every trade has a YES buyer and a NO buyer, and their payments add up to exactly $1 per contract.
Setup (5 minutes)
Before you begin:
- Accept Prediction Markets Terms: Log into the Gemini Exchange and accept the Prediction Markets terms of service
- Create an API Key: Visit Settings/API to generate credentials
- Enable Permissions: Your API key needs
NewOrderandCancelOrderpermissions - Review Authentication: See API Key authentication for request signing details and code examples
Next Steps
- Explore the API playground - Send real requests and see live responses
- REST Market Data APIs - Order books, trades, tickers
- WebSocket APIs - Real-time price feeds
- API Authentication - Complete auth guide
Troubleshooting
400 Bad Request: Check that price is between $0-$1, quantity is greater than 0, and all required parameters are valid
401 Unauthorized: Verify your API key, signature, and request nonce. Ensure your key has the required permissions enabled
403 Forbidden (TERMS_NOT_ACCEPTED): You must accept the Prediction Markets terms of service in the Gemini Exchange UI before placing orders
422 Order Rejected: You may have insufficient funds, an invalid trading symbol, or the market may be closed
Important Notes
API Stability: Only fields documented in the API specification are considered stable. Undocumented fields in API responses may change or be removed without notice.

