Skip to main content

Request headers

string
required
The service user’s API token in the Bearer YOUR_TOKEN format. The school owner issues the token in the admin panel: Manage → School → For developers → API keys — see the “Authentication” section for details.
integer
required
The numeric ID of the seller — the account the school belongs to. Copy it on the API keys page, in the Integration data → Identifiers card. The token’s permissions are checked against this ID.
integer
required
The numeric ID of the school, found in the same place as Seller-Id. The value must match the seller’s school — otherwise a 400 error with cause: "ForbiddenSchoolMismatch" is returned.
Grades are the levels of the school’s career ladder (for example, Junior → Middle → Senior). There is one grade ladder for all positions of the school. A grade is assigned to an employee on hiring, promotion and transfer (see employments) and is used to calculate readiness for the next grade.
All staff module endpoints are available only to schools in the corporate segment (Corporate). Requests from schools in other segments are rejected.

Permission requirements

Reading (list) requires the “Staff browsing” permission (StaffView). Creating, updating and deleting require the “Staff Management” permission (StaffManage). In all cases, token authentication is required and the school must belong to the Corporate segment.
The service user must be authenticated with a token and have the appropriate access rights to the specified school.

How the ladder works

Order. The order field is the grade’s place on the ladder: the higher the order, the higher the grade. A new grade is created at the top of the ladder. The order of grades is changed in the interface (School → Structure → Grades, by dragging a row); the REST API does not change the order. The grade list is always returned from the lowest grade to the highest.
Enabling grades. Grades are enabled in the “Grades” section of the interface. The ladder can be set up in advance — via the API or in the interface — but a grade can be assigned to an employee (gradeId in hire, toGradeId in promote and transfer) only after grades are enabled; otherwise the StaffGradesDisabled error is returned.
Position grades. A position can limit the list of grades that fit it — the gradeIds parameter when creating and updating a position. If no limit is set, any grade of the school fits the position. An employee can be assigned only a grade of their position; otherwise StaffGradeNotForPosition is returned.
Transition conditions. The conditions for moving to a grade (the courses an employee in a specific position has to complete) are configured in the interface. Readiness for the next grade is calculated from them — employees who have met every condition can be fetched with the readyForPromotion filter of the employment list.
A grade name is unique within the school, case-insensitive (“Senior” and “senior” are the same name). Creating a grade with, or renaming a grade to, a name that already exists in the same school returns the StaffGradeNameIsNotUniq error.
The extId field is the grade’s external ID from the client’s system (CRM/1C, for example a GUID). It is unique within the school among non-deleted records. 1 to 50 characters, cannot contain / or whitespace characters, because the value is used in ext/{extId} paths.

List grades

Requires authentication and the “Staff browsing” permission (StaffView).
The endpoint returns a paginated list of grades ordered by order — from the lowest grade to the highest. Pagination and filter parameters are passed as query parameters.

Parameters

integer
Number of records to skip (offset pagination). Minimum 0.
integer
Number of records returned per page. From 1 to 1000.
integer
Page number (alternative to skip). Minimum 1.
integer[]
Filter by grade IDs. Up to 250 values.
string[]
Filter by a list of external IDs (extId). Up to 250 values, each at most 50 characters.
integer
Grades that fit the position: its own list of grades, or every grade of the school if the position has no limit.
Search by grade name. Maximum 50 characters. The search is fuzzy (it also finds partial matches), so to find a specific grade by name, compare the name of the found records with your value case-insensitively — or, more reliably, search by extIds.

Response

object
required
Paginated object: items (array of grades), page, count, pages, isFirst, isLast, next, prev.

Create a grade

Requires authentication and the “Staff Management” permission (StaffManage).
A new grade goes to the top of the ladder — it gets the highest order in the school. To put it in another place, change the order in the interface.

Request parameters

string
required
Grade name. 1 to 100 characters. Leading and trailing spaces are trimmed automatically. Must be unique within the school.
string | null
Grade description — how it differs from the neighbouring grades. Up to 500 characters. Leading and trailing spaces are trimmed automatically.
string
The grade’s external ID from the client’s system (CRM/1C). 1 to 50 characters, cannot contain / or whitespace characters. Must be unique within the school among non-deleted records.

Update a grade

Requires authentication and the “Staff Management” permission (StaffManage).

Parameters

integer
required
ID of the grade to update within the school.
string
New grade name. 1 to 100 characters. Leading and trailing spaces are trimmed automatically. Must be unique within the school.
string | null
New grade description. Up to 500 characters. null clears the description.
string
The grade’s external ID from the client’s system (CRM/1C). 1 to 50 characters, cannot contain / or whitespace characters. Must be unique within the school among non-deleted records.

Update a grade by extId

Requires authentication and the “Staff Management” permission (StaffManage).
The counterpart of the update by ID: the grade is looked up by its external ID extId within the school. The extId value in the path must be URL-encoded.

Parameters

string
required
External ID (extId) of the grade to update within the school. Must be URL-encoded.
string
New grade name. 1 to 100 characters. Leading and trailing spaces are trimmed automatically. Must be unique within the school.
string | null
New grade description. Up to 500 characters. null clears the description.
string
New external ID of the grade. 1 to 50 characters, cannot contain / or whitespace characters. Must be unique within the school among non-deleted records.

Delete a grade

Requires authentication and the “Staff Management” permission (StaffManage).
A grade cannot be deleted while it is assigned to employees in open employments: the method returns StaffGradeHasActiveEmployments. First change the employees’ grade via promote (the toGradeId parameter) or terminate them.
On deletion the grade is removed from every position it was assigned to, and its transition conditions are deleted. Employees’ readiness for the next grade is recalculated.

Parameters

integer
required
ID of the grade to delete within the school.

Response

integer
required
Number of deleted records (1 on successful deletion).

Delete a grade by extId

Requires authentication and the “Staff Management” permission (StaffManage).
A grade cannot be deleted while it is assigned to employees in open employments: the method returns StaffGradeHasActiveEmployments. First change the employees’ grade via promote (the toGradeId parameter) or terminate them.
The counterpart of the deletion by ID: the grade is looked up by its external ID extId within the school. The extId value in the path must be URL-encoded.

Parameters

string
required
External ID (extId) of the grade to delete within the school. Must be URL-encoded.

Response

integer
required
Number of deleted records (1 on successful deletion).

Updated: 2026-10-16 13:24 UTC