Every form returned by the API includes a questions array. Each item is a question object with a questionType that determines which type-specific settings object is present.
Use this section to understand the structure of each field type. Examples are taken from real API responses.
All question objects share a set of top-level fields, regardless of type.
| Field | Type | Description |
|---|---|---|
_id | string | Unique question identifier (use this when matching submission answers) |
questionType | string | Field type (for example, email, choice, text) |
question | string | Question title shown to respondents |
displayOrder | number | Zero-based position in the form |
isRequired | boolean | Whether the field must be answered before submission |
isDeleted | boolean | Soft-deleted questions remain in the array but are hidden |
isActive | boolean | Whether the question is currently visible on the form |
placeholder | string | Placeholder text (supported on some types) |
description | string | Helper text shown below the question title |
media | object | Optional image or video attached to the question |
productbasket | object | Payment-related settings when the form accepts payments |
Type-specific settings live in a nested object named after the field type (for example, email, choice, text).
{
"_id": "6a0ef5da3affac35058b05a6",
"questionType": "email",
"question": "Enter your email address",
"placeholder": "Enter Email",
"displayOrder": 1,
"isRequired": false,
"isDeleted": false,
"isActive": true,
"description": "Short text Helper text",
"email": {
"labels": { "confirmation": "Confirm email" },
"isShowConfirmation": true,
"isLimitedDomain": true,
"limitedDomain": "forms.app"
},
"productbasket": {
"tax": { "type": "includes" }
}
}The questionType value tells you which nested object to read:
questionType | Nested object | Guide |
|---|---|---|
fullname | fullname | Full name |
email | email | |
phone | phone | Phone |
address | address | Address |
text | text | Text (short, long, or masked) |
number | number | Number |
date | date | Date & time |
time | - | Date & time |
choice | choice | Selection fields (see sub-pages below) |
selectionmatrix | selectionmatrix | Selection matrix |
imageupload | imageUpload | Image upload |
fileupload | fileUpload | File upload |
drawing | drawing | Drawing & signature |
termsandconditions | termsandconditions | Terms & conditions |
imagecontent | media | Image content |
seperator | - | Separator |
wysiwyg | wysiwyg | Explanation |
timer | - | Timer |
For choice fields, the actual input style is determined by choice.subType: singlechoice, multiplechoice, yesno, dropdown, picturechoice, opinionscale, rating, or ranking.
- Settings: Form behaviour, thank-you pages, and visibility
- Customization: Design, logo, and submit button
- Fetching forms: Retrieve a form via the API