numSerie. For each series in the current routine, it looks up the same numSerie. This is the preferred path because series numbers are stable across routine edits.Explore the dashboard stats, training volume chart, and historical progression data that KERN surfaces to help you measure and improve your performance.
KERN’s analytics dashboard gives you a live view of your cumulative training activity — total sessions completed, steps taken across all workouts, days you trained, and a line chart of how your lifting volume evolves over time. All of this is derived from theDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/jaimegayo/KERNDOCUMENTATION/llms.txt
Use this file to discover all available pages before exploring further.
WorkoutSession records created each time you finish a session.
GET /users/stats, which aggregates data across every session you have ever completed.
GET /users/stats
Authorization: Bearer <token>
{
"total_workouts": 24,
"total_steps": 18430,
"training_days": [
"2026-04-01",
"2026-04-03",
"2026-04-05"
]
}
WorkoutSession rows for the authenticated user. Increments by 1 each time you complete and save a session.steps field across all sessions. Represents cumulative steps recorded by the foreground step counter service.YYYY-MM-DD) on which at least one session was saved. Used to visualize training frequency.total_volume field of one WorkoutSession.
What is volume?
Volume is the sum of kilos × reps across every completed series in a session. It is calculated on the Android client in real time during the workout and submitted with the session payload.
total_volume = Σ (kilos × reps) for all completed series
GET /routines/{routine_id}.
The API finds the most recent WorkoutSession matching the routine name and extracts per-exercise, per-series history from data_json. The matching result is embedded in each series object:
| Field | Description |
|---|---|
anterior | Human-readable string shown in the UI, e.g. "60kg x 10". |
prev_kilos | Numeric weight from the previous session. Pre-fills the input. |
prev_reps | Numeric rep count from the previous session. Pre-fills the input. |
Primary match: by numSerie
numSerie. For each series in the current routine, it looks up the same numSerie. This is the preferred path because series numbers are stable across routine edits.Fallback match: by array index
numSerie match is found — for example, sessions recorded before numSerie was introduced — the API falls back to positional matching: series at index i in the routine is matched to series at index i in the session snapshot.WorkoutSession stores a data_json column: a complete JSON snapshot of all exercises and completed series from that session. This snapshot is the source for future progression hints.
[
{
"name": "Press de banca",
"series": [
{ "numSerie": 1, "kilos": 60, "reps": 10 },
{ "numSerie": 2, "kilos": 62.5, "reps": 8 },
{ "numSerie": 3, "kilos": 60, "reps": 9 }
]
}
]
WorkoutSession. If you accidentally finish a session early, the partial data will still be stored and used for progression hints.Powered by Mintlify
Auto-generate your docs