Skip to content

List events

GET/v1/events

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

Returns events accessible to the authenticated API key.

Results are paginated: page (1–999, default 1) and pageSize (1–100, default 25) are honored, and the response wraps events in the standard { results, pagination } envelope. Events are ordered oldest-first (created_at ascending, ties broken by id), so pages are stable across requests.

By default each event is id, name, timezone, starts_at, ends_at, and features. Pass expand to attach extra collections.

expand=custom_fields includes org-defined event custom field values (CustomFieldValue[]). An event with no values returns []. Datetime custom field values are ISO 8601 in the event's local time with its UTC offset (for example 2026-08-15T09:00:00-03:00); when the event has no valid timezone the raw UTC instant is returned (2026-08-15T12:00:00.000Z). Date-only (date) fields serialize as M-DD-YYYY: month without a leading zero, day with one, four-digit year (for example 9-22-2026 for 22 September 2026, 3-04-2026 for 4 March 2026). This is not ISO 8601; parse it with that exact pattern.

expand=integration_mappings includes conference connector mappings (EventIntegrationMapping[]) from Integration_Event_Mapping_Union (Cvent, Grip, Swoogo, Swapcard, ASP, Stova, Bizzabo, Gleanin, ExpoPlatform, ON24). source is the union key (underscores, e.g. expo_platform). LiveBuzz / apps-engine campaign IDs are not included in this expand.

Repeat the query param or comma-separate values: ?expand=custom_fields&expand=integration_mappings

Request example

Terminal window
curl --request GET \
--url 'https://public-api.sessionboard.com/v1/events' \
--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.

Query 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.

Query parameters

  • pageintegerquery

    Page number for pagination.

    Default
    1
    Minimum
    1
    Maximum
    999
  • pageSizeintegerquery

    Number of results per page.

    The event-settings list endpoints (tags, tracks, levels, formats, rooms, languages, statuses) also accept the older spelling page_size, and used to accept only that — a request sending pageSize silently got the default 25. Both now work, pageSize wins when both are sent, and on these endpoints a value outside 1–100 is clamped rather than rejected. Everywhere else pageSize is the only spelling.

    Default
    25
    Minimum
    1
    Maximum
    100
  • expandstring[]query

    Extra collections on each event in GET /v1/events. Not the same enum as session Expand (translated_fields, composition, …).

    Repeat the parameter (?expand=custom_fields&expand=integration_mappings) or comma-separate (?expand=custom_fields,integration_mappings).

    • custom_fields — org-defined Event custom field values. Omitted from the payload when this expand is not requested. Present as [] when requested and the event has no values.
    • integration_mappings — { name, source, external_event_id } rows from conference Integration_*_Event_Mappings (via the union view). source uses underscores (expo_platform, not expo-platform). LiveBuzz / apps-engine campaign IDs are not included.
    Allowed values
    "custom_fields", "integration_mappings"

Responses

200application/json

OK

  • resultsEvent[]
    Show child attributes
    • idinteger
    • namestring
    • timezonestring
    • starts_atstring<date-time> | null
    • ends_atstring<date-time> | null
    • featuresobject
      Show child attributes
      • primary_speakersboolean
      • speaker_acceptanceboolean
      • translated_fieldsboolean
    • custom_fieldsCustomFieldValue[]

      Present only when expand=custom_fields is passed to GET /v1/events. Empty array when the event has no values.

      Show child attributes
      • idstring
      • namestring
      • valuestring | boolean | null

        The formatted field value, or null when the field is empty. Numeric field types (number, currency, percent, quantity, formula) serialize a stored zero as its formatted value (for example "0") — null means the field has no value, not that the value is zero.

        checkbox fields serialize as the strings "Yes" (checked) and "No" (explicitly unchecked); a checkbox that was never set is null. Writes take boolean true / false.

        datetime fields serialize as ISO 8601. On event custom fields (GET /v1/events?expand=custom_fields) the value is event-local time with the event's UTC offset (for example 2026-08-15T09:00:00-03:00), falling back to the raw UTC instant (2026-08-15T12:00:00.000Z) when the event has no valid timezone. On session, speaker, sponsor, and exhibitor custom fields the value is the raw UTC instant.

        date (date-only) fields serialize as M-DD-YYYY: month without a leading zero, day with one, four-digit year (for example 9-22-2026 for 22 September 2026, 3-04-2026 for 4 March 2026). This is not ISO 8601; parse it with that exact pattern.

      • typestring
      • internal_namestring
      • created_atstring
    • integration_mappingsEventIntegrationMapping[]

      Present only when expand=integration_mappings is passed to GET /v1/events. Conference connector event IDs only — LiveBuzz / apps-engine campaign IDs are not included. Empty array when none are mapped.

      Show child attributes
      • namestring

        Display name (for example Cvent, Grip).

      • sourcestring

        Integration key from Integration_Event_Mapping_Union (table name minus Integration_ / _Event_Mappings, lowercased). Multi-word vendors use underscores, e.g. expo_platform.

      • external_event_idstring

        Vendor event id, always a string.

  • paginationPagination

    Pagination metadata returned with POST search responses. The event-settings GET lists return the same numbers under snake_case keys — see ListPagination.

    Show child attributes
    • currentPageinteger
    • pageSizeinteger
    • totalPagesinteger
    • totalResultsinteger

401

Unauthorized

Response examples

{
"results": [
{
"id": 3960,
"name": "Acme Conference",
"timezone": "America/Chicago",
"starts_at": "2026-10-05T13:00:00.000Z",
"ends_at": "2026-10-07T22:00:00.000Z",
"features": {
"primary_speakers": true,
"speaker_acceptance": false,
"translated_fields": false
}
}
],
"pagination": {
"currentPage": 1,
"pageSize": 25,
"totalPages": 4,
"totalResults": 97
}
}

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.