Update Survey Question
Updates a specified survey question. One or more fields or properties may be changed in a single call.
Endpoint
POST
v5/survey/{survey_id}/surveyquestion/{question_id}
Requires authentication
Path Parameters
Identifies the survey and the specific question to update.
survey_id
string
required
The ID of the survey the question belongs to.
question_id
string
required
The ID of the survey question to update.
Query Parameters
title
string
The updated question text. Returns as a language-keyed object (e.g.
{"English": "Your question"}).description
string
The updated description or sub-text for the question.
shortname
string
Updated shortname or alias for the question.
varname
string
Updated SPSS variable name. For question types with multiple fields (e.g. Textbox List), specify as an array keyed by option ID — for example,
varname[10001]=Comedy&varname[10002]=Drama.properties
object
Configuration properties to update on the question. All
properties keys are passed as individual query parameters using bracket notation — for example, properties[required]=true.child attributes
disabled
boolean
Disables the question so it cannot be answered.
exclude_number
boolean
Excludes the question number from the display.
hide_after_response
boolean
Hides the question after it has been answered.
option_sort
string
Controls sorting of answer options. Accepted values:
ALPHA (alphabetical), NONE (original creation order), SHUFFLE (randomized).orientation
string
Display orientation for answer options. Accepted values:
HORZ, VERT.labels_right
boolean
Positions option labels to the right of the input.
question_description_above
boolean
Displays the question description above the question title rather than below.
custom_css
string
A CSS template hook for custom styling on this question.
placeholder
object
Placeholder text shown inside open-text question fields, keyed by language — for example,
properties[placeholder][English]=Enter+your+answer. The language key is required.required
boolean
Makes the question required before the respondent can advance.
soft-required
boolean
Prompts the respondent if they skip the question but does not block advancement.
force_numeric
boolean
Restricts input to numeric values only.
force_percent
boolean
Restricts input to percentage values.
force_currency
boolean
Restricts input to currency-formatted values.
min_number
string
The minimum accepted numeric value.
max_number
string
The maximum accepted numeric value.
min_answers_per_row
string
Minimum number of answers required per row (grid questions).
minimum_response
string
Minimum number of selections or characters required.
inputmask
object
Input validation mask settings.
child attributes
mask
string
A RegEx pattern used to validate input format.
message
string
The validation error message to display when the input mask pattern is not matched.
defaulttext
string
Default text or reporting value to pre-populate in the question field.
hidden
boolean
Hides the question from respondents. The question is still included in response data.
piped_from
string
The ID of the question to pipe answer text from into this question's title or description.
piped-from-method
string
Controls how the piped value is transformed. Can be empty or set to
negative.pipe_values_from
string
The ID of the question to pipe answer options from into this question.
pipe-values-method
string
Controls how piped option values are transformed. Can be empty or set to
negative.save_logic_data
boolean
When set to
true, saves display and skip logic data with this question.admin_question
boolean
Marks the question as admin-only, visible only in admin reports.
randomizer_ignore
boolean
Excludes this question from page-level randomization.
fixed_placement
boolean
Pins the question to its current position when page-level randomization is applied.
max_total
string
Continuous Sum. The maximum total value respondents may enter across all fields.
max_total_noshow
boolean
Continuous Sum. When
true, hides the running total display from respondents.must_be_max
boolean
Continuous Sum. Requires the respondent's total to equal the specified maximum before they can advance.
maxfiles
integer
File Upload. Maximum number of files the respondent may upload. Accepted values:
1–10.extentions
string
File Upload. Comma-separated list of allowed file extensions. Example:
png,gif,jpg,pdf,docx.url
string
URL Redirect / HTTP Insert. The destination URL for redirect questions, or the webhook endpoint for HTTP Insert questions.
outbound
object
URL Redirect. Keyed object of outbound variables to pass to the redirect URL. Replace
n with the index of each variable — for example, properties[outbound][0][fieldname]=myVar.child attributes
fieldname
string
The variable name to pass to the redirect URL.
mapping
string
The question ID whose answer should be passed as the value of this variable. Pass
url to map from a URL variable instead.url
string
The name of the URL variable to map from, when mapping from a URL variable rather than a question.
default
string
Default value to pass when the mapped question has no answer.
heatmap_image
string
Heatmap. URL of the image to use as the heatmap background.
messages
object
Text Highlighter. Contains the text content for respondents to highlight — for example,
properties[messages][th_content][English]=URL-encoded+text. The language key is required.data_type
string
HTTP Insert. Accepted values:
response (sends full response data) or fields (sends specific fields, which must be configured in the UI). Required for HTTP Insert questions.aurl
string
Audio / Video. The URL of the audio or video content, formatted as
//www.example.com/file. Required for audio and video question types.http
string
Audio / Video. The protocol for the media URL. Accepted values:
http, https. Required for audio and video question types.limits
array
Dropdown Menu Grid. Array of dropdown answer options — for example,
properties[limits][]=apple&properties[limits][]=orange. Required for Dropdown Menu Grid questions.javascript_code
string
JavaScript Action. Base64-encoded JavaScript code to execute as a question action.
Response
Returns the updated question object.
result_ok
boolean
Whether the request succeeded.
data
object
The updated survey question object.
child attributes
id
integer
The question's numeric ID.
base_type
string
Always
"Question" for survey question objects.type
string
The question type (e.g.
TEXTBOX, RADIO, ESSAY).title
object
The question text, keyed by language — for example,
{"English": "Your question text"}.shortname
string
The question's shortname or alias. Returns an empty string if not set.
varname
string | array
The SPSS variable name. Returns an empty array
[] if not set.description
string | array
The question description. Returns an empty array
[] if not set.has_showhide_deps
boolean
Whether other questions have display or skip logic that depends on this question's answer.
comment
boolean
Whether a comment field is enabled on this question.
options
array
The question's answer options. Returns an empty array
[] for open-text question types.show_rules_ids
string | null
The ID of the skip logic rule attached to this question, if any. Returns
null if no skip logic is configured.properties
object
The question's current property values. Includes all configured properties as well as
show_rules if skip logic is attached to this question.child attributes
required
boolean
Whether the question is required.
hidden
boolean
Whether the question is hidden from respondents.
orientation
string
The current display orientation. Possible values:
HORZ, VERT.option_sort
string
The current option sort setting. Possible values:
ALPHA, NONE, SHUFFLE.disabled
boolean
Whether the question is disabled.
hide_after_response
boolean
Whether the question hides after being answered.
admin_question
boolean
Whether the question is admin-only.
save_logic_data
boolean
Whether logic data is saved with this question.
labels_right
boolean
Whether option labels are positioned to the right.
question_description_above
boolean
Whether the description appears above the question title.
custom_css
string
Custom CSS applied to this question. Returns an empty string if not set.
messages
object
Label and message settings for the question. Contains sub-keys such as
inputmask, th_content, and various grid label fields. Returns empty arrays for any unset labels.show_rules
object | null
The skip logic condition attached to this question, if any. Only present in the response when skip logic has been configured. See Survey Question Logic for the full structure. Note that
show_rules is nested inside properties in the response, not at the top level of data.Examples
Request (cURL)
curl -X POST "https://api.alchemer.com/v5/survey/123456/surveyquestion/3?api_token=YOUR_API_TOKEN&api_token_secret=YOUR_API_TOKEN_SECRET&title=Updated+Question+Title&properties[required]=true"
Response
{
"result_ok": true,
"data": {
"id": 3,
"base_type": "Question",
"type": "TEXTBOX",
"title": {
"English": "Updated Question Title"
},
"shortname": "",
"varname": [],
"description": [],
"has_showhide_deps": false,
"comment": false,
"properties": {
"required": true,
"hidden": false,
"option_sort": "NONE",
"orientation": "VERT",
"labels_right": false,
"question_description_above": false,
"soft-required": false,
"disabled": false,
"save_logic_data": false,
"hide_after_response": false,
"admin_question": false,
"custom_css": "",
"messages": {
"inputmask": [],
"th_content": []
},
"show_rules": {
"atom": {
"type": "3",
"value": "2",
"case_sensitive": true
},
"operator": "20",
"atom2": {
"type": "2",
"value": "",
"case_sensitive": false
},
"id": "69dd6916e1960",
"same_page_skus": []
}
},
"options": [],
"show_rules_ids": "69dd6916e1960"
}
}