Fetching Content Lists
Fetch lists of workouts, plans, or exercises with optional filtering.
Parameters:
| Parameter | Type | Description |
| category | String | Filter by category. Required for plans in Flutter, Swift, and Kotlin SDKs. Optional for workouts and exercises. |
| bodyParts | [BodyPart] | Filter by targeted body parts (optional) |
| include_kinestex | Bool | Include KinesteX workout library in results (default: true) |
| limit | Int | Number of results to return (default: 10) |
| lang | String | Language code (default: "en") |
| lastDocId | String | For pagination (optional) |
| translation_languages | String | Filter by available translations. Comma-separated language codes (e.g. "es,fr") or repeated query parameters (optional, REST API only) |
Fetch Workouts
1// Fetch workouts with optional filters
2Task {
3 let result = await kinestex.fetchWorkouts(
4 category: "Fitness", // or "Rehabilitation"
5 limit: 10
6 )
7
8 switch result {
9 case .success(let response):
10 let workouts = response.workouts
11 print("Fetched \(workouts.count) workouts")
12
13 for workout in workouts {
14 print("- \(workout.title): \(workout.totalMinutes ?? 0) mins")
15 }
16
17 // Store lastDocId for pagination
18 let nextPageId = response.lastDocId
19
20 case .failure(let error):
21 print("Error: \(error.localizedDescription)")
22 }
23}Fetch Plans
1// Fetch workout plans
2Task {
3 let result = await kinestex.fetchPlans(
4 category: "Strength", // Rehabilitation, Weight Management, Cardio, Strength
5 limit: 5
6 )
7
8 switch result {
9 case .success(let response):
10 let plans = response.plans
11 print("Fetched \(plans.count) plans")
12
13 case .failure(let error):
14 print("Error: \(error.localizedDescription)")
15 }
16}Fetch Exercises
1// Fetch exercises filtered by body parts
2Task {
3 let result = await kinestex.fetchExercises(
4 bodyParts: [.abs, .glutes],
5 limit: 10
6 )
7
8 switch result {
9 case .success(let response):
10 let exercises = response.exercises
11 print("Fetched \(exercises.count) exercises")
12
13 for exercise in exercises {
14 print("- \(exercise.title): \(exercise.bodyParts.joined(separator: ", "))")
15 }
16
17 case .failure(let error):
18 print("Error: \(error.localizedDescription)")
19 }
20}