Autenticação
A API utiliza chaves de acesso (API Keys) geradas exclusivamente pelo administrador da plataforma. Envie sua chave no header de todas as requisições autenticadas.
● Como obter sua API Key
- Crie uma conta em satisfacao.net e confirme seu e-mail
- Solicite a ativação do acesso à API abrindo um chamado interno pelo painel administrativo
- O administrador gera uma chave exclusiva para voce no painel administrativo
- Utilize a chave no header
X-API-Keyde todas as requisições
● Exemplo de requisicao
curl -X GET https://satisfacao.net/api/v1/surveys \ -H "X-API-Key: sua_chave_aqui" \ -H "Accept: application/json"
● Erros de autenticacao
{
"message": "API key required. Use header X-API-Key."
}
{
"message": "Invalid or expired API key."
}
Headers obrigatórios
| Header | Valor | Descrição | |
|---|---|---|---|
| X-API-Key | string | obrigatório | Sua chave de API (48 caracteres) |
| Accept | string | recomendado | application/json |
| Content-Type | string | POST/PUT | application/json |
Pesquisas
Gerencie pesquisas de satisfação. Todas as rotas requerem X-API-Key. Pesquisas são identificadas por UUID.
Retorna todas as pesquisas do usuário autenticado.
Resposta
{
"data": [
{
"id": "a1b2c3d4-e5f6-...",
"title": "Satisfacao no Atendimento",
"status": "published",
"url": "https://satisfacao.net/s/a1b2c3d4",
"questions_count": 8,
"responses_count": 342,
"created_at": "2026-01-15T10:30:00Z"
}
]
}
Retorna detalhes de uma pesquisa específica com questões.
Cria uma nova pesquisa. Requer assinatura ativa e limite de pesquisas não atingido.
Parâmetros
| Campo | Tipo | Descrição | |
|---|---|---|---|
| title | string | obrigatório | Título da pesquisa (max 255) |
| welcome_message | string | opcional | Mensagem de boas-vindas |
| goodbye_text | string | opcional | Mensagem de agradecimento |
| visibility | boolean | opcional | Publicar imediatamente (default: false) |
Atualiza uma pesquisa existente. Apenas o dono pode atualizar.
Remove permanentemente uma pesquisa e todas as suas questões e respostas.
Cria uma copia da pesquisa com todas as questões. A copia inicia como rascunho com zero respostas.
Questoes
Gerencie questões dentro de uma pesquisa. Tipos disponíveis: multiple-choices, yes-no, rating, dropdown, short-text, long-text, email, phone, date, number, slider, nps, csat, ces
Retorna todas as questões da pesquisa ordenadas por posição.
Resposta
{
"data": [
{
"id": 1,
"type": "nps",
"text": "De 0 a 10, quanto voce recomendaria?",
"position": 1,
"is_required": true,
"attributes": { "scale": 10 }
}
]
}
Adiciona uma questão à pesquisa. Requer limite de questões não atingido.
Parâmetros
| Campo | Tipo | Descrição | |
|---|---|---|---|
| text | string | obrigatório | Texto da questão |
| type | string | obrigatório | Tipo (ver lista acima) |
| position | integer | opcional | Ordem de exibicao |
| is_required | boolean | opcional | Resposta obrigatoria (default: false) |
| attributes | object | opcional | Configuracoes especificas do tipo (choices, scale, etc.) |
Atualiza uma questão existente.
Remove uma questão e todas as respostas associadas.
Respostas
Colete e consulte respostas de pesquisas. A submissao e publica (nao requer autenticacao).
Retorna todas as respostas de uma pesquisa agrupadas por respondente.
Submete respostas para uma pesquisa. Rate limit: 10 requisições/minuto por IP.
Parâmetros
| Campo | Tipo | Descrição | |
|---|---|---|---|
| responses | object | obrigatório | Mapa question_id → resposta |
Exemplo
{
"responses": {
"1": "9",
"2": "Atendimento excelente!",
"3": "Sim"
}
}
Analytics & Planos
Dados analíticos das pesquisas e planos disponíveis.
Retorna métricas da pesquisa: taxa de conclusão, NPS, CSAT, CES e distribuição de respostas por questão.
Resposta
{
"completion_rate": 84.5,
"total_responses": 342,
"total_attendees": 405,
"scores": {
"nps": { "score": 72, "promoters": 218, "passives": 64, "detractors": 60 },
"csat": { "score": 88.2 },
"ces": null
},
"questions": [ "..." ]
}
Retorna todos os planos disponíveis com preços e limites.
Resposta
{
"data": [
{
"id": 1,
"title": "Gratuito",
"price": 0,
"interval": "monthly",
"is_free": true,
"limits": {
"survey_count": 3,
"question_count_per_survey": 10,
"response_count_per_survey": 100
}
},
{
"id": 2,
"title": "Starter",
"price": 49.00,
"is_free": false,
"limits": { "..." }
}
]
}
Limites e Erros
Informações sobre rate limiting e códigos de erro.
Rate Limits
| Com API Key | 60 req/min por chave |
| Submissão pública | 10 req/min por IP |
| Sem API Key | 60 req/min por IP |