List withdrawals
const url = 'https://api.openfx.com/v1/brokerage/{orgId}/withdrawals';
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));import requests
url = "https://api.openfx.com/v1/brokerage/{orgId}/withdrawals"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)HttpResponse<String> response = Unirest.get("https://api.openfx.com/v1/brokerage/{orgId}/withdrawals")
.header("Authorization", "Bearer <token>")
.asString();CURL *hnd = curl_easy_init();
curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(hnd, CURLOPT_WRITEDATA, stdout);
curl_easy_setopt(hnd, CURLOPT_URL, "https://api.openfx.com/v1/brokerage/{orgId}/withdrawals");
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer <token>");
curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers);
CURLcode ret = curl_easy_perform(hnd);package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.openfx.com/v1/brokerage/{orgId}/withdrawals"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}curl --request GET \
--url https://api.openfx.com/v1/brokerage/{orgId}/withdrawals \
--header 'Authorization: Bearer <token>'{
"status": "success",
"data": [
{
"id": "392cf015-5045-4615-a226-df3543d9c15f",
"createdAt": "2025-02-07T14:04:14.268Z",
"amount": 0.5,
"currency": "USDT",
"network": "ETHEREUM",
"status": "COMPLETED",
"transactionHash": null,
"withdrawalAddressId": "2697eff1-ac30-41db-94b7-d615133a5c9e",
"orgId": "c96183a5-2830-4606-9ae2-15dfd058872b",
"actorId": "36bdb6a4-7cc6-4a08-b325-db416dbdd9f5",
"actorEmail": "[email protected]",
"comments": "Client initiated the withdrawal"
},
{
"id": "aa7b22c8-2a37-47bf-b82e-b8f4a9b79a1b",
"createdAt": "2025-02-07T11:06:58.271Z",
"amount": 12,
"currency": "USDT",
"network": "ETHEREUM",
"status": "PENDING",
"transactionHash": null,
"withdrawalAddressId": "d5c210dd-73a9-4102-9daf-1146b615c42d",
"orgId": "c96183a5-2830-4606-9ae2-15dfd058872b",
"actorId": "72ad1d70-e8dd-4592-9519-0273ea5a6f3c",
"actorEmail": "[email protected]",
"comments": "Client initiated the withdrawal"
}
],
"meta": {
"pagination": {
"total": 2,
"start": 1,
"end": 2,
"page": 1,
"limit": 2
}
}
}{
"status": "error",
"message": "Query validation failed"
}{
"status": "error",
"message": "The authorization key provided is either invalid or expired, please try again"
}{
"status": "error",
"message": "An internal error has occurred"
}List withdrawals
Returns a paginated view of all withdrawals (both fiat and stablecoin) for the organization.
GET
/
v1
/
brokerage
/
{orgId}
/
withdrawals
List withdrawals
const url = 'https://api.openfx.com/v1/brokerage/{orgId}/withdrawals';
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));import requests
url = "https://api.openfx.com/v1/brokerage/{orgId}/withdrawals"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)HttpResponse<String> response = Unirest.get("https://api.openfx.com/v1/brokerage/{orgId}/withdrawals")
.header("Authorization", "Bearer <token>")
.asString();CURL *hnd = curl_easy_init();
curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(hnd, CURLOPT_WRITEDATA, stdout);
curl_easy_setopt(hnd, CURLOPT_URL, "https://api.openfx.com/v1/brokerage/{orgId}/withdrawals");
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer <token>");
curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers);
CURLcode ret = curl_easy_perform(hnd);package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.openfx.com/v1/brokerage/{orgId}/withdrawals"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}curl --request GET \
--url https://api.openfx.com/v1/brokerage/{orgId}/withdrawals \
--header 'Authorization: Bearer <token>'{
"status": "success",
"data": [
{
"id": "392cf015-5045-4615-a226-df3543d9c15f",
"createdAt": "2025-02-07T14:04:14.268Z",
"amount": 0.5,
"currency": "USDT",
"network": "ETHEREUM",
"status": "COMPLETED",
"transactionHash": null,
"withdrawalAddressId": "2697eff1-ac30-41db-94b7-d615133a5c9e",
"orgId": "c96183a5-2830-4606-9ae2-15dfd058872b",
"actorId": "36bdb6a4-7cc6-4a08-b325-db416dbdd9f5",
"actorEmail": "[email protected]",
"comments": "Client initiated the withdrawal"
},
{
"id": "aa7b22c8-2a37-47bf-b82e-b8f4a9b79a1b",
"createdAt": "2025-02-07T11:06:58.271Z",
"amount": 12,
"currency": "USDT",
"network": "ETHEREUM",
"status": "PENDING",
"transactionHash": null,
"withdrawalAddressId": "d5c210dd-73a9-4102-9daf-1146b615c42d",
"orgId": "c96183a5-2830-4606-9ae2-15dfd058872b",
"actorId": "72ad1d70-e8dd-4592-9519-0273ea5a6f3c",
"actorEmail": "[email protected]",
"comments": "Client initiated the withdrawal"
}
],
"meta": {
"pagination": {
"total": 2,
"start": 1,
"end": 2,
"page": 1,
"limit": 2
}
}
}{
"status": "error",
"message": "Query validation failed"
}{
"status": "error",
"message": "The authorization key provided is either invalid or expired, please try again"
}{
"status": "error",
"message": "An internal error has occurred"
}v1 sunsets December 31, 2026. Migrate to v2 — see the migration guide.
Errors
| Status | Message | Notes |
|---|---|---|
| 400 | Query validation failed | Request didn’t match schema (bad pagination cursor, malformed filter, etc.) |
| 401 | The authorization key provided is either invalid or expired, please try again | Mint a fresh JWT — see Authentication |
| 500 | An internal error has occurred | Server fault; retry with backoff |
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Query Parameters
Required range:
x >= 1Example:
1
Required range:
1 <= x <= 50Example:
10
⌘I