Skip to main content
GET
Get a milestone

Authorizations

Authorization
string
header
default:Bearer sandbox_any_token_works
required

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.

Path Parameters

milestone_id
string<uuid>
required

Response

The milestone.

id
string<uuid>
required
Example:

"0190f5e1-2a3b-7c4d-9e5f-6a7b8c9d0e1f"

code
enum<string>
required

What the patient reached. New codes may be added; show a generic celebration for a code you don't know.

Available options:
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"

category
enum<string>
required
Available options:
logging,
nutrition,
activity,
treatment,
program,
weight
Example:

"nutrition"

title
string
required

A short headline in the patient's language.

Example:

"7 days at your protein target"

message
string
required

One personal line built from stats.

Example:

"You averaged 112 g a day, up from 74 g in your first week."

achieved_at
string<date-time>
required

ISO 8601 in UTC.

Example:

"2026-10-26T14:05:00Z"

stats
object
required

The patient's numbers behind the milestone. Keys depend on the code.

Example: