Sign each request with a fresh HMAC signature. The cURL and HTTP header values below are placeholders, not reusable credentials. For runnable signing code, use request signing examples. Python examples use the signed session from that page; Node.js examples use its bravadoFetch helper.
Returns traders ranked by USDC trading volume for the requested window. The ranking runs in the database over the complete candidate set on the served column, with a deterministic wallet tie-break, so pages never overlap or skip rows.
GET https://partner-api.bravadotrade.com/trader-analytics/leaderboard/volume
Ranking column: volume_usdc (USDC notional), trades (fill count), or volume_shares (contracts traded). This board carries no PnL fields, so a PnL sort key from GET /leaderboard is rejected with 400.
desc or asc. order=asc reads the bottom of the board directly — e.g. the least-active traders — without walking pages backward from an offset you have to discover first.
Minimum trade count to be included in the candidate set. Note this board’s default is 0, while GET /leaderboard’s default is 5 — pass the same value to both endpoints to compare over the same set of traders.
Filter: keep only wallets whose dominant category equals this value. One of Politics, Crypto, Sports, Science, Tech, Entertainment, Earnings, Finance, Geopolitics, World, Elections, Weather, Other. This is not “rank within category X” — it narrows which wallets qualify for the board at all, then ranks the survivors normally. On day-grained windows (7d/30d/90d/365d/all) this matches the wallet’s dominance in that window; on sub-day windows (1h/4h/24h), which have no day-grained answer to give, it matches the wallet’s all-time dominant category instead (see category_basis below) — the filter works the same way on every board, just against an explicitly all-time question on sub-day ones. Returns 400 on a window the category backfill hasn’t reached yet (see category_basis below), and on any venue other than Polymarket.
The wallet’s dominant category (by volume). On a day-grained window (7d/30d/90d/365d) this follows that board’s window — e.g. a wallet ranked on a 30d board because of one Elections bet reads Elections here, not an all-time label. On window=all and on sub-day boards (1h/4h/24h) it is the wallet’s all-time dominant category — sub-day boards have no day-grained answer to give, so rather than show nothing they show the wallet’s real all-time category, labelled distinctly (see category_basis). null when unknown; see category_basis. May legitimately be "Other" — that is a real classification (the catalogue’s explicit residual bucket), not a fake default.
category’s share of the wallet’s ownvolume_usdc over whichever window category was computed on (the board’s own window, or all-time for window=all/sub-day boards) — a volume share, not a PnL share. Present only alongside category.
Why category is present or absent, and how it should be read: all_time (window=all, a real classification), all_time_fallback (1h/4h/24h — the SAME all-time classification as all_time, served because no day-grained answer exists at that grain; not the window’s own dominance), window_daily (7d/30d/90d/365d, a real classification for that window), no_classifiable_volume (the wallet has no CLOB-traded volume in a classified market — e.g. only splits/merges/redemptions; permanent), backfill_incomplete (the category rollup — or, for a sub-day board, the all-time coverage the fallback depends on — hasn’t reached this window yet; transient, clears on its own, no client change needed), or unsupported_venue.
Because total is now on the response, finding the end of the board no longer requires a binary search over offset. If you need the worst-performing or least-active traders specifically, sort=trades&order=asc (or sort=volume_usdc&order=asc) reads them directly from the front of an ascending sort — which is meaningfully cheaper than a large offset against a descending one, since ClickHouse still has to produce every row before a large offset even though it only returns the page after it.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Bravado","colors":{"primary":"#27d79f","light":"#27d79f","dark":"#27d79f"},"logo":{"light":"https://mintcdn.com/bravado/Rx5I6GxmyLNQx0kC/logo/wordmark-light.svg?fit=max\u0026auto=format\u0026n=Rx5I6GxmyLNQx0kC\u0026q=85\u0026s=22dde9c0ee0fdbd8f91ce9429a54b905","dark":"https://mintcdn.com/bravado/Rx5I6GxmyLNQx0kC/logo/wordmark-dark.svg?fit=max\u0026auto=format\u0026n=Rx5I6GxmyLNQx0kC\u0026q=85\u0026s=baf2da339f0bb40af6bf80b5c8a3d8d2"},"favicon":"https://mintcdn.com/bravado/tvw-FuJ3KxnqXT6G/favicon.png?fit=max\u0026auto=format\u0026n=tvw-FuJ3KxnqXT6G\u0026q=85\u0026s=58549544d9393681903e0f24686da2c4","api":{"mdx":{"server":"https://partner-api.bravadotrade.com"}},"navbar":{"links":[{"href":"mailto:support@bravadotrade.com","label":"Support"},{"href":"https://console.bravadotrade.com/login","label":"Log in"}],"primary":{"type":"button","label":"Create account","href":"https://console.bravadotrade.com/signup"}},"icons":{"library":"lucide"},"contextual":{"options":["copy","view","chatgpt","claude"],"display":"header"},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"bravado","hasAudioNarration":false,"actualSubdomain":"bravado","customDomains":["docs.bravadotrade.com"],"gitSource":{"type":"github","owner":"bravado-trade","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6af6d9f777407407f8d968ab","clientVersion":"0.0.4124","searchFilterCounts":[{"language":"default","tag":"Trade API","count":85},{"language":"default","tag":"Data API","count":51},{"language":"default","tag":"Endpoints (OpenAPI)","count":33},{"language":"default","tag":"Trader analytics","count":20},{"language":"default","tag":"Resources","count":20},{"language":"default","tag":"Perps","count":18},{"language":"default","tag":"Guides","count":18},{"language":"default","tag":"Get Started","count":16},{"language":"default","tag":"Reference","count":14},{"language":"default","tag":"Market Data","count":12}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"custom.css","content":"html.dark{--gray-950: 27 27 29;--gray-900: 32 32 32;--gray-800: 48 48 48;--gray-400: 143 143 143}html.dark #background-color{background-color:#1b1b1d!important}html.dark #navbar-transition{background-color:#202020!important;border-color:#303030!important}#navbar .nav-logo{height:36px!important}#content-container .card div:has(>img[src^=\"/logo/\"]),#content-container .card img[src^=\"/logo/\"]{width:44px!important;height:44px!important;max-width:none!important;border-radius:10px}#sidebar{border-right:1px solid #303030}html.dark #sidebar{background:#161617}html.dark body::before{content:\"\";position:fixed;inset:0 auto 0 0;width:max(320px, calc((100vw - 1472px) / 2 + 320px));background:#161617;z-index:0;pointer-events:none}html.dark #sidebar div[class*=\"sticky\"][class*=\"h-8\"]{background-image:linear-gradient(to bottom, #161617 0%, rgba(22, 22, 23, 0) 100%)!important}html.dark #sidebar div[class*=\"--scroll-area-fade-size\"]{padding-left:14px;margin-left:-14px}#sidebar a[aria-current=\"page\"]{box-shadow:0 0 12px rgba(39, 215, 159, 0.25), 0 0 3px rgba(39, 215, 159, 0.15);border-radius:8px}html.dark #sidebar a[aria-current=\"page\"]{background:#2a2a2d}#assistant-entry,#assistant-entry-mobile,.chat-assistant-floating-input,.chat-assistant-sheet{display:none!important}div:has(>#search-bar-entry){flex-grow:1.25}"}],"page":{"pagePath":"api/analytics/leaderboard-volume","slug":"/api/analytics/leaderboard-volume","pageMetadata":{"title":"GET /leaderboard/volume: Polymarket Volume Leaderboard","sidebarTitle":"/leaderboard/volume","api":"GET /trader-analytics/leaderboard/volume","description":"Returns traders ranked by USDC trading volume for the requested rolling window.","href":"/api/analytics/leaderboard-volume"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Returns traders ranked by USDC trading volume for the requested rolling window.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,em:`em`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,CodeGroup,Expandable,Heading,Note,ParamField,ResponseField,Table}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!CodeGroup)_missingMdxReference(`CodeGroup`,true);if(!Expandable)_missingMdxReference(`Expandable`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!ParamField)_missingMdxReference(`ParamField`,true);if(!ResponseField)_missingMdxReference(`ResponseField`,true);if(!Table)_missingMdxReference(`Table`,true);return _jsxs(_Fragment,{children:[_jsxs(Note,{children:[`Sign each request with a fresh HMAC signature. The cURL and HTTP header values below are placeholders, not reusable credentials. For runnable signing code, use `,_jsx(_components.a,{href:`/authentication-examples`,children:`request signing examples`}),`. Python examples use the signed session from that page; Node.js examples use its `,_jsx(_components.code,{children:`bravadoFetch`}),` helper.`]}),`\n`,_jsx(_components.p,{children:`Returns traders ranked by USDC trading volume for the requested window. The ranking runs in the database over the complete candidate set on the served column, with a deterministic wallet tie-break, so pages never overlap or skip rows.`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`GET https://partner-api.bravadotrade.com/trader-analytics/leaderboard/volume`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(Heading,{level:`3`,id:`query-parameters`,children:`Query Parameters`}),`\n`,_jsx(ParamField,{query:`window`,default:`24h`,type:`string`,id:`param-window`,children:_jsxs(_components.p,{children:[`Rolling time window. One of `,_jsx(_components.code,{children:`1h`}),`, `,_jsx(_components.code,{children:`4h`}),`, `,_jsx(_components.code,{children:`24h`}),`, `,_jsx(_components.code,{children:`7d`}),`, `,_jsx(_components.code,{children:`30d`}),`, `,_jsx(_components.code,{children:`90d`}),`, `,_jsx(_components.code,{children:`365d`}),`, `,_jsx(_components.code,{children:`all`}),`.`]})}),`\n`,_jsx(ParamField,{query:`limit`,default:`50`,type:`integer`,id:`param-limit`,children:_jsx(_components.p,{children:`Number of traders to return. Maximum 500.`})}),`\n`,_jsx(ParamField,{query:`offset`,default:`0`,type:`integer`,id:`param-offset`,children:_jsxs(_components.p,{children:[`Offset for pagination. See `,_jsx(_components.a,{href:`/reference/pagination`,children:`Pagination`}),`. Passing `,_jsx(_components.code,{children:`order=asc`}),` is usually cheaper than a large offset — see the note below.`]})}),`\n`,_jsx(ParamField,{query:`sort`,default:`volume_usdc`,type:`string`,id:`param-sort`,children:_jsxs(_components.p,{children:[`Ranking column: `,_jsx(_components.code,{children:`volume_usdc`}),` (USDC notional), `,_jsx(_components.code,{children:`trades`}),` (fill count), or `,_jsx(_components.code,{children:`volume_shares`}),` (contracts traded). This board carries no PnL fields, so a PnL sort key from `,_jsx(_components.a,{href:`/api/analytics/leaderboard`,children:_jsx(_components.code,{children:`GET /leaderboard`})}),` is rejected with `,_jsx(_components.code,{children:`400`}),`.`]})}),`\n`,_jsx(ParamField,{query:`order`,default:`desc`,type:`string`,id:`param-order`,children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`desc`}),` or `,_jsx(_components.code,{children:`asc`}),`. `,_jsx(_components.code,{children:`order=asc`}),` reads the `,_jsx(_components.strong,{children:`bottom`}),` of the board directly — e.g. the least-active traders — without walking pages backward from an offset you have to discover first.`]})}),`\n`,_jsx(ParamField,{query:`min_trades`,default:`0`,type:`integer`,id:`param-min-trades`,children:_jsxs(_components.p,{children:[`Minimum trade count to be included in the candidate set. Note this board’s default is `,_jsx(_components.code,{children:`0`}),`, while `,_jsx(_components.a,{href:`/api/analytics/leaderboard`,children:_jsx(_components.code,{children:`GET /leaderboard`})}),`’s default is `,_jsx(_components.code,{children:`5`}),` — pass the same value to both endpoints to compare over the same set of traders.`]})}),`\n`,_jsx(ParamField,{query:`category`,type:`string`,id:`param-category`,children:_jsxs(_components.p,{children:[`Filter: keep only wallets whose `,_jsx(_components.strong,{children:`dominant`}),` category equals this value. One of `,_jsx(_components.code,{children:`Politics`}),`, `,_jsx(_components.code,{children:`Crypto`}),`, `,_jsx(_components.code,{children:`Sports`}),`, `,_jsx(_components.code,{children:`Science`}),`, `,_jsx(_components.code,{children:`Tech`}),`, `,_jsx(_components.code,{children:`Entertainment`}),`, `,_jsx(_components.code,{children:`Earnings`}),`, `,_jsx(_components.code,{children:`Finance`}),`, `,_jsx(_components.code,{children:`Geopolitics`}),`, `,_jsx(_components.code,{children:`World`}),`, `,_jsx(_components.code,{children:`Elections`}),`, `,_jsx(_components.code,{children:`Weather`}),`, `,_jsx(_components.code,{children:`Other`}),`. This is `,_jsx(_components.em,{children:`not`}),` “rank within category X” — it narrows which wallets qualify for the board at all, then ranks the survivors normally. On day-grained windows (`,_jsx(_components.code,{children:`7d`}),`/`,_jsx(_components.code,{children:`30d`}),`/`,_jsx(_components.code,{children:`90d`}),`/`,_jsx(_components.code,{children:`365d`}),`/`,_jsx(_components.code,{children:`all`}),`) this matches the wallet’s dominance `,_jsx(_components.em,{children:`in that window`}),`; on sub-day windows (`,_jsx(_components.code,{children:`1h`}),`/`,_jsx(_components.code,{children:`4h`}),`/`,_jsx(_components.code,{children:`24h`}),`), which have no day-grained answer to give, it matches the wallet’s `,_jsx(_components.strong,{children:`all-time`}),` dominant category instead (see `,_jsx(_components.code,{children:`category_basis`}),` below) — the filter works the same way on every board, just against an explicitly all-time question on sub-day ones. Returns `,_jsx(_components.code,{children:`400`}),` on a window the category backfill hasn’t reached yet (see `,_jsx(_components.code,{children:`category_basis`}),` below), and on any venue other than Polymarket.`]})}),`\n`,_jsx(Heading,{level:`3`,id:`response`,children:`Response`}),`\n`,_jsx(ResponseField,{name:`results`,type:`array`,id:`param-results`,children:_jsxs(Expandable,{title:`VolumeLeaderboardRow fields`,children:[_jsx(ResponseField,{name:`rank`,type:`integer`,id:`param-rank`,children:_jsx(_components.p,{children:`1-based rank.`})}),_jsx(ResponseField,{name:`trader`,type:`string`,id:`param-trader`,children:_jsx(_components.p,{children:`Polygon wallet address.`})}),_jsx(ResponseField,{name:`username`,type:`string | null`,id:`param-username`,children:_jsx(_components.p,{children:`Polymarket display name.`})}),_jsx(ResponseField,{name:`avatar`,type:`string | null`,id:`param-avatar`,children:_jsx(_components.p,{children:`Avatar image URL.`})}),_jsx(ResponseField,{name:`bravado_user_id`,type:`string | null`,id:`param-bravado-user-id`,children:_jsx(_components.p,{children:`Internal Bravado user identifier.`})}),_jsx(ResponseField,{name:`volume_usdc`,type:`string`,id:`param-volume-usdc`,children:_jsx(_components.p,{children:`Total USDC notional traded.`})}),_jsx(ResponseField,{name:`volume_shares`,type:`string`,id:`param-volume-shares`,children:_jsx(_components.p,{children:`Total shares traded.`})}),_jsx(ResponseField,{name:`trades`,type:`integer`,id:`param-trades`,children:_jsx(_components.p,{children:`Trade events in the window.`})}),_jsx(ResponseField,{name:`category`,type:`string | null`,id:`param-category-1`,children:_jsxs(_components.p,{children:[`The wallet’s dominant category (by volume). On a day-grained window (`,_jsx(_components.code,{children:`7d`}),`/`,_jsx(_components.code,{children:`30d`}),`/`,_jsx(_components.code,{children:`90d`}),`/`,_jsx(_components.code,{children:`365d`}),`) this follows `,_jsx(_components.em,{children:`that board’s window`}),` — e.g. a wallet ranked on a `,_jsx(_components.code,{children:`30d`}),` board because of one Elections bet reads `,_jsx(_components.code,{children:`Elections`}),` here, not an all-time label. On `,_jsx(_components.code,{children:`window=all`}),` and on `,_jsxs(_components.strong,{children:[`sub-day boards (`,_jsx(_components.code,{children:`1h`}),`/`,_jsx(_components.code,{children:`4h`}),`/`,_jsx(_components.code,{children:`24h`}),`)`]}),` it is the wallet’s `,_jsx(_components.strong,{children:`all-time`}),` dominant category — sub-day boards have no day-grained answer to give, so rather than show nothing they show the wallet’s real all-time category, labelled distinctly (see `,_jsx(_components.code,{children:`category_basis`}),`). `,_jsx(_components.code,{children:`null`}),` when unknown; see `,_jsx(_components.code,{children:`category_basis`}),`. May legitimately be `,_jsx(_components.code,{children:`\"Other\"`}),` — that is a real classification (the catalogue’s explicit residual bucket), not a fake default.`]})}),_jsx(ResponseField,{name:`category_share`,type:`string | null`,id:`param-category-share`,children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`category`}),`’s share of the `,_jsx(_components.strong,{children:`wallet’s own`}),` `,_jsx(_components.code,{children:`volume_usdc`}),` over whichever window `,_jsx(_components.code,{children:`category`}),` was computed on (the board’s own window, or all-time for `,_jsx(_components.code,{children:`window=all`}),`/sub-day boards) — a volume share, not a PnL share. Present only alongside `,_jsx(_components.code,{children:`category`}),`.`]})}),_jsx(ResponseField,{name:`category_basis`,type:`string`,id:`param-category-basis`,children:_jsxs(_components.p,{children:[`Why `,_jsx(_components.code,{children:`category`}),` is present or absent, and how it should be read: `,_jsx(_components.code,{children:`all_time`}),` (`,_jsx(_components.code,{children:`window=all`}),`, a real classification), `,_jsx(_components.code,{children:`all_time_fallback`}),` (`,_jsx(_components.code,{children:`1h`}),`/`,_jsx(_components.code,{children:`4h`}),`/`,_jsx(_components.code,{children:`24h`}),` — the SAME all-time classification as `,_jsx(_components.code,{children:`all_time`}),`, served because no day-grained answer exists at that grain; not the window’s own dominance), `,_jsx(_components.code,{children:`window_daily`}),` (`,_jsx(_components.code,{children:`7d`}),`/`,_jsx(_components.code,{children:`30d`}),`/`,_jsx(_components.code,{children:`90d`}),`/`,_jsx(_components.code,{children:`365d`}),`, a real classification for that window), `,_jsx(_components.code,{children:`no_classifiable_volume`}),` (the wallet has no CLOB-traded volume in a classified market — e.g. only splits/merges/redemptions; permanent), `,_jsx(_components.code,{children:`backfill_incomplete`}),` (the category rollup — or, for a sub-day board, the all-time coverage the fallback depends on — hasn’t reached this window yet; transient, clears on its own, no client change needed), or `,_jsx(_components.code,{children:`unsupported_venue`}),`.`]})})]})}),`\n`,_jsx(ResponseField,{name:`window`,type:`string`,id:`param-window-1`,children:_jsx(_components.p,{children:`Echo of the window parameter used for the response.`})}),`\n`,_jsx(ResponseField,{name:`sort`,type:`string`,id:`param-sort-1`,children:_jsx(_components.p,{children:`Echo of the ranking column actually applied (default resolved).`})}),`\n`,_jsx(ResponseField,{name:`order`,type:`string`,id:`param-order-1`,children:_jsx(_components.p,{children:`Echo of the ranking direction actually applied (default resolved).`})}),`\n`,_jsx(ResponseField,{name:`total`,type:`integer | null`,id:`param-total`,children:_jsxs(_components.p,{children:[`Size of the candidate set after `,_jsx(_components.code,{children:`min_trades`}),` — the number of rows a full page walk visits. `,_jsx(_components.code,{children:`null`}),` only if it could not be counted; never a fake `,_jsx(_components.code,{children:`0`}),`.`]})}),`\n`,_jsx(ResponseField,{name:`has_more`,type:`boolean`,id:`param-has-more`,children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`true`}),` while `,_jsx(_components.code,{children:`offset + results.length \u003c total`}),`.`]})}),`\n`,_jsxs(ResponseField,{name:`totals`,type:`object | null`,id:`param-totals`,children:[_jsxs(_components.p,{children:[`Board-wide aggregate over the `,_jsx(_components.strong,{children:`same candidate set`}),` as `,_jsx(_components.code,{children:`total`}),` — for a stat-strip header, not for paging. `,_jsx(_components.code,{children:`null`}),` only if it could not be computed.`]}),_jsxs(Expandable,{title:`VolumeLeaderboardTotals fields`,children:[_jsx(ResponseField,{name:`traders`,type:`integer`,id:`param-traders`,children:_jsxs(_components.p,{children:[`Always equal to the response’s `,_jsx(_components.code,{children:`total`}),`.`]})}),_jsx(ResponseField,{name:`volume_usdc`,type:`string`,id:`param-volume-usdc-1`,children:_jsxs(_components.p,{children:[`Sum of `,_jsx(_components.code,{children:`volume_usdc`}),` over the candidate set.`]})}),_jsx(ResponseField,{name:`volume_shares`,type:`string`,id:`param-volume-shares-1`,children:_jsxs(_components.p,{children:[`Sum of `,_jsx(_components.code,{children:`volume_shares`}),` over the candidate set.`]})}),_jsx(ResponseField,{name:`trades`,type:`integer`,id:`param-trades-1`,children:_jsxs(_components.p,{children:[`Sum of `,_jsx(_components.code,{children:`trades`}),` over the candidate set.`]})})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`errors`,children:`Errors`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Status`}),_jsx(_components.th,{children:`When`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`400 Bad Request`})}),_jsxs(_components.td,{children:[`Invalid `,_jsx(_components.code,{children:`window`}),`, `,_jsx(_components.code,{children:`sort`}),`, `,_jsx(_components.code,{children:`order`}),`, `,_jsx(_components.code,{children:`limit`}),`, `,_jsx(_components.code,{children:`offset`}),`, or `,_jsx(_components.code,{children:`category`}),` value, or `,_jsx(_components.code,{children:`category`}),` requested for a window/venue it isn’t available on yet`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`401 Unauthorized`})}),_jsx(_components.td,{children:`Missing or invalid HMAC credentials`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`429 Too Many Requests`})}),_jsxs(_components.td,{children:[`Rate limit exceeded, see `,_jsx(_components.code,{children:`Retry-After`}),` header`]})]})]})]}),`\n`,_jsxs(_components.p,{children:[`See the `,_jsx(_components.a,{href:`/reference/errors`,children:`Error reference`}),`.`]}),`\n`,_jsx(Heading,{level:`3`,id:`example`,children:`Example`}),`\n`,_jsxs(CodeGroup,{children:[_jsx(CodeBlock,{filename:`cURL`,numberOfLines:`7`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`7`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -G`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://partner-api.bravadotrade.com/trader-analytics/leaderboard/volume`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"X-BRAVADO-API-KEY: `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$BRAVADO_API_KEY`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"X-BRAVADO-TIMESTAMP: \u003cunix-ms>\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"X-BRAVADO-SIGNATURE: \u003csignature-for-this-request>\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -d`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` window=30d`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -d`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sort=volume_usdc`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -d`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` order=desc`})]}),`\n`]})})}),_jsx(CodeBlock,{filename:`Response (abbreviated)`,numberOfLines:`24`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`24`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"mode\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"volume\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"window\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"30d\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"sort\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"volume_usdc\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"order\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"desc\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"total\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`354368`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"has_more\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"totals\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"traders\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`354368`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"volume_usdc\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"4713238818.319375\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"volume_shares\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"9321187808.414698\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"trades\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`144097085`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"results\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"rank\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"trader\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"0xdef789...abc012\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"username\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"volumeking\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"volume_usdc\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2145000.000000\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"volume_shares\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"3980210.550000\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"trades\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`4820`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})})]}),`\n`,_jsx(Heading,{level:`3`,id:`reading-the-bottom-of-the-board`,children:`Reading the bottom of the board`}),`\n`,_jsxs(_components.p,{children:[`Because `,_jsx(_components.code,{children:`total`}),` is now on the response, finding the end of the board no longer requires a binary search over `,_jsx(_components.code,{children:`offset`}),`. If you need the worst-performing or least-active traders specifically, `,_jsx(_components.code,{children:`sort=trades\u0026order=asc`}),` (or `,_jsx(_components.code,{children:`sort=volume_usdc\u0026order=asc`}),`) reads them directly from the front of an ascending sort — which is meaningfully cheaper than a large `,_jsx(_components.code,{children:`offset`}),` against a descending one, since ClickHouse still has to produce every row before a large offset even though it only returns the page after it.`]}),`\n`,_jsx(Heading,{level:`2`,id:`related`,children:`Related`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/api/analytics/leaderboard`,children:_jsx(_components.code,{children:`GET /leaderboard`})}),` for PnL-ranked results.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/api/analytics/trader`,children:_jsx(_components.code,{children:`GET /traders/{address}`})}),` for per-trader detail.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/guides/pnl-leaderboard`,children:`Guide: Build a PnL leaderboard`}),`.`]}),`\n`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"GET /leaderboard/volume: Polymarket Volume Leaderboard","sidebarTitle":"/leaderboard/volume","api":"GET /trader-analytics/leaderboard/volume","description":"Returns traders ranked by USDC trading volume for the requested rolling window.","href":"/api/analytics/leaderboard-volume"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Query Parameters","slug":"query-parameters","depth":3,"children":[]},{"title":"Response","slug":"response","depth":3,"children":[]},{"title":"Errors","slug":"errors","depth":3,"children":[]},{"title":"Example","slug":"example","depth":3,"children":[]},{"title":"Reading the bottom of the board","slug":"reading-the-bottom-of-the-board","depth":3,"children":[]},{"title":"Related","slug":"related","depth":2,"children":[]}],"codeExamples":{},"endpoint":{"title":"GET /leaderboard/volume: Polymarket Volume Leaderboard","path":"/trader-analytics/leaderboard/volume","servers":[{"url":"https://partner-api.bravadotrade.com"}],"method":"get","request":{"security":[],"parameters":{"query":{"window":{"schema":[{"type":"string","description":"Rolling time window. One of `1h` , `4h` , `24h` , `7d` , `30d` , `90d` , `365d` , `all` ."}]},"limit":{"schema":[{"type":"integer","description":"Number of traders to return. Maximum 500."}]},"offset":{"schema":[{"type":"integer","description":"Offset for pagination. See Pagination . Passing `order=asc` is usually cheaper than a large offset — see the note below."}]},"sort":{"schema":[{"type":"string","description":"Ranking column: `volume_usdc` (USDC notional), `trades` (fill count), or `volume_shares` (contracts traded). This board carries no PnL fields, so a PnL sort key from `GET /leaderboard` is rejected with `400` ."}]},"order":{"schema":[{"type":"string","description":"`desc` or `asc` . `order=asc` reads the bottom of the board directly — e.g. the least-active traders — without walking pages backward from an offset you have to discover first."}]},"min_trades":{"schema":[{"type":"integer","description":"Minimum trade count to be included in the candidate set. Note this board’s default is `0` , while `GET /leaderboard` ’s default is `5` — pass the same value to both endpoints to compare over the same set of traders."}]},"category":{"schema":[{"type":"string","description":"Filter: keep only wallets whose dominant category equals this value. One of `Politics` , `Crypto` , `Sports` , `Science` , `Tech` , `Entertainment` , `Earnings` , `Finance` , `Geopolitics` , `World` , `Elections` , `Weather` , `Other` . This is not “rank within category X” — it narrows which wallets qualify for the board at all, then ranks the survivors normally. On day-grained windows ( `7d` / `30d` / `90d` / `365d` / `all` ) this matches the wallet’s dominance in that window ; on sub-day windows ( `1h` / `4h` / `24h` ), which have no day-grained answer to give, it matches the wallet’s all-time dominant category instead (see `category_basis` below) — the filter works the same way on every board, just against an explicitly all-time question on sub-day ones. Returns `400` on a window the category backfill hasn’t reached yet (see `category_basis` below), and on any venue other than Polymarket."}]}},"header":{},"cookie":{},"path":{}},"body":{}},"response":{"200":{"application/json":{"schemaArray":[{"type":"object","properties":{"results":[{"type":"array","items":[{"type":"object","properties":{"rank":[{"type":"integer","description":"1-based rank."}],"trader":[{"type":"string","description":"Polygon wallet address."}],"username":[{"type":"object","properties":{},"description":"Polymarket display name."}],"avatar":[{"type":"object","properties":{},"description":"Avatar image URL."}],"bravado_user_id":[{"type":"object","properties":{},"description":"Internal Bravado user identifier."}],"volume_usdc":[{"type":"string","description":"Total USDC notional traded."}],"volume_shares":[{"type":"string","description":"Total shares traded."}],"trades":[{"type":"integer","description":"Trade events in the window."}],"category":[{"type":"object","properties":{},"description":"The wallet’s dominant category (by volume). On a day-grained window ( `7d` / `30d` / `90d` / `365d` ) this follows that board’s window — e.g. a wallet ranked on a `30d` board because of one Elections bet reads `Elections` here, not an all-time label. On `window=all` and on sub-day boards ( `1h` / `4h` / `24h` ) it is the wallet’s all-time dominant category — sub-day boards have no day-grained answer to give, so rather than show nothing they show the wallet’s real all-time category, labelled distinctly (see `category_basis` ). `null` when unknown; see `category_basis` . May legitimately be `\"Other\"` — that is a real classification (the catalogue’s explicit residual bucket), not a fake default."}],"category_share":[{"type":"object","properties":{},"description":"`category` ’s share of the wallet’s own `volume_usdc` over whichever window `category` was computed on (the board’s own window, or all-time for `window=all` /sub-day boards) — a volume share, not a PnL share. Present only alongside `category` ."}],"category_basis":[{"type":"string","description":"Why `category` is present or absent, and how it should be read: `all_time` ( `window=all` , a real classification), `all_time_fallback` ( `1h` / `4h` / `24h` — the SAME all-time classification as `all_time` , served because no day-grained answer exists at that grain; not the window’s own dominance), `window_daily` ( `7d` / `30d` / `90d` / `365d` , a real classification for that window), `no_classifiable_volume` (the wallet has no CLOB-traded volume in a classified market — e.g. only splits/merges/redemptions; permanent), `backfill_incomplete` (the category rollup — or, for a sub-day board, the all-time coverage the fallback depends on — hasn’t reached this window yet; transient, clears on its own, no client change needed), or `unsupported_venue` ."}]}}]}],"window":[{"type":"string","description":"Echo of the window parameter used for the response."}],"sort":[{"type":"string","description":"Echo of the ranking column actually applied (default resolved)."}],"order":[{"type":"string","description":"Echo of the ranking direction actually applied (default resolved)."}],"total":[{"type":"object","properties":{},"description":"Size of the candidate set after `min_trades` — the number of rows a full page walk visits. `null` only if it could not be counted; never a fake `0` ."}],"has_more":[{"type":"boolean","description":"`true` while `offset + results.length \u003c total` ."}],"totals":[{"type":"object","properties":{"traders":[{"type":"integer","description":"Always equal to the response’s `total` ."}],"volume_usdc":[{"type":"string","description":"Sum of `volume_usdc` over the candidate set."}],"volume_shares":[{"type":"string","description":"Sum of `volume_shares` over the candidate set."}],"trades":[{"type":"integer","description":"Sum of `trades` over the candidate set."}]},"description":"Board-wide aggregate over the same candidate set as `total` — for a stat-strip header, not for paging. `null` only if it could not be computed."}]}}],"examples":{"example":{"value":{"results":[{"rank":123,"trader":"\u003cstring>","username":{},"avatar":{},"bravado_user_id":{},"volume_usdc":"\u003cstring>","volume_shares":"\u003cstring>","trades":123,"category":{},"category_share":{},"category_basis":"\u003cstring>"}],"window":"\u003cstring>","sort":"\u003cstring>","order":"\u003cstring>","total":{},"has_more":true,"totals":{"traders":123,"volume_usdc":"\u003cstring>","volume_shares":"\u003cstring>","trades":123}}}}}}},"deprecated":false}},"jsLinks":[],"subdomain":"bravado","siteName":"Bravado","title":"GET /leaderboard/volume: Polymarket Volume Leaderboard - Bravado","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-15T02:04:17.189Z","originalFileLocation":"api/analytics/leaderboard-volume.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Returns traders ranked by USDC trading volume for the requested rolling window.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Bravado\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/bravado/cV2vl76asp5Coaf3/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/bravado/cV2vl76asp5Coaf3/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/bravado/cV2vl76asp5Coaf3/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/bravado/cV2vl76asp5Coaf3/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/bravado/cV2vl76asp5Coaf3/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/bravado/cV2vl76asp5Coaf3/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/bravado/cV2vl76asp5Coaf3/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/bravado/cV2vl76asp5Coaf3/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/bravado/cV2vl76asp5Coaf3/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"GET /leaderboard/volume: Polymarket Volume Leaderboard - Bravado\">\u003cmeta data-mint-head property=\"og:description\" content=\"Returns traders ranked by USDC trading volume for the requested rolling window.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Bravado\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.bravadotrade.com/api/analytics/leaderboard-volume\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://bravado.mintlify.site/_mintlify/api/og/v2?division=Trader+analytics\u0026amp;title=GET+%2Fleaderboard%2Fvolume%3A+Polymarket+Volume+Leaderboard\u0026amp;description=Returns+traders+ranked+by+USDC+trading+volume+for+the+requested+rolling+window.\u0026amp;theme=1f65e7a25d407b0b2a491b0f\u0026amp;signature=6821dee2af7b33594ff2d391052a73247c367bdbb62ffb36545fdf8fde72968e\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"GET /leaderboard/volume: Polymarket Volume Leaderboard - Bravado\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Returns traders ranked by USDC trading volume for the requested rolling window.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://bravado.mintlify.site/_mintlify/api/og/v2?division=Trader+analytics\u0026amp;title=GET+%2Fleaderboard%2Fvolume%3A+Polymarket+Volume+Leaderboard\u0026amp;description=Returns+traders+ranked+by+USDC+trading+volume+for+the+requested+rolling+window.\u0026amp;theme=1f65e7a25d407b0b2a491b0f\u0026amp;signature=6821dee2af7b33594ff2d391052a73247c367bdbb62ffb36545fdf8fde72968e\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/bravado/cV2vl76asp5Coaf3/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Bravado\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#27d79f\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.bravadotrade.com/api/analytics/leaderboard-volume\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api/analytics/leaderboard-volume.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.bravadotrade.com/#organization\",\"name\":\"Bravado\",\"url\":\"https://docs.bravadotrade.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/bravado/Rx5I6GxmyLNQx0kC/logo/wordmark-light.svg?fit=max\u0026auto=format\u0026n=Rx5I6GxmyLNQx0kC\u0026q=85\u0026s=22dde9c0ee0fdbd8f91ce9429a54b905\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.bravadotrade.com#website\",\"name\":\"Bravado\",\"url\":\"https://docs.bravadotrade.com\",\"publisher\":{\"@id\":\"https://docs.bravadotrade.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.bravadotrade.com/api/analytics/leaderboard-volume#webpage\",\"url\":\"https://docs.bravadotrade.com/api/analytics/leaderboard-volume\",\"name\":\"GET /leaderboard/volume: Polymarket Volume Leaderboard\",\"description\":\"Returns traders ranked by USDC trading volume for the requested rolling window.\",\"dateModified\":\"2026-09-15T02:04:17.189Z\",\"isPartOf\":{\"@id\":\"https://docs.bravadotrade.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.bravadotrade.com/api/analytics/leaderboard-volume#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.bravadotrade.com/api/analytics/leaderboard-volume#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Trader analytics\",\"item\":\"https://docs.bravadotrade.com/api/analytics/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"GET /leaderboard/volume: Polymarket Volume Leaderboard\",\"item\":\"https://docs.bravadotrade.com/api/analytics/leaderboard-volume\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.bravadotrade.com/api/analytics/leaderboard-volume#apireference\",\"headline\":\"GET /leaderboard/volume: Polymarket Volume Leaderboard\",\"name\":\"GET /leaderboard/volume: Polymarket Volume Leaderboard\",\"description\":\"Returns traders ranked by USDC trading volume for the requested rolling window.\",\"url\":\"https://docs.bravadotrade.com/api/analytics/leaderboard-volume\",\"mainEntityOfPage\":{\"@id\":\"https://docs.bravadotrade.com/api/analytics/leaderboard-volume#webpage\"},\"dateModified\":\"2026-09-15T02:04:17.189Z\",\"publisher\":{\"@id\":\"https://docs.bravadotrade.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.bravadotrade.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Bravado\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Bravado\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/api/analytics/leaderboard-volume.md","siteName":"Bravado","nav":{"global":null,"tabs":[{"tab":"Get Started","pages":[{"title":"Get Started","href":"/introduction"}]},{"tab":"Data API","groups":[{"group":"Data API","pages":[{"title":"Data API: Trader Analytics and Combos Data","sidebarTitle":"Overview","icon":{"name":"chart-line","library":"lucide"},"href":"/products/data-api"}]},{"group":"Kalshi market data","pages":[{"title":"Kalshi native market data","sidebarTitle":"Kalshi current data","href":"/api/market-data/kalshi-native"},{"title":"Kalshi current liquidity","sidebarTitle":"Kalshi liquidity","href":"/api/market-data/kalshi-liquidity"},{"title":"Historical Kalshi order-book depth","sidebarTitle":"Kalshi order-book history","href":"/api/market-data/kalshi-history"}]},{"group":"Trader analytics","pages":[{"title":"Data API: Trader Analytics Reference","sidebarTitle":"Overview","icon":{"name":"book-open","library":"lucide"},"href":"/api/analytics/overview"},{"title":"GET /healthz: Data API Liveness Probe","sidebarTitle":"/healthz","api":"GET /trader-analytics/healthz","href":"/api/analytics/healthz"},{"title":"GET /leaderboard: PnL Leaderboard","sidebarTitle":"/leaderboard","api":"GET /trader-analytics/leaderboard","description":"Returns traders ranked by realized PnL for the requested rolling window, computed under PMWAS.","href":"/api/analytics/leaderboard"},{"title":"GET /leaderboard/volume: Polymarket Volume Leaderboard","sidebarTitle":"/leaderboard/volume","api":"GET /trader-analytics/leaderboard/volume","href":"/api/analytics/leaderboard-volume"},{"title":"GET /traders/{address}: Trader Profile Summary","sidebarTitle":"/traders/{address}","api":"GET /trader-analytics/traders/{address}","description":"Wallet performance summary: PnL, volume, position counts, streaks, and identity fields.","href":"/api/analytics/trader"},{"title":"GET /traders/{address}/pnl: Cumulative PnL Time Series","sidebarTitle":"/traders/{address}/pnl","api":"GET /trader-analytics/traders/{address}/pnl","href":"/api/analytics/trader-pnl"},{"title":"GET /traders/{address}/positions: All Positions","sidebarTitle":"/traders/{address}/positions","api":"GET /trader-analytics/traders/{address}/positions","href":"/api/analytics/trader-positions"},{"title":"GET /traders/{address}/positions/active: Open Positions","sidebarTitle":"/traders/{address}/positions/active","api":"GET /trader-analytics/traders/{address}/positions/active","href":"/api/analytics/trader-positions-active"},{"title":"GET /traders/{address}/positions/closed: Closed Positions","sidebarTitle":"/traders/{address}/positions/closed","api":"GET /trader-analytics/traders/{address}/positions/closed","href":"/api/analytics/trader-positions-closed"},{"title":"GET /positions: Positions Across All Wallets","sidebarTitle":"/positions","api":"GET /trader-analytics/positions","href":"/api/analytics/positions"},{"title":"GET /traders/{address}/trades: Trade Log","sidebarTitle":"/traders/{address}/trades","api":"GET /trader-analytics/traders/{address}/trades","href":"/api/analytics/trader-trades"},{"title":"GET /traders/{address}/categories: Per-Category Breakdown","sidebarTitle":"/traders/{address}/categories","api":"GET /trader-analytics/traders/{address}/categories","href":"/api/analytics/trader-categories"},{"title":"GET /traders/{address}/usdc-balance: On-Chain USDC Balance","sidebarTitle":"/traders/{address}/usdc-balance","api":"GET /trader-analytics/traders/{address}/usdc-balance","href":"/api/analytics/trader-usdc-balance"},{"title":"GET /traders/{address}/statements: Full PMWAS Statement","sidebarTitle":"/traders/{address}/statements","api":"GET /trader-analytics/traders/{address}/statements","href":"/api/analytics/trader-statements"},{"title":"GET /traders/{address}/statements/r1: R1 Dispositions","sidebarTitle":"/traders/{address}/statements/r1","api":"GET /trader-analytics/traders/{address}/statements/r1","href":"/api/analytics/trader-statements-r1"},{"title":"GET /traders/{address}/metrics: Performance Metrics (R5/R6/R7)","sidebarTitle":"/traders/{address}/metrics","api":"GET /trader-analytics/traders/{address}/metrics","href":"/api/analytics/trader-metrics"},{"title":"GET /traders/{address}/reconciliation: R8 Certificate","sidebarTitle":"/traders/{address}/reconciliation","api":"GET /trader-analytics/traders/{address}/reconciliation","href":"/api/analytics/trader-reconciliation"},{"title":"GET /traders/{address}/tax-report: Per-Year Tax Summary","sidebarTitle":"/traders/{address}/tax-report","api":"GET /trader-analytics/traders/{address}/tax-report","href":"/api/analytics/trader-tax-report"},{"title":"GET /trades: Trade Log by Query Parameter","sidebarTitle":"/trades","api":"GET /trader-analytics/trades","href":"/api/analytics/trades"},{"title":"GET /entity/{owner}: Multi-Wallet Entity Rollup","sidebarTitle":"/entity/{owner}","api":"GET /trader-analytics/entity/{owner}","href":"/api/analytics/entity"}]},{"group":"Polymarket analytics","pages":[{"title":"Polymarket Analytics","sidebarTitle":"Overview","href":"/api/polymarket/overview"},{"title":"GET /leaderboard: Wallet Leaderboard","sidebarTitle":"/leaderboard","api":"GET /v2/polymarket/leaderboard","href":"/api/polymarket/leaderboard"},{"title":"GET /wallet/{wallet}: Wallet Profile","sidebarTitle":"/wallet/{wallet}","api":"GET /v2/polymarket/wallet/{wallet}","href":"/api/polymarket/wallet"},{"title":"GET /wallets/profiles: Batch Wallet Profiles","sidebarTitle":"/wallets/profiles","api":"GET /v2/polymarket/wallets/profiles","href":"/api/polymarket/wallets-profiles"},{"title":"GET /wallets/identities: Public wallet identities","sidebarTitle":"/wallets/identities","api":"GET /v2/polymarket/wallets/identities","href":"/api/polymarket/wallets-identities"},{"title":"GET /markets/smart-activity: Smart-Activity Markets","sidebarTitle":"/markets/smart-activity","api":"GET /v2/polymarket/markets/smart-activity","href":"/api/polymarket/smart-activity"}]},{"group":"Combos Data","pages":[{"title":"Combos Data API: Polymarket Combos Market Data","sidebarTitle":"Overview","icon":{"name":"layers","library":"lucide"},"href":"/api/combos-data/overview"},{"title":"GET /v2/data/combos: List Combos","sidebarTitle":"/combos","api":"GET /v2/data/combos","href":"/api/combos-data/list"},{"title":"GET /v2/data/combos/trades: Combo Trades","sidebarTitle":"/combos/trades","api":"GET /v2/data/combos/trades","href":"/api/combos-data/trades"},{"title":"GET /v2/data/combos/{combo_id}: Combo Detail","sidebarTitle":"/combos/{combo_id}","api":"GET /v2/data/combos/{combo_id}","href":"/api/combos-data/combo"},{"title":"GET /v2/data/combos/stats: Combo Stats","sidebarTitle":"/combos/stats","api":"GET /v2/data/combos/stats","href":"/api/combos-data/stats"},{"title":"GET /v2/data/combos/leaderboard: Combo Traders","sidebarTitle":"/combos/leaderboard","api":"GET /v2/data/combos/leaderboard","href":"/api/combos-data/leaderboard"}]},{"group":"Perps data","pages":[{"title":"Perps Data: Polymarket Perpetual-Futures Market Data","sidebarTitle":"Overview","icon":{"name":"trending-up","library":"lucide"},"href":"/products/perps-data"},{"title":"GET /perps/funding/history: Funding History","sidebarTitle":"GET /funding/history","api":"GET /perps/funding/history","href":"/api/perps-data/funding-history"},{"title":"GET /perps/funding/compare: Funding Comparison","sidebarTitle":"GET /funding/compare","api":"GET /perps/funding/compare","href":"/api/perps-data/funding-compare"},{"title":"GET /perps/oi/history: Open-Interest History","sidebarTitle":"GET /oi/history","api":"GET /perps/oi/history","href":"/api/perps-data/oi-history"},{"title":"GET /perps/basis: Mark, Index and Basis","sidebarTitle":"GET /basis","api":"GET /perps/basis","href":"/api/perps-data/basis"},{"title":"GET /perps/skew: Long/Short Account Skew","sidebarTitle":"GET /skew","api":"GET /perps/skew","href":"/api/perps-data/skew"},{"title":"GET /perps/liquidations: Liquidation History","sidebarTitle":"GET /liquidations","api":"GET /perps/liquidations","href":"/api/perps-data/liquidations"}]},{"group":"UMA resolution","pages":[{"title":"UMA API: Optimistic Oracle Resolution Data","sidebarTitle":"Overview","icon":"https://mintlify.s3.us-west-1.amazonaws.com/bravado/logo/uma.png","href":"/products/uma-api"},{"title":"UMA live window (REST)","sidebarTitle":"Live window","href":"/api/analytics/uma-live"},{"title":"UMA history (REST)","sidebarTitle":"History","href":"/api/analytics/uma-history"}]},{"group":"By venue","pages":[{"title":"Data API on Polymarket","sidebarTitle":"Data API","icon":{"name":"chart-line","library":"lucide"},"href":"/markets/polymarket/data-api"},{"title":"Data API on Predict.fun","sidebarTitle":"Data API","icon":{"name":"chart-line","library":"lucide"},"href":"/markets/predict-fun/data-api"}]},{"group":"Guides","pages":[{"title":"How to Build a Polymarket PnL Leaderboard","sidebarTitle":"Build a PnL leaderboard","icon":{"name":"trophy","library":"lucide"},"href":"/guides/pnl-leaderboard"},{"title":"How to Generate a US Tax Statement for Polymarket Trading","sidebarTitle":"Generate a tax statement","icon":{"name":"receipt","library":"lucide"},"href":"/guides/us-tax-statement"}]}]},{"tab":"Market Data","pages":[{"title":"Market Data","href":"/products/market-data"}]},{"tab":"Trade API","pages":[{"title":"Trade API","href":"/products/trade-api"}]},{"tab":"MCP Server","pages":[{"title":"MCP Server","href":"/products/mcp-server"}]},{"tab":"Resources","pages":[{"title":"Resources","href":"/reference/errors"}]}]},"basePath":"","title":"GET /leaderboard/volume: Polymarket Volume Leaderboard - Bravado","buildId":"dpl_8hoxaqFTU7hTr6A2fUraxAyjuiZo","deploymentId":"dpl_8hoxaqFTU7hTr6A2fUraxAyjuiZo","dynamics":["c2aa737661","2b790eda92","b0f84f53ff"],"chunks":["OpenApiReferenceProvider-CDiBsYGW.js","utils-KF9rPlmF.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-C26urKTX.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-BdjmJAC1.js","snippetPresets-3IpDBjt3.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-D4x_2vvo.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BIWdc5Pa.js","shallow-LQqfiMNd.js","getApiPlaygroundDisplay-DryzlOZG.js","CodeSnippet-tcJujU4r.js","CodeSnippets-BHp0nVLL.js","Page-1CZdsdAn.js","getPastedJson-DU-1ayUv.js","icon-CZK2hPr4.js","MethodPill-DOaqmTFC.js","DuplicateIcon-B5-nUxxl.js","createIcon-CDP_U77G.js","DynamicMarkdown-GHvayGOn.js","SectionHeading-BYvpkmUD.js","axios-vUo_bRtp.js"]}