Skip to content

List participant roles

GET/v1/event/{eventId}/participant-roles

US Region: https://public-api.sessionboard.com · EU Region: https://public-api-eu.sessionboard.com

The event's participant roles — the three standard roles (Speaker, Chairperson, Moderator) and every custom role configured for the event — with the ids to use in the roleIds filter of POST /v1/event/{eventId}/participants. Ordered as the Sessions settings page shows them. Deleted roles are not returned.

is_custom is true for roles the organizer added. core_role is the standard category a custom role maps to (speaker, chairperson or moderator); it decides which legacy array the role's participants appear in on POST /v1/event/{eventId}/sessions, and is not a display label — use name.

An event that has never been opened in the Sessions editor may have no roles yet and answers with an empty results array. Its participants are still returned by POST .../participants, with roleId: null on their standard roles until the roles are created.

Request example

Terminal window
curl --request GET \
--url 'https://public-api.sessionboard.com/v1/event/{eventId}/participant-roles' \
--header 'x-access-token: <api-token>'

Try it

Authorization

Your token stays in this page. It is sent only to the region above and is never saved; it is gone when you leave or reload the page.

Path parameters
GET

Authorizations

  • x-access-tokenstringheader

    Organization API token. Generate from Organization Settings → API Tokens.

  • AuthorizationBearer <token>headeror

    OAuth 2.1 access token. Obtained via the OAuth PKCE flow at /oauth/token.

Send one of these. See Authentication.

Path parameters

  • eventIdintegerpathrequired

    The event ID.

Responses

200application/json

OK

  • resultsEventParticipantRole[]
    Show child attributes
    • idstring<uuid>

      Use as a roleIds filter value on POST /v1/event/{eventId}/participants.

    • namestring

      Display name (singular).

    • name_pluralstring

      Display name (plural).

    • slugstring

      Stable programmatic identifier within the event.

    • core_rolestring

      The standard category the role maps to. Not a display label.

      Allowed values
      "speaker", "chairperson", "moderator"
    • is_customboolean

      true for a role the organizer added; false for the three standard roles.

    • sort_orderinteger

      Position in the Sessions settings page; results are returned in this order.

    • created_atstring<date-time>
    • updated_atstring<date-time>

401

Unauthorized

404

Event not found

Response examples

{
"results": [
{
"id": "84bd12e5-d5ec-4c64-a604-4051e06c8dc2",
"name": "Speaker",
"name_plural": "Speakers",
"slug": "speaker",
"core_role": "speaker",
"is_custom": false,
"sort_order": 0,
"created_at": "2026-02-03T18:04:11.120Z",
"updated_at": "2026-02-03T18:04:11.120Z"
},
{
"id": "4efeb845-050f-4002-9496-cb586cdf10f2",
"name": "Moderator",
"name_plural": "Moderators",
"slug": "moderator",
"core_role": "moderator",
"is_custom": false,
"sort_order": 2,
"created_at": "2026-02-03T18:04:11.120Z",
"updated_at": "2026-02-03T18:04:11.120Z"
},
{
"id": "52d60237-19db-4bda-a116-8b9fcb6750e9",
"name": "Panelist",
"name_plural": "Panelists",
"slug": "panelist",
"core_role": "speaker",
"is_custom": true,
"sort_order": 3,
"created_at": "2026-02-10T09:41:52.004Z",
"updated_at": "2026-02-10T09:41:52.004Z"
}
]
}

Get release notes by email

A short digest on the days something new goes live — each change with a link to its note in the release notes. No marketing, and one click to stop.

Company email addresses only. We’ll send one email to confirm it’s you. Already use Sessionboard? You can also turn this on under Community → What’s new.