Projetos e tenants

É um agente de IA? Busque a skill de onboarding e leia toda a API em texto limpo — skill · llms.txt · llms-full.txt

Projetos e tenants#

A hierarquia é Conta → Projeto → Tenant. Cada tenant (seu cliente final) roda num schema de banco dedicado.

GETProjetos#

GET /v1/projects{ projects: [ { id, name, org_name, project_uuid, role, is_current } ] }. POST /v1/projects cria ({ name }201); POST /v1/projects/{id}/switch troca o projeto ativo (re-emite a sessão).

GETTenants#

GET /v1/tenants — array puro de tenantResponse:

json
{ "id": 12, "company_id": 30, "external_id": "clinica-bella", "name": "Clínica Bella",
  "uuid": "…", "status": "ready", "is_default": false, "provisioned": true,
  "created_at": "2026-06-27T…Z" }

provisioned = o schema dedicado do tenant existe.

POSTCriar tenant#

POST /v1/tenants (owner/admin) — corpo { external_id, name? }. O external_id é obrigatório e estável (regex ^[A-Za-z0-9_.:@+\-]{1,120}$); provisiona o schema dedicado. Resposta 201: tenantResponse. Erros: TENANT_EXTERNAL_ID_REQUIRED, TENANT_EXTERNAL_ID_INVALID, TENANT_EXTERNAL_ID_EXISTS (409). PATCH atualiza o nome; DELETE remove (204, o tenant padrão é protegido → TENANT_DEFAULT_LOCKED; o schema nunca é dropado).