Публічний API (v1)

REST API лише для читання: витягуйте свої квізи, ліди та аналітику у власні інструменти. Автентифікація — API-ключами воркспейсу.

Оновлено: Серпень 2026

Огляд#

API v1 дає читати дані вашого воркспейсу: список квізів із публічними URL, ліди з фільтрами й пагінацією та зведену аналітику за поточний місяць. Саме його використовує офіційний WordPress-плагін. API лише для читання — квізи створюються й редагуються в конструкторі.

Базовий URL для всіх ендпоінтів:

text
https://api.qwizoo.com/api

Автентифікація#

Кожен запит має містити API-ключ у заголовку: X-Api-Key: qwz_…

  1. 1Відкрийте Налаштування → API-ключі в дашборді (лише власник).
  2. 2Натисніть «Створити ключ», дайте назву й скопіюйте ключ — він показується один раз.
  3. 3Зберігайте у секрет-менеджері. Для ротації створіть новий ключ і відкличте старий.
bash
curl https://api.qwizoo.com/api/v1/quizzes \
  -H "X-Api-Key: qwz_your_api_key_here"
💡

У воркспейсі може бути до 10 активних ключів. Відкликаний ключ перестає працювати одразу. Ключі зберігаються хешованими — якщо загубили, створіть новий.

Формат відповіді

Успішні відповіді загорнуті в { success: true, data }. Помилки — { success: false, statusCode, code, message }.


Ендпоінти#

GET /v1/quizzesСписок квізів

Повертає всі невидалені квізи воркспейсу (опубліковані першими) разом із тарифом і використанням квоти лідів.

json
{
  "success": true,
  "data": {
    "workspace": { "name": "Acme", "plan": "comfort", "leadsThisMonth": 42, "leadLimit": 300 },
    "quizzes": [
      {
        "id": "cmt2u9b0400a614a9svpjmm48",
        "title": "Which plan fits you?",
        "slug": "which-plan",
        "publicId": "iyXAFBVY",
        "isPublished": true,
        "embedUrl": "https://www.qwizoo.com/q/iyXAFBVY",
        "allowAdvancedEmbed": true,
        "updatedAt": "2026-08-21T11:21:14.852Z"
      }
    ]
  }
}

GET /v1/leadsСписок лідів

Повертає ліди від новіших до старіших із фільтрами та offset-пагінацією.

Query-параметри

ПараметрТипОпис
quizIdstringФільтр за ID квізу (внутрішній id з /v1/quizzes)
statusstringnew | contacted | qualified | disqualified | converted
aiScorestringhot | warm | cold (AI-скоринг, Premium)
frozenbooleantrue | false — ліди понад місячну квоту
fromISO dateСтворені не раніше цієї дати
toISO dateСтворені не пізніше цієї дати
limitnumber1–100, за замовчуванням 50
offsetnumberЗсув пагінації, за замовчуванням 0
bash
curl "https://api.qwizoo.com/api/v1/leads?status=new&from=2026-08-01&limit=20" \
  -H "X-Api-Key: qwz_your_api_key_here"
json
{
  "success": true,
  "data": {
    "total": 3,
    "limit": 20,
    "offset": 0,
    "data": [
      {
        "id": "cmt2vlmlm00fs14a94lgjxcox",
        "name": "Maria",
        "email": "maria@example.com",
        "phone": "+380671234567",
        "status": "new",
        "aiScore": "hot",
        "frozen": false,
        "followUpStatus": "sent",
        "createdAt": "2026-08-21T11:38:27.370Z",
        "quiz": { "id": "cmt2u9b0400a614a9svpjmm48", "title": "Which plan fits you?", "publicId": "iyXAFBVY" }
      }
    ]
  }
}

GET /v1/analyticsЗведена аналітика

Перегляди, завершення, ліди й конверсії за поточний календарний місяць — по всьому воркспейсу або одному квізу.

bash
curl "https://api.qwizoo.com/api/v1/analytics?quizId=cmt2u9b0400a614a9svpjmm48" \
  -H "X-Api-Key: qwz_your_api_key_here"
json
{
  "success": true,
  "data": {
    "period": { "from": "2026-08-01T00:00:00.000Z", "to": "2026-08-21T15:00:00.000Z" },
    "views": 42,
    "completions": 3,
    "leads": 3,
    "frozenLeads": 0,
    "conversionRate": 7.14,
    "leadCaptureRate": 100
  }
}

JavaScript

js
const res = await fetch("https://api.qwizoo.com/api/v1/leads?limit=100", {
  headers: { "X-Api-Key": process.env.QWIZOO_API_KEY },
});
const { data } = await res.json();
console.log(data.total, data.data[0]?.email);

Ліміти запитів#

Ліміти діють на кожен API-ключ. При перевищенні повертається 429 TOO_MANY_REQUESTS — зачекайте й повторіть.

ЕндпоінтЛіміт
GET /v1/quizzes120 / min
GET /v1/leads60 / min
GET /v1/analytics60 / min

Коди помилок#

КодЗначення
401 UNAUTHORIZEDВідсутній, недійсний або відкликаний X-Api-Key
429 TOO_MANY_REQUESTSПеревищено ліміт запитів
400 BAD_REQUESTНекоректний query-параметр (наприклад, дата)

Нотатки#

  • Ліди понад місячну квоту повертаються з frozen: true; їхні контакти замасковані, доки ви не оновите тариф або не докупите пакет лідів.
  • API читає ті самі дані, що й дашборд — жодних прихованих фільтрів.
  • Потрібні write-ендпоінти (створити лід, запустити webhook)? Використовуйте сам квіз або Zapier/Make — і напишіть на hello@qwizoo.com, що саме хочете побудувати.
⚠️

Ніколи не передавайте API-ключ у браузер чи публічний репозиторій — він дає доступ на читання до всіх лідів воркспейсу.