Create a planned workout in a plan/week
Inserts a workout into an existing plan/week. Triggers an LLM workflow to update plan summaries and related content. Returns `202 Accepted` with a `job_id` partners can poll. An update event is published to the partner queue on job completion.
Authorization
MemberBearer Member-scoped JWT minted by POST /v1/auth/token. Required on every /v1/users/{user_id}/... route; the token's sub claim must match the path user_id.
In: header
Path Parameters
uuidHeader Parameters
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
curl -X POST "https://loading/v1/users/497f6eca-6276-4993-bfeb-53cbbbba6f08/workouts" \ -H "Content-Type: application/json" \ -d '{ "workout_plan_id": "21dabb83-a815-47bd-9e20-92d94b7acda8", "scheduled_time": "2019-08-24T14:15:22Z" }'{
"data": {
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"job_id": "453bd7d7-5355-4d6d-a38e-d9e7eb218c3f",
"status": "accepted"
}
}{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string"
}
]
}Read one week of a workout plan with embedded workouts
Returns one week (zero-based index from the parent plan's `weeks[]` array) with embedded workouts. The embedded array is paginated via `limit`/`offset` so partners can lazy-load weeks with many workouts.
Read one planned workout
Returns the full planned workout body (blocks → steps). Step `kind` is one of `run_segment`, `rest`, `exercise`, `rep_scheme`, `circuit_amrap`, `circuit_emom`, or `circuit_rounds`. Each kind carries only the fields that apply to it. New kinds will be added in non-breaking minor revisions — partners should switch on `kind` and fall back to a generic renderer for unknown values.