Skip to content
Core API
Esc
↑↓navigate↵open⌘Jpreview
On this page

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 → response speaker-assignments: speaker-id, role, position;
    • session_sponsors → response session-sponsors: sponsor-id, label, position;
    • sponsor → response main-sponsor: name;
    • custom_fields → response custom-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.

Last updated on August 21, 2026