TasksTasks

Tasks

Tasks · 7 operations

GET

List tasks

/api/task

Tasks with filters: deadlineBucket (OVERDUE, TODAY, TOMORROW, WEEK, LATER), deadline range, completed range (completedStart/completedEnd with isCompleted=true), type, assignee. For "my tasks" pass assigneeUserIds with the current user id (iAmResponsible means the manager of the linked student, not the assignee). Paginated; "total" is the full count.

list_tasks

Query parameters · 28

pagenumbermin 1 · default 1
pageSizenumber1–250 · default 20
sortBystringrelevance: open tasks by deadline (overdue first), then completed ones; used by card lists.One of: isCompleted deadline relevance
sortOrderstringOne of: ASC DESC
taskIdsnumber[]—
deadlineBucketstringBoard column; its bounds are computed in the school time zone.One of: OVERDUE TODAY TOMORROW WEEK LATER
isCompletedboolean—
textOfTaskstring—
Show 20 more
deadlineStartstringPeriod start, a school-local calendar day.
deadlineEndstringPeriod end, inclusive: the end of that school-local day.
completedStartstringCompleted from, a school-local calendar day; pair with isCompleted=true.
completedEndstringCompleted until, inclusive: the end of that school-local day.
resultOfTaskstring—
typeIdnumber—
subtypeIdnumber—
assigneeUserIdnumber—
assigneeUserIdsnumber[]—
managerIdsnumber[]Manager of the linked student or lead, not the task assignee.
iAmResponsiblebooleanTasks whose linked student or lead is managed by the current user (taken from the session).
studentIdnumber—
studentIdsnumber[]—
withLeadTasksbooleanAlso include tasks of the student's leads, created before conversion.
leadIdnumber—
leadIdsnumber[]—
groupIdnumber—
groupIdsnumber[]—
isArchivalobjectrequireddefault false
cfstring[]—

Response · 200

application/json

statusCodenumberrequiredexample 200
messagestringrequired—
dataobject4 fields
totalnumberrequired—
totalPagesnumberrequired—
currentPagenumberrequired—
tasksobject[]required13 fields
taskIdnumberrequired—
textOfTaskstring—
isCompletedboolean—
completedAtstringnullableformat YYYY-MM-DDTHH:mm:ss
deadlinestringSchool-local wall time; a point in time only when hasTime is true.format YYYY-MM-DDTHH:mm:ss
hasTimeboolean—
resultOfTaskstringnullable—
notestringnullable—
isArchivalbooleanrequired—
updatedAtstringrequiredformat YYYY-MM-DDTHH:mm:ss
createdAtstringrequiredformat YYYY-MM-DDTHH:mm:ss
deadlineBucketstringBoard column, derived on read.One of: OVERDUE TODAY TOMORROW WEEK LATER
customFieldsobjectany keys
Errors400401403429500
curl "https://your-school.rist.pro/api/task?isArchival=false" \
  -H "Authorization: Bearer $RIST_API_KEY"
Response example · 200
{
  "statusCode": 200,
  "message": "Operation completed successfully",
  "data": {
    "total": 0,
    "totalPages": 0,
    "currentPage": 0,
    "tasks": [
      {
        "taskId": 1,
        "textOfTask": "string",
        "isCompleted": false,
        "completedAt": "2026-11-09T14:30:00",
        "deadline": "2026-11-09T14:30:00",
        "hasTime": false,
        "resultOfTask": "string",
        "note": "string",
        "isArchival": false,
        "updatedAt": "2026-11-09T14:30:00",
        "createdAt": "2026-11-09T14:30:00",
        "deadlineBucket": "OVERDUE",
        "customFields": {}
      }
    ]
  }
}
GET

How many tasks match the GET /api/task filters, per assignee, type or subtype (groupBy). E.g. overdue per manager: groupBy=assignee, deadlineBucket=OVERDUE. One call instead of paging through GET /api/task.

count_tasks

Query parameters · 25

cfstring[]—
taskIdsnumber[]—
deadlineBucketstringBoard column; its bounds are computed in the school time zone.One of: OVERDUE TODAY TOMORROW WEEK LATER
isCompletedboolean—
textOfTaskstring—
deadlineStartstringPeriod start, a school-local calendar day.
deadlineEndstringPeriod end, inclusive: the end of that school-local day.
completedStartstringCompleted from, a school-local calendar day; pair with isCompleted=true.
Show 17 more
completedEndstringCompleted until, inclusive: the end of that school-local day.
resultOfTaskstring—
typeIdnumber—
subtypeIdnumber—
assigneeUserIdnumber—
assigneeUserIdsnumber[]—
managerIdsnumber[]Manager of the linked student or lead, not the task assignee.
iAmResponsiblebooleanTasks whose linked student or lead is managed by the current user (taken from the session).
studentIdnumber—
studentIdsnumber[]—
withLeadTasksbooleanAlso include tasks of the student's leads, created before conversion.
leadIdnumber—
leadIdsnumber[]—
groupIdnumber—
groupIdsnumber[]—
isArchivalobjectrequireddefault false
groupBystringrequiredWhat to count tasks byOne of: assignee type subtype

