> ## Documentation Index
> Fetch the complete documentation index at: https://docs.riverside.fm/llms.txt
> Use this file to discover all available pages before exploring further.

# Create Webinar Registrant

> Registers a participant for a Riverside webinar event.

**HTTP Method:** POST

**URL:** ` /api/v3/events/{eventId}/registrants`

**Authentication**: Requires API Key in the request header.

**Path Parameters**:

| Parameter | Type   | Description                                                                                                                                |
| :-------- | :----- | :----------------------------------------------------------------------------------------------------------------------------------------- |
| `eventId` | string | ID of the event to register the audience to. To find this value, visit the schedule page and click "Copy event ID" in the three dots menu. |

**Request Body Paramaters**:

* `email`: Email address of the registrant. Must be unique per event.
* `first_name`: Registrant’s first name.
* `last_name`: Registrant’s last name.
* `custom_fields`: Key-value map of custom registration fields. Keys are custom field names, values are the submitted responses.
  > **Notes:**
  >
  > * `email`,` first_name` & `last_name` are always mandatory for every webinar.
  > * Rest of parameters are mandatory only if defined so in the registration form setup when scheduling the event.
  > * `phone`field: phone number in international format, separated to country code and phone number.
  > * `text` field limited to 256 charachters.
  > * `checkbox`field: limited to TRUE or FALSE

**Response**: confirmation for registration, including the event ID and unique join URL.

**Rate limit**: once every 1 seconds for unique request.

**Status Codes**:

* `200 OK` Registration created successfully.
  `401 Unauthorized` Authentication failed (Invalid or missing API token).
* `404 Not Found` Event not found.
* `409 Conflict` Duplicate registration (a registrant with the same email already exists for this event).
* `422 Unprocessable Entity`Validation error (for example, invalid email format, unsupported country code, or invalid custom\_fields payload).

### **Sample Request**

```json theme={null}
POST /api/v1/events/123/registrants HTTP/1.1
Host: platform.riverside.com
Authorization: BEARER YOUR_API_KEY

{
  "email": "person@example.com",
  "first_name": "Ada",
  "last_name": "Lovelace",
  "custom_fields":  [
	{
      "label": "how many webinars did you attend?",
      "value": "one"
    },
    {
      "label": "Country",
      "value": "United States"
    },
    {
      "label": "Phone",
      "value": {"countryCode":"+1","phoneNumber":"555555555"}
    },
    {
      "label": "Do you agree to be contacted?",
      "value": true
    },
    {
      "label": "Question",
      "value": "Answer 1"
    }
  ]
}
```

### **Sample Response**

```json theme={null}
{
  "event_id": "ev_456",
  "join_url": "https://riverside.fm/webinar/ev_456?token=abc123..."
}
```

### **Error Responses**

**Duplicate Registration (409)**

```json theme={null}
{
  "statusCode": 409,
  "message": "Email already registered for this event"
}
```

**Validation Error (422)**

```json theme={null}
{
  "statusCode": 422,
  "message": "Validation failed",
  "errors": [
    {
      "field": "email",
      "message": "Invalid email format"
    }
  ]
}
```

**Event Not Found (404)**

```json theme={null}
{
  "statusCode": 404,
  "message": "Event not found"
}
```
