Withings Family
Fetches health data from the Withings API for multiple family members including weight, body composition (fat, muscle, bone, water), activity, and sleep. Use...
Fetches health data from the Withings API for multiple family members including weight, body composition (fat, muscle, bone, water), activity, and sleep. Use...
Real data. Real impact.
Growing
Developers
Per week
Open source
Skills give you superpowers. Install in 30 seconds.
This skill allows you to interact with Withings accounts for multiple family members to retrieve comprehensive health metrics from Withings devices (smart scales, sleep analyzers, activity trackers, etc.).
This skill natively supports multiple users with per-user token files:
tokens-alice.json tokens-bob.json tokens-charlie.json
Each family member authenticates once via OAuth. Their tokens are stored separately and refreshed automatically. No token copying or switching required — just pass the user ID as the first argument.
python3 scripts/withings.py alice weight python3 scripts/withings.py bob sleep python3 scripts/withings.py charlie activity
Use this skill when the user:
Before using this skill, you need to create a free Withings developer application to get your API credentials.
http://localhost:18081 (required for OAuth)Once your application is created:
WITHINGS_CLIENT_ID environment variableWITHINGS_CLIENT_SECRET environment variableAdd these to your Moltbot environment:
export WITHINGS_CLIENT_ID="your_client_id_here" export WITHINGS_CLIENT_SECRET="your_client_secret_here"
Or create a
.env file in ~/.openclaw/withings-family/.env (legacy: ~/.moltbot/withings-family/.env):
WITHINGS_CLIENT_ID=your_client_id_here WITHINGS_CLIENT_SECRET=your_client_secret_here
The skill provides two scripts (in
scripts/):
scripts/withings_oauth_local.py — Automatic OAuth with local callback server (recommended)scripts/withings.py — Main CLI + manual OAuthCredentials location:
~/.openclaw/withings-family/ (legacy: ~/.moltbot/withings-family/)
.env — Client ID/Secret (optional, can use ENV vars instead)tokens-<userId>.json — OAuth tokens per user (mode 600)Before any data retrieval, check if the user is authenticated. If an error mentions "No token found", guide the user through the initial authentication process for that specific user.
Uses a local callback server to capture the code automatically:
python3 {baseDir}/scripts/withings_oauth_local.py <userId>
Example:
python3 {baseDir}/scripts/withings_oauth_local.py alice
The script will:
tokens-<userId>.jsonTraditional two-step flow (see "Authentication" command below).
All commands follow the format:
python3 {baseDir}/scripts/withings.py <userId> <command> [options]
First-time setup for a user — generates the OAuth URL:
python3 {baseDir}/scripts/withings.py alice auth
After the user visits the URL and gets the authorization code:
python3 {baseDir}/scripts/withings.py alice auth YOUR_CODE_HERE
Repeat for each family member who needs access.
Retrieve the latest weight measurements:
python3 {baseDir}/scripts/withings.py alice weight
Returns the 5 most recent weight entries in JSON format.
Example output:
[ { "date": "2026-01-17T08:30:00.000Z", "weight": "75.40 kg" }, { "date": "2026-01-16T08:15:00.000Z", "weight": "75.65 kg" } ]
Retrieve comprehensive body metrics (fat, muscle, bone, water, BMI):
python3 {baseDir}/scripts/withings.py alice body
Returns the 5 most recent body composition measurements.
Example output:
[ { "date": "2026-01-17T08:30:00.000Z", "weight": "75.40 kg", "fat_percent": "18.5%", "fat_mass": "13.95 kg", "muscle_mass": "35.20 kg", "bone_mass": "3.10 kg", "hydration": "55.2%" } ]
Retrieve daily activity data (steps, distance, calories):
python3 {baseDir}/scripts/withings.py alice activity
Optionally specify the number of days (default: 7):
python3 {baseDir}/scripts/withings.py alice activity 30
Example output:
[ { "date": "2026-01-17", "steps": 8542, "distance": "6.23 km", "calories": 2150, "active_calories": 450, "soft_activity": "45 min", "moderate_activity": "22 min", "intense_activity": "8 min" } ]
Retrieve sleep data and quality:
python3 {baseDir}/scripts/withings.py alice sleep
Optionally specify the number of days (default: 7):
python3 {baseDir}/scripts/withings.py alice sleep 14
Example output:
[ { "date": "2026-01-17", "start": "23:15", "end": "07:30", "duration": "8h 15min", "deep_sleep": "1h 45min", "light_sleep": "4h 30min", "rem_sleep": "1h 30min", "awake": "30min", "sleep_score": 82 } ]
Common errors and how to resolve them:
| Error | Cause | Solution |
|---|---|---|
| "No token found" | User not authenticated | Run and follow the OAuth flow |
| "Failed to refresh token" | Token expired and refresh failed | Re-authenticate with |
| "API Error Status: 401" | Invalid or expired credentials | Check your CLIENT_ID and CLIENT_SECRET, re-authenticate |
| "API Error Status: 503" | Withings API temporarily unavailable | Wait and retry later |
| Empty data | No measurements in the requested period | User needs to sync their Withings device |
tokens-{userId}.json)user.metrics, user.activityNo automatic installation available. Please visit the source repository for installation instructions.
View Installation Instructions1,500+ AI skills, agents & workflows. Install in 30 seconds. Part of the Torly.ai family.
© 2026 Torly.ai. All rights reserved.