Skip to main content

Get Form Fields

The Get Form Fields API allows you to retrieve all fields defined in a specific form, including fields that only appear once another answer is given (conditional fields), fields inside tabs, and the fields inside a repeatable group. This endpoint returns detailed information about each field including its unique identifier, full qualified name, type, display name, and organizational context within the form structure.

API Endpoint​

GET {base_url}/ExtForm/forms/{formId}/fields

Path Parameters​

ParameterTypeRequiredDescription
formIdstringYesUnique identifier of the form for which to retrieve fields

Request Headers​

Authorization: Bearer {your_access_token}

Response​

The response contains a list of all fields in the specified form, including their identifiers, types, and organizational structure.

Response Structure​

{
"statusCode": 200,
"messages": [
"Processed successfully"
],
"result": {
"count": 50,
"fields": [
{
"fieldId": "3c2403cd-7067-4c08-821b-9fb2e5751c4f",
"fieldType": "DatePicker",
"fieldName": "Date of Birth",
"sectionName": "Personal Information",
"pageName": "Customer Details",
"pageId": "a56e3cbc-b6d3-4d49-881b-33d2c497adaf",
"isRequired": true
},
{
"fieldId": "9b1d0c22-4f8e-4a71-93c5-77c2a1e5d004",
"fieldType": "SingleOptionRadio",
"fieldName": "Are you a PEP?",
"sectionName": "Personal Information",
"pageName": "Customer Details",
"pageId": "a56e3cbc-b6d3-4d49-881b-33d2c497adaf",
"isRequired": true,
"options": [
{
"optionId": "1f0a7c53-6d24-4b0e-9f31-2a5c8e7b1d90",
"optionText": "Yes",
"optionValue": "1",
"order": 1
},
{
"optionId": "6c92b4a1-38df-4e57-8b02-9d1e4f6a7c33",
"optionText": "No",
"optionValue": "0",
"order": 2
}
]
},
// ... more fields
]
}
}

Response Fields​

FieldTypeDescription
countintegerTotal number of fields in the form
fieldsarrayList of field objects

Field Object Properties​

PropertyTypeDescription
fieldIdstringUnique identifier of the field
fieldTypestringField type from FieldTypeEnum (e.g., "Text", "DatePicker", "MultiOptionsCheckBox")
fieldNamestringDisplay name of the field
sectionNamestringName of the section containing the field
pageNamestringName of the page containing the field
pageIdstringId of the page containing the field — the pageId to pass to Get Submission to read this field's answer
isRequiredbooleanIndicates whether the field is required or not
optionsarraySelectable options, in configured order. Present only on SingleOptionSelect, SingleOptionRadio and MultiOptionsCheckBox fields; omitted for every other field type
parentFieldIdstringThe field this one belongs to, for a field that does not sit directly in a section. Omitted on section fields. See Conditional and nested fields
parentRelationstringHow the field belongs to parentFieldId: ConditionalRule, Tab or RepeatableGroup. Omitted on section fields
conditionobjectFor ConditionalRule fields only: the answer to parentFieldId that makes this field appear. See Condition Object Properties

Option Object Properties​

Returned in the options array of option-based fields.

PropertyTypeDescription
optionIdstringUnique identifier of the option. This is the value to send as optionId / optionIds in the Save Submission answer
optionTextstringDisplay text of the option, in the form's default language
optionValuestringConfigured value of the option
orderintegerDisplay position of the option within the field

Condition Object Properties​

Returned on fields whose parentRelation is ConditionalRule.

PropertyTypeDescription
operatorstringEquals, NotEquals or IsOneOf
valuesarray of stringCompared with the parent field's answer. For an option-based parent these are the parent's optionValues (not optionIds)

Conditional and nested fields​

Some fields do not sit directly in a section:

  • Conditional fields appear only when another field has a given answer — for example, "Do you have a PACI account?" appears only when Residency Status is Resident. A conditional field can itself reveal further conditional fields.
  • Tab fields sit inside a TabsControl field.
  • Repeatable group fields are the fields inside each entry of a RepeatableGroup field.

