User Profile
Parameters that define user characteristics for personalized content and recommendations.
| Parameter | Type | Default | Applies to | What it does internally |
| age | number | 30 | All | Sent to the verify API as birth_year and used for calorie (BMR) estimation. Accepts either an age (1–120) or a literal birth year (1900–current year) — both are converted to a birth year internally |
| gender | string | "male" | All | "male" or "female". Sent to the verify API; used in the calorie (BMR) formula and AI Trainer profile prefill. (For which demo videos are shown, see content_gender under Language & Localization) |
| height | number | 160 | All | Height in cm. Sent to the verify API; used in the calorie (BMR) formula |
| weight | number | 70 | All | Weight in kg. Sent to the verify API; used in the calorie (BMR) formula |
| fitness_level | string | "beginner" | Main, Plan | "beginner", "intermediate", or "advanced". Filters and sorts the plan list by difficulty. Also attached to analytics |
| lifestyle | string | "lightly_active" | All | "sedentary", "lightly_active", "active", or "very_active". Sent to the verify API and synced to the user's backend profile; prefills the AI Trainer profile |
| body_parts | string[] | [] | Workout, AI Trainer | Filters the exercise list shown on the workout detail page to workouts targeting those body parts, and prefills the AI Trainer's target muscle groups (unknown values are dropped) |
| plan_type | string | null | — (analytics only) | Recorded in analytics only. Has no functional effect on plan structure in the current version — do not use it to change plan behavior |
Important — defaults vs. provided values: the SDK tracks which of age/gender/height/weight/lifestyle you explicitly passed. Calorie estimates (Mifflin–St Jeor BMR) and AI Trainer profile prefill only use explicitly provided values — if any of weight/height/age/gender is missing, calories fall back to a fixed default BMR instead of silently using the defaults above. Passing a complete profile therefore gives noticeably more accurate calorie numbers.
Backend profile sync: when all of age (valid), height > 0, weight > 0, and lifestyle are provided, the SDK syncs them once per user/company to the KinesteX user profile (used by personalized plans). Partial profiles are never synced, so existing server data is not overwritten with defaults.
Note: There is no BMI calculation in the SDK — height/weight feed calorie estimation (BMR) only.
SDK Support: Most platforms have direct support via a UserDetails object or postData fields.
1// Direct SDK support via UserDetails
2let user = UserDetails(
3 age: 30,
4 height: 180,
5 weight: 75,
6 gender: .Male,
7 lifestyle: .Active
8)
9
10kinestex.createView(
11 user: user,
12 // ... other params
13)