Messages
{
"message": "createOrder",
"content": {
"clientRequestId": "3e2c3bb4-be3f-4d05-9133-51d3a27b74ef",
"orderId": "01M3STNFPN53F1JWX1B7R023WV",
"market": "BTC-3JUL26-55000-C",
"price": "6400",
"quantity": "1",
"orderType": "buy",
"tradeType": "limit",
"postOnly": false
}
}{
"message": "modifyOrder",
"content": {
"clientRequestId": "ee86bd11-6478-4aa2-917a-17c94b6c2db7",
"market": "BTC-3JUL26-55000-C",
"orderId": "01KWK47RT6A4DD1TCQE662QJ3W",
"price": "6300",
"quantity": "1"
}
}{
"message": "cancelOrder",
"content": {
"clientRequestId": "b56692f8-4322-411d-846f-268c01cd4fa9",
"market": "BTC-3JUL26-55000-C",
"cancelBy": "orderId",
"orderId": "01KWK47RT6A4DD1TCQE662QJ3W"
}
}{
"message": "cancelAllOrders",
"content": {
"clientRequestId": "5d2a7f0e-1c3b-4e8a-9f61-2b7c4d9e0a13",
"market": "BTC-3JUL26-55000-C"
}
}{
"resultType": "createOrder",
"market": "BTC-3JUL26-55000-C",
"data": {
"statusCode": 202,
"body": "order received",
"order": {
"contract": "BTC-3JUL26-55000-C",
"orderId": "01KWK47RT6A4DD1TCQE662QJ3W",
"orderType": "buy",
"tradeType": "limit",
"price": "6400",
"quantity": "1",
"filledQuantity": "0",
"avgFillPrice": "0",
"leverage": "0",
"orderStatus": "pending",
"postOnly": false,
"createdAt": 1783053411143,
"updatedAt": 1783053411171,
"clientRequestId": "3e2c3bb4-be3f-4d05-9133-51d3a27b74ef"
},
"clientRequestId": "3e2c3bb4-be3f-4d05-9133-51d3a27b74ef"
}
}{
"resultType": "createOrder",
"market": "BTC-3JUL26-55000-C",
"data": {
"statusCode": 200,
"body": "order placed",
"order": {
"contract": "BTC-3JUL26-55000-C",
"orderId": "01KWK47RT6A4DD1TCQE662QJ3W",
"orderType": "buy",
"tradeType": "limit",
"price": "6400",
"quantity": "1",
"filledQuantity": "0",
"avgFillPrice": "0",
"leverage": "0",
"orderStatus": "open",
"postOnly": false,
"createdAt": 1783053411143,
"updatedAt": 1783053411174,
"clientRequestId": "3e2c3bb4-be3f-4d05-9133-51d3a27b74ef"
},
"clientRequestId": "3e2c3bb4-be3f-4d05-9133-51d3a27b74ef"
}
}{
"resultType": "createOrder",
"market": "BTC-3JUL26-55000-C",
"data": {
"statusCode": 400,
"body": "self trade not allowed",
"order": {
"contract": "BTC-3JUL26-55000-C",
"orderId": "01KWMXCQCSQC1MN9NJ30TYZPKJ",
"orderType": "sell",
"tradeType": "limit",
"price": "6700",
"quantity": "1",
"filledQuantity": "0",
"avgFillPrice": "0",
"leverage": "0",
"orderStatus": "rejected",
"postOnly": true,
"createdAt": 1783113342363,
"updatedAt": 1783113342365,
"clientRequestId": "3e2c3bb4-be3f-4d05-9133-51d3a27b74ef"
},
"error": {
"code": "10104",
"slug": "CREATE_ORDER_SELF_TRADE"
},
"clientRequestId": "3e2c3bb4-be3f-4d05-9133-51d3a27b74ef"
}
}{
"resultType": "modifyOrder",
"market": "BTC-3JUL26-55000-C",
"data": {
"statusCode": 202,
"body": "order received",
"order": {
"contract": "BTC-3JUL26-55000-C",
"orderId": "01KWK47RT6A4DD1TCQE662QJ3W",
"orderType": "buy",
"tradeType": "limit",
"price": "6300",
"quantity": "1",
"filledQuantity": "0",
"avgFillPrice": "0",
"leverage": "0",
"orderStatus": "pending",
"postOnly": false,
"createdAt": 1783053411143,
"updatedAt": 1783053548624,
"clientRequestId": "ee86bd11-6478-4aa2-917a-17c94b6c2db7"
},
"clientRequestId": "ee86bd11-6478-4aa2-917a-17c94b6c2db7"
}
}{
"resultType": "modifyOrder",
"market": "BTC-3JUL26-55000-C",
"data": {
"statusCode": 200,
"body": "order placed",
"order": {
"contract": "BTC-3JUL26-55000-C",
"orderId": "01KWK47RT6A4DD1TCQE662QJ3W",
"orderType": "buy",
"tradeType": "limit",
"price": "6300",
"quantity": "1",
"filledQuantity": "0",
"avgFillPrice": "0",
"leverage": "0",
"orderStatus": "open",
"postOnly": false,
"createdAt": 1783053411143,
"updatedAt": 1783053548626,
"clientRequestId": "ee86bd11-6478-4aa2-917a-17c94b6c2db7"
},
"clientRequestId": "ee86bd11-6478-4aa2-917a-17c94b6c2db7"
}
}{
"resultType": "modifyOrder",
"market": "BTC-3JUL26-55000-C",
"data": {
"statusCode": 404,
"body": "order not found",
"error": {
"code": "10004",
"slug": "ORDER_NOT_FOUND"
},
"clientRequestId": "ee86bd11-6478-4aa2-917a-17c94b6c2db7"
}
}{
"resultType": "cancelOrder",
"market": "BTC-3JUL26-55000-C",
"data": {
"statusCode": 200,
"body": "order cancelled",
"order": {
"contract": "BTC-3JUL26-55000-C",
"orderId": "01KWK47RT6A4DD1TCQE662QJ3W",
"orderType": "buy",
"tradeType": "limit",
"price": "6300",
"quantity": "1",
"filledQuantity": "0",
"avgFillPrice": "0",
"leverage": "0",
"orderStatus": "cancelled",
"postOnly": false,
"createdAt": 1783053411143,
"updatedAt": 1783053687411,
"clientRequestId": "b56692f8-4322-411d-846f-268c01cd4fa9"
},
"clientRequestId": "b56692f8-4322-411d-846f-268c01cd4fa9"
}
}{
"resultType": "cancelOrder",
"market": "BTC-3JUL26-55000-C",
"data": {
"statusCode": 404,
"body": "order not found",
"error": {
"code": "10004",
"slug": "ORDER_NOT_FOUND"
},
"clientRequestId": "b56692f8-4322-411d-846f-268c01cd4fa9"
}
}{
"resultType": "cancelAllOrders",
"market": "ALL",
"data": {
"statusCode": 202,
"body": "cancel all received",
"count": 3,
"clientRequestId": "9c1e4b7a-6d2f-4a35-b8e0-7f3a1c5d2e94"
}
}{
"resultType": "cancelAllOrders",
"market": "ALL",
"data": {
"statusCode": 400,
"body": "request arrived too late",
"error": {
"code": "10005",
"slug": "RECEIVE_WINDOW_EXCEEDED"
},
"clientRequestId": "9c1e4b7a-6d2f-4a35-b8e0-7f3a1c5d2e94"
}
}{
"resultType": "completeFillOrder",
"market": "BTC-10JUL26-55000-C",
"data": {
"statusCode": 200,
"body": "order filled",
"order": {
"contract": "BTC-10JUL26-55000-C",
"orderId": "01KWVNC7T8XWVHGKY00A9TD0YG",
"orderType": "buy",
"tradeType": "market",
"price": "7029.8",
"quantity": "1",
"filledQuantity": "1",
"avgFillPrice": "7029.8",
"leverage": "0",
"orderStatus": "completed",
"postOnly": false,
"createdAt": 1783339818825,
"updatedAt": 1783339818882,
"clientRequestId": "a9716fab-8ac2-47fd-803e-44e2ca22b948"
},
"clientRequestId": "a9716fab-8ac2-47fd-803e-44e2ca22b948"
}
}{
"resultType": "partialFillOrder",
"market": "BTC-10JUL26-55000-C",
"data": {
"statusCode": 200,
"body": "order partially filled",
"order": {
"contract": "BTC-10JUL26-55000-C",
"orderId": "01KWVN9WSB5H7ZQK2P3M4NR8XA",
"orderType": "buy",
"tradeType": "limit",
"price": "7000",
"quantity": "2",
"filledQuantity": "1",
"avgFillPrice": "7000",
"leverage": "0",
"orderStatus": "open",
"postOnly": false,
"createdAt": 1783339700000,
"updatedAt": 1783339750000,
"clientRequestId": "3d1f9c02-5a77-4c1e-9b6a-2e8d4f0b1c33"
},
"clientRequestId": "3d1f9c02-5a77-4c1e-9b6a-2e8d4f0b1c33"
}
}{
"resultType": "sessionBackfill",
"data": {
"sessionId": "e4a1c6f0-7b2d-4c8e-9f3a-5d6b8c1e2f4a",
"resumed": true,
"from": 1784834389615,
"to": 1784834449615,
"events": 6,
"backfilledMarkets": [
"BTC-3JUL26-55000-C",
"ETH-31JUL26-1600-C"
],
"expiredMarkets": []
}
}{
"resultType": "liquidation",
"market": "BTC-10JUL26-60000-P",
"data": {
"statusCode": 200,
"body": "liquidation triggered",
"liquidationId": "3f9c2a7e1b4d8c60",
"marginRatio": "0.9934",
"usedMargin": "20783.55",
"totalEquity": "20506.29",
"triggeredAt": 1783352484000
}
}WebSocket API Reference
Order Management Stream
Create, modify, cancel, and cancel all orders, with fill and liquidation notifications.
WSS
?product=options&market=
{market}
&expiration=
{expiration}
&strike=
{strike}
&type=
{type}
&subscriptions=optionsOrders&sessionId=
{sessionId}
This stream is active on the
optionsOrders subscription, which is on by default when you connect. It allows you to create, modify, cancel, and cancel all orders, and receive fill and liquidation notifications.
Name the contract in market unless the connection is scoped to a single contract. A command’s responses reach only connections whose optionsOrders subscription covers its contract: a command for a contract outside the connection’s filter is still executed, but its responses do not arrive on that connection.
Multi-Step Responses
Order actions typically produce more than one message on this stream:- An acknowledgment (
statusCode: 202) confirming the request was received and is being processed —cancelOrderskips this step and goes straight to confirmation or error - A confirmation (
statusCode: 200) once the action has taken effect, or an error if it failed
cancelAllOrders is acknowledged once, with the number of cancels it dispatched, and produces one cancelOrder confirmation or error per order — each carrying the sweep’s clientRequestId. The acknowledgment and the per-order results arrive in any order. It is also available over HTTP as Cancel All Orders, so you can release capital from whichever connection is still up; see Releasing Capital on Disconnect.
Notifications
completeFillOrder and partialFillOrder are pushed as your orders execute.
liquidation is pushed when your account is liquidated, once for each contract the liquidation acts on, before its orders are cancelled and positions closed. See Margin & Liquidation.
Backfill
Connecting with asessionId query parameter starts a WebSocket session on this stream: on connect, any messages missed since the last delivered position are backfilled first, followed by a sessionBackfill message summarizing the session. At most 10 contracts are backfilled per reconnect; any others are listed in expiredMarkets, so reconcile those over HTTP.
See WebSocket Session for the full field reference, session continuity semantics, and backfill limits.Messages
{
"message": "createOrder",
"content": {
"clientRequestId": "3e2c3bb4-be3f-4d05-9133-51d3a27b74ef",
"orderId": "01M3STNFPN53F1JWX1B7R023WV",
"market": "BTC-3JUL26-55000-C",
"price": "6400",
"quantity": "1",
"orderType": "buy",
"tradeType": "limit",
"postOnly": false
}
}{
"message": "modifyOrder",
"content": {
"clientRequestId": "ee86bd11-6478-4aa2-917a-17c94b6c2db7",
"market": "BTC-3JUL26-55000-C",
"orderId": "01KWK47RT6A4DD1TCQE662QJ3W",
"price": "6300",
"quantity": "1"
}
}{
"message": "cancelOrder",
"content": {
"clientRequestId": "b56692f8-4322-411d-846f-268c01cd4fa9",
"market": "BTC-3JUL26-55000-C",
"cancelBy": "orderId",
"orderId": "01KWK47RT6A4DD1TCQE662QJ3W"
}
}{
"message": "cancelAllOrders",
"content": {
"clientRequestId": "5d2a7f0e-1c3b-4e8a-9f61-2b7c4d9e0a13",
"market": "BTC-3JUL26-55000-C"
}
}{
"resultType": "createOrder",
"market": "BTC-3JUL26-55000-C",
"data": {
"statusCode": 202,
"body": "order received",
"order": {
"contract": "BTC-3JUL26-55000-C",
"orderId": "01KWK47RT6A4DD1TCQE662QJ3W",
"orderType": "buy",
"tradeType": "limit",
"price": "6400",
"quantity": "1",
"filledQuantity": "0",
"avgFillPrice": "0",
"leverage": "0",
"orderStatus": "pending",
"postOnly": false,
"createdAt": 1783053411143,
"updatedAt": 1783053411171,
"clientRequestId": "3e2c3bb4-be3f-4d05-9133-51d3a27b74ef"
},
"clientRequestId": "3e2c3bb4-be3f-4d05-9133-51d3a27b74ef"
}
}{
"resultType": "createOrder",
"market": "BTC-3JUL26-55000-C",
"data": {
"statusCode": 200,
"body": "order placed",
"order": {
"contract": "BTC-3JUL26-55000-C",
"orderId": "01KWK47RT6A4DD1TCQE662QJ3W",
"orderType": "buy",
"tradeType": "limit",
"price": "6400",
"quantity": "1",
"filledQuantity": "0",
"avgFillPrice": "0",
"leverage": "0",
"orderStatus": "open",
"postOnly": false,
"createdAt": 1783053411143,
"updatedAt": 1783053411174,
"clientRequestId": "3e2c3bb4-be3f-4d05-9133-51d3a27b74ef"
},
"clientRequestId": "3e2c3bb4-be3f-4d05-9133-51d3a27b74ef"
}
}{
"resultType": "createOrder",
"market": "BTC-3JUL26-55000-C",
"data": {
"statusCode": 400,
"body": "self trade not allowed",
"order": {
"contract": "BTC-3JUL26-55000-C",
"orderId": "01KWMXCQCSQC1MN9NJ30TYZPKJ",
"orderType": "sell",
"tradeType": "limit",
"price": "6700",
"quantity": "1",
"filledQuantity": "0",
"avgFillPrice": "0",
"leverage": "0",
"orderStatus": "rejected",
"postOnly": true,
"createdAt": 1783113342363,
"updatedAt": 1783113342365,
"clientRequestId": "3e2c3bb4-be3f-4d05-9133-51d3a27b74ef"
},
"error": {
"code": "10104",
"slug": "CREATE_ORDER_SELF_TRADE"
},
"clientRequestId": "3e2c3bb4-be3f-4d05-9133-51d3a27b74ef"
}
}{
"resultType": "modifyOrder",
"market": "BTC-3JUL26-55000-C",
"data": {
"statusCode": 202,
"body": "order received",
"order": {
"contract": "BTC-3JUL26-55000-C",
"orderId": "01KWK47RT6A4DD1TCQE662QJ3W",
"orderType": "buy",
"tradeType": "limit",
"price": "6300",
"quantity": "1",
"filledQuantity": "0",
"avgFillPrice": "0",
"leverage": "0",
"orderStatus": "pending",
"postOnly": false,
"createdAt": 1783053411143,
"updatedAt": 1783053548624,
"clientRequestId": "ee86bd11-6478-4aa2-917a-17c94b6c2db7"
},
"clientRequestId": "ee86bd11-6478-4aa2-917a-17c94b6c2db7"
}
}{
"resultType": "modifyOrder",
"market": "BTC-3JUL26-55000-C",
"data": {
"statusCode": 200,
"body": "order placed",
"order": {
"contract": "BTC-3JUL26-55000-C",
"orderId": "01KWK47RT6A4DD1TCQE662QJ3W",
"orderType": "buy",
"tradeType": "limit",
"price": "6300",
"quantity": "1",
"filledQuantity": "0",
"avgFillPrice": "0",
"leverage": "0",
"orderStatus": "open",
"postOnly": false,
"createdAt": 1783053411143,
"updatedAt": 1783053548626,
"clientRequestId": "ee86bd11-6478-4aa2-917a-17c94b6c2db7"
},
"clientRequestId": "ee86bd11-6478-4aa2-917a-17c94b6c2db7"
}
}{
"resultType": "modifyOrder",
"market": "BTC-3JUL26-55000-C",
"data": {
"statusCode": 404,
"body": "order not found",
"error": {
"code": "10004",
"slug": "ORDER_NOT_FOUND"
},
"clientRequestId": "ee86bd11-6478-4aa2-917a-17c94b6c2db7"
}
}{
"resultType": "cancelOrder",
"market": "BTC-3JUL26-55000-C",
"data": {
"statusCode": 200,
"body": "order cancelled",
"order": {
"contract": "BTC-3JUL26-55000-C",
"orderId": "01KWK47RT6A4DD1TCQE662QJ3W",
"orderType": "buy",
"tradeType": "limit",
"price": "6300",
"quantity": "1",
"filledQuantity": "0",
"avgFillPrice": "0",
"leverage": "0",
"orderStatus": "cancelled",
"postOnly": false,
"createdAt": 1783053411143,
"updatedAt": 1783053687411,
"clientRequestId": "b56692f8-4322-411d-846f-268c01cd4fa9"
},
"clientRequestId": "b56692f8-4322-411d-846f-268c01cd4fa9"
}
}{
"resultType": "cancelOrder",
"market": "BTC-3JUL26-55000-C",
"data": {
"statusCode": 404,
"body": "order not found",
"error": {
"code": "10004",
"slug": "ORDER_NOT_FOUND"
},
"clientRequestId": "b56692f8-4322-411d-846f-268c01cd4fa9"
}
}{
"resultType": "cancelAllOrders",
"market": "ALL",
"data": {
"statusCode": 202,
"body": "cancel all received",
"count": 3,
"clientRequestId": "9c1e4b7a-6d2f-4a35-b8e0-7f3a1c5d2e94"
}
}{
"resultType": "cancelAllOrders",
"market": "ALL",
"data": {
"statusCode": 400,
"body": "request arrived too late",
"error": {
"code": "10005",
"slug": "RECEIVE_WINDOW_EXCEEDED"
},
"clientRequestId": "9c1e4b7a-6d2f-4a35-b8e0-7f3a1c5d2e94"
}
}{
"resultType": "completeFillOrder",
"market": "BTC-10JUL26-55000-C",
"data": {
"statusCode": 200,
"body": "order filled",
"order": {
"contract": "BTC-10JUL26-55000-C",
"orderId": "01KWVNC7T8XWVHGKY00A9TD0YG",
"orderType": "buy",
"tradeType": "market",
"price": "7029.8",
"quantity": "1",
"filledQuantity": "1",
"avgFillPrice": "7029.8",
"leverage": "0",
"orderStatus": "completed",
"postOnly": false,
"createdAt": 1783339818825,
"updatedAt": 1783339818882,
"clientRequestId": "a9716fab-8ac2-47fd-803e-44e2ca22b948"
},
"clientRequestId": "a9716fab-8ac2-47fd-803e-44e2ca22b948"
}
}{
"resultType": "partialFillOrder",
"market": "BTC-10JUL26-55000-C",
"data": {
"statusCode": 200,
"body": "order partially filled",
"order": {
"contract": "BTC-10JUL26-55000-C",
"orderId": "01KWVN9WSB5H7ZQK2P3M4NR8XA",
"orderType": "buy",
"tradeType": "limit",
"price": "7000",
"quantity": "2",
"filledQuantity": "1",
"avgFillPrice": "7000",
"leverage": "0",
"orderStatus": "open",
"postOnly": false,
"createdAt": 1783339700000,
"updatedAt": 1783339750000,
"clientRequestId": "3d1f9c02-5a77-4c1e-9b6a-2e8d4f0b1c33"
},
"clientRequestId": "3d1f9c02-5a77-4c1e-9b6a-2e8d4f0b1c33"
}
}{
"resultType": "sessionBackfill",
"data": {
"sessionId": "e4a1c6f0-7b2d-4c8e-9f3a-5d6b8c1e2f4a",
"resumed": true,
"from": 1784834389615,
"to": 1784834449615,
"events": 6,
"backfilledMarkets": [
"BTC-3JUL26-55000-C",
"ETH-31JUL26-1600-C"
],
"expiredMarkets": []
}
}{
"resultType": "liquidation",
"market": "BTC-10JUL26-60000-P",
"data": {
"statusCode": 200,
"body": "liquidation triggered",
"liquidationId": "3f9c2a7e1b4d8c60",
"marginRatio": "0.9934",
"usedMargin": "20783.55",
"totalEquity": "20506.29",
"triggeredAt": 1783352484000
}
}market
type:string
required
A specific market (e.g. BTC-USDT) or ALL.
expiration
type:string
required
Contract expiration, e.g. 24JUN26. Requires market; omit to match every expiration.
strike
type:string
required
Strike price, e.g. 62000. Requires expiration; omit to match every strike.
type
type:string
required
C (call) or P (put). Requires strike; omit to match both.
sessionId
type:string
required
UUID identifying a session. Enables WebSocket Session on this stream. Omit to opt out.
Sec-WebSocket-Protocol
type:httpApiKey
Supply as authorization#<JWT> during the WebSocket handshake.
Create Order
type:object
Modify Order
type:object
Cancel Order By ID
type:object
Cancel All Orders
type:object
Create Order — Acknowledgment
type:object
Create Order — Confirmation
type:object
Create Order — Error
type:object
Modify Order — Acknowledgment
type:object
Modify Order — Confirmation
type:object
Modify Order — Error
type:object
Cancel Order — Confirmation
type:object
Cancel Order — Error
type:object
Cancel All Orders — Acknowledgment
type:object
Cancel All Orders — Error
type:object
Order Filled — Complete Fill
type:object
Order Filled — Partial Fill
type:object
Session Backfill
type:object
Liquidation
type:object
Pushed when your account is liquidated, once for each contract the liquidation cancels orders on or closes a position in, before those orders are cancelled and positions closed. Carries no clientRequestId.