Instructions
Instructions define what participants are asked to do in AI Task Builder. Most instruction types are available for both Batches and Collections. video_narration is available only in Batch layouts.
For usage details, see Working with Batches or Working with Collections.
Common fields
All instructions share these fields:
For Batch layouts created with batch_items, do not provide order on instructions. Their display order is defined by their position in the layout. The legacy Batch instructions endpoint is deprecated and preserves the order of its instructions array.
Instruction types
AI Task Builder supports the following instruction types:
- multiple_choice - Selection from a list of options
- free_text - Open-ended text input
- free_text_with_unit - Text input with unit selection (e.g., measurements, currency)
- multiple_choice_with_free_text - Selection with associated free text fields
- file_upload - File submission field
- video_narration - Spoken narration recorded while the participant watches a video (Batches only)
multiple_choice
A selection from a list of options. Use answer_limit to control single or multi-select behavior.
By default, when there are 5 or more options, a dropdown select element is rendered instead of checkboxes or radio buttons. Set disable_dropdown: true to always use checkboxes (for multi-select) or radio buttons (for single-select) regardless of option count.
Example
Multi-select example
free_text
An open-ended text input field. Optionally includes validation constraints for the input value.
Example
Example with validation
free_text_with_unit
A text input field where participants provide a numeric or text value along with a unit selection (e.g., measurements in cm or inches, weights in kg or lbs). The unit selector can appear before (prefix) or after (suffix) the text input.
Example: Height measurement with validation
Example: Currency amount
multiple_choice_with_free_text
A selection from options, where each option has a heading and an associated free text field. Use this when you need participants to both select an option and provide additional context.
By default, when there are 5 or more options, a dropdown select element is rendered instead of checkboxes or radio buttons. Set disable_dropdown: true to always use checkboxes (for multi-select) or radio buttons (for single-select) regardless of option count.
Example
In this example, options are grouped under “Accuracy” and “Clarity” headings. Each selection includes an associated free text field for the participant to elaborate.
file_upload
A file submission field for participants to upload images, documents, or other files. Useful for collecting photos, documents, screenshots, or any file-based data from participants.
Validation rules:
- All file type extensions must start with a dot (e.g.,
".pdf", not"pdf") max_file_size_mbmust be a positive numbermin_file_countmust be at least 1max_file_countmust be greater than or equal tomin_file_count- If you omit
accepted_file_types, the instruction will only accept common image formats (JPG, PNG, HEIC, HEIF)
Example: Single image upload
Example: Multiple document upload
Example: Flexible image collection
video_narration
A Batch-only instruction that records a participant’s spoken narration while they watch a video. Place it alongside a video_url dataset field in a batch_items layout.
Example: Continuous narration
Example: Segmented narration
Responses contain one recorded file for continuous narration, or one or more recorded files for segmented narration. Batch exports include the files in the archive’s files/ directory.
Validation
The optional validation object can be added to free_text instructions (top-level) and to individual unit_options items in free_text_with_unit instructions. It allows researchers to set min/max bounds on participant input.
Validation fields
Validation types
"number"— The input must be numeric.minandmaxconstrain the numeric value. Use this for measurements, ages, quantities, etc."string"— The input is treated as text.minandmaxconstrain the character count. Use this to enforce minimum or maximum text lengths.
Constraints
- When both
minandmaxare provided,minmust be less than or equal tomax - For
type: "string",minandmaxmust be non-negative integers - Setting
minormaxtonull(or omitting it) means that direction is unbounded