Move between ai_health_fitness and ai_only. Moving to ai_only ends the care team assignments
(care_team.changed); moving to the coached plan queues assignment (care_team.assigned follows).
Billing switches plan from the change. Error codes: plan_not_offered (422), same_plan,
invalid_status_transition (409).
A brand's server, one OAuth client per brand and environment. Get a token with the
client_credentials grant and send it as Authorization: Bearer <token>. Tokens last 1 hour.
A brand server reads status and ids only; it never reads clinical content. A platform partner holds one
client for all its brands and gets one token per brand, naming it with tenant_id.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"TeraRx API","description":"GLP-1 coaching for telehealth brands, their patients and their prescribers.","colors":{"primary":"#465FFF","light":"#7592FF","dark":"#2A31D8"},"logo":{"light":"https://mintcdn.com/tera-health/uWz_0YeC9jmRBnOf/logo/terarx-logo-on-light.webp?fit=max\u0026auto=format\u0026n=uWz_0YeC9jmRBnOf\u0026q=85\u0026s=e1b13d13ab2a8adf4dd39a95782a1e51","dark":"https://mintcdn.com/tera-health/uWz_0YeC9jmRBnOf/logo/terarx-logo-on-dark.webp?fit=max\u0026auto=format\u0026n=uWz_0YeC9jmRBnOf\u0026q=85\u0026s=e22a4d909beab942b4f07d1241ad3f50","href":"/introduction"},"favicon":"https://mintcdn.com/tera-health/Etya93TUDmx6XFCd/logo/terarx-mark-192.png?fit=max\u0026auto=format\u0026n=Etya93TUDmx6XFCd\u0026q=85\u0026s=8affa9c088be3e81c330395cc04d8772","api":{"playground":{"display":"interactive","proxy":false},"examples":{"languages":["curl","javascript","python"],"prefill":true}},"appearance":{"default":"light"},"navbar":{"primary":{"type":"button","label":"Quickstart","href":"/quickstart"}},"footer":{"links":[{"header":"Try it","items":[{"label":"Postman collection","href":"https://sandbox.rx.tera.health/docs/postman/terarx-v1.postman_collection.json"},{"label":"Postman environment","href":"https://sandbox.rx.tera.health/docs/postman/terarx-sandbox.postman_environment.json"},{"label":"Samples","href":"/samples"}]}]},"fonts":{"family":"Outfit"},"icons":{"library":"lucide"},"banner":{"content":"This contract is a draft for partner review. Every example uses synthetic data.","dismissible":true},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"tera-health","hasAudioNarration":false,"actualSubdomain":"tera-health","customDomains":["docs.tera.health"],"gitSource":{"type":"github","owner":"tera-engineering","repo":"terarx","deployBranch":"main","contentDirectory":"apps/docs","isPrivate":true,"mountPath":"","label":"","_id":"6ae13351e0799c60782bc4ce"},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af0a42e99ffa6db69675356","clientVersion":"0.0.4087","searchFilterCounts":[{"language":"default","tag":"API reference","count":139},{"language":"default","tag":"Webhooks","count":22},{"language":"default","tag":"Logging","count":21},{"language":"default","tag":"Brand logs","count":13},{"language":"default","tag":"Guides","count":12},{"language":"default","tag":"AI Coach","count":9},{"language":"default","tag":"Enrollments","count":9},{"language":"default","tag":"Protocols and plans","count":8},{"language":"default","tag":"Care messaging","count":7},{"language":"default","tag":"Library","count":6}]},"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":"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},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":true},"customCss":[],"page":{"pagePath":"api-reference/enrollments/change-plan","slug":"/api-reference/enrollments/change-plan","pageMetadata":{"title":"Change plan","description":"Move between `ai_health_fitness` and `ai_only`. Moving to `ai_only` ends the care team assignments\n(`care_team.changed`); moving to the coached plan queues assignment (`care_team.assigned` follows).\nBilling switches plan from the change. Error codes: `plan_not_offered` (422), `same_plan`,\n`invalid_status_transition` (409).\n\n\n**Scope:** `enrollments:write`.","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/enrollments/{enrollment_id}/plan","href":"/api-reference/enrollments/change-plan","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n strong: \"strong\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [\"Move between \", _jsx(_components.code, {\n children: \"ai_health_fitness\"\n }), \" and \", _jsx(_components.code, {\n children: \"ai_only\"\n }), \". Moving to \", _jsx(_components.code, {\n children: \"ai_only\"\n }), \" ends the care team assignments\\n(\", _jsx(_components.code, {\n children: \"care_team.changed\"\n }), \"); moving to the coached plan queues assignment (\", _jsx(_components.code, {\n children: \"care_team.assigned\"\n }), \" follows).\\nBilling switches plan from the change. Error codes: \", _jsx(_components.code, {\n children: \"plan_not_offered\"\n }), \" (422), \", _jsx(_components.code, {\n children: \"same_plan\"\n }), \",\\n\", _jsx(_components.code, {\n children: \"invalid_status_transition\"\n }), \" (409).\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"Scope:\"\n }), \" \", _jsx(_components.code, {\n children: \"enrollments:write\"\n }), \".\"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=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":"Change plan","description":"Move between `ai_health_fitness` and `ai_only`. Moving to `ai_only` ends the care team assignments\n(`care_team.changed`); moving to the coached plan queues assignment (`care_team.assigned` follows).\nBilling switches plan from the change. Error codes: `plan_not_offered` (422), `same_plan`,\n`invalid_status_transition` (409).\n\n\n**Scope:** `enrollments:write`.","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/enrollments/{enrollment_id}/plan","href":"/api-reference/enrollments/change-plan","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"changeEnrollmentPlan","tags":["Enrollments"],"summary":"Change plan","description":"Move between `ai_health_fitness` and `ai_only`. Moving to `ai_only` ends the care team assignments\n(`care_team.changed`); moving to the coached plan queues assignment (`care_team.assigned` follows).\nBilling switches plan from the change. Error codes: `plan_not_offered` (422), `same_plan`,\n`invalid_status_transition` (409).\n\n\n**Scope:** `enrollments:write`.","security":["861a3fdc-3c70-4659-b016-8ffd73a97a81"],"parameters":["e3d61e94-42c0-45a8-a98a-46c8a1144aeb"],"requestBody":"d7ff6a13-7a95-4f7c-ab3c-b8084aa5aca5","responses":{"200":"05e51f77-0462-45be-a2aa-87e2bb72311e","400":"2d575c68-e69d-4b87-906c-8d3a46721d0f","401":"da8eb794-edfa-42ab-b416-9c2c1107c3bc","403":"87b9bf00-074d-4c05-986d-37473cc19cde","404":"07881aa8-d567-4746-a138-bfceccb783cf","409":"f64ec3dd-a1db-4389-8cee-390a8156e4e7","422":"dd95c323-1e20-4bae-842f-696877744f8e","429":"d83043bd-152b-4989-98e2-00cb73639ebf"},"method":"post","type":"path","servers":["cbd6961c-1d43-4b1a-ace5-6c8cd05a19e6","d31af898-dd82-49ef-beb0-575942e35d63"],"path":"/v1/enrollments/{enrollment_id}/plan","baseUrlOptions":["https://sandbox.rx.tera.health","http://localhost:4010"],"title":"Change plan","codeSamples":[],"requestExampleLanguages":["bash","javascript","python"],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated","prefillPlaygroundWithExample":true,"prefillPlaygroundExamples":[{"body.plan_code":"ai_only","body.reason":"Patient downgraded at renewal"}],"disableProxy":true},"dependencies":{"parameters":{"e3d61e94-42c0-45a8-a98a-46c8a1144aeb":{"name":"Idempotency-Key","in":"header","required":false,"description":"Optional on this action. When sent, it works as on creating requests (24 hours, same body).","schema":{"type":"string","minLength":8,"maxLength":255,"x-default":"3b9e5a10-6c2f-4d7e-8a41-9f0e2d1c7b36","isRequired":false,"description":"Optional on this action. When sent, it works as on creating requests (24 hours, same body).","uniqueKey":"","typeLabel":"string"},"example":"3b9e5a10-6c2f-4d7e-8a41-9f0e2d1c7b36"},"a186fc36-b8e8-4a83-b63b-75fc0c287fb1":{"name":"enrollment_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","x-default":"0190f5c2-3a1b-7c4d-8e9f-a0b1c2d3e4f5","isRequired":true,"uniqueKey":"","typeLabel":"string\u003cuuid>"},"example":"0190f5c2-3a1b-7c4d-8e9f-a0b1c2d3e4f5"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["plan_code"],"properties":{"plan_code":{"type":"string","enum":["ai_only","ai_health_fitness"],"description":"* `ai_only`: the AI Coach only. Escalations go to the brand's prescriber as clinical flags.\n* `ai_health_fitness`: the AI Coach plus a health coach (nutrition) and a fitness coach.\n","example":"ai_health_fitness","isRequired":true,"uniqueKey":"plan_code","typeLabel":"enum\u003cstring>"},"reason":{"type":"string","maxLength":500,"description":"Kept on the enrollment history. Do not include health details.","example":"Patient upgraded at renewal","uniqueKey":"reason","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"plan_code":"ai_only","reason":"Patient downgraded at renewal"},"examples":{"Example":{"title":"Example","value":{"plan_code":"ai_only","reason":"Patient downgraded at renewal"}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"05e51f77-0462-45be-a2aa-87e2bb72311e":{"description":"The enrollment on its new plan.","content":{"application/json":{"schema":{"type":"object","description":"The brand server's view of an enrollment. Status and ids only, never clinical content.","required":["id","external_patient_id","plan_code","status","stage","risk_level","data_sharing","created_at","care_team","forms","protocols"],"properties":{"id":{"type":"string","format":"uuid","example":"0190f5c2-3a1b-7c4d-8e9f-a0b1c2d3e4f5","isRequired":true,"uniqueKey":"id","typeLabel":"string\u003cuuid>"},"external_patient_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7E]+$","description":"Your own identifier, printable ASCII without spaces.","example":"brand-pt-48213","isRequired":true,"uniqueKey":"external_patient_id","typeLabel":"string"},"plan_code":{"type":"string","enum":["ai_only","ai_health_fitness"],"description":"* `ai_only`: the AI Coach only. Escalations go to the brand's prescriber as clinical flags.\n* `ai_health_fitness`: the AI Coach plus a health coach (nutrition) and a fitness coach.\n","example":"ai_health_fitness","isRequired":true,"uniqueKey":"plan_code","typeLabel":"enum\u003cstring>"},"status":{"type":"string","enum":["pending_screening","ineligible","active","paused","cancelled","completed"],"example":"active","isRequired":true,"uniqueKey":"status","typeLabel":"enum\u003cstring>"},"stage":{"type":"string","enum":["created","awaiting_assignment","assigned","onboarding_pending","onboarding_completed","protocols_active"],"example":"onboarding_pending","isRequired":true,"uniqueKey":"stage","typeLabel":"enum\u003cstring>"},"risk_level":{"type":"string","enum":["normal","elevated","high"],"description":"Raised by clinical flags. Only a prescriber's resolve lowers it.","example":"normal","isRequired":true,"uniqueKey":"risk_level","typeLabel":"enum\u003cstring>"},"data_sharing":{"type":"boolean","example":true,"isRequired":true,"uniqueKey":"data_sharing","typeLabel":"boolean"},"created_at":{"type":"string","format":"date-time","description":"ISO 8601 in UTC.","example":"2026-10-26T14:05:00Z","isRequired":true,"uniqueKey":"created_at","typeLabel":"string\u003cdate-time>"},"care_team":{"type":"array","description":"Empty on `ai_only`.","items":{"type":"object","description":"One care role on the coached plan. Brand servers see whether it is filled, never who fills it.","required":["care_role","assigned"],"properties":{"care_role":{"type":"string","pattern":"^[a-z][a-z0-9_]*$","description":"A care role on the coached plan. Today `health_coach` or `fitness_coach`; more may be added.","example":"health_coach","isRequired":true,"uniqueKey":"care_team.items.[INDEX].care_role","typeLabel":"string"},"assigned":{"type":"boolean","example":true,"isRequired":true,"uniqueKey":"care_team.items.[INDEX].assigned","typeLabel":"boolean"},"assigned_at":{"oneOf":[{"type":"string","format":"date-time","example":"2026-10-21T15:12:00Z","uniqueKey":"care_team.items.[INDEX].assigned_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","example":"2026-10-21T15:12:00Z","uniqueKey":"care_team.items.[INDEX].assigned_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"care_team.items.[INDEX].assigned_at","typeLabel":"string\u003cdate-time> | null"}},"uniqueKey":"care_team.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"care_team","typeLabel":"object[]"},"forms":{"type":"array","items":{"type":"object","required":["form_assignment_id","form_code","purpose","status","blocks_onboarding"],"properties":{"form_assignment_id":{"type":"string","format":"uuid","example":"0190f5c3-7e21-7a40-9b11-5d6e7f8091a2","isRequired":true,"uniqueKey":"forms.items.[INDEX].form_assignment_id","typeLabel":"string\u003cuuid>"},"form_code":{"type":"string","example":"glp1_onboarding","isRequired":true,"uniqueKey":"forms.items.[INDEX].form_code","typeLabel":"string"},"purpose":{"type":"string","enum":["onboarding","check_in","eligibility"],"example":"onboarding","isRequired":true,"uniqueKey":"forms.items.[INDEX].purpose","typeLabel":"enum\u003cstring>"},"status":{"type":"string","enum":["pending","sent","in_progress","completed","expired","cancelled"],"example":"sent","isRequired":true,"uniqueKey":"forms.items.[INDEX].status","typeLabel":"enum\u003cstring>"},"blocks_onboarding":{"type":"boolean","example":true,"isRequired":true,"uniqueKey":"forms.items.[INDEX].blocks_onboarding","typeLabel":"boolean"},"due_at":{"oneOf":[{"type":"string","format":"date-time","example":"2026-10-24T15:00:00Z","uniqueKey":"forms.items.[INDEX].due_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","example":"2026-10-24T15:00:00Z","uniqueKey":"forms.items.[INDEX].due_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"forms.items.[INDEX].due_at","typeLabel":"string\u003cdate-time> | null"},"completed_at":{"oneOf":[{"type":"string","format":"date-time","example":null,"uniqueKey":"forms.items.[INDEX].completed_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","example":null,"uniqueKey":"forms.items.[INDEX].completed_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"forms.items.[INDEX].completed_at","typeLabel":"string\u003cdate-time> | null"}},"uniqueKey":"forms.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"forms","typeLabel":"object[]"},"protocols":{"type":"array","description":"Active protocols.","items":{"type":"object","description":"Timestamps only. The content is for the patient and the care team.","required":["protocol_id","type","version","published_at"],"properties":{"protocol_id":{"type":"string","format":"uuid","example":"0190f5c6-8b9c-7d01-8e23-4f5a6b7c8d90","isRequired":true,"uniqueKey":"protocols.items.[INDEX].protocol_id","typeLabel":"string\u003cuuid>"},"type":{"type":"string","enum":["nutrition","fitness","sleep","stress","lifestyle","supplements"],"example":"nutrition","isRequired":true,"uniqueKey":"protocols.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"version":{"type":"integer","example":1,"isRequired":true,"uniqueKey":"protocols.items.[INDEX].version","typeLabel":"integer"},"published_at":{"type":"string","format":"date-time","description":"ISO 8601 in UTC.","example":"2026-10-26T14:05:00Z","isRequired":true,"uniqueKey":"protocols.items.[INDEX].published_at","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"protocols.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"protocols","typeLabel":"object[]"},"external_order_id":{"oneOf":[{"type":"string","example":"ord-2026-10-000123","uniqueKey":"external_order_id.oneOf.0","typeLabel":"string"},{"type":"null","example":"ord-2026-10-000123","uniqueKey":"external_order_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"external_order_id","typeLabel":"string | null"},"purchased_at":{"oneOf":[{"type":"string","format":"date-time","example":"2026-10-21T14:58:00Z","uniqueKey":"purchased_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","example":"2026-10-21T14:58:00Z","uniqueKey":"purchased_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"purchased_at","typeLabel":"string\u003cdate-time> | null"},"assigned_at":{"oneOf":[{"type":"string","format":"date-time","description":"When the last care role was filled.","example":"2026-10-21T15:12:00Z","uniqueKey":"assigned_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"When the last care role was filled.","example":"2026-10-21T15:12:00Z","uniqueKey":"assigned_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"assigned_at","typeLabel":"string\u003cdate-time> | null"},"onboarding_completed_at":{"oneOf":[{"type":"string","format":"date-time","example":null,"uniqueKey":"onboarding_completed_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","example":null,"uniqueKey":"onboarding_completed_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"onboarding_completed_at","typeLabel":"string\u003cdate-time> | null"},"first_protocol_published_at":{"oneOf":[{"type":"string","format":"date-time","example":null,"uniqueKey":"first_protocol_published_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","example":null,"uniqueKey":"first_protocol_published_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"first_protocol_published_at","typeLabel":"string\u003cdate-time> | null"},"last_activity_at":{"oneOf":[{"type":"string","format":"date-time","description":"Last patient activity, updated about hourly.","example":"2026-10-26T13:40:00Z","uniqueKey":"last_activity_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"Last patient activity, updated about hourly.","example":"2026-10-26T13:40:00Z","uniqueKey":"last_activity_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"last_activity_at","typeLabel":"string\u003cdate-time> | null"},"ended_at":{"oneOf":[{"type":"string","format":"date-time","example":null,"uniqueKey":"ended_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","example":null,"uniqueKey":"ended_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"ended_at","typeLabel":"string\u003cdate-time> | null"}},"uniqueKey":"","typeLabel":"object"},"example":{"id":"0190f5c2-3a1b-7c4d-8e9f-a0b1c2d3e4f5","external_patient_id":"brand-pt-48213","external_order_id":"ord-2026-10-000123","plan_code":"ai_only","status":"active","stage":"protocols_active","risk_level":"normal","data_sharing":true,"purchased_at":"2026-10-21T14:58:00Z","created_at":"2026-10-21T14:58:02Z","assigned_at":"2026-10-21T15:12:00Z","onboarding_completed_at":"2026-10-22T09:30:00Z","first_protocol_published_at":"2026-10-23T16:45:00Z","last_activity_at":"2026-10-26T13:40:00Z","ended_at":null,"care_team":[],"forms":[],"protocols":[{"protocol_id":"0190f5c6-8b9c-7d01-8e23-4f5a6b7c8d90","type":"nutrition","version":1,"published_at":"2026-10-23T16:45:00Z"}]},"examples":{"Example":{"title":"Example","value":{"id":"0190f5c2-3a1b-7c4d-8e9f-a0b1c2d3e4f5","external_patient_id":"brand-pt-48213","external_order_id":"ord-2026-10-000123","plan_code":"ai_only","status":"active","stage":"protocols_active","risk_level":"normal","data_sharing":true,"purchased_at":"2026-10-21T14:58:00Z","created_at":"2026-10-21T14:58:02Z","assigned_at":"2026-10-21T15:12:00Z","onboarding_completed_at":"2026-10-22T09:30:00Z","first_protocol_published_at":"2026-10-23T16:45:00Z","last_activity_at":"2026-10-26T13:40:00Z","ended_at":null,"care_team":[],"forms":[],"protocols":[{"protocol_id":"0190f5c6-8b9c-7d01-8e23-4f5a6b7c8d90","type":"nutrition","version":1,"published_at":"2026-10-23T16:45:00Z"}]}}},"exampleType":"examples"}},"headers":{"X-Request-Id":{"description":"Unique id of this request. Echoes a valid `X-Request-Id` you sent, otherwise generated. Also in every problem body.","schema":{"type":"string"},"example":"req_019a3b2c-4d5e-7f60-8a1b-2c3d4e5f6a7b"},"RateLimit-Limit":{"description":"Requests allowed per minute for this client (600 by default, set per contract).","schema":{"type":"integer"},"example":600},"RateLimit-Remaining":{"description":"Requests left in the current window.","schema":{"type":"integer"},"example":587},"RateLimit-Reset":{"description":"Seconds until the window resets.","schema":{"type":"integer"},"example":42},"Idempotent-Replayed":{"description":"`true` when this response is a replay of an earlier request with the same `Idempotency-Key`.","schema":{"type":"boolean"},"example":true}},"exampleType":"examples"},"2d575c68-e69d-4b87-906c-8d3a46721d0f":{"description":"The request is malformed (unparseable JSON, wrong content type, unknown query parameter).","content":{"application/problem+json":{"schema":{"type":"object","description":"RFC 9457 problem details, sent as `application/problem+json` with every 4xx and 5xx.\nA problem never contains patient data: no names, no values from the request, no free text the caller sent.\n","required":["type","title","status","code","request_id"],"properties":{"type":{"type":"string","format":"uri-reference","description":"`about:blank` until the docs have a public home. Branch on `code`, not on `type` or `title`.","example":"about:blank","isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi-reference>"},"title":{"type":"string","description":"The HTTP status phrase.","example":"Not Found","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","minimum":400,"maximum":599,"example":404,"isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"code":{"type":"string","pattern":"^[a-z][a-z0-9_]*$","description":"Stable machine-readable code. New codes may be added; existing ones never change meaning.","example":"enrollment_not_found","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"request_id":{"type":"string","description":"Same value as the `X-Request-Id` response header. Quote it when you contact TeraRx.","example":"req_019a3b2c-4d5e-7f60-8a1b-2c3d4e5f6a7b","isRequired":true,"uniqueKey":"request_id","typeLabel":"string"},"detail":{"type":"string","description":"What went wrong, in words safe to log.","example":"No enrollment with this id is visible to this client.","uniqueKey":"detail","typeLabel":"string"},"instance":{"type":"string","format":"uri-reference","description":"The path of the request that failed.","example":"/v1/enrollments/0190f5c2-3a1b-7c4d-8e9f-a0b1c2d3e4f5","uniqueKey":"instance","typeLabel":"string\u003curi-reference>"},"errors":{"type":"array","description":"One entry per invalid field, for `validation_failed`.","items":{"type":"object","required":["pointer","code"],"properties":{"pointer":{"type":"string","description":"JSON Pointer (RFC 6901) to the field in the request body, or `path:\u003cname>`, `query:\u003cname>` or `header:\u003cname>` for a parameter.","example":"/patient/state_code","isRequired":true,"uniqueKey":"errors.items.[INDEX].pointer","typeLabel":"string"},"code":{"type":"string","enum":["required","invalid_type","invalid_format","out_of_range","too_long","unknown_value","not_allowed"],"example":"invalid_format","isRequired":true,"uniqueKey":"errors.items.[INDEX].code","typeLabel":"enum\u003cstring>"},"detail":{"type":"string","description":"What the field must look like. Never repeats the value that was sent.","example":"Must be a two-letter USPS state code.","uniqueKey":"errors.items.[INDEX].detail","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"errors","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"example":{"type":"about:blank","title":"Bad Request","status":400,"detail":"The request body is not valid JSON.","code":"malformed_request","request_id":"req_019a3b2c-4d5e-7f60-8a1b-2c3d4e5f6a7b"},"examples":{"Example":{"title":"Example","value":{"type":"about:blank","title":"Bad Request","status":400,"detail":"The request body is not valid JSON.","code":"malformed_request","request_id":"req_019a3b2c-4d5e-7f60-8a1b-2c3d4e5f6a7b"}}},"exampleType":"examples"}},"headers":{"X-Request-Id":{"description":"Unique id of this request. Echoes a valid `X-Request-Id` you sent, otherwise generated. Also in every problem body.","schema":{"type":"string"},"example":"req_019a3b2c-4d5e-7f60-8a1b-2c3d4e5f6a7b"},"RateLimit-Limit":{"description":"Requests allowed per minute for this client (600 by default, set per contract).","schema":{"type":"integer"},"example":600},"RateLimit-Remaining":{"description":"Requests left in the current window.","schema":{"type":"integer"},"example":587},"RateLimit-Reset":{"description":"Seconds until the window resets.","schema":{"type":"integer"},"example":42}},"exampleType":"examples"},"da8eb794-edfa-42ab-b416-9c2c1107c3bc":{"description":"The access token is missing, expired or revoked.","headers":{"X-Request-Id":{"description":"Unique id of this request. Echoes a valid `X-Request-Id` you sent, otherwise generated. Also in every problem body.","schema":{"type":"string"},"example":"req_019a3b2c-4d5e-7f60-8a1b-2c3d4e5f6a7b"},"RateLimit-Limit":{"description":"Requests allowed per minute for this client (600 by default, set per contract).","schema":{"type":"integer"},"example":600},"RateLimit-Remaining":{"description":"Requests left in the current window.","schema":{"type":"integer"},"example":587},"RateLimit-Reset":{"description":"Seconds until the window resets.","schema":{"type":"integer"},"example":42},"WWW-Authenticate":{"description":"The scheme to authenticate with.","schema":{"type":"string"},"example":"Bearer error=\"invalid_token\""}},"content":{"application/problem+json":{"schema":{"type":"object","description":"RFC 9457 problem details, sent as `application/problem+json` with every 4xx and 5xx.\nA problem never contains patient data: no names, no values from the request, no free text the caller sent.\n","required":["type","title","status","code","request_id"],"properties":{"type":{"type":"string","format":"uri-reference","description":"`about:blank` until the docs have a public home. Branch on `code`, not on `type` or `title`.","example":"about:blank","isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi-reference>"},"title":{"type":"string","description":"The HTTP status phrase.","example":"Not Found","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","minimum":400,"maximum":599,"example":404,"isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"code":{"type":"string","pattern":"^[a-z][a-z0-9_]*$","description":"Stable machine-readable code. New codes may be added; existing ones never change meaning.","example":"enrollment_not_found","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"request_id":{"type":"string","description":"Same value as the `X-Request-Id` response header. Quote it when you contact TeraRx.","example":"req_019a3b2c-4d5e-7f60-8a1b-2c3d4e5f6a7b","isRequired":true,"uniqueKey":"request_id","typeLabel":"string"},"detail":{"type":"string","description":"What went wrong, in words safe to log.","example":"No enrollment with this id is visible to this client.","uniqueKey":"detail","typeLabel":"string"},"instance":{"type":"string","format":"uri-reference","description":"The path of the request that failed.","example":"/v1/enrollments/0190f5c2-3a1b-7c4d-8e9f-a0b1c2d3e4f5","uniqueKey":"instance","typeLabel":"string\u003curi-reference>"},"errors":{"type":"array","description":"One entry per invalid field, for `validation_failed`.","items":{"type":"object","required":["pointer","code"],"properties":{"pointer":{"type":"string","description":"JSON Pointer (RFC 6901) to the field in the request body, or `path:\u003cname>`, `query:\u003cname>` or `header:\u003cname>` for a parameter.","example":"/patient/state_code","isRequired":true,"uniqueKey":"errors.items.[INDEX].pointer","typeLabel":"string"},"code":{"type":"string","enum":["required","invalid_type","invalid_format","out_of_range","too_long","unknown_value","not_allowed"],"example":"invalid_format","isRequired":true,"uniqueKey":"errors.items.[INDEX].code","typeLabel":"enum\u003cstring>"},"detail":{"type":"string","description":"What the field must look like. Never repeats the value that was sent.","example":"Must be a two-letter USPS state code.","uniqueKey":"errors.items.[INDEX].detail","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"errors","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"example":{"type":"about:blank","title":"Unauthorized","status":401,"detail":"The access token has expired. Request a new one.","code":"token_expired","request_id":"req_019a3b2c-4d5e-7f60-8a1b-2c3d4e5f6a7b"},"examples":{"Example":{"title":"Example","value":{"type":"about:blank","title":"Unauthorized","status":401,"detail":"The access token has expired. Request a new one.","code":"token_expired","request_id":"req_019a3b2c-4d5e-7f60-8a1b-2c3d4e5f6a7b"}}},"exampleType":"examples"}},"exampleType":"examples"},"87b9bf00-074d-4c05-986d-37473cc19cde":{"description":"The token is valid but lacks the scope, or the resource is not available on the patient's plan.","content":{"application/problem+json":{"schema":{"type":"object","description":"RFC 9457 problem details, sent as `application/problem+json` with every 4xx and 5xx.\nA problem never contains patient data: no names, no values from the request, no free text the caller sent.\n","required":["type","title","status","code","request_id"],"properties":{"type":{"type":"string","format":"uri-reference","description":"`about:blank` until the docs have a public home. Branch on `code`, not on `type` or `title`.","example":"about:blank","isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi-reference>"},"title":{"type":"string","description":"The HTTP status phrase.","example":"Not Found","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","minimum":400,"maximum":599,"example":404,"isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"code":{"type":"string","pattern":"^[a-z][a-z0-9_]*$","description":"Stable machine-readable code. New codes may be added; existing ones never change meaning.","example":"enrollment_not_found","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"request_id":{"type":"string","description":"Same value as the `X-Request-Id` response header. Quote it when you contact TeraRx.","example":"req_019a3b2c-4d5e-7f60-8a1b-2c3d4e5f6a7b","isRequired":true,"uniqueKey":"request_id","typeLabel":"string"},"detail":{"type":"string","description":"What went wrong, in words safe to log.","example":"No enrollment with this id is visible to this client.","uniqueKey":"detail","typeLabel":"string"},"instance":{"type":"string","format":"uri-reference","description":"The path of the request that failed.","example":"/v1/enrollments/0190f5c2-3a1b-7c4d-8e9f-a0b1c2d3e4f5","uniqueKey":"instance","typeLabel":"string\u003curi-reference>"},"errors":{"type":"array","description":"One entry per invalid field, for `validation_failed`.","items":{"type":"object","required":["pointer","code"],"properties":{"pointer":{"type":"string","description":"JSON Pointer (RFC 6901) to the field in the request body, or `path:\u003cname>`, `query:\u003cname>` or `header:\u003cname>` for a parameter.","example":"/patient/state_code","isRequired":true,"uniqueKey":"errors.items.[INDEX].pointer","typeLabel":"string"},"code":{"type":"string","enum":["required","invalid_type","invalid_format","out_of_range","too_long","unknown_value","not_allowed"],"example":"invalid_format","isRequired":true,"uniqueKey":"errors.items.[INDEX].code","typeLabel":"enum\u003cstring>"},"detail":{"type":"string","description":"What the field must look like. Never repeats the value that was sent.","example":"Must be a two-letter USPS state code.","uniqueKey":"errors.items.[INDEX].detail","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"errors","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"example":{"type":"about:blank","title":"Forbidden","status":403,"detail":"This operation needs the enrollments:write scope.","code":"insufficient_scope","request_id":"req_019a3b2c-4d5e-7f60-8a1b-2c3d4e5f6a7b"},"examples":{"Example":{"title":"Example","value":{"type":"about:blank","title":"Forbidden","status":403,"detail":"This operation needs the enrollments:write scope.","code":"insufficient_scope","request_id":"req_019a3b2c-4d5e-7f60-8a1b-2c3d4e5f6a7b"}}},"exampleType":"examples"}},"headers":{"X-Request-Id":{"description":"Unique id of this request. Echoes a valid `X-Request-Id` you sent, otherwise generated. Also in every problem body.","schema":{"type":"string"},"example":"req_019a3b2c-4d5e-7f60-8a1b-2c3d4e5f6a7b"},"RateLimit-Limit":{"description":"Requests allowed per minute for this client (600 by default, set per contract).","schema":{"type":"integer"},"example":600},"RateLimit-Remaining":{"description":"Requests left in the current window.","schema":{"type":"integer"},"example":587},"RateLimit-Reset":{"description":"Seconds until the window resets.","schema":{"type":"integer"},"example":42}},"exampleType":"examples"},"07881aa8-d567-4746-a138-bfceccb783cf":{"description":"No such resource, or it belongs to another tenant or patient. The API does not tell the two apart,\nso ids cannot be probed across brands.\n","content":{"application/problem+json":{"schema":{"type":"object","description":"RFC 9457 problem details, sent as `application/problem+json` with every 4xx and 5xx.\nA problem never contains patient data: no names, no values from the request, no free text the caller sent.\n","required":["type","title","status","code","request_id"],"properties":{"type":{"type":"string","format":"uri-reference","description":"`about:blank` until the docs have a public home. Branch on `code`, not on `type` or `title`.","example":"about:blank","isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi-reference>"},"title":{"type":"string","description":"The HTTP status phrase.","example":"Not Found","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","minimum":400,"maximum":599,"example":404,"isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"code":{"type":"string","pattern":"^[a-z][a-z0-9_]*$","description":"Stable machine-readable code. New codes may be added; existing ones never change meaning.","example":"enrollment_not_found","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"request_id":{"type":"string","description":"Same value as the `X-Request-Id` response header. Quote it when you contact TeraRx.","example":"req_019a3b2c-4d5e-7f60-8a1b-2c3d4e5f6a7b","isRequired":true,"uniqueKey":"request_id","typeLabel":"string"},"detail":{"type":"string","description":"What went wrong, in words safe to log.","example":"No enrollment with this id is visible to this client.","uniqueKey":"detail","typeLabel":"string"},"instance":{"type":"string","format":"uri-reference","description":"The path of the request that failed.","example":"/v1/enrollments/0190f5c2-3a1b-7c4d-8e9f-a0b1c2d3e4f5","uniqueKey":"instance","typeLabel":"string\u003curi-reference>"},"errors":{"type":"array","description":"One entry per invalid field, for `validation_failed`.","items":{"type":"object","required":["pointer","code"],"properties":{"pointer":{"type":"string","description":"JSON Pointer (RFC 6901) to the field in the request body, or `path:\u003cname>`, `query:\u003cname>` or `header:\u003cname>` for a parameter.","example":"/patient/state_code","isRequired":true,"uniqueKey":"errors.items.[INDEX].pointer","typeLabel":"string"},"code":{"type":"string","enum":["required","invalid_type","invalid_format","out_of_range","too_long","unknown_value","not_allowed"],"example":"invalid_format","isRequired":true,"uniqueKey":"errors.items.[INDEX].code","typeLabel":"enum\u003cstring>"},"detail":{"type":"string","description":"What the field must look like. Never repeats the value that was sent.","example":"Must be a two-letter USPS state code.","uniqueKey":"errors.items.[INDEX].detail","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"errors","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"example":{"type":"about:blank","title":"Not Found","status":404,"detail":"No enrollment with this id is visible to this client.","code":"enrollment_not_found","request_id":"req_019a3b2c-4d5e-7f60-8a1b-2c3d4e5f6a7b"},"examples":{"Example":{"title":"Example","value":{"type":"about:blank","title":"Not Found","status":404,"detail":"No enrollment with this id is visible to this client.","code":"enrollment_not_found","request_id":"req_019a3b2c-4d5e-7f60-8a1b-2c3d4e5f6a7b"}}},"exampleType":"examples"}},"headers":{"X-Request-Id":{"description":"Unique id of this request. Echoes a valid `X-Request-Id` you sent, otherwise generated. Also in every problem body.","schema":{"type":"string"},"example":"req_019a3b2c-4d5e-7f60-8a1b-2c3d4e5f6a7b"},"RateLimit-Limit":{"description":"Requests allowed per minute for this client (600 by default, set per contract).","schema":{"type":"integer"},"example":600},"RateLimit-Remaining":{"description":"Requests left in the current window.","schema":{"type":"integer"},"example":587},"RateLimit-Reset":{"description":"Seconds until the window resets.","schema":{"type":"integer"},"example":42}},"exampleType":"examples"},"f64ec3dd-a1db-4389-8cee-390a8156e4e7":{"description":"The request conflicts with the resource's current state, or a request with the same `Idempotency-Key` is still running.","content":{"application/problem+json":{"schema":{"type":"object","description":"RFC 9457 problem details, sent as `application/problem+json` with every 4xx and 5xx.\nA problem never contains patient data: no names, no values from the request, no free text the caller sent.\n","required":["type","title","status","code","request_id"],"properties":{"type":{"type":"string","format":"uri-reference","description":"`about:blank` until the docs have a public home. Branch on `code`, not on `type` or `title`.","example":"about:blank","isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi-reference>"},"title":{"type":"string","description":"The HTTP status phrase.","example":"Not Found","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","minimum":400,"maximum":599,"example":404,"isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"code":{"type":"string","pattern":"^[a-z][a-z0-9_]*$","description":"Stable machine-readable code. New codes may be added; existing ones never change meaning.","example":"enrollment_not_found","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"request_id":{"type":"string","description":"Same value as the `X-Request-Id` response header. Quote it when you contact TeraRx.","example":"req_019a3b2c-4d5e-7f60-8a1b-2c3d4e5f6a7b","isRequired":true,"uniqueKey":"request_id","typeLabel":"string"},"detail":{"type":"string","description":"What went wrong, in words safe to log.","example":"No enrollment with this id is visible to this client.","uniqueKey":"detail","typeLabel":"string"},"instance":{"type":"string","format":"uri-reference","description":"The path of the request that failed.","example":"/v1/enrollments/0190f5c2-3a1b-7c4d-8e9f-a0b1c2d3e4f5","uniqueKey":"instance","typeLabel":"string\u003curi-reference>"},"errors":{"type":"array","description":"One entry per invalid field, for `validation_failed`.","items":{"type":"object","required":["pointer","code"],"properties":{"pointer":{"type":"string","description":"JSON Pointer (RFC 6901) to the field in the request body, or `path:\u003cname>`, `query:\u003cname>` or `header:\u003cname>` for a parameter.","example":"/patient/state_code","isRequired":true,"uniqueKey":"errors.items.[INDEX].pointer","typeLabel":"string"},"code":{"type":"string","enum":["required","invalid_type","invalid_format","out_of_range","too_long","unknown_value","not_allowed"],"example":"invalid_format","isRequired":true,"uniqueKey":"errors.items.[INDEX].code","typeLabel":"enum\u003cstring>"},"detail":{"type":"string","description":"What the field must look like. Never repeats the value that was sent.","example":"Must be a two-letter USPS state code.","uniqueKey":"errors.items.[INDEX].detail","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"errors","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"example":{"type":"about:blank","title":"Conflict","status":409,"detail":"The enrollment is cancelled and cannot be paused.","code":"invalid_status_transition","request_id":"req_019a3b2c-4d5e-7f60-8a1b-2c3d4e5f6a7b"},"examples":{"Example":{"title":"Example","value":{"type":"about:blank","title":"Conflict","status":409,"detail":"The enrollment is cancelled and cannot be paused.","code":"invalid_status_transition","request_id":"req_019a3b2c-4d5e-7f60-8a1b-2c3d4e5f6a7b"}}},"exampleType":"examples"}},"headers":{"X-Request-Id":{"description":"Unique id of this request. Echoes a valid `X-Request-Id` you sent, otherwise generated. Also in every problem body.","schema":{"type":"string"},"example":"req_019a3b2c-4d5e-7f60-8a1b-2c3d4e5f6a7b"},"RateLimit-Limit":{"description":"Requests allowed per minute for this client (600 by default, set per contract).","schema":{"type":"integer"},"example":600},"RateLimit-Remaining":{"description":"Requests left in the current window.","schema":{"type":"integer"},"example":587},"RateLimit-Reset":{"description":"Seconds until the window resets.","schema":{"type":"integer"},"example":42}},"exampleType":"examples"},"dd95c323-1e20-4bae-842f-696877744f8e":{"description":"A path, query or header value, or the body, fails validation (for example an id that isn't a UUID, or a\nfield out of range), or an `Idempotency-Key` was reused with a different body. `errors` lists each problem.\n","content":{"application/problem+json":{"schema":{"type":"object","description":"RFC 9457 problem details, sent as `application/problem+json` with every 4xx and 5xx.\nA problem never contains patient data: no names, no values from the request, no free text the caller sent.\n","required":["type","title","status","code","request_id"],"properties":{"type":{"type":"string","format":"uri-reference","description":"`about:blank` until the docs have a public home. Branch on `code`, not on `type` or `title`.","example":"about:blank","isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi-reference>"},"title":{"type":"string","description":"The HTTP status phrase.","example":"Not Found","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","minimum":400,"maximum":599,"example":404,"isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"code":{"type":"string","pattern":"^[a-z][a-z0-9_]*$","description":"Stable machine-readable code. New codes may be added; existing ones never change meaning.","example":"enrollment_not_found","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"request_id":{"type":"string","description":"Same value as the `X-Request-Id` response header. Quote it when you contact TeraRx.","example":"req_019a3b2c-4d5e-7f60-8a1b-2c3d4e5f6a7b","isRequired":true,"uniqueKey":"request_id","typeLabel":"string"},"detail":{"type":"string","description":"What went wrong, in words safe to log.","example":"No enrollment with this id is visible to this client.","uniqueKey":"detail","typeLabel":"string"},"instance":{"type":"string","format":"uri-reference","description":"The path of the request that failed.","example":"/v1/enrollments/0190f5c2-3a1b-7c4d-8e9f-a0b1c2d3e4f5","uniqueKey":"instance","typeLabel":"string\u003curi-reference>"},"errors":{"type":"array","description":"One entry per invalid field, for `validation_failed`.","items":{"type":"object","required":["pointer","code"],"properties":{"pointer":{"type":"string","description":"JSON Pointer (RFC 6901) to the field in the request body, or `path:\u003cname>`, `query:\u003cname>` or `header:\u003cname>` for a parameter.","example":"/patient/state_code","isRequired":true,"uniqueKey":"errors.items.[INDEX].pointer","typeLabel":"string"},"code":{"type":"string","enum":["required","invalid_type","invalid_format","out_of_range","too_long","unknown_value","not_allowed"],"example":"invalid_format","isRequired":true,"uniqueKey":"errors.items.[INDEX].code","typeLabel":"enum\u003cstring>"},"detail":{"type":"string","description":"What the field must look like. Never repeats the value that was sent.","example":"Must be a two-letter USPS state code.","uniqueKey":"errors.items.[INDEX].detail","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"errors","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"validation_failed":{"title":"validation_failed","value":{"type":"about:blank","title":"Unprocessable Content","status":422,"detail":"1 field is invalid.","code":"validation_failed","request_id":"req_019a3b2c-4d5e-7f60-8a1b-2c3d4e5f6a7b","errors":[{"pointer":"/patient/state_code","code":"invalid_format","detail":"Must be a two-letter USPS state code."}]}},"invalid_path_parameter":{"title":"invalid_path_parameter","value":{"type":"about:blank","title":"Unprocessable Content","status":422,"detail":"1 parameter is invalid.","code":"validation_failed","request_id":"req_019a3b2c-4d5e-7f60-8a1b-2c3d4e5f6a7b","errors":[{"pointer":"path:enrollment_id","code":"invalid_format","detail":"Must be a UUID."}]}},"idempotency_key_reused":{"title":"idempotency_key_reused","value":{"type":"about:blank","title":"Unprocessable Content","status":422,"detail":"This Idempotency-Key was used with a different request body in the last 24 hours.","code":"idempotency_key_reused","request_id":"req_019a3b2c-4d5e-7f60-8a1b-2c3d4e5f6a7b"}}},"exampleType":"examples"}},"headers":{"X-Request-Id":{"description":"Unique id of this request. Echoes a valid `X-Request-Id` you sent, otherwise generated. Also in every problem body.","schema":{"type":"string"},"example":"req_019a3b2c-4d5e-7f60-8a1b-2c3d4e5f6a7b"},"RateLimit-Limit":{"description":"Requests allowed per minute for this client (600 by default, set per contract).","schema":{"type":"integer"},"example":600},"RateLimit-Remaining":{"description":"Requests left in the current window.","schema":{"type":"integer"},"example":587},"RateLimit-Reset":{"description":"Seconds until the window resets.","schema":{"type":"integer"},"example":42}},"exampleType":"examples"},"d83043bd-152b-4989-98e2-00cb73639ebf":{"description":"Rate limit or daily cap reached. Wait `Retry-After` seconds.","headers":{"X-Request-Id":{"description":"Unique id of this request. Echoes a valid `X-Request-Id` you sent, otherwise generated. Also in every problem body.","schema":{"type":"string"},"example":"req_019a3b2c-4d5e-7f60-8a1b-2c3d4e5f6a7b"},"RateLimit-Limit":{"description":"Requests allowed per minute for this client (600 by default, set per contract).","schema":{"type":"integer"},"example":600},"RateLimit-Remaining":{"description":"Requests left in the current window.","schema":{"type":"integer"},"example":587},"RateLimit-Reset":{"description":"Seconds until the window resets.","schema":{"type":"integer"},"example":42},"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"},"example":30}},"content":{"application/problem+json":{"schema":{"type":"object","description":"RFC 9457 problem details, sent as `application/problem+json` with every 4xx and 5xx.\nA problem never contains patient data: no names, no values from the request, no free text the caller sent.\n","required":["type","title","status","code","request_id"],"properties":{"type":{"type":"string","format":"uri-reference","description":"`about:blank` until the docs have a public home. Branch on `code`, not on `type` or `title`.","example":"about:blank","isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi-reference>"},"title":{"type":"string","description":"The HTTP status phrase.","example":"Not Found","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","minimum":400,"maximum":599,"example":404,"isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"code":{"type":"string","pattern":"^[a-z][a-z0-9_]*$","description":"Stable machine-readable code. New codes may be added; existing ones never change meaning.","example":"enrollment_not_found","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"request_id":{"type":"string","description":"Same value as the `X-Request-Id` response header. Quote it when you contact TeraRx.","example":"req_019a3b2c-4d5e-7f60-8a1b-2c3d4e5f6a7b","isRequired":true,"uniqueKey":"request_id","typeLabel":"string"},"detail":{"type":"string","description":"What went wrong, in words safe to log.","example":"No enrollment with this id is visible to this client.","uniqueKey":"detail","typeLabel":"string"},"instance":{"type":"string","format":"uri-reference","description":"The path of the request that failed.","example":"/v1/enrollments/0190f5c2-3a1b-7c4d-8e9f-a0b1c2d3e4f5","uniqueKey":"instance","typeLabel":"string\u003curi-reference>"},"errors":{"type":"array","description":"One entry per invalid field, for `validation_failed`.","items":{"type":"object","required":["pointer","code"],"properties":{"pointer":{"type":"string","description":"JSON Pointer (RFC 6901) to the field in the request body, or `path:\u003cname>`, `query:\u003cname>` or `header:\u003cname>` for a parameter.","example":"/patient/state_code","isRequired":true,"uniqueKey":"errors.items.[INDEX].pointer","typeLabel":"string"},"code":{"type":"string","enum":["required","invalid_type","invalid_format","out_of_range","too_long","unknown_value","not_allowed"],"example":"invalid_format","isRequired":true,"uniqueKey":"errors.items.[INDEX].code","typeLabel":"enum\u003cstring>"},"detail":{"type":"string","description":"What the field must look like. Never repeats the value that was sent.","example":"Must be a two-letter USPS state code.","uniqueKey":"errors.items.[INDEX].detail","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"errors","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"example":{"type":"about:blank","title":"Too Many Requests","status":429,"detail":"Rate limit of 600 requests per minute reached.","code":"rate_limited","request_id":"req_019a3b2c-4d5e-7f60-8a1b-2c3d4e5f6a7b"},"examples":{"Example":{"title":"Example","value":{"type":"about:blank","title":"Too Many Requests","status":429,"detail":"Rate limit of 600 requests per minute reached.","code":"rate_limited","request_id":"req_019a3b2c-4d5e-7f60-8a1b-2c3d4e5f6a7b"}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"861a3fdc-3c70-4659-b016-8ffd73a97a81":{"brandServer":{"type":"http","scheme":"bearer","description":"A brand's server, one OAuth client per brand and environment. Get a token with the\n`client_credentials` grant and send it as `Authorization: Bearer \u003ctoken>`. Tokens last 1 hour.\nA brand server reads status and ids only; it never reads clinical content. A platform partner holds one\nclient for all its brands and gets one token per brand, naming it with `tenant_id`.\n","x-default":"Bearer sandbox_any_token_works","scopes":["enrollments:write"],"schemeName":"brandServer"}}},"servers":{"cbd6961c-1d43-4b1a-ace5-6c8cd05a19e6":{"url":"https://sandbox.rx.tera.health","description":"Partner sandbox, synthetic data only"},"d31af898-dd82-49ef-beb0-575942e35d63":{"url":"http://localhost:4010","description":"Local mock (Prism on the bundled spec), answers with the examples in this spec"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"A brand's server, one OAuth client per brand and environment. Get a token with the\n`client_credentials` grant and send it as `Authorization: Bearer \u003ctoken>`. Tokens last 1 hour.\nA brand server reads status and ids only; it never reads clinical content. A platform partner holds one\nclient for all its brands and gets one token per brand, naming it with `tenant_id`.\n","x-default":"Bearer sandbox_any_token_works","scopes":["enrollments:write"],"schemeName":"brandServer"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"A brand's server, one OAuth client per brand and environment. Get a token with the\n`client_credentials` grant and send it as `Authorization: Bearer \u003ctoken>`. Tokens last 1 hour.\nA brand server reads status and ids only; it never reads clinical content. A platform partner holds one\nclient for all its brands and gets one token per brand, naming it with `tenant_id`.\n","format":"bearer","default":"Bearer sandbox_any_token_works","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"brandServer","name":"Authorization"}],"title":"brandServer"}]},"originalFileLocation":"openapi.json"},"subdomain":"tera-health","siteName":"TeraRx API","title":"Change plan - TeraRx API","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-08T16:32:54.502Z","originalFileLocation":"api-reference/enrollments/change-plan.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=\"light\"}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=\"Move between ai_health_fitness and ai_only. Moving to ai_only ends the care team assignments (care_team.changed); moving to the coached plan queues assignment (care_team.assigned follows). Billing switches plan from the change. Error codes: plan_not_offered (422), same_plan, invalid_status_transition (409). Scope: enrollments:write.\">\u003cmeta data-mint-head name=\"application-name\" content=\"TeraRx API\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/tera-health/arcliw8PG65YJ6Ho/_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/tera-health/arcliw8PG65YJ6Ho/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/tera-health/arcliw8PG65YJ6Ho/_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/tera-health/arcliw8PG65YJ6Ho/_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/tera-health/arcliw8PG65YJ6Ho/_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/tera-health/arcliw8PG65YJ6Ho/_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/tera-health/arcliw8PG65YJ6Ho/_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/tera-health/arcliw8PG65YJ6Ho/_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/tera-health/arcliw8PG65YJ6Ho/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Change plan - TeraRx API\">\u003cmeta data-mint-head property=\"og:description\" content=\"Move between ai_health_fitness and ai_only. Moving to ai_only ends the care team assignments (care_team.changed); moving to the coached plan queues assignment (care_team.assigned follows). Billing switches plan from the change. Error codes: plan_not_offered (422), same_plan, invalid_status_transition (409). Scope: enrollments:write.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"TeraRx API\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.tera.health/api-reference/enrollments/change-plan\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://tera-health.mintlify.site/_mintlify/api/og/v2?division=Enrollments\u0026amp;title=Change+plan\u0026amp;description=Move+between+%60ai_health_fitness%60+and+%60ai_only%60.+Moving+to+%60ai_only%60+ends+the+care+team+assignments%0A%28%60care_team.changed%60%29%3B+moving+to+the+coached+plan+queues+assi\u0026amp;theme=bbf8a14dc4b43edfc4280bbc\u0026amp;signature=48364e02618be5dd1d7e752fe02dc01aff91b6de523a554dbddb8971175f86e6\">\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=\"Change plan - TeraRx API\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Move between ai_health_fitness and ai_only. Moving to ai_only ends the care team assignments (care_team.changed); moving to the coached plan queues assignment (care_team.assigned follows). Billing switches plan from the change. Error codes: plan_not_offered (422), same_plan, invalid_status_transition (409). Scope: enrollments:write.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://tera-health.mintlify.site/_mintlify/api/og/v2?division=Enrollments\u0026amp;title=Change+plan\u0026amp;description=Move+between+%60ai_health_fitness%60+and+%60ai_only%60.+Moving+to+%60ai_only%60+ends+the+care+team+assignments%0A%28%60care_team.changed%60%29%3B+moving+to+the+coached+plan+queues+assi\u0026amp;theme=bbf8a14dc4b43edfc4280bbc\u0026amp;signature=48364e02618be5dd1d7e752fe02dc01aff91b6de523a554dbddb8971175f86e6\">\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/tera-health/arcliw8PG65YJ6Ho/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"TeraRx API\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#465FFF\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.tera.health/api-reference/enrollments/change-plan\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/enrollments/change-plan.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.tera.health/#organization\",\"name\":\"TeraRx API\",\"url\":\"https://docs.tera.health\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/tera-health/uWz_0YeC9jmRBnOf/logo/terarx-logo-on-light.webp?fit=max\u0026auto=format\u0026n=uWz_0YeC9jmRBnOf\u0026q=85\u0026s=e1b13d13ab2a8adf4dd39a95782a1e51\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.tera.health#website\",\"name\":\"TeraRx API\",\"url\":\"https://docs.tera.health\",\"publisher\":{\"@id\":\"https://docs.tera.health/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.tera.health/api-reference/enrollments/change-plan#webpage\",\"url\":\"https://docs.tera.health/api-reference/enrollments/change-plan\",\"name\":\"Change plan\",\"description\":\"Move between ai_health_fitness and ai_only. Moving to ai_only ends the care team assignments (care_team.changed); moving to the coached plan queues assignment (care_team.assigned follows). Billing switches plan from the change. Error codes: plan_not_offered (422), same_plan, invalid_status_transition (409). Scope: enrollments:write.\",\"dateModified\":\"2026-11-08T16:32:54.502Z\",\"isPartOf\":{\"@id\":\"https://docs.tera.health#website\"},\"breadcrumb\":{\"@id\":\"https://docs.tera.health/api-reference/enrollments/change-plan#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.tera.health/api-reference/enrollments/change-plan#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Enrollments\",\"item\":\"https://docs.tera.health/api-reference/enrollments/list-enrollments\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Change plan\",\"item\":\"https://docs.tera.health/api-reference/enrollments/change-plan\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.tera.health/api-reference/enrollments/change-plan#apireference\",\"headline\":\"Change plan\",\"name\":\"Change plan\",\"description\":\"Move between ai_health_fitness and ai_only. Moving to ai_only ends the care team assignments (care_team.changed); moving to the coached plan queues assignment (care_team.assigned follows). Billing switches plan from the change. Error codes: plan_not_offered (422), same_plan, invalid_status_transition (409). Scope: enrollments:write.\",\"url\":\"https://docs.tera.health/api-reference/enrollments/change-plan\",\"mainEntityOfPage\":{\"@id\":\"https://docs.tera.health/api-reference/enrollments/change-plan#webpage\"},\"dateModified\":\"2026-11-08T16:32:54.502Z\",\"publisher\":{\"@id\":\"https://docs.tera.health/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.tera.health#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"TeraRx API\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"TeraRx API","nav":{"global":null,"tabs":[{"tab":"Guides","pages":[{"title":"Guides","href":"/introduction"}]},{"tab":"API reference","groups":[{"group":"Auth","pages":[{"title":"Get an access token","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/oauth/token","href":"/api-reference/auth/get-an-access-token"}]},{"group":"Tenants","pages":[{"title":"List the brands this client may act for","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/tenants","href":"/api-reference/tenants/list-the-brands-this-client-may-act-for"}]},{"group":"Enrollments","pages":[{"title":"List enrollments","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/enrollments","href":"/api-reference/enrollments/list-enrollments"},{"title":"Enroll a patient","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/enrollments","href":"/api-reference/enrollments/enroll-a-patient"},{"title":"Get an enrollment","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/enrollments/{enrollment_id}","href":"/api-reference/enrollments/get-an-enrollment"},{"title":"Update the patient's details","description":"Contact details, demographics, time zone, conditions and the health profile, when they change in your system.\nChanges reach the care team at once and apply to plans and AI Coach replies generated after them.\n\nA new `state_code` matters: coaches are licensed per state. A coach not licensed in the new state is taken off the\npatient and a licensed one is found, so you get `care_team.changed` with `reason_code: state_change` (or\n`care_team.capacity_warning` if none is free). Until then that role shows `assigned: false` in the response.\n\nError codes: `enrollment_not_active` (409) for a cancelled or completed enrollment, `validation_failed` (422).\n\n\n**Scope:** `enrollments:write`.","deprecated":null,"version":null,"openapi":"/openapi.json patch /v1/enrollments/{enrollment_id}/patient","href":"/api-reference/enrollments/update-the-patients-details"},{"title":"Change plan","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/enrollments/{enrollment_id}/plan","href":"/api-reference/enrollments/change-plan"},{"title":"Pause","description":"Paused days are not billed. The patient keeps read access to their plan; reminders and new protocols stop.\nThe enrollment stays paused until you call resume.\nFires `enrollment.paused`. Error code: `invalid_status_transition` (409) unless the enrollment is `active`.\n\n\n**Scope:** `enrollments:write`.","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/enrollments/{enrollment_id}/pause","href":"/api-reference/enrollments/pause"},{"title":"Resume","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/enrollments/{enrollment_id}/resume","href":"/api-reference/enrollments/resume"},{"title":"Cancel","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/enrollments/{enrollment_id}/cancel","href":"/api-reference/enrollments/cancel"},{"title":"Ask the AI Coach to reach out","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/enrollments/{enrollment_id}/ai-coach-outreach","href":"/api-reference/enrollments/ask-the-ai-coach-to-reach-out"}]},{"group":"Treatment","pages":[{"title":"List medications","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/medications","href":"/api-reference/treatment/list-medications"},{"title":"List treatment versions","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/enrollments/{enrollment_id}/treatments","href":"/api-reference/treatment/list-treatment-versions"},{"title":"Update the treatment mirror","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/enrollments/{enrollment_id}/treatments","href":"/api-reference/treatment/update-the-treatment-mirror"}]},{"group":"Consent","pages":[{"title":"List consent records","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/enrollments/{enrollment_id}/consents","href":"/api-reference/consent/list-consent-records"},{"title":"Record consent proof","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/enrollments/{enrollment_id}/consents","href":"/api-reference/consent/record-consent-proof"}]},{"group":"Brand logs","pages":[{"title":"Send a meal log","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/enrollments/{enrollment_id}/meals","href":"/api-reference/brand-logs/send-a-meal-log"},{"title":"Send a workout log","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/enrollments/{enrollment_id}/workouts","href":"/api-reference/brand-logs/send-a-workout-log"},{"title":"Send a symptom log","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/enrollments/{enrollment_id}/symptoms","href":"/api-reference/brand-logs/send-a-symptom-log"},{"title":"Send an injection log","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/enrollments/{enrollment_id}/injections","href":"/api-reference/brand-logs/send-an-injection-log"},{"title":"Delete a meal log","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/enrollments/{enrollment_id}/meals/{external_id}","href":"/api-reference/brand-logs/delete-a-meal-log"},{"title":"Correct a meal log","deprecated":null,"version":null,"openapi":"/openapi.json patch /v1/enrollments/{enrollment_id}/meals/{external_id}","href":"/api-reference/brand-logs/correct-a-meal-log"},{"title":"Delete a workout log","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/enrollments/{enrollment_id}/workouts/{external_id}","href":"/api-reference/brand-logs/delete-a-workout-log"},{"title":"Correct a workout log","deprecated":null,"version":null,"openapi":"/openapi.json patch /v1/enrollments/{enrollment_id}/workouts/{external_id}","href":"/api-reference/brand-logs/correct-a-workout-log"},{"title":"Delete a symptom log","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/enrollments/{enrollment_id}/symptoms/{external_id}","href":"/api-reference/brand-logs/delete-a-symptom-log"},{"title":"Correct a symptom log","deprecated":null,"version":null,"openapi":"/openapi.json patch /v1/enrollments/{enrollment_id}/symptoms/{external_id}","href":"/api-reference/brand-logs/correct-a-symptom-log"},{"title":"Delete an injection log","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/enrollments/{enrollment_id}/injections/{external_id}","href":"/api-reference/brand-logs/delete-an-injection-log"},{"title":"Correct an injection log","deprecated":null,"version":null,"openapi":"/openapi.json patch /v1/enrollments/{enrollment_id}/injections/{external_id}","href":"/api-reference/brand-logs/correct-an-injection-log"},{"title":"Send daily values","deprecated":null,"version":null,"openapi":"/openapi.json patch /v1/enrollments/{enrollment_id}/daily-logs/{log_date}","href":"/api-reference/brand-logs/send-daily-values"}]},{"group":"Events","pages":[{"title":"Replay events","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/events","href":"/api-reference/events/replay-events"},{"title":"Get an event","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/events/{event_id}","href":"/api-reference/events/get-an-event"}]},{"group":"Reports","pages":[{"title":"Get the brand report","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/reports/brand","href":"/api-reference/reports/get-the-brand-report"}]},{"group":"Data requests","pages":[{"title":"List data requests","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/data-requests","href":"/api-reference/data-requests/list-data-requests"},{"title":"Create a data request","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/data-requests","href":"/api-reference/data-requests/create-a-data-request"},{"title":"Get a data request","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/data-requests/{data_request_id}","href":"/api-reference/data-requests/get-a-data-request"},{"title":"Get a download link","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/data-requests/{data_request_id}/export-link","href":"/api-reference/data-requests/get-a-download-link"},{"title":"Decide an amendment","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/data-requests/{data_request_id}/decision","href":"/api-reference/data-requests/decide-an-amendment"}]},{"group":"Patient","pages":[{"title":"Get my profile","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/patient","href":"/api-reference/patient/get-my-profile"},{"title":"Update my profile","deprecated":null,"version":null,"openapi":"/openapi.json patch /v1/patient","href":"/api-reference/patient/update-my-profile"},{"title":"Get my treatment","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/patient/treatment","href":"/api-reference/patient/get-my-treatment"},{"title":"Report my treatment (TeraRx Direct)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/patient/treatments","href":"/api-reference/patient/report-my-treatment-terarx-direct"},{"title":"List my legal documents","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/patient/legal-documents","href":"/api-reference/patient/list-my-legal-documents"},{"title":"Accept a legal document","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/patient/consents","href":"/api-reference/patient/accept-a-legal-document"}]},{"group":"Forms","pages":[{"title":"List my forms","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/patient/forms","href":"/api-reference/forms/list-my-forms"},{"title":"Get a form","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/patient/forms/{form_assignment_id}","href":"/api-reference/forms/get-a-form"},{"title":"Save a draft","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/patient/forms/{form_assignment_id}/draft","href":"/api-reference/forms/save-a-draft"},{"title":"Submit a form","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/patient/forms/{form_assignment_id}/submit","href":"/api-reference/forms/submit-a-form"}]},{"group":"Logging","pages":[{"title":"List my daily logs","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/patient/daily-logs","href":"/api-reference/logging/list-my-daily-logs"},{"title":"Log daily values","deprecated":null,"version":null,"openapi":"/openapi.json patch /v1/patient/daily-logs/{log_date}","href":"/api-reference/logging/log-daily-values"},{"title":"Start a meal photo upload","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/patient/meal-photos","href":"/api-reference/logging/start-a-meal-photo-upload"},{"title":"Analyze a meal photo","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/patient/meal-photos/{upload_id}/analysis","href":"/api-reference/logging/analyze-a-meal-photo"},{"title":"List my recent foods","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/patient/recent-foods","href":"/api-reference/logging/list-my-recent-foods"},{"title":"List my meals","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/patient/meals","href":"/api-reference/logging/list-my-meals"},{"title":"Log a meal","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/patient/meals","href":"/api-reference/logging/log-a-meal"},{"title":"Delete a meal log","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/patient/meals/{log_id}","href":"/api-reference/logging/delete-a-meal-log"},{"title":"Correct a meal log","deprecated":null,"version":null,"openapi":"/openapi.json patch /v1/patient/meals/{log_id}","href":"/api-reference/logging/correct-a-meal-log"},{"title":"List my workouts","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/patient/workouts","href":"/api-reference/logging/list-my-workouts"},{"title":"Log a workout","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/patient/workouts","href":"/api-reference/logging/log-a-workout"},{"title":"Delete a workout log","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/patient/workouts/{log_id}","href":"/api-reference/logging/delete-a-workout-log"},{"title":"Correct a workout log","deprecated":null,"version":null,"openapi":"/openapi.json patch /v1/patient/workouts/{log_id}","href":"/api-reference/logging/correct-a-workout-log"},{"title":"List my symptoms","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/patient/symptoms","href":"/api-reference/logging/list-my-symptoms"},{"title":"Log a symptom","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/patient/symptoms","href":"/api-reference/logging/log-a-symptom"},{"title":"Delete a symptom log","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/patient/symptoms/{log_id}","href":"/api-reference/logging/delete-a-symptom-log"},{"title":"Correct a symptom log","deprecated":null,"version":null,"openapi":"/openapi.json patch /v1/patient/symptoms/{log_id}","href":"/api-reference/logging/correct-a-symptom-log"},{"title":"List my injections","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/patient/injections","href":"/api-reference/logging/list-my-injections"},{"title":"Log an injection","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/patient/injections","href":"/api-reference/logging/log-an-injection"},{"title":"Delete an injection log","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/patient/injections/{log_id}","href":"/api-reference/logging/delete-an-injection-log"},{"title":"Correct an injection log","deprecated":null,"version":null,"openapi":"/openapi.json patch /v1/patient/injections/{log_id}","href":"/api-reference/logging/correct-an-injection-log"}]},{"group":"Progress","pages":[{"title":"Get today","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/patient/today","href":"/api-reference/progress/get-today"},{"title":"Get targets and progress for a day","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/patient/targets","href":"/api-reference/progress/get-targets-and-progress-for-a-day"},{"title":"Get a week's stats","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/patient/week-stats","href":"/api-reference/progress/get-a-weeks-stats"},{"title":"List my milestones","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/patient/milestones","href":"/api-reference/progress/list-my-milestones"},{"title":"Get a milestone","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/patient/milestones/{milestone_id}","href":"/api-reference/progress/get-a-milestone"}]},{"group":"Protocols and plans","pages":[{"title":"List my active protocols","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/patient/protocols","href":"/api-reference/protocols-and-plans/list-my-active-protocols"},{"title":"Get my active protocol of a type","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/patient/protocols/{protocol_type}","href":"/api-reference/protocols-and-plans/get-my-active-protocol-of-a-type"},{"title":"List versions of a protocol","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/patient/protocols/{protocol_type}/versions","href":"/api-reference/protocols-and-plans/list-versions-of-a-protocol"},{"title":"Get one version of a protocol","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/patient/protocols/{protocol_type}/versions/{version}","href":"/api-reference/protocols-and-plans/get-one-version-of-a-protocol"},{"title":"Get my meal plan","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/patient/meal-plan","href":"/api-reference/protocols-and-plans/get-my-meal-plan"},{"title":"Get my workout plan","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/patient/workout-plan","href":"/api-reference/protocols-and-plans/get-my-workout-plan"},{"title":"Rate a meal on my plan","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/patient/meal-plan/items/{item_id}/rating","href":"/api-reference/protocols-and-plans/rate-a-meal-on-my-plan"},{"title":"Clear a meal rating","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/patient/meal-plan/items/{item_id}/rating","href":"/api-reference/protocols-and-plans/clear-a-meal-rating"}]},{"group":"Meal swap","pages":[{"title":"Ask the AI Coach for swap options","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/patient/meal-plan/items/{item_id}/swap-options","href":"/api-reference/meal-swap/ask-the-ai-coach-for-swap-options"},{"title":"Swap a meal","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/patient/meal-plan/items/{item_id}/swap","href":"/api-reference/meal-swap/swap-a-meal"}]},{"group":"Library","pages":[{"title":"Browse recipes and exercises","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/patient/library","href":"/api-reference/library/browse-recipes-and-exercises"},{"title":"Get a recipe or exercise","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/patient/library/{library_item_id}","href":"/api-reference/library/get-a-recipe-or-exercise"},{"title":"Save a recipe or exercise","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/patient/library/{library_item_id}/favorite","href":"/api-reference/library/save-a-recipe-or-exercise"},{"title":"Remove a favorite","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/patient/library/{library_item_id}/favorite","href":"/api-reference/library/remove-a-favorite"},{"title":"Rate a recipe","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/patient/library/{library_item_id}/rating","href":"/api-reference/library/rate-a-recipe"},{"title":"Clear a recipe rating","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/patient/library/{library_item_id}/rating","href":"/api-reference/library/clear-a-recipe-rating"}]},{"group":"Care messaging","pages":[{"title":"List my care threads","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/patient/care/conversations","href":"/api-reference/care-messaging/list-my-care-threads"},{"title":"List messages in a care thread","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/patient/care/conversations/{conversation_id}/messages","href":"/api-reference/care-messaging/list-messages-in-a-care-thread"},{"title":"Message my coach","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/patient/care/conversations/{conversation_id}/messages","href":"/api-reference/care-messaging/message-my-coach"},{"title":"Mark a care thread read","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/patient/care/conversations/{conversation_id}/read","href":"/api-reference/care-messaging/mark-a-care-thread-read"},{"title":"Edit my last message","deprecated":null,"version":null,"openapi":"/openapi.json patch /v1/patient/messages/{message_id}","href":"/api-reference/care-messaging/edit-my-last-message"},{"title":"Set my reactions on a message","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/patient/messages/{message_id}/reactions","href":"/api-reference/care-messaging/set-my-reactions-on-a-message"},{"title":"Start a photo upload for my coach","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/patient/message-photos","href":"/api-reference/care-messaging/start-a-photo-upload-for-my-coach"}]},{"group":"Feedback","pages":[{"title":"List open feedback popups","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/patient/feedback-requests","href":"/api-reference/feedback/list-open-feedback-popups"},{"title":"Get a feedback popup","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/patient/feedback-requests/{feedback_request_id}","href":"/api-reference/feedback/get-a-feedback-popup"},{"title":"Answer a feedback popup","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/patient/feedback-requests/{feedback_request_id}/response","href":"/api-reference/feedback/answer-a-feedback-popup"},{"title":"Dismiss a feedback popup","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/patient/feedback-requests/{feedback_request_id}/dismiss","href":"/api-reference/feedback/dismiss-a-feedback-popup"}]},{"group":"AI Coach","pages":[{"title":"List my AI Coach chats","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/patient/ai-coach/conversations","href":"/api-reference/ai-coach/list-my-ai-coach-chats"},{"title":"Start an AI Coach chat","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/patient/ai-coach/conversations","href":"/api-reference/ai-coach/start-an-ai-coach-chat"},{"title":"List messages in an AI Coach chat","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/patient/ai-coach/conversations/{conversation_id}/messages","href":"/api-reference/ai-coach/list-messages-in-an-ai-coach-chat"},{"title":"Message the AI Coach","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/patient/ai-coach/conversations/{conversation_id}/messages","href":"/api-reference/ai-coach/message-the-ai-coach"},{"title":"Get the AI Coach's reply","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/patient/ai-coach/messages/{message_id}/reply","href":"/api-reference/ai-coach/get-the-ai-coachs-reply"},{"title":"Rate an AI Coach reply","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/patient/ai-coach/messages/{message_id}/feedback","href":"/api-reference/ai-coach/rate-an-ai-coach-reply"},{"title":"List what the AI Coach remembers","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/patient/ai-coach/memories","href":"/api-reference/ai-coach/list-what-the-ai-coach-remembers"},{"title":"Forget a memory","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/patient/ai-coach/memories/{memory_id}","href":"/api-reference/ai-coach/forget-a-memory"},{"title":"Confirm a memory","deprecated":null,"version":null,"openapi":"/openapi.json patch /v1/patient/ai-coach/memories/{memory_id}","href":"/api-reference/ai-coach/confirm-a-memory"}]},{"group":"Reminders","pages":[{"title":"List my reminders","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/patient/reminders","href":"/api-reference/reminders/list-my-reminders"},{"title":"Snooze a reminder","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/patient/reminders/{reminder_id}/snooze","href":"/api-reference/reminders/snooze-a-reminder"},{"title":"Get my reminder settings","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/patient/reminder-settings","href":"/api-reference/reminders/get-my-reminder-settings"},{"title":"Change my reminder settings","deprecated":null,"version":null,"openapi":"/openapi.json patch /v1/patient/reminder-settings","href":"/api-reference/reminders/change-my-reminder-settings"}]},{"group":"Clinical flags","pages":[{"title":"List clinical flags","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/clinical-flags","href":"/api-reference/clinical-flags/list-clinical-flags"},{"title":"Get a clinical flag","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/clinical-flags/{flag_id}","href":"/api-reference/clinical-flags/get-a-clinical-flag"},{"title":"Acknowledge a flag","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/clinical-flags/{flag_id}/acknowledge","href":"/api-reference/clinical-flags/acknowledge-a-flag"},{"title":"Resolve a flag","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/clinical-flags/{flag_id}/resolve","href":"/api-reference/clinical-flags/resolve-a-flag"}]},{"group":"Webhooks","pages":[{"title":"Enrollmentcreated","version":null,"deprecated":null,"openapi":"/openapi.json webhook enrollment.created","href":"/api-reference/webhooks/enrollmentcreated"},{"title":"Enrollmentstage changed","version":null,"deprecated":null,"openapi":"/openapi.json webhook enrollment.stage_changed","href":"/api-reference/webhooks/enrollmentstage_changed"},{"title":"Enrollmentpaused","version":null,"deprecated":null,"openapi":"/openapi.json webhook enrollment.paused","href":"/api-reference/webhooks/enrollmentpaused"},{"title":"Enrollmentresumed","version":null,"deprecated":null,"openapi":"/openapi.json webhook enrollment.resumed","href":"/api-reference/webhooks/enrollmentresumed"},{"title":"Enrollmentcancelled","version":null,"deprecated":null,"openapi":"/openapi.json webhook enrollment.cancelled","href":"/api-reference/webhooks/enrollmentcancelled"},{"title":"Care teamassigned","version":null,"deprecated":null,"openapi":"/openapi.json webhook care_team.assigned","href":"/api-reference/webhooks/care_teamassigned"},{"title":"Care teamchanged","version":null,"deprecated":null,"openapi":"/openapi.json webhook care_team.changed","href":"/api-reference/webhooks/care_teamchanged"},{"title":"Care teamcapacity warning","version":null,"deprecated":null,"openapi":"/openapi.json webhook care_team.capacity_warning","href":"/api-reference/webhooks/care_teamcapacity_warning"},{"title":"Care teamfeedback due","version":null,"deprecated":null,"openapi":"/openapi.json webhook care_team.feedback_due","href":"/api-reference/webhooks/care_teamfeedback_due"},{"title":"Formrequested","version":null,"deprecated":null,"openapi":"/openapi.json webhook form.requested","href":"/api-reference/webhooks/formrequested"},{"title":"Onboardingcompleted","version":null,"deprecated":null,"openapi":"/openapi.json webhook onboarding.completed","href":"/api-reference/webhooks/onboardingcompleted"},{"title":"Protocolpublished","version":null,"deprecated":null,"openapi":"/openapi.json webhook protocol.published","href":"/api-reference/webhooks/protocolpublished"},{"title":"Protocolupdated","version":null,"deprecated":null,"openapi":"/openapi.json webhook protocol.updated","href":"/api-reference/webhooks/protocolupdated"},{"title":"Messagecreated","version":null,"deprecated":null,"openapi":"/openapi.json webhook message.created","href":"/api-reference/webhooks/messagecreated"},{"title":"Clinicalflag raised","version":null,"deprecated":null,"openapi":"/openapi.json webhook clinical.flag_raised","href":"/api-reference/webhooks/clinicalflag_raised"},{"title":"Clinicalflag redelivered","version":null,"deprecated":null,"openapi":"/openapi.json webhook clinical.flag_redelivered","href":"/api-reference/webhooks/clinicalflag_redelivered"},{"title":"Clinicalflag acknowledged","version":null,"deprecated":null,"openapi":"/openapi.json webhook clinical.flag_acknowledged","href":"/api-reference/webhooks/clinicalflag_acknowledged"},{"title":"Clinicalflag resolved","version":null,"deprecated":null,"openapi":"/openapi.json webhook clinical.flag_resolved","href":"/api-reference/webhooks/clinicalflag_resolved"},{"title":"Patientdisengaged","version":null,"deprecated":null,"openapi":"/openapi.json webhook patient.disengaged","href":"/api-reference/webhooks/patientdisengaged"},{"title":"Patientmilestone reached","version":null,"deprecated":null,"openapi":"/openapi.json webhook patient.milestone_reached","href":"/api-reference/webhooks/patientmilestone_reached"},{"title":"Reminderdue","version":null,"deprecated":null,"openapi":"/openapi.json webhook reminder.due","href":"/api-reference/webhooks/reminderdue"},{"title":"Data requestcompleted","version":null,"deprecated":null,"openapi":"/openapi.json webhook data_request.completed","href":"/api-reference/webhooks/data_requestcompleted"}]}]}]},"basePath":"","title":"Change plan - TeraRx API","buildId":"dpl_FWZhTb2vab28gFGFH4ojka6qEznQ","deploymentId":"dpl_FWZhTb2vab28gFGFH4ojka6qEznQ","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-CBsVopKK.js","utils-DZAk68jJ.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-D32AYZrP.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-D_A5_cny.js","snippetPresets-xNRfS9th.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-BIB25-tq.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-CydJ4w4j.js","shallow-CYPBeQSG.js","getApiPlaygroundDisplay-A5xJVBOu.js","CodeSnippet-BVRTgi3m.js","CodeSnippets-DjD6BSlt.js","Page-Dr40SSJq.js","getPastedJson-D4V4JyrR.js","icon-uhcnG22T.js","MethodPill-CM-ZQdGH.js","DuplicateIcon-B_WnOiNf.js","createIcon-CJsb8utt.js","DynamicMarkdown-D-2HDKEp.js","SectionHeading-KP5xmMgQ.js","axios-vUo_bRtp.js","Markdown-D_k0dg6k.js","clsx-DK3K4Z1S.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-DE3EVdvd.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-fN9H9n9g.js"]}