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

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.

POST
Choose the destination IDs
Start with these fields

Sponsor in the URL event. The question cannot move to another sponsor; mapped sponsor_id on PATCH returns 400. Sponsor row restrictions also apply.

Question title, 1–1,000 characters.

Text, SingleChoice or MultipleChoice. CustomValues is unavailable. A transition to a choice type needs valid options in the same request.

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.

Add optional fields (1)

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.

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/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"
  ]
}'
201 CreatedIllustrative response
{
  "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.

PATCH
Choose the destination IDs
Fields to change

Question title, 1–1,000 characters.

Add optional fields (4)

Sponsor in the URL event. The question cannot move to another sponsor; mapped sponsor_id on PATCH returns 400. Sponsor row restrictions also apply.

Text, SingleChoice or MultipleChoice. CustomValues is unavailable. A transition to a choice type needs valid options in the same request.

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.

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.

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

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?"
}'
200 OKIllustrative response
{
  "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.

Last updated on October 9, 2026