orderStatusByOid
Get the latest status snapshot of a single order by oid or cloid.
Look up the latest status of a single order, identified by (user, oid) or (user, cloid). Returns a single snapshot object reflecting the most recent transition for that order, or null if the order is not in our index.
POST Request
type
string
Must be "orderStatusByOid"
user
string
Ethereum address (0x-prefixed, 42 characters)
oid
integer
Order ID (unsigned 64-bit integer). Provide exactly one of oid or cloid.
cloid
string
Client order ID. Provide exactly one of oid or cloid.
OID lookup:
curl -X POST https://api.hydromancer.xyz/info \
-H "Authorization: Bearer $HYDROMANCER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"type": "orderStatusByOid",
"user": "0x0000000000000000000000000000000000000000",
"oid": 123456789
}'CLOID lookup:
curl -X POST https://api.hydromancer.xyz/info \
-H "Authorization: Bearer $HYDROMANCER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"type": "orderStatusByOid",
"user": "0x0000000000000000000000000000000000000000",
"cloid": "0x000000334e48424f354c36373646384d"
}'OID lookup:
import requests
import os
response = requests.post(
'https://api.hydromancer.xyz/info',
json={
'type': 'orderStatusByOid',
'user': '0x0000000000000000000000000000000000000000',
'oid': 123456789
},
headers={
'Authorization': f'Bearer {os.environ.get("HYDROMANCER_API_KEY")}',
'Content-Type': 'application/json'
}
)
print(response.json())CLOID lookup:
import requests
import os
response = requests.post(
'https://api.hydromancer.xyz/info',
json={
'type': 'orderStatusByOid',
'user': '0x0000000000000000000000000000000000000000',
'cloid': '0x000000334e48424f354c36373646384d'
},
headers={
'Authorization': f'Bearer {os.environ.get("HYDROMANCER_API_KEY")}',
'Content-Type': 'application/json'
}
)
print(response.json())OID lookup:
CLOID lookup:
Response Fields
Returns a single order-snapshot object, or JSON null when the (user, oid) or (user, cloid) is not found in our index. The response is not an array (unlike most other historical-data endpoints, which return an array).
builder
string
Builder address if order was placed via builder (optional)
builderFee
int
Builder fee in basis points (optional)
txIndex
int
Transaction index of the latest status transition
order
object
Order details (see Order Object below)
status
string
Latest order status (see status values below)
statusTimestamp
int
Timestamp of the latest status transition in milliseconds
order.coin
string
Asset symbol
order.side
string
"A" (sell) or "B" (buy)
order.limitPx
string
Limit price
order.sz
string
Remaining order size (0 if fully filled)
order.oid
int
Order ID
order.timestamp
int
Order creation timestamp in milliseconds
order.triggerCondition
string
Trigger condition if applicable
order.isTrigger
boolean
Whether order is a trigger order
order.triggerPx
string
Trigger price
order.children
array
Child orders for take profit/stop loss orders
order.isPositionTpsl
boolean
Whether order is position TP/SL
order.reduceOnly
boolean
Whether order is reduce-only
order.orderType
string
Order type (e.g. "Limit", "Market")
order.origSz
string
Original order size — use origSz - sz for cumulative fill
order.tif
string
Time in force, e.g. "Gtc", "Ioc", "Alo" (optional)
order.cloid
string
Client order ID (optional)
Errors
400
{"error":"Missing field: user"}
user field absent from request
400
{"error":"Invalid Ethereum address: ..."}
user is not a valid 0x-prefixed 42-char address
400
{"error":"Missing required field: provide either `oid` (u64) or `cloid` (string)"}
Neither oid nor cloid was provided
400
{"error":"Provide exactly one of `oid` or `cloid`, not both"}
Both oid and cloid were provided
A successful lookup that finds nothing returns HTTP 200 with body null — not a 404.
Last updated