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.
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.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
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.
string
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
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
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
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
StaffManage).
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
StaffManage).
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