---
title: "Create Registrant"
method: POST
path: "/webinar/registration/v1/sessions/{sessionId}/registrants"
tags: ["Registrants"]
---

# Create Registrant

`POST /webinar/registration/v1/sessions/{sessionId}/registrants`

Creates a new Registrant for a given session.

Registration MUST be open for the session for this call to succeed (otherwise it should return HTTP 403).

A caller must be an authorized user: either a host of the webinar or an IT Admin:
a user from host's account with "WebinarSettings" permission.

## Path parameters

- `sessionId` string, required

## Request body

- RegistrantBaseModelWithQuestionnaire
  - `firstName` string, required — First (given) name
  - `lastName` string, required — Last (family) name
  - `email` string, email, required — User's contact email
  - `joinUri` string, uri — The personalized URI for this registrant to join the Webinar
  - `cancellationUri` string, uri — The personalized URI for this registrant to cancel the registration
  - `registeredPostWebinar` boolean, nullable — Indicates if the registrant was registered to on-demand webinar
  - `visitorId` string — Visitor ID passed from registration page
  - `externalId` string — ID of a registrant passed from external system
  - `registrationTime` string, date-time — Registration time (can be earlier than "creationTime" due to indirect persistence)
  - `ipAddress` string, ipv4 — IP address of the registrant's user agent
  - `source` string — Registration channel source (coming from registration URI)
  - `participantId` string — ID of session participant (from Runtime Service - if this registrant attended the webinar)
  - `questionnaire` RegAnswerModel[] — Answers on custom registration questions
    - union
      - FixedAnswerModel
        - `questionId` string, required — ID of the custom question
        - `answerIds` string[], required — The list of answer IDs
      - VariableAnswerModel
        - `questionId` string, required — ID of the custom question
        - `answerText` string, required — Answer text

## Response `201`

Successful response, new Registrant is created

- RegistrantModelResponsePostWithQuestionnaire
  - `id` string — Internal object ID
  - `creationTime` string, date-time, required — Object creation time
  - `lastModifiedTime` string, date-time, required — Object last modification time
  - `firstName` string, required — First (given) name
  - `lastName` string, required — Last (family) name
  - `email` string, email, required — User's contact email
  - `joinUri` string, uri — The personalized URI for this registrant to join the Webinar
  - `cancellationUri` string, uri — The personalized URI for this registrant to cancel the registration
  - `registeredPostWebinar` boolean, nullable — Indicates if the registrant was registered to on-demand webinar
  - `visitorId` string — Visitor ID passed from registration page
  - `externalId` string — ID of a registrant passed from external system
  - `registrationTime` string, date-time — Registration time (can be earlier than "creationTime" due to indirect persistence)
  - `ipAddress` string, ipv4 — IP address of the registrant's user agent
  - `source` string — Registration channel source (coming from registration URI)
  - `participantId` string — ID of session participant (from Runtime Service - if this registrant attended the webinar)
  - `questionnaire` RegAnswerModel[] — Answers on custom registration questions
    - union
      - FixedAnswerModel
        - `questionId` string, required — ID of the custom question
        - `answerIds` string[], required — The list of answer IDs
      - VariableAnswerModel
        - `questionId` string, required — ID of the custom question
        - `answerText` string, required — Answer text
  - `icalendarSequence` integer — Sequence number for iCalendar email attachments

## Other responses

- `400` — General response with **HTTP 400 "Bad request"** status.<br> Reasons: unparsable request, path, query or body parameters are invalid. The error description may contain reference to particular parameter(s) which haven't passed the validation.
- `403` — General response with **HTTP 403 "Forbidden"** status.<br> Reasons: the requested operation is forbidden because of certain resource state, lack of permissions, feature unavailability, etc.
- `404` — General response with **HTTP 404 "Not found"** status.<br> Reasons: the entity with given ID (typically specified in a path parameter), is not found or inaccessible
- `409` — General response with **HTTP 409 "Conflict"** status.<br> Reasons: the requested modification operation causes a conflict (for example, unique constraint violation). The error definition may contain reference to particular parameter(s) which caused the conflict.
- `500` — General response with **HTTP 500 "Internal Server Error"** status.<br> Reasons: general server-side error.

---

[API](https://skmtc.net/ringcentral/apis/ringcentral-api.md) · [All operations](https://skmtc.net/ringcentral/apis/ringcentral-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/ringcentral/ringcentral-api/versions/8d602198ec97/schema)
