Authentification
Scopes
Chaque endpoint exige un scope, et un token ne porte que ce qui a été accordé. Les utilisateurs voient les scopes exacts qu’une app demande : ne demande que le minimum nécessaire.
Scopes disponibles
| Scope | Donne accès à |
|---|---|
profile:read | Nom affiché, nom d’utilisateur, unités, genre, taille, objectif |
workouts:read | Historique d’entraînement, détail des séances (exercices et séries), templates d’entraînement |
records:read | Records personnels (1RM, poids, volume, reps, durée, distance) |
measurements:read | Poids de corps et mensurations |
stats:read | Streaks, XP total et trophées |
splits:read | Splits d’entraînement personnalisés |
exercises:read | Les catalogues globaux d’exercices et de matériel |
L’API est en lecture seule aujourd’hui : il n’existe pas de scopes d’écriture. L’accès en écriture arrivera sous forme de nouveaux scopes explicites, jamais fondu en silence dans les scopes existants.
Application
Les scopes sont appliqués côté serveur à chaque requête. Appeler un endpoint pour lequel ton token n’a pas reçu de scope renvoie 403 avec un corps problem-details :
GET /api/v1/measurements
Authorization: Bearer gat_… (granted: workouts:read stats:read)
HTTP/1.1 403 Forbidden
{
"status": 403,
"title": "Missing scope",
"detail": "This authorization is missing the 'measurements:read' scope."
}Par défaut
| Type de token | Scopes par défaut |
|---|---|
| Token personnel | Tous les scopes, sauf si tu les restreins à la création : ce sont tes propres données. |
| App OAuth | Uniquement les scopes enregistrés pour ton app et consentis par l’utilisateur. |
| Connexion MCP | Un ensemble de scopes fixe accordé quand tu connectes ton compte ; appliqué à chaque appel d’outil. |