Response · 200

application/json

statusCodenumberrequiredexample 200
messagestringrequired—
dataobject3 fields
omittedRowsnumberRows left out by the limit
totalnumberrequiredRecords matching the filters; a record counted in several rows (a student with two teachers) counts here once.
rowsobject[]required3 fields
idinteger | stringrequirednullableId of the grouped value (teacher id, stage id, weekday 1-7) or its code (lesson status); null means "no value".
namestringrequired—
countnumberrequired—
Errors400401403429500
curl "https://your-school.rist.pro/api/task/breakdown?isArchival=false&groupBy=assignee" \
  -H "Authorization: Bearer $RIST_API_KEY"
Response example · 200
{
  "statusCode": 200,
  "message": "Operation completed successfully",
  "data": {
    "omittedRows": 0,
    "total": 0,
    "rows": [
      {
        "id": 1,
        "name": "string",
        "count": 0
      }
    ]
  }
}
GET

Get task

/api/task/{id}

One task with assignee, deadline and linked student, lead or group.

get_task

Path parameters · 1

idnumberrequired—

Response · 200

application/json

statusCodenumberrequiredexample 200
messagestringrequired—
dataobject13 fields
taskIdnumberrequired—
textOfTaskstring—
isCompletedboolean—
completedAtstringnullableformat YYYY-MM-DDTHH:mm:ss
deadlinestringSchool-local wall time; a point in time only when hasTime is true.format YYYY-MM-DDTHH:mm:ss
hasTimeboolean—
resultOfTaskstringnullable—
notestringnullable—
isArchivalbooleanrequired—
updatedAtstringrequiredformat YYYY-MM-DDTHH:mm:ss
createdAtstringrequiredformat YYYY-MM-DDTHH:mm:ss
deadlineBucketstringBoard column, derived on read.One of: OVERDUE TODAY TOMORROW WEEK LATER
customFieldsobjectany keys
Errors400401403429500
curl "https://your-school.rist.pro/api/task/1" \
  -H "Authorization: Bearer $RIST_API_KEY"
Response example · 200
{
  "statusCode": 200,
  "message": "Operation completed successfully",
  "data": {
    "taskId": 1,
    "textOfTask": "string",
    "isCompleted": false,
    "completedAt": "2026-11-09T14:30:00",
    "deadline": "2026-11-09T14:30:00",
    "hasTime": false,
    "resultOfTask": "string",
    "note": "string",
    "isArchival": false,
    "updatedAt": "2026-11-09T14:30:00",
    "createdAt": "2026-11-09T14:30:00",
    "deadlineBucket": "OVERDUE",
    "customFields": {}
  }
}
POST

Create task

/api/task

Create a task for a staff member, optionally linked to a student, lead or group. Deadline is school local time.

create_task

Request body

application/json · object

textOfTaskstringrequiredlength 1–3000
typeIdnumberTask type; defaults to the school's default type.min 1
subtypeIdnumbernullablemin 1
deadlinestringSchool-local wall time; defaults to the start of tomorrow. With hasTime false it means the whole day.
hasTimeboolean—
assigneeUserIdnumberDefaults to the task author.min 1
notestringnullablelength max 1500
studentIdsnumber[]nullablemin 1
leadIdsnumber[]nullablemin 1
groupIdsnumber[]nullablemin 1
customFieldsobjectany keys

Response · 201

application/json

statusCodenumberrequiredexample 201
messagestringrequired—
dataobject13 fields
taskIdnumberrequired—
textOfTaskstring—
isCompletedboolean—
completedAtstringnullableformat YYYY-MM-DDTHH:mm:ss
deadlinestringSchool-local wall time; a point in time only when hasTime is true.format YYYY-MM-DDTHH:mm:ss
hasTimeboolean—
resultOfTaskstringnullable—
notestringnullable—
isArchivalbooleanrequired—
updatedAtstringrequiredformat YYYY-MM-DDTHH:mm:ss
createdAtstringrequiredformat YYYY-MM-DDTHH:mm:ss
deadlineBucketstringBoard column, derived on read.One of: OVERDUE TODAY TOMORROW WEEK LATER
customFieldsobjectany keys
Errors400401403429500
curl -X POST "https://your-school.rist.pro/api/task" \
  -H "Authorization: Bearer $RIST_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "textOfTask": "string",
    "typeId": 1,
    "subtypeId": 1,
    "deadline": "string",
    "hasTime": false,
    "assigneeUserId": 1,
    "note": "string",
    "studentIds": [
      1
    ],
    "leadIds": [
      1
    ],
    "groupIds": [
      1
    ],
    "customFields": {}
  }'
