Content sessions
Content sessions: available fields, filters, associations, and API operations.
Operations
Event-level resource. Every operation requires an enabled Core API scope for this resource and access to the URL context.
GETList records
/api/core/organizations/123/events/456/content-sessions
Permission: Read access. Readable fields, query filters and related objects must be selected in the scope.
curl --fail-with-body --silent --show-error --globoff --max-time 30 --request GET \
--url "${BRELLA_API_BASE_URL}"'/api/core/organizations/123/events/456/content-sessions' \
--header "Accept: application/vnd.brella.v4+json" \
--header "Brella-API-Access-Token: ${BRELLA_API_ACCESS_TOKEN}"Response: 200 OK. A JSON:API data array and pagination metadata. Default page size 30; maximum 100.
View response structure
{
"data": [
{
"id": "1201",
"type": "content-session"
}
],
"meta": {
"total_count": 1,
"total_pages": 1,
"current_page": 1
}
}Illustrative, with no additional response fields selected.
Errors: 400 for invalid parameter shapes; 403 for a missing/expired token or disallowed operation; 404 when the URL context, record or a referenced record is inaccessible; 429 for rate limits. Troubleshooting and retry guidance.
GETGet a record
/api/core/organizations/123/events/456/content-sessions/1201
Permission: Read access. Readable fields, query filters and related objects must be selected in the scope.
curl --fail-with-body --silent --show-error --globoff --max-time 30 --request GET \
--url "${BRELLA_API_BASE_URL}"'/api/core/organizations/123/events/456/content-sessions/1201' \
--header "Accept: application/vnd.brella.v4+json" \
--header "Brella-API-Access-Token: ${BRELLA_API_ACCESS_TOKEN}"Response: 200 OK. A JSON:API data object; fields depend on the token scope.
View response structure
{
"data": {
"id": "1201",
"type": "content-session"
}
}Illustrative, with no additional response fields selected.
Errors: 400 for invalid parameter shapes; 403 for a missing/expired token or disallowed operation; 404 when the URL context, record or a referenced record is inaccessible; 429 for rate limits. Troubleshooting and retry guidance.
POSTCreate a record
/api/core/organizations/123/events/456/content-sessions
Permission: Write access with the create action. Every request key must map to an allowed writable field; unconfigured inputs are ignored.
curl --fail-with-body --silent --show-error --globoff --max-time 30 --request POST \
--url "${BRELLA_API_BASE_URL}"'/api/core/organizations/123/events/456/content-sessions' \
--header "Accept: application/vnd.brella.v4+json" \
--header "Brella-API-Access-Token: ${BRELLA_API_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--data-raw '{
"title": "Opening keynote",
"track_id": 501,
"start_time": "2026-09-03T09:00:00Z",
"duration": 60
}'Response: 201 Created. Save data.id for later requests. Attributes come from Write-response fields.
View response structure
{
"data": {
"id": "1201",
"type": "content-session"
}
}Illustrative, with no additional response fields selected.
Errors: 400 for invalid parameter shapes; 403 for a missing/expired token or disallowed operation; 404 when the URL context, record or a referenced record is inaccessible; 422 for validation or business rules; 429 for rate limits. Troubleshooting and retry guidance.
PATCHUpdate a record
/api/core/organizations/123/events/456/content-sessions/5501
Permission: Write access with the update action. Every request key must map to an allowed writable field; unconfigured inputs are ignored.
curl --fail-with-body --silent --show-error --globoff --max-time 30 --request PATCH \
--url "${BRELLA_API_BASE_URL}"'/api/core/organizations/123/events/456/content-sessions/5501' \
--header "Accept: application/vnd.brella.v4+json" \
--header "Brella-API-Access-Token: ${BRELLA_API_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--data-raw '{
"start_time": "2026-09-03T09:15:00Z",
"duration": 45,
"speaker_assignments": [
{
"speaker_id": 801,
"role": "Moderator"
},
{
"speaker_id": 802,
"role": "Speaker"
}
]
}'Response: 200 OK. Attributes come from Write-response fields; these can differ from readable fields.
View response structure
{
"data": {
"id": "1201",
"type": "content-session"
}
}Illustrative, with no additional response fields selected.
Errors: 400 for invalid parameter shapes; 403 for a missing/expired token or disallowed operation; 404 when the URL context, record or a referenced record is inaccessible; 422 for validation or business rules; 429 for rate limits. Troubleshooting and retry guidance.
PATCH changes supplied fields. Collection inputs can replace existing values; read the input notes before sending arrays.
DELETEDelete a record
/api/core/organizations/123/events/456/content-sessions/1201
Permission: Write access with the delete action.
curl --fail-with-body --silent --show-error --globoff --max-time 30 --request DELETE \
--url "${BRELLA_API_BASE_URL}"'/api/core/organizations/123/events/456/content-sessions/1201' \
--header "Accept: application/vnd.brella.v4+json" \
--header "Brella-API-Access-Token: ${BRELLA_API_ACCESS_TOKEN}"Response: 204 No Content, with an empty response body.
Errors: 400 for invalid parameter shapes; 403 for a missing/expired token or disallowed operation; 404 when the URL context, record or a referenced record is inaccessible; 422 for validation or business rules; 429 for rate limits. Troubleshooting and retry guidance.
Deletion can remove related data or be refused by resource constraints. Read the resource notes and confirm the target before using this operation.
Path: events/{event_id}/content-sessions
Methods: GET collection/record, POST, PATCH, DELETE.
Fields, filters and associations
Browse 45 response fields
The scope chooses these response fields. id is always returned. Configuration names and response names can differ.
event-id- Scope field:
event_id track-id- Scope field:
track_id parent-timeslot-id- Scope field:
parent_timeslot_id start-time- Scope field:
start_time end-time- Scope field:
end_time duration- Scope field:
duration title- Scope field:
title subtitle- Scope field:
subtitle content- Scope field:
content external-id- Scope field:
external_id stream-link- Scope field:
stream_link uses-chat- Scope field:
uses_chat tracked-registrant-count- Scope field:
attendee_count highlight-position- Scope field:
highlight_position show-sponsor-logo-in-schedule- Scope field:
show_sponsor_logo_in_schedule virtual-oriented- Scope field:
virtual_oriented uses-rsvp- Scope field:
uses_rsvp uses-registrant-list- Scope field:
uses_attendee_list uses-ticket-qr-code- Scope field:
uses_ticket_qr_code attendance-registration-open- Scope field:
attendance_registration_open attendance-cap- Scope field:
attendance_cap attendance-registrations-count- Scope field:
attendance_registrations_count attendance-registration-auto-off- Scope field:
attendance_registration_auto_off color- Scope field:
color uses-ratings- Scope field:
uses_ratings uses-rsvp-cancellation- Scope field:
uses_rsvp_cancellation organizer-reserved-attendance-slots- Scope field:
organizer_reserved_attendance_slots session-sponsors-section-title- Scope field:
session_sponsors_section_title child-sessions-section-title- Scope field:
child_sessions_section_title map-link- Scope field:
map_link created-at- Scope field:
created_at updated-at- Scope field:
updated_at rateable-by- Scope field:
rateable_by cover-image-url- Scope field:
cover_image_url gated-to-list-ids- Scope field:
gated_to_list_ids rating-gated-to-list-ids- Scope field:
rating_gated_to_list_ids rsvp-count- Scope field:
rsvp_count checked-in-count- Scope field:
checked_in_count unique-registrant-count- Scope field:
unique_registrant_count first-rsvp-at- Scope field:
first_rsvp_at last-rsvp-at- Scope field:
last_rsvp_at bookmark-count- Scope field:
bookmark_count ratings-count- Scope field:
ratings_count ratings-skipped-count- Scope field:
ratings_skipped_count average-rating- Scope field:
average_rating
- Filters:
external_id,track_id,parent_timeslot_id,main_sponsor_id,session_sponsor_id,uses_rsvp,location_id,start_from,start_to,end_from,end_to. - Associations:
track:name,type;tags:name,color;locations:name,color,location-type,sponsor-id;speaker_assignments→ responsespeaker-assignments:speaker-id,role,position;session_sponsors→ responsesession-sponsors:sponsor-id,label,position;sponsor→ responsemain-sponsor:name;custom_fields→ responsecustom-fields:definition-key,definition-title,field-type,values.
GET .../content-sessions?start_from=2026-09-03T08:00:00Z&include=track,speaker-assignments,session-sponsors
Writing this resource
Writable fields: track_id, parent_timeslot_id, start_time, end_time, duration, title, subtitle, content (raw JSON), external_id, stream_link, uses_chat, highlight_position, show_sponsor_logo_in_schedule, virtual_oriented, uses_rsvp, uses_attendee_list, uses_ticket_qr_code, attendance_registration_open, attendance_cap, color, uses_ratings, uses_rsvp_cancellation, organizer_reserved_attendance_slots, session_sponsors_section_title, child_sessions_section_title, map_link.
Additional inputs: sponsor_id, session_sponsors (raw JSON), speaker_assignments (raw JSON), custom_fields_attributes (raw JSON), registrant_list_ids (array), rating_registrant_list_ids (array), child_timeslot_ids (array), tags (raw JSON), location (raw JSON), track_name, cover_image (base64 image input).
{
"title": "Opening keynote",
"track_id": 501,
"start_time": "2026-09-03T09:00:00Z",
"duration": 60,
"sponsor_id": 103705,
"speaker_assignments": [
{ "speaker_id": 801, "role": "Speaker", "position": 1 }
],
"session_sponsors": [
{ "sponsor_id": 103705, "label": "Presented by", "position": 1 }
]
}
Content sessions accept content or external-content tracks and reject networking tracks. Referenced speakers, sponsors, lists, locations, child sessions, and other event-owned records must belong to the URL event. The writable request input uses_attendee_list is returned as uses-registrant-list.