curl --request GET \
--url https://staging.apimonaco.xyz/api/v1/orders/twap/{twapOrderId} \
--header 'X-Monaco-Signature: <api-key>'import requests
url = "https://staging.apimonaco.xyz/api/v1/orders/twap/{twapOrderId}"
headers = {"X-Monaco-Signature": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-Monaco-Signature': '<api-key>'}};
fetch('https://staging.apimonaco.xyz/api/v1/orders/twap/{twapOrderId}', 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://staging.apimonaco.xyz/api/v1/orders/twap/{twapOrderId}",
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-Monaco-Signature: <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://staging.apimonaco.xyz/api/v1/orders/twap/{twapOrderId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-Monaco-Signature", "<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://staging.apimonaco.xyz/api/v1/orders/twap/{twapOrderId}")
.header("X-Monaco-Signature", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://staging.apimonaco.xyz/api/v1/orders/twap/{twapOrderId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-Monaco-Signature"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"twapOrderId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"tradingPairId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"side": "BUY",
"tradingMode": "SPOT",
"totalQuantity": "10",
"executedQuantity": "4.5",
"executedNotional": "157500.00",
"averageFillPrice": "35000.00",
"progress": "0.45",
"limitPrice": "35000.00",
"slippageToleranceBps": 100,
"reduceOnly": false,
"marginAccountId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"riskBucketId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"leverage": "5",
"useMasterBalance": false,
"strategyKey": "<string>",
"clientTwapId": "<string>",
"randomize": true,
"startTime": "2026-08-01T10:00:00Z",
"endTime": "2026-08-01T11:00:00Z",
"intervalMs": 30000,
"plannedSlices": 120,
"slicesPlaced": 54,
"slicesSkipped": 2,
"nextSliceAt": "2026-08-01T10:27:30Z",
"state": "ACTIVE",
"terminalReason": "<string>",
"createdAt": "2026-08-01T09:59:58Z",
"updatedAt": "<string>",
"cancelledAt": "<string>",
"completedAt": "<string>",
"executionStyle": "TAKER",
"triggerPrice": "<string>",
"triggerDirection": "<string>",
"conditionalExpiry": "<string>",
"triggeredAt": "<string>"
}Get TWAP order by ID
Get TWAP order by ID.
Get a single TWAP parent order by its ID. Users can only access their own TWAP orders.
curl --request GET \
--url https://staging.apimonaco.xyz/api/v1/orders/twap/{twapOrderId} \
--header 'X-Monaco-Signature: <api-key>'import requests
url = "https://staging.apimonaco.xyz/api/v1/orders/twap/{twapOrderId}"
headers = {"X-Monaco-Signature": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-Monaco-Signature': '<api-key>'}};
fetch('https://staging.apimonaco.xyz/api/v1/orders/twap/{twapOrderId}', 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://staging.apimonaco.xyz/api/v1/orders/twap/{twapOrderId}",
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-Monaco-Signature: <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://staging.apimonaco.xyz/api/v1/orders/twap/{twapOrderId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-Monaco-Signature", "<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://staging.apimonaco.xyz/api/v1/orders/twap/{twapOrderId}")
.header("X-Monaco-Signature", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://staging.apimonaco.xyz/api/v1/orders/twap/{twapOrderId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-Monaco-Signature"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"twapOrderId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"tradingPairId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"side": "BUY",
"tradingMode": "SPOT",
"totalQuantity": "10",
"executedQuantity": "4.5",
"executedNotional": "157500.00",
"averageFillPrice": "35000.00",
"progress": "0.45",
"limitPrice": "35000.00",
"slippageToleranceBps": 100,
"reduceOnly": false,
"marginAccountId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"riskBucketId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"leverage": "5",
"useMasterBalance": false,
"strategyKey": "<string>",
"clientTwapId": "<string>",
"randomize": true,
"startTime": "2026-08-01T10:00:00Z",
"endTime": "2026-08-01T11:00:00Z",
"intervalMs": 30000,
"plannedSlices": 120,
"slicesPlaced": 54,
"slicesSkipped": 2,
"nextSliceAt": "2026-08-01T10:27:30Z",
"state": "ACTIVE",
"terminalReason": "<string>",
"createdAt": "2026-08-01T09:59:58Z",
"updatedAt": "<string>",
"cancelledAt": "<string>",
"completedAt": "<string>",
"executionStyle": "TAKER",
"triggerPrice": "<string>",
"triggerDirection": "<string>",
"conditionalExpiry": "<string>",
"triggeredAt": "<string>"
}Authorizations
Ed25519 session-key request signing. Every authenticated request carries three headers: X-Monaco-PublicKey (64-char lowercase-hex session public key), X-Monaco-Timestamp (Unix milliseconds, within 30s of server time), and X-Monaco-Signature (hex ed25519 signature). The signature is over METHOD\npath?query\ntimestamp_ms\nSHA256_hex(body), where the body hash is the SHA-256 of the empty byte string when there is no body. Obtain the session keypair from POST /api/v1/auth/challenge followed by POST /api/v1/auth/verify.
Path Parameters
Response
OK
TWAP parent order UUID
Trading pair UUID
Order side: BUY or SELL
"BUY"
Trading mode: SPOT or MARGIN
"SPOT"
Total quantity requested
"10"
Quantity executed so far across all child orders
"4.5"
Notional (quote) value executed so far
"157500.00"
Volume-weighted average fill price (executedNotional / executedQuantity); absent until the first fill
"35000.00"
Execution progress as a decimal fraction (executedQuantity / totalQuantity, 0 to 1)
"0.45"
Parent-level limit price; absent when only the slippage band protects child orders
"35000.00"
Per-slice protective price band in basis points
100
Whether the parent is reduce-only
false
Margin account UUID for margin TWAP orders
Isolated risk bucket UUID for risk-bucket-scoped margin TWAP orders
Leverage for margin TWAP orders
"5"
Whether child orders use the master account balance
false
Strategy key used to group risk buckets
Client-assigned idempotency key
Whether seeded size/timing randomization is applied to the schedule
true
Window start (ISO 8601)
"2026-08-01T10:00:00Z"
Window end (ISO 8601). Execution stops hard at this time.
"2026-08-01T11:00:00Z"
Derived base slice interval in milliseconds (stored for audit)
30000
Number of slices in the planned schedule
120
Number of child orders placed so far
54
Number of slices skipped or failed so far (limit price through the market, self-trade prevention, halted market, failed admission). Skips never terminate the parent; the deficit flows into catch-up.
2
Planned time of the next slice (ISO 8601); absent once the parent is terminal
"2026-08-01T10:27:30Z"
Parent state: PENDING, ACTIVE, COMPLETED, or CANCELLED
"ACTIVE"
Terminal cause detail, e.g. an end-of-window shortfall ('ended with shortfall '); absent for non-terminal parents
Creation timestamp (ISO 8601)
"2026-08-01T09:59:58Z"
Last update timestamp (ISO 8601)
Cancellation timestamp (ISO 8601)
Completion timestamp (ISO 8601)
Child execution style: TAKER (banded MARKET slices) or PASSIVE (post-only children at the touch with a taker sweep at each slice deadline)
"TAKER"
Price-triggered activation level, when this parent is conditional
Trigger crossing direction: ABOVE or BELOW
Deadline for the trigger to fire (ISO 8601 UTC); reaching it cancels the parent with terminal reason 'trigger expired'
When the trigger fired and the floating window started (ISO 8601 UTC); unset while waiting
Was this page helpful?

