Requires habits:write. Updates a standard habit template in the authenticated company. Supplied text maps replace all translations for that field; omitted fields are retained. The first update of a legacy template requires defaultLanguage. Changing the default requires that language in every retained non-empty map. Already applied client habits are not changed.
Public API access token issued by /public/v1/oauth/token. Example: Authorization: Bearer fspt_.... Each resource request rechecks the token company's current provider access. Disabling access blocks existing tokens with 403 auth.provider_unavailable.
Required for Public API write requests. Reusing the same key with the same method, path, and body replays the stored successful response; reusing it with a different request returns 409 idempotency.conflict.
Up to 25 languages per field. Valid BCP 47 keys are canonicalized; duplicate canonical keys and und are rejected. Every non-empty map must contain defaultLanguage. Required text cannot be empty. A supplied map replaces all languages for that field; {} clears an optional field. Null maps, null values and plain strings are rejected.
Required on create and on the first public text update of an unlocalized resource. Omit on later PATCH requests to preserve it. Changing it requires the new language in all retained non-empty text maps. Declaring a legacy source language does not translate the source text.
Up to 25 languages per field. Valid BCP 47 keys are canonicalized; duplicate canonical keys and und are rejected. Every non-empty map must contain defaultLanguage. Required text cannot be empty. A supplied map replaces all languages for that field; {} clears an optional field. Null maps, null values and plain strings are rejected.
Up to 25 languages per field. Valid BCP 47 keys are canonicalized; duplicate canonical keys and und are rejected. Every non-empty map must contain defaultLanguage. Required text cannot be empty. A supplied map replaces all languages for that field; {} clears an optional field. Null maps, null values and plain strings are rejected.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"FITsociety Developer APIs","description":"Documentation for the FITsociety MCP server and Public API.","colors":{"primary":"#16A34A","light":"#16A34A","dark":"#22C55E"},"logo":{"light":"https://mintcdn.com/fitsociety/CnaqVMsnx_iq_5Yj/images/fitsociety-logo.svg?fit=max\u0026auto=format\u0026n=CnaqVMsnx_iq_5Yj\u0026q=85\u0026s=c298734266929d78f32cb0214a963497","dark":"https://mintcdn.com/fitsociety/CnaqVMsnx_iq_5Yj/images/fitsociety-logo-dark.svg?fit=max\u0026auto=format\u0026n=CnaqVMsnx_iq_5Yj\u0026q=85\u0026s=eaedbe1dc8a5dd6cc8a5e8e40460966e","href":"/"},"favicon":"https://mintcdn.com/fitsociety/kVb9cR0HNNKm2fV7/images/favicon.jpg?fit=max\u0026auto=format\u0026n=kVb9cR0HNNKm2fV7\u0026q=85\u0026s=f9562e98d9f7bd4fe9eb792e48d6ed3e","api":{"openapi":"openapi/public-v1.json","params":{"expanded":"closed"},"playground":{"display":"interactive"},"examples":{"defaults":"required","languages":["curl","javascript","python"]}},"appearance":{"default":"system"},"search":{"prompt":"Search developer docs..."},"contextual":{"options":["copy","download-spec","chatgpt","claude"],"display":"header"},"interaction":{"drilldown":false},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"fitsociety","hasAudioNarration":false,"actualSubdomain":"fitsociety","customDomains":["docs.fitsociety.io"],"gitSource":{"type":"github","owner":"fitsociety","repo":"backend","deployBranch":"main","contentDirectory":"mintlify","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6adca91ba9f6cfc069427f8a","collectionId":"e8308b34-1e8c-4b93-881b-d755d23e8c45","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6adca91ba9f6cfc069427f8a"},"feedback":{"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6adca91ba9f6cfc069427f8a","clientVersion":"0.0.3965","searchFilterCounts":[{"language":"default","tag":"API Reference","count":495},{"language":"default","tag":"Workout","count":300},{"language":"default","tag":"Client plans","count":75},{"language":"default","tag":"Plans","count":61},{"language":"default","tag":"MCP","count":56},{"language":"default","tag":"Finance","count":49},{"language":"default","tag":"Library","count":47},{"language":"default","tag":"Calendar and bookings","count":38},{"language":"default","tag":"Progress","count":36},{"language":"default","tag":"Tools","count":35}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"hasChatPermissions":false,"hasWebMcpPermissions":false,"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":"editor-v7-file-tree","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":"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":"pause-universal-search-reconcile","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":"per-site-search-delta","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":"editor-private-page-search","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":"editor-nav-generations","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":"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":"byok-sep-25","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":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","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}],"isAtlas":false,"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/habits/update-standard-habit-template","slug":"/api-reference/habits/update-standard-habit-template","pageMetadata":{"title":"Update standard habit template","description":"Requires `habits:write`. Updates a standard habit template in the authenticated company. Supplied text maps replace all translations for that field; omitted fields are retained. The first update of a legacy template requires defaultLanguage. Changing the default requires that language in every retained non-empty map. Already applied client habits are not changed.","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json patch /public/v1/habit-templates/{templateId}","href":"/api-reference/habits/update-standard-habit-template","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_components.p, {\n children: [\"Requires \", _jsx(_components.code, {\n children: \"habits:write\"\n }), \". Updates a standard habit template in the authenticated company. Supplied text maps replace all translations for that field; omitted fields are retained. The first update of a legacy template requires defaultLanguage. Changing the default requires that language in every retained non-empty map. Already applied client habits are not changed.\"]\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":"Update standard habit template","description":"Requires `habits:write`. Updates a standard habit template in the authenticated company. Supplied text maps replace all translations for that field; omitted fields are retained. The first update of a legacy template requires defaultLanguage. Changing the default requires that language in every retained non-empty map. Already applied client habits are not changed.","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json patch /public/v1/habit-templates/{templateId}","href":"/api-reference/habits/update-standard-habit-template","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["Habits"],"summary":"Update standard habit template","description":"Requires `habits:write`. Updates a standard habit template in the authenticated company. Supplied text maps replace all translations for that field; omitted fields are retained. The first update of a legacy template requires defaultLanguage. Changing the default requires that language in every retained non-empty map. Already applied client habits are not changed.","security":["7807c630-0def-4551-a00a-938d9928ef73"],"parameters":["587bed21-5c6c-4c95-9f2d-4b2c153f9408","1a5ebd7e-18e0-4b2e-a763-316cd558b6de"],"requestBody":"139f6927-c9e5-4c83-9a76-f26d81e03b68","responses":{"200":"7dc2455a-de57-47dc-a4a4-c6d9db465574","400":"f92a3b9f-0a0e-4bd6-ab85-d4f1c4a3e598","401":"208a3bde-1851-43bb-9ac4-b801de919956","403":"ae802433-6c27-46f4-8500-623ddfc4c0a4","404":"d21bca45-2acb-441e-b083-e8c07cb00d68","409":"8fd15628-cdc6-429a-aad9-e09feac091a9","422":"8ac9e517-5951-419e-96d0-f37b3399ee7c","429":"27beb3af-b8d6-4041-85bb-8a2eede016ec","500":"a2e8a772-f330-46c2-aad9-95886f8295ea"},"x-codeSamples":[{"lang":"cURL","label":"cURL","source":"curl -X PATCH \"https://api.fitsociety.io/public/v1/habit-templates/\u003ctemplateId>\" \\\n -H \"Authorization: Bearer \u003caccess_token>\" \\\n -H \"Idempotency-Key: habit-template-update-20260826\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": { \"en\": \"Drink 2.5 liters of water\" },\n \"goalValue\": 2.5\n }'"}],"operationId":"patchPublicV1HabitTemplatesByTemplateId","method":"patch","type":"path","servers":["674d7162-a1f6-469d-bae7-7a1309ce690b"],"path":"/public/v1/habit-templates/{templateId}","baseUrlOptions":["https://api.fitsociety.io"],"title":"Update standard habit template","codeSamples":[{"label":"cURL","lang":"cURL","source":"curl -X PATCH \"https://api.fitsociety.io/public/v1/habit-templates/\u003ctemplateId>\" \\\n -H \"Authorization: Bearer \u003caccess_token>\" \\\n -H \"Idempotency-Key: habit-template-update-20260826\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": { \"en\": \"Drink 2.5 liters of water\" },\n \"goalValue\": 2.5\n }'"}],"requestExampleLanguages":["bash","javascript","python"],"requiredOnlyExamples":true,"requestExampleType":"codeSamples","responseExampleType":"generated"},"dependencies":{"parameters":{"587bed21-5c6c-4c95-9f2d-4b2c153f9408":{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":1,"maxLength":200,"example":"booking-create-20260714-001","isRequired":true,"description":"Required for Public API write requests. Reusing the same key with the same method, path, and body replays the stored successful response; reusing it with a different request returns `409 idempotency.conflict`.","uniqueKey":"","typeLabel":"string"},"description":"Required for Public API write requests. Reusing the same key with the same method, path, and body replays the stored successful response; reusing it with a different request returns `409 idempotency.conflict`."},"1a5ebd7e-18e0-4b2e-a763-316cd558b6de":{"name":"templateId","in":"path","required":true,"schema":{"type":"string","example":"66f7b8b1e13c8d25f4d3d90a","isRequired":true,"uniqueKey":"","typeLabel":"string"}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":[],"properties":{"icon":{"type":"string","uniqueKey":"icon","typeLabel":"string"},"color":{"type":"string","uniqueKey":"color","typeLabel":"string"},"name":{"type":"object","maxProperties":25,"description":"Up to 25 languages per field. Valid BCP 47 keys are canonicalized; duplicate canonical keys and und are rejected. Every non-empty map must contain defaultLanguage. Required text cannot be empty. A supplied map replaces all languages for that field; {} clears an optional field. Null maps, null values and plain strings are rejected.","additionalProperties":{"type":"string","minLength":1,"maxLength":80,"uniqueKey":"name.additionalProperties","typeLabel":"string"},"uniqueKey":"name","typeLabel":"object"},"defaultLanguage":{"type":"string","maxLength":80,"description":"Required on create and on the first public text update of an unlocalized resource. Omit on later PATCH requests to preserve it. Changing it requires the new language in all retained non-empty text maps. Declaring a legacy source language does not translate the source text.","uniqueKey":"defaultLanguage","typeLabel":"string"},"description":{"type":"object","maxProperties":25,"description":"Up to 25 languages per field. Valid BCP 47 keys are canonicalized; duplicate canonical keys and und are rejected. Every non-empty map must contain defaultLanguage. Required text cannot be empty. A supplied map replaces all languages for that field; {} clears an optional field. Null maps, null values and plain strings are rejected.","additionalProperties":{"type":"string","minLength":1,"maxLength":500,"uniqueKey":"description.additionalProperties","typeLabel":"string"},"uniqueKey":"description","typeLabel":"object"},"habitType":{"type":"string","enum":["build","quit"],"uniqueKey":"habitType","typeLabel":"enum\u003cstring>"},"goalPeriod":{"type":"string","enum":["day","week","month",""],"uniqueKey":"goalPeriod","typeLabel":"enum\u003cstring>"},"logMode":{"type":"string","enum":["value"],"uniqueKey":"logMode","typeLabel":"enum\u003cstring>"},"goalValue":{"oneOf":[{"type":"number","uniqueKey":"goalValue.oneOf.0","typeLabel":"number"},{"type":"string","uniqueKey":"goalValue.oneOf.1","typeLabel":"string"},{"type":"null","uniqueKey":"goalValue.oneOf.2","typeLabel":"null"}],"uniqueKey":"goalValue","typeLabel":"number | string | null"},"allowableValue":{"oneOf":[{"type":"number","uniqueKey":"allowableValue.oneOf.0","typeLabel":"number"},{"type":"string","uniqueKey":"allowableValue.oneOf.1","typeLabel":"string"},{"type":"null","uniqueKey":"allowableValue.oneOf.2","typeLabel":"null"}],"uniqueKey":"allowableValue","typeLabel":"number | string | null"},"unit":{"type":"string","uniqueKey":"unit","typeLabel":"string"},"customUnitName":{"type":"object","maxProperties":25,"description":"Up to 25 languages per field. Valid BCP 47 keys are canonicalized; duplicate canonical keys and und are rejected. Every non-empty map must contain defaultLanguage. Required text cannot be empty. A supplied map replaces all languages for that field; {} clears an optional field. Null maps, null values and plain strings are rejected.","additionalProperties":{"type":"string","minLength":1,"maxLength":80,"uniqueKey":"customUnitName.additionalProperties","typeLabel":"string"},"uniqueKey":"customUnitName","typeLabel":"object"},"taskDaysMode":{"type":"string","enum":["everyday","weekdays","weekends","specific"],"uniqueKey":"taskDaysMode","typeLabel":"enum\u003cstring>"},"specificDaysOfWeek":{"type":"array","items":{"type":"string","uniqueKey":"specificDaysOfWeek.items.[INDEX]","typeLabel":"string"},"uniqueKey":"specificDaysOfWeek","typeLabel":"string[]"},"reminders":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["time"],"properties":{"time":{"type":"string","isRequired":true,"uniqueKey":"reminders.items.[INDEX].time","typeLabel":"string"},"enabled":{"type":"boolean","uniqueKey":"reminders.items.[INDEX].enabled","typeLabel":"boolean"},"message":{"type":"object","maxProperties":25,"description":"Up to 25 languages per field. Valid BCP 47 keys are canonicalized; duplicate canonical keys and und are rejected. Every non-empty map must contain defaultLanguage. Required text cannot be empty. A supplied map replaces all languages for that field; {} clears an optional field. Null maps, null values and plain strings are rejected.","additionalProperties":{"type":"string","minLength":1,"maxLength":200,"uniqueKey":"reminders.items.[INDEX].message.additionalProperties","typeLabel":"string"},"uniqueKey":"reminders.items.[INDEX].message","typeLabel":"object"}},"uniqueKey":"reminders.items.[INDEX]","typeLabel":"object"},"uniqueKey":"reminders","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"example":{"name":{"en":"Drink 2.5 liters of water"},"goalValue":2.5,"reminders":[{"enabled":true,"time":"08:30","message":{"en":"Drink water"}}]},"examples":{"Example":{"title":"Example","value":{"name":{"en":"Drink 2.5 liters of water"},"goalValue":2.5,"reminders":[{"enabled":true,"time":"08:30","message":{"en":"Drink water"}}]}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"7dc2455a-de57-47dc-a4a4-c6d9db465574":{"description":"Habit template updated","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","required":["template"],"properties":{"template":{"type":"object","additionalProperties":false,"required":["templateId","icon","color","name","defaultLanguage","description","habitType","goalPeriod","logMode","goalValue","allowableValue","unit","customUnitName","taskDaysMode","specificDaysOfWeek","reminders","createdAt","updatedAt"],"properties":{"templateId":{"type":"string","isRequired":true,"uniqueKey":"data.template.templateId","typeLabel":"string"},"icon":{"type":"string","isRequired":true,"uniqueKey":"data.template.icon","typeLabel":"string"},"color":{"type":"string","isRequired":true,"uniqueKey":"data.template.color","typeLabel":"string"},"name":{"type":"object","description":"Stored text by canonical BCP 47 language tag. No language is selected and no translations are generated. Empty optional fields return {}. Undeclared single-language source text uses und, with defaultLanguage: null. Choose the exact requested language, then the declared defaultLanguage; an unknown default must be resolved by the integration.","additionalProperties":{"type":"string","uniqueKey":"data.template.name.additionalProperties","typeLabel":"string"},"isRequired":true,"uniqueKey":"data.template.name","typeLabel":"object"},"defaultLanguage":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"data.template.defaultLanguage.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"data.template.defaultLanguage.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.template.defaultLanguage","typeLabel":"string | null"},"description":{"type":"object","description":"Stored text by canonical BCP 47 language tag. No language is selected and no translations are generated. Empty optional fields return {}. Undeclared single-language source text uses und, with defaultLanguage: null. Choose the exact requested language, then the declared defaultLanguage; an unknown default must be resolved by the integration.","additionalProperties":{"type":"string","uniqueKey":"data.template.description.additionalProperties","typeLabel":"string"},"isRequired":true,"uniqueKey":"data.template.description","typeLabel":"object"},"habitType":{"type":"string","isRequired":true,"uniqueKey":"data.template.habitType","typeLabel":"string"},"goalPeriod":{"type":"string","isRequired":true,"uniqueKey":"data.template.goalPeriod","typeLabel":"string"},"logMode":{"type":"string","isRequired":true,"uniqueKey":"data.template.logMode","typeLabel":"string"},"goalValue":{"oneOf":[{"type":"number","isRequired":true,"uniqueKey":"data.template.goalValue.oneOf.0","typeLabel":"number"},{"type":"null","isRequired":true,"uniqueKey":"data.template.goalValue.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.template.goalValue","typeLabel":"number | null"},"allowableValue":{"oneOf":[{"type":"number","isRequired":true,"uniqueKey":"data.template.allowableValue.oneOf.0","typeLabel":"number"},{"type":"null","isRequired":true,"uniqueKey":"data.template.allowableValue.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.template.allowableValue","typeLabel":"number | null"},"unit":{"type":"string","isRequired":true,"uniqueKey":"data.template.unit","typeLabel":"string"},"customUnitName":{"type":"object","description":"Stored text by canonical BCP 47 language tag. No language is selected and no translations are generated. Empty optional fields return {}. Undeclared single-language source text uses und, with defaultLanguage: null. Choose the exact requested language, then the declared defaultLanguage; an unknown default must be resolved by the integration.","additionalProperties":{"type":"string","uniqueKey":"data.template.customUnitName.additionalProperties","typeLabel":"string"},"isRequired":true,"uniqueKey":"data.template.customUnitName","typeLabel":"object"},"taskDaysMode":{"type":"string","isRequired":true,"uniqueKey":"data.template.taskDaysMode","typeLabel":"string"},"specificDaysOfWeek":{"type":"array","items":{"type":"string","uniqueKey":"data.template.specificDaysOfWeek.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"data.template.specificDaysOfWeek","typeLabel":"string[]"},"reminders":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["enabled","time","message"],"properties":{"enabled":{"type":"boolean","isRequired":true,"uniqueKey":"data.template.reminders.items.[INDEX].enabled","typeLabel":"boolean"},"time":{"type":"string","isRequired":true,"uniqueKey":"data.template.reminders.items.[INDEX].time","typeLabel":"string"},"message":{"type":"object","description":"Stored text by canonical BCP 47 language tag. No language is selected and no translations are generated. Empty optional fields return {}. Undeclared single-language source text uses und, with defaultLanguage: null. Choose the exact requested language, then the declared defaultLanguage; an unknown default must be resolved by the integration.","additionalProperties":{"type":"string","uniqueKey":"data.template.reminders.items.[INDEX].message.additionalProperties","typeLabel":"string"},"isRequired":true,"uniqueKey":"data.template.reminders.items.[INDEX].message","typeLabel":"object"}},"uniqueKey":"data.template.reminders.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"data.template.reminders","typeLabel":"object[]"},"createdAt":{"oneOf":[{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"data.template.createdAt.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","isRequired":true,"uniqueKey":"data.template.createdAt.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.template.createdAt","typeLabel":"string\u003cdate-time> | null"},"updatedAt":{"oneOf":[{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"data.template.updatedAt.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","isRequired":true,"uniqueKey":"data.template.updatedAt.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.template.updatedAt","typeLabel":"string\u003cdate-time> | null"}},"isRequired":true,"uniqueKey":"data.template","typeLabel":"object"}},"isRequired":true,"uniqueKey":"data","typeLabel":"object"},"meta":{"type":"object","additionalProperties":false,"required":["requestId"],"properties":{"requestId":{"type":"string","description":"Stable request correlation id. Mirrors `X-Request-Id` when supplied.","example":"4f849d7d-f4f1-45cc-b4b7-3984a3d17f83","isRequired":true,"uniqueKey":"meta.requestId","typeLabel":"string"},"rateLimit":{"type":"object","additionalProperties":false,"properties":{"limit":{"type":"integer","example":10,"uniqueKey":"meta.rateLimit.limit","typeLabel":"integer"},"remaining":{"type":"integer","example":9,"uniqueKey":"meta.rateLimit.remaining","typeLabel":"integer"},"resetSeconds":{"type":"integer","description":"Seconds until the current rate limit window resets.","example":1,"uniqueKey":"meta.rateLimit.resetSeconds","typeLabel":"integer"},"retryAfterSeconds":{"type":"integer","description":"Present when the request was rate limited.","example":1,"uniqueKey":"meta.rateLimit.retryAfterSeconds","typeLabel":"integer"}},"uniqueKey":"meta.rateLimit","typeLabel":"object"},"idempotency":{"type":"object","additionalProperties":false,"properties":{"replayed":{"type":"boolean","description":"True when the response was replayed from a previous request with the same `Idempotency-Key`.","example":true,"uniqueKey":"meta.idempotency.replayed","typeLabel":"boolean"}},"uniqueKey":"meta.idempotency","typeLabel":"object"}},"isRequired":true,"uniqueKey":"meta","typeLabel":"object"}},"additionalProperties":false,"uniqueKey":"","typeLabel":"object"},"examples":{"success":{"title":"success","value":{"data":{"template":{"templateId":"66f7b8b1e13c8d25f4d3d90a","icon":"string","color":"string","name":{},"defaultLanguage":"string","description":{},"habitType":"string","goalPeriod":"string","logMode":"string","goalValue":1,"allowableValue":1,"unit":"string","customUnitName":{},"taskDaysMode":"string","specificDaysOfWeek":["string"],"reminders":[{"enabled":true,"time":"string","message":{}}],"createdAt":"2026-07-14T10:00:00.000Z","updatedAt":"2026-07-14T10:00:00.000Z"}},"meta":{"requestId":"4f849d7d-f4f1-45cc-b4b7-3984a3d17f83","rateLimit":{"limit":10,"remaining":9,"resetSeconds":1},"idempotency":{"replayed":false}}}}},"exampleType":"examples"}},"exampleType":"examples"},"f92a3b9f-0a0e-4bd6-ab85-d4f1c4a3e598":{"description":"Bad request. The request shape, query, path parameter, or idempotency header is invalid.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["error","meta"],"properties":{"error":{"type":"object","additionalProperties":false,"required":["code","key","message"],"properties":{"code":{"type":"integer","example":401,"isRequired":true,"uniqueKey":"error.code","typeLabel":"integer"},"key":{"type":"string","example":"auth.invalid_token","isRequired":true,"uniqueKey":"error.key","typeLabel":"string"},"message":{"type":"string","example":"The access token is invalid.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"object","additionalProperties":true,"uniqueKey":"error.details","typeLabel":"object"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"},"meta":{"type":"object","additionalProperties":false,"required":["requestId"],"properties":{"requestId":{"type":"string","description":"Stable request correlation id. Mirrors `X-Request-Id` when supplied.","example":"4f849d7d-f4f1-45cc-b4b7-3984a3d17f83","isRequired":true,"uniqueKey":"meta.requestId","typeLabel":"string"},"rateLimit":{"type":"object","additionalProperties":false,"properties":{"limit":{"type":"integer","example":10,"uniqueKey":"meta.rateLimit.limit","typeLabel":"integer"},"remaining":{"type":"integer","example":9,"uniqueKey":"meta.rateLimit.remaining","typeLabel":"integer"},"resetSeconds":{"type":"integer","description":"Seconds until the current rate limit window resets.","example":1,"uniqueKey":"meta.rateLimit.resetSeconds","typeLabel":"integer"},"retryAfterSeconds":{"type":"integer","description":"Present when the request was rate limited.","example":1,"uniqueKey":"meta.rateLimit.retryAfterSeconds","typeLabel":"integer"}},"uniqueKey":"meta.rateLimit","typeLabel":"object"}},"isRequired":true,"uniqueKey":"meta","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"invalidRequest":{"title":"invalidRequest","value":{"error":{"code":400,"key":"request.invalid","message":"The request is invalid."},"meta":{"requestId":"4f849d7d-f4f1-45cc-b4b7-3984a3d17f83","rateLimit":{"limit":10,"remaining":9,"resetSeconds":1}}}},"idempotencyRequired":{"title":"idempotencyRequired","value":{"error":{"code":400,"key":"idempotency.required","message":"Idempotency-Key header is required for Public API write requests."},"meta":{"requestId":"4f849d7d-f4f1-45cc-b4b7-3984a3d17f83","rateLimit":{"limit":10,"remaining":9,"resetSeconds":1}}}},"idempotencyInvalid":{"title":"idempotencyInvalid","value":{"error":{"code":400,"key":"idempotency.invalid","message":"Idempotency-Key header must be 200 characters or fewer."},"meta":{"requestId":"4f849d7d-f4f1-45cc-b4b7-3984a3d17f83","rateLimit":{"limit":10,"remaining":9,"resetSeconds":1}}}}},"exampleType":"examples"}},"exampleType":"examples"},"208a3bde-1851-43bb-9ac4-b801de919956":{"description":"Unauthorized. The Bearer token is missing, invalid, expired, or belongs to an inactive Public API client.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["error","meta"],"properties":{"error":{"type":"object","additionalProperties":false,"required":["code","key","message"],"properties":{"code":{"type":"integer","example":401,"isRequired":true,"uniqueKey":"error.code","typeLabel":"integer"},"key":{"type":"string","example":"auth.invalid_token","isRequired":true,"uniqueKey":"error.key","typeLabel":"string"},"message":{"type":"string","example":"The access token is invalid.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"object","additionalProperties":true,"uniqueKey":"error.details","typeLabel":"object"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"},"meta":{"type":"object","additionalProperties":false,"required":["requestId"],"properties":{"requestId":{"type":"string","description":"Stable request correlation id. Mirrors `X-Request-Id` when supplied.","example":"4f849d7d-f4f1-45cc-b4b7-3984a3d17f83","isRequired":true,"uniqueKey":"meta.requestId","typeLabel":"string"},"rateLimit":{"type":"object","additionalProperties":false,"properties":{"limit":{"type":"integer","example":10,"uniqueKey":"meta.rateLimit.limit","typeLabel":"integer"},"remaining":{"type":"integer","example":9,"uniqueKey":"meta.rateLimit.remaining","typeLabel":"integer"},"resetSeconds":{"type":"integer","description":"Seconds until the current rate limit window resets.","example":1,"uniqueKey":"meta.rateLimit.resetSeconds","typeLabel":"integer"},"retryAfterSeconds":{"type":"integer","description":"Present when the request was rate limited.","example":1,"uniqueKey":"meta.rateLimit.retryAfterSeconds","typeLabel":"integer"}},"uniqueKey":"meta.rateLimit","typeLabel":"object"}},"isRequired":true,"uniqueKey":"meta","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"missingBearer":{"title":"missingBearer","value":{"error":{"code":401,"key":"auth.missing_bearer","message":"Authorization Bearer token is required."},"meta":{"requestId":"4f849d7d-f4f1-45cc-b4b7-3984a3d17f83","rateLimit":{"limit":10,"remaining":9,"resetSeconds":1}}}},"invalidToken":{"title":"invalidToken","value":{"error":{"code":401,"key":"auth.invalid_token","message":"The access token is invalid or expired."},"meta":{"requestId":"4f849d7d-f4f1-45cc-b4b7-3984a3d17f83","rateLimit":{"limit":10,"remaining":9,"resetSeconds":1}}}},"invalidClient":{"title":"invalidClient","value":{"error":{"code":401,"key":"auth.invalid_client","message":"The Public API client is inactive or revoked."},"meta":{"requestId":"4f849d7d-f4f1-45cc-b4b7-3984a3d17f83","rateLimit":{"limit":10,"remaining":9,"resetSeconds":1}}}}},"exampleType":"examples"}},"exampleType":"examples"},"ae802433-6c27-46f4-8500-623ddfc4c0a4":{"description":"Forbidden. The token is valid but does not include the required scope.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["error","meta"],"properties":{"error":{"type":"object","additionalProperties":false,"required":["code","key","message"],"properties":{"code":{"type":"integer","example":401,"isRequired":true,"uniqueKey":"error.code","typeLabel":"integer"},"key":{"type":"string","example":"auth.invalid_token","isRequired":true,"uniqueKey":"error.key","typeLabel":"string"},"message":{"type":"string","example":"The access token is invalid.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"object","additionalProperties":true,"uniqueKey":"error.details","typeLabel":"object"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"},"meta":{"type":"object","additionalProperties":false,"required":["requestId"],"properties":{"requestId":{"type":"string","description":"Stable request correlation id. Mirrors `X-Request-Id` when supplied.","example":"4f849d7d-f4f1-45cc-b4b7-3984a3d17f83","isRequired":true,"uniqueKey":"meta.requestId","typeLabel":"string"},"rateLimit":{"type":"object","additionalProperties":false,"properties":{"limit":{"type":"integer","example":10,"uniqueKey":"meta.rateLimit.limit","typeLabel":"integer"},"remaining":{"type":"integer","example":9,"uniqueKey":"meta.rateLimit.remaining","typeLabel":"integer"},"resetSeconds":{"type":"integer","description":"Seconds until the current rate limit window resets.","example":1,"uniqueKey":"meta.rateLimit.resetSeconds","typeLabel":"integer"},"retryAfterSeconds":{"type":"integer","description":"Present when the request was rate limited.","example":1,"uniqueKey":"meta.rateLimit.retryAfterSeconds","typeLabel":"integer"}},"uniqueKey":"meta.rateLimit","typeLabel":"object"}},"isRequired":true,"uniqueKey":"meta","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"insufficientScopes":{"title":"insufficientScopes","value":{"error":{"code":403,"key":"scopes.insufficient","message":"The access token does not include the required scope.","details":{"requiredScopes":["habits:write"]}},"meta":{"requestId":"4f849d7d-f4f1-45cc-b4b7-3984a3d17f83","rateLimit":{"limit":10,"remaining":9,"resetSeconds":1}}}}},"exampleType":"examples"}},"exampleType":"examples"},"d21bca45-2acb-441e-b083-e8c07cb00d68":{"description":"Not found. The requested company-scoped resource does not exist or is not accessible to this token.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["error","meta"],"properties":{"error":{"type":"object","additionalProperties":false,"required":["code","key","message"],"properties":{"code":{"type":"integer","example":401,"isRequired":true,"uniqueKey":"error.code","typeLabel":"integer"},"key":{"type":"string","example":"auth.invalid_token","isRequired":true,"uniqueKey":"error.key","typeLabel":"string"},"message":{"type":"string","example":"The access token is invalid.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"object","additionalProperties":true,"uniqueKey":"error.details","typeLabel":"object"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"},"meta":{"type":"object","additionalProperties":false,"required":["requestId"],"properties":{"requestId":{"type":"string","description":"Stable request correlation id. Mirrors `X-Request-Id` when supplied.","example":"4f849d7d-f4f1-45cc-b4b7-3984a3d17f83","isRequired":true,"uniqueKey":"meta.requestId","typeLabel":"string"},"rateLimit":{"type":"object","additionalProperties":false,"properties":{"limit":{"type":"integer","example":10,"uniqueKey":"meta.rateLimit.limit","typeLabel":"integer"},"remaining":{"type":"integer","example":9,"uniqueKey":"meta.rateLimit.remaining","typeLabel":"integer"},"resetSeconds":{"type":"integer","description":"Seconds until the current rate limit window resets.","example":1,"uniqueKey":"meta.rateLimit.resetSeconds","typeLabel":"integer"},"retryAfterSeconds":{"type":"integer","description":"Present when the request was rate limited.","example":1,"uniqueKey":"meta.rateLimit.retryAfterSeconds","typeLabel":"integer"}},"uniqueKey":"meta.rateLimit","typeLabel":"object"}},"isRequired":true,"uniqueKey":"meta","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"notFound":{"title":"notFound","value":{"error":{"code":404,"key":"resource.not_found","message":"The requested Public API resource was not found."},"meta":{"requestId":"4f849d7d-f4f1-45cc-b4b7-3984a3d17f83","rateLimit":{"limit":10,"remaining":9,"resetSeconds":1}}}}},"exampleType":"examples"}},"exampleType":"examples"},"8fd15628-cdc6-429a-aad9-e09feac091a9":{"description":"Conflict. The write request conflicts with idempotency or current resource state.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["error","meta"],"properties":{"error":{"type":"object","additionalProperties":false,"required":["code","key","message"],"properties":{"code":{"type":"integer","example":401,"isRequired":true,"uniqueKey":"error.code","typeLabel":"integer"},"key":{"type":"string","example":"auth.invalid_token","isRequired":true,"uniqueKey":"error.key","typeLabel":"string"},"message":{"type":"string","example":"The access token is invalid.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"object","additionalProperties":true,"uniqueKey":"error.details","typeLabel":"object"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"},"meta":{"type":"object","additionalProperties":false,"required":["requestId"],"properties":{"requestId":{"type":"string","description":"Stable request correlation id. Mirrors `X-Request-Id` when supplied.","example":"4f849d7d-f4f1-45cc-b4b7-3984a3d17f83","isRequired":true,"uniqueKey":"meta.requestId","typeLabel":"string"},"rateLimit":{"type":"object","additionalProperties":false,"properties":{"limit":{"type":"integer","example":10,"uniqueKey":"meta.rateLimit.limit","typeLabel":"integer"},"remaining":{"type":"integer","example":9,"uniqueKey":"meta.rateLimit.remaining","typeLabel":"integer"},"resetSeconds":{"type":"integer","description":"Seconds until the current rate limit window resets.","example":1,"uniqueKey":"meta.rateLimit.resetSeconds","typeLabel":"integer"},"retryAfterSeconds":{"type":"integer","description":"Present when the request was rate limited.","example":1,"uniqueKey":"meta.rateLimit.retryAfterSeconds","typeLabel":"integer"}},"uniqueKey":"meta.rateLimit","typeLabel":"object"}},"isRequired":true,"uniqueKey":"meta","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"idempotencyConflict":{"title":"idempotencyConflict","value":{"error":{"code":409,"key":"idempotency.conflict","message":"Idempotency-Key was already used with a different request."},"meta":{"requestId":"4f849d7d-f4f1-45cc-b4b7-3984a3d17f83","rateLimit":{"limit":10,"remaining":9,"resetSeconds":1}}}},"idempotencyInProgress":{"title":"idempotencyInProgress","value":{"error":{"code":409,"key":"idempotency.in_progress","message":"Idempotency-Key is already processing for this Public API client."},"meta":{"requestId":"4f849d7d-f4f1-45cc-b4b7-3984a3d17f83","rateLimit":{"limit":10,"remaining":9,"resetSeconds":1}}}}},"exampleType":"examples"}},"exampleType":"examples"},"8ac9e517-5951-419e-96d0-f37b3399ee7c":{"description":"Unprocessable content. The request body is empty or is not a JSON object.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["error","meta"],"properties":{"error":{"type":"object","additionalProperties":false,"required":["code","key","message"],"properties":{"code":{"type":"integer","example":401,"isRequired":true,"uniqueKey":"error.code","typeLabel":"integer"},"key":{"type":"string","example":"auth.invalid_token","isRequired":true,"uniqueKey":"error.key","typeLabel":"string"},"message":{"type":"string","example":"The access token is invalid.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"object","additionalProperties":true,"uniqueKey":"error.details","typeLabel":"object"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"},"meta":{"type":"object","additionalProperties":false,"required":["requestId"],"properties":{"requestId":{"type":"string","description":"Stable request correlation id. Mirrors `X-Request-Id` when supplied.","example":"4f849d7d-f4f1-45cc-b4b7-3984a3d17f83","isRequired":true,"uniqueKey":"meta.requestId","typeLabel":"string"},"rateLimit":{"type":"object","additionalProperties":false,"properties":{"limit":{"type":"integer","example":10,"uniqueKey":"meta.rateLimit.limit","typeLabel":"integer"},"remaining":{"type":"integer","example":9,"uniqueKey":"meta.rateLimit.remaining","typeLabel":"integer"},"resetSeconds":{"type":"integer","description":"Seconds until the current rate limit window resets.","example":1,"uniqueKey":"meta.rateLimit.resetSeconds","typeLabel":"integer"},"retryAfterSeconds":{"type":"integer","description":"Present when the request was rate limited.","example":1,"uniqueKey":"meta.rateLimit.retryAfterSeconds","typeLabel":"integer"}},"uniqueKey":"meta.rateLimit","typeLabel":"object"}},"isRequired":true,"uniqueKey":"meta","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"emptyBody":{"title":"emptyBody","value":{"error":{"code":422,"key":"EMPTY_BODY","message":"Request body must be a non-empty JSON object."},"meta":{"requestId":"4f849d7d-f4f1-45cc-b4b7-3984a3d17f83","rateLimit":{"limit":10,"remaining":9,"resetSeconds":1}}}}},"exampleType":"examples"}},"exampleType":"examples"},"27beb3af-b8d6-4041-85bb-8a2eede016ec":{"description":"Too many requests. The Public API client or caller IP exceeded the rate limit.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["error","meta"],"properties":{"error":{"type":"object","additionalProperties":false,"required":["code","key","message"],"properties":{"code":{"type":"integer","example":401,"isRequired":true,"uniqueKey":"error.code","typeLabel":"integer"},"key":{"type":"string","example":"auth.invalid_token","isRequired":true,"uniqueKey":"error.key","typeLabel":"string"},"message":{"type":"string","example":"The access token is invalid.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"object","additionalProperties":true,"uniqueKey":"error.details","typeLabel":"object"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"},"meta":{"type":"object","additionalProperties":false,"required":["requestId"],"properties":{"requestId":{"type":"string","description":"Stable request correlation id. Mirrors `X-Request-Id` when supplied.","example":"4f849d7d-f4f1-45cc-b4b7-3984a3d17f83","isRequired":true,"uniqueKey":"meta.requestId","typeLabel":"string"},"rateLimit":{"type":"object","additionalProperties":false,"properties":{"limit":{"type":"integer","example":10,"uniqueKey":"meta.rateLimit.limit","typeLabel":"integer"},"remaining":{"type":"integer","example":9,"uniqueKey":"meta.rateLimit.remaining","typeLabel":"integer"},"resetSeconds":{"type":"integer","description":"Seconds until the current rate limit window resets.","example":1,"uniqueKey":"meta.rateLimit.resetSeconds","typeLabel":"integer"},"retryAfterSeconds":{"type":"integer","description":"Present when the request was rate limited.","example":1,"uniqueKey":"meta.rateLimit.retryAfterSeconds","typeLabel":"integer"}},"uniqueKey":"meta.rateLimit","typeLabel":"object"}},"isRequired":true,"uniqueKey":"meta","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"rateLimitExceeded":{"title":"rateLimitExceeded","value":{"error":{"code":429,"key":"rate_limit.exceeded","message":"Too many Public API requests. Retry later."},"meta":{"requestId":"4f849d7d-f4f1-45cc-b4b7-3984a3d17f83","rateLimit":{"limit":10,"remaining":0,"resetSeconds":1,"retryAfterSeconds":1}}}}},"exampleType":"examples"}},"exampleType":"examples"},"a2e8a772-f330-46c2-aad9-95886f8295ea":{"description":"Server error. The request could not be completed because of an unexpected Public API server failure.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["error","meta"],"properties":{"error":{"type":"object","additionalProperties":false,"required":["code","key","message"],"properties":{"code":{"type":"integer","example":401,"isRequired":true,"uniqueKey":"error.code","typeLabel":"integer"},"key":{"type":"string","example":"auth.invalid_token","isRequired":true,"uniqueKey":"error.key","typeLabel":"string"},"message":{"type":"string","example":"The access token is invalid.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"object","additionalProperties":true,"uniqueKey":"error.details","typeLabel":"object"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"},"meta":{"type":"object","additionalProperties":false,"required":["requestId"],"properties":{"requestId":{"type":"string","description":"Stable request correlation id. Mirrors `X-Request-Id` when supplied.","example":"4f849d7d-f4f1-45cc-b4b7-3984a3d17f83","isRequired":true,"uniqueKey":"meta.requestId","typeLabel":"string"},"rateLimit":{"type":"object","additionalProperties":false,"properties":{"limit":{"type":"integer","example":10,"uniqueKey":"meta.rateLimit.limit","typeLabel":"integer"},"remaining":{"type":"integer","example":9,"uniqueKey":"meta.rateLimit.remaining","typeLabel":"integer"},"resetSeconds":{"type":"integer","description":"Seconds until the current rate limit window resets.","example":1,"uniqueKey":"meta.rateLimit.resetSeconds","typeLabel":"integer"},"retryAfterSeconds":{"type":"integer","description":"Present when the request was rate limited.","example":1,"uniqueKey":"meta.rateLimit.retryAfterSeconds","typeLabel":"integer"}},"uniqueKey":"meta.rateLimit","typeLabel":"object"}},"isRequired":true,"uniqueKey":"meta","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"serverInternalError":{"title":"serverInternalError","value":{"error":{"code":500,"key":"server.internal_error","message":"An unexpected Public API server error occurred."},"meta":{"requestId":"4f849d7d-f4f1-45cc-b4b7-3984a3d17f83","rateLimit":{"limit":10,"remaining":9,"resetSeconds":1}}}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"7807c630-0def-4551-a00a-938d9928ef73":{"PublicBearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"Opaque","description":"Public API access token issued by `/public/v1/oauth/token`. Example: `Authorization: Bearer fspt_...`. Each resource request rechecks the token company's current provider access. Disabling access blocks existing tokens with `403 auth.provider_unavailable`.","scopes":[],"schemeName":"PublicBearerAuth"}}},"servers":{"674d7162-a1f6-469d-bae7-7a1309ce690b":{"url":"https://api.fitsociety.io","description":"Production"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","bearerFormat":"Opaque","description":"Public API access token issued by `/public/v1/oauth/token`. Example: `Authorization: Bearer fspt_...`. Each resource request rechecks the token company's current provider access. Disabling access blocks existing tokens with `403 auth.provider_unavailable`.","scopes":[],"schemeName":"PublicBearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Public API access token issued by `/public/v1/oauth/token`. Example: `Authorization: Bearer fspt_...`. Each resource request rechecks the token company's current provider access. Disabling access blocks existing tokens with `403 auth.provider_unavailable`.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"PublicBearerAuth","name":"Authorization"}],"title":"PublicBearerAuth"}]},"originalFileLocation":"openapi/public-v1.json"},"subdomain":"fitsociety","siteName":"FITsociety Developer APIs","title":"Update standard habit template - FITsociety Developer APIs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-24T12:48:58.249Z","originalFileLocation":"api-reference/habits/update-standard-habit-template.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Requires habits:write. Updates a standard habit template in the authenticated company. Supplied text maps replace all translations for that field; omitted fields are retained. The first update of a legacy template requires defaultLanguage. Changing the default requires that language in every retained non-empty map. Already applied client habits are not changed.\">\u003cmeta data-mint-head name=\"application-name\" content=\"FITsociety Developer APIs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/fitsociety/syP3qy_Qkhe5gOqU/_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/fitsociety/syP3qy_Qkhe5gOqU/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/fitsociety/syP3qy_Qkhe5gOqU/_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/fitsociety/syP3qy_Qkhe5gOqU/_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/fitsociety/syP3qy_Qkhe5gOqU/_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/fitsociety/syP3qy_Qkhe5gOqU/_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/fitsociety/syP3qy_Qkhe5gOqU/_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/fitsociety/syP3qy_Qkhe5gOqU/_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/fitsociety/syP3qy_Qkhe5gOqU/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Update standard habit template - FITsociety Developer APIs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Requires habits:write. Updates a standard habit template in the authenticated company. Supplied text maps replace all translations for that field; omitted fields are retained. The first update of a legacy template requires defaultLanguage. Changing the default requires that language in every retained non-empty map. Already applied client habits are not changed.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"FITsociety Developer APIs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.fitsociety.io/api-reference/habits/update-standard-habit-template\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://fitsociety.mintlify.app/_mintlify/api/og/v2?division=Standard+habit+templates\u0026amp;title=Update+standard+habit+template\u0026amp;description=Requires+%60habits%3Awrite%60.+Updates+a+standard+habit+template+in+the+authenticated+company.+Supplied+text+maps+replace+all+translations+for+that+field%3B+omitted+fie\u0026amp;theme=bade34c7051d29ee32b41c04\u0026amp;signature=6df96583312ff6f816bf93667f74e02e1048bd5ca1ee9f769ff8ffa2faa06d4e\">\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=\"Update standard habit template - FITsociety Developer APIs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Requires habits:write. Updates a standard habit template in the authenticated company. Supplied text maps replace all translations for that field; omitted fields are retained. The first update of a legacy template requires defaultLanguage. Changing the default requires that language in every retained non-empty map. Already applied client habits are not changed.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://fitsociety.mintlify.app/_mintlify/api/og/v2?division=Standard+habit+templates\u0026amp;title=Update+standard+habit+template\u0026amp;description=Requires+%60habits%3Awrite%60.+Updates+a+standard+habit+template+in+the+authenticated+company.+Supplied+text+maps+replace+all+translations+for+that+field%3B+omitted+fie\u0026amp;theme=bade34c7051d29ee32b41c04\u0026amp;signature=6df96583312ff6f816bf93667f74e02e1048bd5ca1ee9f769ff8ffa2faa06d4e\">\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/fitsociety/syP3qy_Qkhe5gOqU/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"FITsociety Developer APIs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#16A34A\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.fitsociety.io/api-reference/habits/update-standard-habit-template\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/habits/update-standard-habit-template.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.fitsociety.io/#organization\",\"name\":\"FITsociety Developer APIs\",\"url\":\"https://docs.fitsociety.io\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/fitsociety/CnaqVMsnx_iq_5Yj/images/fitsociety-logo.svg?fit=max\u0026auto=format\u0026n=CnaqVMsnx_iq_5Yj\u0026q=85\u0026s=c298734266929d78f32cb0214a963497\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.fitsociety.io#website\",\"name\":\"FITsociety Developer APIs\",\"url\":\"https://docs.fitsociety.io\",\"publisher\":{\"@id\":\"https://docs.fitsociety.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.fitsociety.io/api-reference/habits/update-standard-habit-template#webpage\",\"url\":\"https://docs.fitsociety.io/api-reference/habits/update-standard-habit-template\",\"name\":\"Update standard habit template\",\"description\":\"Requires habits:write. Updates a standard habit template in the authenticated company. Supplied text maps replace all translations for that field; omitted fields are retained. The first update of a legacy template requires defaultLanguage. Changing the default requires that language in every retained non-empty map. Already applied client habits are not changed.\",\"dateModified\":\"2026-10-24T12:48:58.249Z\",\"isPartOf\":{\"@id\":\"https://docs.fitsociety.io#website\"},\"breadcrumb\":{\"@id\":\"https://docs.fitsociety.io/api-reference/habits/update-standard-habit-template#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.fitsociety.io/api-reference/habits/update-standard-habit-template#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Habits\",\"item\":\"https://docs.fitsociety.io/api-reference/habits/list-standard-habit-templates\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Standard habit templates\",\"item\":\"https://docs.fitsociety.io/api-reference/habits/list-standard-habit-templates\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Update standard habit template\",\"item\":\"https://docs.fitsociety.io/api-reference/habits/update-standard-habit-template\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.fitsociety.io/api-reference/habits/update-standard-habit-template#apireference\",\"headline\":\"Update standard habit template\",\"name\":\"Update standard habit template\",\"description\":\"Requires habits:write. Updates a standard habit template in the authenticated company. Supplied text maps replace all translations for that field; omitted fields are retained. The first update of a legacy template requires defaultLanguage. Changing the default requires that language in every retained non-empty map. Already applied client habits are not changed.\",\"url\":\"https://docs.fitsociety.io/api-reference/habits/update-standard-habit-template\",\"mainEntityOfPage\":{\"@id\":\"https://docs.fitsociety.io/api-reference/habits/update-standard-habit-template#webpage\"},\"dateModified\":\"2026-10-24T12:48:58.249Z\",\"publisher\":{\"@id\":\"https://docs.fitsociety.io/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.fitsociety.io#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"FITsociety Developer APIs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"FITsociety Developer APIs","nav":{"global":null,"tabs":[{"tab":"Docs","pages":[{"title":"Docs","href":""}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/api-reference/overview"},{"group":"Health","expanded":false,"pages":[{"title":"Check Public API token health","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/health","href":"/api-reference/health/check-public-api-token-health"}]},{"group":"OAuth","expanded":false,"pages":[{"title":"Issue a Public API access token","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/oauth/token","href":"/api-reference/oauth/issue-a-public-api-access-token"}]},{"group":"Platform","expanded":false,"pages":[{"group":"Public API client","expanded":false,"pages":[{"title":"Get Public API client profile","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/me","href":"/api-reference/platform/get-public-api-client-profile"},{"title":"List Public API capabilities","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/capabilities","href":"/api-reference/platform/list-public-api-capabilities"},{"title":"List Public API scopes","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/scopes","href":"/api-reference/platform/list-public-api-scopes"}]},{"group":"Audit logs","expanded":false,"pages":[{"title":"List redacted Public API audit logs","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/audit-logs","href":"/api-reference/platform/list-redacted-public-api-audit-logs"},{"title":"Get redacted Public API audit log","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/audit-logs/{auditLogId}","href":"/api-reference/platform/get-redacted-public-api-audit-log"}]}]},{"group":"Company catalog","expanded":false,"pages":[{"group":"Company profile","expanded":false,"pages":[{"title":"Get company profile","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/company-profile","href":"/api-reference/company-catalog/get-company-profile"},{"title":"Get facilities and services","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/facilities-services","href":"/api-reference/company-catalog/get-facilities-and-services"},{"title":"Get company policies","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/company-policies","href":"/api-reference/company-catalog/get-company-policies"}]},{"group":"Coaches","expanded":false,"pages":[{"title":"List coaches for the authenticated company","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/coaches","href":"/api-reference/coaches/list-coaches-for-the-authenticated-company"},{"title":"Get a coach","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/coaches/{coachId}","href":"/api-reference/coaches/get-a-coach"}]},{"group":"Locations","expanded":false,"pages":[{"title":"List locations","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/locations","href":"/api-reference/company-catalog/list-locations"},{"title":"Create location","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/locations","href":"/api-reference/company-catalog/create-location"},{"title":"Get location","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/locations/{locationId}","href":"/api-reference/company-catalog/get-location"},{"title":"Update location","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json patch /public/v1/locations/{locationId}","href":"/api-reference/company-catalog/update-location"},{"title":"Archive location","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/locations/{locationId}/archive","href":"/api-reference/company-catalog/archive-location"}]}]},{"group":"Clients","expanded":false,"pages":[{"group":"Client records","expanded":false,"pages":[{"title":"List clients for the authenticated company","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/clients","href":"/api-reference/clients/list-clients-for-the-authenticated-company"},{"title":"Create a client in the company","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/clients","href":"/api-reference/clients/create-a-client-in-the-company"},{"title":"Get a client","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/clients/{clientId}","href":"/api-reference/clients/get-a-client"},{"title":"Update a client","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json patch /public/v1/clients/{clientId}","href":"/api-reference/clients/update-a-client"},{"title":"Archive a client","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/clients/{clientId}/archive","href":"/api-reference/clients/archive-a-client"}]},{"group":"Custom fields","expanded":false,"pages":[{"title":"List client custom field definitions","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/client-custom-fields","href":"/api-reference/clients/list-client-custom-field-definitions"},{"title":"Get client custom field values","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/clients/{clientId}/custom-fields","href":"/api-reference/clients/get-client-custom-field-values"},{"title":"Update client custom field values","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json patch /public/v1/clients/{clientId}/custom-fields","href":"/api-reference/clients/update-client-custom-field-values"}]},{"group":"Portal access","expanded":false,"pages":[{"title":"Get client portal access status","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/clients/{clientId}/portal-access","href":"/api-reference/clients/get-client-portal-access-status"},{"title":"Send client portal invite","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/clients/{clientId}/invite","href":"/api-reference/clients/send-client-portal-invite"},{"title":"Resend client portal invite","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/clients/{clientId}/invite/resend","href":"/api-reference/clients/resend-client-portal-invite"}]},{"group":"Relationships","expanded":false,"pages":[{"title":"Reject pending client relationship","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/clients/{clientId}/relationship/reject","href":"/api-reference/clients/reject-pending-client-relationship"}]},{"group":"Assigned coaches","expanded":false,"pages":[{"title":"Get assigned coaches","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/clients/{clientId}/assigned-coaches","href":"/api-reference/clients/get-assigned-coaches"},{"title":"Update assigned coach","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json patch /public/v1/clients/{clientId}/assigned-coaches","href":"/api-reference/clients/update-assigned-coach"}]},{"group":"Timeline and tags","expanded":false,"pages":[{"title":"Get sanitized client lifecycle timeline","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/clients/{clientId}/timeline","href":"/api-reference/clients/get-sanitized-client-lifecycle-timeline"},{"title":"List client tags","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/client-tags","href":"/api-reference/clients/list-client-tags"}]},{"group":"Client notes","expanded":false,"pages":[{"title":"List client notes","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/clients/{clientId}/notes","href":"/api-reference/clients/list-client-notes"},{"title":"Create a client note","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/clients/{clientId}/notes","href":"/api-reference/clients/create-a-client-note"},{"title":"Update a client note","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json patch /public/v1/clients/{clientId}/notes/{noteId}","href":"/api-reference/clients/update-a-client-note"},{"title":"Delete a client note","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json delete /public/v1/clients/{clientId}/notes/{noteId}","href":"/api-reference/clients/delete-a-client-note"}]},{"group":"Goals","expanded":false,"pages":[{"title":"Get client goals","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/clients/{clientId}/goals","href":"/api-reference/goals/get-client-goals"},{"title":"Update client goals","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json patch /public/v1/clients/{clientId}/goals","href":"/api-reference/goals/update-client-goals"}]}]},{"group":"Calendar and bookings","expanded":false,"pages":[{"group":"Bookings","expanded":false,"pages":[{"title":"List bookings","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/bookings","href":"/api-reference/bookings/list-bookings"},{"title":"Create booking","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/bookings","href":"/api-reference/bookings/create-booking"},{"title":"Get booking","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/bookings/{bookingId}","href":"/api-reference/bookings/get-booking"},{"title":"Update booking attendance","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json patch /public/v1/bookings/{bookingId}","href":"/api-reference/bookings/update-booking-attendance"},{"title":"Get booking cancellation context","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/bookings/{bookingId}/cancellation-context","href":"/api-reference/bookings/get-booking-cancellation-context"},{"title":"Cancel booking","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/bookings/{bookingId}/cancel","href":"/api-reference/bookings/cancel-booking"},{"title":"List booking requests","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/booking-requests","href":"/api-reference/calendar-extensions/list-booking-requests"},{"title":"Approve booking request","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/booking-requests/{bookingRequestId}/approve","href":"/api-reference/calendar-extensions/approve-booking-request"},{"title":"Reject booking request","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/booking-requests/{bookingRequestId}/reject","href":"/api-reference/calendar-extensions/reject-booking-request"}]},{"group":"Recurring bookings","expanded":false,"pages":[{"title":"List recurring bookings","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/recurring-bookings","href":"/api-reference/calendar-extensions/list-recurring-bookings"},{"title":"Get recurring booking","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/recurring-bookings/{recurringBookingId}","href":"/api-reference/calendar-extensions/get-recurring-booking"},{"title":"Update recurring booking","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json patch /public/v1/recurring-bookings/{recurringBookingId}","href":"/api-reference/calendar-extensions/update-recurring-booking"},{"title":"Cancel recurring booking","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/recurring-bookings/{recurringBookingId}/cancel","href":"/api-reference/calendar-extensions/cancel-recurring-booking"}]},{"group":"Events","expanded":false,"pages":[{"title":"List calendar events","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/calendar-events","href":"/api-reference/calendar-events/list-calendar-events"},{"title":"Get calendar event","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/calendar-events/{eventId}","href":"/api-reference/calendar-events/get-calendar-event"}]},{"group":"Event types","expanded":false,"pages":[{"title":"List event types","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/event-types","href":"/api-reference/calendar-templates/list-event-types"},{"title":"Create event type","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/event-types","href":"/api-reference/calendar-templates/create-event-type"},{"title":"Get event type","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/event-types/{eventTypeId}","href":"/api-reference/calendar-templates/get-event-type"},{"title":"Update event type","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json patch /public/v1/event-types/{eventTypeId}","href":"/api-reference/calendar-templates/update-event-type"},{"title":"Archive event type","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/event-types/{eventTypeId}/archive","href":"/api-reference/calendar-templates/archive-event-type"}]},{"group":"Event templates","expanded":false,"pages":[{"title":"List event templates","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/event-templates","href":"/api-reference/calendar-templates/list-event-templates"},{"title":"Create event template","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/event-templates","href":"/api-reference/calendar-templates/create-event-template"},{"title":"Get event template","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/event-templates/{eventTemplateId}","href":"/api-reference/calendar-templates/get-event-template"},{"title":"Update event template","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json patch /public/v1/event-templates/{eventTemplateId}","href":"/api-reference/calendar-templates/update-event-template"},{"title":"Archive event template","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/event-templates/{eventTemplateId}/archive","href":"/api-reference/calendar-templates/archive-event-template"}]},{"group":"Tasks","expanded":false,"pages":[{"title":"List calendar tasks","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/calendar-tasks","href":"/api-reference/calendar-extensions/list-calendar-tasks"},{"title":"Create calendar task","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/calendar-tasks","href":"/api-reference/calendar-extensions/create-calendar-task"},{"title":"Get calendar task","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/calendar-tasks/{taskId}","href":"/api-reference/calendar-extensions/get-calendar-task"},{"title":"Update calendar task","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json patch /public/v1/calendar-tasks/{taskId}","href":"/api-reference/calendar-extensions/update-calendar-task"},{"title":"Cancel calendar task","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/calendar-tasks/{taskId}/cancel","href":"/api-reference/calendar-extensions/cancel-calendar-task"}]},{"group":"Coach availability","expanded":false,"pages":[{"title":"Get coach availability template","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/coaches/{coachId}/availability","href":"/api-reference/availability-management/get-coach-availability-template"},{"title":"Replace coach availability template","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json put /public/v1/coaches/{coachId}/availability","href":"/api-reference/availability-management/replace-coach-availability-template"}]},{"group":"Location availability","expanded":false,"pages":[{"title":"Get location availability template","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/locations/{locationId}/availability","href":"/api-reference/availability-management/get-location-availability-template"},{"title":"Replace location availability template","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json put /public/v1/locations/{locationId}/availability","href":"/api-reference/availability-management/replace-location-availability-template"}]},{"group":"Availability closures","expanded":false,"pages":[{"title":"List closure days and absence","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/availability-closures","href":"/api-reference/calendar-extensions/list-closure-days-and-absence"},{"title":"Replace closure days and absence","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json put /public/v1/availability-closures","href":"/api-reference/calendar-extensions/replace-closure-days-and-absence"}]},{"group":"Bookable availability","expanded":false,"pages":[{"title":"List bookable availability slots","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/availability","href":"/api-reference/availability/list-bookable-availability-slots"}]}]},{"group":"Finance","expanded":false,"pages":[{"group":"All products","expanded":false,"pages":[{"title":"List finance products","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/finance/products","href":"/api-reference/finance/list-finance-products"}]},{"group":"Membership","expanded":false,"pages":[{"title":"List membership products","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/finance/membership-products","href":"/api-reference/finance/list-membership-products"},{"title":"Create membership products","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/finance/membership-products","href":"/api-reference/finance/create-membership-products"},{"title":"Get membership products","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/finance/membership-products/{productId}","href":"/api-reference/finance/get-membership-products"},{"title":"Update membership products","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json patch /public/v1/finance/membership-products/{productId}","href":"/api-reference/finance/update-membership-products"},{"title":"Archive membership products","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/finance/membership-products/{productId}/archive","href":"/api-reference/finance/archive-membership-products"},{"title":"List clients linked to membership products","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/finance/membership-products/{productId}/clients","href":"/api-reference/finance/list-clients-linked-to-membership-products"}]},{"group":"Credit packs","expanded":false,"pages":[{"title":"List credit packs","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/finance/credit-packs","href":"/api-reference/finance/list-credit-packs"},{"title":"Create credit packs","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/finance/credit-packs","href":"/api-reference/finance/create-credit-packs"},{"title":"Get credit packs","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/finance/credit-packs/{productId}","href":"/api-reference/finance/get-credit-packs"},{"title":"Update credit packs","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json patch /public/v1/finance/credit-packs/{productId}","href":"/api-reference/finance/update-credit-packs"},{"title":"Archive credit packs","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/finance/credit-packs/{productId}/archive","href":"/api-reference/finance/archive-credit-packs"},{"title":"List clients linked to credit packs","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/finance/credit-packs/{productId}/clients","href":"/api-reference/finance/list-clients-linked-to-credit-packs"}]},{"group":"Day/week passes","expanded":false,"pages":[{"title":"List day/week passes","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/finance/day-passes","href":"/api-reference/finance/list-dayweek-passes"},{"title":"Create day/week passes","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/finance/day-passes","href":"/api-reference/finance/create-dayweek-passes"},{"title":"Get day/week passes","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/finance/day-passes/{productId}","href":"/api-reference/finance/get-dayweek-passes"},{"title":"Update day/week passes","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json patch /public/v1/finance/day-passes/{productId}","href":"/api-reference/finance/update-dayweek-passes"},{"title":"Archive day/week passes","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/finance/day-passes/{productId}/archive","href":"/api-reference/finance/archive-dayweek-passes"},{"title":"List clients linked to day/week passes","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/finance/day-passes/{productId}/clients","href":"/api-reference/finance/list-clients-linked-to-dayweek-passes"}]},{"group":"Single sessions","expanded":false,"pages":[{"title":"List single sessions","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/finance/single-sessions","href":"/api-reference/finance/list-single-sessions"},{"title":"Create single sessions","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/finance/single-sessions","href":"/api-reference/finance/create-single-sessions"},{"title":"Get single sessions","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/finance/single-sessions/{productId}","href":"/api-reference/finance/get-single-sessions"},{"title":"Update single sessions","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json patch /public/v1/finance/single-sessions/{productId}","href":"/api-reference/finance/update-single-sessions"},{"title":"Archive single sessions","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/finance/single-sessions/{productId}/archive","href":"/api-reference/finance/archive-single-sessions"},{"title":"List clients linked to single sessions","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/finance/single-sessions/{productId}/clients","href":"/api-reference/finance/list-clients-linked-to-single-sessions"}]},{"group":"Invoices","expanded":false,"pages":[{"title":"List invoices","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/finance/invoices","href":"/api-reference/finance/list-invoices"},{"title":"List client invoices","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/finance/clients/{clientId}/invoices","href":"/api-reference/finance/list-client-invoices"},{"title":"Get invoice","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/finance/invoices/{invoiceId}","href":"/api-reference/finance/get-invoice"},{"title":"Get invoice PDF metadata","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/finance/invoices/{invoiceId}/pdf","href":"/api-reference/finance/get-invoice-pdf-metadata"},{"title":"Send invoice payment reminder","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/finance/invoices/{invoiceId}/send-reminder","href":"/api-reference/finance/send-invoice-payment-reminder"},{"title":"Resend invoice copy","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/finance/invoices/{invoiceId}/resend","href":"/api-reference/finance/resend-invoice-copy"}]},{"group":"Transactions","expanded":false,"pages":[{"title":"List transactions","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/finance/transactions","href":"/api-reference/finance/list-transactions"},{"title":"Get transaction","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/finance/transactions/{transactionId}","href":"/api-reference/finance/get-transaction"}]},{"group":"Payment requests","expanded":false,"pages":[{"title":"List payment requests","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/finance/payment-requests","href":"/api-reference/finance/list-payment-requests"},{"title":"Create payment request","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/finance/payment-requests","href":"/api-reference/finance/create-payment-request"},{"title":"Get payment request","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/finance/payment-requests/{paymentRequestId}","href":"/api-reference/finance/get-payment-request"},{"title":"Cancel payment request","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/finance/payment-requests/{paymentRequestId}/cancel","href":"/api-reference/finance/cancel-payment-request"}]},{"group":"Subscriptions","expanded":false,"pages":[{"title":"List subscriptions","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/finance/subscriptions","href":"/api-reference/finance/list-subscriptions"},{"title":"Get subscription","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/finance/subscriptions/{subscriptionId}","href":"/api-reference/finance/get-subscription"},{"title":"Assign membership","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/finance/clients/{clientId}/memberships","href":"/api-reference/finance/assign-membership"},{"title":"Request subscription pause","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/finance/subscriptions/{subscriptionId}/pause-request","href":"/api-reference/finance/request-subscription-pause"},{"title":"Request subscription cancellation","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/finance/subscriptions/{subscriptionId}/cancel-request","href":"/api-reference/finance/request-subscription-cancellation"}]},{"group":"Client Products","expanded":false,"pages":[{"title":"List assigned client products","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/finance/clients/{clientId}/products","href":"/api-reference/finance/list-assigned-client-products"},{"title":"Assign product","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/finance/clients/{clientId}/products","href":"/api-reference/finance/assign-product"},{"title":"Get assigned client product","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/finance/clients/{clientId}/products/{clientProductId}","href":"/api-reference/finance/get-assigned-client-product"},{"title":"Revoke supported product","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/finance/clients/{clientId}/products/{clientProductId}/revoke","href":"/api-reference/finance/revoke-supported-product"}]},{"group":"Chargebacks","expanded":false,"pages":[{"title":"List chargebacks","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/finance/chargebacks","href":"/api-reference/finance/list-chargebacks"},{"title":"Get chargeback","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/finance/chargebacks/{chargebackId}","href":"/api-reference/finance/get-chargeback"}]}]},{"group":"Credits","expanded":false,"pages":[{"group":"Credit allocations","expanded":false,"pages":[{"title":"List all credits","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/finance/credits","href":"/api-reference/credits/list-all-credits"}]},{"group":"Client credits","expanded":false,"pages":[{"title":"List client credits","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/finance/clients/{clientId}/credits","href":"/api-reference/credits/list-client-credits"},{"title":"Adjust client credits","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/finance/clients/{clientId}/credits/{creditId}/adjust","href":"/api-reference/credits/adjust-client-credits"}]},{"group":"Credit mutations","expanded":false,"pages":[{"title":"List credit mutations","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/finance/clients/{clientId}/credit-mutations","href":"/api-reference/credits/list-credit-mutations"}]}]},{"group":"Progress","expanded":false,"pages":[{"group":"Measurements","expanded":false,"pages":[{"title":"List measurement types","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/clients/{clientId}/measurements/types","href":"/api-reference/measurements/list-measurement-types"},{"title":"List measurement entries","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/clients/{clientId}/measurements/entries","href":"/api-reference/measurements/list-measurement-entries"},{"title":"Create measurement entry","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/clients/{clientId}/measurements/entries","href":"/api-reference/measurements/create-measurement-entry"},{"title":"Update measurement entry","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json patch /public/v1/clients/{clientId}/measurements/entries/{entryId}","href":"/api-reference/measurements/update-measurement-entry"},{"title":"Archive measurement entry","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json patch /public/v1/clients/{clientId}/measurements/entries/{entryId}/archive","href":"/api-reference/measurements/archive-measurement-entry"},{"title":"List measurement progress summaries","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/clients/{clientId}/measurements/summary","href":"/api-reference/measurements/list-measurement-progress-summaries"}]},{"group":"Progress photos","expanded":false,"pages":[{"title":"List progress photos","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/clients/{clientId}/progress-photos","href":"/api-reference/progress-photos/list-progress-photos"},{"title":"Get progress photo","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/clients/{clientId}/progress-photos/{progressPhotoId}","href":"/api-reference/progress-photos/get-progress-photo"}]}]},{"group":"Habits","expanded":false,"pages":[{"group":"Standard habit templates","expanded":false,"pages":[{"title":"List standard habit templates","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/habit-templates","href":"/api-reference/habits/list-standard-habit-templates"},{"title":"Create standard habit template","description":"Requires `habits:write`. Creates a standard habit template in the authenticated company with a required defaultLanguage and localized name, description, customUnitName and reminder message maps. Apply templates to a client to create client habits that can receive entries.","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/habit-templates","href":"/api-reference/habits/create-standard-habit-template"},{"title":"Update standard habit template","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json patch /public/v1/habit-templates/{templateId}","href":"/api-reference/habits/update-standard-habit-template"},{"title":"Archive standard habit template","description":"Requires `habits:write`. Soft-archives the standard habit template. Already applied client habits are not deleted.","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json patch /public/v1/habit-templates/{templateId}/archive","href":"/api-reference/habits/archive-standard-habit-template"}]},{"group":"Client habits","expanded":false,"pages":[{"title":"List client habits","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/clients/{clientId}/habits","href":"/api-reference/habits/list-client-habits"},{"title":"List habit entries","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/clients/{clientId}/habits/entries","href":"/api-reference/habits/list-habit-entries"},{"title":"Apply standard habit templates","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/clients/{clientId}/habits/apply-templates","href":"/api-reference/habits/apply-standard-habit-templates"},{"title":"Create habit entry","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/clients/{clientId}/habits/{habitId}/entries","href":"/api-reference/habits/create-habit-entry"},{"title":"Update habit entry","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json patch /public/v1/clients/{clientId}/habits/entries/{entryId}","href":"/api-reference/habits/update-habit-entry"},{"title":"Archive client habit","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json patch /public/v1/clients/{clientId}/habits/{habitId}/archive","href":"/api-reference/habits/archive-client-habit"},{"title":"Archive habit entry","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json patch /public/v1/clients/{clientId}/habits/entries/{entryId}/archive","href":"/api-reference/habits/archive-habit-entry"}]}]},{"group":"Forms","expanded":false,"pages":[{"group":"Forms","expanded":false,"pages":[{"title":"List forms","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/forms","href":"/api-reference/forms/list-forms"},{"title":"Create form","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/forms","href":"/api-reference/forms/create-form"},{"title":"Get sanitized form detail","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/forms/{formId}","href":"/api-reference/forms/get-sanitized-form-detail"},{"title":"Update form","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json patch /public/v1/forms/{formId}","href":"/api-reference/forms/update-form"},{"title":"Archive form","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/forms/{formId}/archive","href":"/api-reference/forms/archive-form"}]},{"group":"Intakes","expanded":false,"pages":[{"title":"Assign intake form","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/clients/{clientId}/intake-assignments","href":"/api-reference/intakes/assign-intake-form"},{"title":"Get current intake assignment","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/clients/{clientId}/intake-assignment","href":"/api-reference/intakes/get-current-intake-assignment"},{"title":"Get latest intake submission","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/clients/{clientId}/intake/submission","href":"/api-reference/intakes/get-latest-intake-submission"}]},{"group":"Check-ups","expanded":false,"pages":[{"title":"List assigned checkups","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/clients/{clientId}/checkups","href":"/api-reference/check-ups/list-assigned-checkups"},{"title":"Assign checkup","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/clients/{clientId}/checkups","href":"/api-reference/check-ups/assign-checkup"},{"title":"List checkup submissions","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/clients/{clientId}/checkups/submissions","href":"/api-reference/check-ups/list-checkup-submissions"},{"title":"Get checkup assignment status","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/clients/{clientId}/checkups/{settingId}/status","href":"/api-reference/check-ups/get-checkup-assignment-status"},{"title":"Cancel checkup assignment","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/clients/{clientId}/checkups/{settingId}/cancel","href":"/api-reference/check-ups/cancel-checkup-assignment"}]}]},{"group":"Documents","expanded":false,"pages":[{"group":"Client documents","expanded":false,"pages":[{"title":"List document folders","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/clients/{clientId}/document-folders","href":"/api-reference/documents/list-document-folders"},{"title":"List documents","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/clients/{clientId}/documents","href":"/api-reference/documents/list-documents"},{"title":"Link external document metadata","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/clients/{clientId}/documents/links","href":"/api-reference/documents/link-external-document-metadata"},{"title":"Update document metadata","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json patch /public/v1/clients/{clientId}/documents/{documentId}","href":"/api-reference/documents/update-document-metadata"},{"title":"Archive document metadata","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json patch /public/v1/clients/{clientId}/documents/{documentId}/archive","href":"/api-reference/documents/archive-document-metadata"}]}]},{"group":"Reports","expanded":false,"pages":[{"title":"Get attendance summary","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/reports/attendance-summary","href":"/api-reference/reports/get-attendance-summary"},{"title":"Get revenue summary","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/reports/revenue-summary","href":"/api-reference/reports/get-revenue-summary"},{"title":"Get retention summary","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/reports/retention-summary","href":"/api-reference/reports/get-retention-summary"}]},{"group":"Conversations","expanded":false,"pages":[{"group":"Conversation records","expanded":false,"pages":[{"title":"List conversations","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/conversations","href":"/api-reference/conversations/list-conversations"},{"title":"List conversation inbox","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/conversations/inbox","href":"/api-reference/conversations/list-conversation-inbox"},{"title":"Create conversation","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/conversations","href":"/api-reference/conversations/create-conversation"},{"title":"Get conversation","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/conversations/{conversationId}","href":"/api-reference/conversations/get-conversation"}]},{"group":"Messages","expanded":false,"pages":[{"title":"List conversation messages","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/conversations/{conversationId}/messages","href":"/api-reference/conversations/list-conversation-messages"},{"title":"Send conversation message","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/conversations/{conversationId}/messages","href":"/api-reference/conversations/send-conversation-message"},{"title":"Update conversation message","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json patch /public/v1/conversations/{conversationId}/messages/{messageId}","href":"/api-reference/conversations/update-conversation-message"},{"title":"Delete conversation message","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json delete /public/v1/conversations/{conversationId}/messages/{messageId}","href":"/api-reference/conversations/delete-conversation-message"}]},{"group":"Participants","expanded":false,"pages":[{"title":"List conversation participants","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/conversations/{conversationId}/participants","href":"/api-reference/conversations/list-conversation-participants"},{"title":"Add conversation participants","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/conversations/{conversationId}/participants","href":"/api-reference/conversations/add-conversation-participants"},{"title":"Remove conversation participant","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json delete /public/v1/conversations/{conversationId}/participants/{participantId}","href":"/api-reference/conversations/remove-conversation-participant"}]}]},{"group":"Exports","expanded":false,"pages":[{"title":"List export types","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/exports/types","href":"/api-reference/exports/list-export-types"},{"title":"List export requests","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/exports/requests","href":"/api-reference/exports/list-export-requests"},{"title":"Create an export request","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/exports/requests","href":"/api-reference/exports/create-an-export-request"},{"title":"Get an export request","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/exports/requests/{exportRequestId}","href":"/api-reference/exports/get-an-export-request"},{"title":"Cancel an export request","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/exports/requests/{exportRequestId}/cancel","href":"/api-reference/exports/cancel-an-export-request"},{"title":"Retry an export request","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/exports/requests/{exportRequestId}/retry","href":"/api-reference/exports/retry-an-export-request"},{"title":"Delete an export request","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json delete /public/v1/exports/requests/{exportRequestId}","href":"/api-reference/exports/delete-an-export-request"}]},{"group":"Webhooks","expanded":false,"pages":[{"title":"List webhook subscriptions","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/webhooks","href":"/api-reference/webhooks/list-webhook-subscriptions"},{"title":"Create a webhook subscription","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/webhooks","href":"/api-reference/webhooks/create-a-webhook-subscription"},{"title":"Get a webhook subscription","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/webhooks/{id}","href":"/api-reference/webhooks/get-a-webhook-subscription"},{"title":"Update a webhook subscription","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json patch /public/v1/webhooks/{id}","href":"/api-reference/webhooks/update-a-webhook-subscription"},{"title":"Delete a webhook subscription","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json delete /public/v1/webhooks/{id}","href":"/api-reference/webhooks/delete-a-webhook-subscription"},{"title":"Send a test webhook event","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/webhooks/{id}/test","href":"/api-reference/webhooks/send-a-test-webhook-event"},{"title":"List webhook deliveries","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/webhooks/deliveries","href":"/api-reference/webhooks/list-webhook-deliveries"},{"title":"Get a webhook delivery","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/webhooks/deliveries/{id}","href":"/api-reference/webhooks/get-a-webhook-delivery"}]},{"group":"Workout","expanded":false,"pages":[{"group":"Library","expanded":false,"pages":[{"group":"Exercises","expanded":false,"pages":[{"title":"Create a workout exercise","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/workout/exercises","href":"/api-reference/workout/create-a-workout-exercise"},{"title":"Get workout exercise detail","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/exercises/{id}","href":"/api-reference/workout/get-workout-exercise-detail"},{"title":"Duplicate a library exercise to the coach's own exercises","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/workout/exercises/{id}/duplicate","href":"/api-reference/workout/duplicate-a-library-exercise-to-the-coachs-own-exercises"},{"title":"Read exercises categories","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/exercises/categories","href":"/api-reference/workout/read-exercises-categories"},{"title":"Coach exercise picker (Library / My / Last Used tabs)","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/workout/exercises/company-coach","href":"/api-reference/workout/coach-exercise-picker-library-my-last-used-tabs"},{"title":"Soft-delete several workout exercises","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json delete /public/v1/workout/exercises/delete-multiple","href":"/api-reference/workout/soft-delete-several-workout-exercises"},{"title":"Soft-delete a workout exercise","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json delete /public/v1/workout/exercises/exercise/{id}","href":"/api-reference/workout/soft-delete-a-workout-exercise"},{"title":"Update a workout exercise","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json put /public/v1/workout/exercises/exercise/{id}","href":"/api-reference/workout/update-a-workout-exercise"},{"title":"List workout exercises grouped by muscle group","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/exercises/library/grouped","href":"/api-reference/workout/list-workout-exercises-grouped-by-muscle-group"},{"title":"Search or filter workout exercises","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/exercises/search","href":"/api-reference/workout/search-or-filter-workout-exercises"}]},{"group":"Template categories","expanded":false,"pages":[{"title":"List all workout library categories for the active company","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/library/category","href":"/api-reference/workout/list-all-workout-library-categories-for-the-active-company"},{"title":"Create a workout library category","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/workout/library/category","href":"/api-reference/workout/create-a-workout-library-category"},{"title":"Soft-delete a workout library category","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json delete /public/v1/workout/library/category/{categoryId}","href":"/api-reference/workout/soft-delete-a-workout-library-category"},{"title":"Update a workout library category","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json put /public/v1/workout/library/category/{categoryId}","href":"/api-reference/workout/update-a-workout-library-category"},{"title":"List templates in a workout library category","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/library/category/{categoryId}/templates","href":"/api-reference/workout/list-templates-in-a-workout-library-category"},{"title":"Add templates to a workout library category","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/workout/library/category/{categoryId}/templates","href":"/api-reference/workout/add-templates-to-a-workout-library-category"},{"title":"Remove a template from a workout library category","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json delete /public/v1/workout/library/category/{categoryId}/templates/{templateId}","href":"/api-reference/workout/remove-a-template-from-a-workout-library-category"},{"title":"Reorder templates within a workout library category","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json put /public/v1/workout/library/category/{categoryId}/templates/reorder","href":"/api-reference/workout/reorder-templates-within-a-workout-library-category"},{"title":"Replace or update library category reorder","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json put /public/v1/workout/library/category/reorder","href":"/api-reference/workout/replace-or-update-library-category-reorder"},{"title":"List active template plans available for category assignment","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/library/category/templates","href":"/api-reference/workout/list-active-template-plans-available-for-category-assignment"}]},{"group":"Videos","expanded":false,"pages":[{"title":"List video library entries","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/video-library","href":"/api-reference/workout/list-video-library-entries"},{"title":"Create a video library entry","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/workout/video-library","href":"/api-reference/workout/create-a-video-library-entry"},{"title":"Soft-delete a video library entry","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json delete /public/v1/workout/video-library/{videoId}","href":"/api-reference/workout/soft-delete-a-video-library-entry"},{"title":"Get video library entry detail","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/video-library/{videoId}","href":"/api-reference/workout/get-video-library-entry-detail"},{"title":"Update a video library entry","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json put /public/v1/workout/video-library/{videoId}","href":"/api-reference/workout/update-a-video-library-entry"},{"title":"Toggle publish status of a video library entry","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json patch /public/v1/workout/video-library/{videoId}/publish","href":"/api-reference/workout/toggle-publish-status-of-a-video-library-entry"},{"title":"Get video library dashboard","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/video-library/dashboard","href":"/api-reference/workout/get-video-library-dashboard"},{"title":"Delete video library delete multiple","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json delete /public/v1/workout/video-library/delete-multiple","href":"/api-reference/workout/delete-video-library-delete-multiple"},{"title":"Update video library unpublish multiple","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json patch /public/v1/workout/video-library/unpublish-multiple","href":"/api-reference/workout/update-video-library-unpublish-multiple"}]},{"group":"Video categories","expanded":false,"pages":[{"title":"List all video library categories","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/video-category","href":"/api-reference/workout/list-all-video-library-categories"},{"title":"Create a video library category","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/workout/video-category","href":"/api-reference/workout/create-a-video-library-category"},{"title":"Soft-delete a video library category","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json delete /public/v1/workout/video-category/{categoryId}","href":"/api-reference/workout/soft-delete-a-video-library-category"},{"title":"Update a video library category","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json put /public/v1/workout/video-category/{categoryId}","href":"/api-reference/workout/update-a-video-library-category"},{"title":"List videos in a video library category","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/video-category/{categoryId}/videos","href":"/api-reference/workout/list-videos-in-a-video-library-category"},{"title":"Add videos to a video library category","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/workout/video-category/{categoryId}/videos","href":"/api-reference/workout/add-videos-to-a-video-library-category"},{"title":"Remove a video from a video library category","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json delete /public/v1/workout/video-category/{categoryId}/videos/{videoId}","href":"/api-reference/workout/remove-a-video-from-a-video-library-category"},{"title":"Reorder videos within a video library category","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json put /public/v1/workout/video-category/{categoryId}/videos/reorder","href":"/api-reference/workout/reorder-videos-within-a-video-library-category"},{"title":"Reorder video library categories","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json put /public/v1/workout/video-category/reorder","href":"/api-reference/workout/reorder-video-library-categories"}]},{"group":"Exercise video uploads","expanded":false,"pages":[{"title":"Cancel an exercise video upload","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json delete /public/v1/workout/exercises/video-uploads/{uploadId}","href":"/api-reference/workout/cancel-an-exercise-video-upload"},{"title":"Get exercise video upload status","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/exercises/video-uploads/{uploadId}","href":"/api-reference/workout/get-exercise-video-upload-status"},{"title":"Complete an exercise video upload","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/workout/exercises/video-uploads/{uploadId}/complete","href":"/api-reference/workout/complete-an-exercise-video-upload"},{"title":"Prepare an exercise video upload","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/workout/exercises/video-uploads/presign","href":"/api-reference/workout/prepare-an-exercise-video-upload"}]},{"group":"Video uploads","expanded":false,"pages":[{"title":"Prepare a library video upload","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/workout/video-library/presign","href":"/api-reference/workout/prepare-a-library-video-upload"},{"title":"Cancel a library video upload","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json delete /public/v1/workout/video-library/uploads/{uploadId}","href":"/api-reference/workout/cancel-a-library-video-upload"},{"title":"Get library video upload status","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/video-library/uploads/{uploadId}","href":"/api-reference/workout/get-library-video-upload-status"},{"title":"Complete a library video upload","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/workout/video-library/uploads/{uploadId}/complete","href":"/api-reference/workout/complete-a-library-video-upload"}]},{"group":"Images","expanded":false,"pages":[{"title":"List coach-selectable image library assets","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/image-library","href":"/api-reference/workout/list-coach-selectable-image-library-assets"}]}]},{"group":"Plans","expanded":false,"pages":[{"group":"Template records","expanded":false,"pages":[{"title":"Search or filter workout template plans","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/plans","href":"/api-reference/workout/search-or-filter-workout-template-plans"},{"title":"Create a workout plan","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/workout/plans","href":"/api-reference/workout/create-a-workout-plan"},{"title":"Soft-delete a workout plan","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json delete /public/v1/workout/plans/{id}","href":"/api-reference/workout/soft-delete-a-workout-plan"},{"title":"Get workout plan detail","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/plans/{id}","href":"/api-reference/workout/get-workout-plan-detail"},{"title":"Update a workout plan","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json put /public/v1/workout/plans/{id}","href":"/api-reference/workout/update-a-workout-plan"},{"title":"Update the status of an assigned workout plan","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json patch /public/v1/workout/plans/{id}/status","href":"/api-reference/workout/update-the-status-of-an-assigned-workout-plan"},{"title":"Export a coach-visible plan as PDF","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/plans/{planId}/export","href":"/api-reference/workout/export-a-coach-visible-plan-as-pdf"},{"title":"Delete plans delete multiple","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json delete /public/v1/workout/plans/delete-multiple","href":"/api-reference/workout/delete-plans-delete-multiple"},{"title":"Create or run plans duplicate multiple","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/workout/plans/duplicate-multiple","href":"/api-reference/workout/create-or-run-plans-duplicate-multiple"},{"title":"Duplicate a template or save an assigned plan as a template","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/workout/plans/duplicate/{templateId}","href":"/api-reference/workout/duplicate-a-template-or-save-an-assigned-plan-as-a-template"},{"title":"Alias for workout template-plan search","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/plans/search","href":"/api-reference/workout/alias-for-workout-template-plan-search"},{"title":"Full template editor detail (all days in one call)","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/plans/template/{planId}","href":"/api-reference/workout/full-template-editor-detail-all-days-in-one-call"},{"title":"Plan Review modal — all days with compact exercise lists","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/plans/template/{planId}/review","href":"/api-reference/workout/plan-review-modal-—-all-days-with-compact-exercise-lists"}]},{"group":"Assignments","expanded":false,"pages":[{"title":"Update the date range of an assigned workout plan","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json put /public/v1/workout/plans/{planId}/duration","href":"/api-reference/workout/update-the-date-range-of-an-assigned-workout-plan"},{"title":"Assign a template workout plan to a client","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/workout/plans/assign","href":"/api-reference/workout/assign-a-template-workout-plan-to-a-client"},{"title":"Assign a template workout plan to multiple clients at once","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/workout/plans/assign-multiple","href":"/api-reference/workout/assign-a-template-workout-plan-to-multiple-clients-at-once"},{"title":"Assign multiple workout templates to multiple clients","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/workout/plans/assign-multiple-plans","href":"/api-reference/workout/assign-multiple-workout-templates-to-multiple-clients"},{"title":"List assigned workout plans for a client","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/plans/assigned","href":"/api-reference/workout/list-assigned-workout-plans-for-a-client"},{"title":"Client training page — assigned plans + all dashboard sections","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/plans/assigned-by-coach","href":"/api-reference/workout/client-training-page-—-assigned-plans-+-all-dashboard-sections"},{"title":"Activate or deactivate a client's assigned plan","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json patch /public/v1/workout/plans/assigned/{planId}/status","href":"/api-reference/workout/activate-or-deactivate-a-clients-assigned-plan"},{"title":"Create a workout plan assigned to one client","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/workout/plans/create-and-assign/{clientId}","href":"/api-reference/workout/create-a-workout-plan-assigned-to-one-client"},{"title":"List company templates eligible to assign to a client","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/plans/workouts-to-assign","href":"/api-reference/workout/list-company-templates-eligible-to-assign-to-a-client"},{"title":"List a client's Active assigned plans ready to start","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/plans/workouts-to-start","href":"/api-reference/workout/list-a-clients-active-assigned-plans-ready-to-start"}]},{"group":"Days and ordering","expanded":false,"pages":[{"title":"List workout plan moments","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/plans/moments/{planId}","href":"/api-reference/workout/list-workout-plan-moments"},{"title":"Create a workout plan moment","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/workout/plans/moments/{planId}","href":"/api-reference/workout/create-a-workout-plan-moment"},{"title":"Soft-delete a workout plan moment","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json delete /public/v1/workout/plans/moments/{planId}/{planMomentId}","href":"/api-reference/workout/soft-delete-a-workout-plan-moment"},{"title":"Get workout plan moment detail","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/plans/moments/{planId}/{planMomentId}","href":"/api-reference/workout/get-workout-plan-moment-detail"},{"title":"Update a workout plan moment","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json put /public/v1/workout/plans/moments/{planId}/{planMomentId}","href":"/api-reference/workout/update-a-workout-plan-moment"},{"title":"Duplicate a workout plan moment","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/workout/plans/moments/{planId}/{planMomentId}/duplicate","href":"/api-reference/workout/duplicate-a-workout-plan-moment"},{"title":"Spread calendar programme workouts over available weekdays","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/workout/plans/moments/{planId}/auto-schedule","href":"/api-reference/workout/spread-calendar-programme-workouts-over-available-weekdays"},{"title":"Day Info sidebar — all days with per-day avg RPE","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/plans/template/{planId}/day-info","href":"/api-reference/workout/day-info-sidebar-—-all-days-with-per-day-avg-rpe"},{"title":"Reorder the days of a workout plan","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json patch /public/v1/workout/plans/template/{planId}/days/reorder","href":"/api-reference/workout/reorder-the-days-of-a-workout-plan"},{"title":"Reorder the top-level items of a plan day","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json patch /public/v1/workout/plans/template/{planId}/moments/{planMomentId}/items/reorder","href":"/api-reference/workout/reorder-the-top-level-items-of-a-plan-day"},{"title":"Reorder exercises within a plan moment","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json patch /public/v1/workout/plans/template/{planId}/moments/{planMomentId}/reorder","href":"/api-reference/workout/reorder-exercises-within-a-plan-moment"}]},{"group":"Exercises","expanded":false,"pages":[{"title":"Calculate training load from reps and RIR","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/load-calculator","href":"/api-reference/workout/calculate-training-load-from-reps-and-rir"},{"title":"Create a workout exercise inside a workout plan moment","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/workout/plans/moments/exercises/{planId}/{planMomentId}","href":"/api-reference/workout/create-a-workout-exercise-inside-a-workout-plan-moment"},{"title":"Soft-delete a workout exercise inside a workout plan moment","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json delete /public/v1/workout/plans/moments/exercises/{planId}/{planMomentId}/{exerciseId}","href":"/api-reference/workout/soft-delete-a-workout-exercise-inside-a-workout-plan-moment"},{"title":"Get workout exercise detail from a workout plan moment","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/plans/moments/exercises/{planId}/{planMomentId}/{exerciseId}","href":"/api-reference/workout/get-workout-exercise-detail-from-a-workout-plan-moment"},{"title":"Update a workout exercise inside a workout plan moment","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json put /public/v1/workout/plans/moments/exercises/{planId}/{planMomentId}/{exerciseId}","href":"/api-reference/workout/update-a-workout-exercise-inside-a-workout-plan-moment"},{"title":"Upsert the coach note for an exercise across a plan","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json put /public/v1/workout/plans/moments/exercises/{planId}/{planMomentId}/{exerciseId}/note","href":"/api-reference/workout/upsert-the-coach-note-for-an-exercise-across-a-plan"}]},{"group":"Supersets","expanded":false,"pages":[{"title":"Replace plan-moment superset assignments","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json patch /public/v1/workout/plans/moments/{planId}/{planMomentId}/supersets","href":"/api-reference/workout/replace-plan-moment-superset-assignments"},{"title":"List the supersets in a plan day (Add-to-Superset picker)","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/plans/template/{planId}/moments/{planMomentId}/supersets","href":"/api-reference/workout/list-the-supersets-in-a-plan-day-add-to-superset-picker"},{"title":"Create a superset from library exercises","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/workout/plans/template/{planId}/moments/{planMomentId}/supersets","href":"/api-reference/workout/create-a-superset-from-library-exercises"},{"title":"Delete an entire superset","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json delete /public/v1/workout/plans/template/{planId}/moments/{planMomentId}/supersets/{groupId}","href":"/api-reference/workout/delete-an-entire-superset"},{"title":"Add an exercise to a superset (existing day exercise OR catalog)","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json patch /public/v1/workout/plans/template/{planId}/moments/{planMomentId}/supersets/{groupId}/exercises","href":"/api-reference/workout/add-an-exercise-to-a-superset-existing-day-exercise-or-catalog"},{"title":"Remove an exercise from a superset","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json delete /public/v1/workout/plans/template/{planId}/moments/{planMomentId}/supersets/{groupId}/exercises/{planExerciseId}","href":"/api-reference/workout/remove-an-exercise-from-a-superset"},{"title":"Reorder the exercises inside one superset","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json patch /public/v1/workout/plans/template/{planId}/moments/{planMomentId}/supersets/{groupId}/reorder","href":"/api-reference/workout/reorder-the-exercises-inside-one-superset"},{"title":"Set a superset's prescribed rest","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json patch /public/v1/workout/plans/template/{planId}/moments/{planMomentId}/supersets/{groupId}/rest","href":"/api-reference/workout/set-a-supersets-prescribed-rest"},{"title":"Ungroup a superset","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json patch /public/v1/workout/plans/template/{planId}/moments/{planMomentId}/supersets/{groupId}/ungroup","href":"/api-reference/workout/ungroup-a-superset"}]},{"group":"Programme schedules and weeks","expanded":false,"pages":[{"title":"Replace a workout programme calendar schedule","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json put /public/v1/workout/plans/{planId}/calendar-schedule","href":"/api-reference/workout/replace-a-workout-programme-calendar-schedule"},{"title":"Append an empty assigned workout programme week","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/workout/plans/moments/{planId}/weeks","href":"/api-reference/workout/append-an-empty-assigned-workout-programme-week"},{"title":"Delete a complete workout programme week","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json delete /public/v1/workout/plans/moments/{planId}/weeks/{weekNumber}","href":"/api-reference/workout/delete-a-complete-workout-programme-week"},{"title":"Duplicate a complete workout programme week","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/workout/plans/moments/{planId}/weeks/{weekNumber}/duplicate","href":"/api-reference/workout/duplicate-a-complete-workout-programme-week"},{"title":"Move one item to another weekday of the same week","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json patch /public/v1/workout/plans/template/{planId}/weeks/{weekNumber}/days/{weekday}/items/{itemId}/move","href":"/api-reference/workout/move-one-item-to-another-weekday-of-the-same-week"},{"title":"Reorder the items inside one day of a calendar week","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json patch /public/v1/workout/plans/template/{planId}/weeks/{weekNumber}/days/{weekday}/items/reorder","href":"/api-reference/workout/reorder-the-items-inside-one-day-of-a-calendar-week"},{"title":"Reorder the days inside one week of a multi-week plan","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json patch /public/v1/workout/plans/template/{planId}/weeks/{weekNumber}/days/reorder","href":"/api-reference/workout/reorder-the-days-inside-one-week-of-a-multi-week-plan"}]},{"group":"Publishing and archiving","expanded":false,"pages":[{"title":"Replace or update plans archive multiple","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json put /public/v1/workout/plans/archive-multiple","href":"/api-reference/workout/replace-or-update-plans-archive-multiple"},{"title":"List archived workout template plans","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/plans/archived","href":"/api-reference/workout/list-archived-workout-template-plans"},{"title":"List draft workout template plans","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/plans/drafts","href":"/api-reference/workout/list-draft-workout-template-plans"},{"title":"Publish a draft workout template plan","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json put /public/v1/workout/plans/publish/{templateId}","href":"/api-reference/workout/publish-a-draft-workout-template-plan"},{"title":"Unarchive an archived workout template plan","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json put /public/v1/workout/plans/unarchive/{templateId}","href":"/api-reference/workout/unarchive-an-archived-workout-template-plan"}]}]},{"group":"Client plans","expanded":false,"pages":[{"group":"Assigned plans","expanded":false,"pages":[{"title":"List the client's archived assigned plans (paginated)","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/clients/{clientId}/plans/archived-templates","href":"/api-reference/workout/list-the-clients-archived-assigned-plans-paginated"},{"title":"Get assigned-plan browse detail","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/clients/{clientId}/plans/assigned/{templateId}/detail","href":"/api-reference/workout/get-assigned-plan-browse-detail"},{"title":"Get the assigned-plan session detail (available days)","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/clients/{clientId}/plans/assigned/{templateId}/session-detail","href":"/api-reference/workout/get-the-assigned-plan-session-detail-available-days"},{"title":"Get the freestyle session detail","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/clients/{clientId}/plans/freestyle/session-detail/{sessionId}","href":"/api-reference/workout/get-the-freestyle-session-detail"},{"title":"Get the freestyle workout-execution screen","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/clients/{clientId}/plans/freestyle/workout","href":"/api-reference/workout/get-the-freestyle-workout-execution-screen"},{"title":"Get an assigned plan with per-day completion progress","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/clients/{clientId}/plans/template-with-progress/{templateId}","href":"/api-reference/workout/get-an-assigned-plan-with-per-day-completion-progress"},{"title":"Soft-delete the client's assigned plan","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json delete /public/v1/workout/clients/{clientId}/plans/template/{templateId}","href":"/api-reference/workout/soft-delete-the-clients-assigned-plan"},{"title":"Archive or restore the client's assigned plan","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json patch /public/v1/workout/clients/{clientId}/plans/template/{templateId}/archive","href":"/api-reference/workout/archive-or-restore-the-clients-assigned-plan"},{"title":"Switch the client's assigned plan on or off","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json patch /public/v1/workout/clients/{clientId}/plans/template/{templateId}/status","href":"/api-reference/workout/switch-the-clients-assigned-plan-on-or-off"}]},{"group":"Plan days","expanded":false,"pages":[{"title":"List archived days of the client's assigned plan","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/clients/{clientId}/plans/template/{templateId}/archived-days","href":"/api-reference/workout/list-archived-days-of-the-clients-assigned-plan"},{"title":"Get the day workout-execution screen","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/clients/{clientId}/plans/template/{templateId}/day/{planMomentId}/workout","href":"/api-reference/workout/get-the-day-workout-execution-screen"},{"title":"Add a day to the client's assigned plan","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/workout/clients/{clientId}/plans/template/{templateId}/days","href":"/api-reference/workout/add-a-day-to-the-clients-assigned-plan"},{"title":"Delete a day of the client's assigned plan","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json delete /public/v1/workout/clients/{clientId}/plans/template/{templateId}/days/{planMomentId}","href":"/api-reference/workout/delete-a-day-of-the-clients-assigned-plan"},{"title":"Update a day of the client's assigned plan","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json patch /public/v1/workout/clients/{clientId}/plans/template/{templateId}/days/{planMomentId}","href":"/api-reference/workout/update-a-day-of-the-clients-assigned-plan"},{"title":"Archive or restore a day of the client's assigned plan","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json patch /public/v1/workout/clients/{clientId}/plans/template/{templateId}/days/{planMomentId}/archive","href":"/api-reference/workout/archive-or-restore-a-day-of-the-clients-assigned-plan"},{"title":"Reorder the days of the client's assigned plan","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json patch /public/v1/workout/clients/{clientId}/plans/template/{templateId}/reorder-days","href":"/api-reference/workout/reorder-the-days-of-the-clients-assigned-plan"}]},{"group":"Programme weeks","expanded":false,"pages":[{"title":"List every week of the client's own multi-week programme (reorder screen)","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/clients/{clientId}/plans/template/{templateId}/weeks","href":"/api-reference/workout/list-every-week-of-the-clients-own-multi-week-programme-reorder-screen"},{"title":"Create or run clients :client Id plans template :template Id weeks","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/workout/clients/{clientId}/plans/template/{templateId}/weeks","href":"/api-reference/workout/create-or-run-clients-:client-id-plans-template-:template-id-weeks"},{"title":"Add an activity to one day of the client's plan","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/workout/clients/{clientId}/plans/template/{templateId}/weeks/{weekNumber}/days/{weekday}/activities","href":"/api-reference/workout/add-an-activity-to-one-day-of-the-clients-plan"},{"title":"Reorder the items inside one day of the client's own programme","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json patch /public/v1/workout/clients/{clientId}/plans/template/{templateId}/weeks/{weekNumber}/days/{weekday}/items/reorder","href":"/api-reference/workout/reorder-the-items-inside-one-day-of-the-clients-own-programme"},{"title":"Mark a day of the client's plan as a rest day","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json patch /public/v1/workout/clients/{clientId}/plans/template/{templateId}/weeks/{weekNumber}/days/{weekday}/rest","href":"/api-reference/workout/mark-a-day-of-the-clients-plan-as-a-rest-day"},{"title":"Skip a day of the client's plan (or resume it)","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json patch /public/v1/workout/clients/{clientId}/plans/template/{templateId}/weeks/{weekNumber}/days/{weekday}/skip","href":"/api-reference/workout/skip-a-day-of-the-clients-plan-or-resume-it"},{"title":"Add a workout to one day of the client's plan","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/workout/clients/{clientId}/plans/template/{templateId}/weeks/{weekNumber}/days/{weekday}/workouts","href":"/api-reference/workout/add-a-workout-to-one-day-of-the-clients-plan"},{"title":"Reorder the days inside one week of the client's own programme","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json patch /public/v1/workout/clients/{clientId}/plans/template/{templateId}/weeks/{weekNumber}/days/reorder","href":"/api-reference/workout/reorder-the-days-inside-one-week-of-the-clients-own-programme"},{"title":"Skip a whole week of the client's plan (or resume it)","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json patch /public/v1/workout/clients/{clientId}/plans/template/{templateId}/weeks/{weekNumber}/skip","href":"/api-reference/workout/skip-a-whole-week-of-the-clients-plan-or-resume-it"},{"title":"Reorder the weeks of the client's own multi-week programme","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json patch /public/v1/workout/clients/{clientId}/plans/template/{templateId}/weeks/reorder","href":"/api-reference/workout/reorder-the-weeks-of-the-clients-own-multi-week-programme"}]},{"group":"Library and favourites","expanded":false,"pages":[{"title":"Get workout library home (GET)","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/clients/{clientId}/library","href":"/api-reference/workout/get-workout-library-home-get"},{"title":"Get workout library home","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/workout/clients/{clientId}/library","href":"/api-reference/workout/get-workout-library-home"},{"title":"Get templates in a category (GET)","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/clients/{clientId}/library/category/{categoryId}","href":"/api-reference/workout/get-templates-in-a-category-get"},{"title":"Get templates in a category (See All)","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/workout/clients/{clientId}/library/category/{categoryId}","href":"/api-reference/workout/get-templates-in-a-category-see-all"},{"title":"Get exercise detail","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/clients/{clientId}/library/exercises/{exerciseId}","href":"/api-reference/workout/get-exercise-detail"},{"title":"Toggle exercise favourite","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/workout/clients/{clientId}/library/exercises/{exerciseId}/favourite","href":"/api-reference/workout/toggle-exercise-favourite"},{"title":"Get all favourite exercises","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/clients/{clientId}/library/exercises/favourite","href":"/api-reference/workout/get-all-favourite-exercises"},{"title":"Get workout template detail","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/clients/{clientId}/library/template/{templateId}","href":"/api-reference/workout/get-workout-template-detail"},{"title":"Get plan moment (day) detail","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/clients/{clientId}/library/template/{templateId}/day/{planMomentId}","href":"/api-reference/workout/get-plan-moment-day-detail"},{"title":"Toggle workout plan favourite","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/workout/clients/{clientId}/library/template/{templateId}/favourite","href":"/api-reference/workout/toggle-workout-plan-favourite"},{"title":"Get one week of a multi-week plan","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/clients/{clientId}/library/template/{templateId}/week/{weekNumber}","href":"/api-reference/workout/get-one-week-of-a-multi-week-plan"},{"title":"Get all favourite workout plans","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/clients/{clientId}/library/template/favourite","href":"/api-reference/workout/get-all-favourite-workout-plans"},{"title":"Get client training section data","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/clients/{clientId}/training-section","href":"/api-reference/workout/get-client-training-section-data"}]},{"group":"Client exercises","expanded":false,"pages":[{"title":"List exercises for client with filters","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/workout/clients/{clientId}/exercises/search","href":"/api-reference/workout/list-exercises-for-client-with-filters"},{"title":"List the client's own created exercises (My Exercise)","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/workout/clients/{clientId}/my-exercises","href":"/api-reference/workout/list-the-clients-own-created-exercises-my-exercise"},{"title":"Create a workout exercise as a client","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/workout/clients/{clientId}/exercises","href":"/api-reference/workout/create-a-workout-exercise-as-a-client"},{"title":"Soft-delete a workout exercise as a client","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json delete /public/v1/workout/clients/{clientId}/exercises/{id}","href":"/api-reference/workout/soft-delete-a-workout-exercise-as-a-client"},{"title":"List client-created workout exercises for the active company","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/exercises/client-exercises","href":"/api-reference/workout/list-client-created-workout-exercises-for-the-active-company"},{"title":"Update a workout exercise as a client","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json put /public/v1/workout/clients/{clientId}/exercises/{id}","href":"/api-reference/workout/update-a-workout-exercise-as-a-client"},{"title":"Get the authenticated user's last-used exercises","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/exercises/last-used","href":"/api-reference/workout/get-the-authenticated-users-last-used-exercises"}]},{"group":"Video library","expanded":false,"pages":[{"title":"Get video detail","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/clients/{clientId}/video-library/{videoId}","href":"/api-reference/workout/get-video-detail"},{"title":"Toggle video favourite","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/workout/clients/{clientId}/video-library/{videoId}/favorite","href":"/api-reference/workout/toggle-video-favourite"},{"title":"Update video watch progress","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/workout/clients/{clientId}/video-library/{videoId}/progress","href":"/api-reference/workout/update-video-watch-progress"},{"title":"Get all videos in a category (See All)","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/workout/clients/{clientId}/video-library/category/{categoryId}","href":"/api-reference/workout/get-all-videos-in-a-category-see-all"},{"title":"Get favourite videos","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/clients/{clientId}/video-library/favorites","href":"/api-reference/workout/get-favourite-videos"},{"title":"Get video library home","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/workout/clients/{clientId}/video-library/home","href":"/api-reference/workout/get-video-library-home"}]},{"group":"Equipment","expanded":false,"pages":[{"title":"Get client workout equipment catalog, selections, and presets","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/equipment/clients/{clientId}","href":"/api-reference/workout/get-client-workout-equipment-catalog-selections-and-presets"},{"title":"Update client workout equipment selections","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json put /public/v1/workout/equipment/clients/{clientId}","href":"/api-reference/workout/update-client-workout-equipment-selections"},{"title":"Create a client-scoped custom equipment item","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/workout/equipment/clients/{clientId}/custom-items","href":"/api-reference/workout/create-a-client-scoped-custom-equipment-item"},{"title":"Delete a client-scoped custom equipment item","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json delete /public/v1/workout/equipment/clients/{clientId}/custom-items/{itemId}","href":"/api-reference/workout/delete-a-client-scoped-custom-equipment-item"},{"title":"Update a client-scoped custom equipment item","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json put /public/v1/workout/equipment/clients/{clientId}/custom-items/{itemId}","href":"/api-reference/workout/update-a-client-scoped-custom-equipment-item"}]},{"group":"Running profiles and adaptation","expanded":false,"pages":[{"title":"Read the latest 100 plan decisions and pending reviews","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/cardio/clients/{clientId}/plans/{planId}/adaptation/decisions","href":"/api-reference/workout/read-the-latest-100-plan-decisions-and-pending-reviews"},{"title":"Undo the latest safe decision","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/workout/cardio/clients/{clientId}/plans/{planId}/adaptation/decisions/{decisionId}/undo","href":"/api-reference/workout/undo-the-latest-safe-decision"},{"title":"Read the next due review and plan revision","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/cardio/clients/{clientId}/plans/{planId}/adaptation/overview","href":"/api-reference/workout/read-the-next-due-review-and-plan-revision"},{"title":"Read a client's running profile and calculated baseline (coach)","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/cardio/clients/{clientId}/profile","href":"/api-reference/workout/read-a-clients-running-profile-and-calculated-baseline-coach"},{"title":"Partially update measured running-profile inputs (coach)","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json put /public/v1/workout/cardio/clients/{clientId}/profile","href":"/api-reference/workout/partially-update-measured-running-profile-inputs-coach"},{"title":"Read the authenticated athlete's latest adaptation decision","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/clients/{clientId}/cardio/adaptation/latest","href":"/api-reference/workout/read-the-authenticated-athletes-latest-adaptation-decision"},{"title":"Athlete reports an active niggle","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/workout/clients/{clientId}/cardio/niggle","href":"/api-reference/workout/athlete-reports-an-active-niggle"},{"title":"Athlete clears their active niggle","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/workout/clients/{clientId}/cardio/niggle/clear","href":"/api-reference/workout/athlete-clears-their-active-niggle"},{"title":"Read the authenticated athlete's running profile","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/clients/{clientId}/cardio/profile","href":"/api-reference/workout/read-the-authenticated-athletes-running-profile"}]},{"group":"Running plans","expanded":false,"pages":[{"title":"Save the structured race goal of an assigned plan","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json put /public/v1/workout/cardio/clients/{clientId}/plans/{planId}/goal","href":"/api-reference/workout/save-the-structured-race-goal-of-an-assigned-plan"},{"title":"Generate into an empty assigned calendar programme","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/workout/cardio/clients/{clientId}/plans/{planId}/running-plan/generate","href":"/api-reference/workout/generate-into-an-empty-assigned-calendar-programme"},{"title":"Apply an audited weekly review","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/workout/cardio/clients/{clientId}/plans/{planId}/running-plan/review/apply","href":"/api-reference/workout/apply-an-audited-weekly-review"},{"title":"Preview the next two/three future running weeks","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/workout/cardio/clients/{clientId}/plans/{planId}/running-plan/review/preview","href":"/api-reference/workout/preview-the-next-twothree-future-running-weeks"},{"title":"Preview workbook-derived running structure and unresolved rules","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/workout/cardio/clients/{clientId}/running-plan/preview","href":"/api-reference/workout/preview-workbook-derived-running-structure-and-unresolved-rules"}]},{"group":"Workout feedback","expanded":false,"pages":[{"title":"Submit session workout feedback","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/workout/clients/{clientId}/plans/workout-feedback","href":"/api-reference/workout/submit-session-workout-feedback"},{"title":"Clear session workout feedback","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json delete /public/v1/workout/clients/{clientId}/plans/workout-feedback/{sessionId}","href":"/api-reference/workout/clear-session-workout-feedback"},{"title":"Edit session workout feedback","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json patch /public/v1/workout/clients/{clientId}/plans/workout-feedback/{sessionId}","href":"/api-reference/workout/edit-session-workout-feedback"},{"title":"Send session workout feedback reminders","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/workout/clients/{clientId}/plans/workout-feedback/remind","href":"/api-reference/workout/send-session-workout-feedback-reminders"}]}]},{"group":"Calendar","expanded":false,"pages":[{"title":"Get the client's merged programme calendar week","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/clients/{clientId}/programme-calendar","href":"/api-reference/workout/get-the-clients-merged-programme-calendar-week"},{"title":"Get every programme's scheduled work for one date","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/clients/{clientId}/programme-day","href":"/api-reference/workout/get-every-programmes-scheduled-work-for-one-date"},{"title":"Create a personal training calendar item","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/workout/clients/{clientId}/training-calendar/items","href":"/api-reference/workout/create-a-personal-training-calendar-item"},{"title":"Soft-delete a personal training calendar item","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json delete /public/v1/workout/clients/{clientId}/training-calendar/items/{itemId}","href":"/api-reference/workout/soft-delete-a-personal-training-calendar-item"},{"title":"Update a personal training calendar item","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json patch /public/v1/workout/clients/{clientId}/training-calendar/items/{itemId}","href":"/api-reference/workout/update-a-personal-training-calendar-item"},{"title":"Start a planned personal freestyle workout","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/workout/clients/{clientId}/training-calendar/items/{itemId}/start","href":"/api-reference/workout/start-a-planned-personal-freestyle-workout"},{"title":"Restore one skipped or moved programme occurrence","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json delete /public/v1/workout/clients/{clientId}/training-calendar/occurrences/{planId}/{scheduleItemId}/{occurrenceDate}","href":"/api-reference/workout/restore-one-skipped-or-moved-programme-occurrence"},{"title":"Move or skip one programme workout occurrence","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json put /public/v1/workout/clients/{clientId}/training-calendar/occurrences/{planId}/{scheduleItemId}/{occurrenceDate}","href":"/api-reference/workout/move-or-skip-one-programme-workout-occurrence"}]},{"group":"Sessions and performance","expanded":false,"pages":[{"group":"Start and manage sessions","expanded":false,"pages":[{"title":"List unified coach and client workout sessions","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/sessions","href":"/api-reference/workout/list-unified-coach-and-client-workout-sessions"},{"title":"Get a read-only standalone client workout session","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/sessions/{sessionId}","href":"/api-reference/workout/get-a-read-only-standalone-client-workout-session"},{"title":"Delete a freestyle workout (session + its performances)","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json delete /public/v1/workout/performance/freestyle/sessions/{sessionId}","href":"/api-reference/workout/delete-a-freestyle-workout-session-+-its-performances"},{"title":"Get workout session detail","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/performance/sessions/{sessionId}","href":"/api-reference/workout/get-workout-session-detail"},{"title":"Complete a workout session","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json patch /public/v1/workout/performance/sessions/{sessionId}/complete","href":"/api-reference/workout/complete-a-workout-session"},{"title":"Get the completed-session summary cards","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/performance/sessions/{sessionId}/completed-detail","href":"/api-reference/workout/get-the-completed-session-summary-cards"},{"title":"Edit the total duration of a session","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json patch /public/v1/workout/performance/sessions/{sessionId}/duration","href":"/api-reference/workout/edit-the-total-duration-of-a-session"},{"title":"Rate a workout session","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json patch /public/v1/workout/performance/sessions/{sessionId}/rating","href":"/api-reference/workout/rate-a-workout-session"},{"title":"Update freestyle workout session settings","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json patch /public/v1/workout/performance/sessions/{sessionId}/settings","href":"/api-reference/workout/update-freestyle-workout-session-settings"},{"title":"Update a workout session status","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json patch /public/v1/workout/performance/sessions/{sessionId}/status","href":"/api-reference/workout/update-a-workout-session-status"},{"title":"Get the current workout session","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/performance/sessions/current","href":"/api-reference/workout/get-the-current-workout-session"},{"title":"Start, continue, fully reset, or clear freestyle performance","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/workout/performance/sessions/start","href":"/api-reference/workout/start-continue-fully-reset-or-clear-freestyle-performance"}]},{"group":"Exercises and setup","expanded":false,"pages":[{"title":"Remove a prescribed plan-day exercise (by plan exercise id)","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json delete /public/v1/workout/performance/plans/{planId}/moments/{planMomentId}/exercises/{planExerciseId}","href":"/api-reference/workout/remove-a-prescribed-plan-day-exercise-by-plan-exercise-id"},{"title":"Set next-target guidance for a prescribed plan-day exercise","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json put /public/v1/workout/performance/plans/{planId}/moments/{planMomentId}/exercises/{planExerciseId}/next-target","href":"/api-reference/workout/set-next-target-guidance-for-a-prescribed-plan-day-exercise"},{"title":"Swap a prescribed plan-day exercise (by plan exercise id)","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/workout/performance/plans/{planId}/moments/{planMomentId}/exercises/{planExerciseId}/swap","href":"/api-reference/workout/swap-a-prescribed-plan-day-exercise-by-plan-exercise-id"},{"title":"Create exercise performance for a workout session","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/workout/performance/sessions/{sessionId}/exercises","href":"/api-reference/workout/create-exercise-performance-for-a-workout-session"},{"title":"Delete exercise performance from a workout session","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json delete /public/v1/workout/performance/sessions/{sessionId}/exercises/{exerciseId}","href":"/api-reference/workout/delete-exercise-performance-from-a-workout-session"},{"title":"Upsert exercise performance for a workout session","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json put /public/v1/workout/performance/sessions/{sessionId}/exercises/{exerciseId}","href":"/api-reference/workout/upsert-exercise-performance-for-a-workout-session"},{"title":"Replace an exercise performance with another exercise","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/workout/performance/sessions/{sessionId}/exercises/{exerciseIdToReplace}/replace","href":"/api-reference/workout/replace-an-exercise-performance-with-another-exercise"},{"title":"Update a logged performance's machine setup (freestyle)","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json put /public/v1/workout/performance/sessions/{sessionId}/exercises/{performanceId}/setup","href":"/api-reference/workout/update-a-logged-performances-machine-setup-freestyle"},{"title":"Bulk-add exercises to a workout session","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/workout/performance/sessions/{sessionId}/exercises/bulk","href":"/api-reference/workout/bulk-add-exercises-to-a-workout-session"},{"title":"Reorder the top-level items of a session (freestyle)","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json patch /public/v1/workout/performance/sessions/{sessionId}/items/reorder","href":"/api-reference/workout/reorder-the-top-level-items-of-a-session-freestyle"},{"title":"Swap a specific logged performance's exercise (by performance id)","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/workout/performance/sessions/{sessionId}/performances/{performanceId}/swap","href":"/api-reference/workout/swap-a-specific-logged-performances-exercise-by-performance-id"}]},{"group":"Supersets","expanded":false,"pages":[{"title":"List the supersets in a session (Add-to-Superset picker)","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/performance/sessions/{sessionId}/supersets","href":"/api-reference/workout/list-the-supersets-in-a-session-add-to-superset-picker"},{"title":"Replace session-level superset assignments","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json patch /public/v1/workout/performance/sessions/{sessionId}/supersets","href":"/api-reference/workout/replace-session-level-superset-assignments"},{"title":"Create a session superset from library exercises","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/workout/performance/sessions/{sessionId}/supersets","href":"/api-reference/workout/create-a-session-superset-from-library-exercises"},{"title":"Delete an entire session superset (freestyle)","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json delete /public/v1/workout/performance/sessions/{sessionId}/supersets/{groupId}","href":"/api-reference/workout/delete-an-entire-session-superset-freestyle"},{"title":"Add an exercise to a session superset (freestyle)","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json patch /public/v1/workout/performance/sessions/{sessionId}/supersets/{groupId}/exercises","href":"/api-reference/workout/add-an-exercise-to-a-session-superset-freestyle"},{"title":"Remove an exercise from a session superset (freestyle)","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json delete /public/v1/workout/performance/sessions/{sessionId}/supersets/{groupId}/exercises/{performanceId}","href":"/api-reference/workout/remove-an-exercise-from-a-session-superset-freestyle"},{"title":"Reorder the exercises inside a session superset (freestyle)","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json patch /public/v1/workout/performance/sessions/{sessionId}/supersets/{groupId}/reorder","href":"/api-reference/workout/reorder-the-exercises-inside-a-session-superset-freestyle"},{"title":"Set a superset's rest (client's own)","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json patch /public/v1/workout/performance/sessions/{sessionId}/supersets/{groupId}/rest","href":"/api-reference/workout/set-a-supersets-rest-clients-own"},{"title":"Ungroup a session superset (freestyle)","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json patch /public/v1/workout/performance/sessions/{sessionId}/supersets/{groupId}/ungroup","href":"/api-reference/workout/ungroup-a-session-superset-freestyle"}]},{"group":"Activity metrics and history transfer","expanded":false,"pages":[{"title":"Get one programme activity occurrence","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/performance/activities/{planId}/{scheduleItemId}/{plannedDate}","href":"/api-reference/workout/get-one-programme-activity-occurrence"},{"title":"Save one programme activity occurrence","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json put /public/v1/workout/performance/activities/{planId}/{scheduleItemId}/{plannedDate}","href":"/api-reference/workout/save-one-programme-activity-occurrence"},{"title":"Copy or move workout performance history between exercises","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/workout/performance/transfer-stats","href":"/api-reference/workout/copy-or-move-workout-performance-history-between-exercises"}]}]},{"group":"Groups","expanded":false,"pages":[{"group":"Event context and start","expanded":false,"pages":[{"title":"Get calendar event participants for group workout start","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/groups/events/{eventId}/context","href":"/api-reference/workout/get-calendar-event-participants-for-group-workout-start"},{"title":"List workout options for calendar event participants","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/groups/events/{eventId}/plan-options","href":"/api-reference/workout/list-workout-options-for-calendar-event-participants"},{"title":"Preview resolved workouts before starting a group workout","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/groups/events/{eventId}/start-preview","href":"/api-reference/workout/preview-resolved-workouts-before-starting-a-group-workout"},{"title":"List workout options for a manual group or company settings","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/groups/plan-options","href":"/api-reference/workout/list-workout-options-for-a-manual-group-or-company-settings"},{"title":"Start or resume a multi-client coach group workout","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/workout/groups/start","href":"/api-reference/workout/start-or-resume-a-multi-client-coach-group-workout"},{"title":"Start or resume a coach-led workout for one client","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/workout/groups/start-client","href":"/api-reference/workout/start-or-resume-a-coach-led-workout-for-one-client"}]},{"group":"Group runs","expanded":false,"pages":[{"title":"List coach workout sessions","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/groups/runs","href":"/api-reference/workout/list-coach-workout-sessions"},{"title":"Get a compact group workout run with participant session data","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/groups/runs/{runId}","href":"/api-reference/workout/get-a-compact-group-workout-run-with-participant-session-data"},{"title":"Complete the entire group workout run","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/workout/groups/runs/{runId}/complete","href":"/api-reference/workout/complete-the-entire-group-workout-run"},{"title":"Bulk update individual participant performance records","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/workout/groups/runs/{runId}/performance/bulk","href":"/api-reference/workout/bulk-update-individual-participant-performance-records"},{"title":"Pause or resume the central timer of a group workout run","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json patch /public/v1/workout/groups/runs/{runId}/status","href":"/api-reference/workout/pause-or-resume-the-central-timer-of-a-group-workout-run"}]},{"group":"Participants","expanded":false,"pages":[{"title":"Add participants to an active group workout run","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/workout/groups/runs/{runId}/participants","href":"/api-reference/workout/add-participants-to-an-active-group-workout-run"},{"title":"Reconcile participants for an active group workout run","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json put /public/v1/workout/groups/runs/{runId}/participants","href":"/api-reference/workout/reconcile-participants-for-an-active-group-workout-run"},{"title":"Remove a participant from the group workout session","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json delete /public/v1/workout/groups/runs/{runId}/participants/{clientId}","href":"/api-reference/workout/remove-a-participant-from-the-group-workout-session"},{"title":"Reset one participant's session or performance","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/workout/groups/runs/{runId}/participants/{clientId}/restart","href":"/api-reference/workout/reset-one-participants-session-or-performance"},{"title":"Pause, resume, complete, stop, or cancel one participant","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json patch /public/v1/workout/groups/runs/{runId}/participants/{clientId}/status","href":"/api-reference/workout/pause-resume-complete-stop-or-cancel-one-participant"},{"title":"Change one participant workout source","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json patch /public/v1/workout/groups/runs/{runId}/participants/{clientId}/workout-source","href":"/api-reference/workout/change-one-participant-workout-source"}]},{"group":"Sessions and days","expanded":false,"pages":[{"title":"Get one coach group workout session detail","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/groups/sessions/{sessionId}","href":"/api-reference/workout/get-one-coach-group-workout-session-detail"},{"title":"Complete one individual session inside a group workout","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json patch /public/v1/workout/groups/sessions/{sessionId}/complete","href":"/api-reference/workout/complete-one-individual-session-inside-a-group-workout"},{"title":"Change the active group session day","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json patch /public/v1/workout/groups/sessions/{sessionId}/day","href":"/api-reference/workout/change-the-active-group-session-day"},{"title":"List selectable plan days for the active group session","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/groups/sessions/{sessionId}/days","href":"/api-reference/workout/list-selectable-plan-days-for-the-active-group-session"},{"title":"List selectable days for a selected workout plan","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/groups/sessions/{sessionId}/plans/{planId}/days","href":"/api-reference/workout/list-selectable-days-for-a-selected-workout-plan"},{"title":"Pause or resume one individual session inside a group workout","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json patch /public/v1/workout/groups/sessions/{sessionId}/status","href":"/api-reference/workout/pause-or-resume-one-individual-session-inside-a-group-workout"}]},{"group":"Exercises","expanded":false,"pages":[{"title":"Create or run groups performance sessions :session Id exercises :exercise Id To Replace replace","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/workout/groups/performance/sessions/{sessionId}/exercises/{exerciseIdToReplace}/replace","href":"/api-reference/workout/create-or-run-groups-performance-sessions-:session-id-exercises-:exercise-id-to-replace-replace"},{"title":"Create exercise performance in a group workout session","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/workout/groups/sessions/{sessionId}/exercises","href":"/api-reference/workout/create-exercise-performance-in-a-group-workout-session"},{"title":"Delete one exercise performance from a group workout session","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json delete /public/v1/workout/groups/sessions/{sessionId}/exercises/{exerciseId}","href":"/api-reference/workout/delete-one-exercise-performance-from-a-group-workout-session"},{"title":"Upsert one exercise performance in a group workout session","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json put /public/v1/workout/groups/sessions/{sessionId}/exercises/{exerciseId}","href":"/api-reference/workout/upsert-one-exercise-performance-in-a-group-workout-session"},{"title":"Replace one exercise performance in a group workout session","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/workout/groups/sessions/{sessionId}/exercises/{exerciseIdToReplace}/replace","href":"/api-reference/workout/replace-one-exercise-performance-in-a-group-workout-session"},{"title":"Reorder performances inside a group workout session","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json patch /public/v1/workout/groups/sessions/{sessionId}/exercises/reorder","href":"/api-reference/workout/reorder-performances-inside-a-group-workout-session"}]},{"group":"Supersets","expanded":false,"pages":[{"title":"Replace session-level superset assignments for a group session","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json patch /public/v1/workout/groups/sessions/{sessionId}/supersets","href":"/api-reference/workout/replace-session-level-superset-assignments-for-a-group-session"},{"title":"Delete every exercise in a session-level superset","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json delete /public/v1/workout/groups/sessions/{sessionId}/supersets/{groupId}","href":"/api-reference/workout/delete-every-exercise-in-a-session-level-superset"}]}]},{"group":"Progress","expanded":false,"pages":[{"group":"History","expanded":false,"pages":[{"title":"Exercise detail — History \u0026 Statistics (combined)","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/clients/{clientId}/library/exercises/{exerciseId}/history","href":"/api-reference/workout/exercise-detail-—-history-\u0026-statistics-combined"},{"title":"Client freestyle-workout History page (Feed + Statistics tabs)","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/workout/clients/{clientId}/plans/freestyle-history","href":"/api-reference/workout/client-freestyle-workout-history-page-feed-+-statistics-tabs"},{"title":"Single freestyle workout — freestyle History detail","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/workout/clients/{clientId}/plans/freestyle-history/workout/{sessionId}","href":"/api-reference/workout/single-freestyle-workout-—-freestyle-history-detail"},{"title":"Client training-plan History page (Feed + Statistics tabs)","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/workout/clients/{clientId}/plans/history","href":"/api-reference/workout/client-training-plan-history-page-feed-+-statistics-tabs"},{"title":"Single completed plan — training-plan History detail","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/workout/clients/{clientId}/plans/history/plan/{planId}","href":"/api-reference/workout/single-completed-plan-—-training-plan-history-detail"},{"title":"Multi-week plan history detail — every week at once","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/workout/clients/{clientId}/plans/history/plan/{planId}/weeks","href":"/api-reference/workout/multi-week-plan-history-detail-—-every-week-at-once"},{"title":"MERGED client History page (Feed + Statistics, plan + freestyle)","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/workout/clients/{clientId}/plans/merged/history","href":"/api-reference/workout/merged-client-history-page-feed-+-statistics-plan-+-freestyle"},{"title":"Create or run clients :client Id plans merged history all","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/workout/clients/{clientId}/plans/merged/history-all","href":"/api-reference/workout/create-or-run-clients-:client-id-plans-merged-history-all"},{"title":"Get workout day performance history (session detail)","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/clients/{clientId}/plans/workout-day-history/{sessionId}","href":"/api-reference/workout/get-workout-day-performance-history-session-detail"},{"title":"Get one exercise's record history inside the client's assigned plans","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/clients/{clientId}/plans/workout-exercise-history/{exerciseId}","href":"/api-reference/workout/get-one-exercises-record-history-inside-the-clients-assigned-plans"},{"title":"Get the client's Workout History screen (feed / exercises / statistics)","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/workout/clients/{clientId}/plans/workout-history","href":"/api-reference/workout/get-the-clients-workout-history-screen-feed-exercises-statistics"},{"title":"Workout History search (workoutPlans / exercises / activities)","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/workout/clients/{clientId}/plans/workout-history/search","href":"/api-reference/workout/workout-history-search-workoutplans-exercises-activities"}]},{"group":"Personal records and exercise statistics","expanded":false,"pages":[{"title":"Get workout exercise history for the authenticated client","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/performance/exercises/{exerciseId}/stats","href":"/api-reference/workout/get-workout-exercise-history-for-the-authenticated-client"},{"title":"Get a client's freestyle personal records (paginated)","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/clients/{clientId}/plans/freestyle-recent-prs","href":"/api-reference/workout/get-a-clients-freestyle-personal-records-paginated"},{"title":"Get a client's most-performed freestyle exercises (paginated)","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/clients/{clientId}/plans/freestyle-top-exercises","href":"/api-reference/workout/get-a-clients-most-performed-freestyle-exercises-paginated"},{"title":"MERGED client personal records (plan + freestyle, paginated)","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/clients/{clientId}/plans/merged/recent-prs","href":"/api-reference/workout/merged-client-personal-records-plan-+-freestyle-paginated"},{"title":"MERGED client most-performed exercises (plan + freestyle, paginated)","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/clients/{clientId}/plans/merged/top-exercises","href":"/api-reference/workout/merged-client-most-performed-exercises-plan-+-freestyle-paginated"},{"title":"Get all personal records for a client (paginated)","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/clients/{clientId}/plans/recent-prs","href":"/api-reference/workout/get-all-personal-records-for-a-client-paginated"},{"title":"Get a client's most-performed exercises (paginated)","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/clients/{clientId}/plans/top-exercises","href":"/api-reference/workout/get-a-clients-most-performed-exercises-paginated"},{"title":"Get the Workout History screen's personal records for a client (paginated)","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/clients/{clientId}/plans/workout-recent-prs","href":"/api-reference/workout/get-the-workout-history-screens-personal-records-for-a-client-paginated"},{"title":"Get the Workout History screen's most-performed exercises for a client (paginated)","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/clients/{clientId}/plans/workout-top-exercises","href":"/api-reference/workout/get-the-workout-history-screens-most-performed-exercises-for-a-client-paginated"}]},{"group":"Summaries and rankings","expanded":false,"pages":[{"title":"Get the full paginated weekly ranking (leaderboard)","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/clients/{clientId}/weekly-ranking","href":"/api-reference/workout/get-the-full-paginated-weekly-ranking-leaderboard"},{"title":"List workout activity sessions with recorded metrics","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/performance/activity","href":"/api-reference/workout/list-workout-activity-sessions-with-recorded-metrics"},{"title":"Get workout muscle-activation heatmap","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/performance/muscle-heatmap","href":"/api-reference/workout/get-workout-muscle-activation-heatmap"},{"title":"Get workout performance summary for a client","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/performance/summary","href":"/api-reference/workout/get-workout-performance-summary-for-a-client"},{"title":"Client Performance Summary for a date (calendar + stat cards + exercises)","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/clients/{clientId}/plans/performance-summary","href":"/api-reference/workout/client-performance-summary-for-a-date-calendar-+-stat-cards-+-exercises"}]}]},{"group":"Settings","expanded":false,"pages":[{"group":"Equipment and machine presets","expanded":false,"pages":[{"title":"Get company workout equipment catalog, location selections, and presets","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/equipment/company","href":"/api-reference/workout/get-company-workout-equipment-catalog-location-selections-and-presets"},{"title":"Update company workout equipment selections for a location","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json put /public/v1/workout/equipment/company","href":"/api-reference/workout/update-company-workout-equipment-selections-for-a-location"},{"title":"Create a company-scoped custom equipment item","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json post /public/v1/workout/equipment/company/custom-items","href":"/api-reference/workout/create-a-company-scoped-custom-equipment-item"},{"title":"Delete a company-scoped custom equipment item","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json delete /public/v1/workout/equipment/company/custom-items/{itemId}","href":"/api-reference/workout/delete-a-company-scoped-custom-equipment-item"},{"title":"Update a company-scoped custom equipment item","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json put /public/v1/workout/equipment/company/custom-items/{itemId}","href":"/api-reference/workout/update-a-company-scoped-custom-equipment-item"},{"title":"Read equipment options","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/equipment/options","href":"/api-reference/workout/read-equipment-options"},{"title":"Read exercises equipment","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/exercises/equipment","href":"/api-reference/workout/read-exercises-equipment"},{"title":"Soft archive exercise setup preset","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json delete /public/v1/workout/machine-settings/presets/{exerciseId}","href":"/api-reference/workout/soft-archive-exercise-setup-preset"},{"title":"Get resolved exercise setup preset","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/machine-settings/presets/{exerciseId}","href":"/api-reference/workout/get-resolved-exercise-setup-preset"},{"title":"Create or update exercise setup preset","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json put /public/v1/workout/machine-settings/presets/{exerciseId}","href":"/api-reference/workout/create-or-update-exercise-setup-preset"}]},{"group":"Membership and product rules","expanded":false,"pages":[{"title":"Get workout automation for a membership","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/membership-rules/{membershipId}","href":"/api-reference/workout/get-workout-automation-for-a-membership"},{"title":"Update workout automation for a membership","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json put /public/v1/workout/membership-rules/{membershipId}","href":"/api-reference/workout/update-workout-automation-for-a-membership"},{"title":"Get workout automation for a store product","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/product-rules/{productType}/{productId}","href":"/api-reference/workout/get-workout-automation-for-a-store-product"},{"title":"Update workout automation for a store product","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json put /public/v1/workout/product-rules/{productType}/{productId}","href":"/api-reference/workout/update-workout-automation-for-a-store-product"},{"title":"Bulk update workout automation for store products","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json put /public/v1/workout/product-rules/bulk","href":"/api-reference/workout/bulk-update-workout-automation-for-store-products"}]},{"group":"Training preferences","expanded":false,"pages":[{"title":"Read sport configuration, goal distances and the expert template/ladders catalog","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json get /public/v1/workout/cardio/config","href":"/api-reference/workout/read-sport-configuration-goal-distances-and-the-expert-templateladders-catalog"},{"title":"Update a client's training-section visibility toggles","deprecated":null,"version":null,"openapi":"/openapi/public-v1.json patch /public/v1/workout/plans/training-sections-visibility","href":"/api-reference/workout/update-a-clients-training-section-visibility-toggles"}]}]}]}]},{"tab":"MCP","pages":[{"title":"MCP","href":"/mcp/overview"}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/changelog"}]}]},"title":"Update standard habit template - FITsociety Developer APIs","buildId":"dpl_849ArpqvBiCczQiT1Y1stNGpbqHT","deploymentId":"dpl_849ArpqvBiCczQiT1Y1stNGpbqHT","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-Bbp7I60D.js","utils-C3RIvJha.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-DqD-vLt8.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-B31Loprg.js","snippetPresets-DKpk-b8t.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-Cj65AhOR.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BXtn5gcC.js","shallow-RY2b03Cp.js","getApiPlaygroundDisplay-B0jeiPk3.js","CodeSnippet-CYgBjjwn.js","CodeSnippets-DOngDrYB.js","Page-n7I5XbKb.js","getPastedJson-DRQbJx-T.js","icon-CQiQCicY.js","MethodPill-BKTLdNtu.js","DuplicateIcon-B9jpAdat.js","createIcon-DCddRrXv.js","DynamicMarkdown-a8hUKrw6.js","SectionHeading-eECVV2eH.js","axios-vUo_bRtp.js","Markdown--GF7ZIpf.js","clsx-DZLdJUrt.js","lib--scc4DXi.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-2LoAhjKH.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-Zwc0ZncM.js"]}