Scanning questions
Create and update sponsor lead-scanning questions with validated choice options.
Release timing: This page includes changes planned for 9 October 2026. See the deployment note before using the updated operations or inputs.
Configure an event-level ScanningQuestion scope with the required actions, input mappings and sponsor access. Enable sponsor_id and field_type query fields only when needed. Sponsor row restrictions remain in effect.
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/scanning-questions' \
--header "Accept: application/vnd.brella.v4+json" \
--header "Brella-API-Access-Token: ${BRELLA_API_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--data-raw '{
"sponsor_id": 103705,
"title": "When will you purchase?",
"field_type": "SingleChoice",
"options": [
"This quarter",
"Next quarter"
]
}'{
"data": {
"id": "1201",
"type": "scanning-question"
}
}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}/scanning-questions
POST a scanning question
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/scanning-questions' \
--header "Accept: application/vnd.brella.v4+json" \
--header "Brella-API-Access-Token: ${BRELLA_API_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--data-raw '{
"sponsor_id": 103705,
"title": "When will you purchase?",
"field_type": "SingleChoice",
"options": [
"This quarter",
"Next quarter"
],
"position": 1
}'Save the returned data.id and, when selected as a write-response field, the generated key. Do not supply your own key. The sponsor must belong to the URL event. Choice types require at most 50 non-empty string options, each at most 1,000 characters.
PATCH a scanning question
Build a request
Example data only. No request is sent.
curl --fail-with-body --silent --show-error --globoff --max-time 30 --request PATCH \
--url "${BRELLA_API_BASE_URL}"'/api/core/organizations/123/events/456/scanning-questions/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": "When do you expect to purchase?"
}'{
"data": {
"id": "1201",
"type": "scanning-question"
}
}The token scope determines returned fields. This selector illustrates that configuration; it does not change your token or the request.
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/scanning-questions/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": "When do you expect to purchase?",
"options": [
"This quarter",
"Next quarter",
"Later"
],
"position": 2
}'The starting request updates only the title. A supplied options array replaces the options; omitted options stay unchanged. The full example assumes an existing choice question. Moving a question to another sponsor is unsupported: mapped sponsor_id on PATCH returns 400.
To change a choice question to free text, send both fields:
{ "field_type": "Text", "options": [] }
Review existing answers before changing the question’s type or choices. DELETE removes the question and its collected answers.
Input reference
5 inputs. Expand a field for its request type and update behavior. These are the example request keys; your administrator can configure aliases.
sponsor_idScalar ID
- POST
- Required
- PATCH
- Rejected when mapped and supplied
Sponsor in the URL event. The question cannot move to another sponsor; mapped sponsor_id on PATCH returns 400. Sponsor row restrictions also apply.
titleScalar string
- POST
- Required
- PATCH
- Optional
Question title, 1–1,000 characters.
field_typeScalar string
- POST
- Required
- PATCH
- Optional
Text, SingleChoice or MultipleChoice. CustomValues is unavailable. A transition to a choice type needs valid options in the same request.
optionsArray of strings
- POST
- Required for choice types
- PATCH
- Optional; replaces options
At most 50 non-empty strings, each at most 1,000 characters. Numeric and boolean values are rejected. Non-empty options are allowed only for choice types. Use [] when changing to Text. Title-only PATCH can preserve legacy options.
positionScalar number
- POST
- Optional; appended when omitted
- PATCH
- Optional
Non-null integer within the signed 32-bit range; normalized to the valid list insertion range starting at 1. Order is within the sponsor's lead-scanning questions.