Enables an offering for YOUR brand using your own API key — records the intent “enable offering Y for my brand” and answers with the enablement and its computed activation report. 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 — no cross-tenant existence leak). The offering_ref must already exist in the canonical catalog: an unknown offering is 404, never auto-created (nothing invented, nothing derived from the SKU code). Idempotency-Key is carried through — replay of the same request returns the original result. This is enablement configuration, NOT a price path (no money moves; pricing self-serve is a separate surface).
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.
the brand to enable the offering for (must match X-Brand-Id).
Pattern: ^brd_[A-Za-z0-9][A-Za-z0-9_-]*$
Body
application/json
The enable request body — the offering to enable for your brand. The brand is resolved from your key (the path brand_id must match X-Brand-Id) and is never carried here.
An enablement record with its computed activation status. The status is derived from the activation checks on every response — never stored and never writable; "active" cannot appear while any performed check fails, a check is unverifiable, or a check was not performed.
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/offering-configuration/enable-an-offering-for-your-brand","slug":"/api-reference/offering-configuration/enable-an-offering-for-your-brand","pageMetadata":{"title":"Enable an offering for your brand","description":"Enables an offering for YOUR brand using your own API key — records the intent \"enable offering Y for my brand\" and answers with the enablement and its computed activation report. 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 — no cross-tenant existence leak). The offering_ref must already exist in the canonical catalog: an unknown offering is 404, never auto-created (nothing invented, nothing derived from the SKU code). Idempotency-Key is carried through — replay of the same request returns the original result. This is enablement configuration, NOT a price path (no money moves; pricing self-serve is a separate surface).","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","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Enables an offering for YOUR brand using your own API key — records the intent “enable offering Y for my brand” and answers with the enablement and its computed activation report. 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 — no cross-tenant existence leak). The offering_ref must already exist in the canonical catalog: an unknown offering is 404, never auto-created (nothing invented, nothing derived from the SKU code). Idempotency-Key is carried through — replay of the same request returns the original result. This is enablement configuration, NOT a price path (no money moves; pricing self-serve is a separate surface).\"\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":"Enable an offering for your brand","description":"Enables an offering for YOUR brand using your own API key — records the intent \"enable offering Y for my brand\" and answers with the enablement and its computed activation report. 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 — no cross-tenant existence leak). The offering_ref must already exist in the canonical catalog: an unknown offering is 404, never auto-created (nothing invented, nothing derived from the SKU code). Idempotency-Key is carried through — replay of the same request returns the original result. This is enablement configuration, NOT a price path (no money moves; pricing self-serve is a separate surface).","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","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/_mintlify/custom/purplelabelmd/3b4d4a495cd0c48d/brand.js"],"openApiReferenceData":{"operation":{"description":"Enables an offering for YOUR brand using your own API key — records the intent \"enable offering Y for my brand\" and answers with the enablement and its computed activation report. 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 — no cross-tenant existence leak). The offering_ref must already exist in the canonical catalog: an unknown offering is 404, never auto-created (nothing invented, nothing derived from the SKU code). Idempotency-Key is carried through — replay of the same request returns the original result. This is enablement configuration, NOT a price path (no money moves; pricing self-serve is a separate surface).","operationId":"enableAccountOffering","parameters":["0b924ab0-d42a-4e32-9bbc-a766a558615d","ca671aa1-f695-4613-aec7-7dead59c2924","0ea5dc97-cfce-4a06-8b70-6808a169e8ef"],"requestBody":"aaa8a499-c7c1-48ff-b6b9-fade9e5d4bee","responses":{"200":"7cf947cf-d7eb-4891-91cd-9c1e42bf8071","201":"f554cb28-d8dc-44a3-a84c-e77330880170","400":"35e8a3b0-f222-4c34-9cca-907bfcc4e8ab","401":"682d7c94-1ce4-4102-9907-66e379902e65","404":"f1467090-1e39-4afb-9f51-e3c0a4cabe98","409":"24ed10f9-e66f-43a2-ba3e-c0f22cd23c56","502":"9d8bcbee-818e-476b-8977-1e0dc4d19a9f"},"security":["f20ef815-a335-4d89-b544-cf5dbc90d204"],"summary":"Enable an offering for your brand","tags":["Offering configuration"],"method":"post","type":"path","servers":["76f2c082-b62c-4aea-a087-a046f1378296"],"path":"/v1/account/brands/{brand_id}/offerings","baseUrlOptions":["https://api.staging.purplelabelmd.com"],"title":"Enable an offering for your brand","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"0b924ab0-d42a-4e32-9bbc-a766a558615d":{"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"}},"ca671aa1-f695-4613-aec7-7dead59c2924":{"description":"Send a unique value on every write. Do not assume that a repeated request with the same key is de-duplicated unless the operation says so.","in":"header","name":"Idempotency-Key","required":false,"schema":{"type":"string","isRequired":false,"description":"Send a unique value on every write. Do not assume that a repeated request with the same key is de-duplicated unless the operation says so.","uniqueKey":"","typeLabel":"string"}},"0ea5dc97-cfce-4a06-8b70-6808a169e8ef":{"description":"the brand to enable the offering for (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 to enable the offering for (must match X-Brand-Id).","uniqueKey":"","typeLabel":"string"}}},"requestBody":{"content":{"application/json":{"schema":{"description":"The enable request body — the offering to enable for your brand. The brand is resolved from your key (the path brand_id must match X-Brand-Id) and is never carried here.","properties":{"offering_ref":{"description":"the offering code to enable (offering_ref = the catalog offering/SKU code); must exist in the canonical catalog.","minLength":1,"type":"string","isRequired":true,"uniqueKey":"offering_ref","typeLabel":"string"}},"required":["offering_ref"],"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"offering_ref":"\u003cstring>"}}},"exampleType":"generated"}},"required":true,"exampleType":"generated"},"responses":{"7cf947cf-d7eb-4891-91cd-9c1e42bf8071":{"content":{"application/json":{"schema":{"properties":{"data":{"description":"An enablement record with its computed activation status. The status is derived from the activation checks on every response — never stored and never writable; \"active\" cannot appear while any performed check fails, a check is unverifiable, or a check was not performed.","properties":{"brand_id":{"type":"string","isRequired":true,"uniqueKey":"data.brand_id","typeLabel":"string"},"checks":{"items":{"description":"One row of the activation report. kind=performed carries a definitive result; kind=unverifiable means the check's source was unconfigured or unreachable, so activation is withheld rather than assumed; kind=named_pending names a check that is not yet ruled on (never fabricated, and never silently blocking).","properties":{"check":{"type":"string","isRequired":true,"uniqueKey":"data.checks.items.[INDEX].check","typeLabel":"string"},"detail":{"type":"string","isRequired":true,"uniqueKey":"data.checks.items.[INDEX].detail","typeLabel":"string"},"kind":{"enum":["performed","unverifiable","named_pending"],"type":"string","isRequired":true,"uniqueKey":"data.checks.items.[INDEX].kind","typeLabel":"enum\u003cstring>"},"blocking":{"description":"present exactly when kind=named_pending","type":"boolean","uniqueKey":"data.checks.items.[INDEX].blocking","typeLabel":"boolean"},"result":{"description":"present exactly when kind=performed","enum":["pass","fail"],"type":"string","uniqueKey":"data.checks.items.[INDEX].result","typeLabel":"enum\u003cstring>"}},"required":["check","kind","detail"],"type":"object","uniqueKey":"data.checks.items.[INDEX]","typeLabel":"object"},"type":"array","isRequired":true,"uniqueKey":"data.checks","typeLabel":"object[]"},"client_id":{"description":"the brand's parent client/tenant.","type":"string","isRequired":true,"uniqueKey":"data.client_id","typeLabel":"string"},"enabled_at":{"format":"date-time","type":"string","isRequired":true,"uniqueKey":"data.enabled_at","typeLabel":"string\u003cdate-time>"},"id":{"description":"opaque prefixed id (enb_…)","type":"string","isRequired":true,"uniqueKey":"data.id","typeLabel":"string"},"offering_ref":{"type":"string","isRequired":true,"uniqueKey":"data.offering_ref","typeLabel":"string"},"sku_id":{"type":"string","isRequired":true,"uniqueKey":"data.sku_id","typeLabel":"string"},"status":{"enum":["enabled_pending_activation","active"],"type":"string","isRequired":true,"uniqueKey":"data.status","typeLabel":"enum\u003cstring>"}},"required":["id","brand_id","client_id","sku_id","offering_ref","enabled_at","status","checks"],"type":"object","isRequired":true,"uniqueKey":"data","typeLabel":"object"}},"required":["data"],"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"data":{"brand_id":"\u003cstring>","checks":[{"check":"\u003cstring>","detail":"\u003cstring>","kind":"performed","blocking":true,"result":"pass"}],"client_id":"\u003cstring>","enabled_at":"2023-11-07T05:31:56Z","id":"\u003cstring>","offering_ref":"\u003cstring>","sku_id":"\u003cstring>","status":"enabled_pending_activation"}}}},"exampleType":"generated"}},"description":"the offering was already enabled — an idempotent re-enable or replay","exampleType":"generated"},"f554cb28-d8dc-44a3-a84c-e77330880170":{"content":{"application/json":{"schema":{"properties":{"data":{"description":"An enablement record with its computed activation status. The status is derived from the activation checks on every response — never stored and never writable; \"active\" cannot appear while any performed check fails, a check is unverifiable, or a check was not performed.","properties":{"brand_id":{"type":"string","isRequired":true,"uniqueKey":"data.brand_id","typeLabel":"string"},"checks":{"items":{"description":"One row of the activation report. kind=performed carries a definitive result; kind=unverifiable means the check's source was unconfigured or unreachable, so activation is withheld rather than assumed; kind=named_pending names a check that is not yet ruled on (never fabricated, and never silently blocking).","properties":{"check":{"type":"string","isRequired":true,"uniqueKey":"data.checks.items.[INDEX].check","typeLabel":"string"},"detail":{"type":"string","isRequired":true,"uniqueKey":"data.checks.items.[INDEX].detail","typeLabel":"string"},"kind":{"enum":["performed","unverifiable","named_pending"],"type":"string","isRequired":true,"uniqueKey":"data.checks.items.[INDEX].kind","typeLabel":"enum\u003cstring>"},"blocking":{"description":"present exactly when kind=named_pending","type":"boolean","uniqueKey":"data.checks.items.[INDEX].blocking","typeLabel":"boolean"},"result":{"description":"present exactly when kind=performed","enum":["pass","fail"],"type":"string","uniqueKey":"data.checks.items.[INDEX].result","typeLabel":"enum\u003cstring>"}},"required":["check","kind","detail"],"type":"object","uniqueKey":"data.checks.items.[INDEX]","typeLabel":"object"},"type":"array","isRequired":true,"uniqueKey":"data.checks","typeLabel":"object[]"},"client_id":{"description":"the brand's parent client/tenant.","type":"string","isRequired":true,"uniqueKey":"data.client_id","typeLabel":"string"},"enabled_at":{"format":"date-time","type":"string","isRequired":true,"uniqueKey":"data.enabled_at","typeLabel":"string\u003cdate-time>"},"id":{"description":"opaque prefixed id (enb_…)","type":"string","isRequired":true,"uniqueKey":"data.id","typeLabel":"string"},"offering_ref":{"type":"string","isRequired":true,"uniqueKey":"data.offering_ref","typeLabel":"string"},"sku_id":{"type":"string","isRequired":true,"uniqueKey":"data.sku_id","typeLabel":"string"},"status":{"enum":["enabled_pending_activation","active"],"type":"string","isRequired":true,"uniqueKey":"data.status","typeLabel":"enum\u003cstring>"}},"required":["id","brand_id","client_id","sku_id","offering_ref","enabled_at","status","checks"],"type":"object","isRequired":true,"uniqueKey":"data","typeLabel":"object"}},"required":["data"],"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"data":{"brand_id":"\u003cstring>","checks":[{"check":"\u003cstring>","detail":"\u003cstring>","kind":"performed","blocking":true,"result":"pass"}],"client_id":"\u003cstring>","enabled_at":"2023-11-07T05:31:56Z","id":"\u003cstring>","offering_ref":"\u003cstring>","sku_id":"\u003cstring>","status":"enabled_pending_activation"}}}},"exampleType":"generated"}},"description":"enablement intent recorded; the body carries the computed activation report","exampleType":"generated"},"35e8a3b0-f222-4c34-9cca-907bfcc4e8ab":{"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":"a malformed body (missing/empty offering_ref) or a missing Idempotency-Key","exampleType":"generated"},"682d7c94-1ce4-4102-9907-66e379902e65":{"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"},"f1467090-1e39-4afb-9f51-e3c0a4cabe98":{"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":"unknown or foreign brand (identical for both — 404, never 403; no cross-tenant existence leak), or the offering_ref is absent from the canonical catalog (never auto-created)","exampleType":"generated"},"24ed10f9-e66f-43a2-ba3e-c0f22cd23c56":{"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":"Idempotency-Key reused with a materially different request (code IDEMPOTENCY_CONFLICT)","exampleType":"generated"},"9d8bcbee-818e-476b-8977-1e0dc4d19a9f":{"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":"the catalog service is temporarily unavailable (nothing enabled; retryable)","exampleType":"generated"}},"security":{"f20ef815-a335-4d89-b544-cf5dbc90d204":{"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":"Enable an offering for your brand - Purple Label MD","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-12T04:48:52.632Z","originalFileLocation":"api-reference/offering-configuration/enable-an-offering-for-your-brand.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=\"Enables an offering for YOUR brand using your own API key — records the intent \u0026quot;enable offering Y for my brand\u0026quot; and answers with the enablement and its computed activation report. 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 — no cross-tenant existence leak). The offering_ref must already exist in the canonical catalog: an unknown offering is 404, never auto-created (nothing invented, nothing derived from the SKU code). Idempotency-Key is carried through — replay of the same request returns the original result. This is enablement configuration, NOT a price path (no money moves; pricing self-serve is a separate surface).\">\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=\"Enable an offering for your brand - Purple Label MD\">\u003cmeta data-mint-head property=\"og:description\" content=\"Enables an offering for YOUR brand using your own API key — records the intent \u0026quot;enable offering Y for my brand\u0026quot; and answers with the enablement and its computed activation report. 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 — no cross-tenant existence leak). The offering_ref must already exist in the canonical catalog: an unknown offering is 404, never auto-created (nothing invented, nothing derived from the SKU code). Idempotency-Key is carried through — replay of the same request returns the original result. This is enablement configuration, NOT a price path (no money moves; pricing self-serve is a separate surface).\">\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/offering-configuration/enable-an-offering-for-your-brand\">\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=Offering+configuration\u0026amp;title=Enable+an+offering+for+your+brand\u0026amp;description=Enables+an+offering+for+YOUR+brand+using+your+own+API+key+%E2%80%94+records+the+intent+%22enable+offering+Y+for+my+brand%22+and+answers+with+the+enablement+and+its+computed\u0026amp;theme=1cfc55286f6f85a93657a32a\u0026amp;signature=40ecedae7bf124f4cd4763a7e127142941660553b77bb35ec74c09e14af9e4ae\">\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=\"Enable an offering for your brand - Purple Label MD\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Enables an offering for YOUR brand using your own API key — records the intent \u0026quot;enable offering Y for my brand\u0026quot; and answers with the enablement and its computed activation report. 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 — no cross-tenant existence leak). The offering_ref must already exist in the canonical catalog: an unknown offering is 404, never auto-created (nothing invented, nothing derived from the SKU code). Idempotency-Key is carried through — replay of the same request returns the original result. This is enablement configuration, NOT a price path (no money moves; pricing self-serve is a separate surface).\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://purplelabelmd.mintlify.site/_mintlify/api/og/v2?division=Offering+configuration\u0026amp;title=Enable+an+offering+for+your+brand\u0026amp;description=Enables+an+offering+for+YOUR+brand+using+your+own+API+key+%E2%80%94+records+the+intent+%22enable+offering+Y+for+my+brand%22+and+answers+with+the+enablement+and+its+computed\u0026amp;theme=1cfc55286f6f85a93657a32a\u0026amp;signature=40ecedae7bf124f4cd4763a7e127142941660553b77bb35ec74c09e14af9e4ae\">\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/offering-configuration/enable-an-offering-for-your-brand\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/offering-configuration/enable-an-offering-for-your-brand.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/offering-configuration/enable-an-offering-for-your-brand#webpage\",\"url\":\"https://docs.purplelabelmd.com/api-reference/offering-configuration/enable-an-offering-for-your-brand\",\"name\":\"Enable an offering for your brand\",\"description\":\"Enables an offering for YOUR brand using your own API key — records the intent \\\"enable offering Y for my brand\\\" and answers with the enablement and its computed activation report. 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 — no cross-tenant existence leak). The offering_ref must already exist in the canonical catalog: an unknown offering is 404, never auto-created (nothing invented, nothing derived from the SKU code). Idempotency-Key is carried through — replay of the same request returns the original result. This is enablement configuration, NOT a price path (no money moves; pricing self-serve is a separate surface).\",\"dateModified\":\"2026-11-12T04:48:52.632Z\",\"isPartOf\":{\"@id\":\"https://docs.purplelabelmd.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.purplelabelmd.com/api-reference/offering-configuration/enable-an-offering-for-your-brand#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.purplelabelmd.com/api-reference/offering-configuration/enable-an-offering-for-your-brand#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Offering configuration\",\"item\":\"https://docs.purplelabelmd.com/api-reference/offering-configuration/list-your-brands-enabled-offerings\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Enable an offering for your brand\",\"item\":\"https://docs.purplelabelmd.com/api-reference/offering-configuration/enable-an-offering-for-your-brand\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.purplelabelmd.com/api-reference/offering-configuration/enable-an-offering-for-your-brand#apireference\",\"headline\":\"Enable an offering for your brand\",\"name\":\"Enable an offering for your brand\",\"description\":\"Enables an offering for YOUR brand using your own API key — records the intent \\\"enable offering Y for my brand\\\" and answers with the enablement and its computed activation report. 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 — no cross-tenant existence leak). The offering_ref must already exist in the canonical catalog: an unknown offering is 404, never auto-created (nothing invented, nothing derived from the SKU code). Idempotency-Key is carried through — replay of the same request returns the original result. This is enablement configuration, NOT a price path (no money moves; pricing self-serve is a separate surface).\",\"url\":\"https://docs.purplelabelmd.com/api-reference/offering-configuration/enable-an-offering-for-your-brand\",\"mainEntityOfPage\":{\"@id\":\"https://docs.purplelabelmd.com/api-reference/offering-configuration/enable-an-offering-for-your-brand#webpage\"},\"dateModified\":\"2026-11-12T04:48:52.632Z\",\"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/offering-configuration/enable-an-offering-for-your-brand.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","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","description":"Lists every offering enabled for YOUR brand, with what a storefront needs to show and link each one: its name, its sku_id, its therapy, its entry mode (questions-first or checkout-first), its checkout link, the price shown for it or an explicit \"no price yet\", and its readiness. Use your own API key. 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, exactly as enabling an offering does). A brand with no enabled offerings answers 200 with an empty list, never an error. Each field is read from the part of the platform that owns it, never recomputed here; when a part could not be read, the field is null and its name is listed in that offering's not_measured, and the offering itself is still listed. This read changes nothing and moves no money.","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","description":"Chooses how members are billed for one offering on one of your brands: `monthly` (a charge every month of the medication's supply) or `upfront` (one charge for the whole term). Only a cadence that is compatible with the offering's supply and its shipping rules is accepted; any other is refused with the reason and the cadences you can choose instead. You never set the shipping cadence: it always follows the offering's supply, and a body that names one is refused. When exactly one billing cadence is compatible, the platform sets it for you when the offering is enabled and already has its copy, or when its copy is adopted, so this call is needed only when you have a choice. The offering must be enabled on the brand and have its copy (adopt the starter merchandising, or publish your own) before a cadence can be chosen. Choosing again replaces your earlier choice; the platform never overwrites a choice you made. Every change is recorded in your brand's audit trail, attributed to your account. Repeating a completed request with the same Idempotency-Key returns the original result.","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":"Enable an offering for your brand - 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"]}