curl --request GET \
--url https://api.limitless.exchange/markets/{slug}/user-orders \
--header 'lmts-api-key: <api-key>'import requests
url = "https://api.limitless.exchange/markets/{slug}/user-orders"
headers = {"lmts-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'lmts-api-key': '<api-key>'}};
fetch('https://api.limitless.exchange/markets/{slug}/user-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.limitless.exchange/markets/{slug}/user-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 => [
"lmts-api-key: <api-key>"
],
]);
$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.limitless.exchange/markets/{slug}/user-orders"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("lmts-api-key", "<api-key>")
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.limitless.exchange/markets/{slug}/user-orders")
.header("lmts-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.limitless.exchange/markets/{slug}/user-orders")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["lmts-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body[
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"ownerId": 123,
"marketId": "<string>",
"token": "<string>",
"type": "GTC",
"status": "LIVE",
"side": "BUY",
"makerAmount": "<string>",
"takerAmount": "<string>",
"price": "0.5",
"originalSize": "<string>",
"remainingSize": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"clientOrderId": "<string>"
}
]{
"message": [
{
"field": "orderIds",
"message": "orderIds should not be empty"
}
],
"error": "Bad Request",
"statusCode": 400
}{
"message": "<string>",
"error": "<string>",
"statusCode": 123
}{
"message": "<string>",
"error": "<string>",
"statusCode": 123
}{
"message": "<string>"
}{
"message": "<string>"
}Get User Orders
Returns a bare, newest-first array of the effective profile’s orders for one exact market slug. Omitted statuses default to LIVE. Partner HMAC tokens with delegated_signing may select an owned sub-account with x-on-behalf-of.
curl --request GET \
--url https://api.limitless.exchange/markets/{slug}/user-orders \
--header 'lmts-api-key: <api-key>'import requests
url = "https://api.limitless.exchange/markets/{slug}/user-orders"
headers = {"lmts-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'lmts-api-key': '<api-key>'}};
fetch('https://api.limitless.exchange/markets/{slug}/user-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.limitless.exchange/markets/{slug}/user-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 => [
"lmts-api-key: <api-key>"
],
]);
$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.limitless.exchange/markets/{slug}/user-orders"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("lmts-api-key", "<api-key>")
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.limitless.exchange/markets/{slug}/user-orders")
.header("lmts-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.limitless.exchange/markets/{slug}/user-orders")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["lmts-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body[
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"ownerId": 123,
"marketId": "<string>",
"token": "<string>",
"type": "GTC",
"status": "LIVE",
"side": "BUY",
"makerAmount": "<string>",
"takerAmount": "<string>",
"price": "0.5",
"originalSize": "<string>",
"remainingSize": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"clientOrderId": "<string>"
}
]{
"message": [
{
"field": "orderIds",
"message": "orderIds should not be empty"
}
],
"error": "Bad Request",
"statusCode": 400
}{
"message": "<string>",
"error": "<string>",
"statusCode": 123
}{
"message": "<string>",
"error": "<string>",
"statusCode": 123
}{
"message": "<string>"
}{
"message": "<string>"
}Authentication and delegation
Use HMAC authentication. Looking up your own orders does not require a specific token scope. To read a managed sub-account, sendx-on-behalf-of: <profileId>. The HMAC token must carry delegated_signing, and the target profile must belong to the authenticated partner.
Status filters
Ifstatuses is omitted, the API returns live orders.
Supported status filters are LIVE, MATCHED, CANCELED, and UNMATCHED. Repeat the query parameter to request multiple statuses. Values are case-insensitive.
A taker rejected by self-trade prevention terminates as CANCELED (the placement response carries execution.reason: "STP_TAKER_REJECTED"); filter for it with CANCELED.
Limit and response
When supplied,limit must be an integer from 1 through 200. If omitted, the result is unbounded. The endpoint has no cursor, page, total, or other pagination metadata.
The response is the array itself, not an { "orders": [...] } envelope. Each item contains the internal order and owner/market/token identifiers, order type, status, side, maker and taker amounts, price, original and remaining size, and creation time. Numeric values are serialized as decimal strings. clientOrderId is present only when the order was placed with one.
An existing market with no matching orders returns [].
Errors
| Status | Meaning |
|---|---|
400 | A path/query value or the delegated header is invalid, or an unknown query field was supplied. |
401 | Authentication failed. |
403 | Delegation lacks delegated_signing or the target is not owned by the partner. |
404 | The exact market slug or effective profile was not found. |
500 | The user-order lookup failed unexpectedly. |
Authorizations
Scoped API token with HMAC-SHA256 signing. Requires three headers: lmts-api-key (token ID), lmts-timestamp (ISO-8601), lmts-signature (Base64-encoded HMAC). See Authentication docs for details.
Headers
Managed sub-account profile ID. Requires an HMAC token with delegated_signing and a partner relationship with the target.
1 <= x <= 2147483647326
Path Parameters
Exact market slug. Group slugs and stable-slug aliases are not resolved.
"presidential-election-2024"
Query Parameters
Repeat to filter by one or more statuses. Values are case-insensitive and normalized to uppercase. Defaults to LIVE when omitted.
LIVE, MATCHED, CANCELED, UNMATCHED Maximum newest orders to return. Must be 1–200 when supplied.
1 <= x <= 200100
Response
Bare newest-first array; an existing market with no matching orders returns []
Internal order ID.
Profile that owns the order.
Internal market ID serialized as text.
Conditional position token ID.
GTC, FAK, FOK LIVE, MATCHED, CANCELED, UNMATCHED BUY, SELL Maker amount in raw 6-decimal units, serialized as a decimal string.
^[0-9]+(?:\.[0-9]+)?$Taker amount in raw 6-decimal units, serialized as a decimal string.
^[0-9]+(?:\.[0-9]+)?$Order price serialized as a decimal string.
^[0-9]+(?:\.[0-9]+)?$"0.5"
Original contract size in raw 6-decimal units, serialized as a decimal string.
^[0-9]+(?:\.[0-9]+)?$Unfilled contract size in raw 6-decimal units, serialized as a decimal string.
^[0-9]+(?:\.[0-9]+)?$Caller-assigned identifier when the order was placed with one.