# List the orders of one DCA strategy, oldest first.
# Needs openssl, curl and OLYMPEX_API_KEY_ID, OLYMPEX_SECRET_KEY, OLYMPEX_PASSPHRASE.
STRATEGY_ID='320263ca-2f38-4349-b641-a23aed2ff847'
METHOD=GET
ENDPOINT="/dca-order/strategies/$STRATEGY_ID/orders"
QUERY=''
BODY='' # GET has no body: the signature covers the empty string
TS="${OLYMPEX_TIMESTAMP:-$(date +%s)}"
NONCE="${OLYMPEX_NONCE:-$(openssl rand -hex 12)}"
BODY_HASH="$(printf '%s' "$BODY" | openssl dgst -sha256 -binary | openssl base64 -A | tr '+/' '-_' | tr -d '=')"
VALUE_INFO="$(printf '%s\n%s\n%s' "$TS" "$NONCE" "$BODY_HASH")"
MESSAGE="$(printf 'OLPX-HMAC-SHA256-V2\n%s\n%s\n%s\n%s\n%s\n%s' "$TS" "$NONCE" "$METHOD" "/api/v1$ENDPOINT" "$QUERY" "$BODY_HASH")"
curl -sS -X "$METHOD" "https://api-rest.olympex.io/api/v1$ENDPOINT${QUERY:+?$QUERY}" \
-H "content-type: application/json" \
-H "x-api-key-id: $OLYMPEX_API_KEY_ID" \
-H "x-value-info: $(printf '%s' "$VALUE_INFO" | openssl base64 -A)" \
-H "x-passphrase: $OLYMPEX_PASSPHRASE" \
-H "x-signature: $(printf '%s' "$MESSAGE" | openssl dgst -sha256 -hmac "$OLYMPEX_SECRET_KEY" -binary | od -An -v -tx1 | tr -d ' \n')"
import { olympexRequest } from "./sign-request.ts"; // /authentication/sign-requests
type DcaOrder = {
id: string;
amount: number;
amountReceived?: number;
status: string;
transactionHash?: string;
createdAt: string;
};
const strategyId = "320263ca-2f38-4349-b641-a23aed2ff847";
const orders = await olympexRequest<DcaOrder[]>("GET", `/dca-order/strategies/${strategyId}/orders`);
for (const order of orders) {
console.log(order.createdAt, order.status, order.amount, order.amountReceived ?? "", order.transactionHash ?? "");
}
from sign_request import olympex_request # /authentication/sign-requests
strategy_id = "320263ca-2f38-4349-b641-a23aed2ff847"
orders = olympex_request("GET", f"/dca-order/strategies/{strategy_id}/orders")
for order in orders:
print(order["createdAt"], order["status"], order["amount"], order.get("amountReceived", ""), order.get("transactionHash", ""))
{
"success": true,
"data": [
{
"id": "5b3e1f7a-9c2d-4e8b-a1f0-6d4c2b8e9a17",
"strategyId": "320263ca-2f38-4349-b641-a23aed2ff847",
"accountTo": "0x1E67cb01969D79B2B895179e4A07D24a839dBb52",
"amount": 10,
"amountReceived": 0.00238,
"executionPrice": 4201.68,
"status": "successful",
"transactionHash": "0x9f2c4b1e7a3d5c8f0b6e2a4d1c7f9e3b5a8d0c2e4f6a1b3d5c7e9f0a2b4c6d8e",
"createdAt": "2026-09-30T12:52:10.004Z",
"updatedAt": "2026-09-30T12:52:41.377Z"
}
],
"meta": {
"requestId": "Edkf_izPoAMEPqg=",
"version": "v1",
"accountType": "integrator",
"apiKeyId": "00000000-0000-4000-8000-000000000000"
}
}
{
"success": false,
"error": {
"code": "NOT_FOUND",
"message": "DCA strategy not found",
"details": []
},
"meta": {
"requestId": "EdjfJigDIAMEbpw=",
"version": "v1",
"accountType": "integrator",
"apiKeyId": "00000000-0000-4000-8000-000000000000"
}
}
{
"message": "Forbidden"
}
List a strategy's orders
List the orders Olympex has created for one DCA strategy, oldest first.
# List the orders of one DCA strategy, oldest first.
# Needs openssl, curl and OLYMPEX_API_KEY_ID, OLYMPEX_SECRET_KEY, OLYMPEX_PASSPHRASE.
STRATEGY_ID='320263ca-2f38-4349-b641-a23aed2ff847'
METHOD=GET
ENDPOINT="/dca-order/strategies/$STRATEGY_ID/orders"
QUERY=''
BODY='' # GET has no body: the signature covers the empty string
TS="${OLYMPEX_TIMESTAMP:-$(date +%s)}"
NONCE="${OLYMPEX_NONCE:-$(openssl rand -hex 12)}"
BODY_HASH="$(printf '%s' "$BODY" | openssl dgst -sha256 -binary | openssl base64 -A | tr '+/' '-_' | tr -d '=')"
VALUE_INFO="$(printf '%s\n%s\n%s' "$TS" "$NONCE" "$BODY_HASH")"
MESSAGE="$(printf 'OLPX-HMAC-SHA256-V2\n%s\n%s\n%s\n%s\n%s\n%s' "$TS" "$NONCE" "$METHOD" "/api/v1$ENDPOINT" "$QUERY" "$BODY_HASH")"
curl -sS -X "$METHOD" "https://api-rest.olympex.io/api/v1$ENDPOINT${QUERY:+?$QUERY}" \
-H "content-type: application/json" \
-H "x-api-key-id: $OLYMPEX_API_KEY_ID" \
-H "x-value-info: $(printf '%s' "$VALUE_INFO" | openssl base64 -A)" \
-H "x-passphrase: $OLYMPEX_PASSPHRASE" \
-H "x-signature: $(printf '%s' "$MESSAGE" | openssl dgst -sha256 -hmac "$OLYMPEX_SECRET_KEY" -binary | od -An -v -tx1 | tr -d ' \n')"
import { olympexRequest } from "./sign-request.ts"; // /authentication/sign-requests
type DcaOrder = {
id: string;
amount: number;
amountReceived?: number;
status: string;
transactionHash?: string;
createdAt: string;
};
const strategyId = "320263ca-2f38-4349-b641-a23aed2ff847";
const orders = await olympexRequest<DcaOrder[]>("GET", `/dca-order/strategies/${strategyId}/orders`);
for (const order of orders) {
console.log(order.createdAt, order.status, order.amount, order.amountReceived ?? "", order.transactionHash ?? "");
}
from sign_request import olympex_request # /authentication/sign-requests
strategy_id = "320263ca-2f38-4349-b641-a23aed2ff847"
orders = olympex_request("GET", f"/dca-order/strategies/{strategy_id}/orders")
for order in orders:
print(order["createdAt"], order["status"], order["amount"], order.get("amountReceived", ""), order.get("transactionHash", ""))
{
"success": true,
"data": [
{
"id": "5b3e1f7a-9c2d-4e8b-a1f0-6d4c2b8e9a17",
"strategyId": "320263ca-2f38-4349-b641-a23aed2ff847",
"accountTo": "0x1E67cb01969D79B2B895179e4A07D24a839dBb52",
"amount": 10,
"amountReceived": 0.00238,
"executionPrice": 4201.68,
"status": "successful",
"transactionHash": "0x9f2c4b1e7a3d5c8f0b6e2a4d1c7f9e3b5a8d0c2e4f6a1b3d5c7e9f0a2b4c6d8e",
"createdAt": "2026-09-30T12:52:10.004Z",
"updatedAt": "2026-09-30T12:52:41.377Z"
}
],
"meta": {
"requestId": "Edkf_izPoAMEPqg=",
"version": "v1",
"accountType": "integrator",
"apiKeyId": "00000000-0000-4000-8000-000000000000"
}
}
{
"success": false,
"error": {
"code": "NOT_FOUND",
"message": "DCA strategy not found",
"details": []
},
"meta": {
"requestId": "EdjfJigDIAMEbpw=",
"version": "v1",
"accountType": "integrator",
"apiKeyId": "00000000-0000-4000-8000-000000000000"
}
}
{
"message": "Forbidden"
}
GET /dca-order/strategies/{id}/orders returns the orders Olympex has created so far for one of your strategies, oldest first. Olympex creates a strategy’s orders as the strategy runs, and there is no endpoint to create one. A new strategy has none until its first order is scheduled. To read one order, use GET /dca-order/orders/{id}.
What the list contains
- Orders that exist so far. Olympex creates each order as the strategy runs, so while the strategy is
active, the list can be shorter thaniterations. - One status per order. Order status explains each value and the fields it sets.
- Amounts in human-readable units, as JSON numbers.
amountis the amount of the token sold in the order. Once the order executes,amountReceivedis the amount of the token bought. - Everything at once. The list is unpaginated and takes no filters.
After you cancel the strategy
Cancelling a strategy stops new orders. The orders already in this list are read-only: no endpoint changes or cancels a DCA order. To make sure none of them executes, lower the maker’s allowance to the order contract: see Stop everything.# List the orders of one DCA strategy, oldest first.
# Needs openssl, curl and OLYMPEX_API_KEY_ID, OLYMPEX_SECRET_KEY, OLYMPEX_PASSPHRASE.
STRATEGY_ID='320263ca-2f38-4349-b641-a23aed2ff847'
METHOD=GET
ENDPOINT="/dca-order/strategies/$STRATEGY_ID/orders"
QUERY=''
BODY='' # GET has no body: the signature covers the empty string
TS="${OLYMPEX_TIMESTAMP:-$(date +%s)}"
NONCE="${OLYMPEX_NONCE:-$(openssl rand -hex 12)}"
BODY_HASH="$(printf '%s' "$BODY" | openssl dgst -sha256 -binary | openssl base64 -A | tr '+/' '-_' | tr -d '=')"
VALUE_INFO="$(printf '%s\n%s\n%s' "$TS" "$NONCE" "$BODY_HASH")"
MESSAGE="$(printf 'OLPX-HMAC-SHA256-V2\n%s\n%s\n%s\n%s\n%s\n%s' "$TS" "$NONCE" "$METHOD" "/api/v1$ENDPOINT" "$QUERY" "$BODY_HASH")"
curl -sS -X "$METHOD" "https://api-rest.olympex.io/api/v1$ENDPOINT${QUERY:+?$QUERY}" \
-H "content-type: application/json" \
-H "x-api-key-id: $OLYMPEX_API_KEY_ID" \
-H "x-value-info: $(printf '%s' "$VALUE_INFO" | openssl base64 -A)" \
-H "x-passphrase: $OLYMPEX_PASSPHRASE" \
-H "x-signature: $(printf '%s' "$MESSAGE" | openssl dgst -sha256 -hmac "$OLYMPEX_SECRET_KEY" -binary | od -An -v -tx1 | tr -d ' \n')"
import { olympexRequest } from "./sign-request.ts"; // /authentication/sign-requests
type DcaOrder = {
id: string;
amount: number;
amountReceived?: number;
status: string;
transactionHash?: string;
createdAt: string;
};
const strategyId = "320263ca-2f38-4349-b641-a23aed2ff847";
const orders = await olympexRequest<DcaOrder[]>("GET", `/dca-order/strategies/${strategyId}/orders`);
for (const order of orders) {
console.log(order.createdAt, order.status, order.amount, order.amountReceived ?? "", order.transactionHash ?? "");
}
from sign_request import olympex_request # /authentication/sign-requests
strategy_id = "320263ca-2f38-4349-b641-a23aed2ff847"
orders = olympex_request("GET", f"/dca-order/strategies/{strategy_id}/orders")
for order in orders:
print(order["createdAt"], order["status"], order["amount"], order.get("amountReceived", ""), order.get("transactionHash", ""))
{
"success": true,
"data": [
{
"id": "5b3e1f7a-9c2d-4e8b-a1f0-6d4c2b8e9a17",
"strategyId": "320263ca-2f38-4349-b641-a23aed2ff847",
"accountTo": "0x1E67cb01969D79B2B895179e4A07D24a839dBb52",
"amount": 10,
"amountReceived": 0.00238,
"executionPrice": 4201.68,
"status": "successful",
"transactionHash": "0x9f2c4b1e7a3d5c8f0b6e2a4d1c7f9e3b5a8d0c2e4f6a1b3d5c7e9f0a2b4c6d8e",
"createdAt": "2026-09-30T12:52:10.004Z",
"updatedAt": "2026-09-30T12:52:41.377Z"
}
],
"meta": {
"requestId": "Edkf_izPoAMEPqg=",
"version": "v1",
"accountType": "integrator",
"apiKeyId": "00000000-0000-4000-8000-000000000000"
}
}
{
"success": false,
"error": {
"code": "NOT_FOUND",
"message": "DCA strategy not found",
"details": []
},
"meta": {
"requestId": "EdjfJigDIAMEbpw=",
"version": "v1",
"accountType": "integrator",
"apiKeyId": "00000000-0000-4000-8000-000000000000"
}
}
{
"message": "Forbidden"
}
Authorizations
Your API key ID (UUID). See Sign requests.
Base64 of timestamp + "\n" + nonce + "\n" + bodyHash, where timestamp is Unix seconds, nonce is 24 new hexadecimal characters and bodyHash is the unpadded base64url SHA-256 of the canonical body.
Your account passphrase. Treat it like the secret key.
Lowercase hex HMAC-SHA256 (signature v2), keyed with your secret key string (UTF-8, not decoded), of seven lines joined with \n, with no trailing newline: OLPX-HMAC-SHA256-V2, timestamp, nonce, the uppercase method, path, canonicalQuery and bodyHash. path is the request path including /api/v1, without the query string, for example /api/v1/limit-order/<id>. canonicalQuery is the query parameters decoded (+ is a space), sorted by key and then by value, re-encoded per RFC 3986 and joined with &, or the empty string when there is no query. Headers signed for one request are rejected on any other. See Sign requests.
Path Parameters
Strategy ID, as returned when it was created.
Was this page helpful?