Response example · 201
{
  "statusCode": 201,
  "message": "Operation completed successfully",
  "data": {
    "taskId": 1,
    "textOfTask": "string",
    "isCompleted": false,
    "completedAt": "2026-11-09T14:30:00",
    "deadline": "2026-11-09T14:30:00",
    "hasTime": false,
    "resultOfTask": "string",
    "note": "string",
    "isArchival": false,
    "updatedAt": "2026-11-09T14:30:00",
    "createdAt": "2026-11-09T14:30:00",
    "deadlineBucket": "OVERDUE",
    "customFields": {}
  }
}
PATCH

Update task

/api/task/{id}

Change fields of a task. Send only the fields to change.

update_task

Path parameters · 1

idnumberrequired—

Request body

application/json · object

textOfTaskstringlength 1–3000
typeIdnumberTask type; defaults to the school's default type.min 1
subtypeIdnumbernullablemin 1
deadlinestringSchool-local wall time; defaults to the start of tomorrow. With hasTime false it means the whole day.
hasTimeboolean—
assigneeUserIdnumberDefaults to the task author.min 1
notestringnullablelength max 1500
studentIdsnumber[]nullablemin 1
leadIdsnumber[]nullablemin 1
groupIdsnumber[]nullablemin 1
customFieldsobjectany keys
resultOfTaskstringnullablelength max 3000
deadlineBucketstringBoard column to move the task to; the server derives the deadline. Mutually exclusive with deadline.One of: OVERDUE TODAY TOMORROW WEEK LATER

Response · 200

application/json

statusCodenumberrequiredexample 200
messagestringrequired—
dataobject13 fields
taskIdnumberrequired—
textOfTaskstring—
isCompletedboolean—
completedAtstringnullableformat YYYY-MM-DDTHH:mm:ss
deadlinestringSchool-local wall time; a point in time only when hasTime is true.format YYYY-MM-DDTHH:mm:ss
hasTimeboolean—
resultOfTaskstringnullable—
notestringnullable—
isArchivalbooleanrequired—
updatedAtstringrequiredformat YYYY-MM-DDTHH:mm:ss
createdAtstringrequiredformat YYYY-MM-DDTHH:mm:ss
deadlineBucketstringBoard column, derived on read.One of: OVERDUE TODAY TOMORROW WEEK LATER
customFieldsobjectany keys
Errors400401403429500
curl -X PATCH "https://your-school.rist.pro/api/task/1" \
  -H "Authorization: Bearer $RIST_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "textOfTask": "string",
    "typeId": 1,
    "subtypeId": 1,
    "deadline": "string",
    "hasTime": false,
    "assigneeUserId": 1,
    "note": "string",
    "studentIds": [
      1
    ],
    "leadIds": [
      1
    ],
    "groupIds": [
      1
    ],
    "customFields": {},
    "resultOfTask": "string",
    "deadlineBucket": "OVERDUE"
  }'
Response example · 200
{
  "statusCode": 200,
  "message": "Operation completed successfully",
  "data": {
    "taskId": 1,
    "textOfTask": "string",
    "isCompleted": false,
    "completedAt": "2026-11-09T14:30:00",
    "deadline": "2026-11-09T14:30:00",
    "hasTime": false,
    "resultOfTask": "string",
    "note": "string",
    "isArchival": false,
    "updatedAt": "2026-11-09T14:30:00",
    "createdAt": "2026-11-09T14:30:00",
    "deadlineBucket": "OVERDUE",
    "customFields": {}
  }
}
PATCH

Complete task

/api/task/complete/{id}

Mark a task as completed, optionally with a result (resultOfTask) and a follow-up task (next).

complete_task

Path parameters · 1

idnumberrequired—

Request body

application/json · object

resultOfTaskstringnullablelength max 3000
nextobject11 fields
textOfTaskstringrequiredlength 1–3000
typeIdnumberTask type; defaults to the school's default type.min 1
subtypeIdnumbernullablemin 1
deadlinestringSchool-local wall time; defaults to the start of tomorrow. With hasTime false it means the whole day.
hasTimeboolean—
assigneeUserIdnumberDefaults to the task author.min 1
notestringnullablelength max 1500
studentIdsnumber[]nullablemin 1
leadIdsnumber[]nullablemin 1
groupIdsnumber[]nullablemin 1
customFieldsobjectany keys

Response · 200

application/json

