Skip to main content
HTTP Method: GET URL: /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:
ParameterTypeDescription
eventIdstringMongoDB ObjectId of the webinar event
Query Parameters:
ParameterTypeDefaultDescription
limitinteger100Number of items per page (1–500)
cursorstringOpaque cursor from page.next_cursor of a previous response. Used for pagination.
sortstringregisteredAtField to sort by. Allowed values: registeredAt, email, name
orderstringdescSort direction. Allowed values: asc, desc
approvedbooleanFilter by approval status (true / false)
participatedbooleanFilter by whether the registrant joined the live session
searchstringFree-text search across email, name, and last name
updated_afterstringOnly return registrants registered after this date (ISO-8601). Useful for incremental syncing. Example: 2026-01-01T00:00:00Z
Response: Paginated list of registrant objects for the specified event. Rate limit: Once every 1 second for unique requests. Pagination: This endpoint uses cursor-based pagination with a default page size of 100 registrants. To iterate through all results:
  1. Make the first request without a cursor parameter
  2. If page.next_cursor is not null, make another request with cursor set to that value
  3. Repeat until page.next_cursor is null
Status Codes:
  • 200 OK Registrants retrieved successfully.
  • 401 Unauthorized Authentication failed (missing or invalid API token).
  • 403 Forbidden Event does not belong to this account.
  • 404 Not Found Event not found.
  • 500 Internal Server Error Unexpected server error.

Sample Request

GET /api/v3/events/69b5f9f8788fcc3897fd60e8/registrants HTTP/1.1
Host: platform.riverside.fm
Authorization: Bearer YOUR_API_KEY

Sample Request with filters

GET /api/v3/events/69b5f9f8788fcc3897fd60e8/registrants?limit=50&approved=true&sort=email&order=asc HTTP/1.1
Host: platform.riverside.fm
Authorization: Bearer YOUR_API_KEY

Sample Request for incremental sync

GET /api/v3/events/69b5f9f8788fcc3897fd60e8/registrants?updated_after=2026-03-15T00:00:00Z HTTP/1.1
Host: platform.riverside.fm
Authorization: Bearer YOUR_API_KEY

Sample Request with cursor pagination

GET /api/v3/events/69b5f9f8788fcc3897fd60e8/registrants?limit=50&cursor=MjAyNi0wMy0xNlQxNzo0Mzo1MC4wMDBaOjoxODYwNQ== HTTP/1.1
Host: platform.riverside.fm
Authorization: Bearer YOUR_API_KEY

Sample Response

{
  "event_id": "69b5f9f8788fcc3897fd60e8",
  "items": [
    {
      "first_name": "Ada",
      "last_name": "Lovelace",
      "email": "[email protected]",
      "registered_at": "2026-01-12T10:15:30.000Z",
      "approved": true,
      "join_url": "https://riverside.fm/studio/my-studio?audienceToken=abc-123",
      "participated": false,
      "attendance_rate": 87.5,
      "duration": "52:31",
      "referrer": "https://www.linkedin.com",
      "utm": {
        "source": "google",
        "medium": "cpc",
        "campaign": "webinar_launch",
        "term": "webinar",
        "content": "banner"
      },
      "custom_fields": {
        "Company": "Acme",
        "Phone": { "countryCode": "+1", "phoneNumber": "555555555" }
      }
    }
  ],
  "page": {
    "limit": 100,
    "next_cursor": "MjAyNi0wMy0xNlQxNzo0Mzo1MC4wMDBaOjoxODYwNQ==",
    "total_items": 350
  }
}

Response Fields

FieldTypeDescription
event_idstringThe event ID from the request
itemsarrayList of registrant objects for this page
pageobjectPagination metadata
page.limitnumberThe page size used for this request
page.next_cursorstring | nullOpaque cursor to pass as ?cursor= for the next page. null when there are no more pages.
page.total_itemsnumberTotal number of registrants matching the filters

Registrant Object Fields

FieldTypeNullableDescription
first_namestringNoRegistrant’s first name
last_namestringYesRegistrant’s last name
emailstringNoRegistrant’s email address
registered_atstringNoTimestamp when the registrant signed up (ISO-8601)
approvedbooleanNoWhether the registrant is approved to attend
join_urlstringYesUnique join URL for this registrant
participatedbooleanNoWhether the registrant actually joined the live session
attendance_ratenumberYesPercentage of the event the registrant attended (0–100)
durationstringYesTime spent in the session, formatted as MM:SS
referrerstringYesReferrer URL if available
utmobjectYesUTM tracking parameters (only present if any UTM value exists)
utm.sourcestringYesUTM source
utm.mediumstringYesUTM medium
utm.campaignstringYesUTM campaign
utm.termstringYesUTM term
utm.contentstringYesUTM content
custom_fieldsobjectYesKey-value map of custom registration fields. Values can be string, boolean, or { countryCode, phoneNumber }

Error Responses

Unauthorized (401)
{
  "message": "Unauthorized"
}
Forbidden (403)
{
  "message": "Event does not belong to this account"
}
Event Not Found (404)
{
  "message": "Event not found"
}