Skip to main content
POST
/
v1
/
trade
/
orders
Create Orders
curl --request POST \
  --url https://api.perpetuals.polymarket.com/v1/trade/orders \
  --header 'Content-Type: application/json' \
  --data '
{
  "op": {
    "type": "createOrders",
    "args": [
      {
        "iid": 1,
        "buy": true,
        "qty": "10.00",
        "p": "100.00",
        "po": false,
        "ro": false,
        "c": "550e8400e29b41d4a716446655440000",
        "tr": {
          "market": true,
          "trp": "110.00"
        }
      }
    ]
  },
  "sig": "0x1234567890...",
  "salt": 1234567890,
  "ts": 1767225600000,
  "exp": 1767225600000
}
'
[
  {
    "status": "ok",
    "oid": 1234567890,
    "coid": "550e8400e29b41d4a716446655440000"
  }
]
Request Weight: 1 + floor(n / 20) Action Weight: 1 / order

Body

application/json

Order request.

op
object
required
sig
string
required

Signature in hex format

Example:

"0x1234567890..."

salt
integer
required

Salt

Example:

1234567890

ts
integer
required

Request timestamp. Unix milliseconds for most operations; Unix seconds for withdrawals (must match the on-chain EIP-712 struct verified against block.timestamp).

Example:

1767225600000

exp
integer

Command expiry timestamp in Unix milliseconds. If provided, it must be in the future and within the gateway's default command timeout. It can shorten request validity but cannot extend it. This is not an order auto-cancel time.

Example:

1767225600000

Response

Order ACK response. Order result should be fetched using the get orders endpoint.

status
enum<string>
required
Available options:
ok
oid
integer
required

Order ID

Example:

1234567890

coid
string

Echoed only when the request carried a client_order_id.

Required string length: 32
Pattern: ^[0-9a-f]{32}$
Example:

"550e8400e29b41d4a716446655440000"