curl --request POST \
--url https://{subdomain}.nudj.cx/api/v2/admin/variables \
--header 'Content-Type: application/json' \
--header 'x-api-token: <api-key>' \
--data '
{
"name": "<string>",
"label": "<string>",
"placeholder": "<string>",
"useDefaultProfileValue": true,
"availableInQuestionBank": true,
"maxValueOccurrences": 2,
"isSingleOutputPerUser": true,
"isImmutable": true,
"prerequisiteVariableConfigIds": [
"<string>"
],
"options": [
{
"key": "<string>",
"value": "<string>"
}
],
"validationRegex": "<string>"
}
'import requests
url = "https://{subdomain}.nudj.cx/api/v2/admin/variables"
payload = {
"name": "<string>",
"label": "<string>",
"placeholder": "<string>",
"useDefaultProfileValue": True,
"availableInQuestionBank": True,
"maxValueOccurrences": 2,
"isSingleOutputPerUser": True,
"isImmutable": True,
"prerequisiteVariableConfigIds": ["<string>"],
"options": [
{
"key": "<string>",
"value": "<string>"
}
],
"validationRegex": "<string>"
}
headers = {
"x-api-token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-token': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
label: '<string>',
placeholder: '<string>',
useDefaultProfileValue: true,
availableInQuestionBank: true,
maxValueOccurrences: 2,
isSingleOutputPerUser: true,
isImmutable: true,
prerequisiteVariableConfigIds: ['<string>'],
options: [{key: '<string>', value: '<string>'}],
validationRegex: '<string>'
})
};
fetch('https://{subdomain}.nudj.cx/api/v2/admin/variables', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://{subdomain}.nudj.cx/api/v2/admin/variables",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'label' => '<string>',
'placeholder' => '<string>',
'useDefaultProfileValue' => true,
'availableInQuestionBank' => true,
'maxValueOccurrences' => 2,
'isSingleOutputPerUser' => true,
'isImmutable' => true,
'prerequisiteVariableConfigIds' => [
'<string>'
],
'options' => [
[
'key' => '<string>',
'value' => '<string>'
]
],
'validationRegex' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-token: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://{subdomain}.nudj.cx/api/v2/admin/variables"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"label\": \"<string>\",\n \"placeholder\": \"<string>\",\n \"useDefaultProfileValue\": true,\n \"availableInQuestionBank\": true,\n \"maxValueOccurrences\": 2,\n \"isSingleOutputPerUser\": true,\n \"isImmutable\": true,\n \"prerequisiteVariableConfigIds\": [\n \"<string>\"\n ],\n \"options\": [\n {\n \"key\": \"<string>\",\n \"value\": \"<string>\"\n }\n ],\n \"validationRegex\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-token", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://{subdomain}.nudj.cx/api/v2/admin/variables")
.header("x-api-token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"label\": \"<string>\",\n \"placeholder\": \"<string>\",\n \"useDefaultProfileValue\": true,\n \"availableInQuestionBank\": true,\n \"maxValueOccurrences\": 2,\n \"isSingleOutputPerUser\": true,\n \"isImmutable\": true,\n \"prerequisiteVariableConfigIds\": [\n \"<string>\"\n ],\n \"options\": [\n {\n \"key\": \"<string>\",\n \"value\": \"<string>\"\n }\n ],\n \"validationRegex\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{subdomain}.nudj.cx/api/v2/admin/variables")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-token"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"label\": \"<string>\",\n \"placeholder\": \"<string>\",\n \"useDefaultProfileValue\": true,\n \"availableInQuestionBank\": true,\n \"maxValueOccurrences\": 2,\n \"isSingleOutputPerUser\": true,\n \"isImmutable\": true,\n \"prerequisiteVariableConfigIds\": [\n \"<string>\"\n ],\n \"options\": [\n {\n \"key\": \"<string>\",\n \"value\": \"<string>\"\n }\n ],\n \"validationRegex\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"organisationId": "<string>",
"type": "form-short-text",
"name": "<string>",
"label": "<string>",
"useDefaultProfileValue": true,
"availableInQuestionBank": true,
"maxValueOccurrences": 2,
"isSingleOutputPerUser": true,
"isImmutable": true,
"createdAt": "<string>",
"createdBy": "<string>",
"placeholder": "<string>",
"prerequisiteVariableConfigIds": [
"<string>"
],
"options": [
{
"key": "<string>",
"value": "<string>"
}
],
"validationRegex": "<string>",
"validationEndpointConfig": {
"url": "<string>",
"method": "<string>",
"headers": {}
},
"updatedAt": "<string>",
"updatedBy": "<string>"
}{
"code": "BAD_REQUEST",
"message": "Invalid input data",
"issues": []
}{
"code": "INTERNAL_SERVER_ERROR",
"message": "Internal server error",
"issues": []
}Create a new variable config
Creates a new variable configuration for collecting user data.
curl --request POST \
--url https://{subdomain}.nudj.cx/api/v2/admin/variables \
--header 'Content-Type: application/json' \
--header 'x-api-token: <api-key>' \
--data '
{
"name": "<string>",
"label": "<string>",
"placeholder": "<string>",
"useDefaultProfileValue": true,
"availableInQuestionBank": true,
"maxValueOccurrences": 2,
"isSingleOutputPerUser": true,
"isImmutable": true,
"prerequisiteVariableConfigIds": [
"<string>"
],
"options": [
{
"key": "<string>",
"value": "<string>"
}
],
"validationRegex": "<string>"
}
'import requests
url = "https://{subdomain}.nudj.cx/api/v2/admin/variables"
payload = {
"name": "<string>",
"label": "<string>",
"placeholder": "<string>",
"useDefaultProfileValue": True,
"availableInQuestionBank": True,
"maxValueOccurrences": 2,
"isSingleOutputPerUser": True,
"isImmutable": True,
"prerequisiteVariableConfigIds": ["<string>"],
"options": [
{
"key": "<string>",
"value": "<string>"
}
],
"validationRegex": "<string>"
}
headers = {
"x-api-token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-token': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
label: '<string>',
placeholder: '<string>',
useDefaultProfileValue: true,
availableInQuestionBank: true,
maxValueOccurrences: 2,
isSingleOutputPerUser: true,
isImmutable: true,
prerequisiteVariableConfigIds: ['<string>'],
options: [{key: '<string>', value: '<string>'}],
validationRegex: '<string>'
})
};
fetch('https://{subdomain}.nudj.cx/api/v2/admin/variables', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://{subdomain}.nudj.cx/api/v2/admin/variables",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'label' => '<string>',
'placeholder' => '<string>',
'useDefaultProfileValue' => true,
'availableInQuestionBank' => true,
'maxValueOccurrences' => 2,
'isSingleOutputPerUser' => true,
'isImmutable' => true,
'prerequisiteVariableConfigIds' => [
'<string>'
],
'options' => [
[
'key' => '<string>',
'value' => '<string>'
]
],
'validationRegex' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-token: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://{subdomain}.nudj.cx/api/v2/admin/variables"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"label\": \"<string>\",\n \"placeholder\": \"<string>\",\n \"useDefaultProfileValue\": true,\n \"availableInQuestionBank\": true,\n \"maxValueOccurrences\": 2,\n \"isSingleOutputPerUser\": true,\n \"isImmutable\": true,\n \"prerequisiteVariableConfigIds\": [\n \"<string>\"\n ],\n \"options\": [\n {\n \"key\": \"<string>\",\n \"value\": \"<string>\"\n }\n ],\n \"validationRegex\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-token", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://{subdomain}.nudj.cx/api/v2/admin/variables")
.header("x-api-token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"label\": \"<string>\",\n \"placeholder\": \"<string>\",\n \"useDefaultProfileValue\": true,\n \"availableInQuestionBank\": true,\n \"maxValueOccurrences\": 2,\n \"isSingleOutputPerUser\": true,\n \"isImmutable\": true,\n \"prerequisiteVariableConfigIds\": [\n \"<string>\"\n ],\n \"options\": [\n {\n \"key\": \"<string>\",\n \"value\": \"<string>\"\n }\n ],\n \"validationRegex\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{subdomain}.nudj.cx/api/v2/admin/variables")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-token"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"label\": \"<string>\",\n \"placeholder\": \"<string>\",\n \"useDefaultProfileValue\": true,\n \"availableInQuestionBank\": true,\n \"maxValueOccurrences\": 2,\n \"isSingleOutputPerUser\": true,\n \"isImmutable\": true,\n \"prerequisiteVariableConfigIds\": [\n \"<string>\"\n ],\n \"options\": [\n {\n \"key\": \"<string>\",\n \"value\": \"<string>\"\n }\n ],\n \"validationRegex\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"organisationId": "<string>",
"type": "form-short-text",
"name": "<string>",
"label": "<string>",
"useDefaultProfileValue": true,
"availableInQuestionBank": true,
"maxValueOccurrences": 2,
"isSingleOutputPerUser": true,
"isImmutable": true,
"createdAt": "<string>",
"createdBy": "<string>",
"placeholder": "<string>",
"prerequisiteVariableConfigIds": [
"<string>"
],
"options": [
{
"key": "<string>",
"value": "<string>"
}
],
"validationRegex": "<string>",
"validationEndpointConfig": {
"url": "<string>",
"method": "<string>",
"headers": {}
},
"updatedAt": "<string>",
"updatedBy": "<string>"
}{
"code": "BAD_REQUEST",
"message": "Invalid input data",
"issues": []
}{
"code": "INTERNAL_SERVER_ERROR",
"message": "Internal server error",
"issues": []
}Authorizations
Body
The input required to create a variable config
The name of the variable
Determines how the variable should be rendered in the UI (e.g., text input, select dropdown, date picker, etc.)
form-short-text, form-long-text, form-number, form-select, form-checkbox, form-email, form-name, form-address, form-date The label of the variable
The placeholder text
Whether to use the default profile value
Whether this variable is available in the question bank
The maximum number of times a unique value can be used across all instances of this variable
x >= 1Whether a user can only have one output for this variable
Whether the value, once set by a user, cannot be changed
The variable configs that must be completed before this one
^[0-9a-fA-F]{24}$An array of predefined values that users can choose from when the type is set to select
Show child attributes
Show child attributes
Regular expression pattern to validate variable values. If set, values must match this pattern.
Response
Successful response
A variable configuration
The id of the variable config
^[0-9a-fA-F]{24}$The organisation that the variable config belongs to
^[0-9a-fA-F]{24}$Determines how the variable should be rendered in the UI (e.g., text input, select dropdown, date picker, etc.)
form-short-text, form-long-text, form-number, form-select, form-checkbox, form-email, form-name, form-address, form-date The name of the variable
The label of the variable
Whether to use the default profile value
Whether this variable is available in the question bank
The maximum number of times a unique value can be used across all instances of this variable
x >= 1Whether a user can only have one output for this variable
Whether the value, once set by a user, cannot be changed
The date when this variable config was created
The user who created this variable config
^[0-9a-fA-F]{24}$The placeholder text
The variable configs that must be completed before this one
^[0-9a-fA-F]{24}$An array of predefined values that users can choose from when the type is set to select
Show child attributes
Show child attributes
Regular expression pattern to validate variable values. If set, values must match this pattern.
Configuration for validating variable values
Show child attributes
Show child attributes
The date when this variable config was last updated
The user who last updated this variable config
^[0-9a-fA-F]{24}$Was this page helpful?

