https://api.coinversa.ai/api/public/v1 with the X-API-Key header. Every endpoint is Starter or Pro, and every one has an x402 pay-per-call twin that needs no key at all. For the data model — the exact-vs-attributed distinction, the verified stamp, dataNotes, and builder names — see Builder codes & attribution.
Endpoint guide
/builders/leaderboard · Starter
All builders ranked by exact ledger revenue over the period (period=day|week|month, default week; limit ≤100, offset ≤1000). Attributed metrics (volume, users, fills) ride along, each with the immediately-preceding same-length window’s value for deltas. feeTenthsBp is the builder’s most common requested fee over the last 7 days of orders, in tenths of a basis point.
/builders/{builder}/profile · Starter
One builder in depth: exact revenueUsd for the period (default month), firstSeen / lastSeen in the fee ledger, distinct fee tokens, a daily attributed series with biggestDay, top coins (topCoins ≤50, default 10) with marketType, and user totals including profitableUsers. Gotcha: returns 404 when the builder has no revenue in the fee ledger; the daily series, coins, and user counts are attribution-plane.
/trader/{address}/builders · Starter
The per-wallet view: every builder a wallet traded through in the window (since, default 30d, clamped to 90d), ordered by fees paid descending, with fills, volume, and first/last seen. Gotcha: the response’s window echoes what you requested even when the data was clamped to 90d.
/builders/{builder}/traders · Pro
A builder’s attributed wallets for the window, sortable by sort=builderFee|volume|pnl (default builderFee; limit ≤500). Each row carries realized PnL on attributed fills, fees paid, volume, live equity, and the exchange-wide all-time pnlTier / sizeTier. Gotcha: equity is 0 and both tiers are null when the wallet isn’t in the cohort rollup yet.
/builders/{builder}/fills · Pro
The raw attributed fill stream: time, wallet, coin, marketType (perp|spot|hip4 — @N coins are spot, #N are HIP-4 outcomes), side, price, size, PnL, and the builder fee per fill, with oid (nullable) and tid. Filters: since (default 24h, clamped to 90d), exact coin (BTC, xyz:GOLD, @123, #10010), and address.
/builders/{builder}/cohorts · Pro
Cohort composition of the builder’s user base for the period: users, share, fees paid, volume, PnL, and fills split by all-time PnL tier and size tier. Gotcha: wallets missing from the cohort rollup appear under tier untracked, so per-tier user counts always sum to totalUsers; share is users / totalUsers.
/builders/{builder}/retention · Pro
Monthly retention triangle over the last 12 calendar months: wallets are cohorted by the month of their first builder-fee order via this builder, and activeWallets[k] counts how many were still active k months later (index 0 = the cohort month itself). No query parameters. Gotchas: “active” means placed at least one builder-fee order that month — the order need not fill, so these counts can exceed the attributed-fill user counts on /cohorts and /overlap. It’s the heaviest builder query and is cached for 6 hours.
/builders/{builder}/overlap · Pro
The top 10 other builders this builder’s active users also traded through in the period, by shared users. Gotchas: feesUsd is what the shared users paid to the other builder, not to this one; share uses activeUsers (this builder’s attributed users in the period) as the denominator.
Response envelope
Every builder response carriesbuilderName (omitted when unknown), a verified stamp, and the constant dataNotes disclosure. A trimmed leaderboard response:
revenueUsdis exact (ledger plane);attributed*fields come from the fill join and slightly undercount — see the two data planes.verified.coverageis null until the reconciliation pipeline ships — normal, not an error.
Errors
Builder routes return huma problem-details errors (title / status / detail / code), the same error model as every /api/public/v1 endpoint — see Authentication. A tier-gated request without sufficient entitlement returns:
400 with detail: "invalid ethereum address" for a malformed builder or wallet address, and 404 from /profile when the builder has no revenue in the fee ledger.
For AI agents
The canonical request:X-API-Key header — not a Bearer token (an Authorization: Bearer header is ignored and treated as a missing key).
- Gate handling — on a 403, read
code. If it’s"TIER_GATE", reportrequired_tierand hand the humanupgrade_url— or fall back to the endpoint’s x402 twin for keyless pay-per-call. - Stamp interpretation —
verified.coverage === nullis normal (pipeline not yet live); never retry on it. Treatverified.ledger_chain_timeas the freshness timestamp.revenueUsdis exact;attributed*fields slightly undercount — relaydataNoteswhenever you present the numbers. - Field gotchas —
builderNameabsent means unknown, not invalid. Tier slugs are legacy (smart_money, notsharps) — match per Trader cohorts.sincesilently clamps at 90d (the response echoes what you asked for). Retention’s active counts are orders-plane and can exceed user counts elsewhere. - MCP — builder data is not in the MCP tool catalog yet. Agents with the Coinversa MCP connected must use REST for builders today.

