API statystyk i uczestników

Kierunek outbound odczytu: Twój system (Make, Zapier, BI, własny backend) pobiera dane z Webivio przy użyciu tokenu konta.

To nie jest to samo co API rejestracji (zapis uczestnika tokenem per webinar w query).

Token w ustawieniach

  1. Ustawienia → API (tokeny) → Generuj token.
  2. Nadaj nazwę (np. „Make produkcja”).
  3. Skopiuj token od razu — plaintext jest pokazywany tylko raz.
  4. Możesz mieć wiele tokenów; Unieważnij albo Usuń niepotrzebne.

Prefiks tokenu: wvapi_…. W bazie trzymamy wyłącznie hash SHA-256.

Auth

Authorization: Bearer wvapi_YOUR_TOKEN

albo

X-Api-Key: wvapi_YOUR_TOKEN

Ten sam token służy też do API czatu (odpowiedzi) (POST …/chat/reply).

Endpointy

Base: https://TWOJA-DOMENA/api/public/v1

Lista webinarów

GET /api/public/v1/webinars

Odpowiedź: { data: [{ id, name, title, status }, ...] }

Statystyki (agregaty)

GET /api/public/v1/webinars/{webinarId}/stats?from=2026-09-01&to=2026-09-30

Query from / to (ISO) opcjonalne — domyślnie ostatnie 30 dni.

Pola m.in.: pageVisits, registrations, attendance, offerClicks, purchaseCount, purchaseRevenueSum (+ atrybucja attributed/unknown).

Statystyki wysyłki powiadomień e-mail

GET /api/public/v1/webinars/{webinarId}/notification-stats?from=2026-09-01&to=2026-09-30

Query from / to (ISO) opcjonalne — domyślnie ostatnie 30 dni (jak przy /stats).

Agregaty wysyłki maili do uczestników (remindery pre/post, last-minute, no-attend) ze śledzeniem SES:

  • rows[] — per typ / szablon: sent, uniqueOpens, uniqueClicks, openRate, clickRate, subject, …
  • totals — sumy i stopy open/click
  • series[] — dzienne sent / opens / clicks

To samo źródło co zakładka Maile w Statystykach panelu.

Ankiety (wyniki + e-maile głosujących)

GET /api/public/v1/webinars/{webinarId}/polls?from=2026-09-01&to=2026-09-30

Query from / to (ISO) opcjonalne — domyślnie ostatnie 30 dni (jak przy /stats).

Dla każdej ankiety webinaru (live i auto):

  • question, totalVotes, variantLabel (A/B, jeśli dotyczy)
  • options[] — label, count, percent, emails[] (unikalne e-maile uczestników, którzy wybrali opcję; z rejestracji)

To samo źródło co zakładka Ankiety w Statystykach panelu. Gdy uczestnik nie ma e-maila w bazie, nie pojawia się na liście.

Uczestnicy (pełna lista)

GET /api/public/v1/webinars/{webinarId}/participants?page=1&pageSize=50&from=2026-09-01&to=2026-09-30
  • page, pageSize (max 200)
  • from / to — filtr daty (dzień kalendarzowy)

Pola uczestnika m.in.: dane kontaktowe, frekwencja, klik oferty, czas oglądania, %, UTM, wariant A/B.

Przykład curl

curl "https://TWOJA-DOMENA/api/public/v1/webinars/WEBINAR_UUID/stats" \
  -H "Authorization: Bearer wvapi_YOUR_TOKEN"

Odpowiedzi błędów

KodZnaczenie
401Brak / zły / unieważniony token
404Webinar nie istnieje lub nie należy do właściciela tokenu
429Rate limit (~60/min, ~600/h per token)

Bezpieczeństwo

  • Nie commituj tokenu do repozytorium ani frontu publicznego.
  • Unieważnij token po wycieku.
  • Allowlista IP — planowana w kolejnej wersji.