Workout Configuration
Parameters for configuring workout behavior and progression.
| Parameter | Type | Default | Applies to | What it does internally |
| planC | string | "Cardio" | Main | Plan category: "Weight Management", "Strength", "Rehabilitation", or "Cardio". On the Complete UX home screen it is written to the user's profile, selects which default plans are loaded, and picks the default challenge/game cards. Ignored by other integration options |
| completed_exercises | string[] | — | Workout player | Exercise IDs the user already finished. Required (together with the other two rows below) for mid-workout resume to activate — see note |
| start_from_exercise | string | — | Workout player | Exercise ID (not title) to resume from. The workout jumps to that exercise's position in the sequence; if the ID is not found, the workout silently starts from the beginning |
| start_from_rest | boolean | false | Workout player | Must be true for resume to activate. The session starts on the rest screen immediately before start_from_exercise |
| resetPlanProgress | boolean | false | All (verify-time) | Deletes all of the user's saved plan progress documents from the backend during verification. Local storage is not touched. Irreversible — intended for test/reset flows |
| on_start_url | string | "/workout/audioCheck" | Workout player, Challenge, Assessments, Training | Internal route override, not a webhook. After camera access is granted / Start is pressed, the SDK navigates to this in-app route instead of the default audio-check screen. It never makes an HTTP call to this value |
Mid-workout resume — all three parameters are required together. The resume configuration is only applied when completed_exercises, start_from_exercise, AND start_from_rest: true are all present. Passing start_from_exercise alone, or start_from_rest: false, disables the feature entirely and the workout starts from the first exercise. Matching is by exercise ID as it appears in the workout sequence (retrievable from the Content API).
Looking for `exercises` / `currentExercise`? Those belong to the standalone Camera component — see Camera Component parameters.
Workout Configuration
Swift example:
1// Resume a workout mid-way: all THREE resume params are required together
2kinestex.createWorkoutView(
3 workout: "Fitness Lite",
4 user: user,
5 customParams: [
6 "completed_exercises": ["exercise-id-1", "exercise-id-2"],
7 "start_from_exercise": "exercise-id-3", // exercise ID, not title
8 "start_from_rest": true // must be true or resume is ignored
9 ],
10 isLoading: $isLoading,
11 onMessageReceived: { /* ... */ }
12)