Place 1 to 20 prediction market orders in one authenticated request. The batch is synchronous and non-atomic: up-front validation rejects the entire batch, while exchange submission errors are returned per entry and do not stop later entries.
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 batch.
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.
Batch Behavior
The complete
Code
{"orders":[...]}
payload is encoded and signed once.
Gemini validates the batch size and every order before submitting anything. Any up-front validation, account, terms, or risk failure rejects the entire request.
After validation, orders are submitted sequentially and results remain aligned with request order.
An exchange rejection such as
Code
InsufficientFunds
is returned in that entry's result. Other valid entries continue to be submitted.
Headers
X-GEMINI-APIKEYstring·required
Your API key
X-GEMINI-SIGNATUREstring·required
HEX-encoded HMAC-SHA384 of payload signed with API secret
X-GEMINI-PAYLOADstring·required
Base64-encoded JSON payload
Content-Typestring
Default: text/plain
Content-Lengthstring
Default: 0
Cache-Controlstring
Default: no-cache
Request Body
ordersarray·required
Orders to submit. Every entry is validated before any order is submitted. All orders use the account associated with the authenticated request.
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
orders[].sidestring·enum·required
Enum values: buysell
orders[].quantitystring (decimal)·required
Number of contractsExample: 100
orders[].pricestring (decimal)·required
Limit price (0-1 range)Example: 0.65
orders[].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
orders[].outcomestring·enum·required
The outcome being traded (Yes or No)Enum values: yesno
orders[].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
orders[].makerOrCancelboolean
Set to `true` to require maker-only behavior. If the order would immediately take liquidity, the order is cancelled instead of filling.