1. Registrierung von Teilnehmern
Endpoint:POST https://webinaris.co/api/register
Die Parameter müssen als JSON im Body der HTTP-Anfrage gesendet werden. Der Content-Type-Header ist auf application/json zu setzen.
Beschreibung:
Registriert einen neuen Teilnehmer für ein Webinar.
Erforderliche Parameter:
| Name | Typ | Beschreibung |
|---|---|---|
| String | E-Mail-Adresse des Teilnehmers | |
| webinar_id | String | ID des Webinars (zu finden im jeweiligen Webinar im Menü "Experten-Einstellungen" -> "API") |
| apikey | String | Globaler API-Schlüssel (zu finden im jeweiligen Webinar im Menü "Experten-Einstellungen" -> "API") |
| time | String/Int | Webinar-Termin (UNIX-Timestamp oder im Format DD.MM.YYYY HH:MM) |
| version | String | Version der API, z.B. 'v1.0' |
Optionale Parameter:
| Name | Typ | Beschreibung |
|---|---|---|
| firstname | String | Vorname des Teilnehmers |
| lastname | String | Nachname des Teilnehmers |
| note | String | Notiz |
| phone | String | Telefonnummer |
| source_id | String | Quelle des Teilnehmers |
| affiliate_id | String | Affiliate-ID |
| utm_campaign | String | UTM-Kampagnenname |
| utm_content | String | UTM-Content |
| utm_medium | String | UTM-Medium |
| utm_source | String | UTM-Quelle |
| utm_term | String | UTM-Term |
| ip_address | String | IP-Adresse des Teilnehmers |
| access | String | Gibt an, ob der Teilnehmer das Webinar besuchen darf oder nicht. Werte: "active" oder "inactive" |
| sender | String | Sender des API Aufrufs |
| timezone | String | Zeitzone gemäß tzdatabase (z.B. "Europe/Berlin"). Wird keine Zeitzone angegeben, wird die Webinar-Zeitzone verwendet. |
| gender | String | Seit v1.1; Werte: "male" Wird kein Wert übergeben oder der Parameter nicht übergeben, bestimmt Webinaris das Geschlecht automatisch basierend auf dem Vornamen. Ist eine automatisch Bestimmung nicht möglich, wird der das Geschlecht auf "unknown" gesetzt. |
Antwort:
Bei erfolgreicher Registrierung wird folgendes JSON-Objekt zurückgegeben:
| Feld | Typ | Beschreibung |
|---|---|---|
| status | String | 200 (für OK), 400 (Bad Request) 500 (Internal Server Error) |
| success | String | "true" oder "false" |
| webinarroom_url | String | URL zum Webinarraum |
| data.replay_7day_pause-seek | String | Replay-Link (7 Tage gültig, mit Pause/Seek) |
| data.replay_7day_no_pause-seek | String | Replay-Link (7 Tage gültig, ohne Pause/Seek) |
| data.replay_3day_pause-seek | String | Replay-Link (3 Tage gültig, mit Pause/Seek) |
| data.replay_3day_no_pause-seek | String | Replay-Link (3 Tage gültig, ohne Pause/Seek) |
| data.doipage_url | String | URL zur DOI-Bestätigungsseite (leer, falls nicht verfügbar) |
| data.thankyoupage_url | String | URL zur Danke-Seite |
2. Webinare abrufen
Endpoint:POST https://webinaris.co/api/webinars
Die Parameter müssen als JSON im Body der HTTP-Anfrage gesendet werden. Der Content-Type-Header ist auf application/json zu setzen.
Beschreibung:
Gibt eine Liste aller aktiven Webinare im Account zurück.
Erforderliche Parameter:
| Name | Typ | Beschreibung |
|---|---|---|
| apikey | String | Globaler API-Schlüssel (zu finden im jeweiligen Webinar im Menü "Experten-Einstellungen" -> "API") |
| version | String | Version der API, z.B. 'v1.0' |
Antwort:
Ein Array von Webinar-Objekten mit folgenden Feldern:
| Feld | Typ | Beschreibung |
|---|---|---|
| status | String | 200 (für OK), 400 (Bad Request) 500 (Internal Server Error) |
| success | String | "true" oder "false" |
| data.public_title | String | Öffentlicher Titel des Webinars |
| data.internal_title | String | Interner Titel des Webinars |
| data.webinar_id | String | Webinar-ID (wie in der API verwendet) |
| data.type | String | Typ: "live", "auto" oder "partner" |
3. Webinarzeiten abrufen
Endpoint:POST https://webinaris.co/api/webinartimes
Die Parameter müssen als JSON im Body der HTTP-Anfrage gesendet werden. Der Content-Type-Header ist auf application/json zu setzen.
Beschreibung:
Gibt eine Liste aller automatisch durch Webinaris generierten Termine für ein Webinar zurück, um die intelligente Webinaris-Terminlogik verwenden zu können.
Erforderliche Parameter:
| Name | Typ | Beschreibung |
|---|---|---|
| webinar_id | String | ID des Webinars (zu finden im jeweiligen Webinar im Menü "Experten-Einstellungen" -> "API") |
| apikey | String | Globaler API-Schlüssel (zu finden im jeweiligen Webinar im Menü "Experten-Einstellungen" -> "API") |
| version | String | Version der API, z.B. 'v1.0' |
Antwort:
Ein Array von Webinar-Objekten mit folgenden Feldern:
| Feld | Typ | Beschreibung |
|---|---|---|
| status | String | 200 (für OK), 400 (Bad Request) 500 (Internal Server Error) |
| success | String | "true" oder "false" |
| data.showtime | String | Der Webinar-Termin |
| data.vmax | String | Die maximal verfügbaren Plätze |
| data.vfree | String | Die noch freien Plätze |
| data.unix | String | Der Webinar-Termin im UNIX Timestamp Format |
| data.offset | String | UTC Offset des Webinar-Termins |
| data.tzone | String | Zeitzone gemäß tzdatabase (z.B. "Europe/Berlin") |
4. Abmeldung (E-Mail Opt-out)
Endpoint:POST https://webinaris.co/api/unsubscribe
Die Parameter müssen als JSON im Body der HTTP-Anfrage gesendet werden. Der Content-Type-Header ist auf application/json zu setzen.
Beschreibung:
Meldet eine E-Mail-Adresse vom Erhalt weiterer E-Mails durch Webinaris ab (Opt-out).
Erforderliche Parameter:
| Name | Typ | Beschreibung |
|---|---|---|
| apikey | String | Globaler API-Schlüssel (zu finden im jeweiligen Webinar im Menü "Experten-Einstellungen" -> "API") |
| String | E-Mail-Adresse zum Abmelden | |
| version | String | Version der API, z.B. 'v1.0' |
Antwort:
JSON-Objekt mit Statusmeldung:
| Feld | Typ | Beschreibung |
|---|---|---|
| status | String | 200 (für OK), 400 (Bad Request) 500 (Internal Server Error) |
| success | String | "true" oder "false" |
5. Teilnehmerdaten abfragen
Endpoint:POST https://webinaris.co/api/user
Die Parameter müssen als JSON im Body der HTTP-Anfrage gesendet werden. Der Content-Type-Header ist auf application/json zu setzen.
Beschreibung:
Gibt alle Anmeldungen einer E-Mail Adresse zurück.
Erforderliche Parameter:
| Name | Typ | Beschreibung |
|---|---|---|
| apikey | String | Globaler API-Schlüssel (zu finden im jeweiligen Webinar im Menü "Experten-Einstellungen" -> "API") |
| version | String | Version der API, z.B. 'v1.0' |
Optionale Parameter:
| Name | Typ | Beschreibung |
|---|---|---|
| unique_id | String | Eindeutige ID der Registrierung (seit v1.2) |
| webinar_id | String | Komma-separierte Liste von Webinar-IDs (zu finden im jeweiligen Webinar im Menü "Experten-Einstellungen" -> "API") |
| String | E-Mail Adresse, zu der die Anmeldungen abgefragt werden sollen (seit v1.1 optional) | |
| date-from | String | Datumsfilter: Ab wann sollen Anmeldungen zurückgegeben werden? (UNIX-Timestamp oder im Format DD.MM.YYYY HH:MM) |
| date-to | String | Datumsfilter: Bis wann sollen Anmeldungen zurückgegeben werden? (UNIX-Timestamp oder im Format DD.MM.YYYY HH:MM) |
| timezone | String | Zeitzone für den Datumsfilter gemäß tzdatabase (z.B. "Europe/Berlin"). Wird keine Zeitzone angegeben, wird die Account-Zeitzone verwendet. |
| page | Number | Seite der Pagination. Default-Wert: 1 (seit v1.1) |
| limit | Number | Anzahl der Einträge pro Pagination-Seite. Default-Wert: 10. Min: 1. Max: 50 (seit v1.1) |
Ein Array von Anmeldungs-Objekten mit folgenden Feldern:
| Feld | Typ | Beschreibung |
|---|---|---|
| unique_id | String | Eindeutige ID der Registrierung (seit v1.2) |
| status | String | 200 (für OK), 400 (Bad Request) 500 (Internal Server Error) |
| success | String | "true" oder "false" |
| total_pages | Number | Gesamte anzahl der Pagination-Seiten, basierend auf dem limit-Wert (seit v1.1) |
| participation_status | String | Teilnahme-Status. Mögliche Werte: "participated", "not-participated", "future-showtime" |
| email_status | String | E-Mail Opt-In Status. Mögliche Werte: "unsubscribed", "confirmed", "confirmation-pending", "no-confirmation-required" |
| firstname | String | Vorname des Teilnehmers |
| lastname | String | Nachname des Teilnehmers |
| note | String | Notiz |
| phone | String | Telefonnummer |
| source_id | String | Quelle des Teilnehmers |
| affiliate_id | String | Affiliate-ID |
| utm_campaign | String | UTM-Kampagnenname |
| utm_content | String | UTM-Content |
| utm_medium | String | UTM-Medium |
| utm_source | String | UTM-Quelle |
| utm_term | String | UTM-Term |
| access | String | Gibt an, ob der Teilnehmer das Webinar besuchen darf oder nicht. Werte: "active" oder "inactive" |
| timezone | String | Zeitzone des Webinar-Termins gemäß tzdatabase (z.B. "Europe/Berlin"). Wird keine Zeitzone angegeben, wird die Webinar-Zeitzone verwendet. |
| gender | String | Geschlecht des Teilnehmers, falls vorhanden. Mögliche Werte: "non-binary", "female", "male", "unknown" |
| showtime_time | String | Zeit des Webinar-Termins in der Zeitzone des Termins in HH:MM |
| showtime_date | String | Datum des Webinar-Termins in der Zeitzone des Termins in DD.MM.YYYY |
| unixtimestamp | Number | Unix Timestamp des Webinar-Termins in Sekunden |
| registration_time | Number | Unix Timestamp des Zeitpunkts, an dem sich der Teilnehmer registriert hat (Achtung: Nicht der Webinar-Termin) |
| webinarroom_url | String | Webinarraum-URL |
| replay_7day_pause-seek | String | Replay-Link (7 Tage gültig, mit Pause/Seek) |
| replay_7day_no_pause-seek | String | Replay-Link (7 Tage gültig, ohne Pause/Seek) |
| replay_3day_pause-seek | String | Replay-Link (3 Tage gültig, mit Pause/Seek) |
| replay_3day_no_pause-seek | String | Replay-Link (3 Tage gültig, ohne Pause/Seek) |
| doipage_url | String | URL zur DOI-Bestätigungsseite (leer, falls nicht verfügbar) |
| thankyoupage_url | String | URL zur Danke-Seite |
| webinar_internal-title | String | Interne Bezeichnung des Webinars |
| webinar_public-title | String | Öffentlicher Titel des Webianrs |
- Antwort-Parameter 'total_pages'