Pular para o conteúdo

Organização

Cada chave de API pertence a exatamente uma organização, e estes dois endpoints só permitem ler os dados da sua própria organização: não existe um diretório de outras organizações.

Escopo obrigatório: organizations:read (selecionável ao criar a chave de API no dashboard).

Listar organização

GET /v1/organizations retorna sempre uma coleção de um único item: a organização autenticada, no formato de lista padrão da API (data, cursor, has_more). cursor é sempre null e has_more é sempre false; não há paginação real aqui.

listar-organizacao.sh
curl -X GET \
https://api.turbonotify.com/v1/organizations \
-H "Authorization: Bearer SUA_CHAVE"

Resposta (200)

Status HTTP: 200
{
  "data": [
    {
      "id": "org_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4",
      "name": "Clínica Alpha",
      "plan": "business",
      "locale": "pt-BR",
      "timezone": "America/Sao_Paulo",
      "suspended_at": null,
      "created_at": "2026-03-01T09:00:00Z",
      "updated_at": "2026-06-20T14:30:00Z"
    }
  ],
  "cursor": null,
  "has_more": false
}

Detalhe da organização

GET /v1/organizations/{organization_id} retorna o mesmo objeto, sem o envelope de lista. O {organization_id} deve ser o org_{hex32} da própria organização autenticada. Nunca retorna dados de outra organização.

A rejeição acontece em duas etapas, com códigos diferentes:

  • 400 invalid_organization_id: o valor não passa no formato ^org_[0-9a-f]{32}$. Cai aqui qualquer coisa malformada: UUID com hífens, hex em maiúsculas, string arbitrária, prefixo ausente. A validação de formato roda antes da comparação com a organização autenticada.
  • 404 organization_not_found: o valor é um org_{hex32} bem-formado, mas não é o da organização autenticada (inclusive um org_ válido de outra organização).
detalhe-organizacao.sh
curl -X GET \
https://api.turbonotify.com/v1/organizations/org_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4 \
-H "Authorization: Bearer SUA_CHAVE"

Resposta (200)

Status HTTP: 200
{
  "id": "org_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4",
  "name": "Clínica Alpha",
  "plan": "business",
  "locale": "pt-BR",
  "timezone": "America/Sao_Paulo",
  "suspended_at": null,
  "created_at": "2026-03-01T09:00:00Z",
  "updated_at": "2026-06-20T14:30:00Z"
}

Campos da resposta

CampoTipoDescrição
idstringIdentificador público da organização (org_ + 32 hex)
namestringNome cadastrado da organização
planstringIdentificador do plano contratado (ex.: free, solo, business, custom)
localestringIdioma das comunicações da organização, pt-BR ou en (no dashboard, Organização > Idioma das comunicações). Não muda o formato das respostas da API
timezonestringFuso horário IANA configurado para a conta (ex.: America/Sao_Paulo). Não afeta o formato das datas da API: define onde cada dia começa e termina na visão geral, nos indicadores e nos totais de mensagens do dashboard
suspended_atstring|nullData e hora ISO 8601 da suspensão; null quando a organização está ativa
created_atstringData e hora ISO 8601 de criação da organização
updated_atstringData e hora ISO 8601 da última atualização dos dados cadastrais

Toda data e hora retornada pela API está em UTC, com sufixo Z e precisão de segundos (ex.: 2026-06-01T10:00:05Z). Isso vale para created_at e at em webhooks, na consulta de eventos e nas respostas de mensagem, para os campos cadastrais da tabela acima e para os campos de expiração de URL pré-assinada (expires_at / url_expires_at nos blocos de mídia e foto). Nos campos de evento e mensagem o formato é ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z$, e nenhum valor vem com deslocamento de fuso, qualquer que seja o timezone configurado na conta.

Este endpoint retorna só os dados cadastrais listados acima: configurações administrativas da organização não aparecem nele.

Erros possíveis

StatusCódigo de erroDescrição
400invalid_organization_id(apenas detalhe) O {organization_id} informado não está no formato org_ + 32 hex minúsculos (ex.: UUID com hífens, hex em maiúsculas, string arbitrária).
401not_authenticatedA chave de API está inválida ou ausente.
403insufficient_scopeA chave de API não possui o escopo organizations:read (resposta inclui required_scope).
404organization_not_found(apenas detalhe) O {organization_id} informado está bem-formado, mas não corresponde à organização autenticada. Formato inválido retorna 400 invalid_organization_id, não este código.
500internal_errorErro interno inesperado no servidor.

Veja também: Chave de API · Números.