name: gymextract description: Exports workout data (strength training sets/reps/weight, cardio, etc.) from Technogym mywellness.com for a configurable date range and outputs raw JSON. Use when the user asks for Technogym data, mywellness workouts, gym training history, strength training logs, or wants to retrieve exercise data from mywellness.com.
gymextract
Export workout data from the Technogym mywellness.com web portal.
Prerequisites
- Python 3.12+ and
uvinstalled .envfile in the workspace root with:MYWELLNESS_EMAIL=<email> MYWELLNESS_PASSWORD=<password>- Dependencies installed: run
uv syncin the workspace root
Instructions
1. Ensure dependencies are installed
cd <workspace_root>
uv sync
2. Fetch workout data
Run the CLI via uv run python -m gymextract with these options:
| Option | Default | Description |
|---|---|---|
--from YYYY-MM-DD |
30 days ago | Start of date range |
--to YYYY-MM-DD |
today | End of date range |
--output PATH / -o PATH |
- (stdout) |
- for JSON to stdout, or a directory path for per-session files |
--no-details |
off | Skip per-exercise detail (sets/reps/weight). Much faster. |
--env-file PATH |
.env |
Path to credentials file |
Examples:
# Fetch last 30 days with full detail to stdout
uv run python -m gymextract
# Fetch a specific month, save to files
uv run python -m gymextract --from 2026-02-01 --to 2026-02-28 --output data/
# Quick session list without set/rep/weight detail
uv run python -m gymextract --from 2026-01-01 --to 2026-03-04 --no-details
3. Interpret the output
The JSON output contains an array of workout sessions. Each session has:
session_id,date(YYYYMMDD),name,total_movesexercises[]— each exercise includes:name— exercise name (e.g. "Drücken", "Beinpresse")machine— equipment (e.g. "Chest Press Biostrength")duration,calories,movesresistance_type— "Isotonisch" for strength, empty for cardiocompliance— adherence to prescribed workouttotal_weight_kg— total volume for that exercisesets[]— per-set breakdown:set_number,reps_target,reps_actualweight_kg_target,weight_kg_actualcompliance_target,compliance_actual
4. Programmatic use from Python
from datetime import date
from gymextract.client import MywellnessClient
with MywellnessClient(email, password) as client:
client.login()
sessions = client.fetch_all(date(2026, 2, 1), date(2026, 3, 4))
Performance notes
- With details: ~2-3 seconds per exercise (each requires a separate HTTP request). A session with 8 exercises takes ~20s.
- Without details (
--no-details): ~2s per month of data. Use this for quick overviews. - The tool fetches data in monthly chunks to avoid oversized HTML responses.
- Progress is reported to stderr during detail fetching.
Troubleshooting
- Login fails: Verify credentials in
.env. The mywellness.com password is case-sensitive. - No sessions returned: Check the date range — sessions are returned by the date they were performed.
- Timeouts: The default timeout is 60s per request. The mywellness.com server can be slow.