List Orders
Description
Return a paginated list of the caller's orders, newest first. Supports filtering by market, status, and time range.
HTTP Request
GET /spot/orders (JWT or API Key)
Weight
0 — order endpoints are not subject to per-IP weight limits.
Request Parameters
| Name | Type | Required | Description |
|---|---|---|---|
symbol | STRING | NO | Filter to a single market (e.g. DFUSDT). Case-sensitive. Omit to return orders across all markets. |
status | ENUM | NO | Filter by order status. See Order Status for valid values: open, partially_filled, filled, canceled, rejected, expired. |
start | LONG | NO | Return orders with created_at >= start (unix seconds). |
end | LONG | NO | Return orders with created_at <= end (unix seconds). |
limit | NUMBER | NO | Number of records to return. Default 50; maximum 200. Values outside this range are clamped server-side. |
Tip: To get only currently-open orders, use
?status=openor?status=partially_filled— both are non-terminal statuses. Combine them in two requests and merge client-side if you need all active orders in a single list.
Response Example
200 OK
[
{
"id": "a1b2c3d4-1234-5678-abcd-ef0123456789",
"symbol": "DFUSDT",
"side": "sell",
"type": "limit",
"tif": "gtc",
"price": "0.6000",
"quantity": "200",
"quote_quantity": null,
"filled_qty": "200",
"avg_fill_price": "0.6000",
"status": "filled",
"reject_reason": null,
"created_at": 1778400200,
"updated_at": 1778400250
},
{
"id": "9f2a1c4e-5b67-4d8a-bf93-2e1f4a6c8d10",
"symbol": "DFUSDT",
"side": "buy",
"type": "limit",
"tif": "gtc",
"price": "0.5000",
"quantity": "100",
"quote_quantity": null,
"filled_qty": "0",
"avg_fill_price": "0",
"status": "open",
"reject_reason": null,
"created_at": 1778400000,
"updated_at": 1778400000
}
]
| Field | Notes |
|---|---|
status | See Order Status. Non-terminal: open, partially_filled. Terminal: filled, canceled, rejected. |
filled_qty | Cumulative base quantity matched across all fills for this order. |
avg_fill_price | Volume-weighted average fill price. "0" if no fills. |
quote_quantity | Non-null only for market BUY orders; reflects the original quote_quantity from the request. |
reject_reason | Non-null only for status=rejected; contains the rejection error code string. |
created_at, updated_at | Unix seconds. Results are ordered by created_at descending (newest first). |
Error Responses
| HTTP | error | When |
|---|---|---|
500 | DB_ERROR | Server fault. |
Full list: Error Codes.
Code Examples
cURL (JWT)
JWT="your_jwt_token"
# List open orders for DFUSDT
curl -s "https://api-sepolia.p99.world/api/v1/spot/orders?symbol=DFUSDT&status=open" \
-H "Authorization: Bearer ${JWT}"
# List last 10 orders of any status
curl -s "https://api-sepolia.p99.world/api/v1/spot/orders?limit=10" \
-H "Authorization: Bearer ${JWT}"
cURL (HMAC API Key)
API_KEY="your_api_key"
API_SECRET="your_api_secret"
TIMESTAMP=$(date +%s%3N)
QUERY="symbol=DFUSDT&status=open&limit=50×tamp=${TIMESTAMP}"
SIGNATURE=$(echo -n "${QUERY}" | openssl dgst -sha256 -hmac "${API_SECRET}" | awk '{print $2}')
curl -s \
-H "X-MBX-APIKEY: ${API_KEY}" \
"https://api-sepolia.p99.world/api/v1/spot/orders?${QUERY}&signature=${SIGNATURE}"
Python
import time, hmac, hashlib, requests
from urllib.parse import urlencode
API_KEY = "your_api_key"
API_SECRET = "your_api_secret"
BASE_URL = "https://api-sepolia.p99.world/api/v1"
def signed_get(path: str, params: dict = None) -> list | dict:
ts = int(time.time() * 1000)
qs_params = {**(params or {}), "timestamp": ts}
qs = urlencode(qs_params)
sig = hmac.new(API_SECRET.encode(), qs.encode(), hashlib.sha256).hexdigest()
r = requests.get(
f"{BASE_URL}{path}?{qs}&signature={sig}",
headers={"X-MBX-APIKEY": API_KEY},
timeout=5,
)
r.raise_for_status()
return r.json()
# Fetch all currently-open DFUSDT orders
open_orders = signed_get("/spot/orders", {"symbol": "DFUSDT", "status": "open", "limit": 200})
print(f"{len(open_orders)} open order(s)")
for o in open_orders:
print(f" {o['id']} {o['side']:4} {o['quantity']} @ {o['price']}")
# Fetch partially-filled orders too
partial = signed_get("/spot/orders", {"symbol": "DFUSDT", "status": "partially_filled", "limit": 200})
print(f"{len(partial)} partially-filled order(s)")