curl --request GET \
--url https://api.agg.market/execution/withdrawals/{withdrawalId} \
--header 'Authorization: Bearer <token>' \
--header 'x-app-id: <api-key>'import requests
url = "https://api.agg.market/execution/withdrawals/{withdrawalId}"
headers = {
"x-app-id": "<api-key>",
"Authorization": "Bearer <token>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'x-app-id': '<api-key>', Authorization: 'Bearer <token>'}
};
fetch('https://api.agg.market/execution/withdrawals/{withdrawalId}', 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.agg.market/execution/withdrawals/{withdrawalId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"x-app-id: <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.agg.market/execution/withdrawals/{withdrawalId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-app-id", "<api-key>")
req.Header.Add("Authorization", "Bearer <token>")
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.agg.market/execution/withdrawals/{withdrawalId}")
.header("x-app-id", "<api-key>")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.agg.market/execution/withdrawals/{withdrawalId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-app-id"] = '<api-key>'
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"withdrawalId": "cmf3s7d9k00e1mw0l4n2x6pvh",
"status": "completed",
"requested": {
"tokenSymbol": "USDC",
"amountRaw": "50000000"
},
"completedAmountRaw": "49930000",
"destination": {
"chainId": 8453,
"address": "0x2f9a4c7e1b3d6f8a0c5e9b2d4f7a1c3e6b8d0f52",
"tokenSymbol": "USDC"
},
"legs": [
{
"type": "bridge",
"status": "confirmed",
"sourceChainId": 137,
"destChainId": 8453,
"amountRaw": "50000000",
"txHash": "0x7e0b3d6a9c2f5e8b1d4a7c0f3e6b9d2a5c8f1e4b7d0a3c6f9e2b5d8a1c4f7e0b",
"bridgeOperationId": "0x1d4a7c0f3e6b9d2a5c8f1e4b7d0a3c6f9e2b5d8a1c4f7e0b3d6a9c2f5e8b1d4a",
"sourceTokenSymbol": "USDC",
"errorMessage": null
}
],
"expected": {
"outputRaw": "49930000",
"feeRaw": "70000",
"etaSeconds": 30
},
"pricingStatus": "quoted",
"errorMessage": null,
"sources": [
{
"sourceId": "cmf3s7d9m00e2mw0l8k5r1bqa",
"chainId": 137,
"tokenSymbol": "USDC",
"tokenAddress": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
"decimals": 6,
"amountRaw": "50000000",
"custodyKind": "DEPOSIT_WALLET",
"status": "confirmed",
"txHash": "0x7e0b3d6a9c2f5e8b1d4a7c0f3e6b9d2a5c8f1e4b7d0a3c6f9e2b5d8a1c4f7e0b",
"bridgeOperationId": "0x1d4a7c0f3e6b9d2a5c8f1e4b7d0a3c6f9e2b5d8a1c4f7e0b3d6a9c2f5e8b1d4a"
}
]
}{
"message": "<string>"
}{
"message": "<string>"
}{
"message": "<string>"
}Get withdrawal status
Returns the current persisted state of a withdrawal — used as a fallback when the WS lifecycle channel has missed events.
curl --request GET \
--url https://api.agg.market/execution/withdrawals/{withdrawalId} \
--header 'Authorization: Bearer <token>' \
--header 'x-app-id: <api-key>'import requests
url = "https://api.agg.market/execution/withdrawals/{withdrawalId}"
headers = {
"x-app-id": "<api-key>",
"Authorization": "Bearer <token>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'x-app-id': '<api-key>', Authorization: 'Bearer <token>'}
};
fetch('https://api.agg.market/execution/withdrawals/{withdrawalId}', 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.agg.market/execution/withdrawals/{withdrawalId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"x-app-id: <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.agg.market/execution/withdrawals/{withdrawalId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-app-id", "<api-key>")
req.Header.Add("Authorization", "Bearer <token>")
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.agg.market/execution/withdrawals/{withdrawalId}")
.header("x-app-id", "<api-key>")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.agg.market/execution/withdrawals/{withdrawalId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-app-id"] = '<api-key>'
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"withdrawalId": "cmf3s7d9k00e1mw0l4n2x6pvh",
"status": "completed",
"requested": {
"tokenSymbol": "USDC",
"amountRaw": "50000000"
},
"completedAmountRaw": "49930000",
"destination": {
"chainId": 8453,
"address": "0x2f9a4c7e1b3d6f8a0c5e9b2d4f7a1c3e6b8d0f52",
"tokenSymbol": "USDC"
},
"legs": [
{
"type": "bridge",
"status": "confirmed",
"sourceChainId": 137,
"destChainId": 8453,
"amountRaw": "50000000",
"txHash": "0x7e0b3d6a9c2f5e8b1d4a7c0f3e6b9d2a5c8f1e4b7d0a3c6f9e2b5d8a1c4f7e0b",
"bridgeOperationId": "0x1d4a7c0f3e6b9d2a5c8f1e4b7d0a3c6f9e2b5d8a1c4f7e0b3d6a9c2f5e8b1d4a",
"sourceTokenSymbol": "USDC",
"errorMessage": null
}
],
"expected": {
"outputRaw": "49930000",
"feeRaw": "70000",
"etaSeconds": 30
},
"pricingStatus": "quoted",
"errorMessage": null,
"sources": [
{
"sourceId": "cmf3s7d9m00e2mw0l8k5r1bqa",
"chainId": 137,
"tokenSymbol": "USDC",
"tokenAddress": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
"decimals": 6,
"amountRaw": "50000000",
"custodyKind": "DEPOSIT_WALLET",
"status": "confirmed",
"txHash": "0x7e0b3d6a9c2f5e8b1d4a7c0f3e6b9d2a5c8f1e4b7d0a3c6f9e2b5d8a1c4f7e0b",
"bridgeOperationId": "0x1d4a7c0f3e6b9d2a5c8f1e4b7d0a3c6f9e2b5d8a1c4f7e0b3d6a9c2f5e8b1d4a"
}
]
}{
"message": "<string>"
}{
"message": "<string>"
}{
"message": "<string>"
}Authorizations
Your application ID. Required for all app-tier and user-tier routes.
JWT access token returned by POST /auth/verify. Required for user-tier routes.
Path Parameters
Response
200
Withdrawal id. Poll it on the status endpoint.
Withdrawal status. pending: accepted, not started (the submit response always returns this). bridging: moving funds across chains. transferring: same-chain transfer in progress. Terminal: completed, partial (some sources delivered; see completedAmountRaw), failed.
pending, bridging, transferring, completed, partial, failed What is being withdrawn.
Show child attributes
Show child attributes
Estimated total delivered by the completed parts. null until the withdrawal is terminal. Integer string in the destination token's atomic units (6 decimals, so 1000000 = 1 USDC; 18 decimals on BNB Chain).
Where the funds are delivered.
Show child attributes
Show child attributes
Transfers that make up the withdrawal.
Show child attributes
Show child attributes
Quote for the withdrawal. null fields unless pricingStatus is quoted.
Show child attributes
Show child attributes
Fee quote state. quoted: expected holds a current quote. unquoted / quoting: no quote yet. unviable: at least one source is too small to cover its fees.
unquoted, quoting, quoted, unviable Why the withdrawal failed or only partly completed. null otherwise, and always null on the submit response (errors there are returned as HTTP errors).
Balances the withdrawal is funded from.
Show child attributes
Show child attributes