orderStatus | Hyperliquid Info API
curl --request POST \
--url https://hypercore.goldrushdata.com/info \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"type": "<string>",
"user": "<string>",
"oid": {}
}
'import requests
url = "https://hypercore.goldrushdata.com/info"
payload = {
"type": "<string>",
"user": "<string>",
"oid": {}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({type: '<string>', user: '<string>', oid: {}})
};
fetch('https://hypercore.goldrushdata.com/info', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://hypercore.goldrushdata.com/info",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'type' => '<string>',
'user' => '<string>',
'oid' => [
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://hypercore.goldrushdata.com/info"
payload := strings.NewReader("{\n \"type\": \"<string>\",\n \"user\": \"<string>\",\n \"oid\": {}\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://hypercore.goldrushdata.com/info")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"type\": \"<string>\",\n \"user\": \"<string>\",\n \"oid\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://hypercore.goldrushdata.com/info")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"type\": \"<string>\",\n \"user\": \"<string>\",\n \"oid\": {}\n}"
response = http.request(request)
puts response.read_body{
"status": "<string>",
"order": {
"order": {
"coin": "<string>",
"side": "<string>",
"limitPx": "<string>",
"sz": "<string>",
"origSz": "<string>",
"oid": 123,
"cloid": {},
"timestamp": 123,
"orderType": "<string>",
"tif": {},
"reduceOnly": true,
"isTrigger": true,
"triggerCondition": "<string>",
"triggerPx": "<string>",
"isPositionTpsl": true,
"children": [
{}
]
},
"status": "<string>",
"statusTimestamp": 123
}
}Info API
orderStatus | Hyperliquid Info API
Hyperliquid orderStatus: look up the status of a single order for a user by order id (oid) or client order id (cloid).
POST
/
info
orderStatus | Hyperliquid Info API
curl --request POST \
--url https://hypercore.goldrushdata.com/info \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"type": "<string>",
"user": "<string>",
"oid": {}
}
'import requests
url = "https://hypercore.goldrushdata.com/info"
payload = {
"type": "<string>",
"user": "<string>",
"oid": {}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({type: '<string>', user: '<string>', oid: {}})
};
fetch('https://hypercore.goldrushdata.com/info', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://hypercore.goldrushdata.com/info",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'type' => '<string>',
'user' => '<string>',
'oid' => [
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://hypercore.goldrushdata.com/info"
payload := strings.NewReader("{\n \"type\": \"<string>\",\n \"user\": \"<string>\",\n \"oid\": {}\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://hypercore.goldrushdata.com/info")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"type\": \"<string>\",\n \"user\": \"<string>\",\n \"oid\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://hypercore.goldrushdata.com/info")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"type\": \"<string>\",\n \"user\": \"<string>\",\n \"oid\": {}\n}"
response = http.request(request)
puts response.read_body{
"status": "<string>",
"order": {
"order": {
"coin": "<string>",
"side": "<string>",
"limitPx": "<string>",
"sz": "<string>",
"origSz": "<string>",
"oid": 123,
"cloid": {},
"timestamp": 123,
"orderType": "<string>",
"tif": {},
"reduceOnly": true,
"isTrigger": true,
"triggerCondition": "<string>",
"triggerPx": "<string>",
"isPositionTpsl": true,
"children": [
{}
]
},
"status": "<string>",
"statusTimestamp": 123
}
}Credit Cost
1 per call
Processing
Realtime
type: "orderStatus" is used to look up the status of a single order for a user, by order id (oid) or client order id (cloid).
Estimate your monthly cost for this API using the Pricing Calculator.
- Wire-equal to
POST api.hyperliquid.xyz/infowith{"type": "orderStatus", "user": "0x...", "oid": ...}. oidaccepts either a numeric order id or a client order id (cloid, a hex string).- If the order is not found for that user, the response is
{"status": "unknownOid"}(noorderfield). - To fetch many orders at once, use
historicalOrdersinstead.
oid or the cloid you supplied - without pulling the user’s whole order history.
Endpoint
POST https://hypercore.goldrushdata.com/info
Authorization: Bearer <GOLDRUSH_API_KEY>
Content-Type: application/json
Request
string
default:"orderStatus"
required
Always
"orderStatus".string
required
The account address in 42-character hex format, e.g.
"0x0000000000000000000000000000000000000000".int | string
required
The order identifier. Pass the numeric order id (e.g.
513957677284) or a client order id (cloid) as a hex string (e.g. "0x...").Example
curl -X POST https://hypercore.goldrushdata.com/info \
-H "Authorization: Bearer $GOLDRUSH_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"type": "orderStatus",
"user": "0x31ca8395cf837de08b24da3f660e77761dfb974b",
"oid": 513957677284
}'
const response = await fetch("https://hypercore.goldrushdata.com/info", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.GOLDRUSH_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
type: "orderStatus",
user: "0x31ca8395cf837de08b24da3f660e77761dfb974b",
oid: 513957677284,
}),
});
const result = await response.json();
if (result.status === "order") {
console.log(result.order.status, result.order.order.coin, result.order.order.oid);
} else {
console.log("not found:", result.status); // "unknownOid"
}
import os, requests
response = requests.post(
"https://hypercore.goldrushdata.com/info",
headers={"Authorization": f"Bearer {os.environ['GOLDRUSH_API_KEY']}"},
json={"type": "orderStatus", "user": "0x31ca8395cf837de08b24da3f660e77761dfb974b", "oid": 513957677284},
)
result = response.json()
if result["status"] == "order":
print(result["order"]["status"], result["order"]["order"]["coin"])
else:
print("not found:", result["status"])
Response
When the order is found,status is "order" and order contains the order plus its status. When it is not, status is "unknownOid" and there is no order.
{
"status": "order",
"order": {
"order": {
"coin": "POPCAT",
"side": "A",
"limitPx": "0.043668",
"sz": "16812.0",
"oid": 513957677284,
"timestamp": 1786384269962,
"triggerCondition": "N/A",
"isTrigger": false,
"triggerPx": "0.0",
"children": [],
"isPositionTpsl": false,
"reduceOnly": false,
"orderType": "Limit",
"origSz": "16812.0",
"tif": "Alo",
"cloid": null
},
"status": "canceled",
"statusTimestamp": 1786384274789
}
}
{ "status": "unknownOid" }
Field descriptions
limitPx, sz, origSz, and triggerPx are returned as decimal strings, preserving upstream precision. Do not parse them as floats.string
"order" when the order is found, "unknownOid" when there is no such order for this user.object
Present only when
status is "order".Show order fields
Show order fields
object
The order itself.
Show order fields
Show order fields
string
Asset symbol.
string
"B" = bid (buy), "A" = ask (sell).string
Limit price (decimal string).
string
Remaining size (decimal string).
string
Original size (decimal string).
int
Order id.
string | null
Client order id (hex) if supplied, else
null.int
Order creation time (ms since epoch).
string
e.g.
"Limit", "Stop Market".string | null
Time-in-force, e.g.
"Alo", "Gtc", "Ioc".bool
Whether the order is reduce-only.
bool
Whether it is a trigger order.
string
Trigger condition, or
"N/A".string
Trigger price (decimal string).
bool
Whether it is a position-level TP/SL.
array
Child orders attached to this order.
string
The order’s current or terminal status. Hyperliquid defines many values; observed examples include
"open", "filled", "canceled", "selfTradeCanceled", and "iocCancelRejected".int
Millisecond timestamp when the status took effect.
Related endpoints
frontendOpenOrders
fetch a user’s currently open orders enriched with frontend metadata.
historicalOrders
fetch a user’s recent orders - both open and finalized - each with its current status and status timestamp.
openOrders
list a user’s resting open orders by wallet address.