Webinar registrations
POST https://api.nexacloser.com/v1/webinar-registrants registers people for one of your
webinars as if they had used the hosted registration form: the contact is created or updated in the
CRM, the attendee gets a session and a personal watch link, and the webinar’s automations and
reminders run. Full schema: API reference.
Use a Full access organization key.
Request
Section titled “Request”curl -X POST https://api.nexacloser.com/v1/webinar-registrants \ -H "Authorization: Bearer $NEXACLOSER_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "webinar_id": "wbn_6RLC77yktP", "registrants": [ { "first_name": "Dana", "last_name": "Levi", "email": "[email protected]", "phone": "+972501234567", "page_url": "https://www.example.com/webinar?utm_source=facebook", "consent": { "granted": true, "text_shown": "I agree to get webinar reminders by WhatsApp and SMS.", "source": "landing_page" } }, { "first_name": "Avi", "email": "[email protected]" } ] }'- Pick the webinar with
webinar_idorslug. It must be active and belong to the key’s workspace. registrantsis one object or an array of up to 100. Bigger lists: loop on your side.- Every registrant needs an
emailor aphone. - A registrant with a phone must carry
consent.granted: true, because reminders go out by WhatsApp and SMS. Without it that registrant is refused withconsent_required; the others in the batch still go through. Email-only registrants need no consent object. - Also accepted:
full_name,phone_country_code,phone_national,country,url_parameters,custom_fields,utm_source,utm_medium,utm_campaign,utm_content,utm_term,referrer,locale,timezone. If the webinar has a registration form, its rules apply too.
Response
Section titled “Response”The call answers 200 once the batch is processed. Each registrant succeeds or fails on its own:
{ "results": [ { "index": 0, "ok": true, "registration_id": "wbr_5D2AkHpKwL", "personal_link_url": "https://app.nexacloser.com/j/wbr_5D2AkHpKwL.6b146474.59934ce894cb", "duplicate": false }, { "index": 1, "ok": false, "error": "consent_required" } ], "created": 1, "duplicates": 0, "failed": 1}indexis the registrant’s position in your array.personal_link_urlis that attendee’s own link to the webinar room. Send it to them if you send your own confirmation.- Registering the same person for the same session again succeeds with
"duplicate": trueand the same registration and link. Retrying a batch is safe.
Errors for one registrant
Section titled “Errors for one registrant”error |
Meaning |
|---|---|
consent_required |
The registrant has a phone and no consent.granted: true. |
invalid_registrant |
The item is not an object. |
email_or_phone_required |
Neither an email nor a phone. |
valid email required |
The webinar’s form asks for an email and this one is missing or invalid. |
validation_failed |
The webinar’s form rules rejected the answers. |
webinar_full |
No seat left in the session. |
internal |
Failed on our side. Retry that registrant. |
Errors for the whole call
Section titled “Errors for the whole call”| Status | error |
|---|---|
400 |
invalid_json, no_registrants, batch_too_large, webinar_required |
401 |
unauthorized |
403 |
forbidden: the webinar belongs to another workspace |
404 |
webinar_not_found: no active webinar with that id or slug |
405 |
method_not_allowed |
429 |
rate_limited |
Limits
Section titled “Limits”600 registrants per minute and 100,000 per day, per key. A batch of 50 counts as 50.
