{
"type": "about:blank",
"title": "Unauthorized",
"status": 401,
"detail": "The access token has expired. Request a new one.",
"code": "token_expired",
"request_id": "req_019a3b2c-4d5e-7f60-8a1b-2c3d4e5f6a7b"
}
{
"type": "about:blank",
"title": "Too Many Requests",
"status": 429,
"detail": "Rate limit of 600 requests per minute reached.",
"code": "rate_limited",
"request_id": "req_019a3b2c-4d5e-7f60-8a1b-2c3d4e5f6a7b"
}
Progress
Get today
What the home screen needs for the patient’s today, in their time zone: targets against what’s logged so far,
the plan’s meals and workouts for the day, habits, the next reminder, recent milestones, and counts of open
forms, unread care messages and legal documents to accept.
Plans: AI + health and fitness coaches (ai_health_fitness), AI only (ai_only).
A 15-minute token bound to one patient and one enrollment, issued by POST /v1/oauth/token with the
token-exchange grant. Treat it as opaque. When it expires, exchange a fresh assertion; there is no refresh token.
Milestones reached in the last 7 days, newest first.
Show child attributes
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"TeraRx API","description":"GLP-1 coaching for telehealth brands, their patients and their prescribers.","colors":{"primary":"#465FFF","light":"#7592FF","dark":"#2A31D8"},"logo":{"light":"https://mintcdn.com/tera-health/uWz_0YeC9jmRBnOf/logo/terarx-logo-on-light.webp?fit=max\u0026auto=format\u0026n=uWz_0YeC9jmRBnOf\u0026q=85\u0026s=e1b13d13ab2a8adf4dd39a95782a1e51","dark":"https://mintcdn.com/tera-health/uWz_0YeC9jmRBnOf/logo/terarx-logo-on-dark.webp?fit=max\u0026auto=format\u0026n=uWz_0YeC9jmRBnOf\u0026q=85\u0026s=e22a4d909beab942b4f07d1241ad3f50","href":"/introduction"},"favicon":"https://mintcdn.com/tera-health/Etya93TUDmx6XFCd/logo/terarx-mark-192.png?fit=max\u0026auto=format\u0026n=Etya93TUDmx6XFCd\u0026q=85\u0026s=8affa9c088be3e81c330395cc04d8772","api":{"playground":{"display":"interactive","proxy":false},"examples":{"languages":["curl","javascript","python"],"prefill":true}},"appearance":{"default":"light"},"navbar":{"primary":{"type":"button","label":"Quickstart","href":"/quickstart"}},"footer":{"links":[{"header":"Try it","items":[{"label":"Postman collection","href":"https://sandbox.rx.tera.health/docs/postman/terarx-v1.postman_collection.json"},{"label":"Postman environment","href":"https://sandbox.rx.tera.health/docs/postman/terarx-sandbox.postman_environment.json"},{"label":"Samples","href":"/samples"}]}]},"fonts":{"family":"Outfit"},"icons":{"library":"lucide"},"banner":{"content":"This contract is a draft for partner review. Every example uses synthetic data.","dismissible":true},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"tera-health","hasAudioNarration":false,"actualSubdomain":"tera-health","customDomains":["docs.tera.health"],"gitSource":{"type":"github","owner":"tera-engineering","repo":"terarx","deployBranch":"main","contentDirectory":"apps/docs","isPrivate":true,"mountPath":"","label":"","_id":"6ae13351e0799c60782bc4ce"},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af0a42e99ffa6db69675356","clientVersion":"0.0.4087","searchFilterCounts":[{"language":"default","tag":"API reference","count":139},{"language":"default","tag":"Webhooks","count":22},{"language":"default","tag":"Logging","count":21},{"language":"default","tag":"Brand logs","count":13},{"language":"default","tag":"Guides","count":12},{"language":"default","tag":"AI Coach","count":9},{"language":"default","tag":"Enrollments","count":9},{"language":"default","tag":"Protocols and plans","count":8},{"language":"default","tag":"Care messaging","count":7},{"language":"default","tag":"Library","count":6}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":true},"customCss":[],"page":{"pagePath":"api-reference/progress/get-today","slug":"/api-reference/progress/get-today","pageMetadata":{"title":"Get today","description":"What the home screen needs for the patient's today, in their time zone: targets against what's logged so far,\nthe plan's meals and workouts for the day, habits, the next reminder, recent milestones, and counts of open\nforms, unread care messages and legal documents to accept.\n\n\n**Plans:** AI + health and fitness coaches (`ai_health_fitness`), AI only (`ai_only`).","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/patient/today","href":"/api-reference/progress/get-today","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n strong: \"strong\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"What the home screen needs for the patient’s today, in their time zone: targets against what’s logged so far,\\nthe plan’s meals and workouts for the day, habits, the next reminder, recent milestones, and counts of open\\nforms, unread care messages and legal documents to accept.\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"Plans:\"\n }), \" AI + health and fitness coaches (\", _jsx(_components.code, {\n children: \"ai_health_fitness\"\n }), \"), AI only (\", _jsx(_components.code, {\n children: \"ai_only\"\n }), \").\"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Get today","description":"What the home screen needs for the patient's today, in their time zone: targets against what's logged so far,\nthe plan's meals and workouts for the day, habits, the next reminder, recent milestones, and counts of open\nforms, unread care messages and legal documents to accept.\n\n\n**Plans:** AI + health and fitness coaches (`ai_health_fitness`), AI only (`ai_only`).","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/patient/today","href":"/api-reference/progress/get-today","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"getMyToday","tags":["Progress"],"summary":"Get today","description":"What the home screen needs for the patient's today, in their time zone: targets against what's logged so far,\nthe plan's meals and workouts for the day, habits, the next reminder, recent milestones, and counts of open\nforms, unread care messages and legal documents to accept.\n\n\n**Plans:** AI + health and fitness coaches (`ai_health_fitness`), AI only (`ai_only`).","security":["418c8106-b0fe-409f-a1c9-80b17baead68"],"x-plans":["ai_health_fitness","ai_only"],"responses":{"200":"7f3c8294-f295-4c8d-bda3-e5e4b92c7410","401":"76b91156-fade-4e33-adfb-0b4b60f4242e","429":"1a148349-178d-4a88-a416-30e655d16613"},"method":"get","type":"path","servers":["cbd6961c-1d43-4b1a-ace5-6c8cd05a19e6","d31af898-dd82-49ef-beb0-575942e35d63"],"path":"/v1/patient/today","baseUrlOptions":["https://sandbox.rx.tera.health","http://localhost:4010"],"title":"Get today","codeSamples":[],"requestExampleLanguages":["bash","javascript","python"],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated","prefillPlaygroundWithExample":true,"prefillPlaygroundExamples":[],"disableProxy":true},"dependencies":{"parameters":{},"responses":{"7f3c8294-f295-4c8d-bda3-e5e4b92c7410":{"description":"Today.","content":{"application/json":{"schema":{"type":"object","required":["date","treatment_week","injection","targets","meals","workouts","habits","next_reminder","open_forms","unread_care_messages","legal_documents_pending","new_milestones"],"properties":{"date":{"type":"string","format":"date","description":"A calendar date in the patient's time zone.","example":"2026-10-26","isRequired":true,"uniqueKey":"date","typeLabel":"string\u003cdate>"},"treatment_week":{"oneOf":[{"type":"integer","description":"The same number as `GET /v1/patient/treatment`. Null before a treatment is set.","example":6,"isRequired":true,"uniqueKey":"treatment_week.oneOf.0","typeLabel":"integer"},{"type":"null","description":"The same number as `GET /v1/patient/treatment`. Null before a treatment is set.","example":6,"isRequired":true,"uniqueKey":"treatment_week.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"treatment_week","typeLabel":"integer | null"},"injection":{"oneOf":[{"type":"object","description":"Null when today is not an injection day.","required":["due_today","logged"],"properties":{"due_today":{"type":"boolean","example":true,"isRequired":true,"uniqueKey":"injection.oneOf.0.due_today","typeLabel":"boolean"},"logged":{"type":"boolean","example":false,"isRequired":true,"uniqueKey":"injection.oneOf.0.logged","typeLabel":"boolean"}},"isRequired":true,"uniqueKey":"injection.oneOf.0","typeLabel":"object"},{"type":"null","description":"Null when today is not an injection day.","isRequired":true,"uniqueKey":"injection.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"injection","typeLabel":"object | null"},"targets":{"type":"array","items":{"type":"object","required":["metric","label","unit","target","progress"],"properties":{"metric":{"type":"string","description":"The protocol target's metric code, such as `protein_g`, `water_ml`, `fiber_g`, `steps` or `workout_minutes`.","example":"protein_g","isRequired":true,"uniqueKey":"targets.items.[INDEX].metric","typeLabel":"string"},"label":{"type":"string","example":"Protein","isRequired":true,"uniqueKey":"targets.items.[INDEX].label","typeLabel":"string"},"unit":{"type":"string","example":"g","isRequired":true,"uniqueKey":"targets.items.[INDEX].unit","typeLabel":"string"},"target":{"type":"number","example":110,"isRequired":true,"uniqueKey":"targets.items.[INDEX].target","typeLabel":"number"},"progress":{"type":"number","description":"What the day's logs add up to so far. `0` when nothing is logged.","example":72,"isRequired":true,"uniqueKey":"targets.items.[INDEX].progress","typeLabel":"number"}},"uniqueKey":"targets.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"targets","typeLabel":"object[]"},"meals":{"type":"array","description":"Today's meals from the meal plan, in plan order. Empty without a meal plan.","items":{"type":"object","required":["meal_plan_item_id","meal_type","title","logged"],"properties":{"meal_plan_item_id":{"type":"string","format":"uuid","example":"3c1e8f20-5b7a-4d9c-8e61-0a2b4c6d8e01","isRequired":true,"uniqueKey":"meals.items.[INDEX].meal_plan_item_id","typeLabel":"string\u003cuuid>"},"meal_type":{"type":"string","enum":["breakfast","lunch","dinner","snack"],"example":"lunch","isRequired":true,"uniqueKey":"meals.items.[INDEX].meal_type","typeLabel":"enum\u003cstring>"},"title":{"type":"string","example":"Greek yogurt protein bowl","isRequired":true,"uniqueKey":"meals.items.[INDEX].title","typeLabel":"string"},"logged":{"type":"boolean","description":"True when a meal log links this plan meal today.","example":true,"isRequired":true,"uniqueKey":"meals.items.[INDEX].logged","typeLabel":"boolean"},"recipe_id":{"oneOf":[{"type":"string","format":"uuid","example":"2d4f6a8c-0e1b-4c3d-9e5f-7a9b1c3d5e7f","uniqueKey":"meals.items.[INDEX].recipe_id.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","format":"uuid","example":"2d4f6a8c-0e1b-4c3d-9e5f-7a9b1c3d5e7f","uniqueKey":"meals.items.[INDEX].recipe_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"meals.items.[INDEX].recipe_id","typeLabel":"string\u003cuuid> | null"},"protein_g":{"oneOf":[{"type":"number","example":31,"uniqueKey":"meals.items.[INDEX].protein_g.oneOf.0","typeLabel":"number"},{"type":"null","example":31,"uniqueKey":"meals.items.[INDEX].protein_g.oneOf.1","typeLabel":"null"}],"uniqueKey":"meals.items.[INDEX].protein_g","typeLabel":"number | null"},"calories_kcal":{"oneOf":[{"type":"integer","example":320,"uniqueKey":"meals.items.[INDEX].calories_kcal.oneOf.0","typeLabel":"integer"},{"type":"null","example":320,"uniqueKey":"meals.items.[INDEX].calories_kcal.oneOf.1","typeLabel":"null"}],"uniqueKey":"meals.items.[INDEX].calories_kcal","typeLabel":"integer | null"}},"uniqueKey":"meals.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"meals","typeLabel":"object[]"},"workouts":{"type":"array","description":"Today's workouts from the workout plan. Empty on a rest day or without a plan.","items":{"type":"object","required":["workout_plan_item_id","title","logged"],"properties":{"workout_plan_item_id":{"type":"string","format":"uuid","example":"4d2f9a31-6c8b-4e0d-9f72-1b3c5d7e9f02","isRequired":true,"uniqueKey":"workouts.items.[INDEX].workout_plan_item_id","typeLabel":"string\u003cuuid>"},"title":{"type":"string","example":"Full-body strength A","isRequired":true,"uniqueKey":"workouts.items.[INDEX].title","typeLabel":"string"},"logged":{"type":"boolean","example":false,"isRequired":true,"uniqueKey":"workouts.items.[INDEX].logged","typeLabel":"boolean"},"duration_min":{"oneOf":[{"type":"integer","example":30,"uniqueKey":"workouts.items.[INDEX].duration_min.oneOf.0","typeLabel":"integer"},{"type":"null","example":30,"uniqueKey":"workouts.items.[INDEX].duration_min.oneOf.1","typeLabel":"null"}],"uniqueKey":"workouts.items.[INDEX].duration_min","typeLabel":"integer | null"}},"uniqueKey":"workouts.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"workouts","typeLabel":"object[]"},"habits":{"type":"array","items":{"type":"object","required":["protocol_id","key","title","done"],"properties":{"protocol_id":{"type":"string","format":"uuid","example":"0190f5c6-8b9c-7d01-8e23-4f5a6b7c8d90","isRequired":true,"uniqueKey":"habits.items.[INDEX].protocol_id","typeLabel":"string\u003cuuid>"},"key":{"type":"string","description":"Check it off with `PATCH /v1/patient/daily-logs/{log_date}` as `habits_done[\"\u003cprotocol_id>:\u003ckey>\"]`.","example":"protein_each_meal","isRequired":true,"uniqueKey":"habits.items.[INDEX].key","typeLabel":"string"},"title":{"type":"string","example":"Protein at every meal","isRequired":true,"uniqueKey":"habits.items.[INDEX].title","typeLabel":"string"},"done":{"type":"boolean","example":false,"isRequired":true,"uniqueKey":"habits.items.[INDEX].done","typeLabel":"boolean"}},"uniqueKey":"habits.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"habits","typeLabel":"object[]"},"next_reminder":{"oneOf":[{"type":"object","required":["id","kind","due_at","status"],"properties":{"id":{"type":"string","format":"uuid","example":"0190f5c5-4a5b-7c61-8d78-9e0f1a2b3c45","isRequired":true,"uniqueKey":"next_reminder.oneOf.0.id","typeLabel":"string\u003cuuid>"},"kind":{"type":"string","enum":["injection","check_in","log_nudge","habit"],"example":"injection","isRequired":true,"uniqueKey":"next_reminder.oneOf.0.kind","typeLabel":"enum\u003cstring>"},"due_at":{"type":"string","format":"date-time","description":"ISO 8601 in UTC.","example":"2026-10-26T14:05:00Z","isRequired":true,"uniqueKey":"next_reminder.oneOf.0.due_at","typeLabel":"string\u003cdate-time>"},"status":{"type":"string","enum":["scheduled","sent","cancelled"],"example":"scheduled","isRequired":true,"uniqueKey":"next_reminder.oneOf.0.status","typeLabel":"enum\u003cstring>"},"ref_key":{"oneOf":[{"type":"string","description":"The habit key or form assignment id the reminder is about.","example":null,"uniqueKey":"next_reminder.oneOf.0.ref_key.oneOf.0","typeLabel":"string"},{"type":"null","description":"The habit key or form assignment id the reminder is about.","example":null,"uniqueKey":"next_reminder.oneOf.0.ref_key.oneOf.1","typeLabel":"null"}],"uniqueKey":"next_reminder.oneOf.0.ref_key","typeLabel":"string | null"},"recurring":{"type":"boolean","description":"True when the next occurrence is scheduled after this one is sent.","example":true,"uniqueKey":"next_reminder.oneOf.0.recurring","typeLabel":"boolean"}},"isRequired":true,"uniqueKey":"next_reminder.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"next_reminder.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"next_reminder","typeLabel":"object | null"},"open_forms":{"type":"integer","description":"Forms waiting for the patient (`sent` or `in_progress`).","example":1,"isRequired":true,"uniqueKey":"open_forms","typeLabel":"integer"},"unread_care_messages":{"type":"integer","description":"Across care threads. Always 0 on `ai_only`.","example":2,"isRequired":true,"uniqueKey":"unread_care_messages","typeLabel":"integer"},"legal_documents_pending":{"type":"integer","example":0,"isRequired":true,"uniqueKey":"legal_documents_pending","typeLabel":"integer"},"new_milestones":{"type":"array","description":"Milestones reached in the last 7 days, newest first.","items":{"type":"object","required":["id","code","category","title","message","achieved_at","stats"],"properties":{"id":{"type":"string","format":"uuid","example":"0190f5e1-2a3b-7c4d-9e5f-6a7b8c9d0e1f","isRequired":true,"uniqueKey":"new_milestones.items.[INDEX].id","typeLabel":"string\u003cuuid>"},"code":{"type":"string","description":"What the patient reached. New codes may be added; show a generic celebration for a code you don't know.\n\n| Code | Reached when |\n| --- | --- |\n| `first_meal_logged` | The first meal is logged |\n| `logging_streak_7`, `logging_streak_30` | Something is logged 7 or 30 days in a row |\n| `protein_target_days_7`, `protein_target_days_30` | 7 or 30 days at 80% or more of the protein target |\n| `workouts_10`, `workouts_50` | 10 or 50 workouts logged |\n| `injections_on_time_4`, `injections_on_time_12` | 4 or 12 doses in a row logged on their day |\n| `week_4_completed`, `week_12_completed` | 4 or 12 weeks since enrollment |\n| `weight_loss_5_pct`, `weight_loss_10_pct` | 5% or 10% below the first weight logged |\n| `goal_weight_reached` | At or below the health profile's `goal_weight_kg` |\n","enum":["first_meal_logged","logging_streak_7","logging_streak_30","protein_target_days_7","protein_target_days_30","workouts_10","workouts_50","injections_on_time_4","injections_on_time_12","week_4_completed","week_12_completed","weight_loss_5_pct","weight_loss_10_pct","goal_weight_reached"],"example":"protein_target_days_7","isRequired":true,"uniqueKey":"new_milestones.items.[INDEX].code","typeLabel":"enum\u003cstring>"},"category":{"type":"string","enum":["logging","nutrition","activity","treatment","program","weight"],"example":"nutrition","isRequired":true,"uniqueKey":"new_milestones.items.[INDEX].category","typeLabel":"enum\u003cstring>"},"title":{"type":"string","description":"A short headline in the patient's language.","example":"7 days at your protein target","isRequired":true,"uniqueKey":"new_milestones.items.[INDEX].title","typeLabel":"string"},"message":{"type":"string","description":"One personal line built from `stats`.","example":"You averaged 112 g a day, up from 74 g in your first week.","isRequired":true,"uniqueKey":"new_milestones.items.[INDEX].message","typeLabel":"string"},"achieved_at":{"type":"string","format":"date-time","description":"ISO 8601 in UTC.","example":"2026-10-26T14:05:00Z","isRequired":true,"uniqueKey":"new_milestones.items.[INDEX].achieved_at","typeLabel":"string\u003cdate-time>"},"stats":{"type":"object","description":"The patient's numbers behind the milestone. Keys depend on the code.","additionalProperties":{"type":"number","uniqueKey":"new_milestones.items.[INDEX].stats.additionalProperties","typeLabel":"number"},"example":{"days":7,"avg_protein_g":112,"first_week_avg_protein_g":74},"isRequired":true,"uniqueKey":"new_milestones.items.[INDEX].stats","typeLabel":"object"}},"uniqueKey":"new_milestones.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"new_milestones","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"example":{"date":"2026-10-27","treatment_week":6,"injection":{"due_today":true,"logged":false},"targets":[{"metric":"protein_g","label":"Protein","unit":"g","target":110,"progress":72},{"metric":"water_ml","label":"Water","unit":"ml","target":2500,"progress":1250}],"meals":[{"meal_plan_item_id":"3c1e8f20-5b7a-4d9c-8e61-0a2b4c6d8e01","meal_type":"breakfast","title":"Greek yogurt protein bowl","recipe_id":"2d4f6a8c-0e1b-4c3d-9e5f-7a9b1c3d5e7f","protein_g":31,"calories_kcal":320,"logged":true},{"meal_plan_item_id":"5e3a0b42-7d9c-4f1e-8a83-2c4e6f8a0b13","meal_type":"lunch","title":"Chicken and quinoa bowl","recipe_id":null,"protein_g":38,"calories_kcal":450,"logged":false}],"workouts":[{"workout_plan_item_id":"4d2f9a31-6c8b-4e0d-9f72-1b3c5d7e9f02","title":"Full-body strength A","duration_min":30,"logged":false}],"habits":[{"protocol_id":"0190f5c6-8b9c-7d01-8e23-4f5a6b7c8d90","key":"protein_each_meal","title":"Protein at every meal","done":false}],"next_reminder":{"id":"0190f5c5-4a5b-7c61-8d78-9e0f1a2b3c45","kind":"injection","ref_key":null,"due_at":"2026-10-27T13:00:00Z","status":"scheduled","recurring":true},"open_forms":1,"unread_care_messages":2,"legal_documents_pending":0,"new_milestones":[]},"examples":{"Example":{"title":"Example","value":{"date":"2026-10-27","treatment_week":6,"injection":{"due_today":true,"logged":false},"targets":[{"metric":"protein_g","label":"Protein","unit":"g","target":110,"progress":72},{"metric":"water_ml","label":"Water","unit":"ml","target":2500,"progress":1250}],"meals":[{"meal_plan_item_id":"3c1e8f20-5b7a-4d9c-8e61-0a2b4c6d8e01","meal_type":"breakfast","title":"Greek yogurt protein bowl","recipe_id":"2d4f6a8c-0e1b-4c3d-9e5f-7a9b1c3d5e7f","protein_g":31,"calories_kcal":320,"logged":true},{"meal_plan_item_id":"5e3a0b42-7d9c-4f1e-8a83-2c4e6f8a0b13","meal_type":"lunch","title":"Chicken and quinoa bowl","recipe_id":null,"protein_g":38,"calories_kcal":450,"logged":false}],"workouts":[{"workout_plan_item_id":"4d2f9a31-6c8b-4e0d-9f72-1b3c5d7e9f02","title":"Full-body strength A","duration_min":30,"logged":false}],"habits":[{"protocol_id":"0190f5c6-8b9c-7d01-8e23-4f5a6b7c8d90","key":"protein_each_meal","title":"Protein at every meal","done":false}],"next_reminder":{"id":"0190f5c5-4a5b-7c61-8d78-9e0f1a2b3c45","kind":"injection","ref_key":null,"due_at":"2026-10-27T13:00:00Z","status":"scheduled","recurring":true},"open_forms":1,"unread_care_messages":2,"legal_documents_pending":0,"new_milestones":[]}}},"exampleType":"examples"}},"headers":{"X-Request-Id":{"description":"Unique id of this request. Echoes a valid `X-Request-Id` you sent, otherwise generated. Also in every problem body.","schema":{"type":"string"},"example":"req_019a3b2c-4d5e-7f60-8a1b-2c3d4e5f6a7b"},"RateLimit-Limit":{"description":"Requests allowed per minute for this client (600 by default, set per contract).","schema":{"type":"integer"},"example":600},"RateLimit-Remaining":{"description":"Requests left in the current window.","schema":{"type":"integer"},"example":587},"RateLimit-Reset":{"description":"Seconds until the window resets.","schema":{"type":"integer"},"example":42}},"exampleType":"examples"},"76b91156-fade-4e33-adfb-0b4b60f4242e":{"description":"The access token is missing, expired or revoked.","headers":{"X-Request-Id":{"description":"Unique id of this request. Echoes a valid `X-Request-Id` you sent, otherwise generated. Also in every problem body.","schema":{"type":"string"},"example":"req_019a3b2c-4d5e-7f60-8a1b-2c3d4e5f6a7b"},"RateLimit-Limit":{"description":"Requests allowed per minute for this client (600 by default, set per contract).","schema":{"type":"integer"},"example":600},"RateLimit-Remaining":{"description":"Requests left in the current window.","schema":{"type":"integer"},"example":587},"RateLimit-Reset":{"description":"Seconds until the window resets.","schema":{"type":"integer"},"example":42},"WWW-Authenticate":{"description":"The scheme to authenticate with.","schema":{"type":"string"},"example":"Bearer error=\"invalid_token\""}},"content":{"application/problem+json":{"schema":{"type":"object","description":"RFC 9457 problem details, sent as `application/problem+json` with every 4xx and 5xx.\nA problem never contains patient data: no names, no values from the request, no free text the caller sent.\n","required":["type","title","status","code","request_id"],"properties":{"type":{"type":"string","format":"uri-reference","description":"`about:blank` until the docs have a public home. Branch on `code`, not on `type` or `title`.","example":"about:blank","isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi-reference>"},"title":{"type":"string","description":"The HTTP status phrase.","example":"Not Found","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","minimum":400,"maximum":599,"example":404,"isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"code":{"type":"string","pattern":"^[a-z][a-z0-9_]*$","description":"Stable machine-readable code. New codes may be added; existing ones never change meaning.","example":"enrollment_not_found","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"request_id":{"type":"string","description":"Same value as the `X-Request-Id` response header. Quote it when you contact TeraRx.","example":"req_019a3b2c-4d5e-7f60-8a1b-2c3d4e5f6a7b","isRequired":true,"uniqueKey":"request_id","typeLabel":"string"},"detail":{"type":"string","description":"What went wrong, in words safe to log.","example":"No enrollment with this id is visible to this client.","uniqueKey":"detail","typeLabel":"string"},"instance":{"type":"string","format":"uri-reference","description":"The path of the request that failed.","example":"/v1/enrollments/0190f5c2-3a1b-7c4d-8e9f-a0b1c2d3e4f5","uniqueKey":"instance","typeLabel":"string\u003curi-reference>"},"errors":{"type":"array","description":"One entry per invalid field, for `validation_failed`.","items":{"type":"object","required":["pointer","code"],"properties":{"pointer":{"type":"string","description":"JSON Pointer (RFC 6901) to the field in the request body, or `path:\u003cname>`, `query:\u003cname>` or `header:\u003cname>` for a parameter.","example":"/patient/state_code","isRequired":true,"uniqueKey":"errors.items.[INDEX].pointer","typeLabel":"string"},"code":{"type":"string","enum":["required","invalid_type","invalid_format","out_of_range","too_long","unknown_value","not_allowed"],"example":"invalid_format","isRequired":true,"uniqueKey":"errors.items.[INDEX].code","typeLabel":"enum\u003cstring>"},"detail":{"type":"string","description":"What the field must look like. Never repeats the value that was sent.","example":"Must be a two-letter USPS state code.","uniqueKey":"errors.items.[INDEX].detail","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"errors","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"example":{"type":"about:blank","title":"Unauthorized","status":401,"detail":"The access token has expired. Request a new one.","code":"token_expired","request_id":"req_019a3b2c-4d5e-7f60-8a1b-2c3d4e5f6a7b"},"examples":{"Example":{"title":"Example","value":{"type":"about:blank","title":"Unauthorized","status":401,"detail":"The access token has expired. Request a new one.","code":"token_expired","request_id":"req_019a3b2c-4d5e-7f60-8a1b-2c3d4e5f6a7b"}}},"exampleType":"examples"}},"exampleType":"examples"},"1a148349-178d-4a88-a416-30e655d16613":{"description":"Rate limit or daily cap reached. Wait `Retry-After` seconds.","headers":{"X-Request-Id":{"description":"Unique id of this request. Echoes a valid `X-Request-Id` you sent, otherwise generated. Also in every problem body.","schema":{"type":"string"},"example":"req_019a3b2c-4d5e-7f60-8a1b-2c3d4e5f6a7b"},"RateLimit-Limit":{"description":"Requests allowed per minute for this client (600 by default, set per contract).","schema":{"type":"integer"},"example":600},"RateLimit-Remaining":{"description":"Requests left in the current window.","schema":{"type":"integer"},"example":587},"RateLimit-Reset":{"description":"Seconds until the window resets.","schema":{"type":"integer"},"example":42},"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"},"example":30}},"content":{"application/problem+json":{"schema":{"type":"object","description":"RFC 9457 problem details, sent as `application/problem+json` with every 4xx and 5xx.\nA problem never contains patient data: no names, no values from the request, no free text the caller sent.\n","required":["type","title","status","code","request_id"],"properties":{"type":{"type":"string","format":"uri-reference","description":"`about:blank` until the docs have a public home. Branch on `code`, not on `type` or `title`.","example":"about:blank","isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi-reference>"},"title":{"type":"string","description":"The HTTP status phrase.","example":"Not Found","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","minimum":400,"maximum":599,"example":404,"isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"code":{"type":"string","pattern":"^[a-z][a-z0-9_]*$","description":"Stable machine-readable code. New codes may be added; existing ones never change meaning.","example":"enrollment_not_found","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"request_id":{"type":"string","description":"Same value as the `X-Request-Id` response header. Quote it when you contact TeraRx.","example":"req_019a3b2c-4d5e-7f60-8a1b-2c3d4e5f6a7b","isRequired":true,"uniqueKey":"request_id","typeLabel":"string"},"detail":{"type":"string","description":"What went wrong, in words safe to log.","example":"No enrollment with this id is visible to this client.","uniqueKey":"detail","typeLabel":"string"},"instance":{"type":"string","format":"uri-reference","description":"The path of the request that failed.","example":"/v1/enrollments/0190f5c2-3a1b-7c4d-8e9f-a0b1c2d3e4f5","uniqueKey":"instance","typeLabel":"string\u003curi-reference>"},"errors":{"type":"array","description":"One entry per invalid field, for `validation_failed`.","items":{"type":"object","required":["pointer","code"],"properties":{"pointer":{"type":"string","description":"JSON Pointer (RFC 6901) to the field in the request body, or `path:\u003cname>`, `query:\u003cname>` or `header:\u003cname>` for a parameter.","example":"/patient/state_code","isRequired":true,"uniqueKey":"errors.items.[INDEX].pointer","typeLabel":"string"},"code":{"type":"string","enum":["required","invalid_type","invalid_format","out_of_range","too_long","unknown_value","not_allowed"],"example":"invalid_format","isRequired":true,"uniqueKey":"errors.items.[INDEX].code","typeLabel":"enum\u003cstring>"},"detail":{"type":"string","description":"What the field must look like. Never repeats the value that was sent.","example":"Must be a two-letter USPS state code.","uniqueKey":"errors.items.[INDEX].detail","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"errors","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"example":{"type":"about:blank","title":"Too Many Requests","status":429,"detail":"Rate limit of 600 requests per minute reached.","code":"rate_limited","request_id":"req_019a3b2c-4d5e-7f60-8a1b-2c3d4e5f6a7b"},"examples":{"Example":{"title":"Example","value":{"type":"about:blank","title":"Too Many Requests","status":429,"detail":"Rate limit of 600 requests per minute reached.","code":"rate_limited","request_id":"req_019a3b2c-4d5e-7f60-8a1b-2c3d4e5f6a7b"}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"418c8106-b0fe-409f-a1c9-80b17baead68":{"patientToken":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"A 15-minute token bound to one patient and one enrollment, issued by `POST /v1/oauth/token` with the\ntoken-exchange grant. Treat it as opaque. When it expires, exchange a fresh assertion; there is no refresh token.\n","x-default":"Bearer sandbox_any_token_works","scopes":[],"schemeName":"patientToken"}}},"servers":{"cbd6961c-1d43-4b1a-ace5-6c8cd05a19e6":{"url":"https://sandbox.rx.tera.health","description":"Partner sandbox, synthetic data only"},"d31af898-dd82-49ef-beb0-575942e35d63":{"url":"http://localhost:4010","description":"Local mock (Prism on the bundled spec), answers with the examples in this spec"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"A 15-minute token bound to one patient and one enrollment, issued by `POST /v1/oauth/token` with the\ntoken-exchange grant. Treat it as opaque. When it expires, exchange a fresh assertion; there is no refresh token.\n","x-default":"Bearer sandbox_any_token_works","scopes":[],"schemeName":"patientToken"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"A 15-minute token bound to one patient and one enrollment, issued by `POST /v1/oauth/token` with the\ntoken-exchange grant. Treat it as opaque. When it expires, exchange a fresh assertion; there is no refresh token.\n","format":"bearer","default":"Bearer sandbox_any_token_works","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"patientToken","name":"Authorization"}],"title":"patientToken"}]},"originalFileLocation":"openapi.json"},"subdomain":"tera-health","siteName":"TeraRx API","title":"Get today - TeraRx API","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-08T16:32:55.100Z","originalFileLocation":"api-reference/progress/get-today.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"light\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"What the home screen needs for the patient\u0026#x27;s today, in their time zone: targets against what\u0026#x27;s logged so far, the plan\u0026#x27;s meals and workouts for the day, habits, the next reminder, recent milestones, and counts of open forms, unread care messages and legal documents to accept. Plans: AI + health and fitness coaches (ai_health_fitness), AI only (ai_only).\">\u003cmeta data-mint-head name=\"application-name\" content=\"TeraRx API\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/tera-health/arcliw8PG65YJ6Ho/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/tera-health/arcliw8PG65YJ6Ho/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/tera-health/arcliw8PG65YJ6Ho/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/tera-health/arcliw8PG65YJ6Ho/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/tera-health/arcliw8PG65YJ6Ho/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/tera-health/arcliw8PG65YJ6Ho/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/tera-health/arcliw8PG65YJ6Ho/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/tera-health/arcliw8PG65YJ6Ho/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/tera-health/arcliw8PG65YJ6Ho/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Get today - TeraRx API\">\u003cmeta data-mint-head property=\"og:description\" content=\"What the home screen needs for the patient\u0026#x27;s today, in their time zone: targets against what\u0026#x27;s logged so far, the plan\u0026#x27;s meals and workouts for the day, habits, the next reminder, recent milestones, and counts of open forms, unread care messages and legal documents to accept. Plans: AI + health and fitness coaches (ai_health_fitness), AI only (ai_only).\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"TeraRx API\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.tera.health/api-reference/progress/get-today\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://tera-health.mintlify.site/_mintlify/api/og/v2?division=Progress\u0026amp;title=Get+today\u0026amp;description=What+the+home+screen+needs+for+the+patient%27s+today%2C+in+their+time+zone%3A+targets+against+what%27s+logged+so+far%2C%0Athe+plan%27s+meals+and+workouts+for+the+day%2C+habits%2C\u0026amp;theme=bbf8a14dc4b43edfc4280bbc\u0026amp;signature=f88dfaa18377bcf265d73c597e42a7f395a3eed73868302715c2a222168a42fd\">\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=\"Get today - TeraRx API\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"What the home screen needs for the patient\u0026#x27;s today, in their time zone: targets against what\u0026#x27;s logged so far, the plan\u0026#x27;s meals and workouts for the day, habits, the next reminder, recent milestones, and counts of open forms, unread care messages and legal documents to accept. Plans: AI + health and fitness coaches (ai_health_fitness), AI only (ai_only).\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://tera-health.mintlify.site/_mintlify/api/og/v2?division=Progress\u0026amp;title=Get+today\u0026amp;description=What+the+home+screen+needs+for+the+patient%27s+today%2C+in+their+time+zone%3A+targets+against+what%27s+logged+so+far%2C%0Athe+plan%27s+meals+and+workouts+for+the+day%2C+habits%2C\u0026amp;theme=bbf8a14dc4b43edfc4280bbc\u0026amp;signature=f88dfaa18377bcf265d73c597e42a7f395a3eed73868302715c2a222168a42fd\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/tera-health/arcliw8PG65YJ6Ho/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"TeraRx API\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#465FFF\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.tera.health/api-reference/progress/get-today\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/progress/get-today.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.tera.health/#organization\",\"name\":\"TeraRx API\",\"url\":\"https://docs.tera.health\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/tera-health/uWz_0YeC9jmRBnOf/logo/terarx-logo-on-light.webp?fit=max\u0026auto=format\u0026n=uWz_0YeC9jmRBnOf\u0026q=85\u0026s=e1b13d13ab2a8adf4dd39a95782a1e51\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.tera.health#website\",\"name\":\"TeraRx API\",\"url\":\"https://docs.tera.health\",\"publisher\":{\"@id\":\"https://docs.tera.health/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.tera.health/api-reference/progress/get-today#webpage\",\"url\":\"https://docs.tera.health/api-reference/progress/get-today\",\"name\":\"Get today\",\"description\":\"What the home screen needs for the patient's today, in their time zone: targets against what's logged so far, the plan's meals and workouts for the day, habits, the next reminder, recent milestones, and counts of open forms, unread care messages and legal documents to accept. Plans: AI + health and fitness coaches (ai_health_fitness), AI only (ai_only).\",\"dateModified\":\"2026-11-08T16:32:55.100Z\",\"isPartOf\":{\"@id\":\"https://docs.tera.health#website\"},\"breadcrumb\":{\"@id\":\"https://docs.tera.health/api-reference/progress/get-today#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.tera.health/api-reference/progress/get-today#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"TeraRx API\",\"item\":\"https://docs.tera.health\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Get today\",\"item\":\"https://docs.tera.health/api-reference/progress/get-today\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.tera.health/api-reference/progress/get-today#apireference\",\"headline\":\"Get today\",\"name\":\"Get today\",\"description\":\"What the home screen needs for the patient's today, in their time zone: targets against what's logged so far, the plan's meals and workouts for the day, habits, the next reminder, recent milestones, and counts of open forms, unread care messages and legal documents to accept. Plans: AI + health and fitness coaches (ai_health_fitness), AI only (ai_only).\",\"url\":\"https://docs.tera.health/api-reference/progress/get-today\",\"mainEntityOfPage\":{\"@id\":\"https://docs.tera.health/api-reference/progress/get-today#webpage\"},\"dateModified\":\"2026-11-08T16:32:55.100Z\",\"publisher\":{\"@id\":\"https://docs.tera.health/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.tera.health#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"TeraRx API\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"TeraRx API","nav":{"global":null,"tabs":[{"tab":"Guides","pages":[{"title":"Guides","href":"/introduction"}]},{"tab":"API reference","groups":[{"group":"Auth","pages":[{"title":"Get an access token","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/oauth/token","href":"/api-reference/auth/get-an-access-token"}]},{"group":"Tenants","pages":[{"title":"List the brands this client may act for","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/tenants","href":"/api-reference/tenants/list-the-brands-this-client-may-act-for"}]},{"group":"Enrollments","pages":[{"title":"List enrollments","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/enrollments","href":"/api-reference/enrollments/list-enrollments"},{"title":"Enroll a patient","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/enrollments","href":"/api-reference/enrollments/enroll-a-patient"},{"title":"Get an enrollment","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/enrollments/{enrollment_id}","href":"/api-reference/enrollments/get-an-enrollment"},{"title":"Update the patient's details","deprecated":null,"version":null,"openapi":"/openapi.json patch /v1/enrollments/{enrollment_id}/patient","href":"/api-reference/enrollments/update-the-patients-details"},{"title":"Change plan","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/enrollments/{enrollment_id}/plan","href":"/api-reference/enrollments/change-plan"},{"title":"Pause","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/enrollments/{enrollment_id}/pause","href":"/api-reference/enrollments/pause"},{"title":"Resume","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/enrollments/{enrollment_id}/resume","href":"/api-reference/enrollments/resume"},{"title":"Cancel","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/enrollments/{enrollment_id}/cancel","href":"/api-reference/enrollments/cancel"},{"title":"Ask the AI Coach to reach out","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/enrollments/{enrollment_id}/ai-coach-outreach","href":"/api-reference/enrollments/ask-the-ai-coach-to-reach-out"}]},{"group":"Treatment","pages":[{"title":"List medications","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/medications","href":"/api-reference/treatment/list-medications"},{"title":"List treatment versions","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/enrollments/{enrollment_id}/treatments","href":"/api-reference/treatment/list-treatment-versions"},{"title":"Update the treatment mirror","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/enrollments/{enrollment_id}/treatments","href":"/api-reference/treatment/update-the-treatment-mirror"}]},{"group":"Consent","pages":[{"title":"List consent records","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/enrollments/{enrollment_id}/consents","href":"/api-reference/consent/list-consent-records"},{"title":"Record consent proof","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/enrollments/{enrollment_id}/consents","href":"/api-reference/consent/record-consent-proof"}]},{"group":"Brand logs","pages":[{"title":"Send a meal log","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/enrollments/{enrollment_id}/meals","href":"/api-reference/brand-logs/send-a-meal-log"},{"title":"Send a workout log","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/enrollments/{enrollment_id}/workouts","href":"/api-reference/brand-logs/send-a-workout-log"},{"title":"Send a symptom log","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/enrollments/{enrollment_id}/symptoms","href":"/api-reference/brand-logs/send-a-symptom-log"},{"title":"Send an injection log","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/enrollments/{enrollment_id}/injections","href":"/api-reference/brand-logs/send-an-injection-log"},{"title":"Delete a meal log","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/enrollments/{enrollment_id}/meals/{external_id}","href":"/api-reference/brand-logs/delete-a-meal-log"},{"title":"Correct a meal log","deprecated":null,"version":null,"openapi":"/openapi.json patch /v1/enrollments/{enrollment_id}/meals/{external_id}","href":"/api-reference/brand-logs/correct-a-meal-log"},{"title":"Delete a workout log","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/enrollments/{enrollment_id}/workouts/{external_id}","href":"/api-reference/brand-logs/delete-a-workout-log"},{"title":"Correct a workout log","deprecated":null,"version":null,"openapi":"/openapi.json patch /v1/enrollments/{enrollment_id}/workouts/{external_id}","href":"/api-reference/brand-logs/correct-a-workout-log"},{"title":"Delete a symptom log","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/enrollments/{enrollment_id}/symptoms/{external_id}","href":"/api-reference/brand-logs/delete-a-symptom-log"},{"title":"Correct a symptom log","deprecated":null,"version":null,"openapi":"/openapi.json patch /v1/enrollments/{enrollment_id}/symptoms/{external_id}","href":"/api-reference/brand-logs/correct-a-symptom-log"},{"title":"Delete an injection log","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/enrollments/{enrollment_id}/injections/{external_id}","href":"/api-reference/brand-logs/delete-an-injection-log"},{"title":"Correct an injection log","deprecated":null,"version":null,"openapi":"/openapi.json patch /v1/enrollments/{enrollment_id}/injections/{external_id}","href":"/api-reference/brand-logs/correct-an-injection-log"},{"title":"Send daily values","deprecated":null,"version":null,"openapi":"/openapi.json patch /v1/enrollments/{enrollment_id}/daily-logs/{log_date}","href":"/api-reference/brand-logs/send-daily-values"}]},{"group":"Events","pages":[{"title":"Replay events","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/events","href":"/api-reference/events/replay-events"},{"title":"Get an event","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/events/{event_id}","href":"/api-reference/events/get-an-event"}]},{"group":"Reports","pages":[{"title":"Get the brand report","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/reports/brand","href":"/api-reference/reports/get-the-brand-report"}]},{"group":"Data requests","pages":[{"title":"List data requests","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/data-requests","href":"/api-reference/data-requests/list-data-requests"},{"title":"Create a data request","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/data-requests","href":"/api-reference/data-requests/create-a-data-request"},{"title":"Get a data request","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/data-requests/{data_request_id}","href":"/api-reference/data-requests/get-a-data-request"},{"title":"Get a download link","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/data-requests/{data_request_id}/export-link","href":"/api-reference/data-requests/get-a-download-link"},{"title":"Decide an amendment","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/data-requests/{data_request_id}/decision","href":"/api-reference/data-requests/decide-an-amendment"}]},{"group":"Patient","pages":[{"title":"Get my profile","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/patient","href":"/api-reference/patient/get-my-profile"},{"title":"Update my profile","deprecated":null,"version":null,"openapi":"/openapi.json patch /v1/patient","href":"/api-reference/patient/update-my-profile"},{"title":"Get my treatment","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/patient/treatment","href":"/api-reference/patient/get-my-treatment"},{"title":"Report my treatment (TeraRx Direct)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/patient/treatments","href":"/api-reference/patient/report-my-treatment-terarx-direct"},{"title":"List my legal documents","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/patient/legal-documents","href":"/api-reference/patient/list-my-legal-documents"},{"title":"Accept a legal document","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/patient/consents","href":"/api-reference/patient/accept-a-legal-document"}]},{"group":"Forms","pages":[{"title":"List my forms","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/patient/forms","href":"/api-reference/forms/list-my-forms"},{"title":"Get a form","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/patient/forms/{form_assignment_id}","href":"/api-reference/forms/get-a-form"},{"title":"Save a draft","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/patient/forms/{form_assignment_id}/draft","href":"/api-reference/forms/save-a-draft"},{"title":"Submit a form","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/patient/forms/{form_assignment_id}/submit","href":"/api-reference/forms/submit-a-form"}]},{"group":"Logging","pages":[{"title":"List my daily logs","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/patient/daily-logs","href":"/api-reference/logging/list-my-daily-logs"},{"title":"Log daily values","deprecated":null,"version":null,"openapi":"/openapi.json patch /v1/patient/daily-logs/{log_date}","href":"/api-reference/logging/log-daily-values"},{"title":"Start a meal photo upload","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/patient/meal-photos","href":"/api-reference/logging/start-a-meal-photo-upload"},{"title":"Analyze a meal photo","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/patient/meal-photos/{upload_id}/analysis","href":"/api-reference/logging/analyze-a-meal-photo"},{"title":"List my recent foods","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/patient/recent-foods","href":"/api-reference/logging/list-my-recent-foods"},{"title":"List my meals","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/patient/meals","href":"/api-reference/logging/list-my-meals"},{"title":"Log a meal","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/patient/meals","href":"/api-reference/logging/log-a-meal"},{"title":"Delete a meal log","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/patient/meals/{log_id}","href":"/api-reference/logging/delete-a-meal-log"},{"title":"Correct a meal log","deprecated":null,"version":null,"openapi":"/openapi.json patch /v1/patient/meals/{log_id}","href":"/api-reference/logging/correct-a-meal-log"},{"title":"List my workouts","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/patient/workouts","href":"/api-reference/logging/list-my-workouts"},{"title":"Log a workout","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/patient/workouts","href":"/api-reference/logging/log-a-workout"},{"title":"Delete a workout log","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/patient/workouts/{log_id}","href":"/api-reference/logging/delete-a-workout-log"},{"title":"Correct a workout log","deprecated":null,"version":null,"openapi":"/openapi.json patch /v1/patient/workouts/{log_id}","href":"/api-reference/logging/correct-a-workout-log"},{"title":"List my symptoms","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/patient/symptoms","href":"/api-reference/logging/list-my-symptoms"},{"title":"Log a symptom","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/patient/symptoms","href":"/api-reference/logging/log-a-symptom"},{"title":"Delete a symptom log","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/patient/symptoms/{log_id}","href":"/api-reference/logging/delete-a-symptom-log"},{"title":"Correct a symptom log","deprecated":null,"version":null,"openapi":"/openapi.json patch /v1/patient/symptoms/{log_id}","href":"/api-reference/logging/correct-a-symptom-log"},{"title":"List my injections","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/patient/injections","href":"/api-reference/logging/list-my-injections"},{"title":"Log an injection","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/patient/injections","href":"/api-reference/logging/log-an-injection"},{"title":"Delete an injection log","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/patient/injections/{log_id}","href":"/api-reference/logging/delete-an-injection-log"},{"title":"Correct an injection log","description":"Changes an injection the patient logged. Only logs made in the app can be changed; a log the brand's server sent\nreturns `403 log_not_owned`. The previous version is kept in the record's history, and the day's rollups are\nrecalculated (for both days if the dose moves to another day).\nChanging a missed dose to taken (or back) does not close an alert already raised for it.\nError codes: `log_not_owned` (403), `injection_incomplete` (422) when the result is neither taken nor missed.\n\n\n**Plans:** AI + health and fitness coaches (`ai_health_fitness`), AI only (`ai_only`).","deprecated":null,"version":null,"openapi":"/openapi.json patch /v1/patient/injections/{log_id}","href":"/api-reference/logging/correct-an-injection-log"}]},{"group":"Progress","pages":[{"title":"Get today","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/patient/today","href":"/api-reference/progress/get-today"},{"title":"Get targets and progress for a day","description":"The targets from the protocols in force on `date`, with what that day's logs add up to. Metric codes are the\nprotocol targets' codes, so a new metric needs no app change to show. Error code: `date_out_of_range` (422) for\na day before the enrollment or in the future.\n\n\n**Plans:** AI + health and fitness coaches (`ai_health_fitness`), AI only (`ai_only`).","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/patient/targets","href":"/api-reference/progress/get-targets-and-progress-for-a-day"},{"title":"Get a week's stats","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/patient/week-stats","href":"/api-reference/progress/get-a-weeks-stats"},{"title":"List my milestones","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/patient/milestones","href":"/api-reference/progress/list-my-milestones"},{"title":"Get a milestone","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/patient/milestones/{milestone_id}","href":"/api-reference/progress/get-a-milestone"}]},{"group":"Protocols and plans","pages":[{"title":"List my active protocols","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/patient/protocols","href":"/api-reference/protocols-and-plans/list-my-active-protocols"},{"title":"Get my active protocol of a type","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/patient/protocols/{protocol_type}","href":"/api-reference/protocols-and-plans/get-my-active-protocol-of-a-type"},{"title":"List versions of a protocol","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/patient/protocols/{protocol_type}/versions","href":"/api-reference/protocols-and-plans/list-versions-of-a-protocol"},{"title":"Get one version of a protocol","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/patient/protocols/{protocol_type}/versions/{version}","href":"/api-reference/protocols-and-plans/get-one-version-of-a-protocol"},{"title":"Get my meal plan","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/patient/meal-plan","href":"/api-reference/protocols-and-plans/get-my-meal-plan"},{"title":"Get my workout plan","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/patient/workout-plan","href":"/api-reference/protocols-and-plans/get-my-workout-plan"},{"title":"Rate a meal on my plan","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/patient/meal-plan/items/{item_id}/rating","href":"/api-reference/protocols-and-plans/rate-a-meal-on-my-plan"},{"title":"Clear a meal rating","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/patient/meal-plan/items/{item_id}/rating","href":"/api-reference/protocols-and-plans/clear-a-meal-rating"}]},{"group":"Meal swap","pages":[{"title":"Ask the AI Coach for swap options","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/patient/meal-plan/items/{item_id}/swap-options","href":"/api-reference/meal-swap/ask-the-ai-coach-for-swap-options"},{"title":"Swap a meal","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/patient/meal-plan/items/{item_id}/swap","href":"/api-reference/meal-swap/swap-a-meal"}]},{"group":"Library","pages":[{"title":"Browse recipes and exercises","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/patient/library","href":"/api-reference/library/browse-recipes-and-exercises"},{"title":"Get a recipe or exercise","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/patient/library/{library_item_id}","href":"/api-reference/library/get-a-recipe-or-exercise"},{"title":"Save a recipe or exercise","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/patient/library/{library_item_id}/favorite","href":"/api-reference/library/save-a-recipe-or-exercise"},{"title":"Remove a favorite","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/patient/library/{library_item_id}/favorite","href":"/api-reference/library/remove-a-favorite"},{"title":"Rate a recipe","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/patient/library/{library_item_id}/rating","href":"/api-reference/library/rate-a-recipe"},{"title":"Clear a recipe rating","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/patient/library/{library_item_id}/rating","href":"/api-reference/library/clear-a-recipe-rating"}]},{"group":"Care messaging","pages":[{"title":"List my care threads","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/patient/care/conversations","href":"/api-reference/care-messaging/list-my-care-threads"},{"title":"List messages in a care thread","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/patient/care/conversations/{conversation_id}/messages","href":"/api-reference/care-messaging/list-messages-in-a-care-thread"},{"title":"Message my coach","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/patient/care/conversations/{conversation_id}/messages","href":"/api-reference/care-messaging/message-my-coach"},{"title":"Mark a care thread read","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/patient/care/conversations/{conversation_id}/read","href":"/api-reference/care-messaging/mark-a-care-thread-read"},{"title":"Edit my last message","deprecated":null,"version":null,"openapi":"/openapi.json patch /v1/patient/messages/{message_id}","href":"/api-reference/care-messaging/edit-my-last-message"},{"title":"Set my reactions on a message","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/patient/messages/{message_id}/reactions","href":"/api-reference/care-messaging/set-my-reactions-on-a-message"},{"title":"Start a photo upload for my coach","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/patient/message-photos","href":"/api-reference/care-messaging/start-a-photo-upload-for-my-coach"}]},{"group":"Feedback","pages":[{"title":"List open feedback popups","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/patient/feedback-requests","href":"/api-reference/feedback/list-open-feedback-popups"},{"title":"Get a feedback popup","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/patient/feedback-requests/{feedback_request_id}","href":"/api-reference/feedback/get-a-feedback-popup"},{"title":"Answer a feedback popup","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/patient/feedback-requests/{feedback_request_id}/response","href":"/api-reference/feedback/answer-a-feedback-popup"},{"title":"Dismiss a feedback popup","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/patient/feedback-requests/{feedback_request_id}/dismiss","href":"/api-reference/feedback/dismiss-a-feedback-popup"}]},{"group":"AI Coach","pages":[{"title":"List my AI Coach chats","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/patient/ai-coach/conversations","href":"/api-reference/ai-coach/list-my-ai-coach-chats"},{"title":"Start an AI Coach chat","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/patient/ai-coach/conversations","href":"/api-reference/ai-coach/start-an-ai-coach-chat"},{"title":"List messages in an AI Coach chat","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/patient/ai-coach/conversations/{conversation_id}/messages","href":"/api-reference/ai-coach/list-messages-in-an-ai-coach-chat"},{"title":"Message the AI Coach","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/patient/ai-coach/conversations/{conversation_id}/messages","href":"/api-reference/ai-coach/message-the-ai-coach"},{"title":"Get the AI Coach's reply","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/patient/ai-coach/messages/{message_id}/reply","href":"/api-reference/ai-coach/get-the-ai-coachs-reply"},{"title":"Rate an AI Coach reply","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/patient/ai-coach/messages/{message_id}/feedback","href":"/api-reference/ai-coach/rate-an-ai-coach-reply"},{"title":"List what the AI Coach remembers","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/patient/ai-coach/memories","href":"/api-reference/ai-coach/list-what-the-ai-coach-remembers"},{"title":"Forget a memory","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/patient/ai-coach/memories/{memory_id}","href":"/api-reference/ai-coach/forget-a-memory"},{"title":"Confirm a memory","deprecated":null,"version":null,"openapi":"/openapi.json patch /v1/patient/ai-coach/memories/{memory_id}","href":"/api-reference/ai-coach/confirm-a-memory"}]},{"group":"Reminders","pages":[{"title":"List my reminders","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/patient/reminders","href":"/api-reference/reminders/list-my-reminders"},{"title":"Snooze a reminder","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/patient/reminders/{reminder_id}/snooze","href":"/api-reference/reminders/snooze-a-reminder"},{"title":"Get my reminder settings","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/patient/reminder-settings","href":"/api-reference/reminders/get-my-reminder-settings"},{"title":"Change my reminder settings","deprecated":null,"version":null,"openapi":"/openapi.json patch /v1/patient/reminder-settings","href":"/api-reference/reminders/change-my-reminder-settings"}]},{"group":"Clinical flags","pages":[{"title":"List clinical flags","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/clinical-flags","href":"/api-reference/clinical-flags/list-clinical-flags"},{"title":"Get a clinical flag","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/clinical-flags/{flag_id}","href":"/api-reference/clinical-flags/get-a-clinical-flag"},{"title":"Acknowledge a flag","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/clinical-flags/{flag_id}/acknowledge","href":"/api-reference/clinical-flags/acknowledge-a-flag"},{"title":"Resolve a flag","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/clinical-flags/{flag_id}/resolve","href":"/api-reference/clinical-flags/resolve-a-flag"}]},{"group":"Webhooks","pages":[{"title":"Enrollmentcreated","version":null,"deprecated":null,"openapi":"/openapi.json webhook enrollment.created","href":"/api-reference/webhooks/enrollmentcreated"},{"title":"Enrollmentstage changed","version":null,"deprecated":null,"openapi":"/openapi.json webhook enrollment.stage_changed","href":"/api-reference/webhooks/enrollmentstage_changed"},{"title":"Enrollmentpaused","version":null,"deprecated":null,"openapi":"/openapi.json webhook enrollment.paused","href":"/api-reference/webhooks/enrollmentpaused"},{"title":"Enrollmentresumed","version":null,"deprecated":null,"openapi":"/openapi.json webhook enrollment.resumed","href":"/api-reference/webhooks/enrollmentresumed"},{"title":"Enrollmentcancelled","version":null,"deprecated":null,"openapi":"/openapi.json webhook enrollment.cancelled","href":"/api-reference/webhooks/enrollmentcancelled"},{"title":"Care teamassigned","version":null,"deprecated":null,"openapi":"/openapi.json webhook care_team.assigned","href":"/api-reference/webhooks/care_teamassigned"},{"title":"Care teamchanged","version":null,"deprecated":null,"openapi":"/openapi.json webhook care_team.changed","href":"/api-reference/webhooks/care_teamchanged"},{"title":"Care teamcapacity warning","version":null,"deprecated":null,"openapi":"/openapi.json webhook care_team.capacity_warning","href":"/api-reference/webhooks/care_teamcapacity_warning"},{"title":"Care teamfeedback due","version":null,"deprecated":null,"openapi":"/openapi.json webhook care_team.feedback_due","href":"/api-reference/webhooks/care_teamfeedback_due"},{"title":"Formrequested","version":null,"deprecated":null,"openapi":"/openapi.json webhook form.requested","href":"/api-reference/webhooks/formrequested"},{"title":"Onboardingcompleted","version":null,"deprecated":null,"openapi":"/openapi.json webhook onboarding.completed","href":"/api-reference/webhooks/onboardingcompleted"},{"title":"Protocolpublished","version":null,"deprecated":null,"openapi":"/openapi.json webhook protocol.published","href":"/api-reference/webhooks/protocolpublished"},{"title":"Protocolupdated","version":null,"deprecated":null,"openapi":"/openapi.json webhook protocol.updated","href":"/api-reference/webhooks/protocolupdated"},{"title":"Messagecreated","version":null,"deprecated":null,"openapi":"/openapi.json webhook message.created","href":"/api-reference/webhooks/messagecreated"},{"title":"Clinicalflag raised","version":null,"deprecated":null,"openapi":"/openapi.json webhook clinical.flag_raised","href":"/api-reference/webhooks/clinicalflag_raised"},{"title":"Clinicalflag redelivered","version":null,"deprecated":null,"openapi":"/openapi.json webhook clinical.flag_redelivered","href":"/api-reference/webhooks/clinicalflag_redelivered"},{"title":"Clinicalflag acknowledged","version":null,"deprecated":null,"openapi":"/openapi.json webhook clinical.flag_acknowledged","href":"/api-reference/webhooks/clinicalflag_acknowledged"},{"title":"Clinicalflag resolved","version":null,"deprecated":null,"openapi":"/openapi.json webhook clinical.flag_resolved","href":"/api-reference/webhooks/clinicalflag_resolved"},{"title":"Patientdisengaged","version":null,"deprecated":null,"openapi":"/openapi.json webhook patient.disengaged","href":"/api-reference/webhooks/patientdisengaged"},{"title":"Patientmilestone reached","version":null,"deprecated":null,"openapi":"/openapi.json webhook patient.milestone_reached","href":"/api-reference/webhooks/patientmilestone_reached"},{"title":"Reminderdue","version":null,"deprecated":null,"openapi":"/openapi.json webhook reminder.due","href":"/api-reference/webhooks/reminderdue"},{"title":"Data requestcompleted","version":null,"deprecated":null,"openapi":"/openapi.json webhook data_request.completed","href":"/api-reference/webhooks/data_requestcompleted"}]}]}]},"basePath":"","title":"Get today - TeraRx API","buildId":"dpl_FWZhTb2vab28gFGFH4ojka6qEznQ","deploymentId":"dpl_FWZhTb2vab28gFGFH4ojka6qEznQ","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-CBsVopKK.js","utils-DZAk68jJ.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-D32AYZrP.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-D_A5_cny.js","snippetPresets-xNRfS9th.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-BIB25-tq.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-CydJ4w4j.js","shallow-CYPBeQSG.js","getApiPlaygroundDisplay-A5xJVBOu.js","CodeSnippet-BVRTgi3m.js","CodeSnippets-DjD6BSlt.js","Page-Dr40SSJq.js","getPastedJson-D4V4JyrR.js","icon-uhcnG22T.js","MethodPill-CM-ZQdGH.js","DuplicateIcon-B_WnOiNf.js","createIcon-CJsb8utt.js","DynamicMarkdown-D-2HDKEp.js","SectionHeading-KP5xmMgQ.js","axios-vUo_bRtp.js","Markdown-D_k0dg6k.js","clsx-DK3K4Z1S.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-DE3EVdvd.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-fN9H9n9g.js"]}