Exemplo de requisição
curl -X POST "https://seu-dominio/auth/login" \
-H "content-type: application/json" \
-d '{"email":"voce@empresa.com","password":"uma-senha-forte"}'
const response = await fetch('https://seu-dominio/auth/login', {
method: 'POST',
headers: {
'content-type': 'application/json',
},
body: JSON.stringify({
"email": "voce@empresa.com",
"password": "uma-senha-forte"
}),
});
const payload = await response.json();
console.log(payload);
Entenda
Conceituação
Autentica e-mail e senha. Se o 2FA estiver ativo, a resposta não cria sessão: devolve um desafio de 5 minutos para confirmar o código.
Respostas de sucesso seguem { "data": ... }; erros seguem { "error": { "code", "message" } }. Operações de escrita exigem escopo write quando autenticadas por API key.
Corpo JSON. Os campos abaixo são exemplos; campos marcados como obrigatórios precisam ser enviados.
Contrato
Atributos
Header
content-type
string
obrigatório
application/json.
Body
email
string
obrigatório
E-mail da conta ou convite.
password
string
obrigatório
Senha da conta. Mínimo definido pela política do servidor.
Payload
Request Body
{
"email": "voce@empresa.com",
"password": "uma-senha-forte"
}
Contrato
200
Resposta
{
"data": {
"user": {
"id": "usr_...",
"name": "Isaias Silva",
"email": "voce@empresa.com",
"role": "owner"
},
"tenant": {
"id": "tnt_...",
"name": "Nimbus Labs",
"plan": "trial",
"status": "trialing"
}
}
}
Respostas de sucesso são envelopadas em data.
Erros comuns
400
Corpo, query ou parâmetro inválido. A resposta traz error.code e error.message.
429
Fila cheia, limite de tentativas ou rate limit.