Criar projeto
O slug é gerado a partir do nome. Dois projetos do mesmo usuário não podem ter o mesmo slug (409).
POST
/api/v1/projects Exige Authorization: Bearer com um access token.
Corpo da requisição
namestringobrigatórioNome do projeto. Gera o slug ("Gestão de Ações" → gestao-de-acoes), único por usuário.
máx. 120descriptionstring | nullDescrição livre (opcional).
máx. 2000
Respostas
201Created
{
"id": "01923f4e-7b1a-7c3d-9e2f-5a6b7c8d9e0f",
"name": "Meu projeto",
"slug": "meu-projeto",
"description": "Primeiro projeto na onny.",
"createdAt": "2026-10-11T12:00:00+00:00",
"updatedAt": "2026-10-11T12:00:00+00:00"
}6 campos descrição de cada um
iduuidIdentificador do projeto (UUID v7).
namestringNome do projeto.
slugstringVersão do nome para URL, única por usuário.
descriptionstring | nullDescrição livre.
createdAtdatetimeCriação (ISO 8601, UTC).
updatedAtdatetime | nullÚltima alteração (ISO 8601, UTC); null se nunca foi alterado.
400Bad Request
{
"type": "https://tools.ietf.org/html/rfc9110",
"title": "auth.invalid / validation",
"status": 400,
"detail": "Mensagem legível para pessoas.",
"code": "auth.invalid / validation",
"traceId": "00-4bf9…-01"
}401Unauthorized
{
"type": "https://tools.ietf.org/html/rfc9110",
"title": "Unauthorized",
"status": 401,
"detail": "Mensagem legível para pessoas.",
"code": "Unauthorized",
"traceId": "00-4bf9…-01"
}409Conflict
{
"type": "https://tools.ietf.org/html/rfc9110",
"title": "projects.slug_taken",
"status": 409,
"detail": "Mensagem legível para pessoas.",
"code": "projects.slug_taken",
"traceId": "00-4bf9…-01"
}