Place a prediction market limit or stop-limit order. For active trading and market making, prefer WebSocket order.place; use REST order placement for payload reference and one-off server workflows. For post-only/maker-only REST behavior, set makerOrCancel to true.
Before sending a Prediction Markets order, check Get Terms Status. If the latest terms are not accepted, display Get Terms and call Accept Terms, then retry the order.
Roles
The API key you use to access this endpoint must have the Trader role assigned. See Roles for more information.
The OAuth scope must have orders:create assigned to access this endpoint. See OAuth Scopes for more information.
REST vs WebSocket Payloads
WebSocket is the preferred path for active trading and market making. REST order placement is for reference and one-off server workflows. REST and WebSocket order payloads are not interchangeable:
Task
WebSocket
Code
order.place
REST
Code
POST /v1/prediction-markets/order
Outcome
Code
eventOutcome: "YES"
Code
outcome: "yes"
Order type
Code
type: "LIMIT"
Code
orderType: "limit"
Maker-only
Code
timeInForce: "MOC"
Code
timeInForce: "good-til-cancel"
,
Code
makerOrCancel: true
Side
Code
side: "BUY"
Code
side: "buy"
Headers
X-GEMINI-APIKEYstring·required
Your API key
X-GEMINI-SIGNATUREstring·required
HEX-encoded HMAC-SHA384 of payload signed with API secret
Order type. `stop-limit` orders require a `stopPrice` that triggers a limit order at `price` when the market reaches the trigger.Enum values: limitstop-limit
sidestring·enum·required
Enum values: buysell
quantitystring (decimal)·required
Number of contractsExample: 100
pricestring (decimal)·required
Limit price (0-1 range)Example: 0.65
stopPricestring (decimal)
The price to trigger a stop-limit order (0-1 range). Only available for stop-limit orders. See [Stop-Limit Orders](#operation/placeOrder) above for `stopPrice`/`price` constraints.Example: 0.60
outcomestring·enum·required
The outcome being traded (Yes or No)Enum values: yesno
timeInForcestring·enum
Order execution behavior:
- `good-til-cancel` - Order remains active until filled or cancelled (default)
- `immediate-or-cancel` - Fill immediately or cancel remaining
- `fill-or-kill` - Fill entire order immediately or cancelEnum values: good-til-cancelimmediate-or-cancelfill-or-kill
makerOrCancelboolean
Set to `true` to require maker-only behavior. If the order would immediately take liquidity, the order is cancelled instead of filling.
The outcome being traded (Yes or No)Enum values: yesno
orderTypestring·enum
Order type. `stop-limit` orders require a `stopPrice` that triggers a limit order at `price` when the market reaches the trigger.Enum values: limitstop-limit
quantitystring
Original order quantity
filledQuantitystring
Amount filled so far
remainingQuantitystring
Amount remaining to fill
pricestring
Limit price
stopPricestring
Stop trigger price (populated for `stop-limit` orders)
avgExecutionPricestring
Average price of fills
createdAtstring (date-time)
updatedAtstring (date-time)
cancelledAtstring (date-time)
contractMetadataobject
contractMetadata.contractIdstring
contractMetadata.contractNamestring
contractMetadata.contractTickerstring
contractMetadata.eventTickerstring
contractMetadata.eventNamestring
contractMetadata.categorystring
contractMetadata.contractStatusstring
contractMetadata.eventTypestring
Event type ("binary" or "categorical")
contractMetadata.expiryDatestring (date-time)
contractMetadata.resolvedAtstring (date-time)
contractMetadata.resolutionSidestring
Winning outcome if resolved ("yes" or "no")
contractMetadata.parentEventTickerstring
Parent event ticker for sub-events
contractMetadata.startTimestring (date-time)
Start datetime (ISO 8601)
Example Responses
{
"orderId": 12345678901,
"status": "open",
"symbol": "GEMI-FEDJAN26-DN25",
"side": "buy",
"outcome": "yes",
"orderType": "limit",
"quantity": "100",
"filledQuantity": "0",
"remainingQuantity": "100",
"price": "0.65",
"avgExecutionPrice": null,
"createdAt": "2025-12-15T10:30:00.000Z",
"updatedAt": "2025-12-15T10:30:00.000Z",
"cancelledAt": null,
"contractMetadata": {
"contractId": "contract_123",
"contractName": "FEDJAN26-DN25",
"contractTicker": "FEDJAN26-DN25",
"eventTicker": "FEDJAN26",
"eventName": "Will Fed Funds Rate drop at least 0.25% at January 2026 meeting?",
"category": "economics",
"contractStatus": "active",
"imageUrl": "https://example.com/fed.png",
"expiryDate": "2026-01-31T23:59:59.000Z",
"resolvedAt": null,
"description": "Resolves YES if Federal Reserve lowers the target rate by 0.25% or more at the January 2026 FOMC meeting"
}
}