KinesteX

Fetching Content Lists

Fetch lists of workouts, plans, or exercises with optional filtering.


Parameters:

ParameterTypeDescription
categoryStringFilter 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_kinestexBoolInclude KinesteX workout library in results (default: true)
limitIntNumber of results to return (default: 10)
langStringLanguage code (default: "en")
lastDocIdStringFor pagination (optional)
translation_languagesStringFilter 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}