Live leaderboard of open positions for one market, ranked by Unrealized PnL or ROI. Public - no authentication required. Ranks are absolute across pages, so page 2 with limit=10 returns ranks 11-20.
Results are paginated with limit (1-100, default 100) and page (1-100, default 1). The response also includes totalRows and totalPages describing the committed Top-100 generation for the market. ETag values are page-specific, so a validator returned for one page will not match another.
Responses are served from a live Redis projection maintained by a dedicated worker. When the projection is warm the response is a READY snapshot with a strong ETag and short client cache. When the projection is still being rebuilt, callers may receive a BUILDING, STALE, or DEGRADED snapshot with Cache-Control: no-store and (for BUILDING) an empty data array - retry after a short delay. If the market is not open (RESOLVED, hidden, or otherwise ineligible), the endpoint returns 404.
GET
/
leaderboard
/
pnl
/
unrealized
/
markets
/
{marketId}
Get Unrealized PnL leaderboard for a market
curl --request GET \ --url https://api.limitless.exchange/leaderboard/pnl/unrealized/markets/{marketId}
Ranks every currently open position in one market by live Unrealized PnL or ROI, using the same mark price the frontend renders. Public — no authentication required.
A dedicated worker computes the rankings from a live projection. Successful responses include a strong ETag; pass it back as If-None-Match to get 304 Not Modified while the projection is unchanged. ETag values are page-specific — validators do not cross pages.
Results are paginated with limit (1–100, default 100) and page (1–100, default 1). Ranks stay absolute across pages, so page 2 with limit=10 returns ranks 11–20. Each response includes:
page — the page returned.
totalRows — number of ranked rows in the committed Top-100 generation for the market.
totalPages — total number of pages given the requested limit.
Request the first page of a “Top Holders” view with limit=10&page=1, then increment page until page === totalPages. To fetch the complete Top-100 in one call, use limit=100&page=1. Omitting page is treated as page 1, so existing clients keep working.
Readiness of the underlying projection. READY is a complete, current snapshot. BUILDING means the projection is being rebuilt and data is empty. STALE and DEGRADED return the last complete snapshot with Cache-Control: no-store; callers should retry shortly.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Limitless Exchange","colors":{"primary":"#9AB83A","light":"#DCF58C","dark":"#7A9A1E"},"logo":{"light":"https://mintcdn.com/limitless/r7gW3TwphUtCZ8zM/logo/light.svg?fit=max\u0026auto=format\u0026n=r7gW3TwphUtCZ8zM\u0026q=85\u0026s=0d6f32ed5e8a1f35ba9d1fa2e0b57a4b","dark":"https://mintcdn.com/limitless/r7gW3TwphUtCZ8zM/logo/dark.svg?fit=max\u0026auto=format\u0026n=r7gW3TwphUtCZ8zM\u0026q=85\u0026s=6500e01609e582f758db1a9610b63bd8"},"favicon":"https://mintcdn.com/limitless/r7gW3TwphUtCZ8zM/favicon.svg?fit=max\u0026auto=format\u0026n=r7gW3TwphUtCZ8zM\u0026q=85\u0026s=345f02206803d94b3b1911d2a80bf9c3","api":{"playground":{}},"navbar":{"links":[{"href":"mailto:help@limitless.network","label":"Support"}]},"footer":{"socials":{"x":"https://x.com/trylimitless","discord":"https://discord.com/invite/yb4SscD8RZ"}},"seo":{"metatags":{"twitter:card":"summary_large_image"}},"contextual":{"options":["copy","view","chatgpt","claude","cursor"],"display":"header"},"styling":{"latex":true},"navigation":{"global":{"anchors":[{"anchor":"Limitless Exchange","icon":"arrow-up-right-from-square","href":"https://limitless.exchange"},{"anchor":"Builders Chat","icon":"telegram","href":"https://t.me/LimitlessBuildersChat"},{"anchor":"Discord","icon":"discord","href":"https://discord.com/invite/yb4SscD8RZ"},{"anchor":"Twitter","icon":"x-twitter","href":"https://x.com/trylimitless"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"limitless","hasAudioNarration":false,"actualSubdomain":"limitless","customDomains":["docs.limitless.exchange"],"gitSource":{"type":"github","owner":"limitless-labs-group","repo":"limitless-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"DISABLED"},"WEB_MCP":{"status":"DISABLED"},"NARRATION":{"status":"DISABLED"}},"buildId":"6ae2027fd6a250fd1db9a4f3","clientVersion":"0.0.4102","searchFilterCounts":[{"language":"default","tag":"API Reference","count":81},{"language":"default","tag":"For Developers","count":67},{"language":"default","tag":"User Guide","count":26},{"language":"default","tag":"Portfolio","count":14},{"language":"default","tag":"Trading","count":14},{"language":"default","tag":"Getting Started","count":14},{"language":"default","tag":"Go SDK","count":11},{"language":"default","tag":"Python SDK","count":11},{"language":"default","tag":"Rust SDK","count":11},{"language":"default","tag":"TypeScript SDK","count":11}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":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":"llms-txt-v2","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}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/leaderboard/unrealized-pnl-market","slug":"/api-reference/leaderboard/unrealized-pnl-market","pageMetadata":{"title":"Unrealized PnL Leaderboard by Market","openapi":"GET /leaderboard/pnl/unrealized/markets/{marketId}","description":"Live leaderboard of open positions for one market, ranked by Unrealized PnL or ROI. Public - no authentication required. Ranks are absolute across pages, so page 2 with `limit=10` returns ranks 11-20.\n\nResults are paginated with `limit` (1-100, default 100) and `page` (1-100, default 1). The response also includes `totalRows` and `totalPages` describing the committed Top-100 generation for the market. `ETag` values are page-specific, so a validator returned for one page will not match another.\n\nResponses are served from a live Redis projection maintained by a dedicated worker. When the projection is warm the response is a `READY` snapshot with a strong `ETag` and short client cache. When the projection is still being rebuilt, callers may receive a `BUILDING`, `STALE`, or `DEGRADED` snapshot with `Cache-Control: no-store` and (for `BUILDING`) an empty `data` array - retry after a short delay. If the market is not open (`RESOLVED`, hidden, or otherwise ineligible), the endpoint returns `404`.","href":"/api-reference/leaderboard/unrealized-pnl-market"},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [\"Live leaderboard of open positions for one market, ranked by Unrealized PnL or ROI. Public - no authentication required. Ranks are absolute across pages, so page 2 with \", _jsx(_components.code, {\n children: \"limit=10\"\n }), \" returns ranks 11-20.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Results are paginated with \", _jsx(_components.code, {\n children: \"limit\"\n }), \" (1-100, default 100) and \", _jsx(_components.code, {\n children: \"page\"\n }), \" (1-100, default 1). The response also includes \", _jsx(_components.code, {\n children: \"totalRows\"\n }), \" and \", _jsx(_components.code, {\n children: \"totalPages\"\n }), \" describing the committed Top-100 generation for the market. \", _jsx(_components.code, {\n children: \"ETag\"\n }), \" values are page-specific, so a validator returned for one page will not match another.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Responses are served from a live Redis projection maintained by a dedicated worker. When the projection is warm the response is a \", _jsx(_components.code, {\n children: \"READY\"\n }), \" snapshot with a strong \", _jsx(_components.code, {\n children: \"ETag\"\n }), \" and short client cache. When the projection is still being rebuilt, callers may receive a \", _jsx(_components.code, {\n children: \"BUILDING\"\n }), \", \", _jsx(_components.code, {\n children: \"STALE\"\n }), \", or \", _jsx(_components.code, {\n children: \"DEGRADED\"\n }), \" snapshot with \", _jsx(_components.code, {\n children: \"Cache-Control: no-store\"\n }), \" and (for \", _jsx(_components.code, {\n children: \"BUILDING\"\n }), \") an empty \", _jsx(_components.code, {\n children: \"data\"\n }), \" array - retry after a short delay. If the market is not open (\", _jsx(_components.code, {\n children: \"RESOLVED\"\n }), \", hidden, or otherwise ineligible), the endpoint returns \", _jsx(_components.code, {\n children: \"404\"\n }), \".\"]\n })]\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`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Heading,Info,Note,Table}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Info)_missingMdxReference(`Info`,true);if(!Note)_missingMdxReference(`Note`,true);if(!Table)_missingMdxReference(`Table`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Ranks every currently open position in one market by live Unrealized PnL or ROI, using the same mark price the frontend renders. Public — no authentication required.`}),`\n`,_jsx(Info,{children:_jsxs(_components.p,{children:[`A dedicated worker computes the rankings from a live projection. Successful responses include a strong `,_jsx(_components.code,{children:`ETag`}),`; pass it back as `,_jsx(_components.code,{children:`If-None-Match`}),` to get `,_jsx(_components.code,{children:`304 Not Modified`}),` while the projection is unchanged. `,_jsx(_components.code,{children:`ETag`}),` values are page-specific — validators do not cross pages.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`pagination`,children:`Pagination`}),`\n`,_jsxs(_components.p,{children:[`Results are paginated with `,_jsx(_components.code,{children:`limit`}),` (1–100, default `,_jsx(_components.code,{children:`100`}),`) and `,_jsx(_components.code,{children:`page`}),` (1–100, default `,_jsx(_components.code,{children:`1`}),`). Ranks stay absolute across pages, so page 2 with `,_jsx(_components.code,{children:`limit=10`}),` returns ranks 11–20. Each response includes:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`page`}),` — the page returned.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`totalRows`}),` — number of ranked rows in the committed Top-100 generation for the market.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`totalPages`}),` — total number of pages given the requested `,_jsx(_components.code,{children:`limit`}),`.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`Request the first page of a “Top Holders” view with `,_jsx(_components.code,{children:`limit=10\u0026page=1`}),`, then increment `,_jsx(_components.code,{children:`page`}),` until `,_jsx(_components.code,{children:`page === totalPages`}),`. To fetch the complete Top-100 in one call, use `,_jsx(_components.code,{children:`limit=100\u0026page=1`}),`. Omitting `,_jsx(_components.code,{children:`page`}),` is treated as page 1, so existing clients keep working.`]}),`\n`,_jsx(Heading,{level:`2`,id:`state-field`,children:`State field`}),`\n`,_jsxs(_components.p,{children:[`Every response carries a `,_jsx(_components.code,{children:`state`}),`. Treat it as the readiness signal:`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`State`}),_jsx(_components.th,{children:`Meaning`}),_jsx(_components.th,{children:`How to handle`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`READY`})}),_jsx(_components.td,{children:`Complete, current snapshot.`}),_jsxs(_components.td,{children:[`Render `,_jsx(_components.code,{children:`data`}),` and cache per `,_jsx(_components.code,{children:`Cache-Control`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`STALE`})}),_jsx(_components.td,{children:`Last complete snapshot is being replaced.`}),_jsxs(_components.td,{children:[`Render `,_jsx(_components.code,{children:`data`}),`; response is `,_jsx(_components.code,{children:`Cache-Control: no-store`}),`, refetch shortly.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`DEGRADED`})}),_jsxs(_components.td,{children:[`Snapshot returned with a `,_jsx(_components.code,{children:`staleReason`}),`.`]}),_jsxs(_components.td,{children:[`Render `,_jsx(_components.code,{children:`data`}),`; treat as best-effort and refetch shortly.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`BUILDING`})}),_jsx(_components.td,{children:`No complete snapshot yet.`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`data`}),` is empty; retry after a short delay.`]})]})]})]}),`\n`,_jsxs(_components.p,{children:[`For live refresh, subscribe to the `,_jsx(_components.a,{href:`/developers/websocket/unrealized-pnl#unrealizedpnlprojectionchanged`,children:_jsx(_components.code,{children:`unrealizedPnlProjectionChanged`})}),` WebSocket event and refetch this endpoint when a hint arrives for the same `,_jsx(_components.code,{children:`marketId`}),`.`]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`This endpoint returns `,_jsx(_components.code,{children:`404`}),` for markets that are not open — resolved, hidden, or otherwise ineligible for a live leaderboard.`]})})]})}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":"Unrealized PnL Leaderboard by Market","openapi":"GET /leaderboard/pnl/unrealized/markets/{marketId}","description":"Live leaderboard of open positions for one market, ranked by Unrealized PnL or ROI. Public - no authentication required. Ranks are absolute across pages, so page 2 with `limit=10` returns ranks 11-20.\n\nResults are paginated with `limit` (1-100, default 100) and `page` (1-100, default 1). The response also includes `totalRows` and `totalPages` describing the committed Top-100 generation for the market. `ETag` values are page-specific, so a validator returned for one page will not match another.\n\nResponses are served from a live Redis projection maintained by a dedicated worker. When the projection is warm the response is a `READY` snapshot with a strong `ETag` and short client cache. When the projection is still being rebuilt, callers may receive a `BUILDING`, `STALE`, or `DEGRADED` snapshot with `Cache-Control: no-store` and (for `BUILDING`) an empty `data` array - retry after a short delay. If the market is not open (`RESOLVED`, hidden, or otherwise ineligible), the endpoint returns `404`.","href":"/api-reference/leaderboard/unrealized-pnl-market"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Pagination","slug":"pagination","depth":2,"children":[]},{"title":"State field","slug":"state-field","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"summary":"Get Unrealized PnL leaderboard for a market","description":"Live leaderboard of open positions for one market, ranked by Unrealized PnL or ROI. Public - no authentication required. Ranks are absolute across pages, so page 2 with `limit=10` returns ranks 11-20.\n\nResults are paginated with `limit` (1-100, default 100) and `page` (1-100, default 1). The response also includes `totalRows` and `totalPages` describing the committed Top-100 generation for the market. `ETag` values are page-specific, so a validator returned for one page will not match another.\n\nResponses are served from a live Redis projection maintained by a dedicated worker. When the projection is warm the response is a `READY` snapshot with a strong `ETag` and short client cache. When the projection is still being rebuilt, callers may receive a `BUILDING`, `STALE`, or `DEGRADED` snapshot with `Cache-Control: no-store` and (for `BUILDING`) an empty `data` array - retry after a short delay. If the market is not open (`RESOLVED`, hidden, or otherwise ineligible), the endpoint returns `404`.","operationId":"UnrealizedPnlLeaderboardController_getMarket","parameters":["e1943449-f2d3-4e47-a06a-725a9ea07e71","16a98c93-723b-47ef-a807-91be46def437","da50d112-24af-412e-aee5-2c929fcd76d1","439acd46-b5f3-4d33-a85d-074d33308181"],"responses":{"200":"d886f35c-f8dd-4bc1-bbe0-e4632fdc6197","304":"70aa79e0-69b0-46e8-b350-1709b077b84e","400":"13146482-77de-457b-89a5-3e55cf8d6194","404":"6221f910-0486-4328-a805-454bcecb92d8"},"tags":["Leaderboard"],"method":"get","type":"path","servers":["09c89b92-1b1b-488d-af55-0f936f286701"],"security":[],"path":"/leaderboard/pnl/unrealized/markets/{marketId}","baseUrlOptions":["https://api.limitless.exchange"],"title":"Get Unrealized PnL leaderboard for a market","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"e1943449-f2d3-4e47-a06a-725a9ea07e71":{"name":"marketId","in":"path","required":true,"description":"Numeric market id.","schema":{"type":"integer","minimum":1,"isRequired":true,"description":"Numeric market id.","uniqueKey":"","typeLabel":"integer"}},"16a98c93-723b-47ef-a807-91be46def437":{"name":"metric","in":"query","required":false,"description":"Metric to rank by.","schema":{"type":"string","enum":["pnl","roi"],"default":"pnl","isRequired":false,"description":"Metric to rank by.","uniqueKey":"","typeLabel":"enum\u003cstring>"}},"da50d112-24af-412e-aee5-2c929fcd76d1":{"name":"limit","in":"query","required":false,"description":"Number of leaderboard entries to return per page (1-100).","schema":{"type":"integer","minimum":1,"maximum":100,"default":100,"isRequired":false,"description":"Number of leaderboard entries to return per page (1-100).","uniqueKey":"","typeLabel":"integer"}},"439acd46-b5f3-4d33-a85d-074d33308181":{"name":"page","in":"query","required":false,"description":"Page number to return (1-100). Ranks stay absolute across pages, so page 2 with `limit=10` returns ranks 11-20. Omitting `page` returns page 1.","schema":{"type":"integer","minimum":1,"maximum":100,"default":1,"isRequired":false,"description":"Page number to return (1-100). Ranks stay absolute across pages, so page 2 with `limit=10` returns ranks 11-20. Omitting `page` returns page 1.","uniqueKey":"","typeLabel":"integer"}}},"responses":{"d886f35c-f8dd-4bc1-bbe0-e4632fdc6197":{"description":"Ranked Unrealized PnL leaderboard for the market","content":{"application/json":{"schema":{"type":"object","properties":{"schemaVersion":{"type":"integer","enum":[1],"isRequired":true,"uniqueKey":"schemaVersion","typeLabel":"enum\u003cinteger>"},"state":{"type":"string","description":"Readiness of the underlying projection. `READY` is a complete, current snapshot. `BUILDING` means the projection is being rebuilt and `data` is empty. `STALE` and `DEGRADED` return the last complete snapshot with `Cache-Control: no-store`; callers should retry shortly.","enum":["BUILDING","DEGRADED","READY","STALE"],"isRequired":true,"uniqueKey":"state","typeLabel":"enum\u003cstring>"},"scope":{"type":"string","enum":["MARKET"],"isRequired":true,"uniqueKey":"scope","typeLabel":"enum\u003cstring>"},"marketId":{"type":"integer","minimum":1,"isRequired":true,"uniqueKey":"marketId","typeLabel":"integer"},"metric":{"type":"string","enum":["pnl","roi"],"isRequired":true,"uniqueKey":"metric","typeLabel":"enum\u003cstring>"},"limit":{"type":"integer","minimum":1,"maximum":100,"isRequired":true,"uniqueKey":"limit","typeLabel":"integer"},"page":{"type":"integer","minimum":1,"default":1,"isRequired":true,"uniqueKey":"page","typeLabel":"integer"},"totalRows":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"totalRows","typeLabel":"integer"},"totalPages":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"totalPages","typeLabel":"integer"},"data":{"type":"array","items":{"type":"object","properties":{"rank":{"type":"integer","minimum":1,"isRequired":true,"uniqueKey":"data.items.[INDEX].rank","typeLabel":"integer"},"account":{"type":"string","isRequired":true,"uniqueKey":"data.items.[INDEX].account","typeLabel":"string"},"username":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"data.items.[INDEX].username.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"data.items.[INDEX].username.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.items.[INDEX].username","typeLabel":"string | null"},"displayName":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"data.items.[INDEX].displayName.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"data.items.[INDEX].displayName.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.items.[INDEX].displayName","typeLabel":"string | null"},"pfpUrl":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"data.items.[INDEX].pfpUrl.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"data.items.[INDEX].pfpUrl.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.items.[INDEX].pfpUrl","typeLabel":"string | null"},"side":{"type":"string","enum":["YES","NO","UP","DOWN"],"isRequired":true,"uniqueKey":"data.items.[INDEX].side","typeLabel":"enum\u003cstring>"},"outcomeLabel":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"data.items.[INDEX].outcomeLabel.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"data.items.[INDEX].outcomeLabel.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.items.[INDEX].outcomeLabel","typeLabel":"string | null"},"heldShares":{"type":"object","description":"Numeric amount rendered both as an integer `raw` string in collateral base units and a human-readable `formatted` decimal string.","properties":{"raw":{"type":"string","example":"100000000","isRequired":true,"uniqueKey":"data.items.[INDEX].heldShares.raw","typeLabel":"string"},"formatted":{"type":"string","example":"100","isRequired":true,"uniqueKey":"data.items.[INDEX].heldShares.formatted","typeLabel":"string"}},"required":["raw","formatted"],"isRequired":true,"uniqueKey":"data.items.[INDEX].heldShares","typeLabel":"object"},"avgEntry":{"type":"object","description":"Numeric amount rendered both as an integer `raw` string in collateral base units and a human-readable `formatted` decimal string.","properties":{"raw":{"type":"string","example":"100000000","isRequired":true,"uniqueKey":"data.items.[INDEX].avgEntry.raw","typeLabel":"string"},"formatted":{"type":"string","example":"100","isRequired":true,"uniqueKey":"data.items.[INDEX].avgEntry.formatted","typeLabel":"string"}},"required":["raw","formatted"],"isRequired":true,"uniqueKey":"data.items.[INDEX].avgEntry","typeLabel":"object"},"costBasis":{"type":"object","description":"Money amount in the market's collateral with an optional USD-denominated value.","properties":{"raw":{"type":"string","example":"9000000","isRequired":true,"uniqueKey":"data.items.[INDEX].costBasis.raw","typeLabel":"string"},"formatted":{"type":"string","example":"9","isRequired":true,"uniqueKey":"data.items.[INDEX].costBasis.formatted","typeLabel":"string"},"usd":{"oneOf":[{"type":"string","example":"9","isRequired":true,"uniqueKey":"data.items.[INDEX].costBasis.usd.oneOf.0","typeLabel":"string"},{"type":"null","example":"9","isRequired":true,"uniqueKey":"data.items.[INDEX].costBasis.usd.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.items.[INDEX].costBasis.usd","typeLabel":"string | null"}},"required":["raw","formatted","usd"],"isRequired":true,"uniqueKey":"data.items.[INDEX].costBasis","typeLabel":"object"},"mark":{"type":"object","description":"Current mark price used to value the open position, plus the source that produced it and the time it was observed.","properties":{"raw":{"type":"string","isRequired":true,"uniqueKey":"data.items.[INDEX].mark.raw","typeLabel":"string"},"formatted":{"type":"string","isRequired":true,"uniqueKey":"data.items.[INDEX].mark.formatted","typeLabel":"string"},"source":{"type":"string","enum":["CLOB_DEPTH_WEIGHTED_BID","CLOB_LAST_MINED_TRADE","AMM_SPOT","AMM_LAST_INDEXED_TRADE","AVG_ENTRY_FALLBACK"],"isRequired":true,"uniqueKey":"data.items.[INDEX].mark.source","typeLabel":"enum\u003cstring>"},"asOf":{"oneOf":[{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"data.items.[INDEX].mark.asOf.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","isRequired":true,"uniqueKey":"data.items.[INDEX].mark.asOf.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.items.[INDEX].mark.asOf","typeLabel":"string\u003cdate-time> | null"}},"required":["raw","formatted","source","asOf"],"isRequired":true,"uniqueKey":"data.items.[INDEX].mark","typeLabel":"object"},"marketValue":{"type":"object","description":"Money amount in the market's collateral with an optional USD-denominated value.","properties":{"raw":{"type":"string","example":"9000000","isRequired":true,"uniqueKey":"data.items.[INDEX].marketValue.raw","typeLabel":"string"},"formatted":{"type":"string","example":"9","isRequired":true,"uniqueKey":"data.items.[INDEX].marketValue.formatted","typeLabel":"string"},"usd":{"oneOf":[{"type":"string","example":"9","isRequired":true,"uniqueKey":"data.items.[INDEX].marketValue.usd.oneOf.0","typeLabel":"string"},{"type":"null","example":"9","isRequired":true,"uniqueKey":"data.items.[INDEX].marketValue.usd.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.items.[INDEX].marketValue.usd","typeLabel":"string | null"}},"required":["raw","formatted","usd"],"isRequired":true,"uniqueKey":"data.items.[INDEX].marketValue","typeLabel":"object"},"unrealizedPnl":{"type":"object","description":"Money amount in the market's collateral with an optional USD-denominated value.","properties":{"raw":{"type":"string","example":"9000000","isRequired":true,"uniqueKey":"data.items.[INDEX].unrealizedPnl.raw","typeLabel":"string"},"formatted":{"type":"string","example":"9","isRequired":true,"uniqueKey":"data.items.[INDEX].unrealizedPnl.formatted","typeLabel":"string"},"usd":{"oneOf":[{"type":"string","example":"9","isRequired":true,"uniqueKey":"data.items.[INDEX].unrealizedPnl.usd.oneOf.0","typeLabel":"string"},{"type":"null","example":"9","isRequired":true,"uniqueKey":"data.items.[INDEX].unrealizedPnl.usd.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.items.[INDEX].unrealizedPnl.usd","typeLabel":"string | null"}},"required":["raw","formatted","usd"],"isRequired":true,"uniqueKey":"data.items.[INDEX].unrealizedPnl","typeLabel":"object"},"unrealizedRoi":{"oneOf":[{"type":"number","description":"ROI as a percent (e.g. 37.5 = +37.5%). Null when cost basis is zero.","isRequired":true,"uniqueKey":"data.items.[INDEX].unrealizedRoi.oneOf.0","typeLabel":"number"},{"type":"null","description":"ROI as a percent (e.g. 37.5 = +37.5%). Null when cost basis is zero.","isRequired":true,"uniqueKey":"data.items.[INDEX].unrealizedRoi.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.items.[INDEX].unrealizedRoi","typeLabel":"number | null"}},"required":["rank","account","username","displayName","pfpUrl","side","outcomeLabel","heldShares","avgEntry","costBasis","mark","marketValue","unrealizedPnl","unrealizedRoi"],"uniqueKey":"data.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"data","typeLabel":"object[]"},"projectionVersion":{"oneOf":[{"type":"string","uniqueKey":"projectionVersion.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"projectionVersion.oneOf.1","typeLabel":"null"}],"uniqueKey":"projectionVersion","typeLabel":"string | null"},"scopeVersion":{"oneOf":[{"type":"string","uniqueKey":"scopeVersion.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"scopeVersion.oneOf.1","typeLabel":"null"}],"uniqueKey":"scopeVersion","typeLabel":"string | null"},"presentationVersion":{"oneOf":[{"type":"string","uniqueKey":"presentationVersion.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"presentationVersion.oneOf.1","typeLabel":"null"}],"uniqueKey":"presentationVersion","typeLabel":"string | null"},"asOf":{"oneOf":[{"type":"string","format":"date-time","uniqueKey":"asOf.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","uniqueKey":"asOf.oneOf.1","typeLabel":"null"}],"uniqueKey":"asOf","typeLabel":"string\u003cdate-time> | null"},"markAsOf":{"oneOf":[{"type":"string","format":"date-time","uniqueKey":"markAsOf.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","uniqueKey":"markAsOf.oneOf.1","typeLabel":"null"}],"uniqueKey":"markAsOf","typeLabel":"string\u003cdate-time> | null"},"staleReason":{"oneOf":[{"type":"string","uniqueKey":"staleReason.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"staleReason.oneOf.1","typeLabel":"null"}],"uniqueKey":"staleReason","typeLabel":"string | null"},"collateralToken":{"oneOf":[{"type":"object","required":["id","symbol","address","decimals","priceOracleId"],"properties":{"id":{"type":"integer","example":7,"isRequired":true,"uniqueKey":"collateralToken.oneOf.0.id","typeLabel":"integer"},"symbol":{"type":"string","example":"USDC","isRequired":true,"uniqueKey":"collateralToken.oneOf.0.symbol","typeLabel":"string"},"address":{"type":"string","example":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","isRequired":true,"uniqueKey":"collateralToken.oneOf.0.address","typeLabel":"string"},"decimals":{"type":"integer","example":6,"isRequired":true,"uniqueKey":"collateralToken.oneOf.0.decimals","typeLabel":"integer"},"priceOracleId":{"oneOf":[{"type":"string","example":"usd-coin","isRequired":true,"uniqueKey":"collateralToken.oneOf.0.priceOracleId.oneOf.0","typeLabel":"string"},{"type":"null","example":"usd-coin","isRequired":true,"uniqueKey":"collateralToken.oneOf.0.priceOracleId.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"collateralToken.oneOf.0.priceOracleId","typeLabel":"string | null"}},"uniqueKey":"collateralToken.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"collateralToken.oneOf.1","typeLabel":"null"}],"uniqueKey":"collateralToken","typeLabel":"object | null"}},"required":["schemaVersion","state","scope","marketId","metric","limit","page","totalRows","totalPages","data"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"schemaVersion":1,"state":"BUILDING","scope":"MARKET","marketId":2,"metric":"pnl","limit":50,"page":1,"totalRows":1,"totalPages":1,"data":[{"rank":2,"account":"\u003cstring>","username":"\u003cstring>","displayName":"\u003cstring>","pfpUrl":"\u003cstring>","side":"YES","outcomeLabel":"\u003cstring>","heldShares":{"raw":"100000000","formatted":"100"},"avgEntry":{"raw":"100000000","formatted":"100"},"costBasis":{"raw":"9000000","formatted":"9","usd":"9"},"mark":{"raw":"\u003cstring>","formatted":"\u003cstring>","source":"CLOB_DEPTH_WEIGHTED_BID","asOf":"2023-11-07T05:31:56Z"},"marketValue":{"raw":"9000000","formatted":"9","usd":"9"},"unrealizedPnl":{"raw":"9000000","formatted":"9","usd":"9"},"unrealizedRoi":123}],"projectionVersion":"\u003cstring>","scopeVersion":"\u003cstring>","presentationVersion":"\u003cstring>","asOf":"2023-11-07T05:31:56Z","markAsOf":"2023-11-07T05:31:56Z","staleReason":"\u003cstring>","collateralToken":{"id":7,"symbol":"USDC","address":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","decimals":6,"priceOracleId":"usd-coin"}}}},"exampleType":"generated"}},"exampleType":"generated"},"70aa79e0-69b0-46e8-b350-1709b077b84e":{"description":"Snapshot matches the caller's `If-None-Match` ETag","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"13146482-77de-457b-89a5-3e55cf8d6194":{"description":"Invalid market id or query parameters","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"6221f910-0486-4328-a805-454bcecb92d8":{"description":"Market is not open for Unrealized PnL","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}}},"security":{},"servers":{"09c89b92-1b1b-488d-af55-0f936f286701":{"url":"https://api.limitless.exchange","description":"Production API"}}},"originalFileLocation":"openapi.json"},"subdomain":"limitless","siteName":"Limitless Exchange","title":"Unrealized PnL Leaderboard by Market - Limitless Exchange","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-02T22:10:35.537Z","originalFileLocation":"api-reference/leaderboard/unrealized-pnl-market.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=\"Live leaderboard of open positions for one market, ranked by Unrealized PnL or ROI. Public - no authentication required. Ranks are absolute across pages, so page 2 with limit=10 returns ranks 11-20. Results are paginated with limit (1-100, default 100) and page (1-100, default 1). The response also includes totalRows and totalPages describing the committed Top-100 generation for the market. ETag values are page-specific, so a validator returned for one page will not match another. Responses are served from a live Redis projection maintained by a dedicated worker. When the projection is warm the response is a READY snapshot with a strong ETag and short client cache. When the projection is still being rebuilt, callers may receive a BUILDING, STALE, or DEGRADED snapshot with Cache-Control: no-store and (for BUILDING) an empty data array - retry after a short delay. If the market is not open (RESOLVED, hidden, or otherwise ineligible), the endpoint returns 404.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Limitless Exchange\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/limitless/eKG_O-mKVQpNZHIN/_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/limitless/eKG_O-mKVQpNZHIN/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/limitless/eKG_O-mKVQpNZHIN/_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/limitless/eKG_O-mKVQpNZHIN/_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/limitless/eKG_O-mKVQpNZHIN/_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/limitless/eKG_O-mKVQpNZHIN/_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/limitless/eKG_O-mKVQpNZHIN/_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/limitless/eKG_O-mKVQpNZHIN/_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/limitless/eKG_O-mKVQpNZHIN/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Unrealized PnL Leaderboard by Market - Limitless Exchange\">\u003cmeta data-mint-head property=\"og:description\" content=\"Live leaderboard of open positions for one market, ranked by Unrealized PnL or ROI. Public - no authentication required. Ranks are absolute across pages, so page 2 with limit=10 returns ranks 11-20. Results are paginated with limit (1-100, default 100) and page (1-100, default 1). The response also includes totalRows and totalPages describing the committed Top-100 generation for the market. ETag values are page-specific, so a validator returned for one page will not match another. Responses are served from a live Redis projection maintained by a dedicated worker. When the projection is warm the response is a READY snapshot with a strong ETag and short client cache. When the projection is still being rebuilt, callers may receive a BUILDING, STALE, or DEGRADED snapshot with Cache-Control: no-store and (for BUILDING) an empty data array - retry after a short delay. If the market is not open (RESOLVED, hidden, or otherwise ineligible), the endpoint returns 404.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Limitless Exchange\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.limitless.exchange/api-reference/leaderboard/unrealized-pnl-market\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://limitless.mintlify.site/_mintlify/api/og/v2?division=Leaderboard\u0026amp;title=Unrealized+PnL+Leaderboard+by+Market\u0026amp;description=Live+leaderboard+of+open+positions+for+one+market%2C+ranked+by+Unrealized+PnL+or+ROI.+Public+-+no+authentication+required.+Ranks+are+absolute+across+pages%2C+so+pag\u0026amp;theme=888cee6df57f640d9a30d0c6\u0026amp;signature=d704bdccb4b0535ec57d82289f09f80cd2f08334beeb52ad04c68adbbbf5d468\">\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=\"Unrealized PnL Leaderboard by Market - Limitless Exchange\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Live leaderboard of open positions for one market, ranked by Unrealized PnL or ROI. Public - no authentication required. Ranks are absolute across pages, so page 2 with limit=10 returns ranks 11-20. Results are paginated with limit (1-100, default 100) and page (1-100, default 1). The response also includes totalRows and totalPages describing the committed Top-100 generation for the market. ETag values are page-specific, so a validator returned for one page will not match another. Responses are served from a live Redis projection maintained by a dedicated worker. When the projection is warm the response is a READY snapshot with a strong ETag and short client cache. When the projection is still being rebuilt, callers may receive a BUILDING, STALE, or DEGRADED snapshot with Cache-Control: no-store and (for BUILDING) an empty data array - retry after a short delay. If the market is not open (RESOLVED, hidden, or otherwise ineligible), the endpoint returns 404.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://limitless.mintlify.site/_mintlify/api/og/v2?division=Leaderboard\u0026amp;title=Unrealized+PnL+Leaderboard+by+Market\u0026amp;description=Live+leaderboard+of+open+positions+for+one+market%2C+ranked+by+Unrealized+PnL+or+ROI.+Public+-+no+authentication+required.+Ranks+are+absolute+across+pages%2C+so+pag\u0026amp;theme=888cee6df57f640d9a30d0c6\u0026amp;signature=d704bdccb4b0535ec57d82289f09f80cd2f08334beeb52ad04c68adbbbf5d468\">\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/limitless/eKG_O-mKVQpNZHIN/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Limitless Exchange\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#9AB83A\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.limitless.exchange/api-reference/leaderboard/unrealized-pnl-market\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/leaderboard/unrealized-pnl-market.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.limitless.exchange/#organization\",\"name\":\"Limitless Exchange\",\"url\":\"https://docs.limitless.exchange\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/limitless/r7gW3TwphUtCZ8zM/logo/light.svg?fit=max\u0026auto=format\u0026n=r7gW3TwphUtCZ8zM\u0026q=85\u0026s=0d6f32ed5e8a1f35ba9d1fa2e0b57a4b\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.limitless.exchange#website\",\"name\":\"Limitless Exchange\",\"url\":\"https://docs.limitless.exchange\",\"publisher\":{\"@id\":\"https://docs.limitless.exchange/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.limitless.exchange/api-reference/leaderboard/unrealized-pnl-market#webpage\",\"url\":\"https://docs.limitless.exchange/api-reference/leaderboard/unrealized-pnl-market\",\"name\":\"Unrealized PnL Leaderboard by Market\",\"description\":\"Live leaderboard of open positions for one market, ranked by Unrealized PnL or ROI. Public - no authentication required. Ranks are absolute across pages, so page 2 with limit=10 returns ranks 11-20. Results are paginated with limit (1-100, default 100) and page (1-100, default 1). The response also includes totalRows and totalPages describing the committed Top-100 generation for the market. ETag values are page-specific, so a validator returned for one page will not match another. Responses are served from a live Redis projection maintained by a dedicated worker. When the projection is warm the response is a READY snapshot with a strong ETag and short client cache. When the projection is still being rebuilt, callers may receive a BUILDING, STALE, or DEGRADED snapshot with Cache-Control: no-store and (for BUILDING) an empty data array - retry after a short delay. If the market is not open (RESOLVED, hidden, or otherwise ineligible), the endpoint returns 404.\",\"dateModified\":\"2026-09-02T22:10:35.537Z\",\"isPartOf\":{\"@id\":\"https://docs.limitless.exchange#website\"},\"breadcrumb\":{\"@id\":\"https://docs.limitless.exchange/api-reference/leaderboard/unrealized-pnl-market#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.limitless.exchange/api-reference/leaderboard/unrealized-pnl-market#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Limitless Exchange\",\"item\":\"https://docs.limitless.exchange\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Unrealized PnL Leaderboard by Market\",\"item\":\"https://docs.limitless.exchange/api-reference/leaderboard/unrealized-pnl-market\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.limitless.exchange/api-reference/leaderboard/unrealized-pnl-market#apireference\",\"headline\":\"Unrealized PnL Leaderboard by Market\",\"name\":\"Unrealized PnL Leaderboard by Market\",\"description\":\"Live leaderboard of open positions for one market, ranked by Unrealized PnL or ROI. Public - no authentication required. Ranks are absolute across pages, so page 2 with limit=10 returns ranks 11-20. Results are paginated with limit (1-100, default 100) and page (1-100, default 1). The response also includes totalRows and totalPages describing the committed Top-100 generation for the market. ETag values are page-specific, so a validator returned for one page will not match another. Responses are served from a live Redis projection maintained by a dedicated worker. When the projection is warm the response is a READY snapshot with a strong ETag and short client cache. When the projection is still being rebuilt, callers may receive a BUILDING, STALE, or DEGRADED snapshot with Cache-Control: no-store and (for BUILDING) an empty data array - retry after a short delay. If the market is not open (RESOLVED, hidden, or otherwise ineligible), the endpoint returns 404.\",\"url\":\"https://docs.limitless.exchange/api-reference/leaderboard/unrealized-pnl-market\",\"mainEntityOfPage\":{\"@id\":\"https://docs.limitless.exchange/api-reference/leaderboard/unrealized-pnl-market#webpage\"},\"dateModified\":\"2026-09-02T22:10:35.537Z\",\"publisher\":{\"@id\":\"https://docs.limitless.exchange/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.limitless.exchange#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Limitless Exchange\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Limitless Exchange\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/api-reference/leaderboard/unrealized-pnl-market.md","siteName":"Limitless Exchange","nav":{"global":{"anchors":[{"anchor":"Limitless Exchange","icon":"arrow-up-right-from-square","href":"https://limitless.exchange"},{"anchor":"Builders Chat","icon":"telegram","href":"https://t.me/LimitlessBuildersChat"},{"anchor":"Discord","icon":"discord","href":"https://discord.com/invite/yb4SscD8RZ"},{"anchor":"Twitter","icon":"x-twitter","href":"https://x.com/trylimitless"}]},"tabs":[{"tab":"User Guide","pages":[{"title":"User Guide","href":""}]},{"tab":"For Developers","pages":[{"title":"For Developers","href":"/developers/introduction"}]},{"tab":"API Reference","groups":[{"group":"Overview","pages":[{"title":"API Reference","href":"/api-reference/introduction"}]},{"group":"System","pages":[{"title":"Maintenance Status","openapi":"GET /maintenance/status","href":"/api-reference/system/maintenance-status"}]},{"group":"Authentication","pages":[{"title":"User Logout","openapi":"POST /auth/logout","href":"/api-reference/auth/logout"},{"title":"Create API Key","openapi":"POST /auth/api-keys","href":"/api-reference/auth/create-api-key"},{"title":"Get Active API Key","openapi":"GET /auth/api-keys","href":"/api-reference/auth/get-api-key"},{"title":"Revoke API Key","openapi":"DELETE /auth/api-keys","href":"/api-reference/auth/revoke-api-key"}]},{"group":"Markets","pages":[{"title":"Browse Active Markets","openapi":"GET /markets/active","href":"/api-reference/markets/browse-active"},{"title":"Browse Active Markets by Category","openapi":"GET /markets/active/{categoryId}","href":"/api-reference/markets/browse-active-category"},{"title":"Get Category Counts","openapi":"GET /markets/categories/count","href":"/api-reference/markets/category-count"},{"title":"Get Active Market Slugs","openapi":"GET /markets/active/slugs","href":"/api-reference/markets/active-slugs"},{"title":"Market Timeline","href":"/api-reference/markets/timeline"},{"title":"Get Market Details","openapi":"GET /markets/{addressOrSlug}","href":"/api-reference/markets/get-market"},{"title":"Resolve Stable Slug","openapi":"GET /markets/stable/{slug}","href":"/api-reference/markets/resolve-stable-slug"},{"title":"Get Oracle Candlesticks","openapi":"GET /markets/{addressOrSlug}/oracle-candles","href":"/api-reference/markets/oracle-candles"},{"title":"Get Feed Events","openapi":"GET /markets/{slug}/get-feed-events","href":"/api-reference/markets/feed-events"},{"title":"Search Markets","openapi":"GET /markets/search","href":"/api-reference/markets/search"}]},{"group":"Packs","pages":[{"title":"List Packs","openapi":"GET /parlay/packs","href":"/api-reference/packs/list-packs"},{"title":"Search Active Packs","openapi":"GET /parlay/packs/search","href":"/api-reference/packs/search-packs"},{"title":"Get Pack","openapi":"GET /parlay/packs/{id}","href":"/api-reference/packs/get-pack"},{"title":"Quote Partner Pack","openapi":"POST /parlay/partner/quote","href":"/api-reference/packs/quote-pack"},{"title":"Buy Partner Pack","openapi":"POST /parlay/partner/buy","href":"/api-reference/packs/buy-pack"},{"title":"List Partner Pack Positions","openapi":"GET /parlay/partner/positions","href":"/api-reference/packs/list-positions"},{"title":"Get Partner Pack Position","openapi":"GET /parlay/partner/positions/{id}","href":"/api-reference/packs/get-position"},{"title":"Claim Partner Pack","openapi":"POST /parlay/partner/positions/{id}/claim","href":"/api-reference/packs/claim-position"},{"title":"Confirm Partner Pack Claim","openapi":"POST /parlay/partner/positions/{id}/claim/confirm","href":"/api-reference/packs/confirm-claim"}]},{"group":"Trading","pages":[{"title":"Create Order","openapi":"POST /orders","href":"/api-reference/trading/create-order"},{"title":"Get Order Status (Batch)","openapi":"POST /orders/status/batch","href":"/api-reference/trading/order-status-batch"},{"title":"Cancel Order (Combined)","openapi":"POST /orders/cancel","href":"/api-reference/trading/cancel"},{"title":"Batch Cancel Orders (Combined)","openapi":"POST /orders/batch-cancel","href":"/api-reference/trading/batch-cancel"},{"title":"Cancel and Replace Order","openapi":"POST /orders/cancel-replace","href":"/api-reference/trading/cancel-replace"},{"title":"Cancel and Replace Orders (Batch)","openapi":"POST /orders/cancel-replace/batch","href":"/api-reference/trading/cancel-replace-batch"},{"title":"Cancel Order","openapi":"DELETE /orders/{orderId}","href":"/api-reference/trading/cancel-order"},{"title":"Cancel Orders (Batch)","openapi":"POST /orders/cancel-batch","href":"/api-reference/trading/cancel-batch"},{"title":"Cancel All Orders","openapi":"DELETE /orders/all/{slug}","href":"/api-reference/trading/cancel-all"},{"title":"Market Maker Heartbeat","openapi":"POST /heartbeats","href":"/api-reference/trading/heartbeats"},{"title":"Get Orderbook","openapi":"GET /markets/{slug}/orderbook","href":"/api-reference/trading/orderbook"},{"title":"Get Historical Prices","openapi":"GET /markets/{slug}/historical-price","href":"/api-reference/trading/historical-price"},{"title":"Get User Orders","openapi":"GET /markets/{slug}/user-orders","href":"/api-reference/trading/user-orders"},{"title":"Get Market Events","openapi":"GET /markets/{slug}/events","href":"/api-reference/trading/market-events"}]},{"group":"Portfolio","pages":[{"title":"Get Current Profile","openapi":"GET /profiles/me","href":"/api-reference/portfolio/get-current-profile"},{"title":"Get Your Profile","openapi":"GET /profiles/{account}","href":"/api-reference/portfolio/get-profile"},{"title":"Get Trades","openapi":"GET /portfolio/trades","href":"/api-reference/portfolio/trades"},{"title":"Get Positions","openapi":"GET /portfolio/positions","href":"/api-reference/portfolio/positions"},{"title":"Redeem Resolved Positions","href":"/api-reference/portfolio/redeem"},{"title":"Split Collateral Into Outcome Set","href":"/api-reference/portfolio/split"},{"title":"Merge Outcome Set Into Collateral","href":"/api-reference/portfolio/merge"},{"title":"Withdraw From Server Wallet","href":"/api-reference/portfolio/withdraw"},{"title":"Add Withdrawal Address","href":"/api-reference/portfolio/add-withdrawal-address"},{"title":"Delete Withdrawal Address","href":"/api-reference/portfolio/delete-withdrawal-address"},{"title":"Get PnL Chart","openapi":"GET /portfolio/pnl-chart","href":"/api-reference/portfolio/pnl-chart"},{"title":"Get History","openapi":"GET /portfolio/history","href":"/api-reference/portfolio/history"},{"title":"Get Points Breakdown","openapi":"GET /portfolio/points","href":"/api-reference/portfolio/points"},{"title":"Get Trading Allowance","openapi":"GET /portfolio/trading/allowance","href":"/api-reference/portfolio/allowance"}]},{"group":"Market Pages \u0026 Navigation","pages":[{"title":"Get Navigation Tree","openapi":"GET /navigation","href":"/api-reference/navigation/get-navigation"},{"title":"Get Market Page by Path","openapi":"GET /market-pages/by-path","href":"/api-reference/navigation/get-page-by-path"},{"title":"List Markets for a Page","openapi":"GET /market-pages/{id}/markets","href":"/api-reference/navigation/list-page-markets"},{"title":"List Property Keys","openapi":"GET /property-keys","href":"/api-reference/navigation/list-property-keys"},{"title":"Get Property Key","openapi":"GET /property-keys/{id}","href":"/api-reference/navigation/get-property-key"},{"title":"List Property Options","openapi":"GET /property-keys/{id}/options","href":"/api-reference/navigation/list-property-options"}]},{"group":"API Tokens","pages":[{"title":"Get Partner Capabilities","openapi":"GET /auth/api-tokens/capabilities","href":"/api-reference/api-tokens/get-capabilities"},{"title":"Derive Scoped Token","openapi":"POST /auth/api-tokens/derive","href":"/api-reference/api-tokens/derive-token"},{"title":"List Active Tokens","openapi":"GET /auth/api-tokens","href":"/api-reference/api-tokens/list-tokens"},{"title":"Revoke Token","openapi":"DELETE /auth/api-tokens/{tokenId}","href":"/api-reference/api-tokens/revoke-token"}]},{"group":"Partner Accounts","pages":[{"title":"Create Partner Sub-Account","openapi":"POST /profiles/partner-accounts","href":"/api-reference/partner-accounts/create-partner-account"},{"title":"List Partner Sub-Accounts","openapi":"GET /profiles/partner-accounts","href":"/api-reference/partner-accounts/list-partner-accounts"},{"title":"Check Partner Account Allowances","openapi":"GET /profiles/partner-accounts/{profileId}/allowances","href":"/api-reference/partner-accounts/check-allowances"},{"title":"Retry Partner Account Allowances","openapi":"POST /profiles/partner-accounts/{profileId}/allowances/retry","href":"/api-reference/partner-accounts/retry-allowances"}]},{"group":"Public Portfolio","pages":[{"title":"Get User Traded Volume","openapi":"GET /portfolio/{account}/traded-volume","href":"/api-reference/public-portfolio/traded-volume"},{"title":"Get User Positions (Public)","openapi":"GET /portfolio/{account}/positions","href":"/api-reference/public-portfolio/positions"},{"title":"Get Realized PnL (Public)","openapi":"GET /portfolio/{account}/realized-pnl","href":"/api-reference/public-portfolio/realized-pnl"},{"title":"Get PnL Chart (Public)","openapi":"GET /portfolio/{account}/pnl-chart","href":"/api-reference/public-portfolio/pnl-chart"},{"title":"Get User History (Public)","openapi":"GET /portfolio/{account}/history","href":"/api-reference/public-portfolio/history"},{"title":"Get User Accuracy (Public)","openapi":"GET /user-stats/accuracy/{account}","href":"/api-reference/public-portfolio/accuracy"},{"title":"Get User Pack Positions (Public)","openapi":"GET /parlay/{account}/positions","href":"/api-reference/public-portfolio/pack-positions"}]},{"group":"Feed","pages":[{"title":"Get Trading Activity Feed","openapi":"GET /feed/trading","href":"/api-reference/feed/trading-feed"}]},{"group":"Referral","pages":[{"title":"Get My Referral Stats","openapi":"GET /referral/usdc/me","href":"/api-reference/referral/my-stats"},{"title":"Get My Referred Users","openapi":"GET /referral/usdc/referrals","href":"/api-reference/referral/my-referrals"},{"title":"Get Referral Leaderboard","openapi":"GET /referral/usdc/leaderboard","href":"/api-reference/referral/leaderboard"},{"title":"Get Friends Leaderboard","openapi":"GET /referral/usdc/leaderboard/friends","description":"The global leaderboard scoped to your own referred users: each row is that user's own referral standing (their referred count and referral earnings), keeping the global ranking. Only referred users who are themselves earning referrers appear. The response never carries a `me` block.","href":"/api-reference/referral/leaderboard-friends"}]},{"group":"Leaderboard","pages":[{"title":"Unrealized PnL Leaderboard by Market","openapi":"GET /leaderboard/pnl/unrealized/markets/{marketId}","href":"/api-reference/leaderboard/unrealized-pnl-market"},{"title":"Biggest Open Positions","openapi":"GET /leaderboard/pnl/unrealized/biggest-positions","description":"Live leaderboard of the largest currently open position lines across all markets, ranked by position size. Public - no authentication required.\n\nResponses are served from a live Redis projection with `ETag` support and short client cache. When the projection is still being rebuilt, callers may receive a `BUILDING`, `STALE`, or `DEGRADED` snapshot with `Cache-Control: no-store` and (for `BUILDING`) an empty `data` array - retry after a short delay.","href":"/api-reference/leaderboard/biggest-positions"}]}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/changelog"}]}]},"basePath":"","title":"Unrealized PnL Leaderboard by Market - Limitless Exchange","buildId":"dpl_596ePT575z4qnAFksq1biRW97aLY","deploymentId":"dpl_596ePT575z4qnAFksq1biRW97aLY","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-C9Wu0MeN.js","utils-jWgu-6Qf.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-DBD8f9qn.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-BGuX1ui5.js","snippetPresets-Evy63nQB.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-BQHO1lnV.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-B6C8m-t_.js","shallow-BG4cT0fH.js","getApiPlaygroundDisplay-CgEPrE-D.js","CodeSnippet-CU8JyZ9N.js","CodeSnippets-BnxHU32T.js","Page-D6S0Yh6q.js","getPastedJson-CwiYOonh.js","icon-DYDpWmDf.js","MethodPill-C-J-l7_c.js","DuplicateIcon-B6ARwg9w.js","createIcon-Dsv4MtDq.js","DynamicMarkdown-CtasenyM.js","SectionHeading-YNcgYwjB.js","axios-vUo_bRtp.js","Markdown-CwLx6PAg.js","clsx-C3kuh_dz.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CmKHfscc.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-U3mI6Ljh.js"]}