Ajuda / API e programadores

API REST

Autenticação, permissões, limites, erros e os endpoints da API v1 (OpenAPI 3.1).

Autenticação

Crie uma chave em API e chaves, com apenas as permissões de que precisa. A chave (ak_…) é mostrada uma vez; guardamos apenas o seu hash. Envie-a no cabeçalho Authorization:

bash
curl https://www.zurianlab.com/api/v1/me \
  -H "Authorization: Bearer ak_..."

A especificação completa está em https://www.zurianlab.com/api/v1/openapi.json — pode dá-la a um assistente de IA (Claude, ChatGPT) junto com a chave para ele criar apps e cursos por si.

Permissões

PermissãoPermite
apps:readLer apps, produtos, aulas e membros
apps:writeCriar e editar apps (incl. design e definições)
products:writeCriar e editar produtos, módulos e aulas
members:writeAdicionar membros e dar/retirar acessos
notifications:writeEnviar notificações push
ai:useGerar cursos com a IA da organização

Endpoints principais

Método e caminhoDescrição
GET /meOrganização e permissões da chave
GET /apps · POST /appsListar e criar apps
GET /apps/{id} · PATCH /apps/{id}Ler e editar uma app (marca, idioma, estado)
POST /apps/{id}/productsCriar um produto com módulos e aulas
PATCH /products/{id}Editar; publicar notifica os alunos
POST /products/{id}/lessonsAcrescentar aulas
POST /apps/{id}/membersAdicionar aluno e dar acesso
POST /apps/{id}/members/revokeRetirar acesso
POST /apps/{id}/notificationsEnviar notificação push
POST /apps/{id}/generateGerar um curso com a IA

Exemplo: dar acesso a um aluno

bash
curl -X POST https://www.zurianlab.com/api/v1/apps/APP_ID/members \
  -H "Authorization: Bearer ak_..." \
  -H "Content-Type: application/json" \
  -d '{"email":"ana@exemplo.pt","name":"Ana","product_ids":["PRODUCT_ID"]}'

Limites e erros

Até 300 pedidos por minuto por chave. Os erros devolvem JSON { "error": { "code", "message" } }:

EstadoCódigoQuando
400invalid_jsonO corpo não é JSON válido
401unauthorizedChave em falta, inválida ou revogada
403forbidden / suspendedFalta permissão, ou organização suspensa
402plan_limitO plano não permite (por exemplo, número de apps)
404not_foundRecurso inexistente ou de outra organização
422invalid_requestValidação falhou; issues indica os campos
429rate_limitedLimite de pedidos excedido

Segurança

Nunca use a chave no navegador ou numa app pública. Revogue-a imediatamente se suspeitar de fuga; a coluna "último uso" ajuda a detetar chaves esquecidas.

SeguinteWebhooks de saída