Speakers
Speakers: available fields, filters, associations, and API operations.
Release timing: This page includes changes planned for 9 October 2026. See the deployment note before using the updated operations or inputs.
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/speakers
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/speakers' \
--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": "speaker"
}
],
"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/speakers/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/speakers/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": "speaker"
}
}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/speakers
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/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"
}'Response: 201 Created. Save data.id for later requests. Attributes come from Write-response fields.
View response structure
{
"data": {
"id": "1201",
"type": "speaker"
}
}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/speakers/801
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/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
}'Response: 200 OK. Attributes come from Write-response fields; these can differ from readable fields.
View response structure
{
"data": {
"id": "1201",
"type": "speaker"
}
}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/speakers/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/speakers/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}/speakers
Methods: GET collection/record, POST, PATCH, DELETE.
Fields, filters and associations
Browse 15 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 external-id- Scope field:
external_id honorific- Scope field:
honorific first-name- Scope field:
first_name middle-name- Scope field:
middle_name last-name- Scope field:
last_name full-name- Scope field:
full_name job-title- Scope field:
job_title company-name- Scope field:
company_name bio- Scope field:
bio photo-url- Scope field:
photo_url highlight-position- Scope field:
highlight_position position- Scope field:
position created-at- Scope field:
created_at updated-at- Scope field:
updated_at
- Filters:
external_id,first_name,middle_name,last_name,honorific,job_title,company_name,featured,session_id. - Associations:
speaker_assignments→ responsespeaker-assignments:id,timeslot-id,role,position;custom_fields→ responsecustom-fields:definition-key,definition-title,field-type,values.
GET .../speakers?featured=true&session_id=5501&include=speaker-assignments,custom-fields
Writing this resource
Writable fields: external_id, honorific, first_name, middle_name, last_name, job_title, company_name, bio (raw JSON or HTML string), highlight_position, position.
Additional inputs: custom_fields_attributes (raw JSON), photo (raw value; HTTP URL or base64 data URI).
{
"external_id": "SPEAKER-42",
"first_name": "Taylor",
"last_name": "Ng",
"job_title": "CEO",
"company_name": "Example Ltd",
"bio": "Taylor leads Example Ltd.",
"photo": "https://example.com/taylor.jpg"
}
Speaker biography content is normalized and sanitized. An empty photo value on PATCH removes the current image.
Deleting a speaker
DELETE requires the speaker scope’s delete action and access to the target record. Success returns 204 with no response body. The speaker becomes unavailable immediately; related assignment and custom-field cleanup is scheduled after the transaction commits. Sessions remain, so review their speaker assignments before deleting. A failure to delete the speaker returns a validation error rather than success.