Ответы

Получайте и обрабатывайте ответы пользователей

Работа с ответами и отчетами

API позволяет получать сводки опросов, детальные отчеты, фильтровать ответы и управлять ими. Вы можете скрывать ответы, добавлять теги и получать аналитику по опросам.

Получить список ответов опроса

GET /api/service/quiz/{id}/answers

Получает список ответов на конкретный опрос с возможностью фильтрации по дате и пагинации.

Параметры запроса

Параметр Тип Обязательный Описание
limit integer Нет Количество ответов (по умолчанию: 20)
offset integer Нет Смещение для пагинации (по умолчанию: 0)
date date Нет Фильтр по дате (формат: Y-m-d)
is_complete boolean Нет Фильтр по статусу завершения (true/false)
sort string Нет Поле для сортировки (date_start, date_end)
order string Нет Направление сортировки (desc, asc)
Пример запроса
curl -X GET "https://api.webask.io/api/service/quiz/1234567890/answers?limit=50&offset=0&date=2024-01-15&is_complete=true&sort=date_start&order=desc" \
  -H "Authorization: Bearer YOUR_TOKEN"
Ответ 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": "Как вы оцениваете наш сервис?",
            "answer": "Отлично",
            "answer_type": "single_choice"
          }
        ]
      }
    ]
  }
}

Получить сводку опроса

GET /api/service/quiz/{id}/summary

Получает сводку по опросу с основной статистикой.

Пример запроса
curl -X GET https://api.webask.io/api/service/quiz/1234567890/summary \
  -H "Authorization: Bearer YOUR_TOKEN"
Ответ API
{
  "status": true,
  "summary": {
    "all_visited": 150,
    "filled_completely": 128,
    "started_not_finished": 22,
    "completion_rate": 85,
    "geography_visits": [
      {
        "count": 45,
        "country": "Россия"
      }
    ],
    "visits_devices": [
      {
        "device": "desktop",
        "percent": 65.2
      }
    ],
    "all_average_transit_time": "04:18"
  }
}

Получить отчет опроса

POST /api/service/quiz/{id}/report

Получает отчет по ответам на конкретный опрос с возможностью фильтрации.

Параметры запроса

Параметр Тип Обязательный Описание
is_complete boolean Нет Фильтр по статусу завершения (true/false)
dateFrom string Нет Дата начала фильтрации (формат: dd.mm.yyyy)
dateTo string Нет Дата окончания фильтрации (формат: dd.mm.yyyy)
filled string Нет Статус заполнения: "completed", "incomplete"
widgets array Нет Массив фильтров по вопросам с параметрами: widget_uuid, type, operator, value
scoreOperator string Нет Оператор для фильтрации по баллам: "greater", "less", "equal"
scoreValue integer Нет Значение баллов для фильтрации
answerCorrect string Нет Фильтр по правильности ответов: "correct", "incorrect"
extraFields array Нет Массив дополнительных полей с параметрами: name, value
ip string Нет IP-адрес для фильтрации
country array Нет Массив стран для фильтрации
browser array Нет Массив браузеров для фильтрации
device array Нет Массив устройств для фильтрации: "desktop", "mobile", "tablet"
tags array Нет Массив тегов для фильтрации
Пример запроса
curl -X POST https://api.webask.io/api/service/quiz/1234567890/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": ["Россия", "Украина"],
    "browser": ["Chrome", "Firefox"],
    "device": ["desktop", "mobile"],
    "tags": ["важный", "требует внимания"]
  }'
Ответ API
{
  "status": true,
  "data": {
    "report": [
      {
        "widget_id": "550e8400-e29b-41d4-a716-446655440000",
        "title": "Как вы оцениваете наш сервис?",
        "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
  }
}

Получить фильтры отчетов

GET /api/service/quiz/{id}/filters/report

Получает доступные фильтры для отчетов.

Пример запроса
curl -X GET https://api.webask.io/api/service/quiz/1234567890/filters/report \
  -H "Authorization: Bearer YOUR_TOKEN"
Ответ 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"]
      }
    ]
  }
}

Скрыть/показать ответ

POST /api/service/quiz/{id}/answer/{answer_id}/hide

Скрывает или показывает конкретный ответ.

Параметры запроса

Параметр Тип Обязательный Описание
is_hide boolean Да true - скрыть ответ, false - показать ответ
Пример запроса
curl -X POST https://api.webask.io/api/service/quiz/1234567890/answer/answer_123/hide \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "is_hide": true
  }'
Ответ API
{
  "status": true,
  "is_hide": true
}

Добавить теги к ответу

POST /api/service/quiz/{id}/answer/{answer_id}/tags

Добавляет теги к конкретному ответу для организации и фильтрации.

Параметры запроса

Параметр Тип Обязательный Описание
tags array Да Массив тегов для добавления к ответу
Пример запроса
curl -X POST https://api.webask.io/api/service/quiz/1234567890/answer/answer_123/tags \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "tags": ["важный", "требует внимания", "проблема"]
  }'
Ответ API
{
  "status": true,
  "result": {
    "created": [
      {
        "id": 1,
        "name": "важный"
      }
    ],
    "attached": [
      {
        "id": 1,
        "name": "важный"
      },
      {
        "id": 2,
        "name": "требует внимания"
      },
      {
        "id": 3,
        "name": "проблема"
      }
    ],
    "detached": [],
    "deleted": []
  }
}