Pular para o conteúdo
DocsStatusMarca
Documentação
Infraestrutura com personalidade.
DocumentaçãoStatusMarca
© 2026 onny
ComeçandoVisão geralPrimeira chamadaAutenticaçãoErrosLimites e paginação
Identity
AuthPOSTEntrarPOSTSairPOSTRenovar sessãoPOSTCriar conta
UsersGETUsuário atual
Core API
GETListar projetosPOSTCriar projetoGETDetalhar projetoPUTAtualizar projetoDELRemover projeto
Referência da API

Documentação

Tudo que existe na API da onny, gerado dos contratos de cada serviço. Teste qualquer rota daqui: entre uma vez e as próximas chamadas já vão autenticadas.

Primeira chamada

Sem conta e sem token: confirme que a API responde.

Terminal
curl https://api.onny.space/api/health/ready
# Healthy

Depois, crie uma conta ou entre por aqui mesmo e siga para criar um projeto.

Serviços

01

Identity

5 rotas

Contas, login e sessões da plataforma onny. Emite os tokens JWT (RS256) aceitos por todos os serviços.

https://api.onny.space/identity
Ver rotas
02

Core API

5 rotas

Regras de negócio da plataforma onny. Todas as rotas exigem o access token emitido pelo Identity.

https://api.onny.space/api
Ver rotas

Autenticação

As rotas da Core API exigem um access token (JWT) no header Authorization: Bearer …. Ele vale 15 minutos; o refresh token renova a sessão sem pedir a senha de novo.

01

Entre

Com POST /v1/auth/login ou crie a conta em POST /v1/auth/register.

02

Envie

O accessToken no header Authorization de toda chamada autenticada.

03

Renove

Antes de expirar, com POST /v1/auth/refresh. Uso único: reapresentar encerra a sessão.

Terminal
curl -X POST "https://api.onny.space/identity/v1/auth/login" \
  -H "Content-Type: application/json" \
  -d '{"email":"ana@exemplo.com","password":"SenhaForte123"}'

# resposta
{
  "accessToken": "eyJhbGciOiJSUzI1NiIs…",
  "refreshToken": "rt_9qX2…",
  "expiresIn": 900,
  "tokenType": "Bearer"
}

Erros

Toda falha volta como Problem Details (RFC 9457) com um code estável para o front tratar, e um traceId para rastrear nos logs.

application/problem+json
{
  "title": "projects.slug_taken",
  "status": 409,
  "detail": "Você já tem um projeto com esse nome.",
  "code": "projects.slug_taken",
  "traceId": "00-4bf92f3577b34da6…-01"
}
codeHTTPQuando
auth.invalid_credentials401E-mail ou senha inválidos.
auth.locked_out4035 senhas erradas: conta bloqueada por 10 minutos.
auth.invalid_refresh_token401Refresh inválido, expirado ou já usado (a sessão cai).
auth.email_taken409Já existe conta com o e-mail.
auth.credentials_changed401A senha mudou durante o login. Entre de novo.
projects.slug_taken409Você já tem um projeto com esse nome.
projects.invalid400Dados do projeto inválidos (detalhes em errors).

Limites e paginação

Acima do limite a resposta é 429; espere o minuto virar. Listas são paginadas com page (a partir de 1) e pageSize (1 a 100) e devolvem total.

10/minLogin e cadastropor IP
60/minRefresh e logoutpor IP
300/minDemais rotaspor IP
1MBCorpo da requisiçãomáximo