Place a buy or sell order on Polymarket
venue: "polymarket" in the request body.
| Field | Type | Required | Description |
|---|---|---|---|
venue | string | Yes | Must be "polymarket" |
tokenId | string | Yes | Outcome token ID from List Markets |
side | string | Yes | "buy" or "sell" |
type | string | Yes | "limit" or "market" |
amount | string | Market BUY only | USDC.e to spend |
size | string | Market SELL / all limits | Number of shares |
price | string | Limit orders only | Price per share, between 0 and 1 (exclusive) |
| Order Type | Required Fields | Rejected Fields |
|---|---|---|
| Market BUY | amount (USDC.e) | size |
| Market SELL | size (shares) | amount |
| Limit BUY | size + price | amount |
| Limit SELL | size + price | amount |
venue and tokenId separately, you can use a composite marketIdentifier:
polymarket:<tokenId>. If marketIdentifier is provided, venue and tokenId are parsed from it automatically. Explicit fields override parsed values.
The marketIdentifier is returned in all order and position responses, so you can reuse it directly when placing new orders on the same market.
| Constraint | Value |
|---|---|
| Price range | Between 0 and 1 (exclusive) |
| Min market order | > 1 USDC.e |
| Min limit order | > 5 shares |
| Status | Description |
|---|---|
open | Resting on the orderbook |
filled | Order fully executed |
cancelled | Order was cancelled |
expired | Order expired |
pending | Submitted but not yet confirmed (transitional) |
tokenId from List Markets. Each outcome (Yes/No) has its own token ID.platformFeeBps + partnerFeeBps. Cancelled and expired orders incur no fee.
| Field | Type | Present | Description |
|---|---|---|---|
policyApplied | boolean | Always | Whether a fee policy was applied |
feeBps | number | Always | Total fee in basis points (platform + partner) |
platformFeeBps | number | Always | Platform fee portion (currently 0 bps) |
partnerFeeBps | number | Always | Partner fee portion (0 if no partner fee) |
grossAmount | string | Market BUY only | Original USDC.e amount requested |
netOrderAmount | string | Market BUY only | Order amount after fee deduction |
maxFeeReserved | string | Market BUY only | Maximum fee reserved (grossAmount − netOrderAmount) |
amount is reduced before execution.
size is used for the order. The fee is calculated and settled automatically after the order fills.
size since the input is USDC.e-based. Use sizeMatched to see the shares received.Unique identifier for the user
Buy or sell
buy, sell Order type
limit, market Trading venue ('polymarket' or 'predict')
polymarket, predict Outcome token ID
Numeric market ID (required for Predict orders)
Composite identifier (e.g., 'predict:46954:tokenId'). Alternative to providing venue, marketId, and tokenId separately.
Stablecoin to spend - USDC.e for Polymarket, USDT for Predict (market BUY only)
Number of shares (market SELL, all limit orders)
Price per share, between 0 and 1 (exclusive). Required for limit orders.
Order placed successfully
Unique order identifier
Trading venue ('polymarket' or 'predict')
Composite identifier (e.g., 'polymarket:tokenId' or 'predict:marketId:tokenId')
Outcome token ID
Order side: buy or sell
The outcome being traded (e.g., Yes, No)
Number of shares (when size was provided in request)
Execution or limit price
Order status: open, filled, cancelled, expired, or pending (transitional)
ISO 8601 timestamp. May be empty for Predict orders.
Number of shares filled
Original order size in shares
Fee metadata (when fees are active)