Update a session
US Region: https://public-api.sessionboard.com · EU Region: https://public-api-eu.sessionboard.com
Update an existing session. Requires the write:sessions scope. Send updated_at from the last-fetched session for optimistic concurrency control.
Request example
curl --request PUT \ --url 'https://public-api.sessionboard.com/v1/event/{eventId}/sessions/{sessionId}' \ --header 'x-access-token: <api-token>' \ --header 'Content-Type: application/json' \ --data '{ "updated_at": "2026-01-15T09:30:00Z", "title": "<string>", "description": "<string>", "starts_at": "2026-01-15T09:30:00Z", "ends_at": "2026-01-15T09:30:00Z", "capacity": 123, "room_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a", "track_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a", "status": "<string>", "tag_ids": [ "3c90c3cc-0d44-4b50-8888-8dd25736052a" ], "is_public": true, "custom_fields": {}, "translated_fields": [ { "parent_field_internal_name": "<string>", "translated_language": "<string>", "value": null } ]}'const response = await fetch('https://public-api.sessionboard.com/v1/event/{eventId}/sessions/{sessionId}', { method: 'PUT', headers: { "x-access-token": "<api-token>", "Content-Type": "application/json" }, body: JSON.stringify({ "updated_at": "2026-01-15T09:30:00Z", "title": "<string>", "description": "<string>", "starts_at": "2026-01-15T09:30:00Z", "ends_at": "2026-01-15T09:30:00Z", "capacity": 123, "room_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a", "track_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a", "status": "<string>", "tag_ids": [ "3c90c3cc-0d44-4b50-8888-8dd25736052a" ], "is_public": true, "custom_fields": {}, "translated_fields": [ { "parent_field_internal_name": "<string>", "translated_language": "<string>", "value": null } ] }),});
const data = await response.json();console.log(data);import requests
response = requests.request( "PUT", "https://public-api.sessionboard.com/v1/event/{eventId}/sessions/{sessionId}", headers={ "x-access-token": "<api-token>", "Content-Type": "application/json" }, json={ "updated_at": "2026-01-15T09:30:00Z", "title": "<string>", "description": "<string>", "starts_at": "2026-01-15T09:30:00Z", "ends_at": "2026-01-15T09:30:00Z", "capacity": 123, "room_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a", "track_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a", "status": "<string>", "tag_ids": [ "3c90c3cc-0d44-4b50-8888-8dd25736052a" ], "is_public": True, "custom_fields": {}, "translated_fields": [ { "parent_field_internal_name": "<string>", "translated_language": "<string>", "value": None } ] },)
print(response.json())<?php
$curl = curl_init();
curl_setopt_array($curl, [ CURLOPT_URL => "https://public-api.sessionboard.com/v1/event/{eventId}/sessions/{sessionId}", CURLOPT_RETURNTRANSFER => true, CURLOPT_CUSTOMREQUEST => "PUT", CURLOPT_POSTFIELDS => '{ "updated_at": "2026-01-15T09:30:00Z", "title": "<string>", "description": "<string>", "starts_at": "2026-01-15T09:30:00Z", "ends_at": "2026-01-15T09:30:00Z", "capacity": 123, "room_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a", "track_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a", "status": "<string>", "tag_ids": [ "3c90c3cc-0d44-4b50-8888-8dd25736052a" ], "is_public": true, "custom_fields": {}, "translated_fields": [ { "parent_field_internal_name": "<string>", "translated_language": "<string>", "value": null } ]}', CURLOPT_HTTPHEADER => [ "x-access-token: <api-token>", "Content-Type: application/json", ],]);
$response = curl_exec($curl);curl_close($curl);
echo $response;package main
import ( "fmt" "io" "net/http" "strings")
func main() { req, _ := http.NewRequest("PUT", "https://public-api.sessionboard.com/v1/event/{eventId}/sessions/{sessionId}", strings.NewReader(`{ "updated_at": "2026-01-15T09:30:00Z", "title": "<string>", "description": "<string>", "starts_at": "2026-01-15T09:30:00Z", "ends_at": "2026-01-15T09:30:00Z", "capacity": 123, "room_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a", "track_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a", "status": "<string>", "tag_ids": [ "3c90c3cc-0d44-4b50-8888-8dd25736052a" ], "is_public": true, "custom_fields": {}, "translated_fields": [ { "parent_field_internal_name": "<string>", "translated_language": "<string>", "value": null } ]}`)) req.Header.Add("x-access-token", "<api-token>") req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))}HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("https://public-api.sessionboard.com/v1/event/{eventId}/sessions/{sessionId}")) .header("x-access-token", "<api-token>") .header("Content-Type", "application/json") .method("PUT", HttpRequest.BodyPublishers.ofString("{\n \"updated_at\": \"2026-01-15T09:30:00Z\",\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"starts_at\": \"2026-01-15T09:30:00Z\",\n \"ends_at\": \"2026-01-15T09:30:00Z\",\n \"capacity\": 123,\n \"room_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"track_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"status\": \"<string>\",\n \"tag_ids\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"is_public\": true,\n \"custom_fields\": {},\n \"translated_fields\": [\n {\n \"parent_field_internal_name\": \"<string>\",\n \"translated_language\": \"<string>\",\n \"value\": null\n }\n ]\n}")) .build();
HttpResponse<String> response = HttpClient.newHttpClient() .send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());Try it
Response headers
Authorizations
x-access-tokenstringheaderOrganization API token. Generate from Organization Settings → API Tokens.
AuthorizationBearer <token>headerorOAuth 2.1 access token. Obtained via the OAuth PKCE flow at
/oauth/token.
Send one of these. See Authentication.
Path parameters
eventIdintegerpathrequiredThe event ID.
sessionIdstring<uuid>pathrequiredThe session ID.
Request body
updated_atstring<date-time>Required for optimistic concurrency control. Send the
updated_atvalue from the last-fetched session.titlestringdescriptionstringstarts_atstring<date-time>ends_atstring<date-time>capacityintegerroom_idstring<uuid>track_idstring<uuid>statusstringtag_idsstring<uuid>[]is_publicbooleancustom_fieldsobjectCustom field values keyed by field internal name.
For
number,currency, andpercentfields, an empty string ("") clears the stored value — identical to sendingnull.0and"0"store an actual zero.For
checkboxfields, send booleantrueorfalse. On read, a checked box serializes as the string"Yes", an explicitly unchecked one as"No", and a box that was never set asnull.Fields owned by an integration (for example
swoogo_session_id,cvent_session_id,visit_session_id) are hydrated by the connector and reject writes with400FIELD_READ_ONLY, naming the field indetails.field. Omit them fromcustom_fields.translated_fieldsTranslatedFieldWrite[]Language variants to write using the same shape returned on reads. Omit this key on update to leave existing translations unchanged.
Show child attributes
parent_field_internal_namestringrequiredtranslated_languagestringrequiredLocale code for the language variant (for example
frorar). Must be enabled on the event; otherwise the request fails with400.valueanyValue for that locale. Same type as the parent field.
{ "updated_at": "2026-01-15T09:30:00Z", "title": "<string>", "description": "<string>", "starts_at": "2026-01-15T09:30:00Z", "ends_at": "2026-01-15T09:30:00Z", "capacity": 123, "room_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a", "track_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a", "status": "<string>", "tag_ids": [ "3c90c3cc-0d44-4b50-8888-8dd25736052a" ], "is_public": true, "custom_fields": {}, "translated_fields": [ { "parent_field_internal_name": "<string>", "translated_language": "<string>", "value": null } ]}Responses
200application/json
Session updated
A session within an event (e.g., talk, workshop, panel, or CFP abstract submission).
idstring<uuid>friendly_idstringfriendly_id_rawintegertitlestringdescriptionstringstatusstring- Allowed values
"accepted", "accept_queue", "pending", "decline_queue", "declined"
custom_status_idstringcustom_statusobjectShow child attributes
idstringnamestring
starts_atstring<date-time>ends_atstring<date-time>is_publicbooleanis_abstractbooleanTrue for CFP abstract submissions; false for program sessions.
composition_statusCompositionStatusSummary of how this session participates in a composition (merge or link). Always present on session responses.
Show child attributes
rolestringstandalone— normal editable recordtarget— composite parent with one or more linked sourcessource— linked into another record (still editable)
- Allowed values
"standalone", "target", "source"
is_linkedbooleanis_read_onlybooleanAlways
false. Linked sources stay editable; the key is kept for compatibility.- Allowed values
false
source_countintegerNumber of records merged or linked into this session.
targetobject | nullPresent when
roleissource.Show child attributes
idstring<uuid>friendly_idstringtitlestringis_abstractboolean
compositionCompositionDetailPresent when
expand=compositionis requested.Show child attributes
targetobject | nullSummary of a related session in a composition relationship.
Show child attributes
idstring<uuid>friendly_idstringtitlestringis_abstractboolean
sourcesCompositionSource[]Show child attributes
composition_idstring<uuid>relationship_typestring- Allowed values
"merged_session", "merged_abstract", "composed_into_session"
created_atstring<date-time>idstring<uuid>friendly_idstringtitlestringis_abstractboolean
external_urlstring<uri>client_session_idstringcreated_atstring<date-time>updated_atstring<date-time>ceu_creditsnumber<float>capacityintegercustom_fieldsCustomFieldValue[]Show child attributes
idstringnamestringvaluestring | boolean | nullThe formatted field value, or
nullwhen the field is empty. Numeric field types (number,currency,percent,quantity,formula) serialize a stored zero as its formatted value (for example"0") —nullmeans the field has no value, not that the value is zero.checkboxfields serialize as the strings"Yes"(checked) and"No"(explicitly unchecked); a checkbox that was never set isnull. Writes take booleantrue/false.datetimefields 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 example2026-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 asM-DD-YYYY: month without a leading zero, day with one, four-digit year (for example9-22-2026for 22 September 2026,3-04-2026for 4 March 2026). This is not ISO 8601; parse it with that exact pattern.typestringinternal_namestringcreated_atstring
translated_fieldsTranslatedField[]Show child attributes
idstringnamestringtypestringparent_field_idstringparent_field_sourcestringparent_field_namestringparent_field_internal_namestringtranslated_languagestringvaluestring
speakersSessionSpeaker[]Legacy junction-table speakers (
Session_Speakers). Retained for backwards compatibility. Each entry includesparticipant_rolewhen the event has Sessions 2.0 roles configured. Preferparticipantsfor new integrations that need custom program roles or a single flat participant list.Show child attributes
idstringparticipant_roleParticipantRoleThe event's configured program role for this participant (Sessions 2.0).
nameandslugreflect the configuredSession_Rolesrecord (for example Author, Panelist).core_roleis the legacy junction category mapping only (speaker,chairperson,moderator) and must not be used as the display role label. Present on legacyspeakers,chairpersons, andmoderatorsentries when the event hasSession_Rolesconfigured.Show child attributes
idstring<uuid>Session_Roles.id
slugstringStable programmatic identifier for the role within the event.
namestringDisplay name (singular).
name_pluralstringDisplay name (plural).
core_rolestringLegacy junction category this role maps to for integrations.
- Allowed values
"speaker", "chairperson", "moderator"
session_affiliationSessionAffiliationThe person's company and job title for this session only, set by an organizer on the session's participant list. A
nullvalue means this session uses the contact's owncompany_name/title, so the value to display issession_affiliation.company ?? company_nameandsession_affiliation.job_title ?? title. Both keys are always present.Show child attributes
companystring | nullrequiredCompany for this session, or
nullto use the contact's.job_titlestring | nullrequiredJob title for this session, or
nullto use the contact's.
friendly_idstringfull_namestringfirst_namestringlast_namestringemailstringcreated_atstringupdated_atstringphoto_urlstringURL of the contact's headshot. Images larger than 2 MB are delivered resized from this URL, scaled to fit within 2400 x 2400 pixels (a PNG may arrive as WebP for clients that accept it). The uploaded file is stored unchanged; for full-resolution originals use the bulk download tools in Sessionboard, such as Download Headshots (Contacts, More menu).
company_namestringtitlestringaboutstringphone_homestringphone_mobilestringaddress_line_1stringaddress_line_2stringaddress_citystringaddress_statestringaddress_postal_codestringaddress_countrystringwebsite_urlstringlinkedin_urlstringtwitter_urlstringfacebook_urlstringinstagram_urlstringsnapchat_usernamestringtiktok_usernamestringtranslated_fieldsTranslatedField[]Show child attributes
idstringnamestringtypestringparent_field_idstringparent_field_sourcestringparent_field_namestringparent_field_internal_namestringtranslated_languagestringvaluestring
custom_fieldsCustomFieldValue[]Show child attributes
idstringnamestringvaluestring | boolean | nullThe formatted field value, or
nullwhen the field is empty. Numeric field types (number,currency,percent,quantity,formula) serialize a stored zero as its formatted value (for example"0") —nullmeans the field has no value, not that the value is zero.checkboxfields serialize as the strings"Yes"(checked) and"No"(explicitly unchecked); a checkbox that was never set isnull. Writes take booleantrue/false.datetimefields 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 example2026-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 asM-DD-YYYY: month without a leading zero, day with one, four-digit year (for example9-22-2026for 22 September 2026,3-04-2026for 4 March 2026). This is not ISO 8601; parse it with that exact pattern.typestringinternal_namestringcreated_atstring
chairpersonsSessionSpeaker[]Legacy junction-table chairpersons (
Session_Chairpersons). Seespeakersfor migration guidance.Show child attributes
idstringparticipant_roleParticipantRoleThe event's configured program role for this participant (Sessions 2.0).
nameandslugreflect the configuredSession_Rolesrecord (for example Author, Panelist).core_roleis the legacy junction category mapping only (speaker,chairperson,moderator) and must not be used as the display role label. Present on legacyspeakers,chairpersons, andmoderatorsentries when the event hasSession_Rolesconfigured.Show child attributes
idstring<uuid>Session_Roles.id
slugstringStable programmatic identifier for the role within the event.
namestringDisplay name (singular).
name_pluralstringDisplay name (plural).
core_rolestringLegacy junction category this role maps to for integrations.
- Allowed values
"speaker", "chairperson", "moderator"
session_affiliationSessionAffiliationThe person's company and job title for this session only, set by an organizer on the session's participant list. A
nullvalue means this session uses the contact's owncompany_name/title, so the value to display issession_affiliation.company ?? company_nameandsession_affiliation.job_title ?? title. Both keys are always present.Show child attributes
companystring | nullrequiredCompany for this session, or
nullto use the contact's.job_titlestring | nullrequiredJob title for this session, or
nullto use the contact's.
friendly_idstringfull_namestringfirst_namestringlast_namestringemailstringcreated_atstringupdated_atstringphoto_urlstringURL of the contact's headshot. Images larger than 2 MB are delivered resized from this URL, scaled to fit within 2400 x 2400 pixels (a PNG may arrive as WebP for clients that accept it). The uploaded file is stored unchanged; for full-resolution originals use the bulk download tools in Sessionboard, such as Download Headshots (Contacts, More menu).
company_namestringtitlestringaboutstringphone_homestringphone_mobilestringaddress_line_1stringaddress_line_2stringaddress_citystringaddress_statestringaddress_postal_codestringaddress_countrystringwebsite_urlstringlinkedin_urlstringtwitter_urlstringfacebook_urlstringinstagram_urlstringsnapchat_usernamestringtiktok_usernamestringtranslated_fieldsTranslatedField[]Show child attributes
idstringnamestringtypestringparent_field_idstringparent_field_sourcestringparent_field_namestringparent_field_internal_namestringtranslated_languagestringvaluestring
custom_fieldsCustomFieldValue[]Show child attributes
idstringnamestringvaluestring | boolean | nullThe formatted field value, or
nullwhen the field is empty. Numeric field types (number,currency,percent,quantity,formula) serialize a stored zero as its formatted value (for example"0") —nullmeans the field has no value, not that the value is zero.checkboxfields serialize as the strings"Yes"(checked) and"No"(explicitly unchecked); a checkbox that was never set isnull. Writes take booleantrue/false.datetimefields 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 example2026-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 asM-DD-YYYY: month without a leading zero, day with one, four-digit year (for example9-22-2026for 22 September 2026,3-04-2026for 4 March 2026). This is not ISO 8601; parse it with that exact pattern.typestringinternal_namestringcreated_atstring
moderatorsSessionSpeaker[]Legacy junction-table moderators (
Session_Moderators). Seespeakersfor migration guidance.Show child attributes
idstringparticipant_roleParticipantRoleThe event's configured program role for this participant (Sessions 2.0).
nameandslugreflect the configuredSession_Rolesrecord (for example Author, Panelist).core_roleis the legacy junction category mapping only (speaker,chairperson,moderator) and must not be used as the display role label. Present on legacyspeakers,chairpersons, andmoderatorsentries when the event hasSession_Rolesconfigured.Show child attributes
idstring<uuid>Session_Roles.id
slugstringStable programmatic identifier for the role within the event.
namestringDisplay name (singular).
name_pluralstringDisplay name (plural).
core_rolestringLegacy junction category this role maps to for integrations.
- Allowed values
"speaker", "chairperson", "moderator"
session_affiliationSessionAffiliationThe person's company and job title for this session only, set by an organizer on the session's participant list. A
nullvalue means this session uses the contact's owncompany_name/title, so the value to display issession_affiliation.company ?? company_nameandsession_affiliation.job_title ?? title. Both keys are always present.Show child attributes
companystring | nullrequiredCompany for this session, or
nullto use the contact's.job_titlestring | nullrequiredJob title for this session, or
nullto use the contact's.
friendly_idstringfull_namestringfirst_namestringlast_namestringemailstringcreated_atstringupdated_atstringphoto_urlstringURL of the contact's headshot. Images larger than 2 MB are delivered resized from this URL, scaled to fit within 2400 x 2400 pixels (a PNG may arrive as WebP for clients that accept it). The uploaded file is stored unchanged; for full-resolution originals use the bulk download tools in Sessionboard, such as Download Headshots (Contacts, More menu).
company_namestringtitlestringaboutstringphone_homestringphone_mobilestringaddress_line_1stringaddress_line_2stringaddress_citystringaddress_statestringaddress_postal_codestringaddress_countrystringwebsite_urlstringlinkedin_urlstringtwitter_urlstringfacebook_urlstringinstagram_urlstringsnapchat_usernamestringtiktok_usernamestringtranslated_fieldsTranslatedField[]Show child attributes
idstringnamestringtypestringparent_field_idstringparent_field_sourcestringparent_field_namestringparent_field_internal_namestringtranslated_languagestringvaluestring
custom_fieldsCustomFieldValue[]Show child attributes
idstringnamestringvaluestring | boolean | nullThe formatted field value, or
nullwhen the field is empty. Numeric field types (number,currency,percent,quantity,formula) serialize a stored zero as its formatted value (for example"0") —nullmeans the field has no value, not that the value is zero.checkboxfields serialize as the strings"Yes"(checked) and"No"(explicitly unchecked); a checkbox that was never set isnull. Writes take booleantrue/false.datetimefields 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 example2026-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 asM-DD-YYYY: month without a leading zero, day with one, four-digit year (for example9-22-2026for 22 September 2026,3-04-2026for 4 March 2026). This is not ISO 8601; parse it with that exact pattern.typestringinternal_namestringcreated_atstring
participantsSessionParticipant[]Flat list of session participants from the Sessions 2.0 data model (
Session_Participants+Session_Roles). Always returned on session search and get (no expand flag). Includes custom program roles (for example Author, Panelist) in addition to the legacy speaker/chairperson/moderator junction tables. Legacy arrays above remain for backwards compatibility; each legacy entry also includesparticipant_rolewhen event roles are configured. Contact profile fields (photo_url,company_name,title,address_country, etc.) are hydrated from the contact record in the event's default language without requiring expand.Show child attributes
idstringparticipant_roleParticipantRoleThe event's configured program role for this participant (Sessions 2.0).
nameandslugreflect the configuredSession_Rolesrecord (for example Author, Panelist).core_roleis the legacy junction category mapping only (speaker,chairperson,moderator) and must not be used as the display role label. Present on legacyspeakers,chairpersons, andmoderatorsentries when the event hasSession_Rolesconfigured.Show child attributes
idstring<uuid>Session_Roles.id
slugstringStable programmatic identifier for the role within the event.
namestringDisplay name (singular).
name_pluralstringDisplay name (plural).
core_rolestringLegacy junction category this role maps to for integrations.
- Allowed values
"speaker", "chairperson", "moderator"
session_affiliationSessionAffiliationThe person's company and job title for this session only, set by an organizer on the session's participant list. A
nullvalue means this session uses the contact's owncompany_name/title, so the value to display issession_affiliation.company ?? company_nameandsession_affiliation.job_title ?? title. Both keys are always present.Show child attributes
companystring | nullrequiredCompany for this session, or
nullto use the contact's.job_titlestring | nullrequiredJob title for this session, or
nullto use the contact's.
friendly_idstringfull_namestringfirst_namestringlast_namestringemailstringcreated_atstringupdated_atstringphoto_urlstringURL of the contact's headshot. Images larger than 2 MB are delivered resized from this URL, scaled to fit within 2400 x 2400 pixels (a PNG may arrive as WebP for clients that accept it). The uploaded file is stored unchanged; for full-resolution originals use the bulk download tools in Sessionboard, such as Download Headshots (Contacts, More menu).
company_namestringtitlestringaboutstringphone_homestringphone_mobilestringaddress_line_1stringaddress_line_2stringaddress_citystringaddress_statestringaddress_postal_codestringaddress_countrystringwebsite_urlstringlinkedin_urlstringtwitter_urlstringfacebook_urlstringinstagram_urlstringsnapchat_usernamestringtiktok_usernamestringtranslated_fieldsTranslatedField[]Show child attributes
idstringnamestringtypestringparent_field_idstringparent_field_sourcestringparent_field_namestringparent_field_internal_namestringtranslated_languagestringvaluestring
custom_fieldsCustomFieldValue[]Show child attributes
idstringnamestringvaluestring | boolean | nullThe formatted field value, or
nullwhen the field is empty. Numeric field types (number,currency,percent,quantity,formula) serialize a stored zero as its formatted value (for example"0") —nullmeans the field has no value, not that the value is zero.checkboxfields serialize as the strings"Yes"(checked) and"No"(explicitly unchecked); a checkbox that was never set isnull. Writes take booleantrue/false.datetimefields 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 example2026-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 asM-DD-YYYY: month without a leading zero, day with one, four-digit year (for example9-22-2026for 22 September 2026,3-04-2026for 4 March 2026). This is not ISO 8601; parse it with that exact pattern.typestringinternal_namestringcreated_atstring
session_participant_idstring<uuid>Primary key of the
Session_Participantsrow.acceptance_statusstringThe participant's answer to their acceptance invitation. Present only when the event has Participant Acceptance turned on (
features.speaker_acceptance).- Allowed values
"pending", "accepted", "declined", "not_accepted"
acceptance_invite_sent_atstring<date-time> | nullWhen the acceptance invitation for this role was last sent, or
nullif it has not been sent. Present only when the event has Participant Acceptance turned on.
sponsorsSessionSponsor[]Show child attributes
idstringfriendly_idstringfriendly_id_rawintegernamestringdescriptionstringlogo_image_urlstringbanner_image_urlstringphonestringaddress_line_1stringaddress_line_2stringaddress_citystringaddress_statestringaddress_postal_codestringaddress_coutnrystringfacebook_urlstringinstagram_urlstringlinkedin_urlstringsnapchat_usernamestringtiktok_usernamestringtwitter_urlstringwebsite_urlstringcreated_atstringupdated_atstringcustom_fieldsCustomFieldValue[]Show child attributes
idstringnamestringvaluestring | boolean | nullThe formatted field value, or
nullwhen the field is empty. Numeric field types (number,currency,percent,quantity,formula) serialize a stored zero as its formatted value (for example"0") —nullmeans the field has no value, not that the value is zero.checkboxfields serialize as the strings"Yes"(checked) and"No"(explicitly unchecked); a checkbox that was never set isnull. Writes take booleantrue/false.datetimefields 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 example2026-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 asM-DD-YYYY: month without a leading zero, day with one, four-digit year (for example9-22-2026for 22 September 2026,3-04-2026for 4 March 2026). This is not ISO 8601; parse it with that exact pattern.typestringinternal_namestringcreated_atstring
translated_fieldsTranslatedField[]Show child attributes
idstringnamestringtypestringparent_field_idstringparent_field_sourcestringparent_field_namestringparent_field_internal_namestringtranslated_languagestringvaluestring
contactsAccountContact[]Show child attributes
idstringfriendly_idstringfriendly_id_rawintegerfull_namestringfirst_namestringlast_namestringemailstringphoto_urlstringURL of the contact's headshot. Images larger than 2 MB are delivered resized from this URL, scaled to fit within 2400 x 2400 pixels (a PNG may arrive as WebP for clients that accept it). The uploaded file is stored unchanged; for full-resolution originals use the bulk download tools in Sessionboard, such as Download Headshots (Contacts, More menu).
company_namestringtitlestringaboutstringis_primarybooleancontact_created_atstringcontact_updated_atstringrelationship_created_atstringrelationship_updated_atstring
exhibitorsSessionExhibitor[]Show child attributes
idstringfriendly_idstringfriendly_id_rawintegernamestringdescriptionstringlogo_image_urlstringbanner_image_urlstringphonestringaddress_line_1stringaddress_line_2stringaddress_citystringaddress_statestringaddress_postal_codestringaddress_coutnrystringfacebook_urlstringinstagram_urlstringlinkedin_urlstringsnapchat_usernamestringtiktok_usernamestringtwitter_urlstringwebsite_urlstringcreated_atstringupdated_atstringcustom_fieldsCustomFieldValue[]Show child attributes
idstringnamestringvaluestring | boolean | nullThe formatted field value, or
nullwhen the field is empty. Numeric field types (number,currency,percent,quantity,formula) serialize a stored zero as its formatted value (for example"0") —nullmeans the field has no value, not that the value is zero.checkboxfields serialize as the strings"Yes"(checked) and"No"(explicitly unchecked); a checkbox that was never set isnull. Writes take booleantrue/false.datetimefields 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 example2026-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 asM-DD-YYYY: month without a leading zero, day with one, four-digit year (for example9-22-2026for 22 September 2026,3-04-2026for 4 March 2026). This is not ISO 8601; parse it with that exact pattern.typestringinternal_namestringcreated_atstring
translated_fieldsTranslatedField[]Show child attributes
idstringnamestringtypestringparent_field_idstringparent_field_sourcestringparent_field_namestringparent_field_internal_namestringtranslated_languagestringvaluestring
contactsAccountContact[]Show child attributes
idstringfriendly_idstringfriendly_id_rawintegerfull_namestringfirst_namestringlast_namestringemailstringphoto_urlstringURL of the contact's headshot. Images larger than 2 MB are delivered resized from this URL, scaled to fit within 2400 x 2400 pixels (a PNG may arrive as WebP for clients that accept it). The uploaded file is stored unchanged; for full-resolution originals use the bulk download tools in Sessionboard, such as Download Headshots (Contacts, More menu).
company_namestringtitlestringaboutstringis_primarybooleancontact_created_atstringcontact_updated_atstringrelationship_created_atstringrelationship_updated_atstring
contentContent[]Show child attributes
idstring<uuid>urlstring<uri> | nullDownload URL.
nullwhile Approvals holds the file back (seeapproval_status), so nothing built on the API can publish it early.titlestringfilenamestringsizeintegermimetypestringtypestring | nullOrganizer-facing file type, e.g.
presentation,handout,poster, orholding_slidefor slides generated by Sessionboard. Filterable with?type=on the list endpoint.- Example
"holding_slide"
labelstring | nullDisplay label shown on the session's Files tab, e.g.
Holding Slide.- Example
"Holding Slide"
created_atstring<date-time>updated_atstring<date-time>assigned_participant_idstring<uuid> | nullContact UUID of the session participant this file is assigned to.
assigned_participant_emailstring<email> | nullassigned_participant_namestring | nullcontent_slot_idstring<uuid> | nullThe upload slot this file answers — see
GET /v1/event/{eventId}/content-slots. Present only while the event uses upload slots;nullfor events on a single file request, and for files uploaded before slots existed or outside any slot.approval_statusstringApproval state, returned by the Session Files endpoints.
not_required: not under an approval workflow (no workflow, workflow off, or uploaded before it was turned on).pending: waiting on a reviewer.approved: approved and released.denied: sent back to the uploader for changes.superseded: a newer version replaced it before it was decided.embargoed: approved (or not required) but held until a release time; seeembargo_until.
Only
approvedandnot_requiredfiles have aurl.- Allowed values
"not_required", "pending", "approved", "denied", "superseded", "embargoed"- Example
"approved"
embargo_untilstring<date-time> | nullWhen an
embargoedfile is released (UTC).nullwhen it is not embargoed, or when it waits for its session to be scheduled (release "when each file's session starts").
tagsTag[]Show child attributes
idstring<uuid>typestring- Allowed values
"tag"
namestringcolorstring | nullorderinteger | nullcreated_atstringupdated_atstring
languageobjectAssigned session language. Includes
id,event_id,name,order,created_at, andupdated_atwhen set. Unassigned values are an empty object{}onPOSTsession search responses andnullon CRUD proxy responses (GETlist, create, update, restore).Show child attributes
idstring<uuid>event_idintegernamestringorderintegercreated_atstringupdated_atstring
trackobjectAssigned session track. Includes
id,event_id,name,color,order,created_at, andupdated_atwhen set. Unassigned values are{}onPOSTsession search andnullon CRUD proxy responses.Show child attributes
idstring<uuid>event_idintegernamestringcolorstringorderintegercreated_atstringupdated_atstring
levelobjectAssigned session level. Includes
id,name,order,created_at, andupdated_atwhen set (noevent_idon nested objects). Unassigned values are{}onPOSTsession search andnullon CRUD proxy responses.Show child attributes
idstring<uuid>namestringorderintegercreated_atstringupdated_atstring
formatobjectAssigned session format. Nested session objects include only
idandname(not the full standaloneFormatschema).Show child attributes
idstringnamestring
roomobjectAssigned room when
locationisroom. Includesid,name,order,capacity,created_at, andupdated_atwhen set. Omitted when location isexternalor unset ({}onPOSTsearch,nullon CRUD proxy).event_idis not included on nested room objects.Show child attributes
idstring<uuid>namestringorderintegercapacityinteger | nullMaximum room capacity. Returned on nested session
roomobjects and standalone room list/search endpoints.created_atstringupdated_atstring
subsessionsSubsession | SubsessionDetailed[]Subsessions of this parent session. Each item defaults to the minimal
Subsessionshape; passexpand=subsession_detailsto receive the fullSubsessionDetailedshape on every subsession in the array. Composition fields (is_abstract,composition_status, optionalcomposition) are inherited from the parent session.Items are returned in the order set by the event admin (
subsession_order), falling back to subsession number and then start time for subsessions that have never been reordered.Option 1 (Subsession)
A subsession nested within a parent session. This is the default minimal shape returned inside
parent.subsessions[]when thesubsession_detailsexpand value is not requested.To receive the full parent-shape parity (
status,custom_status,custom_fields,chairpersons,moderators,sponsors,exhibitors,tags,language,track,level,room, etc.), passexpand=subsession_detailson the GET or POST search request. See theSubsessionDetailedschema.is_abstract,composition_status, and optionalcomposition(whenexpand=composition) are inherited from the parent session.Alternatively, call
GET /v1/event/{eventId}/sessions/{sessionId}with the subsession's UUID directly — the endpoint always returns the full session shape at the top level.idstring<uuid>friendly_idstringHuman-readable id formatted as
<event-prefix>-<parent-friendly-id>-<subsession-number>(or<event-prefix>-<subsession-friendly-id>when the event hasshow_subsession_friendly_idenabled).friendly_id_rawintegerUnderlying numeric friendly id (the suffix of
friendly_id).parent_session_friendly_idstringHuman-readable friendly id of the parent session, e.g.
SESS-3370.parent_session_friendly_id_rawintegerNumeric friendly id of the parent session.
subsession_orderinteger | nullAdmin-defined position among the parent session's subsessions; subsessions are returned in this order, falling back to subsession number and start time.
nullwhen the parent's subsessions have never been reordered.titlestringdescriptionstringstarts_atstring<date-time>ends_atstring<date-time>created_atstring<date-time>updated_atstring<date-time>translated_fieldsobject[]Present only when
expand=translated_fieldsis set and the event has language variants configured.speakersSessionSpeaker[]Show child attributes
idstringparticipant_roleParticipantRoleThe event's configured program role for this participant (Sessions 2.0).
nameandslugreflect the configuredSession_Rolesrecord (for example Author, Panelist).core_roleis the legacy junction category mapping only (speaker,chairperson,moderator) and must not be used as the display role label. Present on legacyspeakers,chairpersons, andmoderatorsentries when the event hasSession_Rolesconfigured.Show child attributes
idstring<uuid>Session_Roles.id
slugstringStable programmatic identifier for the role within the event.
namestringDisplay name (singular).
name_pluralstringDisplay name (plural).
core_rolestringLegacy junction category this role maps to for integrations.
- Allowed values
"speaker", "chairperson", "moderator"
session_affiliationSessionAffiliationThe person's company and job title for this session only, set by an organizer on the session's participant list. A
nullvalue means this session uses the contact's owncompany_name/title, so the value to display issession_affiliation.company ?? company_nameandsession_affiliation.job_title ?? title. Both keys are always present.Show child attributes
companystring | nullrequiredCompany for this session, or
nullto use the contact's.job_titlestring | nullrequiredJob title for this session, or
nullto use the contact's.
friendly_idstringfull_namestringfirst_namestringlast_namestringemailstringcreated_atstringupdated_atstringphoto_urlstringURL of the contact's headshot. Images larger than 2 MB are delivered resized from this URL, scaled to fit within 2400 x 2400 pixels (a PNG may arrive as WebP for clients that accept it). The uploaded file is stored unchanged; for full-resolution originals use the bulk download tools in Sessionboard, such as Download Headshots (Contacts, More menu).
company_namestringtitlestringaboutstringphone_homestringphone_mobilestringaddress_line_1stringaddress_line_2stringaddress_citystringaddress_statestringaddress_postal_codestringaddress_countrystringwebsite_urlstringlinkedin_urlstringtwitter_urlstringfacebook_urlstringinstagram_urlstringsnapchat_usernamestringtiktok_usernamestringtranslated_fieldsTranslatedField[]Show child attributes
idstringnamestringtypestringparent_field_idstringparent_field_sourcestringparent_field_namestringparent_field_internal_namestringtranslated_languagestringvaluestring
custom_fieldsCustomFieldValue[]Show child attributes
idstringnamestringvaluestring | boolean | nullThe formatted field value, or
nullwhen the field is empty. Numeric field types (number,currency,percent,quantity,formula) serialize a stored zero as its formatted value (for example"0") —nullmeans the field has no value, not that the value is zero.checkboxfields serialize as the strings"Yes"(checked) and"No"(explicitly unchecked); a checkbox that was never set isnull. Writes take booleantrue/false.datetimefields 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 example2026-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 asM-DD-YYYY: month without a leading zero, day with one, four-digit year (for example9-22-2026for 22 September 2026,3-04-2026for 4 March 2026). This is not ISO 8601; parse it with that exact pattern.typestringinternal_namestringcreated_atstring
participantsSessionParticipant[]Sessions 2.0 participants for this subsession (see
Session.participants).Show child attributes
idstringparticipant_roleParticipantRoleThe event's configured program role for this participant (Sessions 2.0).
nameandslugreflect the configuredSession_Rolesrecord (for example Author, Panelist).core_roleis the legacy junction category mapping only (speaker,chairperson,moderator) and must not be used as the display role label. Present on legacyspeakers,chairpersons, andmoderatorsentries when the event hasSession_Rolesconfigured.Show child attributes
idstring<uuid>Session_Roles.id
slugstringStable programmatic identifier for the role within the event.
namestringDisplay name (singular).
name_pluralstringDisplay name (plural).
core_rolestringLegacy junction category this role maps to for integrations.
- Allowed values
"speaker", "chairperson", "moderator"
session_affiliationSessionAffiliationThe person's company and job title for this session only, set by an organizer on the session's participant list. A
nullvalue means this session uses the contact's owncompany_name/title, so the value to display issession_affiliation.company ?? company_nameandsession_affiliation.job_title ?? title. Both keys are always present.Show child attributes
companystring | nullrequiredCompany for this session, or
nullto use the contact's.job_titlestring | nullrequiredJob title for this session, or
nullto use the contact's.
friendly_idstringfull_namestringfirst_namestringlast_namestringemailstringcreated_atstringupdated_atstringphoto_urlstringURL of the contact's headshot. Images larger than 2 MB are delivered resized from this URL, scaled to fit within 2400 x 2400 pixels (a PNG may arrive as WebP for clients that accept it). The uploaded file is stored unchanged; for full-resolution originals use the bulk download tools in Sessionboard, such as Download Headshots (Contacts, More menu).
company_namestringtitlestringaboutstringphone_homestringphone_mobilestringaddress_line_1stringaddress_line_2stringaddress_citystringaddress_statestringaddress_postal_codestringaddress_countrystringwebsite_urlstringlinkedin_urlstringtwitter_urlstringfacebook_urlstringinstagram_urlstringsnapchat_usernamestringtiktok_usernamestringtranslated_fieldsTranslatedField[]Show child attributes
idstringnamestringtypestringparent_field_idstringparent_field_sourcestringparent_field_namestringparent_field_internal_namestringtranslated_languagestringvaluestring
custom_fieldsCustomFieldValue[]Show child attributes
idstringnamestringvaluestring | boolean | nullThe formatted field value, or
nullwhen the field is empty. Numeric field types (number,currency,percent,quantity,formula) serialize a stored zero as its formatted value (for example"0") —nullmeans the field has no value, not that the value is zero.checkboxfields serialize as the strings"Yes"(checked) and"No"(explicitly unchecked); a checkbox that was never set isnull. Writes take booleantrue/false.datetimefields 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 example2026-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 asM-DD-YYYY: month without a leading zero, day with one, four-digit year (for example9-22-2026for 22 September 2026,3-04-2026for 4 March 2026). This is not ISO 8601; parse it with that exact pattern.typestringinternal_namestringcreated_atstring
session_participant_idstring<uuid>Primary key of the
Session_Participantsrow.acceptance_statusstringThe participant's answer to their acceptance invitation. Present only when the event has Participant Acceptance turned on (
features.speaker_acceptance).- Allowed values
"pending", "accepted", "declined", "not_accepted"
acceptance_invite_sent_atstring<date-time> | nullWhen the acceptance invitation for this role was last sent, or
nullif it has not been sent. Present only when the event has Participant Acceptance turned on.
is_abstractbooleanInherited from the parent session.
composition_statusCompositionStatusSummary of how this session participates in a composition (merge or link). Always present on session responses.
Show child attributes
rolestringstandalone— normal editable recordtarget— composite parent with one or more linked sourcessource— linked into another record (still editable)
- Allowed values
"standalone", "target", "source"
is_linkedbooleanis_read_onlybooleanAlways
false. Linked sources stay editable; the key is kept for compatibility.- Allowed values
false
source_countintegerNumber of records merged or linked into this session.
targetobject | nullPresent when
roleissource.Show child attributes
idstring<uuid>friendly_idstringtitlestringis_abstractboolean
formatobjectShow child attributes
idstringnamestring
contentContent[]Show child attributes
idstring<uuid>urlstring<uri> | nullDownload URL.
nullwhile Approvals holds the file back (seeapproval_status), so nothing built on the API can publish it early.titlestringfilenamestringsizeintegermimetypestringtypestring | nullOrganizer-facing file type, e.g.
presentation,handout,poster, orholding_slidefor slides generated by Sessionboard. Filterable with?type=on the list endpoint.- Example
"holding_slide"
labelstring | nullDisplay label shown on the session's Files tab, e.g.
Holding Slide.- Example
"Holding Slide"
created_atstring<date-time>updated_atstring<date-time>assigned_participant_idstring<uuid> | nullContact UUID of the session participant this file is assigned to.
assigned_participant_emailstring<email> | nullassigned_participant_namestring | nullcontent_slot_idstring<uuid> | nullThe upload slot this file answers — see
GET /v1/event/{eventId}/content-slots. Present only while the event uses upload slots;nullfor events on a single file request, and for files uploaded before slots existed or outside any slot.approval_statusstringApproval state, returned by the Session Files endpoints.
not_required: not under an approval workflow (no workflow, workflow off, or uploaded before it was turned on).pending: waiting on a reviewer.approved: approved and released.denied: sent back to the uploader for changes.superseded: a newer version replaced it before it was decided.embargoed: approved (or not required) but held until a release time; seeembargo_until.
Only
approvedandnot_requiredfiles have aurl.- Allowed values
"not_required", "pending", "approved", "denied", "superseded", "embargoed"- Example
"approved"
embargo_untilstring<date-time> | nullWhen an
embargoedfile is released (UTC).nullwhen it is not embargoed, or when it waits for its session to be scheduled (release "when each file's session starts").
Option 2 (SubsessionDetailed)
Full-parity subsession returned inside
parent.subsessions[]when thesubsession_detailsexpand value is set on the request. The shape mirrorsSession(minus the recursivesubsessionsproperty, since subsessions cannot be nested) and adds the parent-friendly-id fields so callers can iterate the array and then callGET /v1/event/{eventId}/sessions/{sessionId}with each subsession id for the same shape at the top level.is_abstract,composition_status, and optionalcomposition(whenexpand=composition) are inherited from the parent session.idstring<uuid>friendly_idstringfriendly_id_rawintegerparent_session_friendly_idstringparent_session_friendly_id_rawintegersubsession_orderinteger | nullAdmin-defined position among the parent session's subsessions; subsessions are returned in this order, falling back to subsession number and start time.
nullwhen the parent's subsessions have never been reordered.titlestringdescriptionstringstatusstringcustom_status_idstring<uuid> | nullcustom_statusSessionCustomStatusA custom session status definition configured for an event.
Show child attributes
idstringnamestringstatusstringApproval state this custom label maps onto. Stored NOT NULL, so it is always present on a status created through this API.
- Allowed values
"pending", "accepted", "declined", "accept_queue", "decline_queue"
status_namestring | nullcolorstringorderintegeris_custombooleancreated_atstring | nullcreated_by_user_idinteger | nullcreated_by_user_namestring | null
starts_atstring<date-time>ends_atstring<date-time>is_publicbooleanis_abstractbooleanInherited from the parent session.
composition_statusCompositionStatusSummary of how this session participates in a composition (merge or link). Always present on session responses.
Show child attributes
rolestringstandalone— normal editable recordtarget— composite parent with one or more linked sourcessource— linked into another record (still editable)
- Allowed values
"standalone", "target", "source"
is_linkedbooleanis_read_onlybooleanAlways
false. Linked sources stay editable; the key is kept for compatibility.- Allowed values
false
source_countintegerNumber of records merged or linked into this session.
targetobject | nullPresent when
roleissource.Show child attributes
idstring<uuid>friendly_idstringtitlestringis_abstractboolean
external_urlstring | nullclient_session_idstring | nullceu_creditsnumber | nullcapacityinteger | nulltranslated_fieldsobject[]Present only when
expand=translated_fieldsis set and the event has language variants configured.created_atstring<date-time>updated_atstring<date-time>custom_fieldsCustomFieldValue[]Show child attributes
idstringnamestringvaluestring | boolean | nullThe formatted field value, or
nullwhen the field is empty. Numeric field types (number,currency,percent,quantity,formula) serialize a stored zero as its formatted value (for example"0") —nullmeans the field has no value, not that the value is zero.checkboxfields serialize as the strings"Yes"(checked) and"No"(explicitly unchecked); a checkbox that was never set isnull. Writes take booleantrue/false.datetimefields 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 example2026-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 asM-DD-YYYY: month without a leading zero, day with one, four-digit year (for example9-22-2026for 22 September 2026,3-04-2026for 4 March 2026). This is not ISO 8601; parse it with that exact pattern.typestringinternal_namestringcreated_atstring
speakersSessionSpeaker[]Show child attributes
idstringparticipant_roleParticipantRoleThe event's configured program role for this participant (Sessions 2.0).
nameandslugreflect the configuredSession_Rolesrecord (for example Author, Panelist).core_roleis the legacy junction category mapping only (speaker,chairperson,moderator) and must not be used as the display role label. Present on legacyspeakers,chairpersons, andmoderatorsentries when the event hasSession_Rolesconfigured.Show child attributes
idstring<uuid>Session_Roles.id
slugstringStable programmatic identifier for the role within the event.
namestringDisplay name (singular).
name_pluralstringDisplay name (plural).
core_rolestringLegacy junction category this role maps to for integrations.
- Allowed values
"speaker", "chairperson", "moderator"
session_affiliationSessionAffiliationThe person's company and job title for this session only, set by an organizer on the session's participant list. A
nullvalue means this session uses the contact's owncompany_name/title, so the value to display issession_affiliation.company ?? company_nameandsession_affiliation.job_title ?? title. Both keys are always present.Show child attributes
companystring | nullrequiredCompany for this session, or
nullto use the contact's.job_titlestring | nullrequiredJob title for this session, or
nullto use the contact's.
friendly_idstringfull_namestringfirst_namestringlast_namestringemailstringcreated_atstringupdated_atstringphoto_urlstringURL of the contact's headshot. Images larger than 2 MB are delivered resized from this URL, scaled to fit within 2400 x 2400 pixels (a PNG may arrive as WebP for clients that accept it). The uploaded file is stored unchanged; for full-resolution originals use the bulk download tools in Sessionboard, such as Download Headshots (Contacts, More menu).
company_namestringtitlestringaboutstringphone_homestringphone_mobilestringaddress_line_1stringaddress_line_2stringaddress_citystringaddress_statestringaddress_postal_codestringaddress_countrystringwebsite_urlstringlinkedin_urlstringtwitter_urlstringfacebook_urlstringinstagram_urlstringsnapchat_usernamestringtiktok_usernamestringtranslated_fieldsTranslatedField[]Show child attributes
idstringnamestringtypestringparent_field_idstringparent_field_sourcestringparent_field_namestringparent_field_internal_namestringtranslated_languagestringvaluestring
custom_fieldsCustomFieldValue[]Show child attributes
idstringnamestringvaluestring | boolean | nullThe formatted field value, or
nullwhen the field is empty. Numeric field types (number,currency,percent,quantity,formula) serialize a stored zero as its formatted value (for example"0") —nullmeans the field has no value, not that the value is zero.checkboxfields serialize as the strings"Yes"(checked) and"No"(explicitly unchecked); a checkbox that was never set isnull. Writes take booleantrue/false.datetimefields 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 example2026-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 asM-DD-YYYY: month without a leading zero, day with one, four-digit year (for example9-22-2026for 22 September 2026,3-04-2026for 4 March 2026). This is not ISO 8601; parse it with that exact pattern.typestringinternal_namestringcreated_atstring
chairpersonsSessionSpeaker[]Show child attributes
idstringparticipant_roleParticipantRoleThe event's configured program role for this participant (Sessions 2.0).
nameandslugreflect the configuredSession_Rolesrecord (for example Author, Panelist).core_roleis the legacy junction category mapping only (speaker,chairperson,moderator) and must not be used as the display role label. Present on legacyspeakers,chairpersons, andmoderatorsentries when the event hasSession_Rolesconfigured.Show child attributes
idstring<uuid>Session_Roles.id
slugstringStable programmatic identifier for the role within the event.
namestringDisplay name (singular).
name_pluralstringDisplay name (plural).
core_rolestringLegacy junction category this role maps to for integrations.
- Allowed values
"speaker", "chairperson", "moderator"
session_affiliationSessionAffiliationThe person's company and job title for this session only, set by an organizer on the session's participant list. A
nullvalue means this session uses the contact's owncompany_name/title, so the value to display issession_affiliation.company ?? company_nameandsession_affiliation.job_title ?? title. Both keys are always present.Show child attributes
companystring | nullrequiredCompany for this session, or
nullto use the contact's.job_titlestring | nullrequiredJob title for this session, or
nullto use the contact's.
friendly_idstringfull_namestringfirst_namestringlast_namestringemailstringcreated_atstringupdated_atstringphoto_urlstringURL of the contact's headshot. Images larger than 2 MB are delivered resized from this URL, scaled to fit within 2400 x 2400 pixels (a PNG may arrive as WebP for clients that accept it). The uploaded file is stored unchanged; for full-resolution originals use the bulk download tools in Sessionboard, such as Download Headshots (Contacts, More menu).
company_namestringtitlestringaboutstringphone_homestringphone_mobilestringaddress_line_1stringaddress_line_2stringaddress_citystringaddress_statestringaddress_postal_codestringaddress_countrystringwebsite_urlstringlinkedin_urlstringtwitter_urlstringfacebook_urlstringinstagram_urlstringsnapchat_usernamestringtiktok_usernamestringtranslated_fieldsTranslatedField[]Show child attributes
idstringnamestringtypestringparent_field_idstringparent_field_sourcestringparent_field_namestringparent_field_internal_namestringtranslated_languagestringvaluestring
custom_fieldsCustomFieldValue[]Show child attributes
idstringnamestringvaluestring | boolean | nullThe formatted field value, or
nullwhen the field is empty. Numeric field types (number,currency,percent,quantity,formula) serialize a stored zero as its formatted value (for example"0") —nullmeans the field has no value, not that the value is zero.checkboxfields serialize as the strings"Yes"(checked) and"No"(explicitly unchecked); a checkbox that was never set isnull. Writes take booleantrue/false.datetimefields 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 example2026-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 asM-DD-YYYY: month without a leading zero, day with one, four-digit year (for example9-22-2026for 22 September 2026,3-04-2026for 4 March 2026). This is not ISO 8601; parse it with that exact pattern.typestringinternal_namestringcreated_atstring
moderatorsSessionSpeaker[]Show child attributes
idstringparticipant_roleParticipantRoleThe event's configured program role for this participant (Sessions 2.0).
nameandslugreflect the configuredSession_Rolesrecord (for example Author, Panelist).core_roleis the legacy junction category mapping only (speaker,chairperson,moderator) and must not be used as the display role label. Present on legacyspeakers,chairpersons, andmoderatorsentries when the event hasSession_Rolesconfigured.Show child attributes
idstring<uuid>Session_Roles.id
slugstringStable programmatic identifier for the role within the event.
namestringDisplay name (singular).
name_pluralstringDisplay name (plural).
core_rolestringLegacy junction category this role maps to for integrations.
- Allowed values
"speaker", "chairperson", "moderator"
session_affiliationSessionAffiliationThe person's company and job title for this session only, set by an organizer on the session's participant list. A
nullvalue means this session uses the contact's owncompany_name/title, so the value to display issession_affiliation.company ?? company_nameandsession_affiliation.job_title ?? title. Both keys are always present.Show child attributes
companystring | nullrequiredCompany for this session, or
nullto use the contact's.job_titlestring | nullrequiredJob title for this session, or
nullto use the contact's.
friendly_idstringfull_namestringfirst_namestringlast_namestringemailstringcreated_atstringupdated_atstringphoto_urlstringURL of the contact's headshot. Images larger than 2 MB are delivered resized from this URL, scaled to fit within 2400 x 2400 pixels (a PNG may arrive as WebP for clients that accept it). The uploaded file is stored unchanged; for full-resolution originals use the bulk download tools in Sessionboard, such as Download Headshots (Contacts, More menu).
company_namestringtitlestringaboutstringphone_homestringphone_mobilestringaddress_line_1stringaddress_line_2stringaddress_citystringaddress_statestringaddress_postal_codestringaddress_countrystringwebsite_urlstringlinkedin_urlstringtwitter_urlstringfacebook_urlstringinstagram_urlstringsnapchat_usernamestringtiktok_usernamestringtranslated_fieldsTranslatedField[]Show child attributes
idstringnamestringtypestringparent_field_idstringparent_field_sourcestringparent_field_namestringparent_field_internal_namestringtranslated_languagestringvaluestring
custom_fieldsCustomFieldValue[]Show child attributes
idstringnamestringvaluestring | boolean | nullThe formatted field value, or
nullwhen the field is empty. Numeric field types (number,currency,percent,quantity,formula) serialize a stored zero as its formatted value (for example"0") —nullmeans the field has no value, not that the value is zero.checkboxfields serialize as the strings"Yes"(checked) and"No"(explicitly unchecked); a checkbox that was never set isnull. Writes take booleantrue/false.datetimefields 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 example2026-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 asM-DD-YYYY: month without a leading zero, day with one, four-digit year (for example9-22-2026for 22 September 2026,3-04-2026for 4 March 2026). This is not ISO 8601; parse it with that exact pattern.typestringinternal_namestringcreated_atstring
participantsSessionParticipant[]Sessions 2.0 participants for this subsession (see
Session.participants).Show child attributes
idstringparticipant_roleParticipantRoleThe event's configured program role for this participant (Sessions 2.0).
nameandslugreflect the configuredSession_Rolesrecord (for example Author, Panelist).core_roleis the legacy junction category mapping only (speaker,chairperson,moderator) and must not be used as the display role label. Present on legacyspeakers,chairpersons, andmoderatorsentries when the event hasSession_Rolesconfigured.Show child attributes
idstring<uuid>Session_Roles.id
slugstringStable programmatic identifier for the role within the event.
namestringDisplay name (singular).
name_pluralstringDisplay name (plural).
core_rolestringLegacy junction category this role maps to for integrations.
- Allowed values
"speaker", "chairperson", "moderator"
session_affiliationSessionAffiliationThe person's company and job title for this session only, set by an organizer on the session's participant list. A
nullvalue means this session uses the contact's owncompany_name/title, so the value to display issession_affiliation.company ?? company_nameandsession_affiliation.job_title ?? title. Both keys are always present.Show child attributes
companystring | nullrequiredCompany for this session, or
nullto use the contact's.job_titlestring | nullrequiredJob title for this session, or
nullto use the contact's.
friendly_idstringfull_namestringfirst_namestringlast_namestringemailstringcreated_atstringupdated_atstringphoto_urlstringURL of the contact's headshot. Images larger than 2 MB are delivered resized from this URL, scaled to fit within 2400 x 2400 pixels (a PNG may arrive as WebP for clients that accept it). The uploaded file is stored unchanged; for full-resolution originals use the bulk download tools in Sessionboard, such as Download Headshots (Contacts, More menu).
company_namestringtitlestringaboutstringphone_homestringphone_mobilestringaddress_line_1stringaddress_line_2stringaddress_citystringaddress_statestringaddress_postal_codestringaddress_countrystringwebsite_urlstringlinkedin_urlstringtwitter_urlstringfacebook_urlstringinstagram_urlstringsnapchat_usernamestringtiktok_usernamestringtranslated_fieldsTranslatedField[]Show child attributes
idstringnamestringtypestringparent_field_idstringparent_field_sourcestringparent_field_namestringparent_field_internal_namestringtranslated_languagestringvaluestring
custom_fieldsCustomFieldValue[]Show child attributes
idstringnamestringvaluestring | boolean | nullThe formatted field value, or
nullwhen the field is empty. Numeric field types (number,currency,percent,quantity,formula) serialize a stored zero as its formatted value (for example"0") —nullmeans the field has no value, not that the value is zero.checkboxfields serialize as the strings"Yes"(checked) and"No"(explicitly unchecked); a checkbox that was never set isnull. Writes take booleantrue/false.datetimefields 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 example2026-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 asM-DD-YYYY: month without a leading zero, day with one, four-digit year (for example9-22-2026for 22 September 2026,3-04-2026for 4 March 2026). This is not ISO 8601; parse it with that exact pattern.typestringinternal_namestringcreated_atstring
session_participant_idstring<uuid>Primary key of the
Session_Participantsrow.acceptance_statusstringThe participant's answer to their acceptance invitation. Present only when the event has Participant Acceptance turned on (
features.speaker_acceptance).- Allowed values
"pending", "accepted", "declined", "not_accepted"
acceptance_invite_sent_atstring<date-time> | nullWhen the acceptance invitation for this role was last sent, or
nullif it has not been sent. Present only when the event has Participant Acceptance turned on.
sponsorsSponsor[]Show child attributes
idstringfriendly_idstringfriendly_id_rawintegernamestringdescriptionstringlogo_image_urlstringbanner_image_urlstringphonestringaddress_line_1stringaddress_line_2stringaddress_citystringaddress_statestringaddress_postal_codestringaddress_coutnrystringCountry (note: field name contains a known typo preserved for backwards compatibility).
facebook_urlstringinstagram_urlstringlinkedin_urlstringsnapchat_usernamestringtiktok_usernamestringtwitter_urlstringwebsite_urlstringcreated_atstringupdated_atstring<date-time>When the sponsor last changed, from any source, including Public API creates, updates and bulk writes. Send it back as
updated_aton an update for optimistic concurrency; the write returns the new value.custom_fieldsCustomFieldValue[]Show child attributes
idstringnamestringvaluestring | boolean | nullThe formatted field value, or
nullwhen the field is empty. Numeric field types (number,currency,percent,quantity,formula) serialize a stored zero as its formatted value (for example"0") —nullmeans the field has no value, not that the value is zero.checkboxfields serialize as the strings"Yes"(checked) and"No"(explicitly unchecked); a checkbox that was never set isnull. Writes take booleantrue/false.datetimefields 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 example2026-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 asM-DD-YYYY: month without a leading zero, day with one, four-digit year (for example9-22-2026for 22 September 2026,3-04-2026for 4 March 2026). This is not ISO 8601; parse it with that exact pattern.typestringinternal_namestringcreated_atstring
translated_fieldsTranslatedField[]Show child attributes
idstringnamestringtypestringparent_field_idstringparent_field_sourcestringparent_field_namestringparent_field_internal_namestringtranslated_languagestringvaluestring
contactsAccountContact[]Show child attributes
idstringfriendly_idstringfriendly_id_rawintegerfull_namestringfirst_namestringlast_namestringemailstringphoto_urlstringURL of the contact's headshot. Images larger than 2 MB are delivered resized from this URL, scaled to fit within 2400 x 2400 pixels (a PNG may arrive as WebP for clients that accept it). The uploaded file is stored unchanged; for full-resolution originals use the bulk download tools in Sessionboard, such as Download Headshots (Contacts, More menu).
company_namestringtitlestringaboutstringis_primarybooleancontact_created_atstringcontact_updated_atstringrelationship_created_atstringrelationship_updated_atstring
admin_urlstring<uri> | nullDeep link to this entity in the Sessionboard admin UI.
exhibitorsExhibitor[]Show child attributes
idstringfriendly_idstringfriendly_id_rawintegernamestringdescriptionstringlogo_image_urlstringbanner_image_urlstringphonestringaddress_line_1stringaddress_line_2stringaddress_citystringaddress_statestringaddress_postal_codestringaddress_coutnrystringCountry (note: field name contains a known typo preserved for backwards compatibility).
facebook_urlstringinstagram_urlstringlinkedin_urlstringsnapchat_usernamestringtiktok_usernamestringtwitter_urlstringwebsite_urlstringcreated_atstringupdated_atstring<date-time>When the exhibitor last changed, from any source, including Public API creates, updates and bulk writes. Send it back as
updated_aton an update for optimistic concurrency; the write returns the new value.custom_fieldsCustomFieldValue[]Show child attributes
idstringnamestringvaluestring | boolean | nullThe formatted field value, or
nullwhen the field is empty. Numeric field types (number,currency,percent,quantity,formula) serialize a stored zero as its formatted value (for example"0") —nullmeans the field has no value, not that the value is zero.checkboxfields serialize as the strings"Yes"(checked) and"No"(explicitly unchecked); a checkbox that was never set isnull. Writes take booleantrue/false.datetimefields 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 example2026-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 asM-DD-YYYY: month without a leading zero, day with one, four-digit year (for example9-22-2026for 22 September 2026,3-04-2026for 4 March 2026). This is not ISO 8601; parse it with that exact pattern.typestringinternal_namestringcreated_atstring
translated_fieldsTranslatedField[]Show child attributes
idstringnamestringtypestringparent_field_idstringparent_field_sourcestringparent_field_namestringparent_field_internal_namestringtranslated_languagestringvaluestring
contactsAccountContact[]Show child attributes
idstringfriendly_idstringfriendly_id_rawintegerfull_namestringfirst_namestringlast_namestringemailstringphoto_urlstringURL of the contact's headshot. Images larger than 2 MB are delivered resized from this URL, scaled to fit within 2400 x 2400 pixels (a PNG may arrive as WebP for clients that accept it). The uploaded file is stored unchanged; for full-resolution originals use the bulk download tools in Sessionboard, such as Download Headshots (Contacts, More menu).
company_namestringtitlestringaboutstringis_primarybooleancontact_created_atstringcontact_updated_atstringrelationship_created_atstringrelationship_updated_atstring
admin_urlstring<uri> | nullDeep link to this entity in the Sessionboard admin UI.
contentContent[]Show child attributes
idstring<uuid>urlstring<uri> | nullDownload URL.
nullwhile Approvals holds the file back (seeapproval_status), so nothing built on the API can publish it early.titlestringfilenamestringsizeintegermimetypestringtypestring | nullOrganizer-facing file type, e.g.
presentation,handout,poster, orholding_slidefor slides generated by Sessionboard. Filterable with?type=on the list endpoint.- Example
"holding_slide"
labelstring | nullDisplay label shown on the session's Files tab, e.g.
Holding Slide.- Example
"Holding Slide"
created_atstring<date-time>updated_atstring<date-time>assigned_participant_idstring<uuid> | nullContact UUID of the session participant this file is assigned to.
assigned_participant_emailstring<email> | nullassigned_participant_namestring | nullcontent_slot_idstring<uuid> | nullThe upload slot this file answers — see
GET /v1/event/{eventId}/content-slots. Present only while the event uses upload slots;nullfor events on a single file request, and for files uploaded before slots existed or outside any slot.approval_statusstringApproval state, returned by the Session Files endpoints.
not_required: not under an approval workflow (no workflow, workflow off, or uploaded before it was turned on).pending: waiting on a reviewer.approved: approved and released.denied: sent back to the uploader for changes.superseded: a newer version replaced it before it was decided.embargoed: approved (or not required) but held until a release time; seeembargo_until.
Only
approvedandnot_requiredfiles have aurl.- Allowed values
"not_required", "pending", "approved", "denied", "superseded", "embargoed"- Example
"approved"
embargo_untilstring<date-time> | nullWhen an
embargoedfile is released (UTC).nullwhen it is not embargoed, or when it waits for its session to be scheduled (release "when each file's session starts").
tagsTag[]Show child attributes
idstring<uuid>typestring- Allowed values
"tag"
namestringcolorstring | nullorderinteger | nullcreated_atstringupdated_atstring
languageobjectSame shape as
Session.languagewhen assigned;{}when unassigned.Show child attributes
idstring<uuid>event_idintegernamestringorderintegercreated_atstringupdated_atstring
trackobjectSame shape as
Session.trackwhen assigned;{}when unassigned.Show child attributes
idstring<uuid>event_idintegernamestringcolorstringorderintegercreated_atstringupdated_atstring
levelobjectSame shape as
Session.levelwhen assigned;{}when unassigned.Show child attributes
idstring<uuid>namestringorderintegercreated_atstringupdated_atstring
formatobjectNested format includes only
idandname.Show child attributes
idstringnamestring
roomobjectSame shape as
Session.roomwhenlocationisroom;{}when location is external or unset.Show child attributes
idstring<uuid>namestringorderintegercapacityinteger | nullMaximum room capacity. Returned on nested session
roomobjects and standalone room list/search endpoints.created_atstringupdated_atstring
sourcestring
admin_urlstring<uri> | nullDeep link to this entity in the Sessionboard admin UI.
401
Unauthorized
403
Missing write:sessions scope
404
Session not found
409
Stale update — session modified since last fetch
Response examples
{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "friendly_id": "SESS-8", "friendly_id_raw": 8, "title": "Networking", "description": "<p>Networking session description</p>", "status": "accepted", "starts_at": "2024-03-15T09:00:00Z", "ends_at": "2024-03-15T10:00:00Z", "is_public": true, "created_at": "2024-01-10T14:30:00Z", "updated_at": "2024-03-01T09:15:00Z", "ceu_credits": 1.5, "capacity": 200, "language": { "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "event_id": 42, "name": "English", "order": 0, "created_at": "2024-01-01T00:00:00Z", "updated_at": "2024-01-01T00:00:00Z" }, "track": { "id": "b2c3d4e5-f6a7-8901-bcde-f12345678901", "event_id": 42, "name": "Artificial Intelligence & ML", "color": "#329af0", "order": 1, "created_at": "2024-01-01T00:00:00Z", "updated_at": "2024-01-01T00:00:00Z" }, "level": { "id": "c3d4e5f6-a7b8-9012-cdef-123456789012", "name": "Beginner", "order": 2, "created_at": "2024-01-01T00:00:00Z", "updated_at": "2024-01-01T00:00:00Z" }, "format": { "id": "d4e5f6a7-b8c9-0123-def0-234567890123", "name": "Session" }, "room": { "id": "e5f6a7b8-c9d0-1234-ef01-345678901234", "name": "Workshop Room 1", "order": 3, "capacity": 120, "created_at": "2024-01-01T00:00:00Z", "updated_at": "2024-01-01T00:00:00Z" }, "tags": [], "speakers": [], "content": [], "custom_fields": [], "admin_url": "https://app.sessionboard.com/event/42/sessions/497f6eca-6276-4993-bfeb-53cbbbba6f08"}