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.Positions are a directory of job titles for school employees (for example, “Backend Engineer”). Positions
are assigned to employees on hiring and promotion and are used by the staff module to describe the employment
structure.
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.A position name is unique within the school, case-insensitive (“Manager” and “manager” are the same
name). Creating a position with, or renaming a position to, a name that already exists in the same school returns
the
StaffPositionNameIsNotUniq error.The
extId field is the position’s external ID from the client’s system (CRM/1C, for example a GUID). It is unique within the
school among non-deleted records (unique index school + extId). 1 to 50 characters, cannot contain
/ or whitespace characters, because the value is used in ext/{extId} paths.List positions
StaffView).
The endpoint returns a paginated list of positions. Pagination and filter parameters are passed as
query parameters.
Parameters
integer
Number of records to skip (offset pagination). Minimum
0.integer
Number of records to return per page. From
1 to 1000.integer
Page number (an alternative to
skip). Minimum 1.integer[]
Filter by position IDs. Up to 250 values.
string
Search by position name. Maximum 50 characters. The search is fuzzy (it also finds partial matches), so to
find a specific position by name, compare the
name of the returned records with your value case-insensitively,
or, more reliably, search by extIds.string[]
Filter by a list of external IDs (
extId). Up to 250 values, each up to 50 characters.enum
Sort direction by creation date. Possible values:
ASC, DESC. The id
and updatedAt parameters work the same way.Response
object
required
Paginated object:
items (array of positions), page, count, pages, isFirst, isLast, next,
prev.Create a position
StaffManage).
Request parameters
string
required
Position name. 1 to 100 characters. Leading and trailing spaces are trimmed automatically. Must be
unique within the school.
string
The position’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 position
StaffManage).
Parameters
integer
required
ID of the position to update within the school.
string
New position name. 1 to 100 characters. Leading and trailing spaces are trimmed automatically. Must be
unique within the school.
string
The position’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 position by extId
StaffManage).
Equivalent of the update-by-ID endpoint: the position is looked up by the external ID
extId within the school.
The extId value in the path must be URL-encoded.Parameters
string
required
External ID (
extId) of the position to update within the school. Must be URL-encoded.string
New position name. 1 to 100 characters. Leading and trailing spaces are trimmed automatically. Must be
unique within the school.
string
New external ID of the position. 1 to 50 characters, cannot contain
/ or whitespace characters.
Must be unique within the school among non-deleted records.Delete a position
StaffManage).
Parameters
integer
required
ID of the position to delete within the school.
Response
integer
required
Number of deleted records (
1 on successful deletion).Delete a position by extId
StaffManage).
Equivalent of the delete-by-ID endpoint: the position is looked up by the external ID
extId within the school.
The extId value in the path must be URL-encoded.Parameters
string
required
External ID (
extId) of the position to delete within the school. Must be URL-encoded.Response
integer
required
Number of deleted records (
1 on successful deletion).Updated: 2026-09-25 14:33 UTC