Returns a copy of the brand configuration as the platform holds it — your theme, your enabled therapies, and your redirect allowlist — for the brand you pass. Your offerings are not part of this configuration: list them with GET /v1/account/brands//offerings, which serves each one’s name, sku_id, therapy, entry mode, checkout link, price and readiness. This is the client-facing readback promised in the welcome kit. Key-scoped and tenant-isolated: you may read only a brand your API key owns; the brand_id in the path must match the X-Brand-Id you present (any mismatch, foreign, or unknown brand answers 404, never 403 — no cross-tenant existence leak). A brand with no configuration set yet answers 404.
Your brand id (brd_...). It must be one of the brands your API key's account owns; with a publishable key it must be the one brand the key was issued for. A missing or malformed value is refused with 400, and an unknown or foreign brand with 404.
A brand's platform configuration as the platform holds it — clinically inert BY CONSTRUCTION (the validator enforces a top-level allowlist + a recursive clinical-shaped-key denylist). The your readback and the platform staff view return this EXACT shape. Presentation and commercial reach only; never a clinical field. additionalProperties:false mirrors the validator's top-level allowlist.
whether the brand is ready for patients and what is still missing: the same verdict the intake resolve reports. Present whenever the platform's readiness check is available.
Show child attributes
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Purple Label MD","description":"Public API reference for building a patient storefront on the platform. Generated from the platform's own API contracts, and matches the newest staging release.","colors":{"primary":"#6D28D9","light":"#A78BFA","dark":"#5B21B6"},"logo":{"light":"https://mintcdn.com/purplelabelmd/1P9p4n7lsNL4z3Jc/logo/light.svg?fit=max\u0026auto=format\u0026n=1P9p4n7lsNL4z3Jc\u0026q=85\u0026s=3c0569e3f76e49e04d232187908c2e2e","dark":"https://mintcdn.com/purplelabelmd/1P9p4n7lsNL4z3Jc/logo/dark.svg?fit=max\u0026auto=format\u0026n=1P9p4n7lsNL4z3Jc\u0026q=85\u0026s=c11f42bb461c28528be896c7c1a80efa"},"favicon":"https://mintcdn.com/purplelabelmd/MUdvgTlYoCGY54e8/favicon.svg?fit=max\u0026auto=format\u0026n=MUdvgTlYoCGY54e8\u0026q=85\u0026s=3bd633ab20ff170e0ebebec0406e6972","footer":{"socials":{}},"fonts":{"heading":{"family":"Geist"},"body":{"family":"Geist"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"purplelabelmd","hasAudioNarration":false,"actualSubdomain":"purplelabelmd","customDomains":["docs.purplelabelmd.com"],"gitSource":{"type":"github","owner":"purple-label-md","repo":"purple-doc","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af545312fc9183f3253a260","clientVersion":"0.0.4111","searchFilterCounts":[{"language":"default","tag":"API reference","count":50},{"language":"default","tag":"Guides","count":21},{"language":"default","tag":"Offering configuration","count":18},{"language":"default","tag":"Integrate","count":16},{"language":"default","tag":"Brand configuration","count":9},{"language":"default","tag":"Webhooks","count":7},{"language":"default","tag":"Payments","count":4},{"language":"default","tag":"Intake","count":3},{"language":"default","tag":"Onboarding","count":3},{"language":"default","tag":"Sessions \u0026 authentication","count":3}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"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":true},"customCss":[{"filePath":"style.css","content":"@media (prefers-reduced-motion: no-preference){.plmd-logo{transform-origin:center;transition:transform 0.12s ease}.plmd-logo .plmd-mark path{transform-box:fill-box;transform-origin:center}.plmd-logo-link:active .plmd-logo{transform:scale(0.85)}.plmd-logo-link:hover .plmd-logo .plmd-mark path:last-child{animation:plmd-carrot-hop 0.55s ease}.plmd-logo-link:hover .plmd-logo .plmd-mark path:nth-child(-n+6){animation:plmd-carrot-twinkle 0.5s ease}.plmd-logo-link:hover .plmd-logo .plmd-mark path:nth-child(even){animation-delay:0.08s}}@keyframes plmd-carrot-hop{0%{transform:translateY(0) rotate(0)}30%{transform:translateY(-14%) rotate(-9deg)}55%{transform:translateY(0) rotate(6deg)}78%{transform:translateY(-5%) rotate(-2deg)}100%{transform:translateY(0) rotate(0)}}@keyframes plmd-carrot-twinkle{0%,100%{transform:scale(1);opacity:1}45%{transform:scale(1.6);opacity:0.7}}"}],"page":{"pagePath":"api-reference/brand-configuration/read-back-your-brands-platform-configuration","slug":"/api-reference/brand-configuration/read-back-your-brands-platform-configuration","pageMetadata":{"title":"Read back your brand's platform configuration","description":"Returns a copy of the brand configuration as the platform holds it — your theme, your enabled therapies, and your redirect allowlist — for the brand you pass. Your offerings are not part of this configuration: list them with GET /v1/account/brands/{brand_id}/offerings, which serves each one's name, sku_id, therapy, entry mode, checkout link, price and readiness. This is the client-facing readback promised in the welcome kit. Key-scoped and tenant-isolated: you may read only a brand your API key owns; the brand_id in the path must match the X-Brand-Id you present (any mismatch, foreign, or unknown brand answers 404, never 403 — no cross-tenant existence leak). A brand with no configuration set yet answers 404.","deprecated":null,"version":null,"openapi":"/openapi/public-openapi.json get /v1/account/brands/{brand_id}/config","href":"/api-reference/brand-configuration/read-back-your-brands-platform-configuration","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 p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_components.p, {\n children: [\"Returns a copy of the brand configuration as the platform holds it — your theme, your enabled therapies, and your redirect allowlist — for the brand you pass. Your offerings are not part of this configuration: list them with GET /v1/account/brands/\", \"/offerings, which serves each one’s name, sku_id, therapy, entry mode, checkout link, price and readiness. This is the client-facing readback promised in the welcome kit. Key-scoped and tenant-isolated: you may read only a brand your API key owns; the brand_id in the path must match the X-Brand-Id you present (any mismatch, foreign, or unknown brand answers 404, never 403 — no cross-tenant existence leak). A brand with no configuration set yet answers 404.\"]\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 back your brand's platform configuration","description":"Returns a copy of the brand configuration as the platform holds it — your theme, your enabled therapies, and your redirect allowlist — for the brand you pass. Your offerings are not part of this configuration: list them with GET /v1/account/brands/{brand_id}/offerings, which serves each one's name, sku_id, therapy, entry mode, checkout link, price and readiness. This is the client-facing readback promised in the welcome kit. Key-scoped and tenant-isolated: you may read only a brand your API key owns; the brand_id in the path must match the X-Brand-Id you present (any mismatch, foreign, or unknown brand answers 404, never 403 — no cross-tenant existence leak). A brand with no configuration set yet answers 404.","deprecated":null,"version":null,"openapi":"/openapi/public-openapi.json get /v1/account/brands/{brand_id}/config","href":"/api-reference/brand-configuration/read-back-your-brands-platform-configuration","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/_mintlify/custom/purplelabelmd/3b4d4a495cd0c48d/brand.js"],"openApiReferenceData":{"operation":{"description":"Returns a copy of the brand configuration as the platform holds it — your theme, your enabled therapies, and your redirect allowlist — for the brand you pass. Your offerings are not part of this configuration: list them with GET /v1/account/brands/{brand_id}/offerings, which serves each one's name, sku_id, therapy, entry mode, checkout link, price and readiness. This is the client-facing readback promised in the welcome kit. Key-scoped and tenant-isolated: you may read only a brand your API key owns; the brand_id in the path must match the X-Brand-Id you present (any mismatch, foreign, or unknown brand answers 404, never 403 — no cross-tenant existence leak). A brand with no configuration set yet answers 404.","operationId":"getAccountBrandConfig","parameters":["07e19067-e381-4c8e-9323-013425d43343","384ee12b-71ee-4f76-bd1f-4cf7e189334c"],"responses":{"200":"9c755ab9-bb9e-498e-b0d6-dc48687fa134","400":"50402e24-bba7-479b-9c45-d15fbcd10e7a","401":"9e011c3f-b073-4033-8e1b-54a374c1d65c","404":"a940a31a-aed0-4cc9-a262-4495ed1f609f"},"security":["712a6e58-18a8-44d1-af8d-c6ebfd77386e"],"summary":"Read back your brand's platform configuration","tags":["Brand configuration"],"method":"get","type":"path","servers":["76f2c082-b62c-4aea-a087-a046f1378296"],"path":"/v1/account/brands/{brand_id}/config","baseUrlOptions":["https://api.staging.purplelabelmd.com"],"title":"Read back your brand's platform configuration","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"07e19067-e381-4c8e-9323-013425d43343":{"description":"Your brand id (`brd_...`). It must be one of the brands your API key's account owns; with a publishable key it must be the one brand the key was issued for. A missing or malformed value is refused with `400`, and an unknown or foreign brand with `404`.","in":"header","name":"X-Brand-Id","required":true,"schema":{"pattern":"^brd_[A-Za-z0-9][A-Za-z0-9_-]*$","type":"string","isRequired":true,"description":"Your brand id (`brd_...`). It must be one of the brands your API key's account owns; with a publishable key it must be the one brand the key was issued for. A missing or malformed value is refused with `400`, and an unknown or foreign brand with `404`.","uniqueKey":"","typeLabel":"string"}},"384ee12b-71ee-4f76-bd1f-4cf7e189334c":{"description":"the brand whose configuration to read (must match X-Brand-Id).","in":"path","name":"brand_id","required":true,"schema":{"pattern":"^brd_[A-Za-z0-9][A-Za-z0-9_-]*$","type":"string","isRequired":true,"description":"the brand whose configuration to read (must match X-Brand-Id).","uniqueKey":"","typeLabel":"string"}}},"responses":{"9c755ab9-bb9e-498e-b0d6-dc48687fa134":{"content":{"application/json":{"schema":{"properties":{"data":{"additionalProperties":false,"description":"A brand's platform configuration as the platform holds it — clinically inert BY CONSTRUCTION (the validator enforces a top-level allowlist + a recursive clinical-shaped-key denylist). The your readback and the platform staff view return this EXACT shape. Presentation and commercial reach only; never a clinical field. additionalProperties:false mirrors the validator's top-level allowlist.","properties":{"brand_id":{"pattern":"^brd_[A-Za-z0-9][A-Za-z0-9_-]*$","type":"string","isRequired":true,"uniqueKey":"data.brand_id","typeLabel":"string"},"version":{"description":"server-minted monotone version (e.g. v3); the caller never sets it. A write may send it back as `expected_version` so that a save made from this read is refused if the stored version has moved since.","type":"string","isRequired":true,"uniqueKey":"data.version","typeLabel":"string"},"commercial":{"additionalProperties":{"type":"string","uniqueKey":"data.commercial.additionalProperties","typeLabel":"string"},"description":"commercial references (storefront/pricing ids) — references only.","type":"object","uniqueKey":"data.commercial","typeLabel":"object"},"consent_holder":{"description":"Who holds this brand's consent documents and identity. `purple`: Purple's consent documents apply. `client`: the brand's own legal document links apply. Absent means nobody has chosen yet, and the brand is not ready for patients until someone does; there is no default.","enum":["purple","client"],"type":"string","uniqueKey":"data.consent_holder","typeLabel":"enum\u003cstring>"},"copy":{"additionalProperties":{"type":"string","uniqueKey":"data.copy.additionalProperties","typeLabel":"string"},"description":"brand-overridable copy slots (slot id → display string).","type":"object","uniqueKey":"data.copy","typeLabel":"object"},"display":{"type":"object","description":"The per-brand display-identity block (name, logo, token-set), if set. Identity only; never a clinical copy channel. When absent, this brand has no display identity and the brand-display serve returns the explicit purple fallback.","required":["display_name"],"properties":{"display_name":{"description":"the brand's display name shown to patients (document titles, login shell).","minLength":1,"type":"string","isRequired":true,"uniqueKey":"data.display.display_name","typeLabel":"string"},"logo":{"additionalProperties":false,"description":"logo references per mode — each an absolute https URL or a root-relative path ('/…').","properties":{"dark":{"description":"dark-mode logo reference (absolute https URL or root-relative path).","type":"string","uniqueKey":"data.display.logo.dark","typeLabel":"string"},"light":{"description":"light-mode logo reference (absolute https URL or root-relative path).","type":"string","uniqueKey":"data.display.logo.light","typeLabel":"string"}},"type":"object","uniqueKey":"data.display.logo","typeLabel":"object"},"support_email":{"description":"optional brand support email.","format":"email","type":"string","uniqueKey":"data.display.support_email","typeLabel":"string\u003cemail>"},"support_phone":{"description":"optional brand support phone number, as it should be displayed (digits, with an optional leading +, spaces, parentheses, dots and hyphens). The member support page offers it as a one-tap call. A malformed value is refused with `422`.","maxLength":32,"pattern":"^\\+?[0-9][0-9 ().-]{6,}$","type":"string","uniqueKey":"data.display.support_phone","typeLabel":"string"},"tokens":{"type":"object","description":"The brand token-set family (colors per mode, base radius, and type families), mirroring the design-system brand-token shape minus name and logo (which are hoisted to display_name and logo). A partial override set: a brand supplies any subset of the known slots; completeness for stylesheet generation is achieved downstream by merging onto the default brand fallback. String leaves only; unknown token slots are refused.","properties":{"colors":{"additionalProperties":false,"description":"semantic color slots per mode — BrandColorSet keys → CSS color strings.","properties":{"dark":{"additionalProperties":{"type":"string","uniqueKey":"data.display.tokens.colors.dark.additionalProperties","typeLabel":"string"},"description":"dark-mode color slots (BrandColorSet keys → CSS color strings).","type":"object","uniqueKey":"data.display.tokens.colors.dark","typeLabel":"object"},"light":{"additionalProperties":{"type":"string","uniqueKey":"data.display.tokens.colors.light.additionalProperties","typeLabel":"string"},"description":"light-mode color slots (BrandColorSet keys → CSS color strings).","type":"object","uniqueKey":"data.display.tokens.colors.light","typeLabel":"object"}},"type":"object","uniqueKey":"data.display.tokens.colors","typeLabel":"object"},"radius":{"description":"base corner radius, e.g. '0.625rem'.","type":"string","uniqueKey":"data.display.tokens.radius","typeLabel":"string"},"typography":{"additionalProperties":false,"properties":{"fontMono":{"type":"string","uniqueKey":"data.display.tokens.typography.fontMono","typeLabel":"string"},"fontSans":{"type":"string","uniqueKey":"data.display.tokens.typography.fontSans","typeLabel":"string"}},"type":"object","uniqueKey":"data.display.tokens.typography","typeLabel":"object"}},"additionalProperties":false,"uniqueKey":"data.display.tokens","typeLabel":"object"}},"additionalProperties":false,"uniqueKey":"data.display","typeLabel":"object"},"enabled_therapies":{"description":"therapy references this brand offers (references, never definitions). This is also the field the intake surface reads to decide which questionnaire a patient is served at a journeyless first touch: one enabled therapy serves that therapy's questionnaire always; more than one requires the entry link to name an `offering`; none serves the platform's shared questionnaire. Values must be therapy keys the clinical service currently serves; the vocabulary is not enumerated here — it is clinical's committed roster (`GET /v1/instrument-bundles/roster`), which grows as new shared intakes ship.","items":{"type":"string","uniqueKey":"data.enabled_therapies.items.[INDEX]","typeLabel":"string"},"type":"array","uniqueKey":"data.enabled_therapies","typeLabel":"string[]"},"legal_documents":{"type":"object","description":"The brand's REGISTERED LEGAL DOCUMENTS: the absolute https URLs the render-time brand-identity token channel substitutes into `{brand.legal.telehealth_url}` / `{brand.legal.privacy_url}` / `{brand.legal.terms_url}`. IDENTITY, NEVER COPY — the same class as `display.display_name` and `redirect_allowlist`, and emphatically not a wording channel: a brand still cannot supply one word of clinical question or option text. ONE RECORD SERVES CHECKOUT AND INTAKE (the checkout-scoped consent-docs registry folds into this field), so a brand cannot hold two copies that disagree about which privacy policy it publishes. ABSENT, or a slot absent, is VALID and means the render serves a NAMED copy-gap refusal on that node — never a blank link, never a dead link, never a raw token shown to a member.","properties":{"privacy":{"description":"the brand's privacy policy (absolute https).","format":"uri","type":"string","uniqueKey":"data.legal_documents.privacy","typeLabel":"string\u003curi>"},"telehealth":{"description":"the brand's telehealth informed-consent document (absolute https).","format":"uri","type":"string","uniqueKey":"data.legal_documents.telehealth","typeLabel":"string\u003curi>"},"terms":{"description":"the brand's terms document (absolute https).","format":"uri","type":"string","uniqueKey":"data.legal_documents.terms","typeLabel":"string\u003curi>"}},"additionalProperties":false,"uniqueKey":"data.legal_documents","typeLabel":"object"},"redirect_allowlist":{"description":"absolute-https return-URL prefixes permitted as post-completion redirect targets.","items":{"format":"uri","type":"string","uniqueKey":"data.redirect_allowlist.items.[INDEX]","typeLabel":"string\u003curi>"},"type":"array","uniqueKey":"data.redirect_allowlist","typeLabel":"string\u003curi>[]"},"theme":{"additionalProperties":{"oneOf":[{"type":"string","uniqueKey":"data.theme.additionalProperties.oneOf.0","typeLabel":"string"},{"type":"number","uniqueKey":"data.theme.additionalProperties.oneOf.1","typeLabel":"number"}],"uniqueKey":"data.theme.additionalProperties","typeLabel":"string | number"},"description":"presentation theme tokens — scalar leaves only (string or number).","type":"object","uniqueKey":"data.theme","typeLabel":"object"},"updated_at":{"description":"when this configuration was last written.","format":"date-time","type":"string","uniqueKey":"data.updated_at","typeLabel":"string\u003cdate-time>"}},"required":["brand_id","version"],"type":"object","isRequired":true,"uniqueKey":"data","typeLabel":"object"},"patient_readiness":{"type":"object","description":"whether the brand is ready for patients and what is still missing: the same verdict the intake resolve reports. Present whenever the platform's readiness check is available.","required":["status","consent_holder","required_documents","missing"],"properties":{"consent_holder":{"description":"who holds the brand's consent documents, as chosen; `not_chosen` until someone chooses.","enum":["purple","client","not_chosen"],"type":"string","isRequired":true,"uniqueKey":"patient_readiness.consent_holder","typeLabel":"enum\u003cstring>"},"missing":{"description":"every required item still unset; empty exactly when `status` is `patient_ready`.","items":{"additionalProperties":false,"properties":{"detail":{"description":"what is missing and how to set it, in plain words.","type":"string","isRequired":true,"uniqueKey":"patient_readiness.missing.items.[INDEX].detail","typeLabel":"string"},"item":{"enum":["display_name","consent_holder","legal_document","readiness_unknown"],"type":"string","isRequired":true,"uniqueKey":"patient_readiness.missing.items.[INDEX].item","typeLabel":"enum\u003cstring>"},"document":{"description":"for `legal_document`, which document is missing.","enum":["terms","privacy","telehealth"],"type":"string","uniqueKey":"patient_readiness.missing.items.[INDEX].document","typeLabel":"enum\u003cstring>"}},"required":["item","detail"],"type":"object","uniqueKey":"patient_readiness.missing.items.[INDEX]","typeLabel":"object"},"type":"array","isRequired":true,"uniqueKey":"patient_readiness.missing","typeLabel":"object[]"},"required_documents":{"description":"the documents the brand's served consents link to (empty when that cannot be told yet).","items":{"enum":["terms","privacy","telehealth"],"type":"string","uniqueKey":"patient_readiness.required_documents.items.[INDEX]","typeLabel":"enum\u003cstring>"},"type":"array","isRequired":true,"uniqueKey":"patient_readiness.required_documents","typeLabel":"enum\u003cstring>[]"},"status":{"enum":["patient_ready","not_patient_ready"],"type":"string","isRequired":true,"uniqueKey":"patient_readiness.status","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"uniqueKey":"patient_readiness","typeLabel":"object"}},"required":["data"],"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"data":{"brand_id":"\u003cstring>","version":"\u003cstring>","commercial":{},"consent_holder":"purple","copy":{},"display":{"display_name":"\u003cstring>","logo":{"dark":"\u003cstring>","light":"\u003cstring>"},"support_email":"[email protected]","support_phone":"\u003cstring>","tokens":{"colors":{"dark":{},"light":{}},"radius":"\u003cstring>","typography":{"fontMono":"\u003cstring>","fontSans":"\u003cstring>"}}},"enabled_therapies":["\u003cstring>"],"legal_documents":{"privacy":"\u003cstring>","telehealth":"\u003cstring>","terms":"\u003cstring>"},"redirect_allowlist":["\u003cstring>"],"theme":{},"updated_at":"2023-11-07T05:31:56Z"},"patient_readiness":{"consent_holder":"purple","missing":[{"detail":"\u003cstring>","item":"display_name","document":"terms"}],"required_documents":["terms"],"status":"patient_ready"}}}},"exampleType":"generated"}},"description":"the brand's configuration (clinically inert by construction)","exampleType":"generated"},"50402e24-bba7-479b-9c45-d15fbcd10e7a":{"content":{"application/problem+json":{"schema":{"description":"RFC 7807 problem+json error body.","properties":{"status":{"type":"integer","isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"title":{"type":"string","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"type":{"format":"uri-reference","type":"string","isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi-reference>"},"detail":{"type":"string","uniqueKey":"detail","typeLabel":"string"}},"required":["type","title","status"],"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"status":123,"title":"\u003cstring>","type":"\u003cstring>","detail":"\u003cstring>"}}},"exampleType":"generated"}},"description":"malformed or absent X-Brand-Id","exampleType":"generated"},"9e011c3f-b073-4033-8e1b-54a374c1d65c":{"content":{"application/problem+json":{"schema":{"description":"RFC 7807 problem+json error body.","properties":{"status":{"type":"integer","isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"title":{"type":"string","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"type":{"format":"uri-reference","type":"string","isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi-reference>"},"detail":{"type":"string","uniqueKey":"detail","typeLabel":"string"}},"required":["type","title","status"],"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"status":123,"title":"\u003cstring>","type":"\u003cstring>","detail":"\u003cstring>"}}},"exampleType":"generated"}},"description":"Missing, unknown or revoked API key. The body is the same in every case.","exampleType":"generated"},"a940a31a-aed0-4cc9-a262-4495ed1f609f":{"content":{"application/problem+json":{"schema":{"description":"RFC 7807 problem+json error body.","properties":{"status":{"type":"integer","isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"title":{"type":"string","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"type":{"format":"uri-reference","type":"string","isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi-reference>"},"detail":{"type":"string","uniqueKey":"detail","typeLabel":"string"}},"required":["type","title","status"],"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"status":123,"title":"\u003cstring>","type":"\u003cstring>","detail":"\u003cstring>"}}},"exampleType":"generated"}},"description":"Brand not found for your account. An unknown brand and another account's brand get the same `404`, never a `403`.","exampleType":"generated"}},"security":{"712a6e58-18a8-44d1-af8d-c6ebfd77386e":{"apiKey":{"description":"Per-client API key (M2M). Presented as `Authorization: Bearer \u003ckey>`.","scheme":"bearer","type":"http","scopes":[],"schemeName":"apiKey"}}},"servers":{"76f2c082-b62c-4aea-a087-a046f1378296":{"url":"https://api.staging.purplelabelmd.com"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"description":"Per-client API key (M2M). Presented as `Authorization: Bearer \u003ckey>`.","scheme":"bearer","type":"http","scopes":[],"schemeName":"apiKey"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Per-client API key (M2M). Presented as `Authorization: Bearer \u003ckey>`.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"apiKey","name":"Authorization"}],"title":"apiKey"}]},"originalFileLocation":"openapi/public-openapi.json"},"subdomain":"purplelabelmd","siteName":"Purple Label MD","title":"Read back your brand's platform configuration - Purple Label MD","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-12T04:48:52.473Z","originalFileLocation":"api-reference/brand-configuration/read-back-your-brands-platform-configuration.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Returns a copy of the brand configuration as the platform holds it — your theme, your enabled therapies, and your redirect allowlist — for the brand you pass. Your offerings are not part of this configuration: list them with GET /v1/account/brands/{brand_id}/offerings, which serves each one\u0026#x27;s name, sku_id, therapy, entry mode, checkout link, price and readiness. This is the client-facing readback promised in the welcome kit. Key-scoped and tenant-isolated: you may read only a brand your API key owns; the brand_id in the path must match the X-Brand-Id you present (any mismatch, foreign, or unknown brand answers 404, never 403 — no cross-tenant existence leak). A brand with no configuration set yet answers 404.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Purple Label MD\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/purplelabelmd/TU4Si8SnCOFGjzcC/_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/purplelabelmd/TU4Si8SnCOFGjzcC/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/purplelabelmd/TU4Si8SnCOFGjzcC/_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/purplelabelmd/TU4Si8SnCOFGjzcC/_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/purplelabelmd/TU4Si8SnCOFGjzcC/_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/purplelabelmd/TU4Si8SnCOFGjzcC/_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/purplelabelmd/TU4Si8SnCOFGjzcC/_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/purplelabelmd/TU4Si8SnCOFGjzcC/_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/purplelabelmd/TU4Si8SnCOFGjzcC/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Read back your brand\u0026#x27;s platform configuration - Purple Label MD\">\u003cmeta data-mint-head property=\"og:description\" content=\"Returns a copy of the brand configuration as the platform holds it — your theme, your enabled therapies, and your redirect allowlist — for the brand you pass. Your offerings are not part of this configuration: list them with GET /v1/account/brands/{brand_id}/offerings, which serves each one\u0026#x27;s name, sku_id, therapy, entry mode, checkout link, price and readiness. This is the client-facing readback promised in the welcome kit. Key-scoped and tenant-isolated: you may read only a brand your API key owns; the brand_id in the path must match the X-Brand-Id you present (any mismatch, foreign, or unknown brand answers 404, never 403 — no cross-tenant existence leak). A brand with no configuration set yet answers 404.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Purple Label MD\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.purplelabelmd.com/api-reference/brand-configuration/read-back-your-brands-platform-configuration\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://purplelabelmd.mintlify.site/_mintlify/api/og/v2?division=Brand+configuration\u0026amp;title=Read+back+your+brand%27s+platform+configuration\u0026amp;description=Returns+a+copy+of+the+brand+configuration+as+the+platform+holds+it+%E2%80%94+your+theme%2C+your+enabled+therapies%2C+and+your+redirect+allowlist+%E2%80%94+for+the+brand+you+pass.+Y\u0026amp;theme=1cfc55286f6f85a93657a32a\u0026amp;signature=140627ff9c50ceefa72d660c25f529a0924fe0403b992c81d159b9f629c96dff\">\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 back your brand\u0026#x27;s platform configuration - Purple Label MD\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Returns a copy of the brand configuration as the platform holds it — your theme, your enabled therapies, and your redirect allowlist — for the brand you pass. Your offerings are not part of this configuration: list them with GET /v1/account/brands/{brand_id}/offerings, which serves each one\u0026#x27;s name, sku_id, therapy, entry mode, checkout link, price and readiness. This is the client-facing readback promised in the welcome kit. Key-scoped and tenant-isolated: you may read only a brand your API key owns; the brand_id in the path must match the X-Brand-Id you present (any mismatch, foreign, or unknown brand answers 404, never 403 — no cross-tenant existence leak). A brand with no configuration set yet answers 404.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://purplelabelmd.mintlify.site/_mintlify/api/og/v2?division=Brand+configuration\u0026amp;title=Read+back+your+brand%27s+platform+configuration\u0026amp;description=Returns+a+copy+of+the+brand+configuration+as+the+platform+holds+it+%E2%80%94+your+theme%2C+your+enabled+therapies%2C+and+your+redirect+allowlist+%E2%80%94+for+the+brand+you+pass.+Y\u0026amp;theme=1cfc55286f6f85a93657a32a\u0026amp;signature=140627ff9c50ceefa72d660c25f529a0924fe0403b992c81d159b9f629c96dff\">\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/purplelabelmd/TU4Si8SnCOFGjzcC/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Purple Label MD\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#6D28D9\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.purplelabelmd.com/api-reference/brand-configuration/read-back-your-brands-platform-configuration\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/brand-configuration/read-back-your-brands-platform-configuration.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.purplelabelmd.com/#organization\",\"name\":\"Purple Label MD\",\"url\":\"https://docs.purplelabelmd.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/purplelabelmd/1P9p4n7lsNL4z3Jc/logo/light.svg?fit=max\u0026auto=format\u0026n=1P9p4n7lsNL4z3Jc\u0026q=85\u0026s=3c0569e3f76e49e04d232187908c2e2e\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.purplelabelmd.com#website\",\"name\":\"Purple Label MD\",\"url\":\"https://docs.purplelabelmd.com\",\"publisher\":{\"@id\":\"https://docs.purplelabelmd.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.purplelabelmd.com/api-reference/brand-configuration/read-back-your-brands-platform-configuration#webpage\",\"url\":\"https://docs.purplelabelmd.com/api-reference/brand-configuration/read-back-your-brands-platform-configuration\",\"name\":\"Read back your brand's platform configuration\",\"description\":\"Returns a copy of the brand configuration as the platform holds it — your theme, your enabled therapies, and your redirect allowlist — for the brand you pass. Your offerings are not part of this configuration: list them with GET /v1/account/brands/{brand_id}/offerings, which serves each one's name, sku_id, therapy, entry mode, checkout link, price and readiness. This is the client-facing readback promised in the welcome kit. Key-scoped and tenant-isolated: you may read only a brand your API key owns; the brand_id in the path must match the X-Brand-Id you present (any mismatch, foreign, or unknown brand answers 404, never 403 — no cross-tenant existence leak). A brand with no configuration set yet answers 404.\",\"dateModified\":\"2026-11-12T04:48:52.473Z\",\"isPartOf\":{\"@id\":\"https://docs.purplelabelmd.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.purplelabelmd.com/api-reference/brand-configuration/read-back-your-brands-platform-configuration#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.purplelabelmd.com/api-reference/brand-configuration/read-back-your-brands-platform-configuration#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Purple Label MD\",\"item\":\"https://docs.purplelabelmd.com\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Read back your brand's platform configuration\",\"item\":\"https://docs.purplelabelmd.com/api-reference/brand-configuration/read-back-your-brands-platform-configuration\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.purplelabelmd.com/api-reference/brand-configuration/read-back-your-brands-platform-configuration#apireference\",\"headline\":\"Read back your brand's platform configuration\",\"name\":\"Read back your brand's platform configuration\",\"description\":\"Returns a copy of the brand configuration as the platform holds it — your theme, your enabled therapies, and your redirect allowlist — for the brand you pass. Your offerings are not part of this configuration: list them with GET /v1/account/brands/{brand_id}/offerings, which serves each one's name, sku_id, therapy, entry mode, checkout link, price and readiness. This is the client-facing readback promised in the welcome kit. Key-scoped and tenant-isolated: you may read only a brand your API key owns; the brand_id in the path must match the X-Brand-Id you present (any mismatch, foreign, or unknown brand answers 404, never 403 — no cross-tenant existence leak). A brand with no configuration set yet answers 404.\",\"url\":\"https://docs.purplelabelmd.com/api-reference/brand-configuration/read-back-your-brands-platform-configuration\",\"mainEntityOfPage\":{\"@id\":\"https://docs.purplelabelmd.com/api-reference/brand-configuration/read-back-your-brands-platform-configuration#webpage\"},\"dateModified\":\"2026-11-12T04:48:52.473Z\",\"publisher\":{\"@id\":\"https://docs.purplelabelmd.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.purplelabelmd.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Purple Label MD\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Purple Label MD\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/api-reference/brand-configuration/read-back-your-brands-platform-configuration.md","siteName":"Purple Label MD","nav":{"global":null,"tabs":[{"tab":"Guides","pages":[{"title":"Guides","href":"/pages/overview"}]},{"tab":"API reference","groups":[{"group":"Brand configuration","pages":[{"title":"Read back your brand's platform configuration","deprecated":null,"version":null,"openapi":"/openapi/public-openapi.json get /v1/account/brands/{brand_id}/config","href":"/api-reference/brand-configuration/read-back-your-brands-platform-configuration"},{"title":"Set your brand's display identity","description":"Sets or updates YOUR brand's display-identity block — the display name, the logo references, and the token-set the platform-controlled surfaces render — your brand's own terms of service and privacy policy links, and who holds your brand's consent documents (`consent_holder`), using your own API key. Send any of `display`, `legal_documents` and `consent_holder`. Only those are read here, so the theme, the redirect allowlist, and the charge topology stay operator-controlled and cannot be set through this surface. Before patients arrive your display name must be set, `consent_holder` must be chosen, and every document your served consents link to must be set by the holder you chose. The intake resolve reports `patient_readiness` naming anything still missing. The brand is the one your key owns (resolved from X-Brand-Id); the brand_id in the path must match it (any mismatch, foreign, or unknown brand answers 404, never 403). Validated UNCHANGED by the platform's brand-config validator: a `copy` key, an unknown display key, a non-https and non-root-relative logo reference, or an unknown token slot is refused (422, issues verbatim). The version is server-minted; the write is durable before it activates and audited (which principal, when). If the saved configuration changed since you loaded it, the write is refused with 409 `version-mismatch` and nothing is written: reload it and try again. If the durable store did not answer in time, the answer is 503 with the outcome unknown: the change may or may not have been saved, so read it again before retrying.","deprecated":null,"version":null,"openapi":"/openapi/public-openapi.json put /v1/account/brands/{brand_id}/config","href":"/api-reference/brand-configuration/set-your-brands-display-identity"},{"title":"List your brand's custom domains","deprecated":null,"version":null,"openapi":"/openapi/public-openapi.json get /v1/account/brands/{brand_id}/domains","href":"/api-reference/brand-configuration/list-your-brands-custom-domains"},{"title":"Read the browser origins your storefront may read this brand from","deprecated":null,"version":null,"openapi":"/openapi/public-openapi.json get /v1/account/brands/{brand_id}/domains/member/browser-origins","href":"/api-reference/brand-configuration/read-the-browser-origins-your-storefront-may-read-this-brand-from"},{"title":"Replace the browser origins your storefront may read this brand from","deprecated":null,"version":null,"openapi":"/openapi/public-openapi.json put /v1/account/brands/{brand_id}/domains/member/browser-origins","href":"/api-reference/brand-configuration/replace-the-browser-origins-your-storefront-may-read-this-brand-from"},{"title":"Read one custom-domain row","deprecated":null,"version":null,"openapi":"/openapi/public-openapi.json get /v1/account/brands/{brand_id}/domains/{kind}","href":"/api-reference/brand-configuration/read-one-custom-domain-row"},{"title":"Choose a custom domain for a kind (client self-serve)","deprecated":null,"version":null,"openapi":"/openapi/public-openapi.json put /v1/account/brands/{brand_id}/domains/{kind}","href":"/api-reference/brand-configuration/choose-a-custom-domain-for-a-kind-client-self-serve"},{"title":"Remove a custom domain (revert to the shared domain)","deprecated":null,"version":null,"openapi":"/openapi/public-openapi.json delete /v1/account/brands/{brand_id}/domains/{kind}","href":"/api-reference/brand-configuration/remove-a-custom-domain-revert-to-the-shared-domain"},{"title":"Verify a custom domain and advance provisioning","deprecated":null,"version":null,"openapi":"/openapi/public-openapi.json post /v1/account/brands/{brand_id}/domains/{kind}/verify","href":"/api-reference/brand-configuration/verify-a-custom-domain-and-advance-provisioning"}]},{"group":"Offering configuration","pages":[{"title":"List your brand's enabled offerings","deprecated":null,"version":null,"openapi":"/openapi/public-openapi.json get /v1/account/brands/{brand_id}/offerings","href":"/api-reference/offering-configuration/list-your-brands-enabled-offerings"},{"title":"Enable an offering for your brand","deprecated":null,"version":null,"openapi":"/openapi/public-openapi.json post /v1/account/brands/{brand_id}/offerings","href":"/api-reference/offering-configuration/enable-an-offering-for-your-brand"},{"title":"Choose the billing cadence of an offering on your brand","deprecated":null,"version":null,"openapi":"/openapi/public-openapi.json put /v1/account/brands/{brand_id}/offerings/{offering_ref}/billing-cadence","href":"/api-reference/offering-configuration/choose-the-billing-cadence-of-an-offering-on-your-brand"},{"title":"Set your brand's price for an offering","deprecated":null,"version":null,"openapi":"/openapi/public-openapi.json put /v1/account/brands/{brand_id}/pricing","href":"/api-reference/offering-configuration/set-your-brands-price-for-an-offering"},{"title":"Adopt the starter merchandising pack for your brand","deprecated":null,"version":null,"openapi":"/openapi/public-openapi.json post /v1/account/brands/{brand_id}/starter-merchandising","href":"/api-reference/offering-configuration/adopt-the-starter-merchandising-pack-for-your-brand"},{"title":"Read an offering's composed qualification questions","deprecated":null,"version":null,"openapi":"/openapi/public-openapi.json get /v1/account/offerings/{offering_ref}/qualification","href":"/api-reference/offering-configuration/read-an-offerings-composed-qualification-questions"},{"title":"Add a library question to an offering","deprecated":null,"version":null,"openapi":"/openapi/public-openapi.json post /v1/account/offerings/{offering_ref}/qualification","href":"/api-reference/offering-configuration/add-a-library-question-to-an-offering"},{"title":"Reorder an offering's qualification questions","deprecated":null,"version":null,"openapi":"/openapi/public-openapi.json put /v1/account/offerings/{offering_ref}/qualification/order","href":"/api-reference/offering-configuration/reorder-an-offerings-qualification-questions"},{"title":"Publish an offering's qualification questions","deprecated":null,"version":null,"openapi":"/openapi/public-openapi.json post /v1/account/offerings/{offering_ref}/qualification/publish","href":"/api-reference/offering-configuration/publish-an-offerings-qualification-questions"},{"title":"Remove an offering's qualification question","deprecated":null,"version":null,"openapi":"/openapi/public-openapi.json delete /v1/account/offerings/{offering_ref}/qualification/questions/{question_id}","href":"/api-reference/offering-configuration/remove-an-offerings-qualification-question"},{"title":"Edit an offering's qualification question","deprecated":null,"version":null,"openapi":"/openapi/public-openapi.json patch /v1/account/offerings/{offering_ref}/qualification/questions/{question_id}","href":"/api-reference/offering-configuration/edit-an-offerings-qualification-question"},{"title":"Set the display name and presentation copy for your offering","deprecated":null,"version":null,"openapi":"/openapi/public-openapi.json put /v1/account/offerings/{ref}/merchandising","href":"/api-reference/offering-configuration/set-the-display-name-and-presentation-copy-for-your-offering"},{"title":"List the facts a qualification question may bind","deprecated":null,"version":null,"openapi":"/openapi/public-openapi.json get /v1/account/question-library/facts","href":"/api-reference/offering-configuration/list-the-facts-a-qualification-question-may-bind"},{"title":"Create a new screening fact for your brand","deprecated":null,"version":null,"openapi":"/openapi/public-openapi.json post /v1/account/question-library/minted-facts","href":"/api-reference/offering-configuration/create-a-new-screening-fact-for-your-brand"},{"title":"List your brand's qualification question library","deprecated":null,"version":null,"openapi":"/openapi/public-openapi.json get /v1/account/question-library/questions","href":"/api-reference/offering-configuration/list-your-brands-qualification-question-library"},{"title":"Create a qualification library question","deprecated":null,"version":null,"openapi":"/openapi/public-openapi.json post /v1/account/question-library/questions","href":"/api-reference/offering-configuration/create-a-qualification-library-question"},{"title":"Delete a qualification library question","deprecated":null,"version":null,"openapi":"/openapi/public-openapi.json delete /v1/account/question-library/questions/{question_id}","href":"/api-reference/offering-configuration/delete-a-qualification-library-question"},{"title":"Edit a qualification library question","deprecated":null,"version":null,"openapi":"/openapi/public-openapi.json patch /v1/account/question-library/questions/{question_id}","href":"/api-reference/offering-configuration/edit-a-qualification-library-question"}]},{"group":"Onboarding","pages":[{"title":"Check whether your brand is ready to sell","deprecated":null,"version":null,"openapi":"/openapi/public-openapi.json get /v1/account/brands/{brand_id}/readiness","href":"/api-reference/onboarding/check-whether-your-brand-is-ready-to-sell"},{"title":"Read one offering's price and whether your brand can sell it","deprecated":null,"version":null,"openapi":"/openapi/public-openapi.json get /v1/account/brands/{brand_id}/storefront","href":"/api-reference/onboarding/read-one-offerings-price-and-whether-your-brand-can-sell-it"},{"title":"Read a client's onboarding progress","deprecated":null,"version":null,"openapi":"/openapi/public-openapi.json get /v1/onboardings/{onboarding_id}/progress","href":"/api-reference/onboarding/read-a-clients-onboarding-progress"}]},{"group":"Payments","pages":[{"title":"List your orders across all your brands","deprecated":null,"version":null,"openapi":"/openapi/public-openapi.json get /v1/account/orders","href":"/api-reference/payments/list-your-orders-across-all-your-brands"},{"title":"Read one of your orders by reference","deprecated":null,"version":null,"openapi":"/openapi/public-openapi.json get /v1/account/orders/{order_ref}","href":"/api-reference/payments/read-one-of-your-orders-by-reference"},{"title":"Start a checkout session and get a token to collect payment","deprecated":null,"version":null,"openapi":"/openapi/public-openapi.json post /v1/payments/checkout-sessions","href":"/api-reference/payments/start-a-checkout-session-and-get-a-token-to-collect-payment"},{"title":"Read the payment status of an order","deprecated":null,"version":null,"openapi":"/openapi/public-openapi.json get /v1/payments/{order_ref}/status","href":"/api-reference/payments/read-the-payment-status-of-an-order"}]},{"group":"Sessions \u0026 authentication","pages":[{"title":"Complete login and start the patient session","deprecated":null,"version":null,"openapi":"/openapi/public-openapi.json get /v1/auth/callback","href":"/api-reference/sessions-\u0026-authentication/complete-login-and-start-the-patient-session"},{"title":"Begin Universal Login and redirect to the login page","deprecated":null,"version":null,"openapi":"/openapi/public-openapi.json get /v1/auth/login","href":"/api-reference/sessions-\u0026-authentication/begin-universal-login-and-redirect-to-the-login-page"},{"title":"Log out and end the patient's session","deprecated":null,"version":null,"openapi":"/openapi/public-openapi.json get /v1/auth/logout","href":"/api-reference/sessions-\u0026-authentication/log-out-and-end-the-patients-session"}]},{"group":"Intake","pages":[{"title":"Record that your patient dropped off the questionnaire","deprecated":null,"version":null,"openapi":"/openapi/public-openapi.json post /v1/instrument/abandon","href":"/api-reference/intake/record-that-your-patient-dropped-off-the-questionnaire"},{"title":"Submit an answer and get the next question","deprecated":null,"version":null,"openapi":"/openapi/public-openapi.json post /v1/instrument/next","href":"/api-reference/intake/submit-an-answer-and-get-the-next-question"},{"title":"Start an intake session and get the first question","deprecated":null,"version":null,"openapi":"/openapi/public-openapi.json get /v1/instrument/resolve","href":"/api-reference/intake/start-an-intake-session-and-get-the-first-question"}]},{"group":"Addresses","pages":[{"title":"Resolve a selected address suggestion to a full address","deprecated":null,"version":null,"openapi":"/openapi/public-openapi.json get /v1/instrument/address/retrieve","href":"/api-reference/addresses/resolve-a-selected-address-suggestion-to-a-full-address"},{"title":"Suggest addresses as your patient types","deprecated":null,"version":null,"openapi":"/openapi/public-openapi.json get /v1/instrument/address/suggest","href":"/api-reference/addresses/suggest-addresses-as-your-patient-types"}]},{"group":"Enrollment","pages":[{"title":"Read a patient's public enrollment status","deprecated":null,"version":null,"openapi":"/openapi/public-openapi.json get /v1/journeys/{journey_id}/status","href":"/api-reference/enrollment/read-a-patients-public-enrollment-status"}]},{"group":"Webhooks","pages":[{"title":"List the webhook event types you can subscribe to","deprecated":null,"version":null,"openapi":"/openapi/public-openapi.json get /v1/webhooks/event-types","href":"/api-reference/webhooks/list-the-webhook-event-types-you-can-subscribe-to"},{"title":"List your webhook registrations","deprecated":null,"version":null,"openapi":"/openapi/public-openapi.json get /v1/webhooks/registrations","href":"/api-reference/webhooks/list-your-webhook-registrations"},{"title":"Register a webhook endpoint (signing secret shown once)","deprecated":null,"version":null,"openapi":"/openapi/public-openapi.json post /v1/webhooks/registrations","href":"/api-reference/webhooks/register-a-webhook-endpoint-signing-secret-shown-once"},{"title":"Read one of your webhook registrations","deprecated":null,"version":null,"openapi":"/openapi/public-openapi.json get /v1/webhooks/registrations/{registration_id}","href":"/api-reference/webhooks/read-one-of-your-webhook-registrations"},{"title":"Delete a webhook registration","deprecated":null,"version":null,"openapi":"/openapi/public-openapi.json delete /v1/webhooks/registrations/{registration_id}","href":"/api-reference/webhooks/delete-a-webhook-registration"},{"title":"Update a registration's URL, events, or enabled flag","deprecated":null,"version":null,"openapi":"/openapi/public-openapi.json patch /v1/webhooks/registrations/{registration_id}","href":"/api-reference/webhooks/update-a-registrations-url-events-or-enabled-flag"},{"title":"Send a test event to a registration","deprecated":null,"version":null,"openapi":"/openapi/public-openapi.json post /v1/webhooks/registrations/{registration_id}/test","href":"/api-reference/webhooks/send-a-test-event-to-a-registration"}]}]}]},"basePath":"","title":"Read back your brand's platform configuration - Purple Label MD","buildId":"dpl_DqYu5MPb49gWBBbUGgpHQUmCHY3P","deploymentId":"dpl_DqYu5MPb49gWBBbUGgpHQUmCHY3P","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-CybtLBIt.js","utils-BMLj2fvV.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-B6In562Y.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-Dr8Mfhp9.js","snippetPresets-2rmQvMVl.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-WMqJYdZj.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-CJ-MlPHu.js","shallow-dY3TMRCk.js","getApiPlaygroundDisplay-v-1B2bKm.js","CodeSnippet-BDhiTB7U.js","CodeSnippets-D9hnzQcS.js","Page-C4GwDT3_.js","getPastedJson-Th2V45jI.js","icon-BQXch1W9.js","MethodPill-BCqUneP3.js","DuplicateIcon-Q_-bhurZ.js","createIcon-DUjLHRqp.js","DynamicMarkdown-B-f2cqXQ.js","SectionHeading-Da5NsV4v.js","axios-vUo_bRtp.js","Markdown-D13FWkIM.js","clsx-D3Isdib3.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-C-XZBk9h.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink--qIqmmVG.js"]}