These are returned like any other field, after their parent in form order (a parent's nested fields come before its next sibling), with parentFieldId, parentRelation and (for conditional fields) condition. They take their pageName and sectionName from the section field they ultimately belong to.

{
"fieldId": "a2b08a44-b69d-47ac-9256-a4b003ff3109",
"fieldType": "SingleOptionSelect",
"fieldName": "Residency Status",
"sectionName": "",
"pageName": "Personal Information",
"pageId": "a56e3cbc-b6d3-4d49-881b-33d2c497adaf",
"isRequired": true,
"options": [
{ "optionId": "f65add9d-5106-48a8-a368-8c6a5f3b3b31", "optionText": "Resident of Kuwait", "optionValue": "1", "order": 1 },
{ "optionId": "a4956ed5-d439-4bd1-8326-ae421d32b255", "optionText": "Non-Resident of Kuwait", "optionValue": "2", "order": 2 }
]
},
{
"fieldId": "83104fd9-09a5-4c81-9895-4fd66a57dee0",
"fieldType": "SingleOptionRadio",
"fieldName": "Do you have a PACI account?",
"sectionName": "",
"pageName": "Personal Information",
"pageId": "a56e3cbc-b6d3-4d49-881b-33d2c497adaf",
"isRequired": true,
"options": [
{ "optionId": "d53e8fe1-6186-44e3-9867-f3aed84385b9", "optionText": "No", "optionValue": "2", "order": 0 },
{ "optionId": "a577d113-fe16-493e-8ff7-a193cd363817", "optionText": "Yes", "optionValue": "1", "order": 1 }
],
"parentFieldId": "a2b08a44-b69d-47ac-9256-a4b003ff3109",
"parentRelation": "ConditionalRule",
"condition": { "operator": "Equals", "values": ["1"] }
}

Here "Do you have a PACI account?" applies when Residency Status is answered with the option whose optionValue is "1" (Resident of Kuwait).

  • Answer a conditional field only when its condition is met by the answer you give its parent. isRequired on a conditional field means required when shown.
  • A repeatable group's child fieldIds are the ids used inside each group entry of the RepeatableGroup answer, not as top-level answers.

Example Usage​

Request​

GET {base_url}/ExtForm/forms/f4e72dba-7b5c-8g7h-9i8j-12k34l56m78n/fields
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...

Response​

{
"statusCode": 200,
"messages": [
"Processed successfully"
],
"result": {
"count": 4,
"fields": [
{
"fieldId": "3c2403cd-7067-4c08-821b-9fb2e5751c4f",
"fieldType": "DatePicker",
"fieldName": "Date of Birth",
"sectionName": "Details",
"pageName": "PersonalInfo",
"pageId": "9d1c2e44-7b3a-4f0e-8c5d-2e6f1a9b0c71",
"isRequired": true
},
{
"fieldId": "5d10fd74-658b-41d5-8fed-2d60d52a89c0",
"fieldType": "UserAddress",
"fieldName": "Address Details",
"sectionName": "Details",
"pageName": "PersonalInfo",
"pageId": "9d1c2e44-7b3a-4f0e-8c5d-2e6f1a9b0c71",
"isRequired": false
},
{
"fieldId": "308fec76-b67f-45ec-81e2-06cff19b7c35",
"fieldType": "Passport",
"fieldName": "Passport",
"sectionName": "Identity",
"pageName": "PersonalInfo",
"pageId": "9d1c2e44-7b3a-4f0e-8c5d-2e6f1a9b0c71",
"isRequired": true
},
{
"fieldId": "b5a91e07-2c48-4d6f-90ab-13e7c5d82f16",
"fieldType": "MultiOptionsCheckBox",
"fieldName": "Source of Income",
"sectionName": "Financials",
"pageName": "PersonalInfo",
"pageId": "9d1c2e44-7b3a-4f0e-8c5d-2e6f1a9b0c71",
"isRequired": true,
"options": [
{
"optionId": "e41c8b95-7a30-42df-b6e8-05f9c2a4d711",
"optionText": "Salary",
"optionValue": "SAL",
"order": 1
},
{
"optionId": "0d73f6b2-95ce-4817-a2d4-8b6e1f30c952",
"optionText": "Dividends",
"optionValue": "DIV",
"order": 2
}
]
}
]
}
}

Notes​

  • Use the field id (fieldId) when submitting answers through the Save Submission API
  • Fields are returned in form order (page, section, field), each conditional, tab or repeatable-group field after its parent. Link a nested field to its parent by parentFieldId, not by its position in the list
  • Field types determine the answer model required when submitting form responses
  • For SingleOptionSelect, SingleOptionRadio and MultiOptionsCheckBox fields, take the option ids from this endpoint's options array. These options are configured per field and are not available through the Lookup API, which serves only the shared reference lists (country, source of funds, PEP status, and similar)
  • Options disabled in the form configuration are not returned, so every returned optionId is valid to submit
  • An option-based field with no options configured returns an empty options array, while a field type that has no options omits the property entirely
  • optionText is returned in the form's default language; this endpoint does not apply translations
  • Some fields may have additional validation rules not exposed through this API

Error Handling​

Status CodeDescriptionSolution
400Invalid formId formatCheck the format of your formId parameter
403Insufficient permissionsVerify your authentication token and permissions
404Form not foundConfirm the form exists and the formId is correct
500Server errorContact support if the error persists