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

Speakers

Create, update and delete speakers with complete request examples.

Release timing: This page includes changes planned for 9 October 2026. See the deployment note before using the updated operations or inputs.

Build a request

Example data only. No request is sent.

POST
Choose the destination IDs
Start with these fields

External identifier.

Speaker first name.

Last name.

Add optional fields (9)

Honorific.

Middle name.

Job title.

Company name.

DraftJS JSON or HTML/text. Sanitized and stored as DraftJS content.

Featured order.

Display order.

Entries use key plus value or values.

HTTP(S) URL or base64 data URI. Blank on PATCH removes the current photo.

Use the API address and token from your environment. Set up authentication.

curl --fail-with-body --silent --show-error --globoff --max-time 30 --request POST \
  --url "${BRELLA_API_BASE_URL}"'/api/core/organizations/123/events/456/speakers' \
  --header "Accept: application/vnd.brella.v4+json" \
  --header "Brella-API-Access-Token: ${BRELLA_API_ACCESS_TOKEN}" \
  --header "Content-Type: application/json" \
  --data-raw '{
  "external_id": "SPEAKER-42",
  "first_name": "Taylor",
  "last_name": "Ng"
}'
201 CreatedIllustrative response
{
  "data": {
    "id": "1201",
    "type": "speaker"
  }
}

The token scope determines returned fields. This selector illustrates that configuration; it does not change your token or the request.

Collection path: events/{event_id}/speakers

Speaker assignments are not writable through this resource; manage them through the content-session speaker_assignments input.

POST a speaker

View the complete cURL example
curl --fail-with-body --silent --show-error --globoff --max-time 30 --request POST \
  --url "${BRELLA_API_BASE_URL}"'/api/core/organizations/123/events/456/speakers' \
  --header "Accept: application/vnd.brella.v4+json" \
  --header "Brella-API-Access-Token: ${BRELLA_API_ACCESS_TOKEN}" \
  --header "Content-Type: application/json" \
  --data-raw '{
  "external_id": "SPEAKER-42",
  "honorific": "Dr",
  "first_name": "Taylor",
  "last_name": "Ng",
  "job_title": "CEO",
  "company_name": "Example Ltd",
  "bio": "Taylor leads Example Ltd.",
  "highlight_position": 1,
  "position": 10,
  "custom_fields_attributes": [
    {
      "key": "linkedin_url",
      "value": "https://www.linkedin.com/in/example"
    }
  ],
  "photo": "https://example.com/taylor.jpg"
}'

The response type is speaker. Useful write-response fields include external_id, first_name, last_name, job_title, company_name, photo_url, and updated_at.

PATCH a speaker

View the complete cURL example
curl --fail-with-body --silent --show-error --globoff --max-time 30 --request PATCH \
  --url "${BRELLA_API_BASE_URL}"'/api/core/organizations/123/events/456/speakers/801' \
  --header "Accept: application/vnd.brella.v4+json" \
  --header "Brella-API-Access-Token: ${BRELLA_API_ACCESS_TOKEN}" \
  --header "Content-Type: application/json" \
  --data-raw '{
  "job_title": "Founder and CEO",
  "bio": "Taylor founded and leads Example Ltd.",
  "highlight_position": 2
}'

DELETE a speaker

Use the speaker DELETE operation with a scope that grants the delete action. Confirm the speaker and affected session assignments first. Success is 204 with no response body; the speaker becomes unavailable immediately and related cleanup is scheduled after commit. This does not delete the sessions.

Input reference

12 inputs. Expand a field for its request type and update behavior. These are the example request keys; your administrator can configure aliases.

external_idScalar string or `null`
POST
Optional
PATCH
Optional

External identifier.

honorificScalar string or `null`
POST
Optional
PATCH
Optional

Honorific.

first_nameScalar string
POST
Required by the model
PATCH
Optional

Speaker first name.

middle_nameScalar string or `null`
POST
Optional
PATCH
Optional

Middle name.

last_nameScalar string or `null`
POST
Optional
PATCH
Optional

Last name.

job_titleScalar string or `null`
POST
Optional
PATCH
Optional

Job title.

company_nameScalar string or `null`
POST
Optional
PATCH
Optional

Company name.

bioJSON object or string
POST
Optional
PATCH
Optional

DraftJS JSON or HTML/text. Sanitized and stored as DraftJS content.

highlight_positionScalar number or `null`
POST
Optional
PATCH
Optional

Featured order.

positionScalar number or `null`
POST
Optional
PATCH
Optional

Display order.

custom_fields_attributesArray of objects
POST
Optional
PATCH
Optional

Entries use key plus value or values.

photoRaw string
POST
Optional
PATCH
Optional

HTTP(S) URL or base64 data URI. Blank on PATCH removes the current photo.

Last updated on October 9, 2026