Skip to content
Core API
Esc
navigateopen⌘Jpreview
On this page

Content sessions

Create and update content sessions with complete curl request examples.

Collection path: events/{event_id}/content-sessions

Input Type POST PATCH Notes
track_id Scalar ID Optional if a suitable default exists Optional Must identify a content or external-content track in the event.
track_name Scalar string Optional Optional Finds or creates an event content track when track_id is absent.
parent_timeslot_id Scalar ID or null Optional Optional Parent session reference.
start_time ISO 8601 string Required for a valid create Optional Converted through the event’s time-zone compatibility logic.
duration Scalar number Required for a valid create Optional Minutes. With start_time, it supplies the model-required end time.
end_time ISO 8601 string Exposed but currently discarded Exposed but currently discarded The downstream timeslot parameter allowlist currently strips this field; use duration.
title Scalar string Optional at wrapper level Optional Session title.
subtitle Scalar string or null Optional Optional Session subtitle.
content Raw JSON or string Optional Optional DraftJS JSON or supported textual content; sanitized before storage.
external_id Scalar string or null Optional Optional External integration identifier.
stream_link Scalar string or null Optional Optional Stream URL.
uses_chat JSON boolean Optional Optional Chat is also subject to event configuration.
highlight_position Scalar number or null Optional Optional Highlight ordering.
show_sponsor_logo_in_schedule JSON boolean Optional Optional Display setting.
virtual_oriented JSON boolean Optional Optional Session orientation.
uses_rsvp JSON boolean Optional Optional Enables session RSVP behavior.
uses_attendee_list JSON boolean Optional Optional Returned as uses-registrant-list.
uses_ticket_qr_code JSON boolean Optional Optional Ticket QR check-in setting.
attendance_registration_open JSON boolean Optional Optional RSVP registration state.
attendance_cap Scalar number or null Optional Optional Capacity.
color Scalar string or null Optional Optional Color value.
uses_ratings JSON boolean Optional Optional Rating setting.
uses_rsvp_cancellation JSON boolean Optional Optional Cancellation setting.
organizer_reserved_attendance_slots Scalar number Optional Optional Reserved capacity.
session_sponsors_section_title Scalar string or null Optional Optional Section label.
child_sessions_section_title Scalar string or null Optional Optional Section label.
map_link Scalar string or null Optional Optional Map URL.
sponsor_id Scalar ID or null Optional Optional Main sponsor; must belong to the event.
session_sponsors Raw array Optional Optional Full replacement; entries use sponsor_id and optional label. Array order sets position.
speaker_assignments Raw array Optional Optional Full replacement; entries use speaker_id and optional role. Array order sets position.
custom_fields_attributes Raw array Optional Optional Entries use key plus value or values.
registrant_list_ids Array of scalar IDs Optional Optional Gating lists; all IDs must belong to the event.
rating_registrant_list_ids Array of scalar IDs Optional Optional Rating gating lists.
child_timeslot_ids Array of scalar IDs Optional Optional Child sessions.
tags Raw array Optional Optional All strings or all ID objects; mixed formats are rejected. [] clears all tags and locations.
location Scalar string or null Optional Optional Location name. Brella finds or creates an event location tag. Blank clears locations.
cover_image Raw string Optional Optional Base64 data URI. Blank on PATCH removes the current image.

POST a content session

curl --request POST \
  --url "${BRELLA_API_BASE_URL}/api/core/organizations/${BRELLA_ORGANIZATION_ID}/events/${BRELLA_EVENT_ID}/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,
    "content": "Opening remarks and event overview.",
    "uses_chat": true,
    "uses_rsvp": true,
    "attendance_registration_open": true,
    "attendance_cap": 500,
    "sponsor_id": 103705,
    "speaker_assignments": [
      { "speaker_id": 801, "role": "Speaker" }
    ],
    "session_sponsors": [
      { "sponsor_id": 103705, "label": "Presented by" }
    ],
    "tags": ["Keynote", "Featured"],
    "location": "Main stage",
    "registrant_list_ids": [401]
  }'

The response type is content-session. Useful write-response fields include track_id, start_time, end_time, duration, title, uses_rsvp, and updated_at.

PATCH a content session

Nested assignment arrays are full replacements when supplied. This example changes the schedule and replaces the speaker assignments.

curl --request PATCH \
  --url "${BRELLA_API_BASE_URL}/api/core/organizations/${BRELLA_ORGANIZATION_ID}/events/${BRELLA_EVENT_ID}/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" }
    ]
  }'

Last updated on August 25, 2026