Nutrali

Docs e API pública

Esta página descreve a superfície pública da Nutrali para agentes de IA e integrações. Não há GraphQL público. Endpoints autenticados do consultório (/api/org/*, painel) exigem login do nutricionista e não devem ser chamados sem sessão.

Spec máquina: /openapi.json. Brief para LLMs: /llms.txt.

Quando usar

  • Listar planos SaaS e trial
  • Ler página pública publicada de um slug
  • Criar lead, pedido de agenda ou anamnese na landing do nutri
  • Descobrir a marca Nutrali e apontar humanos ao cadastro

Endpoints públicos

MétodoPathDescrição
GET/api/v1/public/saas-plansPlanos e trial (cursor)
GET/api/v1/public/u/{slug}Página pública
GET/api/v1/public/u/{slug}/slotsHorários
POST/api/v1/public/u/{slug}/leadsLead
POST/api/v1/public/u/{slug}/bookingsAgendamento
POST/api/v1/public/u/{slug}/anamnesisAnamnese
POST/api/v1/public/u/{slug}/challenges/{challengeSlug}/enrollDesafio

Erros: JSON { "error": { "code", "message", "hint?" } }. Rotas inexistentes em /api/* também devolvem esse formato (HTTP 404).

Versionamento (v1)

Versão atual: v1. Paths canônicos /api/v1/public/*. Alias legado /api/public/* (deprecated). Respostas incluem o header API-Version: 1. Breaking changes saem em /api/v2 com aviso ≥ 90 dias; depreciação usa headers Deprecation e Sunset (RFC 8594).

Rate limits

Endpoints públicos devolvem headers RateLimit-*, X-RateLimit-* e, em HTTP 429, Retry-After. Listas usam items + nextCursor. Faça backoff — não force o limite.

Descoberta

Segurança

  • Não há API pública de prontuário ou lista de pacientes
  • Rate limit em leads/bookings/anamnese/desafios
  • Negociação Markdown: envie Accept: text/markdown em /, /docs, /sobre, /contato

Exemplos

curl -s https://nutrali.co/api/v1/public/saas-plans | jq '.items,.nextCursor'
curl -s -H 'Accept: text/markdown' https://nutrali.co/
curl -s https://nutrali.co/openapi.json | head
npx @nutrali/cli plans

Cadastro humano: /cadastro.