Stats and participants API

Read outbound: your system (Make, Zapier, BI, custom backend) fetches Webivio data using an account API token.

This is not the same as the registration API (inbound signup with a per-webinar query token).

Token in settings

  1. Settings → API tokens → Generate token.
  2. Give it a name (e.g. “Make production”).
  3. Copy the token immediately — plaintext is shown only once.
  4. You can have multiple tokens; Revoke or Delete unused ones.

Token prefix: wvapi_…. Only a SHA-256 hash is stored in the database.

Auth

Authorization: Bearer wvapi_YOUR_TOKEN

or

X-Api-Key: wvapi_YOUR_TOKEN

The same token is also used for the Chat reply API (POST …/chat/reply).

Endpoints

Base: https://YOUR-DOMAIN/api/public/v1

List webinars

GET /api/public/v1/webinars

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

Stats (aggregates)

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

Optional from / to (ISO) — defaults to the last 30 days.

Fields include: pageVisits, registrations, attendance, offerClicks, purchaseCount, purchaseRevenueSum (+ attributed/unknown).

Notification email send stats

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

Optional from / to (ISO) — defaults to the last 30 days (same as /stats).

Aggregates for participant notification emails (pre/post reminders, last-minute, no-attend) with SES tracking:

  • rows[] — per type / template: sent, uniqueOpens, uniqueClicks, openRate, clickRate, subject, …
  • totals — sums and open/click rates
  • series[] — daily sent / opens / clicks

Same source as the Emails tab in panel Analytics.

Polls (results + voter emails)

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

Optional from / to (ISO) — defaults to the last 30 days (same as /stats).

For each webinar poll (live and auto):

  • question, totalVotes, variantLabel (A/B when applicable)
  • options[] — label, count, percent, emails[] (unique emails of participants who chose the option; from registration)

Same source as the Polls tab in panel Analytics. Participants without an email in the database are omitted from the list.

Participants (full list)

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 — date filter (calendar day)

Participant fields include contact data, attendance, offer click, watch time, %, UTM, A/B variant.

curl example

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

Error responses

CodeMeaning
401Missing / invalid / revoked token
404Webinar missing or not owned by the token owner
429Rate limit (~60/min, ~600/h per token)

Security

  • Do not commit tokens to git or public frontends.
  • Revoke a token after a leak.
  • IP allowlists are planned for a later version.