SettingsRoles

Roles

Settings · 2 operations

GET

List roles

/api/role

Roles of the school with their rights. A role has nameOfRole, interface (ADMINISTRATOR, MANAGER, TEACHER, CUSTOMER, STUDENT: which part of the CRM its users get), level (1-1000; the user may manage only roles below their own level, the owner is 1000), note, pages (menu items: {: {visible, order}}) and permission: a tree of entities, each with actions {: true/false}, fields {: {view, edit}}, sometimes endpoints {: true/false}, own (true = only records of the user) and nested entities (teacher.wage). Anything not true is denied. Every role carries its whole permission tree (about 12,000 characters), so filter by nameOfRole or roleIds, or read one with GET /api/role/{id}. Archived roles only with isArchival=true.

list_roles

Query parameters · 10

pagenumbermin 1 · default 1
pageSizenumber1–250 · default 20
sortBystringOne of: nameOfRole interface level
sortOrderstringOne of: ASC DESC
roleIdsnumber[]—
nameOfRolestringrequiredlength max 150
interfacestring[]One of: STUDENT TEACHER CUSTOMER MANAGER ADMINISTRATOR
notestringrequired—
maxLevelnumber—
isArchivalobjectrequireddefault false

Response · 200

application/json

statusCodenumberrequiredexample 200
messagestringrequired—
dataobject4 fields
totalnumberrequired—
totalPagesnumberrequired—
currentPagenumberrequired—
rolesobject[]required10 fields
roleIdnumberrequired—
nameOfRolestringrequired—
interfacestringrequiredOne of: STUDENT TEACHER CUSTOMER MANAGER ADMINISTRATOR
permissionobjectrequired—
pagesobjectrequired—
levelnumberrequired—
notestringrequirednullable—
isArchivalbooleanrequired—
updatedAtstringrequiredformat YYYY-MM-DDTHH:mm:ss
createdAtstringrequiredformat YYYY-MM-DDTHH:mm:ss
Errors400401403429500
curl "https://your-school.rist.pro/api/role?nameOfRole=string&note=string&isArchival=false" \
  -H "Authorization: Bearer $RIST_API_KEY"
Response example · 200
{
  "statusCode": 200,
  "message": "Operation completed successfully",
  "data": {
    "total": 0,
    "totalPages": 0,
    "currentPage": 0,
    "roles": [
      {
        "roleId": 1,
        "nameOfRole": "string",
        "interface": "STUDENT",
        "permission": {},
        "pages": {},
        "level": 0,
        "note": "string",
        "isArchival": false,
        "updatedAt": "2026-11-09T14:30:00",
        "createdAt": "2026-11-09T14:30:00"
      }
    ]
  }
}
GET

Get role

/api/role/{id}

One role with its menu pages and full permission tree. A role has nameOfRole, interface (ADMINISTRATOR, MANAGER, TEACHER, CUSTOMER, STUDENT: which part of the CRM its users get), level (1-1000; the user may manage only roles below their own level, the owner is 1000), note, pages (menu items: {: {visible, order}}) and permission: a tree of entities, each with actions {: true/false}, fields {: {view, edit}}, sometimes endpoints {: true/false}, own (true = only records of the user) and nested entities (teacher.wage). Anything not true is denied.

get_role

Path parameters · 1

idnumberrequired—

Response · 200

application/json

statusCodenumberrequiredexample 200
messagestringrequired—
dataobject10 fields
roleIdnumberrequired—
nameOfRolestringrequired—
interfacestringrequiredOne of: STUDENT TEACHER CUSTOMER MANAGER ADMINISTRATOR
permissionobjectrequired—
pagesobjectrequired—
levelnumberrequired—
notestringrequirednullable—
isArchivalbooleanrequired—
updatedAtstringrequiredformat YYYY-MM-DDTHH:mm:ss
createdAtstringrequiredformat YYYY-MM-DDTHH:mm:ss
Errors400401403429500
curl "https://your-school.rist.pro/api/role/1" \
  -H "Authorization: Bearer $RIST_API_KEY"
Response example · 200
{
  "statusCode": 200,
  "message": "Operation completed successfully",
  "data": {
    "roleId": 1,
    "nameOfRole": "string",
    "interface": "STUDENT",
    "permission": {},
    "pages": {},
    "level": 0,
    "note": "string",
    "isArchival": false,
    "updatedAt": "2026-11-09T14:30:00",
    "createdAt": "2026-11-09T14:30:00"
  }
}