statusCodenumberrequiredexample 200
messagestringrequired—
dataobject2 fields
completedobjectrequired13 fields
taskIdnumberrequired—
textOfTaskstring—
isCompletedboolean—
completedAtstringnullableformat YYYY-MM-DDTHH:mm:ss
deadlinestringSchool-local wall time; a point in time only when hasTime is true.format YYYY-MM-DDTHH:mm:ss
hasTimeboolean—
resultOfTaskstringnullable—
notestringnullable—
isArchivalbooleanrequired—
updatedAtstringrequiredformat YYYY-MM-DDTHH:mm:ss
createdAtstringrequiredformat YYYY-MM-DDTHH:mm:ss
deadlineBucketstringBoard column, derived on read.One of: OVERDUE TODAY TOMORROW WEEK LATER
customFieldsobjectany keys
nextobjectrequirednullableThe follow-up task created with the completion, if one was asked for.13 fields
taskIdnumberrequired—
textOfTaskstring—
isCompletedboolean—
completedAtstringnullableformat YYYY-MM-DDTHH:mm:ss
deadlinestringSchool-local wall time; a point in time only when hasTime is true.format YYYY-MM-DDTHH:mm:ss
hasTimeboolean—
resultOfTaskstringnullable—
notestringnullable—
isArchivalbooleanrequired—
updatedAtstringrequiredformat YYYY-MM-DDTHH:mm:ss
createdAtstringrequiredformat YYYY-MM-DDTHH:mm:ss
deadlineBucketstringBoard column, derived on read.One of: OVERDUE TODAY TOMORROW WEEK LATER
customFieldsobjectany keys
Errors400401403429500
curl -X PATCH "https://your-school.rist.pro/api/task/complete/1" \
  -H "Authorization: Bearer $RIST_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "resultOfTask": "string",
    "next": {
      "textOfTask": "string",
      "typeId": 1,
      "subtypeId": 1,
      "deadline": "string",
      "hasTime": false,
      "assigneeUserId": 1,
      "note": "string",
      "studentIds": [
        1
      ],
      "leadIds": [
        1
      ],
      "groupIds": [
        1
      ],
      "customFields": {}
    }
  }'
Response example · 200
{
  "statusCode": 200,
  "message": "Operation completed successfully",
  "data": {
    "completed": {
      "taskId": 1,
      "textOfTask": "string",
      "isCompleted": false,
      "completedAt": "2026-11-09T14:30:00",
      "deadline": "2026-11-09T14:30:00",
      "hasTime": false,
      "resultOfTask": "string",
      "note": "string",
      "isArchival": false,
      "updatedAt": "2026-11-09T14:30:00",
      "createdAt": "2026-11-09T14:30:00",
      "deadlineBucket": "OVERDUE",
      "customFields": {}
    },
    "next": {
      "taskId": 1,
      "textOfTask": "string",
      "isCompleted": false,
      "completedAt": "2026-11-09T14:30:00",
      "deadline": "2026-11-09T14:30:00",
      "hasTime": false,
      "resultOfTask": "string",
      "note": "string",
      "isArchival": false,
      "updatedAt": "2026-11-09T14:30:00",
      "createdAt": "2026-11-09T14:30:00",
      "deadlineBucket": "OVERDUE",
      "customFields": {}
    }
  }
}
PATCH

Reopen task

/api/task/reopen/{id}

Return a completed task to open. Fails if the task is not completed; may trigger automations.

reopen_task

Path parameters · 1

idnumberrequired—

Response · 200

application/json

statusCodenumberrequiredexample 200
messagestringrequired—
dataobject13 fields
taskIdnumberrequired—
textOfTaskstring—
isCompletedboolean—
completedAtstringnullableformat YYYY-MM-DDTHH:mm:ss
deadlinestringSchool-local wall time; a point in time only when hasTime is true.format YYYY-MM-DDTHH:mm:ss
hasTimeboolean—
resultOfTaskstringnullable—
notestringnullable—
isArchivalbooleanrequired—
updatedAtstringrequiredformat YYYY-MM-DDTHH:mm:ss
createdAtstringrequiredformat YYYY-MM-DDTHH:mm:ss
deadlineBucketstringBoard column, derived on read.One of: OVERDUE TODAY TOMORROW WEEK LATER
customFieldsobjectany keys
Errors400401403429500
curl -X PATCH "https://your-school.rist.pro/api/task/reopen/1" \
  -H "Authorization: Bearer $RIST_API_KEY"
Response example · 200
{
  "statusCode": 200,
  "message": "Operation completed successfully",
  "data": {
    "taskId": 1,
    "textOfTask": "string",
    "isCompleted": false,
    "completedAt": "2026-11-09T14:30:00",
    "deadline": "2026-11-09T14:30:00",
    "hasTime": false,
    "resultOfTask": "string",
    "note": "string",
    "isArchival": false,
    "updatedAt": "2026-11-09T14:30:00",
    "createdAt": "2026-11-09T14:30:00",
    "deadlineBucket": "OVERDUE",
    "customFields": {}
  }
}