Autenticación
Tokens de acceso personales
La vía más rápida. Un token personal está ligado a tu propia cuenta y nunca puede ver los datos de nadie más: perfecto para dashboards, scripts, hojas de cálculo y proyectos personales.
Crea un token
Los tokens personales se gestionan desde tu propia cuenta, así que estos tres endpoints usan tu sesión normal de Gravl (la misma autenticación que usa la app móvil), no el token en sí.
Crear
POST https://api.gravl.ai/api/user/personal-tokens
Authorization: Bearer <your Gravl session token>
Content-Type: application/json
{
"name": "My stats dashboard",
"scopes": ["workouts:read", "stats:read"],
"expiresInDays": 365
}
{
"token": "gat_k3rB…", // ← shown exactly once, store it now
"clientId": "gci_9fJq…",
"name": "My stats dashboard",
"scopes": "workouts:read stats:read",
"expiresAt": "2027-07-14T09:30:00Z"
}| Campo | Tipo | Notas |
|---|---|---|
name | string | Obligatorio. Lo que estás construyendo; se muestra al listar tus tokens. Máximo 120 caracteres. |
scopes | string[] | Opcional. Por defecto son todos los scopes (son tus propios datos). Consulta scopes. |
expiresInDays | number | Opcional. De 1 a 365; por defecto 365. |
El valor de token se devuelve una sola vez y se almacena solo como hash. Si lo pierdes, toca revocarlo y crear uno nuevo: no hay forma de volver a leerlo.
Úsalo
Envía el token como token bearer contra cualquier endpoint de /api/v1 para el que tenga scopes:
curl "https://api.gravl.ai/api/v1/stats" \
-H "Authorization: Bearer gat_k3rB…"
{
"streak": { "current": 6, "longest": 14, "workoutsThisWeek": 3 },
"totalXp": 12480,
"trophyCount": 22
}Listar y revocar
| Método | Ruta | Descripción |
|---|---|---|
| GET | /api/user/personal-tokens | Tus tokens activos: nombre, clientId, scopes, creación, último uso, caducidad. Nunca el valor del token. |
| DELETE | /api/user/personal-tokens/{clientId} | Revoca el token de inmediato. Las peticiones en curso con él empiezan a fallar con 401 al instante. |
Límites
| Límite | Valor |
|---|---|
| Tokens activos por cuenta | 10 |
| Vida máxima | 365 días |
| Rate limit | 100 peticiones / 15 minutos (por token y usuario) |
¿Necesitas automatización más duradera, acceso entre apps o límites más altos? Para eso están las apps OAuth.