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 on Polymarket ranked by realized PnL for the requested window. All PnL values are computed under PMWAS. For volume-ranked results, use GET /leaderboard/volume.
GET https://partner-api.bravadotrade.com/trader-analytics/leaderboard
Filter: keep only wallets whose dominant category (by volume) equals this value. One of Politics, Crypto, Sports, Science, Tech, Entertainment, Earnings, Finance, Geopolitics, World, Elections, Weather, Other. Not “rank within category X” — and on sub-day windows (1h/4h/24h) this matches the wallet’s all-time dominance, not its dominance within that window. See the same param on GET /leaderboard/volume for the full semantics (window/venue/backfill restrictions are identical on both boards).
The wallet’s dominant category (by volume) — for this board’s window on day-grained windows, or the wallet’s all-time dominant category on window=all and on sub-day boards (1h/4h/24h, which have no day-grained answer to give). null when unknown — see category_basis; see GET /leaderboard/volume for full field semantics (identical on both boards).
Why category is present or absent: all_time, all_time_fallback (sub-day boards — see GET /leaderboard/volume), window_daily, no_classifiable_volume, backfill_incomplete, or unsupported_venue.
Board-wide aggregate over the same candidate set as total (window, min_trades, is_mm_bot/exclude_bots, and — for the PnL sums — basis) — for a stat-strip header, not for paging. null only if it could not be computed.
{"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","slug":"/api/analytics/leaderboard","pageMetadata":{"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"},"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 realized PnL for the requested rolling window, computed under PMWAS.\"\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`,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`,_jsxs(_components.p,{children:[`Returns traders on Polymarket ranked by realized PnL for the requested window. All PnL values are computed under `,_jsx(_components.a,{href:`/products/data-api`,children:`PMWAS`}),`. For volume-ranked results, use `,_jsx(_components.a,{href:`/api/analytics/leaderboard-volume`,children:_jsx(_components.code,{children:`GET /leaderboard/volume`})}),`.`]}),`\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`})}),`\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:`30d`,type:`string`,id:`param-window`,children:_jsxs(_components.p,{children:[`Rolling time window over which to compute PnL. One of `,_jsx(_components.code,{children:`24h`}),`, `,_jsx(_components.code,{children:`7d`}),`, `,_jsx(_components.code,{children:`30d`}),`, `,_jsx(_components.code,{children:`all`}),`.`]})}),`\n`,_jsx(ParamField,{query:`limit`,default:`100`,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`}),`.`]})}),`\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 (by volume) 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`}),`. Not “rank within category X” — and on sub-day windows (`,_jsx(_components.code,{children:`1h`}),`/`,_jsx(_components.code,{children:`4h`}),`/`,_jsx(_components.code,{children:`24h`}),`) this matches the wallet’s `,_jsx(_components.strong,{children:`all-time`}),` dominance, not its dominance within that window. See the same param on `,_jsx(_components.a,{href:`/api/analytics/leaderboard-volume`,children:_jsx(_components.code,{children:`GET /leaderboard/volume`})}),` for the full semantics (window/venue/backfill restrictions are identical on both boards).`]})}),`\n`,_jsx(Heading,{level:`3`,id:`response`,children:`Response`}),`\n`,_jsx(ResponseField,{name:`results`,type:`array`,id:`param-results`,children:_jsxs(Expandable,{title:`LeaderboardRow fields`,children:[_jsx(ResponseField,{name:`rank`,type:`integer`,id:`param-rank`,children:_jsx(_components.p,{children:`1-based rank in the window.`})}),_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 if the wallet has one.`})}),_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 if this wallet is provisioned through Bravado.`})}),_jsx(ResponseField,{name:`pnl_usdc`,type:`string`,id:`param-pnl-usdc`,children:_jsx(_components.p,{children:`Realized PnL in USDC over the window, net of fees. String for precision.`})}),_jsx(ResponseField,{name:`volume_usdc`,type:`string`,id:`param-volume-usdc`,children:_jsx(_components.p,{children:`Total USDC notional traded in the window.`})}),_jsx(ResponseField,{name:`trades`,type:`integer`,id:`param-trades`,children:_jsx(_components.p,{children:`Trade events in the window.`})}),_jsx(ResponseField,{name:`win_rate`,type:`string`,id:`param-win-rate`,children:_jsx(_components.p,{children:`Fraction of closed positions with positive realized PnL. String between “0” and “1”.`})}),_jsx(ResponseField,{name:`category`,type:`string | null`,id:`param-category-1`,children:_jsxs(_components.p,{children:[`The wallet’s dominant category (by volume) — for this board’s window on day-grained windows, or the wallet’s `,_jsx(_components.strong,{children:`all-time`}),` dominant category on `,_jsx(_components.code,{children:`window=all`}),` and on sub-day boards (`,_jsx(_components.code,{children:`1h`}),`/`,_jsx(_components.code,{children:`4h`}),`/`,_jsx(_components.code,{children:`24h`}),`, which have no day-grained answer to give). `,_jsx(_components.code,{children:`null`}),` when unknown — see `,_jsx(_components.code,{children:`category_basis`}),`; see `,_jsx(_components.a,{href:`/api/analytics/leaderboard-volume`,children:_jsx(_components.code,{children:`GET /leaderboard/volume`})}),` for full field semantics (identical on both boards).`]})}),_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 wallet’s own `,_jsx(_components.code,{children:`volume_usdc`}),` in the window. 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: `,_jsx(_components.code,{children:`all_time`}),`, `,_jsx(_components.code,{children:`all_time_fallback`}),` (sub-day boards — see `,_jsx(_components.a,{href:`/api/analytics/leaderboard-volume`,children:_jsx(_components.code,{children:`GET /leaderboard/volume`})}),`), `,_jsx(_components.code,{children:`window_daily`}),`, `,_jsx(_components.code,{children:`no_classifiable_volume`}),`, `,_jsx(_components.code,{children:`backfill_incomplete`}),`, 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:`total`,type:`integer`,id:`param-total`,children:_jsx(_components.p,{children:`Total number of traders matching the window.`})}),`\n`,_jsx(ResponseField,{name:`has_more`,type:`boolean`,id:`param-has-more`,children:_jsx(_components.p,{children:`True if additional pages exist.`})}),`\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`}),` (window, `,_jsx(_components.code,{children:`min_trades`}),`, `,_jsx(_components.code,{children:`is_mm_bot`}),`/`,_jsx(_components.code,{children:`exclude_bots`}),`, and — for the PnL sums — `,_jsx(_components.code,{children:`basis`}),`) — for a stat-strip header, not for paging. `,_jsx(_components.code,{children:`null`}),` only if it could not be computed.`]}),_jsxs(Expandable,{title:`PnLLeaderboardTotals 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:`trades`,type:`integer`,id:`param-trades-1`,children:_jsxs(_components.p,{children:[`Sum of `,_jsx(_components.code,{children:`trades`}),` over the candidate set.`]})}),_jsx(ResponseField,{name:`realized_pnl`,type:`string`,id:`param-realized-pnl`,children:_jsxs(_components.p,{children:[`Sum of realized PnL over the candidate set (respects `,_jsx(_components.code,{children:`?basis=`}),`).`]})}),_jsx(ResponseField,{name:`unrealized_pnl`,type:`string`,id:`param-unrealized-pnl`,children:_jsx(_components.p,{children:`Sum of current open mark-to-market over the candidate set.`})}),_jsx(ResponseField,{name:`total_pnl`,type:`string`,id:`param-total-pnl`,children:_jsxs(_components.p,{children:[`Sum of `,_jsx(_components.code,{children:`realized_pnl + unrealized_pnl`}),` over the candidate set.`]})}),_jsx(ResponseField,{name:`profitable_traders`,type:`integer`,id:`param-profitable-traders`,children:_jsxs(_components.p,{children:[`Count of wallets in the candidate set with `,_jsx(_components.code,{children:`total_pnl > 0`}),`.`]})}),_jsx(ResponseField,{name:`unprofitable_traders`,type:`integer`,id:`param-unprofitable-traders`,children:_jsxs(_components.p,{children:[`Count of wallets in the candidate set with `,_jsx(_components.code,{children:`total_pnl \u003c 0`}),`.`]})})]})]}),`\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:`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:`6`,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:`6`,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`}),_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:` limit=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`20`})]}),`\n`]})})}),_jsx(CodeBlock,{filename:`Response (abbreviated)`,numberOfLines:`18`,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:`18`,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:` \"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:` \"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:`\"0xabc123...def456\"`}),_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:`\"topPlayer\"`}),_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:` \"avatar\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://polymarket.com/avatars/topPlayer.png\"`}),_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:` \"bravado_user_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`null`}),_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:` \"pnl_usdc\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"42580.120000\"`}),_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:`\"1250000.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:` \"trades\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`218`}),_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:` \"win_rate\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"0.61\"`})]}),`\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`,_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:`100`}),_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`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})})]}),`\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-volume`,children:_jsx(_components.code,{children:`GET /leaderboard/volume`})}),` for volume-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: 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"}}},"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":"Related","slug":"related","depth":2,"children":[]}],"codeExamples":{},"endpoint":{"title":"GET /leaderboard: PnL Leaderboard","path":"/trader-analytics/leaderboard","servers":[{"url":"https://partner-api.bravadotrade.com"}],"method":"get","request":{"security":[],"parameters":{"query":{"window":{"schema":[{"type":"string","description":"Rolling time window over which to compute PnL. One of `24h` , `7d` , `30d` , `all` ."}]},"limit":{"schema":[{"type":"integer","description":"Number of traders to return. Maximum 500."}]},"offset":{"schema":[{"type":"integer","description":"Offset for pagination. See Pagination ."}]},"category":{"schema":[{"type":"string","description":"Filter: keep only wallets whose dominant category (by volume) equals this value. One of `Politics` , `Crypto` , `Sports` , `Science` , `Tech` , `Entertainment` , `Earnings` , `Finance` , `Geopolitics` , `World` , `Elections` , `Weather` , `Other` . Not “rank within category X” — and on sub-day windows ( `1h` / `4h` / `24h` ) this matches the wallet’s all-time dominance, not its dominance within that window. See the same param on `GET /leaderboard/volume` for the full semantics (window/venue/backfill restrictions are identical on both boards)."}]}},"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 in the window."}],"trader":[{"type":"string","description":"Polygon wallet address."}],"username":[{"type":"object","properties":{},"description":"Polymarket display name if the wallet has one."}],"avatar":[{"type":"object","properties":{},"description":"Avatar image URL."}],"bravado_user_id":[{"type":"object","properties":{},"description":"Internal Bravado user identifier if this wallet is provisioned through Bravado."}],"pnl_usdc":[{"type":"string","description":"Realized PnL in USDC over the window, net of fees. String for precision."}],"volume_usdc":[{"type":"string","description":"Total USDC notional traded in the window."}],"trades":[{"type":"integer","description":"Trade events in the window."}],"win_rate":[{"type":"string","description":"Fraction of closed positions with positive realized PnL. String between “0” and “1”."}],"category":[{"type":"object","properties":{},"description":"The wallet’s dominant category (by volume) — for this board’s window on day-grained windows, or the wallet’s all-time dominant category on `window=all` and on sub-day boards ( `1h` / `4h` / `24h` , which have no day-grained answer to give). `null` when unknown — see `category_basis` ; see `GET /leaderboard/volume` for full field semantics (identical on both boards)."}],"category_share":[{"type":"object","properties":{},"description":"`category` ’s share of the wallet’s own `volume_usdc` in the window. Present only alongside `category` ."}],"category_basis":[{"type":"string","description":"Why `category` is present or absent: `all_time` , `all_time_fallback` (sub-day boards — see `GET /leaderboard/volume` ), `window_daily` , `no_classifiable_volume` , `backfill_incomplete` , or `unsupported_venue` ."}]}}]}],"window":[{"type":"string","description":"Echo of the window parameter used for the response."}],"total":[{"type":"integer","description":"Total number of traders matching the window."}],"has_more":[{"type":"boolean","description":"True if additional pages exist."}],"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."}],"trades":[{"type":"integer","description":"Sum of `trades` over the candidate set."}],"realized_pnl":[{"type":"string","description":"Sum of realized PnL over the candidate set (respects `?basis=` )."}],"unrealized_pnl":[{"type":"string","description":"Sum of current open mark-to-market over the candidate set."}],"total_pnl":[{"type":"string","description":"Sum of `realized_pnl + unrealized_pnl` over the candidate set."}],"profitable_traders":[{"type":"integer","description":"Count of wallets in the candidate set with `total_pnl > 0` ."}],"unprofitable_traders":[{"type":"integer","description":"Count of wallets in the candidate set with `total_pnl \u003c 0` ."}]},"description":"Board-wide aggregate over the same candidate set as `total` (window, `min_trades` , `is_mm_bot` / `exclude_bots` , and — for the PnL sums — `basis` ) — 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":{},"pnl_usdc":"\u003cstring>","volume_usdc":"\u003cstring>","trades":123,"win_rate":"\u003cstring>","category":{},"category_share":{},"category_basis":"\u003cstring>"}],"window":"\u003cstring>","total":123,"has_more":true,"totals":{"traders":123,"volume_usdc":"\u003cstring>","trades":123,"realized_pnl":"\u003cstring>","unrealized_pnl":"\u003cstring>","total_pnl":"\u003cstring>","profitable_traders":123,"unprofitable_traders":123}}}}}}},"deprecated":false}},"jsLinks":[],"subdomain":"bravado","siteName":"Bravado","title":"GET /leaderboard: PnL Leaderboard - Bravado","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-15T02:04:17.185Z","originalFileLocation":"api/analytics/leaderboard.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 realized PnL for the requested rolling window, computed under PMWAS.\">\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: PnL Leaderboard - Bravado\">\u003cmeta data-mint-head property=\"og:description\" content=\"Returns traders ranked by realized PnL for the requested rolling window, computed under PMWAS.\">\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\">\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%3A+PnL+Leaderboard\u0026amp;description=Returns+traders+ranked+by+realized+PnL+for+the+requested+rolling+window%2C+computed+under+PMWAS.\u0026amp;theme=1f65e7a25d407b0b2a491b0f\u0026amp;signature=f70a2174b166f9c53ea46d2f46d58422896afb37284e998dd04ad85bd142085c\">\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: PnL Leaderboard - Bravado\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Returns traders ranked by realized PnL for the requested rolling window, computed under PMWAS.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://bravado.mintlify.site/_mintlify/api/og/v2?division=Trader+analytics\u0026amp;title=GET+%2Fleaderboard%3A+PnL+Leaderboard\u0026amp;description=Returns+traders+ranked+by+realized+PnL+for+the+requested+rolling+window%2C+computed+under+PMWAS.\u0026amp;theme=1f65e7a25d407b0b2a491b0f\u0026amp;signature=f70a2174b166f9c53ea46d2f46d58422896afb37284e998dd04ad85bd142085c\">\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\">\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.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#webpage\",\"url\":\"https://docs.bravadotrade.com/api/analytics/leaderboard\",\"name\":\"GET /leaderboard: PnL Leaderboard\",\"description\":\"Returns traders ranked by realized PnL for the requested rolling window, computed under PMWAS.\",\"dateModified\":\"2026-09-15T02:04:17.185Z\",\"isPartOf\":{\"@id\":\"https://docs.bravadotrade.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.bravadotrade.com/api/analytics/leaderboard#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.bravadotrade.com/api/analytics/leaderboard#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Trader analytics\",\"item\":\"https://docs.bravadotrade.com/api/analytics/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"GET /leaderboard: PnL Leaderboard\",\"item\":\"https://docs.bravadotrade.com/api/analytics/leaderboard\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.bravadotrade.com/api/analytics/leaderboard#apireference\",\"headline\":\"GET /leaderboard: PnL Leaderboard\",\"name\":\"GET /leaderboard: PnL Leaderboard\",\"description\":\"Returns traders ranked by realized PnL for the requested rolling window, computed under PMWAS.\",\"url\":\"https://docs.bravadotrade.com/api/analytics/leaderboard\",\"mainEntityOfPage\":{\"@id\":\"https://docs.bravadotrade.com/api/analytics/leaderboard#webpage\"},\"dateModified\":\"2026-09-15T02:04:17.185Z\",\"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.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","description":"Unauthenticated liveness probe for the Bravado Data API.","href":"/api/analytics/healthz"},{"title":"GET /leaderboard: PnL Leaderboard","sidebarTitle":"/leaderboard","api":"GET /trader-analytics/leaderboard","href":"/api/analytics/leaderboard"},{"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"},{"title":"GET /traders/{address}: Trader Profile Summary","sidebarTitle":"/traders/{address}","api":"GET /trader-analytics/traders/{address}","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: PnL 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"]}