Промокоды опроса
Управляйте списками промокодов и их привязкой к опросам
Промокоды опроса
Модуль промокодов позволяет ограничивать доступ к опросу, проводить акции и считать конверсии за счёт списков кодов, привязанных к конкретным опросам.
Базовый префикс для большинства эндпоинтов:
/api/v3/service/quiz/{id}/promo
и
/api/v3/service/promo.
Скачайте markdown‑версию раздела «Промокоды» для использования в ChatGPT / других LLM:
Все эндпоинты
| HTTP | Endpoint | Назначение |
|---|---|---|
| GET | /quiz/{id}/promo/list | Получить списки промокодов воркспейса |
| POST | /quiz/{id}/promo/list | Создать список промокодов |
| POST | /quiz/{id}/promo/list/{list_id} | Переименовать список |
| DELETE | /quiz/{id}/promo/list/{list_id} | Удалить список промокодов |
| GET | /promo/codes | Получить коды выбранного списка (глобально) |
| POST | /promo/codes | Добавить коды в список |
| DELETE | /promo/codes/{code_id} | Удалить код |
| POST | /promo/list | Создать список (через /promo/list) |
| POST | /promo/import-file | Импорт кодов из файла |
| POST | /promo/attach/{list_id} | Привязать список к опросам |
| POST | /promo/detach | Отвязать список от опросов |
| POST | /quiz/{id}/promo/sync | Синхронизировать привязки списка |
| GET | /quiz/{id}/promo/codes/quiz | Коды привязанного к опросу списка |
| GET | /quiz/{id}/promo/pinned | Опросы для экрана привязки |
Получить списки промокодов GET /api/v3/service/quiz/{id}/promo/list
Возвращает постраничный список промокодов воркспейса с количеством кодов и привязанных опросов.
| Параметр | Тип | По умолч. | Описание |
|---|---|---|---|
| search | string | — | Поиск по названию списка |
| limit | integer | 20 | Количество (макс. 500) |
| offset | integer | 0 | Смещение |
| sort | string | updated_at | id, updated_at, name |
| order | string | desc | asc или desc |
curl -X GET "https://api.webask.io/api/v3/service/quiz/123/promo/list?limit=20&offset=0" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json"
Создать список промокодов POST /api/v3/service/promo/list
Создаёт новый список с набором кодов (до 1000 за раз).
| Параметр | Обяз. | Описание |
|---|---|---|
| name | да | Название списка |
| codes[] | да | Массив строк с промокодами (до 1000) |
curl -X POST "https://api.webask.io/api/v3/service/promo/list" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "name": "Акция январь", "codes": ["PROMO001", "PROMO002", "PROMO003"] }'
Переименовать список POST /api/v3/service/quiz/{id}/promo/list/{list_id}
| Параметр | Обяз. | Описание |
|---|---|---|
| name | да | Новое название списка |
curl -X POST "https://api.webask.io/api/v3/service/quiz/123/promo/list/45" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "name": "Акция февраль" }'
Удалить список DELETE /api/v3/service/quiz/{id}/promo/list/{list_id}
Удаляет список промокодов вместе со всеми кодами. Тело не требуется.
curl -X DELETE "https://api.webask.io/api/v3/service/quiz/123/promo/list/45" \
-H "Authorization: Bearer YOUR_API_TOKEN"
Получить коды списка GET /api/v3/service/promo/codes
Возвращает коды указанного списка с фильтрацией и пагинацией. Ответ включает поля stats и quizzes[].
| Параметр | Обяз. | По умолч. | Описание |
|---|---|---|---|
| list_id | да | — | ID списка промокодов |
| search | нет | — | Поиск по коду |
| used | нет | — | 1 — использованные, 0 — неиспользованные |
| limit | нет | 20 | Количество (макс. 500) |
| offset | нет | 0 | Смещение |
| sort | нет | id | id, updated_at, name |
| order | нет | desc | asc или desc |
curl -X GET "https://api.webask.io/api/v3/service/promo/codes?list_id=45&limit=20" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json"
Добавить коды в список POST /api/v3/service/promo/codes
| Параметр | Обяз. | Описание |
|---|---|---|
| list_id | да | ID списка |
| codes[] | да | Массив строк с промокодами |
curl -X POST "https://api.webask.io/api/v3/service/promo/codes" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "list_id": 45, "codes": ["NEW001", "NEW002"] }'
Удалить код DELETE /api/v3/service/promo/codes/{code_id}
Удаляет отдельный промокод из списка. Тело не требуется.
curl -X DELETE "https://api.webask.io/api/v3/service/promo/codes/789" \
-H "Authorization: Bearer YOUR_API_TOKEN"
Импорт кодов из файла POST /api/v3/service/promo/import-file
Загружает промокоды из файла. Формат запроса: multipart/form-data.
| Параметр | Обяз. | Описание |
|---|---|---|
| file | да | Файл в формате txt, csv, xlsx, xls. Максимум 1 MB |
Ответ: {"imported_count": 50, "codes": ["CODE1", ...]}
curl -X POST "https://api.webask.io/api/v3/service/promo/import-file" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-F "file=@/path/to/codes.csv"
Привязать / отвязать список к опросам
Управление привязкой списка промокодов к нескольким опросам одновременно.
| Параметр | Обяз. | Описание |
|---|---|---|
| quize_ids[] | да | Массив ID опросов |
curl -X POST "https://api.webask.io/api/v3/service/promo/attach/45" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "quize_ids": [123, 456] }'
curl -X POST "https://api.webask.io/api/v3/service/promo/detach" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "quize_ids": [123] }'
Синхронизировать привязки POST /api/v3/service/quiz/{id}/promo/sync
Атомарно обновляет привязки списка: привязывает указанные опросы и отвязывает все остальные. Возвращает списки изменений.
| Параметр | Обяз. | Описание |
|---|---|---|
| list_id | да | ID списка промокодов |
| quize_ids[] | да | Итоговый список ID опросов для привязки |
curl -X POST "https://api.webask.io/api/v3/service/quiz/123/promo/sync" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "list_id": 45, "quize_ids": [123, 456, 789] }'
Пример ответа:
{ "attached": [456, 789], "detached": [100, 101] }
Коды привязанного списка GET /api/v3/service/quiz/{id}/promo/codes/quiz
Возвращает промокоды из списка, привязанного к указанному опросу.
Аналог GET /promo/codes, но без необходимости указывать list_id.
curl -X GET "https://api.webask.io/api/v3/service/quiz/123/promo/codes/quiz" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json"
Опросы для экрана привязки GET /api/v3/service/quiz/{id}/promo/pinned
Возвращает список опросов с отметкой о том, привязан ли к ним указанный список промокодов.
| Параметр | Обяз. | По умолч. | Описание |
|---|---|---|---|
| list_id | да | — | ID списка промокодов |
| search | нет | — | Поиск по названию опроса |
| limit | нет | 20 | Количество |
| offset | нет | 0 | Смещение |
Ответ: {"total": N, "data": [{"id": 123, "name": "Мой опрос", "attach": true, "current": false}, ...]}
curl -X GET "https://api.webask.io/api/v3/service/quiz/123/promo/pinned?list_id=45&limit=20" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json"