Get broker users ranked by API-created order volume in USD, with pagination
curl --request GET \
--url https://perps-api.vooi.io/broker/users/top-volume \
--header 'X-Broker-Key: <x-broker-key>'import requests
url = "https://perps-api.vooi.io/broker/users/top-volume"
headers = {"X-Broker-Key": "<x-broker-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-Broker-Key': '<x-broker-key>'}};
fetch('https://perps-api.vooi.io/broker/users/top-volume', 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://perps-api.vooi.io/broker/users/top-volume",
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-Broker-Key: <x-broker-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://perps-api.vooi.io/broker/users/top-volume"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-Broker-Key", "<x-broker-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://perps-api.vooi.io/broker/users/top-volume")
.header("X-Broker-Key", "<x-broker-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://perps-api.vooi.io/broker/users/top-volume")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-Broker-Key"] = '<x-broker-key>'
response = http.request(request)
puts response.read_body{
"cursor": "<string>",
"items": [
{
"userId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"volume": "12345.67"
}
]
}Broker
Get broker users ranked by API-created order volume in USD, with pagination
GET
/
broker
/
users
/
top-volume
Get broker users ranked by API-created order volume in USD, with pagination
curl --request GET \
--url https://perps-api.vooi.io/broker/users/top-volume \
--header 'X-Broker-Key: <x-broker-key>'import requests
url = "https://perps-api.vooi.io/broker/users/top-volume"
headers = {"X-Broker-Key": "<x-broker-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-Broker-Key': '<x-broker-key>'}};
fetch('https://perps-api.vooi.io/broker/users/top-volume', 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://perps-api.vooi.io/broker/users/top-volume",
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-Broker-Key: <x-broker-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://perps-api.vooi.io/broker/users/top-volume"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-Broker-Key", "<x-broker-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://perps-api.vooi.io/broker/users/top-volume")
.header("X-Broker-Key", "<x-broker-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://perps-api.vooi.io/broker/users/top-volume")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-Broker-Key"] = '<x-broker-key>'
response = http.request(request)
puts response.read_body{
"cursor": "<string>",
"items": [
{
"userId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"volume": "12345.67"
}
]
}Headers
Broker API key
Query Parameters
Pagination cursor returned from the previous page. Keep dateFrom, dateTo, exchanges, and limit unchanged across requests.
Start of the period as ISO date (e.g. "2026-01-01", inclusive). Defaults to 30 days before now. The range must not exceed 180 days.
Pattern:
^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$End of the period as ISO date (e.g. "2026-01-31", inclusive). Defaults to today.
Pattern:
^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$Filter by these exchanges (repeat the query param to pass several). When omitted, all supported exchanges are included. Supported perpetual exchange
Available options:
aster, binance, bybit, extended, gate, hyperliquid, lighter, mexc, ondo, robinhood Number of items to return per page (1-1000).
Required range:
1 <= x <= 1000