Autenticação
Requisições programáticas para a API VestiAI autenticam com uma API key (um Bearer token). Crie sua chave no painel e envie ela em cada requisição.
API Keys
Formato
Toda API key tem o prefixo sk_live_ seguido de bytes aleatórios. O valor completo é exibido uma única vez, no momento em que você cria a chave no painel. A API armazena apenas o hash; não há como recuperar o plaintext depois.
Como enviar
Passe a chave no header Authorization de cada requisição:
Authorization: Bearer sk_live_SUA_CHAVE
Criando uma chave
Crie e gerencie suas chaves no painel, em Developers > API Keys. A criação exige estar logado (sessão do painel), não uma API key existente, então uma chave comprometida nunca consegue gerar novas.
A chave completa (sk_live_...) aparece uma única vez, logo após você criá-la. Copie e guarde em local seguro nesse momento: a API armazena apenas um hash e não consegue exibi-la de novo. Ao criar uma chave você pode dar um nome (rótulo legível) e uma expiração opcional.
Limites por plano
Os limites são definidos quando a chave é criada, com base no plano ativo.
| Plano | Req/min | Req/dia | Max itens/batch |
|---|---|---|---|
| Basic | 30 | 1.000 | 20 |
| Pro | 60 | 5.000 | 100 |
| Scale | 120 | 20.000 | 500 |
| Sem plano | 10 | 200 | 5 |
Clientes enterprise podem aumentar os limites de uma chave específica pelo painel (teto: 1.000 req/min, 200.000 req/dia).
Gerenciamento
Crie, liste, revogue e ajuste os limites das suas chaves no painel, em Developers > API Keys. Essas operações exigem sessão do painel e recusam API keys de propósito, então uma chave vazada não pode gerenciar a si mesma nem criar novas.
Sessão de browser
O dashboard da VestiAI autentica as próprias requisições automaticamente com a sua sessão de login, então não precisa de API key dentro da app. Isso é interno ao dashboard; integrações externas sempre usam API keys.
Comportamento quando não autenticado
Requisições sem credencial válida recebem 401 Unauthorized com body RFC 7807:
{
"type": "urn:vestiai:error:unauthorized",
"title": "Unauthorized",
"status": 401,
"detail": "Não autorizado - forneça uma sessão válida ou uma API key (Authorization: Bearer sk_live_...)",
"instance": "/api/v1/generations"
}
Para detalhes sobre todos os códigos de erro, veja o guia de Erros. Para entender os limites de requisição por plano, veja Rate limits.