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
- Ustawienia → API (tokeny) → Generuj token.
- Nadaj nazwę (np. „Make produkcja”).
- Skopiuj token od razu — plaintext jest pokazywany tylko raz.
- 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/clickseries[]— dziennesent/ 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
| Kod | Znaczenie |
|---|---|
| 401 | Brak / zły / unieważniony token |
| 404 | Webinar nie istnieje lub nie należy do właściciela tokenu |
| 429 | Rate 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.