# Workout Configuration

Parameters for configuring workout behavior and progression.

| Parameter | Type | Description | Effect |
|-----------|------|-------------|--------|
| planC | string | Plan configuration identifier | Specifies which workout plan to load |
| exercises | string[] | Array of exercise identifiers | Defines the specific exercises to include in a session |
| currentExercise | string | Current exercise identifier | Sets the active exercise for camera component |
| completed_exercises | string[] | Previously completed exercises | Allows resuming a workout from a specific point |
| start_from_exercise | string | Exercise to start from | Skips to a specific exercise in the workout |
| start_from_rest | boolean | Start from rest period | If true, begins at rest screen before the specified exercise |
| resetPlanProgress | boolean | Reset all plan progress | Clears all saved progress for the user's plans |
| on_start_url | string | URL to call on workout start | Webhook URL triggered when workout begins |

**Note:** Exercise IDs can be retrieved from the [Content API](/docs/content-api).

**Workout Configuration**

_Swift (iOS)_
```swift
// Direct support for some, customParams for others
kinestex.createCameraView(
    exercises: ["Squats", "Lunges", "Pushups"], // direct
    currentExercise: $currentExercise, // direct
    customParams: [
        "start_from_exercise": "Lunges",
        "start_from_rest": true,
        "resetPlanProgress": false
    ]
)
```

_Kotlin (Android)_
```kotlin
// Direct support for some, customParams for others
KinesteXSDK.createCameraComponent(
    exercises = listOf("Squats", "Lunges", "Pushups"), // direct
    currentExercise = "Squats", // direct
    customParams = mapOf(
        "start_from_exercise" to "Lunges",
        "start_from_rest" to true
    )
)
```

_React Native_
```jsx
// Direct support in postData
const postData: IPostData = {
  key: 'YOUR_API_KEY',
  userId: 'user-123',
  company: 'YOUR_COMPANY',
  // Direct support
  exercises: ['Squats', 'Lunges', 'Pushups'],
  currentExercise: 'Squats',
  // Via customParameters
  customParameters: {
    start_from_exercise: 'Lunges',
    start_from_rest: true,
    resetPlanProgress: false,
  },
};
```

_Flutter_
```dart
// Direct support for some, customParams for others
KinesteXAIFramework.createCameraComponent(
  exercises: ["Squats", "Lunges", "Pushups"], // direct
  currentExercise: "Squats", // direct
  customParams: {
    "start_from_exercise": "Lunges",
    "start_from_rest": true,
  },
);
```

_HTML / JavaScript_
```html
// Direct in postData object
const postData = {
  userId: "user-123",
  company: "YOUR_COMPANY",
  key: "YOUR_API_KEY",
  exercises: ["Squats", "Lunges", "Pushups"],
  currentExercise: "Squats",
  start_from_exercise: "Lunges",
  start_from_rest: true,
  resetPlanProgress: false,
};
```

_React (TypeScript)_
```tsx
// Direct support in postData
const postData: IPostData = {
  key: 'YOUR_API_KEY',
  userId: 'user-123',
  company: 'YOUR_COMPANY',
  // Direct support
  exercises: ['Squats', 'Lunges', 'Pushups'],
  currentExercise: 'Squats',
  // Via customParameters
  customParameters: {
    start_from_exercise: 'Lunges',
    start_from_rest: true,
  },
};
```

---
Source: https://kinestex.com/docs/customization-parameters/workout-configuration · Index: https://kinestex.com/llms.txt
