/api/v3/events/{eventId}/registrants
Authentication: Requires API Key in the request header.
Authorization: The event must belong to the account associated with the API token. Returns 403 if the event belongs to a different account.
Path Parameters:
| Parameter | Type | Description |
|---|---|---|
eventId | string | MongoDB ObjectId of the webinar event |
| Parameter | Type | Default | Description |
|---|---|---|---|
limit | integer | 100 | Number of items per page (1–500) |
cursor | string | — | Opaque cursor from page.next_cursor of a previous response. Used for pagination. |
sort | string | registeredAt | Field to sort by. Allowed values: registeredAt, email, name |
order | string | desc | Sort direction. Allowed values: asc, desc |
approved | boolean | — | Filter by approval status (true / false) |
participated | boolean | — | Filter by whether the registrant joined the live session |
search | string | — | Free-text search across email, name, and last name |
updated_after | string | — | Only return registrants registered after this date (ISO-8601). Useful for incremental syncing. Example: 2026-01-01T00:00:00Z |
- Make the first request without a
cursorparameter - If
page.next_cursoris notnull, make another request withcursorset to that value - Repeat until
page.next_cursorisnull
200 OKRegistrants retrieved successfully.401 UnauthorizedAuthentication failed (missing or invalid API token).403 ForbiddenEvent does not belong to this account.404 Not FoundEvent not found.500 Internal Server ErrorUnexpected server error.
Sample Request
Sample Request with filters
Sample Request for incremental sync
Sample Request with cursor pagination
Sample Response
Response Fields
| Field | Type | Description |
|---|---|---|
event_id | string | The event ID from the request |
items | array | List of registrant objects for this page |
page | object | Pagination metadata |
page.limit | number | The page size used for this request |
page.next_cursor | string | null | Opaque cursor to pass as ?cursor= for the next page. null when there are no more pages. |
page.total_items | number | Total number of registrants matching the filters |
Registrant Object Fields
| Field | Type | Nullable | Description |
|---|---|---|---|
first_name | string | No | Registrant’s first name |
last_name | string | Yes | Registrant’s last name |
email | string | No | Registrant’s email address |
registered_at | string | No | Timestamp when the registrant signed up (ISO-8601) |
approved | boolean | No | Whether the registrant is approved to attend |
join_url | string | Yes | Unique join URL for this registrant |
participated | boolean | No | Whether the registrant actually joined the live session |
attendance_rate | number | Yes | Percentage of the event the registrant attended (0–100) |
duration | string | Yes | Time spent in the session, formatted as MM:SS |
referrer | string | Yes | Referrer URL if available |
utm | object | Yes | UTM tracking parameters (only present if any UTM value exists) |
utm.source | string | Yes | UTM source |
utm.medium | string | Yes | UTM medium |
utm.campaign | string | Yes | UTM campaign |
utm.term | string | Yes | UTM term |
utm.content | string | Yes | UTM content |
custom_fields | object | Yes | Key-value map of custom registration fields. Values can be string, boolean, or { countryCode, phoneNumber } |