---
title: "Get Wallet Builder Fees"
method: GET
path: "/v2/polymarket/builders/wallet/{wallet}"
tags: ["polymarket"]
---

# Get Wallet Builder Fees

`GET /v2/polymarket/builders/wallet/{wallet}`

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

PK-probes `order_filled_by_maker` (sorted by `maker`). Each fill is
scored at the (taker_bps, maker_bps) that was actually in effect at
`block_timestamp` — ASOF join against `builder_fee_rates FINAL`, with
a synthesized epoch-anchored row per builder so fills that predate the
refresh worker's first observation also get scored.

Time range: pass `window` (24h/7d/30d/all) for convenience, or
`start_time` + `end_time` (Unix seconds) for arbitrary ranges. If
either timestamp is set, `window` is ignored.

Optional `builder_code` filters to a single builder.

On V2, OrderFilled.taker is the exchange contract — user identity is
always `maker`, and `is_taker=1` flags which leg is the taker side.

## Path parameters

- `wallet` string, required — Wallet address (0x + 40 hex)

## Query parameters

- `window` string — Rolling window: 24h, 7d, 30d, or all. Ignored if start_time/end_time provided.
- `start_time` integer, nullable — Unix seconds, inclusive. Overrides `window` if set.
- `end_time` integer, nullable — Unix seconds, exclusive. Overrides `window` if set.
- `builder_code` string, nullable — Restrict to a single builder (bytes32 hex).
- `limit` integer — Max per-builder breakdown rows

## Response `200`

Successful Response

- WalletBuilderFeesResponse — 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
  - `start_time` integer, nullable — Echo of start_time query param (Unix seconds), if provided
  - `end_time` integer, nullable — Echo of end_time query param (Unix seconds), if provided
  - `builder_code` string, nullable — Echo of builder_code filter, if provided
  - `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)
  - `breakdown` WalletBuilderFeeBreakdownEntry[] — Per-builder breakdown, ranked by builder_fee_usd desc
    - `builder_code` string, required — Builder code, bytes32 hex
    - `builder_fee_usd` number, required — Builder fees this wallet paid to this builder
    - `volume_usd` number, required — Wallet's attributed trade notional via this builder
    - `trade_count` integer, required — Number of attributed fill legs
    - `taker_fill_count` integer, required — Fill legs where wallet was the taker
    - `maker_fill_count` integer, required — Fill legs where wallet was the maker
    - `current_taker_bps` integer, nullable — Current taker bps for this builder
    - `current_maker_bps` integer, nullable — Current maker bps for this builder

## Other responses

- `400` — Bad Request
- `422` — Validation Error
- `500` — Internal Server Error

---

[API](https://skmtc.net/predexon/apis/predexon-api.md) · [All operations](https://skmtc.net/predexon/apis/predexon-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/predexon/predexon-api/versions/80a306fbdb39/schema)
