Form Field
Discriminated union of all field types that can appear on a form. The concrete variant is selected by type.
- Short Text
- Long Text
- Radio
- Checkbox
- Dropdown
- Number
- Email
- Phone
- Date
- Name
- URL
- Address
- Rating
- NPS
- Upload
- Cascade
- Ranking
- Matrix Input
- Likert Scale
- Time
- Location
- Signature
- Grid Rating
- Table
- Product
- Booking
- Linked Form
- Page Break
- Description
One field on a form, as returned in a form detail response. Every field returns the
shared keys (label, api_code, notes, private, required, ...) plus its type-specific
configuration determined by type — see the per-type sections below. The type-specific
keys on read mirror what the same field type accepts on create / update, so a fetched
form can be sent straight back through create / update without losing any setting.
Field type identifier. Determines which type-specific keys are present on the field.
short_text "short_text"
"Name"
Stable identifier of the field; used as the key for this field's value in entry payloads.
Always present on read. On form create / update, api_code is optional in the request body:
- Omit to add a new field — the server auto-generates an
api_code(e.g.field_3). - Provide an existing
api_codeto target an existing field for update; fields whoseapi_codeis absent from the request are dropped.
The same rule applies to every other api_code-bearing sub-object on a field (e.g. choices, and statements/dimensions/levels of matrix, likert, cascade).
"field_1"
"Please use your real name"
Whether the field is private
false
true
Override the default validation error message (max 50 chars). Null when not set.
Default value pre-filled when the form opens.
Greyed hint text shown when empty.
Scoring answers for this field. Only meaningful when the parent form's scene
is exam or evaluation and the field type is one of the scorable types
(radio, checkbox, dropdown, short_text, long_text, number, likert, rating).
exam: exactly one answer entry per field. Forcheckboxtheanswerarray may carry multiple choice indices; for the other choice / text / number types it carries a single value.likertandratingare not supported inexamscene.evaluation: applies to choice-bearing fields,likert, andrating. Theanswersarray must contain one entry per scoreable position:- choice-bearing (
radio/checkbox/dropdown) andlikert: one entry per element ofchoices, positionally aligned (entryiscores thei-th choice). On read theanswerkey is a single-element array[<0-based choice position>]. On write theanswerkey is ignored (positional alignment withchoices). rating: one entry per rating level (size must equalrating_max, default 5), positionally aligned with levels 1..rating_max. On read theanswerkey is a single-element array[<0-based position>](level − 1). On write theanswerkey is ignored.
- choice-bearing (
Optional explanation shown to respondents after grading. Only honored in exam scene.