curl --request GET \
--url https://api.orderly.org/v1/broker/daily_fee_revenue \
--header 'orderly-account-id: <orderly-account-id>' \
--header 'orderly-key: <orderly-key>' \
--header 'orderly-signature: <orderly-signature>' \
--header 'orderly-timestamp: <orderly-timestamp>'import requests
url = "https://api.orderly.org/v1/broker/daily_fee_revenue"
headers = {
"orderly-timestamp": "<orderly-timestamp>",
"orderly-account-id": "<orderly-account-id>",
"orderly-key": "<orderly-key>",
"orderly-signature": "<orderly-signature>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {
'orderly-timestamp': '<orderly-timestamp>',
'orderly-account-id': '<orderly-account-id>',
'orderly-key': '<orderly-key>',
'orderly-signature': '<orderly-signature>'
}
};
fetch('https://api.orderly.org/v1/broker/daily_fee_revenue', 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.orderly.org/v1/broker/daily_fee_revenue",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"orderly-account-id: <orderly-account-id>",
"orderly-key: <orderly-key>",
"orderly-signature: <orderly-signature>",
"orderly-timestamp: <orderly-timestamp>"
],
]);
$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.orderly.org/v1/broker/daily_fee_revenue"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("orderly-timestamp", "<orderly-timestamp>")
req.Header.Add("orderly-account-id", "<orderly-account-id>")
req.Header.Add("orderly-key", "<orderly-key>")
req.Header.Add("orderly-signature", "<orderly-signature>")
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.orderly.org/v1/broker/daily_fee_revenue")
.header("orderly-timestamp", "<orderly-timestamp>")
.header("orderly-account-id", "<orderly-account-id>")
.header("orderly-key", "<orderly-key>")
.header("orderly-signature", "<orderly-signature>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.orderly.org/v1/broker/daily_fee_revenue")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["orderly-timestamp"] = '<orderly-timestamp>'
request["orderly-account-id"] = '<orderly-account-id>'
request["orderly-key"] = '<orderly-key>'
request["orderly-signature"] = '<orderly-signature>'
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"rows": [
{
"date": "2026-08-18",
"permissionless_listing_fee_share": 0,
"distributor_fee_share": 0,
"builder_fee_revenue": 0,
"cross_broker_fee": 0,
"total_revenue": 0
}
]
},
"timestamp": 1787068800000
}Get builder's daily revenue settlement history
Limit: 10 requests per second
GET /v1/broker/daily_fee_revenue
Retrieve daily revenue settlement records for the broker ID linked to the authenticated builder admin. Use this endpoint to reconcile builder revenue by settlement date. The settlement date is recorded at 00:00 UTC on the day after the revenue date.
Each row represents a settlement day and breaks revenue into Perp Anything fee share, distributor fee share, builder fee revenue, and revenue share generated via cross-builder or tagged order flows (order_tag). builder_fee_revenue is the net fee revenue earned from the builder’s trading platform: trading fees minus the builder’s base fee, after affiliate commission distribution. total_revenue equals permissionless_listing_fee_share + distributor_fee_share + builder_fee_revenue + cross_broker_fee.
Access is limited to the current builder admin’s own broker ID. If the builder admin account changed, records associated with a previous admin account are not returned. Results are sorted by date descending. The start_date and end_date range must be valid and cannot exceed 180 days.
curl --request GET \
--url https://api.orderly.org/v1/broker/daily_fee_revenue \
--header 'orderly-account-id: <orderly-account-id>' \
--header 'orderly-key: <orderly-key>' \
--header 'orderly-signature: <orderly-signature>' \
--header 'orderly-timestamp: <orderly-timestamp>'import requests
url = "https://api.orderly.org/v1/broker/daily_fee_revenue"
headers = {
"orderly-timestamp": "<orderly-timestamp>",
"orderly-account-id": "<orderly-account-id>",
"orderly-key": "<orderly-key>",
"orderly-signature": "<orderly-signature>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {
'orderly-timestamp': '<orderly-timestamp>',
'orderly-account-id': '<orderly-account-id>',
'orderly-key': '<orderly-key>',
'orderly-signature': '<orderly-signature>'
}
};
fetch('https://api.orderly.org/v1/broker/daily_fee_revenue', 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.orderly.org/v1/broker/daily_fee_revenue",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"orderly-account-id: <orderly-account-id>",
"orderly-key: <orderly-key>",
"orderly-signature: <orderly-signature>",
"orderly-timestamp: <orderly-timestamp>"
],
]);
$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.orderly.org/v1/broker/daily_fee_revenue"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("orderly-timestamp", "<orderly-timestamp>")
req.Header.Add("orderly-account-id", "<orderly-account-id>")
req.Header.Add("orderly-key", "<orderly-key>")
req.Header.Add("orderly-signature", "<orderly-signature>")
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.orderly.org/v1/broker/daily_fee_revenue")
.header("orderly-timestamp", "<orderly-timestamp>")
.header("orderly-account-id", "<orderly-account-id>")
.header("orderly-key", "<orderly-key>")
.header("orderly-signature", "<orderly-signature>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.orderly.org/v1/broker/daily_fee_revenue")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["orderly-timestamp"] = '<orderly-timestamp>'
request["orderly-account-id"] = '<orderly-account-id>'
request["orderly-key"] = '<orderly-key>'
request["orderly-signature"] = '<orderly-signature>'
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"rows": [
{
"date": "2026-08-18",
"permissionless_listing_fee_share": 0,
"distributor_fee_share": 0,
"builder_fee_revenue": 0,
"cross_broker_fee": 0,
"total_revenue": 0
}
]
},
"timestamp": 1787068800000
}