Autenticación
Scopes
Cada endpoint exige un scope, y un token solo lleva lo que se le concedió. Los usuarios ven los scopes exactos que pide una app: solicita el mínimo que necesites.
Scopes disponibles
| Scope | Da acceso a |
|---|---|
profile:read | Nombre visible, nombre de usuario, unidades, género, altura, objetivo |
workouts:read | Historial de entrenamientos, detalle del entrenamiento (ejercicios y series), plantillas de entrenamiento |
records:read | Récords personales (1RM, peso, volumen, repeticiones, duración, distancia) |
measurements:read | Peso corporal y medidas de circunferencia |
stats:read | Rachas, XP total y trofeos |
splits:read | Splits de entrenamiento personalizados |
exercises:read | Los catálogos globales de ejercicios y equipamiento |
Hoy la API es de solo lectura: no hay scopes de escritura. El acceso de escritura se introducirá como scopes nuevos y explícitos, nunca incorporado en silencio a los existentes.
Aplicación
Los scopes se aplican en el servidor en cada petición. Llamar a un endpoint para el que tu token no tiene scope devuelve 403 con un cuerpo 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."
}Valores por defecto
| Tipo de token | Scopes por defecto |
|---|---|
| Token personal | Todos los scopes, salvo que los acotes al crearlo: son tus propios datos. |
| App OAuth | Solo los scopes registrados para tu app y consentidos por el usuario. |
| Conexión MCP | Un conjunto fijo de scopes concedido al conectar tu cuenta; se aplica en cada llamada a herramienta. |