{
"jsonrpc": "2.0",
"id": 1,
"result": {
"user_id": "alice"
}
}{
"jsonrpc": "2.0",
"id": 2,
"error": {
"code": 1001,
"message": "Must authenticate first"
}
}{
"jsonrpc": "<string>",
"method": "<string>",
"params": {
"channel": "<string>",
"description": "<string>"
}
}{
"jsonrpc": "2.0",
"id": 1,
"method": "public/auth",
"params": {
"grant_type": "client_credentials",
"client_id": "alice"
}
}{
"jsonrpc": "2.0",
"id": 42,
"method": "private/buy",
"params": {
"instrument_id": "SOL_USDC-28FEB26-150-C",
"type": "limit",
"price": 1500000,
"amount": 1000
}
}{
"jsonrpc": "<string>",
"oneOf": {
"type": "<string>"
},
"method": "<string>",
"params": {
"instrument_id": "<string>",
"type": "<string>",
"price": 123,
"amount": 123,
"time_in_force": "<string>"
}
}{
"jsonrpc": "2.0",
"id": 5,
"method": "private/cancel",
"params": {
"instrument_id": "SOL_USDC-28FEB26-150-C",
"order_id": 42
}
}{
"jsonrpc": "<string>",
"oneOf": {
"type": "<string>"
},
"method": "<string>",
"params": {
"instrument_id": "<string>"
}
}{
"jsonrpc": "<string>",
"oneOf": {
"type": "<string>"
},
"method": "<string>"
}{
"jsonrpc": "<string>",
"oneOf": {
"type": "<string>"
},
"method": "<string>"
}{
"jsonrpc": "<string>",
"oneOf": {
"type": "<string>"
},
"method": "<string>"
}{
"jsonrpc": "2.0",
"id": 10,
"method": "public/subscribe",
"params": {
"channels": [
"book.SOL_USDC-28FEB26-150-C.10",
"trades.SOL_USDC-28FEB26-150-C",
"user.orders",
"user.trades"
]
}
}No examples foundAll JSON-RPC requests, responses, and notifications flow through the root WebSocket connection.
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"user_id": "alice"
}
}{
"jsonrpc": "2.0",
"id": 2,
"error": {
"code": 1001,
"message": "Must authenticate first"
}
}{
"jsonrpc": "<string>",
"method": "<string>",
"params": {
"channel": "<string>",
"description": "<string>"
}
}{
"jsonrpc": "2.0",
"id": 1,
"method": "public/auth",
"params": {
"grant_type": "client_credentials",
"client_id": "alice"
}
}{
"jsonrpc": "2.0",
"id": 42,
"method": "private/buy",
"params": {
"instrument_id": "SOL_USDC-28FEB26-150-C",
"type": "limit",
"price": 1500000,
"amount": 1000
}
}{
"jsonrpc": "<string>",
"oneOf": {
"type": "<string>"
},
"method": "<string>",
"params": {
"instrument_id": "<string>",
"type": "<string>",
"price": 123,
"amount": 123,
"time_in_force": "<string>"
}
}{
"jsonrpc": "2.0",
"id": 5,
"method": "private/cancel",
"params": {
"instrument_id": "SOL_USDC-28FEB26-150-C",
"order_id": 42
}
}{
"jsonrpc": "<string>",
"oneOf": {
"type": "<string>"
},
"method": "<string>",
"params": {
"instrument_id": "<string>"
}
}{
"jsonrpc": "<string>",
"oneOf": {
"type": "<string>"
},
"method": "<string>"
}{
"jsonrpc": "<string>",
"oneOf": {
"type": "<string>"
},
"method": "<string>"
}{
"jsonrpc": "<string>",
"oneOf": {
"type": "<string>"
},
"method": "<string>"
}{
"jsonrpc": "2.0",
"id": 10,
"method": "public/subscribe",
"params": {
"channels": [
"book.SOL_USDC-28FEB26-150-C.10",
"trades.SOL_USDC-28FEB26-150-C",
"user.orders",
"user.trades"
]
}
}No examples foundAsynchronous data pushed for subscribed channels
Authenticate a WebSocket session
Place a buy order
Place a sell order
Cancel a specific order
Cancel all open orders, optionally filtered by instrument
Retrieve all active instruments (no auth required)
Retrieve authenticated user's open orders from the live matching engine
Retrieve authenticated user's balance
Subscribe to one or more data channels
Unsubscribe from one or more data channels