List order history
curl --request GET \
--url https://api.numofx.com/v1/orders \
--header 'X-Numo-Auth: <x-numo-auth>'import requests
url = "https://api.numofx.com/v1/orders"
headers = {"X-Numo-Auth": "<x-numo-auth>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-Numo-Auth': '<x-numo-auth>'}};
fetch('https://api.numofx.com/v1/orders', 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://api.numofx.com/v1/orders",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-Numo-Auth: <x-numo-auth>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.numofx.com/v1/orders"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-Numo-Auth", "<x-numo-auth>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.numofx.com/v1/orders")
.header("X-Numo-Auth", "<x-numo-auth>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.numofx.com/v1/orders")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-Numo-Auth"] = '<x-numo-auth>'
response = http.request(request)
puts response.read_body{
"orders": [
{
"order_id": "<string>",
"owner_address": "<string>",
"signer_address": "<string>",
"subaccount_id": "<string>",
"recipient_id": "<string>",
"nonce": "<string>",
"side": "buy",
"asset_address": "<string>",
"sub_id": "<string>",
"desired_amount": "<string>",
"filled_amount": "<string>",
"limit_price": "<string>",
"worst_fee": "<string>",
"expiry": 123,
"action_json": "<unknown>",
"signature": "<string>",
"status": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"market": "<string>",
"contract_type": "<string>",
"settlement_type": "<string>",
"base_asset_symbol": "<string>",
"quote_asset_symbol": "<string>",
"display_name": "<string>",
"display_label": "<string>",
"tick_size": "<string>",
"price_semantics": "<string>",
"display_semantics": "<string>",
"spot_contract": {
"spec": "usdc_cngn_spot_v1",
"ui_intent": {
"side": "buy",
"price": "1371.977018",
"size": "1.199729"
},
"engine_order": {
"side": "buy",
"price": "0.000728875182750367",
"amount": "1646"
},
"balance_delta": {
"usdc": "-1.199729",
"cngn": "+1646"
}
},
"cancel_reason": "<string>",
"cancelled_at": "2023-11-07T05:31:56Z",
"filled_quote": "<string>"
}
],
"next_before": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}Markets service
List order history
The authenticated owner’s orders in every status (active, matching, filled, cancelled, expired), newest first. The owner is taken from the signed X-Numo-Auth frame, never from a parameter. Filled orders, and any cancelled or expired order that traded, are retained indefinitely; cancelled and expired orders with no fills for 30 days.
GET
/
v1
/
orders
List order history
curl --request GET \
--url https://api.numofx.com/v1/orders \
--header 'X-Numo-Auth: <x-numo-auth>'import requests
url = "https://api.numofx.com/v1/orders"
headers = {"X-Numo-Auth": "<x-numo-auth>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-Numo-Auth': '<x-numo-auth>'}};
fetch('https://api.numofx.com/v1/orders', 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://api.numofx.com/v1/orders",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-Numo-Auth: <x-numo-auth>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.numofx.com/v1/orders"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-Numo-Auth", "<x-numo-auth>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.numofx.com/v1/orders")
.header("X-Numo-Auth", "<x-numo-auth>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.numofx.com/v1/orders")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-Numo-Auth"] = '<x-numo-auth>'
response = http.request(request)
puts response.read_body{
"orders": [
{
"order_id": "<string>",
"owner_address": "<string>",
"signer_address": "<string>",
"subaccount_id": "<string>",
"recipient_id": "<string>",
"nonce": "<string>",
"side": "buy",
"asset_address": "<string>",
"sub_id": "<string>",
"desired_amount": "<string>",
"filled_amount": "<string>",
"limit_price": "<string>",
"worst_fee": "<string>",
"expiry": 123,
"action_json": "<unknown>",
"signature": "<string>",
"status": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"market": "<string>",
"contract_type": "<string>",
"settlement_type": "<string>",
"base_asset_symbol": "<string>",
"quote_asset_symbol": "<string>",
"display_name": "<string>",
"display_label": "<string>",
"tick_size": "<string>",
"price_semantics": "<string>",
"display_semantics": "<string>",
"spot_contract": {
"spec": "usdc_cngn_spot_v1",
"ui_intent": {
"side": "buy",
"price": "1371.977018",
"size": "1.199729"
},
"engine_order": {
"side": "buy",
"price": "0.000728875182750367",
"amount": "1646"
},
"balance_delta": {
"usdc": "-1.199729",
"cngn": "+1646"
}
},
"cancel_reason": "<string>",
"cancelled_at": "2023-11-07T05:31:56Z",
"filled_quote": "<string>"
}
],
"next_before": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}Returns your orders in every status —
Send the frame —
active, matching, filled, cancelled and expired —
newest first.
Authentication is required, and the owner is taken from the signature, never from a parameter.
Resting orders are public on the book and fills settle on chain, but cancelled and expired orders
are not published anywhere else.
Authentication
Build and sign this exact message withpersonal_sign (unix seconds, no trailing newline). The
domain is the same one the WebSocket uses.
<domain> wants you to view your Numo order history.
Address: <address>
Nonce: <nonce>
Issued At: <issued_at>
Expiration Time: <expiry>
address, signature, nonce, issued_at, expiry — as JSON, base64url-encoded,
in the X-Numo-Auth header. One frame can be reused across requests until it expires; the service
accepts a validity window of up to 24 hours.
A frame signed for the WebSocket orders channel is not accepted here, and an order-history frame
does not authenticate a WebSocket: the two messages differ, so each recovers a different address
from the other’s signature.
What traded
Each order that has filled carriesfilled_quote: the USDC that actually changed hands, summed over
its fills at the prices they executed at. Use it to reconcile balances. Do not derive a size from the
order’s own amount and limit price — a marketable order is signed with slippage room past the touch,
so that figure overstates what filled. filled_quote is absent for an order with no fills.
Retention
Filled orders are kept indefinitely, and so is any cancelled or expired order that traded before it ended, so its fills andfilled_quote stay reportable. Cancelled and expired orders with no fills are
kept for 30 days, then pruned.
Paging
Pages hold up tolimit orders (default 50, maximum 100). When a page is full, the response includes
next_before; pass it back as before to fetch older orders. The last page has no next_before.Headers
Base64url-encoded JSON auth frame {address, signature, nonce, issued_at, expiry}, signed with personal_sign over the order-history message. See the endpoint page for the exact message.
Query Parameters
Required range:
1 <= x <= 100The next_before value from the previous page, to page to older orders.
Was this page helpful?

