Respostas
Recupere e processe respostas de pesquisas
Respostas e relatórios
A API permite recuperar resumos de pesquisas, relatórios detalhados, filtrar e gerenciar respostas. Você pode ocultar respostas, adicionar tags e obter análises da pesquisa.
Baixe a versão em markdown da seção "Respostas e relatórios" para usar no ChatGPT ou outros LLMs:
AI Markdown
/static/api/answers.md
AI Markdown
Obter lista de respostas da pesquisa
GET /quiz/{id}/answers
Retorna uma lista de respostas para uma pesquisa específica com filtro por data e paginação.
Parâmetros da requisição
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| limit | integer | Não | Número de respostas (padrão: 20) |
| offset | integer | Não | Deslocamento de paginação (padrão: 0) |
| date | date | Não | Filtro de data (formato: Y-m-d) |
| is_complete | boolean | Não | Filtro de status de conclusão (true/false) |
| sort | string | Não | Campo de ordenação (date_start, date_end) |
| order | string | Não | Direção de ordenação (desc, asc) |
Exemplo de requisição
curl -X GET "https://api.surveyninja.io/api/v3/service/quiz/123/answers?limit=50&offset=0&is_complete=true&sort=date_end&order=desc" \ -H "Authorization: Bearer YOUR_TOKEN" Resposta da API
{ "success": true, "data": { "total": 150, "limit": 50, "offset": 0, "answers": [ { "id": "answer_1234567890", "quiz_id": "1234567890", "submitted_at": "2024-01-15T14:30:00Z", "is_complete": true, "ip_address": "192.168.1.1", "user_agent": "Mozilla/5.0...", "answers": [ { "question_id": "q1", "question_text": "How do you rate our service?", "answer": "Excellent", "answer_type": "single_choice" } ] } ] } } Obter resumo da pesquisa
GET /quiz/{id}/summary
Retorna o resumo da pesquisa com estatísticas principais.
Exemplo de requisição
curl -X GET https://api.surveyninja.io/api/v3/service/quiz/123/summary \ -H "Authorization: Bearer YOUR_TOKEN" Resposta da API
{ "status": true, "summary": { "all_visited": 150, "filled_completely": 128, "started_not_finished": 22, "completion_rate": 85, "geography_visits": [ { "count": 45, "country": "Russia" } ], "visits_devices": [ { "device": "desktop", "percent": 65.2 } ], "all_average_transit_time": "04:18" } } Obter relatório da pesquisa
POST /quiz/{id}/report
Retorna o relatório de respostas de uma pesquisa específica com filtros.
Parâmetros da requisição
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| is_complete | boolean | Não | Filtro de status de conclusão (true/false) |
| dateFrom | string | Não | Data de início do filtro (formato: dd.mm.yyyy) |
| dateTo | string | Não | Data de término do filtro (formato: dd.mm.yyyy) |
| filled | string | Não | Status de preenchimento: "completed", "incomplete" |
| widgets | array | Não | Array de filtros de perguntas com parâmetros: widget_uuid, type, operator, value |
| scoreOperator | string | Não | Operador de filtro de pontuação: "greater", "less", "equal" |
| scoreValue | integer | Não | Valor de pontuação para filtragem |
| answerCorrect | string | Não | Filtro de correção da resposta: "correct", "incorrect" |
| extraFields | array | Não | Array de campos extras com parâmetros: name, value |
| ip | string | Não | Endereço IP para filtragem |
| country | array | Não | Array de países para filtragem |
| browser | array | Não | Array de navegadores para filtragem |
| device | array | Não | Array de dispositivos para filtragem: "desktop", "mobile", "tablet" |
| tags | array | Não | Array de tags para filtragem |
Exemplo de requisição
curl -X POST https://api.surveyninja.io/api/v3/service/quiz/123/report \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "is_complete": true, "dateFrom": "01.01.2024", "dateTo": "31.01.2024", "filled": "completed", "widgets": [ { "widget_uuid": "550e8400-e29b-41d4-a716-446655440000", "type": "choiceSingle", "operator": "equal", "value": ["option-uuid-1", "option-uuid-2"] } ], "scoreOperator": "greater", "scoreValue": 80, "answerCorrect": "correct", "extraFields": [ { "name": "field_name", "value": "field_value" } ], "ip": "192.168.1.1", "country": ["Russia", "Ukraine"], "browser": ["Chrome", "Firefox"], "device": ["desktop", "mobile"], "tags": ["important", "needs attention"] }' Resposta da API
{ "status": true, "data": { "report": [ { "widget_id": "550e8400-e29b-41d4-a716-446655440000", "title": "How do you rate our service?", "type": "rating", "count": 150, "average": 4.2, "avg_filling_time": 12.5, "answer_count": 150, "rowId": "row-123", "options": "{\"min\":1,\"max\":5,\"step\":1}", "filtered_data": "{\"1\":5,\"2\":10,\"3\":25,\"4\":60,\"5\":50}" } ], "answer_total_count": 150, "correct_answers": false, "answer_moderate_count": 5, "filters": [], "filters_count": 0, "answer_hide_count": 3, "answer_hide_amount": 150.00 } } Obter filtros do relatório
GET /quiz/{id}/filters/report
Retorna os filtros de relatório disponíveis.
Exemplo de requisição
curl -X GET https://api.surveyninja.io/api/v3/service/quiz/123/filters/report \ -H "Authorization: Bearer YOUR_TOKEN" Resposta da API
{ "status": true, "data": { "dateFrom": "01.01.2024", "dateTo": "31.01.2024", "filled": "completed", "widgets": [ { "widget_uuid": "550e8400-e29b-41d4-a716-446655440000", "type": "choiceSingle", "operator": "equal", "value": ["option-uuid-1", "option-uuid-2"] } ] } } Ocultar/exibir resposta
POST /quiz/{id}/answer/{answer_id}/hide
Oculta ou exibe uma resposta específica.
Parâmetros da requisição
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| is_hide | boolean | Sim | true — ocultar resposta, false — exibir resposta |
Exemplo de requisição
curl -X POST https://api.surveyninja.io/api/v3/service/quiz/123/answer/answer_123/hide \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "is_hide": true }' Resposta da API
{ "status": true, "is_hide": true }