{
"rid": 1,
"t": "p",
"s": "BTCUSD-PERP",
"d": "B",
"q": 100,
"p": "50000.50",
"tif": "GTC",
"po": false,
"tag": "trade001",
"st": "CancelIncoming"
}{
"rid": 2,
"t": "x",
"oid": "O-01ARZ3NDEKTSV4RRFFQ69G5FAV"
}{
"rid": 5,
"t": "X"
}{
"rid": 3,
"t": "r",
"oid": "O-01ARZ3NDEKTSV4RRFFQ69G5FAV",
"p": "50001.00"
}{
"rid": 4,
"t": "o"
}{
"rid": 0,
"res": {
"li": "user@example.com",
"o": [
{
"oid": "O-01ARZ3NDEKTSV4RRFFQ69G5FAV",
"u": "550e8400-e29b-41d4-a716-446655440000",
"s": "BTCUSD-PERP",
"p": "50000.00",
"q": 100,
"xq": 0,
"rq": 100,
"o": "ACCEPTED",
"d": "B",
"tif": "GTC",
"ts": 1609459200,
"tn": 0
}
]
},
"err": null
}{
"rid": 1,
"res": {
"oid": "O-01ARZ3NDEKTSV4RRFFQ69G5FAV"
}
}{
"rid": 2,
"res": {
"cxl_rx": true
}
}{
"rid": 3,
"res": {
"oid": "O-01BX5ZZKBKACTAV9WEVGEMMVRE"
}
}{
"rid": 5,
"res": {}
}{
"rid": 3,
"res": {
"orders": [
{
"oid": "O-01ARZ3NDEKTSV4RRFFQ69G5FAV",
"u": "550e8400-e29b-41d4-a716-446655440000",
"s": "BTCUSD-PERP",
"p": "50000.00",
"q": 100,
"xq": 0,
"rq": 100,
"o": "ACCEPTED",
"d": "B",
"tif": "GTC",
"ts": 1609459200,
"tn": 0
},
{
"oid": "O-01BX5ZZKBKACTAV9WEVGEMMVRE",
"u": "550e8400-e29b-41d4-a716-446655440000",
"s": "ETHUSD-PERP",
"p": "2500.50",
"q": 200,
"xq": 50,
"rq": 150,
"o": "PARTIALLY_FILLED",
"d": "S",
"tif": "GTC",
"ts": 1609459300,
"tn": 500000000
}
]
}
}{
"t": "h",
"ts": 1609459200,
"tn": 123456789
}{
"t": "e",
"ts": 1609459200,
"tn": 123456789,
"oid": "O-01ARZ3NDEKTSV4RRFFQ69G5FAV",
"cid": 12345,
"r": "ORDER_NOT_FOUND",
"txt": "Order not found or already canceled"
}{
"t": "n",
"ts": 1609459200,
"tn": 123456789,
"eid": "E-01ARZ3NDEKTSV4RRFFQ69G5FAV",
"o": {
"oid": "O-01ARZ3NDEKTSV4RRFFQ69G5FAV",
"u": "550e8400-e29b-41d4-a716-446655440000",
"s": "BTCUSD-PERP",
"p": "50000.00",
"q": 100,
"xq": 0,
"rq": 100,
"o": "ACCEPTED",
"d": "B",
"tif": "GTC",
"ts": 1609459200,
"tn": 0
}
}{
"t": "c",
"ts": 1609459200,
"tn": 123456789,
"eid": "E-01ARZ3NDEKTSV4RRFFQ69G5FAV",
"o": {
"oid": "O-01ARZ3NDEKTSV4RRFFQ69G5FAV",
"u": "550e8400-e29b-41d4-a716-446655440000",
"s": "BTCUSD-PERP",
"p": "50000.00",
"q": 100,
"xq": 0,
"rq": 100,
"o": "CANCELED",
"d": "B",
"tif": "GTC",
"ts": 1609459200,
"tn": 0
},
"xr": "USER_REQUESTED",
"txt": "Canceled by user"
}{
"t": "r",
"ts": 1609459200,
"tn": 123456789,
"eid": "E-01ARZ3NDEKTSV4RRFFQ69G5FAV",
"no": {
"oid": "O-01ARZ3NDEKTSV4RRFFQ69G5FAV",
"u": "550e8400-e29b-41d4-a716-446655440000",
"s": "BTCUSD-PERP",
"p": "50100.00",
"q": 100,
"xq": 0,
"rq": 100,
"o": "ACCEPTED",
"d": "B",
"tif": "GTC",
"ts": 1609459200,
"tn": 0,
"cid": 123456
},
"noid": "O-01ARZ3NDEKTSV4RRFFQ69G5FAV",
"ro": {
"oid": "O-01ARZ3NDEKTSV4RRFFQ69G5FAS",
"u": "550e8400-e29b-41d4-a716-446655440000",
"s": "BTCUSD-PERP",
"p": "50000.00",
"q": 100,
"xq": 0,
"rq": 0,
"o": "REPLACED",
"d": "B",
"tif": "GTC",
"ts": 1609459100,
"tn": 0,
"cid": 123456
}
}{
"t": "j",
"ts": 1609459200,
"tn": 123456789,
"eid": "E-01ARZ3NDEKTSV4RRFFQ69G5FAV",
"o": {
"oid": "O-01ARZ3NDEKTSV4RRFFQ69G5FAV",
"u": "550e8400-e29b-41d4-a716-446655440000",
"s": "BTCUSD-PERP",
"p": "50000.00",
"q": 100,
"xq": 0,
"rq": 100,
"o": "REJECTED",
"d": "B",
"tif": "GTC",
"ts": 1609459200,
"tn": 0
},
"r": "INSUFFICIENT_MARGIN",
"txt": "Insufficient margin to place order"
}{
"t": "x",
"ts": 1609459200,
"tn": 123456789,
"eid": "E-01ARZ3NDEKTSV4RRFFQ69G5FAV",
"o": {
"oid": "O-01ARZ3NDEKTSV4RRFFQ69G5FAV",
"u": "550e8400-e29b-41d4-a716-446655440000",
"s": "BTCUSD-PERP",
"p": "50000.00",
"q": 100,
"xq": 0,
"rq": 100,
"o": "EXPIRED",
"d": "B",
"tif": "IOC",
"ts": 1609459200,
"tn": 0
}
}{
"t": "d",
"ts": 1609459200,
"tn": 123456789,
"eid": "E-01ARZ3NDEKTSV4RRFFQ69G5FAV",
"o": {
"oid": "O-01ARZ3NDEKTSV4RRFFQ69G5FAV",
"u": "550e8400-e29b-41d4-a716-446655440000",
"s": "BTCUSD-PERP",
"p": "50000.00",
"q": 100,
"xq": 50,
"rq": 50,
"o": "DONE_FOR_DAY",
"d": "B",
"tif": "DAY",
"ts": 1609459200,
"tn": 0
}
}{
"t": "p",
"ts": 1609459200,
"tn": 123456789,
"eid": "E-01ARZ3NDEKTSV4RRFFQ69G5FAV",
"o": {
"oid": "O-01ARZ3NDEKTSV4RRFFQ69G5FAV",
"u": "550e8400-e29b-41d4-a716-446655440000",
"s": "BTCUSD-PERP",
"p": "50000.00",
"q": 100,
"xq": 50,
"rq": 50,
"o": "PARTIALLY_FILLED",
"d": "B",
"tif": "GTC",
"ts": 1609459200,
"tn": 0
},
"xs": {
"tid": "T-01ARZ3NDEKTSV4RRFFQ69G5FAV",
"s": "BTCUSD-PERP",
"q": 50,
"p": "50000.00",
"d": "B",
"agg": false
}
}{
"t": "f",
"ts": 1609459200,
"tn": 123456789,
"eid": "E-01ARZ3NDEKTSV4RRFFQ69G5FAV",
"o": {
"oid": "O-01ARZ3NDEKTSV4RRFFQ69G5FAV",
"u": "550e8400-e29b-41d4-a716-446655440000",
"s": "BTCUSD-PERP",
"p": "50000.00",
"q": 100,
"xq": 100,
"rq": 0,
"o": "FILLED",
"d": "B",
"tif": "GTC",
"ts": 1609459200,
"tn": 0
},
"xs": {
"tid": "T-01ARZ3NDEKTSV4RRFFQ69G5FAV",
"s": "BTCUSD-PERP",
"q": 100,
"p": "50000.00",
"d": "B",
"agg": true
}
}Documentation Index
Fetch the complete documentation index at: https://docs.architect.exchange/llms.txt
Use this file to discover all available pages before exploring further.
curl -s -X POST https://gateway.sandbox.architect.exchange/api/authenticate \
-H "Content-Type: application/json" \
-d '{"api_key":"YOUR_KEY","api_secret":"YOUR_SECRET","expiration_seconds":3600}'
# Response: {"token":"<bearer-token>"}
Authorization header on the WebSocket upgrade request. Invalid or missing tokens are rejected with HTTP 401 before the connection is established.
# Store the token
TOKEN=$(curl -s -X POST https://gateway.sandbox.architect.exchange/api/authenticate \
-H "Content-Type: application/json" \
-d '{"api_key":"YOUR_KEY","api_secret":"YOUR_SECRET","expiration_seconds":3600}' \
| python3 -c "import sys,json; print(json.load(sys.stdin)['token'])")
# Connect
wscat -c wss://gateway.sandbox.architect.exchange/orders/ws \
-H "Authorization: Bearer $TOKEN"
gateway.sandbox.architect.exchange with gateway.architect.exchange for production.
rid: 0 containing your open orders:
{"rid":0,"res":{"li":"user@example.com","o":[]},"err":null}
{"rid":1,"t":"p","s":"BTCUSD-PERP","d":"B","q":100,"p":"50000.50","tif":"GTC","po":false}
{"rid":1,"res":{"oid":"O-01ARZ3NDEKTSV4RRFFQ69G5FAV"}}
t="n", filled t="f", canceled t="c", rejected t="j").
cancel_on_disconnect query parameter when opening the connection:
var ws = new WebSocket(
'wss://gateway.sandbox.architect.exchange/orders/ws?cancel_on_disconnect=true'
);
wscat -c "wss://gateway.sandbox.architect.exchange/orders/ws?cancel-on-disconnect=true" \
-H "Authorization: Bearer $TOKEN"
{
"rid": 1,
"t": "p",
"s": "BTCUSD-PERP",
"d": "B",
"q": 100,
"p": "50000.50",
"tif": "GTC",
"po": false,
"tag": "trade001",
"st": "CancelIncoming"
}{
"rid": 2,
"t": "x",
"oid": "O-01ARZ3NDEKTSV4RRFFQ69G5FAV"
}{
"rid": 5,
"t": "X"
}{
"rid": 3,
"t": "r",
"oid": "O-01ARZ3NDEKTSV4RRFFQ69G5FAV",
"p": "50001.00"
}{
"rid": 4,
"t": "o"
}{
"rid": 0,
"res": {
"li": "user@example.com",
"o": [
{
"oid": "O-01ARZ3NDEKTSV4RRFFQ69G5FAV",
"u": "550e8400-e29b-41d4-a716-446655440000",
"s": "BTCUSD-PERP",
"p": "50000.00",
"q": 100,
"xq": 0,
"rq": 100,
"o": "ACCEPTED",
"d": "B",
"tif": "GTC",
"ts": 1609459200,
"tn": 0
}
]
},
"err": null
}{
"rid": 1,
"res": {
"oid": "O-01ARZ3NDEKTSV4RRFFQ69G5FAV"
}
}{
"rid": 2,
"res": {
"cxl_rx": true
}
}{
"rid": 3,
"res": {
"oid": "O-01BX5ZZKBKACTAV9WEVGEMMVRE"
}
}{
"rid": 5,
"res": {}
}{
"rid": 3,
"res": {
"orders": [
{
"oid": "O-01ARZ3NDEKTSV4RRFFQ69G5FAV",
"u": "550e8400-e29b-41d4-a716-446655440000",
"s": "BTCUSD-PERP",
"p": "50000.00",
"q": 100,
"xq": 0,
"rq": 100,
"o": "ACCEPTED",
"d": "B",
"tif": "GTC",
"ts": 1609459200,
"tn": 0
},
{
"oid": "O-01BX5ZZKBKACTAV9WEVGEMMVRE",
"u": "550e8400-e29b-41d4-a716-446655440000",
"s": "ETHUSD-PERP",
"p": "2500.50",
"q": 200,
"xq": 50,
"rq": 150,
"o": "PARTIALLY_FILLED",
"d": "S",
"tif": "GTC",
"ts": 1609459300,
"tn": 500000000
}
]
}
}{
"t": "h",
"ts": 1609459200,
"tn": 123456789
}{
"t": "e",
"ts": 1609459200,
"tn": 123456789,
"oid": "O-01ARZ3NDEKTSV4RRFFQ69G5FAV",
"cid": 12345,
"r": "ORDER_NOT_FOUND",
"txt": "Order not found or already canceled"
}{
"t": "n",
"ts": 1609459200,
"tn": 123456789,
"eid": "E-01ARZ3NDEKTSV4RRFFQ69G5FAV",
"o": {
"oid": "O-01ARZ3NDEKTSV4RRFFQ69G5FAV",
"u": "550e8400-e29b-41d4-a716-446655440000",
"s": "BTCUSD-PERP",
"p": "50000.00",
"q": 100,
"xq": 0,
"rq": 100,
"o": "ACCEPTED",
"d": "B",
"tif": "GTC",
"ts": 1609459200,
"tn": 0
}
}{
"t": "c",
"ts": 1609459200,
"tn": 123456789,
"eid": "E-01ARZ3NDEKTSV4RRFFQ69G5FAV",
"o": {
"oid": "O-01ARZ3NDEKTSV4RRFFQ69G5FAV",
"u": "550e8400-e29b-41d4-a716-446655440000",
"s": "BTCUSD-PERP",
"p": "50000.00",
"q": 100,
"xq": 0,
"rq": 100,
"o": "CANCELED",
"d": "B",
"tif": "GTC",
"ts": 1609459200,
"tn": 0
},
"xr": "USER_REQUESTED",
"txt": "Canceled by user"
}{
"t": "r",
"ts": 1609459200,
"tn": 123456789,
"eid": "E-01ARZ3NDEKTSV4RRFFQ69G5FAV",
"no": {
"oid": "O-01ARZ3NDEKTSV4RRFFQ69G5FAV",
"u": "550e8400-e29b-41d4-a716-446655440000",
"s": "BTCUSD-PERP",
"p": "50100.00",
"q": 100,
"xq": 0,
"rq": 100,
"o": "ACCEPTED",
"d": "B",
"tif": "GTC",
"ts": 1609459200,
"tn": 0,
"cid": 123456
},
"noid": "O-01ARZ3NDEKTSV4RRFFQ69G5FAV",
"ro": {
"oid": "O-01ARZ3NDEKTSV4RRFFQ69G5FAS",
"u": "550e8400-e29b-41d4-a716-446655440000",
"s": "BTCUSD-PERP",
"p": "50000.00",
"q": 100,
"xq": 0,
"rq": 0,
"o": "REPLACED",
"d": "B",
"tif": "GTC",
"ts": 1609459100,
"tn": 0,
"cid": 123456
}
}{
"t": "j",
"ts": 1609459200,
"tn": 123456789,
"eid": "E-01ARZ3NDEKTSV4RRFFQ69G5FAV",
"o": {
"oid": "O-01ARZ3NDEKTSV4RRFFQ69G5FAV",
"u": "550e8400-e29b-41d4-a716-446655440000",
"s": "BTCUSD-PERP",
"p": "50000.00",
"q": 100,
"xq": 0,
"rq": 100,
"o": "REJECTED",
"d": "B",
"tif": "GTC",
"ts": 1609459200,
"tn": 0
},
"r": "INSUFFICIENT_MARGIN",
"txt": "Insufficient margin to place order"
}{
"t": "x",
"ts": 1609459200,
"tn": 123456789,
"eid": "E-01ARZ3NDEKTSV4RRFFQ69G5FAV",
"o": {
"oid": "O-01ARZ3NDEKTSV4RRFFQ69G5FAV",
"u": "550e8400-e29b-41d4-a716-446655440000",
"s": "BTCUSD-PERP",
"p": "50000.00",
"q": 100,
"xq": 0,
"rq": 100,
"o": "EXPIRED",
"d": "B",
"tif": "IOC",
"ts": 1609459200,
"tn": 0
}
}{
"t": "d",
"ts": 1609459200,
"tn": 123456789,
"eid": "E-01ARZ3NDEKTSV4RRFFQ69G5FAV",
"o": {
"oid": "O-01ARZ3NDEKTSV4RRFFQ69G5FAV",
"u": "550e8400-e29b-41d4-a716-446655440000",
"s": "BTCUSD-PERP",
"p": "50000.00",
"q": 100,
"xq": 50,
"rq": 50,
"o": "DONE_FOR_DAY",
"d": "B",
"tif": "DAY",
"ts": 1609459200,
"tn": 0
}
}{
"t": "p",
"ts": 1609459200,
"tn": 123456789,
"eid": "E-01ARZ3NDEKTSV4RRFFQ69G5FAV",
"o": {
"oid": "O-01ARZ3NDEKTSV4RRFFQ69G5FAV",
"u": "550e8400-e29b-41d4-a716-446655440000",
"s": "BTCUSD-PERP",
"p": "50000.00",
"q": 100,
"xq": 50,
"rq": 50,
"o": "PARTIALLY_FILLED",
"d": "B",
"tif": "GTC",
"ts": 1609459200,
"tn": 0
},
"xs": {
"tid": "T-01ARZ3NDEKTSV4RRFFQ69G5FAV",
"s": "BTCUSD-PERP",
"q": 50,
"p": "50000.00",
"d": "B",
"agg": false
}
}{
"t": "f",
"ts": 1609459200,
"tn": 123456789,
"eid": "E-01ARZ3NDEKTSV4RRFFQ69G5FAV",
"o": {
"oid": "O-01ARZ3NDEKTSV4RRFFQ69G5FAV",
"u": "550e8400-e29b-41d4-a716-446655440000",
"s": "BTCUSD-PERP",
"p": "50000.00",
"q": 100,
"xq": 100,
"rq": 0,
"o": "FILLED",
"d": "B",
"tif": "GTC",
"ts": 1609459200,
"tn": 0
},
"xs": {
"tid": "T-01ARZ3NDEKTSV4RRFFQ69G5FAV",
"s": "BTCUSD-PERP",
"q": 100,
"p": "50000.00",
"d": "B",
"agg": true
}
}Bearer token authentication using user/session tokens from /api/get_user_token.
To connect to the WebSocket, include the Authorization header:
Authorization: Bearer <token>Request to place a new order (t="p")
Request to cancel an existing order (t="x"). Exactly one of oid or cid must be provided.
Request to cancel all open orders (t="X")
Request to cancel and replace an existing order with a new order (t="r"). Exactly one of oid or cid must be provided. The replacement order inherits the original's client order ID (cid).
Request to retrieve all open orders (t="o")
Initial response upon WebSocket connection (rid=0)
Response to place order request
Response to cancel order request
Response to replace order request
Response to cancel all orders request
Response to get open orders request
Heartbeat/timestamp event (t="h")
Order cancel request was rejected (t="e")
Order has been acknowledged by the exchange (t="n")
Order has been canceled (t="c")
Order has been replaced or amended (t="r")
Order has been rejected (t="j")
Order has expired (t="x")
Order is done for the day (t="d")
Order has been partially filled (t="p")
Order has been completely filled (t="f")