Получение ответов кампании
Метод
GET https://api.uxfeedback.ru/{version}/private/campaigns/{campaign_id}/answers
где
{version}- это версия метода, которая предполагает какое-то поведение метода. Рекомендуется использовать “последнюю” или “более высокую” версию метода, как самую актуальную.
Версии метода
v1
GET https://api.uxfeedback.ru/v1/private/campaigns/{campaign_id}/answers
в параметре items.fields в ответе на запрос: каждый элемент массива
“fields": []содержит значение поля:"fields": [ "value_1", "value_2"... ],
v2
GET https://api.uxfeedback.ru/v2/private/campaigns/{campaign_id}/answers
Внесены изменения в версию v1:
добавлены детали в параметре items.fields в ответе на запрос: каждый элемент массива
“fields": []содержит тип поля и его значение:{ "type": "smiles", "value": "Хорошо" }
v3
GET https://api.uxfeedback.ru/v3/private/campaigns/{campaign_id}/answers
Внесены изменения в версию v2:
добавлена возможность выгружать информацию по “опросам по ссылке”
добавлены детали в параметре items.fields в ответе на запрос: каждый элемент массива
“fields": []содержит тип поля, его значение и“filedId":{ "type": "smiles", "value": "Хорошо" }
v4
GET https://api.uxfeedback.ru/v4/private/campaigns/{campaign_id}/answers
Внесены изменения в версию v3:
добавлена возможность выгружать ответы по блоку stars
добавлены разъяснения использования запроса
Пример метода
Пример максимально полного запроса: https://api.uxfeedback.ru/v4/private/campaigns/30559/answers?from=2019-11-09T06:58:43.885&limit=50&sort_by=created_at&sort_order=asc&lang=ru
Структура ответа
{
"data": {
"first_item_date": "", // дата первой записи
"last_item_date": "", // дата последней записи
"count": 0, // кол-во записей в ответе
"has_more": true, // есть ли ещё записи по этому запросу
"headers": [ // массив заголовков полей опроса
"заголовок поля_1 на опросной форме",
"заголовок поля_2 на опросной форме",
...
"заголовок поля_N на опросной форме",
],
"items": [ // записи
{
"id": 1669646,
"created_at": "2019-11-09T07:20:30.257Z",
"fields": [ { "type": "smiles",
"value": "Хорошо",
"fieldId": "VEe20XO9" }, ...
],
"info": { ... }, // инфо о девайсе, с котрого получен ответ
"tags": [],
"google_client_id": "1234567890.1234567890", // id для GTM
"ym_id": "1576761531677677050", // id для Я.Метрика
"properties": {
"name": "user name",
"propkey1": "propValue 1",
"propkey2": "propValue 2"
}
]
},
"errors": []
}где
"data": []- содержит информацию о записях по кампании, где каждая записьitems.idсодержит:“fields”: []- массив полей ответа“properties”: {}- массив дополнительных параметров ответа
"errors": []- содержит информацию о ошибках.
При обработке ответа клиентского api, может вернуться массив, содержащий 0
ответов, но это не показатель, что все ответы выгружены.
Надо ориентироваться на атрибут has_more.
Если он true, то следует использовать дату last_item_date в качестве начальной
в следующем запросе и продолжать отправлять запросы, до тех пор, пока не будет
получен ”has_more”: false
Коды ответов и ошибок
Код ответа | Пример JSON'а |
|---|---|
401 Unauthorized | Запрос: Ответ: {
"errors": [
{
"code": "error.unauthorized.access-denied",
"comment": "access-denied"
}
]
}Пояснения: |
404 Not Found | Запрос: Ответ: {
"errors": [
{
"code": "error.not-found.resource-not-found",
"comment": "resource-not-found"
}
]
}Пояснения: |
422 | Запрос: Ответ: {
"data": {},
"errors": [
"campaign not found"
]
}Пояснения: Необходимо сверить: токен + проект + кампанию. Убедиться, что кампания находится в том проекте, от которого взят токен. |
400 Bad request | Запрос: Ответ: {
"errors": [
{
"in": [
"from"
],
"value": null,
"code": "error.input.missing-required-key"
}
]
}Пояснения: В описании ошибки сообщается: каких значений не хватает или на что обратить внимание. |
503 Service unavailable | Запрос: Ответ: {
"statusCode": 503,
"error": "Service unavailable",
"message": "Max request count per period exceed. Try later"
}Пояснения: |
200 Ok | Запрос:
Ответ: 1. когда “дата, с которой нужно запрашивать ответы по кампании” неизвестна {
"data": {
"first_item_date": null,
"last_item_date": "2025-04-09T08:29:09.353Z",
"count": 0,
"has_more": false,
"headers": [
"Насколько вероятно, что вы порекомендуете нашу компанию друзьям или знакомым?",
"Текст заголовка"
],
"items": []
},
"errors": []
}2. когда “дата, с которой нужно запрашивать ответы по кампании” известна: {
"data": {
"first_item_date": "2025-04-09T08:29:09.353Z",
"last_item_date": "2025-04-09T08:29:09.353Z",
"count": 1,
"has_more": false,
"headers": [
"Насколько вероятно, что вы порекомендуете нашу компанию друзьям или знакомым?",
"Текст заголовка"
],
"items": [
{
"id": 114324417,
"created_at": "2025-04-09T08:29:09.353Z",
"fields": [
{
"type": "nps",
"value": 7,
"field_id": "VEe20XO9"
},
{
"type": "smiles",
"value": "Хорошо",
"field_id": "u6oXzRRS"
}
],
"info": {
"browser": "Chrome 135",
"width": 3840,
"deviceModel": "Desktop",
"dateTime": "1744187340",
"url": "https://demo.uxfeedback.ru/demo",
"device": "desktop",
"os": "Windows 10.0",
"height": 2160
},
"tags": [],
"google_client_id": "1007557971.1743685386",
"properties": {},
"ym_id": "1743685386767941011"
}
]
},
"errors": []
}Пояснения: |