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
Lo más fácil es el panel: abre app.gravl.ai/settings/developer y crea el token allí — ponle nombre, elige los scopes y la caducidad, y copia el valor cuando se muestre. Los endpoints de abajo hacen lo mismo de forma programática.
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í.
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.