Pular para o conteúdo principal

Introdução

Inbox Autônomo é um serviço que recebe, armazena, filtra e processa e-mails de entrada em nome dos produtos internos da Kobana. O e-mail chega via AWS SES, é persistido no S3 e no Postgres, opcionalmente processado por um agente LLM, e exposto através de uma API REST pública e webhooks.

A API é REST sobre HTTPS, com JSON e autenticação mTLS + Bearer JWT. Tudo que a plataforma faz com workspaces, inboxes, e-mails, agents e webhooks está disponível para seus sistemas, sob o mesmo isolamento por workspace do próprio produto.

Primeiros passos​

  1. Obtenha um certificado cliente e um JWT para o ambiente alvo — veja Autenticação.

  2. Faça sua primeira chamada:

    curl https://api.inbox.kobana.com.br/v1/workspaces?limit=1 \
    --cert ./client.crt --key ./client.key \
    -H "Authorization: Bearer $JWT" \
    -H "Accept: application/json"
  3. Explore os recursos — a categoria Resources no menu lateral documenta todos os endpoints com exemplos. Ou importe a especificação OpenAPI / a collection do Postman.

Formato​

A API aceita e retorna somente JSON. Toda requisição deve usar Content-Type: application/json. Todas as respostas usam snake_case.

Tipo de campoFormato
DateTimeISO 8601 em UTC com precisão de milissegundos. Exemplo: 2026-05-17T12:34:56.789Z
UUIDIdentificadores de recursos são UUID v4

Convenções usadas nesta documentação​

ConvençãoSignificado
{id}Variável de path a ser substituída em uma URL.
...Conteúdo de resposta truncado para legibilidade.
$JWTSeu Bearer token. Para testar via linha de comando, exporte-o: export JWT=xxxxxxxxxxxxxxxxxxxxxxxx e cole os comandos desta documentação no seu terminal.

Status codes​

A API retorna códigos HTTP padrão:

CódigoSignificado
✅200 OKRequisição bem-sucedida com corpo de resposta.
✅201 CreatedRecurso criado com sucesso.
✅202 AcceptedRequisição aceita para processamento assíncrono.
✅204 No ContentRequisição bem-sucedida, sem corpo de resposta.
❌400 Bad RequestRequisição malformada.
❌401 UnauthorizedCertificado cliente / JWT ausente ou inválido.
❌403 ForbiddenAutenticado, mas sem o scope exigido.
❌404 Not FoundRecurso não existe, ou pertence a outro workspace.
❌409 ConflictConflito de estado — ex.: external_id já em uso, X-Idempotency-Key reutilizada com um body diferente.
❌422 Unprocessable EntityRequisição bem-formada, dados inválidos.
❌429 Too Many RequestsLimite de requisições excedido.
❌500 Internal Server ErrorErro não tratado. Veja status do servidor.

O envelope de erro e o vocabulário estável de códigos de erro estão documentados em Erros.

Correlação de requisições​

Toda resposta — bem-sucedida ou não — carrega um header X-Request-Id. Inclua-o ao reportar problemas para que o time Kobana possa buscar o trace no OpenTelemetry.

Próximos passos​