Autenticação
Scopes
Todos os endpoints exigem um scope e um token transporta apenas o que foi concedido. Os utilizadores veem exatamente os scopes que uma app pede: peça o mínimo de que precisa.
Scopes disponíveis
| Scope | Dá acesso a |
|---|---|
profile:read | Nome de apresentação, nome de utilizador, unidades, género, altura, objetivo |
workouts:read | Histórico de treinos, detalhe do treino (exercícios e séries), templates de treino |
records:read | Recordes pessoais (1RM, peso, volume, repetições, duração, distância) |
measurements:read | Peso corporal e medições de perímetros corporais |
stats:read | Sequências, XP total e troféus |
splits:read | Splits de treino personalizados |
exercises:read | Os catálogos globais de exercícios e equipamento |
A API é apenas de leitura por agora; não existem scopes de escrita. O acesso de escrita será introduzido como novos scopes explícitos, nunca incorporado silenciosamente nos existentes.
Aplicação
Os scopes são verificados no servidor em cada pedido. Chamar um endpoint que não foi concedido ao seu token devolve 403 com um corpo 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 omissão
| Tipo de token | Scopes por omissão |
|---|---|
| Token pessoal | Todos os scopes, a menos que os restrinja na criação; os dados são seus. |
| App OAuth | Apenas os scopes registados para a sua app e consentidos pelo utilizador. |
| Ligação MCP | Um conjunto fixo de scopes concedido quando liga a sua conta; verificado em cada chamada de ferramenta. |