Custom field definitions
Create and update custom field definitions with complete curl 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.
curl --fail-with-body --silent --show-error --globoff --max-time 30 --request POST \
--url "${BRELLA_API_BASE_URL}"'/api/core/organizations/123/events/456/custom-field-definitions' \
--header "Accept: application/vnd.brella.v4+json" \
--header "Brella-API-Access-Token: ${BRELLA_API_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--data-raw '{
"key": "linkedin_url",
"title": "LinkedIn URL",
"customizable_type": "Event::Registrant",
"field_type": "Text"
}'{
"data": {
"id": "1201",
"type": "custom-field-definition"
}
}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}/custom-field-definitions
POST a custom field definition
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/custom-field-definitions' \
--header "Accept: application/vnd.brella.v4+json" \
--header "Brella-API-Access-Token: ${BRELLA_API_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--data-raw '{
"key": "linkedin_url",
"title": "LinkedIn URL",
"customizable_type": "Event::Registrant",
"visible_to_sponsors": true,
"filterable": false,
"field_type": "Text",
"options": [],
"visible_on_registrant_profile": true
}'The response type is custom-field-definition; response attributes include configured fields in kebab-case, such as customizable-type and field-type.
PATCH a custom field definition
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/custom-field-definitions/901' \
--header "Accept: application/vnd.brella.v4+json" \
--header "Brella-API-Access-Token: ${BRELLA_API_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--data-raw '{
"title": "LinkedIn profile URL",
"visible_to_sponsors": false,
"filterable": true,
"field_type": "Text",
"options": [],
"visible_on_registrant_profile": true
}'Do not use PATCH to rename key or change customizable_type; the current mutation silently ignores both fields.
Input reference
8 inputs. Expand a field for its request type and update behavior. These are the example request keys; your administrator can configure aliases.
keyScalar string
- POST
- Required by the model
- PATCH
- Ignored
Must be unique within the event's definitions.
titleScalar string
- POST
- Required by the model
- PATCH
- Used
Display title.
customizable_typeScalar string
- POST
- Required by the model
- PATCH
- Ignored
Allowed values are Event, Event::Invite, Event::Registrant, RegistrantList, Event::TicketPurchase, Speaker, Sponsors::Sponsor, Timeslot, and Sponsors::Lead. Event::Invite is normalized to Event::Registrant.
visible_to_sponsorsJSON boolean
- POST
- Used
- PATCH
- Used
Sponsor visibility.
filterableJSON boolean
- POST
- Used
- PATCH
- Used
Filtering setting.
field_typeScalar string
- POST
- Required by the model
- PATCH
- Used
Text, SingleChoice, MultipleChoice, or CustomValues.
optionsArray of strings
- POST
- Conditional
- PATCH
- Used
Full replacement when supplied. Choice fields require non-empty strings: at most 50 options, each at most 1,000 characters. Bounds are checked when options or field_type changes.
visible_on_registrant_profileJSON boolean
- POST
- Used
- PATCH
- Used
Maps to the introspected field visible_on_attendee_profile.
Map this request key to visible_on_attendee_profile in the token scope.
Choice options are limited to 50 non-empty strings, each at most 1,000 characters. These bounds are checked when options or field type changes. For sponsor-owned lead questions, use the separate scanning-questions resource.