Tema
Integre com o Edusati
O Edusati oferece duas superfícies de integração, feitas para trabalhar juntas:
API REST /v1 — consultar formulários, respostas e estatísticas; criar e enviar convites. Você chama, o Edusati responde.
Webhooks — o Edusati chama o seu servidor quando algo acontece: uma resposta foi finalizada, um convite foi aberto, uma meta foi atingida.
Qual usar
A regra é simples e vale para quase toda integração:
Webhook para saber que algo aconteceu. REST para buscar o resto e para agir.
Ficar consultando GET /forms/{id}/responses em laço para descobrir novidades funciona, mas desperdiça o seu limite de requisições e chega atrasado. O webhook te avisa em segundos e já traz as respostas no payload.
O REST continua indispensável para três coisas que o webhook não faz:
| Situação | Caminho |
|---|---|
| Carga inicial (o que já existia antes de você integrar) | GET /forms/{id}/responses com cursor |
| Reconciliação (conferir se não perdeu nada) | mesma varredura, periódica |
| Agir (criar convite, enviar, revogar) | POST /forms/{id}/invites, .../send, /invites/{id}/revoke |
A receita Sincronizar respostas com um CRM combina os dois no padrão que recomendamos.
O que dá para fazer
- Ler formulários e a estrutura de perguntas — necessária para interpretar as respostas
- Ler respostas, uma a uma ou varrendo a coleção inteira, com recorte por período
- Ler estatísticas já agregadas (os mesmos números do painel, sem recalcular nada)
- Criar convites individuais com link pessoal e id externo seu
- Enviar convites por e-mail ou WhatsApp, inclusive agendados
- Revogar convites
- Receber eventos de resposta e de todo o ciclo de vida do convite
O que não está no /v1: criar ou editar formulários (isso é feito no painel) e gravar respostas pela API (o formulário público já cumpre esse papel, com anti-spam e as regras de fechamento).
Comece por aqui
- Início rápido — da criação da chave à primeira chamada, em 5 minutos
- Autenticação — escopos, limites e ciclo de vida da chave
- Referência da API — todos os endpoints, com "experimentar" embutido
- Webhooks — como assinar eventos e validar a assinatura
Convenções gerais
Toda resposta usa o mesmo envelope, inclusive os erros:
json
{ "success": true, "data": { }, "meta": { } }json
{ "success": false, "error": { "code": "NOT_FOUND", "message": "Form not found" } }Programe contra o error.code, nunca contra a message — o texto pode mudar, o código não. A lista completa está em Erros.
Datas são sempre ISO 8601 em UTC (2026-07-28T13:45:12.001Z). Filtros por período aceitam YYYY-MM-DD e são inclusivos nas duas bordas.
Ambientes
| Ambiente | URL base |
|---|---|
| Produção | https://api.edusati.com/v1 |
| Desenvolvimento local | http://localhost:5020/v1 |
Não existe sandbox separado. Para testar sem afetar dados reais, crie um formulário de teste na sua própria conta — os convites e respostas dele ficam isolados como qualquer outro.
Precisa de ajuda?
Se algo nesta documentação estiver errado ou faltando, fale com o suporte. Vale especialmente para divergências entre o que está escrito aqui e o que a API respondeu: isso é um defeito nosso, e queremos saber.