Fields
Settings · 2 operations
GET
List system field settings
/api/system-fieldWhich built-in fields of each entity (student, lead, lesson and others) are required or hidden in this school.
list_system_fields
Response · 200
application/json
statusCodeexample 200message—data1 field
systemFieldsFlat list for all entities, loaded once per app load.8 fields
entityOne of: STUDENT LEAD TEACHER USER CUSTOMER GROUP FINANCE_OPERATION LESSON TASKfield—isRequiredEffective requirement: the school override or the registry default.isLockedTechnically required; the toggle can't be turned off.isHiddenHidden from forms and never required, whatever the school set (e.g. middle name when the name format lacks it).ruleConditions that make the field required; null means only isRequired applies.labelSchool-defined label; null means use the frontend translation.hint—curl "https://your-school.rist.pro/api/system-field" \
-H "Authorization: Bearer $RIST_API_KEY"const response = await fetch("https://your-school.rist.pro/api/system-field", {
headers: {
Authorization: `Bearer ${process.env.RIST_API_KEY}`,
},
});
const { data } = await response.json();import os
import requests
response = requests.get(
"https://your-school.rist.pro/api/system-field",
headers={"Authorization": f"Bearer {os.environ['RIST_API_KEY']}"},
)
response.raise_for_status()
data = response.json()["data"]Response example · 200
{
"statusCode": 200,
"message": "Operation completed successfully",
"data": {
"systemFields": [
{
"entity": "STUDENT",
"field": "string",
"isRequired": false,
"isLocked": false,
"isHidden": false,
"rule": {},
"label": "string",
"hint": "string"
}
]
}
}GET
List custom fields
/api/custom-fieldCustom field definitions (optionally of one entity) with type, options and group. Pass values in customFields by definition id when creating or updating records.
list_custom_fields
Query parameters · 2
entityOne of: STUDENT LEAD TEACHER USER CUSTOMER GROUP FINANCE_OPERATION LESSON STUDENT_SUBSCRIPTION TASKisArchivaldefault falseResponse · 200
application/json
statusCodeexample 200message—data5 fields
total—totalPages—currentPage—customFieldDefinitions16 fields
customFieldDefinitionId—entityOne of: STUDENT LEAD TEACHER USER CUSTOMER GROUP FINANCE_OPERATION LESSON STUDENT_SUBSCRIPTION TASKlabel—typeOne of: URL TEXT TEXTAREA NUMBER DATE DATETIME TIME CHECKBOX SELECT MULTI_SELECTplaceholder—hint—isRequired—isShowInTable—rule—order—isArchival—groupId—valuesCount—options3 fields
customFieldOptionId—label—order—updatedAtformat YYYY-MM-DDTHH:mm:sscreatedAtformat YYYY-MM-DDTHH:mm:sscustomFieldGroups7 fields
customFieldGroupId—entityOne of: STUDENT LEAD TEACHER USER CUSTOMER GROUP FINANCE_OPERATION LESSON STUDENT_SUBSCRIPTION TASKlabel—order—isCollapsedByDefault—updatedAtformat YYYY-MM-DDTHH:mm:sscreatedAtformat YYYY-MM-DDTHH:mm:sscurl "https://your-school.rist.pro/api/custom-field?isArchival=false" \
-H "Authorization: Bearer $RIST_API_KEY"const response = await fetch("https://your-school.rist.pro/api/custom-field?isArchival=false", {
headers: {
Authorization: `Bearer ${process.env.RIST_API_KEY}`,
},
});
const { data } = await response.json();import os
import requests
response = requests.get(
"https://your-school.rist.pro/api/custom-field",
headers={"Authorization": f"Bearer {os.environ['RIST_API_KEY']}"},
params={
"isArchival": False
},
)
response.raise_for_status()
data = response.json()["data"]Response example · 200
{
"statusCode": 200,
"message": "Operation completed successfully",
"data": {
"total": 0,
"totalPages": 0,
"currentPage": 0,
"customFieldDefinitions": [
{
"customFieldDefinitionId": 1,
"entity": "STUDENT",
"label": "string",
"type": "URL",
"placeholder": "string",
"hint": "string",
"isRequired": false,
"isShowInTable": false,
"rule": {},
"order": 0,
"isArchival": false,
"groupId": 1,
"valuesCount": 0,
"options": [
{
"customFieldOptionId": 1,
"label": "string",
"order": 0
}
],
"updatedAt": "2026-11-09T14:30:00",
"createdAt": "2026-11-09T14:30:00"
}
],
"customFieldGroups": [
{
"customFieldGroupId": 1,
"entity": "STUDENT",
"label": "string",
"order": 0,
"isCollapsedByDefault": false,
"updatedAt": "2026-11-09T14:30:00",
"createdAt": "2026-11-09T14:30:00"
}
]
}
}