Read a member's spendable balance, qualifying XP and tier
Fields are camelCase. Both figures are read live and the tier is picked from the current ladder on every call. The user is not looked up: an id with no XP account in your organization reads as "0" with the bottom tier, or tier: null when you have no ladder. A member session may name only its own user id.
GET
/
v1
/
users
/
{userId}
/
balance
Read a member's spendable balance, qualifying XP and tier
Picked from the current ladder on every read; null when no tier's threshold is at or below the member's qualifying XP.
Show child attributes
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"4D OS Developer Docs","description":"Public developer documentation for the 4D OS partner platform","colors":{"primary":"#1865D1","light":"#80AAE6","dark":"#1353AE"},"logo":{"light":"https://mintcdn.com/4dos/zox555bidSKp__2J/logo/light.svg?fit=max\u0026auto=format\u0026n=zox555bidSKp__2J\u0026q=85\u0026s=f664509c181b052b368f5e6d97c443cb","dark":"https://mintcdn.com/4dos/zox555bidSKp__2J/logo/dark.svg?fit=max\u0026auto=format\u0026n=zox555bidSKp__2J\u0026q=85\u0026s=ae86b94c4df9a59c79ef008d269dd134"},"favicon":"https://mintcdn.com/4dos/zox555bidSKp__2J/favicon.svg?fit=max\u0026auto=format\u0026n=zox555bidSKp__2J\u0026q=85\u0026s=5e2a089a22e686c5e5c26a6abd8717e4","background":{"color":{"light":"#FFFFFF","dark":"#15161E"}},"footer":{"socials":{}},"fonts":{"heading":{"family":"Plus Jakarta Sans"},"body":{"family":"Inter"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"4dos","hasAudioNarration":false,"actualSubdomain":"4dos","customDomains":["docs.fourdos.dev"],"gitSource":{"type":"github","owner":"pellartech","repo":"fourdos-monorepo","deployBranch":"main","contentDirectory":"docs","isPrivate":true,"mountPath":"","label":""},"entitlements":{},"buildId":"6af6f50f9a8829f8111d8247","clientVersion":"0.0.4124","searchFilterCounts":[{"language":"default","tag":"API Reference","count":53},{"language":"default","tag":"Endpoints","count":52},{"language":"default","tag":"Documentation","count":28},{"language":"default","tag":"Modules","count":17},{"language":"default","tag":"Concepts","count":10},{"language":"default","tag":"Walkthroughs","count":9},{"language":"default","tag":"Users","count":9},{"language":"default","tag":"External integrations","count":7},{"language":"default","tag":"Imports","count":7},{"language":"default","tag":"Content API","count":4}]},"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":true},"customCss":[{"filePath":"style.css","content":"/* cyrillic-ext */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx3cwhsk.woff2) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxTcwhsk.woff2) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* greek */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxPcwhsk.woff2) format('woff2');\n unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;\n}\n/* vietnamese */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx_cwhsk.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx7cwhsk.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxDcwg.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* cyrillic-ext */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx3cwhsk.woff2) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxTcwhsk.woff2) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* greek */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxPcwhsk.woff2) format('woff2');\n unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;\n}\n/* vietnamese */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx_cwhsk.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx7cwhsk.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxDcwg.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* cyrillic-ext */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx3cwhsk.woff2) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxTcwhsk.woff2) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* greek */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxPcwhsk.woff2) format('woff2');\n unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;\n}\n/* vietnamese */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx_cwhsk.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx7cwhsk.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxDcwg.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\nimg.nav-logo{height:2.5rem}code,pre,kbd,samp{font-family:\"JetBrains Mono\", ui-monospace, \"SF Mono\", Menlo, Consolas, monospace}"}],"page":{"pagePath":"api-reference/xp/read-a-members-spendable-balance-qualifying-xp-and-tier","slug":"/api-reference/xp/read-a-members-spendable-balance-qualifying-xp-and-tier","pageMetadata":{"title":"Read a member's spendable balance, qualifying XP and tier","description":"Fields are camelCase. Both figures are read live and the tier is picked from the current ladder on every call. The user is not looked up: an id with no XP account in your organization reads as `\"0\"` with the bottom tier, or `tier: null` when you have no ladder. A member session may name only its own user id.","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json get /v1/users/{userId}/balance","href":"/api-reference/xp/read-a-members-spendable-balance-qualifying-xp-and-tier","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {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(_components.p, {\n children: [\"Fields are camelCase. Both figures are read live and the tier is picked from the current ladder on every call. The user is not looked up: an id with no XP account in your organization reads as \", _jsx(_components.code, {\n children: \"\\\"0\\\"\"\n }), \" with the bottom tier, or \", _jsx(_components.code, {\n children: \"tier: null\"\n }), \" when you have no ladder. A member session may name only its own user id.\"]\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}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Read a member's spendable balance, qualifying XP and tier","description":"Fields are camelCase. Both figures are read live and the tier is picked from the current ladder on every call. The user is not looked up: an id with no XP account in your organization reads as `\"0\"` with the bottom tier, or `tier: null` when you have no ladder. A member session may name only its own user id.","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json get /v1/users/{userId}/balance","href":"/api-reference/xp/read-a-members-spendable-balance-qualifying-xp-and-tier","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"getMemberBalance","tags":["XP"],"summary":"Read a member's spendable balance, qualifying XP and tier","description":"Fields are camelCase. Both figures are read live and the tier is picked from the current ladder on every call. The user is not looked up: an id with no XP account in your organization reads as `\"0\"` with the bottom tier, or `tier: null` when you have no ladder. A member session may name only its own user id.","security":["fca39429-31c3-4a5e-bec7-5275ab8ca76b","25ab8a1a-836d-4ba5-9553-5c323e6753c0","487ae6ef-06be-477f-a014-f88987354aa9"],"parameters":["69005403-450a-406c-820c-c693c4f915bf"],"responses":{"200":"6ef9811a-92a9-451f-a731-6f92fdc8971a","401":"dbcb70d2-7c60-41b9-b21c-813fcac407da","403":"e3a770ac-5a47-4a45-8b21-329859589443","404":"a1678db5-45bf-4ad7-b662-4c18e371df4c"},"method":"get","type":"path","servers":["7548fbcb-cde8-4991-af4e-42d5cd435d3b"],"path":"/v1/users/{userId}/balance","baseUrlOptions":["https://api.develop.fourdos.dev"],"title":"Read a member's spendable balance, qualifying XP and tier","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"69005403-450a-406c-820c-c693c4f915bf":{"name":"userId","in":"path","required":true,"schema":{"type":"string","isRequired":true,"uniqueKey":"","typeLabel":"string"}}},"responses":{"6ef9811a-92a9-451f-a731-6f92fdc8971a":{"description":"The balance","content":{"application/json":{"schema":{"type":"object","properties":{"userId":{"type":"string","isRequired":true,"uniqueKey":"userId","typeLabel":"string"},"organizationId":{"type":"string","isRequired":true,"uniqueKey":"organizationId","typeLabel":"string"},"spendableBalance":{"type":"string","description":"What the member can redeem.","isRequired":true,"uniqueKey":"spendableBalance","typeLabel":"string"},"lifetimeQualifyingXp":{"type":"string","description":"What tiers rank on.","isRequired":true,"uniqueKey":"lifetimeQualifyingXp","typeLabel":"string"},"tier":{"oneOf":[{"type":"object","description":"Picked from the current ladder on every read; null when no tier's threshold is at or below the member's qualifying XP.","properties":{"tierId":{"type":"string","isRequired":true,"uniqueKey":"tier.oneOf.0.tierId","typeLabel":"string"},"tierName":{"type":"string","isRequired":true,"uniqueKey":"tier.oneOf.0.tierName","typeLabel":"string"},"qualifyingXp":{"type":"string","description":"A non-negative integer as a decimal string.","isRequired":true,"uniqueKey":"tier.oneOf.0.qualifyingXp","typeLabel":"string"},"asOf":{"type":"string","format":"date-time","description":"The time of the read, not of a tier change.","isRequired":true,"uniqueKey":"tier.oneOf.0.asOf","typeLabel":"string\u003cdate-time>"}},"required":["tierId","tierName","qualifyingXp","asOf"],"isRequired":true,"uniqueKey":"tier.oneOf.0","typeLabel":"object"},{"type":"null","description":"Picked from the current ladder on every read; null when no tier's threshold is at or below the member's qualifying XP.","properties":{"tierId":{"type":"string"},"tierName":{"type":"string"},"qualifyingXp":{"type":"string","description":"A non-negative integer as a decimal string."},"asOf":{"type":"string","format":"date-time","description":"The time of the read, not of a tier change."}},"required":["tierId","tierName","qualifyingXp","asOf"],"isRequired":true,"uniqueKey":"tier.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"tier","typeLabel":"object | null"}},"required":["userId","organizationId","spendableBalance","lifetimeQualifyingXp","tier"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"userId":"\u003cstring>","organizationId":"\u003cstring>","spendableBalance":"\u003cstring>","lifetimeQualifyingXp":"\u003cstring>","tier":{"tierId":"\u003cstring>","tierName":"\u003cstring>","qualifyingXp":"\u003cstring>","asOf":"2023-11-07T05:31:56Z"}}}},"exampleType":"generated"}},"exampleType":"generated"},"dbcb70d2-7c60-41b9-b21c-813fcac407da":{"description":"`UNAUTHORIZED`: no valid credential","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"status":{"type":"integer","isRequired":true,"uniqueKey":"error.status","typeLabel":"integer"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"object","additionalProperties":true,"uniqueKey":"error.details","typeLabel":"object"}},"required":["code","status","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"\u003cstring>","status":123,"message":"\u003cstring>","details":{}}}}},"exampleType":"generated"}},"exampleType":"generated"},"e3a770ac-5a47-4a45-8b21-329859589443":{"description":"`FORBIDDEN`: a platform admin session with no active organization","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"status":{"type":"integer","isRequired":true,"uniqueKey":"error.status","typeLabel":"integer"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"object","additionalProperties":true,"uniqueKey":"error.details","typeLabel":"object"}},"required":["code","status","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"\u003cstring>","status":123,"message":"\u003cstring>","details":{}}}}},"exampleType":"generated"}},"exampleType":"generated"},"a1678db5-45bf-4ad7-b662-4c18e371df4c":{"description":"`NOT_FOUND`: a session with no active organization","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"status":{"type":"integer","isRequired":true,"uniqueKey":"error.status","typeLabel":"integer"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"object","additionalProperties":true,"uniqueKey":"error.details","typeLabel":"object"}},"required":["code","status","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"\u003cstring>","status":123,"message":"\u003cstring>","details":{}}}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"fca39429-31c3-4a5e-bec7-5275ab8ca76b":{"partnerApiKey":{"type":"http","scheme":"bearer","description":"Organization API key (`org_...`) sent as `Authorization: Bearer \u003ckey>`. Keys are scoped to one organization; every request operates within that tenant.","scopes":[],"schemeName":"partnerApiKey"}},"25ab8a1a-836d-4ba5-9553-5c323e6753c0":{"adminSession":{"type":"http","scheme":"bearer","description":"Partner admin session token sent as `Authorization: Bearer \u003ctoken>`. Obtained by signing in (console or the email OTP endpoints) and completing the second factor; see the Authentication page.","scopes":[],"schemeName":"adminSession"}},"487ae6ef-06be-477f-a014-f88987354aa9":{"memberSession":{"type":"http","scheme":"bearer","description":"A signed-in member's session token sent as `Authorization: Bearer \u003ctoken>`. Accepted only on the operations that list it, and each of those says which user ids a member may name. Your backend uses the organization API key instead.","scopes":[],"schemeName":"memberSession"}}},"servers":{"7548fbcb-cde8-4991-af4e-42d5cd435d3b":{"url":"https://api.develop.fourdos.dev"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"Organization API key (`org_...`) sent as `Authorization: Bearer \u003ckey>`. Keys are scoped to one organization; every request operates within that tenant.","scopes":[],"schemeName":"partnerApiKey"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Organization API key (`org_...`) sent as `Authorization: Bearer \u003ckey>`. Keys are scoped to one organization; every request operates within that tenant.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"partnerApiKey","name":"Authorization"}],"title":"partnerApiKey"},{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"Partner admin session token sent as `Authorization: Bearer \u003ctoken>`. Obtained by signing in (console or the email OTP endpoints) and completing the second factor; see the Authentication page.","scopes":[],"schemeName":"adminSession"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Partner admin session token sent as `Authorization: Bearer \u003ctoken>`. Obtained by signing in (console or the email OTP endpoints) and completing the second factor; see the Authentication page.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"adminSession","name":"Authorization"}],"title":"adminSession"},{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"A signed-in member's session token sent as `Authorization: Bearer \u003ctoken>`. Accepted only on the operations that list it, and each of those says which user ids a member may name. Your backend uses the organization API key instead.","scopes":[],"schemeName":"memberSession"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"A signed-in member's session token sent as `Authorization: Bearer \u003ctoken>`. Accepted only on the operations that list it, and each of those says which user ids a member may name. Your backend uses the organization API key instead.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"memberSession","name":"Authorization"}],"title":"memberSession"}]},"originalFileLocation":"https://api.develop.fourdos.dev/openapi/partner.json"},"subdomain":"4dos","siteName":"4D OS Developer Docs","title":"Read a member's spendable balance, qualifying XP and tier - 4D OS Developer Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-13T11:31:33.130Z","originalFileLocation":"api-reference/xp/read-a-members-spendable-balance-qualifying-xp-and-tier.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=\"Fields are camelCase. Both figures are read live and the tier is picked from the current ladder on every call. The user is not looked up: an id with no XP account in your organization reads as \u0026quot;0\u0026quot; with the bottom tier, or tier: null when you have no ladder. A member session may name only its own user id.\">\u003cmeta data-mint-head name=\"application-name\" content=\"4D OS Developer Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/4dos/ncF7JlfIXB4OFvnM/_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/4dos/ncF7JlfIXB4OFvnM/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/4dos/ncF7JlfIXB4OFvnM/_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/4dos/ncF7JlfIXB4OFvnM/_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/4dos/ncF7JlfIXB4OFvnM/_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/4dos/ncF7JlfIXB4OFvnM/_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/4dos/ncF7JlfIXB4OFvnM/_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/4dos/ncF7JlfIXB4OFvnM/_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/4dos/ncF7JlfIXB4OFvnM/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Read a member\u0026#x27;s spendable balance, qualifying XP and tier - 4D OS Developer Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Fields are camelCase. Both figures are read live and the tier is picked from the current ladder on every call. The user is not looked up: an id with no XP account in your organization reads as \u0026quot;0\u0026quot; with the bottom tier, or tier: null when you have no ladder. A member session may name only its own user id.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"4D OS Developer Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.fourdos.dev/api-reference/xp/read-a-members-spendable-balance-qualifying-xp-and-tier\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://4dos.mintlify.site/_mintlify/api/og/v2?division=XP\u0026amp;title=Read+a+member%27s+spendable+balance%2C+qualifying+XP+and+tier\u0026amp;description=Fields+are+camelCase.+Both+figures+are+read+live+and+the+tier+is+picked+from+the+current+ladder+on+every+call.+The+user+is+not+looked+up%3A+an+id+with+no+XP+accou\u0026amp;theme=b85e85529419e0832c327540\u0026amp;signature=9515cce5c279bd6cdaf8671453951f5f6b3a0904af88c0e9feb4085bb986e0b3\">\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=\"Read a member\u0026#x27;s spendable balance, qualifying XP and tier - 4D OS Developer Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Fields are camelCase. Both figures are read live and the tier is picked from the current ladder on every call. The user is not looked up: an id with no XP account in your organization reads as \u0026quot;0\u0026quot; with the bottom tier, or tier: null when you have no ladder. A member session may name only its own user id.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://4dos.mintlify.site/_mintlify/api/og/v2?division=XP\u0026amp;title=Read+a+member%27s+spendable+balance%2C+qualifying+XP+and+tier\u0026amp;description=Fields+are+camelCase.+Both+figures+are+read+live+and+the+tier+is+picked+from+the+current+ladder+on+every+call.+The+user+is+not+looked+up%3A+an+id+with+no+XP+accou\u0026amp;theme=b85e85529419e0832c327540\u0026amp;signature=9515cce5c279bd6cdaf8671453951f5f6b3a0904af88c0e9feb4085bb986e0b3\">\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/4dos/ncF7JlfIXB4OFvnM/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"4D OS Developer Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#1865D1\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.fourdos.dev/api-reference/xp/read-a-members-spendable-balance-qualifying-xp-and-tier\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/xp/read-a-members-spendable-balance-qualifying-xp-and-tier.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.fourdos.dev/#organization\",\"name\":\"4D OS Developer Docs\",\"url\":\"https://docs.fourdos.dev\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/4dos/zox555bidSKp__2J/logo/light.svg?fit=max\u0026auto=format\u0026n=zox555bidSKp__2J\u0026q=85\u0026s=f664509c181b052b368f5e6d97c443cb\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.fourdos.dev#website\",\"name\":\"4D OS Developer Docs\",\"url\":\"https://docs.fourdos.dev\",\"publisher\":{\"@id\":\"https://docs.fourdos.dev/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.fourdos.dev/api-reference/xp/read-a-members-spendable-balance-qualifying-xp-and-tier#webpage\",\"url\":\"https://docs.fourdos.dev/api-reference/xp/read-a-members-spendable-balance-qualifying-xp-and-tier\",\"name\":\"Read a member's spendable balance, qualifying XP and tier\",\"description\":\"Fields are camelCase. Both figures are read live and the tier is picked from the current ladder on every call. The user is not looked up: an id with no XP account in your organization reads as \\\"0\\\" with the bottom tier, or tier: null when you have no ladder. A member session may name only its own user id.\",\"dateModified\":\"2026-11-13T11:31:33.130Z\",\"isPartOf\":{\"@id\":\"https://docs.fourdos.dev#website\"},\"breadcrumb\":{\"@id\":\"https://docs.fourdos.dev/api-reference/xp/read-a-members-spendable-balance-qualifying-xp-and-tier#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.fourdos.dev/api-reference/xp/read-a-members-spendable-balance-qualifying-xp-and-tier#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Endpoints\",\"item\":\"https://docs.fourdos.dev/api-reference/users/find-members-of-your-organization-by-name-or-email\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Read a member's spendable balance, qualifying XP and tier\",\"item\":\"https://docs.fourdos.dev/api-reference/xp/read-a-members-spendable-balance-qualifying-xp-and-tier\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.fourdos.dev/api-reference/xp/read-a-members-spendable-balance-qualifying-xp-and-tier#apireference\",\"headline\":\"Read a member's spendable balance, qualifying XP and tier\",\"name\":\"Read a member's spendable balance, qualifying XP and tier\",\"description\":\"Fields are camelCase. Both figures are read live and the tier is picked from the current ladder on every call. The user is not looked up: an id with no XP account in your organization reads as \\\"0\\\" with the bottom tier, or tier: null when you have no ladder. A member session may name only its own user id.\",\"url\":\"https://docs.fourdos.dev/api-reference/xp/read-a-members-spendable-balance-qualifying-xp-and-tier\",\"mainEntityOfPage\":{\"@id\":\"https://docs.fourdos.dev/api-reference/xp/read-a-members-spendable-balance-qualifying-xp-and-tier#webpage\"},\"dateModified\":\"2026-11-13T11:31:33.130Z\",\"publisher\":{\"@id\":\"https://docs.fourdos.dev/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.fourdos.dev#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"4D OS Developer Docs\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"4D OS Developer Docs\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/api-reference/xp/read-a-members-spendable-balance-qualifying-xp-and-tier.md","siteName":"4D OS Developer Docs","nav":{"global":null,"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":""}]},{"tab":"API Reference","groups":[{"group":"Overview","pages":[{"title":"API reference overview","href":"/api-reference/overview"}]},{"group":"Endpoints","pages":[{"group":"Users","pages":[{"title":"Find members of your organization by name or email","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json get /v1/users","href":"/api-reference/users/find-members-of-your-organization-by-name-or-email"},{"title":"Create or attach a user (idempotent via Idempotency-Key)","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json post /v1/users","href":"/api-reference/users/create-or-attach-a-user-idempotent-via-idempotency-key"},{"title":"Fetch a user within the caller's organization","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json get /v1/users/{userId}","href":"/api-reference/users/fetch-a-user-within-the-callers-organization"},{"title":"Update a user's profile fields","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json patch /v1/users/{userId}","href":"/api-reference/users/update-a-users-profile-fields"},{"title":"Lock the caller-org membership for a user","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json post /v1/users/{userId}/lock","href":"/api-reference/users/lock-the-caller-org-membership-for-a-user"},{"title":"Unlock the caller-org membership for a user","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json post /v1/users/{userId}/unlock","href":"/api-reference/users/unlock-the-caller-org-membership-for-a-user"},{"title":"List one member's engagement events, newest first","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json get /v1/users/{userId}/engagement/events","href":"/api-reference/users/list-one-members-engagement-events-newest-first"},{"title":"List one member's XP history, newest first","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json get /v1/users/{userId}/xp-history","href":"/api-reference/users/list-one-members-xp-history-newest-first"},{"title":"Remove (soft-delete) the caller-org membership for a user","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json delete /v1/users/{userId}/membership","href":"/api-reference/users/remove-soft-delete-the-caller-org-membership-for-a-user"},{"title":"Read a member's stored attribute values","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json get /v1/users/{userId}/attributes","href":"/api-reference/users/read-a-members-stored-attribute-values"},{"title":"Set or clear a member's attribute values","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json put /v1/users/{userId}/attributes","href":"/api-reference/users/set-or-clear-a-members-attribute-values"}]},{"group":"Consents","pages":[{"title":"List a member's consents","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json get /v1/users/{userId}/consents","href":"/api-reference/consents/list-a-members-consents"},{"title":"Grant a consent or accept an agreement","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json post /v1/users/{userId}/consents","href":"/api-reference/consents/grant-a-consent-or-accept-an-agreement"},{"title":"Withdraw a consent","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json delete /v1/users/{userId}/consents/{scope}","href":"/api-reference/consents/withdraw-a-consent"}]},{"group":"Rewards","pages":[{"title":"List your published rewards with this member's verdict on each","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json get /v1/users/{userId}/rewards","href":"/api-reference/rewards/list-your-published-rewards-with-this-members-verdict-on-each"},{"title":"Claim a reward for a member","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json post /v1/users/{userId}/redeem","href":"/api-reference/rewards/claim-a-reward-for-a-member"},{"title":"List a member's claims, newest first","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json get /v1/users/{userId}/redemptions","href":"/api-reference/rewards/list-a-members-claims-newest-first"},{"title":"Read one claim","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json get /v1/users/{userId}/redemptions/{redemptionId}","href":"/api-reference/rewards/read-one-claim"},{"title":"Mark a claim's reward code used","description":"For the partner honouring the code, so the same code cannot be applied twice: it sets `code_used_at` once, and a second call is refused. Call it before you charge. Send an `Idempotency-Key` tied to one checkout attempt to make a retry of that attempt replay the original response. Member sessions are refused.","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json post /v1/users/{userId}/redemptions/{redemptionId}/use","href":"/api-reference/rewards/mark-a-claims-reward-code-used"}]},{"group":"XP","pages":[{"title":"Read a member's spendable balance, qualifying XP and tier","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json get /v1/users/{userId}/balance","href":"/api-reference/xp/read-a-members-spendable-balance-qualifying-xp-and-tier"},{"title":"Read what a member can still earn today","description":"XP left against the member's daily cap, which actions still pay, when the day resets in your organization's zone, and today's refusals with the sentence each one shows. Fields are camelCase. With no earning controls configured, `limited` is false and the lists are empty. A member session may name only its own user id; another id answers 404.","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json get /v1/users/{userId}/xp-earning","href":"/api-reference/xp/read-what-a-member-can-still-earn-today"},{"title":"Read when a member's XP lapses","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json get /v1/users/{userId}/xp-expiry","href":"/api-reference/xp/read-when-a-members-xp-lapses"},{"title":"Read the XP boost a member earns under right now","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json get /v1/users/{userId}/xp-boost","href":"/api-reference/xp/read-the-xp-boost-a-member-earns-under-right-now"},{"title":"List what each event pays","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json get /v1/xp/event-definitions","href":"/api-reference/xp/list-what-each-event-pays"}]},{"group":"Tiers","pages":[{"title":"List your organization's tiers, lowest first","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json get /v1/tiers","href":"/api-reference/tiers/list-your-organizations-tiers-lowest-first"},{"title":"Read one tier","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json get /v1/tiers/{tierId}","href":"/api-reference/tiers/read-one-tier"}]},{"group":"Webhooks","pages":[{"title":"List your webhook endpoints, oldest first","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json get /v1/webhooks","href":"/api-reference/webhooks/list-your-webhook-endpoints-oldest-first"},{"title":"Register a webhook endpoint","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json post /v1/webhooks","href":"/api-reference/webhooks/register-a-webhook-endpoint"},{"title":"Delete a webhook endpoint","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json delete /v1/webhooks/{id}","href":"/api-reference/webhooks/delete-a-webhook-endpoint"}]},{"group":"Events","pages":[{"title":"Refetch your organization's events from the last 30 days","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json post /v1/events","href":"/api-reference/events/refetch-your-organizations-events-from-the-last-30-days"}]},{"group":"Imports","pages":[{"title":"Create a bulk import job (starts in `staging`)","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json post /v1/imports","href":"/api-reference/imports/create-a-bulk-import-job-starts-in-`staging`"},{"title":"Page a job's per-row outcomes, optionally filtered by state","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json get /v1/imports/{id}/rows","href":"/api-reference/imports/page-a-jobs-per-row-outcomes-optionally-filtered-by-state"},{"title":"Stage a chunk of rows onto a job (≤5k rows/request, job must be `staging`)","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json post /v1/imports/{id}/rows","href":"/api-reference/imports/stage-a-chunk-of-rows-onto-a-job-≤5k-rowsrequest-job-must-be-`staging`"},{"title":"Seal staging and start async dry-run validation","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json post /v1/imports/{id}/validate","href":"/api-reference/imports/seal-staging-and-start-async-dry-run-validation"},{"title":"Commit a validated job, or start validation with `dry_run: false` on a `staging` job","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json post /v1/imports/{id}/commit","href":"/api-reference/imports/commit-a-validated-job-or-start-validation-with-`dry_run:-false`-on-a-`staging`-job"},{"title":"Fetch an import job's status and counts","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json get /v1/imports/{id}","href":"/api-reference/imports/fetch-an-import-jobs-status-and-counts"},{"title":"Download the invalid+failed rows as CSV (also the console's download URL, cookie auth)","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json get /v1/imports/{id}/error-report","href":"/api-reference/imports/download-the-invalid+failed-rows-as-csv-also-the-consoles-download-url-cookie-auth"}]},{"group":"API keys","pages":[{"title":"List organization API keys","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json get /v1/api-keys","href":"/api-reference/api-keys/list-organization-api-keys"},{"title":"Issue an organization API key","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json post /v1/api-keys","href":"/api-reference/api-keys/issue-an-organization-api-key"},{"title":"Revoke an organization API key","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json delete /v1/api-keys/{keyId}","href":"/api-reference/api-keys/revoke-an-organization-api-key"}]},{"group":"Modules","pages":[{"title":"List modules visible to the caller","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json get /v1/modules","href":"/api-reference/modules/list-modules-visible-to-the-caller"},{"title":"Create a private module draft","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json post /v1/modules","href":"/api-reference/modules/create-a-private-module-draft"},{"title":"Get a visible module","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json get /v1/modules/{moduleId}","href":"/api-reference/modules/get-a-visible-module"},{"title":"List versions for a visible module","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json get /v1/modules/{moduleId}/versions","href":"/api-reference/modules/list-versions-for-a-visible-module"},{"title":"Create a private module version draft","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json post /v1/modules/{moduleId}/versions","href":"/api-reference/modules/create-a-private-module-version-draft"},{"title":"Publish a private module version","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json post /v1/modules/{moduleId}/versions/{versionId}/publish","href":"/api-reference/modules/publish-a-private-module-version"},{"title":"Install a published module","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json post /v1/modules/{moduleId}/install","href":"/api-reference/modules/install-a-published-module"},{"title":"List the organization's module installations","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json get /v1/installations","href":"/api-reference/modules/list-the-organizations-module-installations"},{"title":"Get an organization module installation","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json get /v1/installations/{installationId}","href":"/api-reference/modules/get-an-organization-module-installation"},{"title":"Disable a module installation","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json delete /v1/installations/{installationId}","href":"/api-reference/modules/disable-a-module-installation"},{"title":"Update an installation","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json patch /v1/installations/{installationId}","href":"/api-reference/modules/update-an-installation"},{"title":"List module credentials","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json get /v1/installations/{installationId}/credentials","href":"/api-reference/modules/list-module-credentials"},{"title":"Issue a module ingest credential","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json post /v1/installations/{installationId}/credentials","href":"/api-reference/modules/issue-a-module-ingest-credential"},{"title":"Rotate module ingest credentials","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json post /v1/installations/{installationId}/credentials/rotate","href":"/api-reference/modules/rotate-module-ingest-credentials"},{"title":"Revoke a module ingest credential","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json delete /v1/installations/{installationId}/credentials/{credentialId}","href":"/api-reference/modules/revoke-a-module-ingest-credential"},{"title":"Create a module webhook endpoint","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json post /v1/installations/{installationId}/webhook-endpoints","href":"/api-reference/modules/create-a-module-webhook-endpoint"},{"title":"Update a module webhook endpoint","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json patch /v1/installations/{installationId}/webhook-endpoints/{endpointId}","href":"/api-reference/modules/update-a-module-webhook-endpoint"}]},{"group":"Ingest","pages":[{"title":"Send a signed module event","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json post /v1/ingest","href":"/api-reference/ingest/send-a-signed-module-event"}]},{"group":"Engagement","pages":[{"title":"Track engagement events (public, publishable tracking key)","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json post /v1/track","href":"/api-reference/engagement/track-engagement-events-public-publishable-tracking-key"},{"title":"List the organization's tracking keys","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json get /v1/engagement/keys","href":"/api-reference/engagement/list-the-organizations-tracking-keys"},{"title":"Issue a publishable tracking key","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json post /v1/engagement/keys","href":"/api-reference/engagement/issue-a-publishable-tracking-key"},{"title":"Revoke a tracking key (idempotent)","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json delete /v1/engagement/keys/{id}","href":"/api-reference/engagement/revoke-a-tracking-key-idempotent"}]},{"group":"Revenue","pages":[{"title":"Record sales and refunds","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json post /v1/revenue","href":"/api-reference/revenue/record-sales-and-refunds"}]},{"group":"Ad entries","pages":[{"title":"Enter a fan in a sponsor's draw on an ad campaign","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json post /v1/ads/campaigns/{campaign_id}/entries","href":"/api-reference/ad-entries/enter-a-fan-in-a-sponsors-draw-on-an-ad-campaign"}]},{"group":"Ad delivery","pages":[{"title":"Mint a signed ad identity for a signed-in fan","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json post /v1/ads/identity-tokens","href":"/api-reference/ad-delivery/mint-a-signed-ad-identity-for-a-signed-in-fan"},{"title":"Fill one ad slot","deprecated":null,"version":null,"openapi":"https://api.develop.fourdos.dev/openapi/partner.json get /v1/ads/serve","href":"/api-reference/ad-delivery/fill-one-ad-slot"}]}]}]}]},"basePath":"","title":"Read a member's spendable balance, qualifying XP and tier - 4D OS Developer Docs","buildId":"dpl_8hoxaqFTU7hTr6A2fUraxAyjuiZo","deploymentId":"dpl_8hoxaqFTU7hTr6A2fUraxAyjuiZo","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"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","Markdown-uxhlayGT.js","clsx-B35qUV0p.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-BvrGG8gU.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-CAf0yVYe.js"]}