Skip to main content
GET
/
v2
/
polymarket
/
builders
/
wallet
/
{wallet}
Get Wallet Builder Fees
curl --request GET \
  --url https://api.predexon.com/v2/polymarket/builders/wallet/{wallet} \
  --header 'x-api-key: <api-key>'
import requests

url = "https://api.predexon.com/v2/polymarket/builders/wallet/{wallet}"

headers = {"x-api-key": "<api-key>"}

response = requests.get(url, headers=headers)

print(response.text)
const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};

fetch('https://api.predexon.com/v2/polymarket/builders/wallet/{wallet}', 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.predexon.com/v2/polymarket/builders/wallet/{wallet}",
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-api-key: <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.predexon.com/v2/polymarket/builders/wallet/{wallet}"

req, _ := http.NewRequest("GET", url, nil)

req.Header.Add("x-api-key", "<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://api.predexon.com/v2/polymarket/builders/wallet/{wallet}")
.header("x-api-key", "<api-key>")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api.predexon.com/v2/polymarket/builders/wallet/{wallet}")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'

response = http.request(request)
puts response.read_body
{
  "wallet_address": "<string>",
  "window": "<string>",
  "total_builder_fee_usd": 123,
  "total_volume_usd": 123,
  "total_trade_count": 123,
  "builder_count": 123,
  "start_time": 123,
  "end_time": 123,
  "builder_code": "<string>",
  "breakdown": [
    {
      "builder_code": "<string>",
      "builder_fee_usd": 123,
      "volume_usd": 123,
      "trade_count": 123,
      "taker_fill_count": 123,
      "maker_fill_count": 123,
      "current_taker_bps": 123,
      "current_maker_bps": 123
    }
  ]
}
{
"error": "<string>",
"message": "<string>"
}
{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}
{
"error": "<string>",
"message": "<string>"
}
Total builder fees a single wallet has paid over a rolling window, plus a per-builder breakdown. Each fill is scored at the (taker_bps, maker_bps) rate that was actually in effect at the fill’s block_timestamp (ASOF join against the builder fee-rate history), so historical rate changes are accounted for correctly.
V2-only. Builder attribution is a Polymarket V2 concept - V1 fills are excluded from all metrics.

Time range

By default the endpoint uses a rolling window: 24h, 7d, 30d, or all (default). To score fees over an exact interval instead, pass start_time and/or end_time as Unix seconds — when either is set it overrides window.
ParameterDescription
windowRolling window: 24h, 7d, 30d, or all (default). Ignored if start_time/end_time are provided.
start_timeUnix seconds, inclusive. Overrides window.
end_timeUnix seconds, exclusive. Overrides window.
builder_codeRestrict the result to a single builder (bytes32 hex).
limitCaps the number of per-builder breakdown rows returned.
The response echoes the effective start_time, end_time, and builder_code that were applied to the query.

Authorizations

x-api-key
string
header
required

Path Parameters

wallet
string
required

Wallet address (0x + 40 hex)

Query Parameters

window
string
default:all

Rolling window: 24h, 7d, 30d, or all. Ignored if start_time/end_time provided.

start_time
integer | null

Unix seconds, inclusive. Overrides window if set.

end_time
integer | null

Unix seconds, exclusive. Overrides window if set.

builder_code
string | null

Restrict to a single builder (bytes32 hex).

limit
integer
default:50

Max per-builder breakdown rows

Required range: 1 <= x <= 500

Response

Successful Response

Builder fees a wallet has paid, with optional per-builder breakdown.

wallet_address
string
required

Wallet address (lowercased)

window
string
required

Time window: 24h, 7d, 30d, all, or 'custom' when start_time/end_time supplied

total_builder_fee_usd
number
required

Total builder fees this wallet paid across all (filtered) builders

total_volume_usd
number
required

Wallet's total attributed V2 trade notional

total_trade_count
integer
required

Total attributed fill legs

builder_count
integer
required

Distinct builders this wallet traded via (within filter)

start_time
integer | null

Echo of start_time query param (Unix seconds), if provided

end_time
integer | null

Echo of end_time query param (Unix seconds), if provided

builder_code
string | null

Echo of builder_code filter, if provided

breakdown
WalletBuilderFeeBreakdownEntry · object[]

Per-builder breakdown, ranked by builder_fee_usd desc