Returns readers in the project's "Readers" pool. Pagination is page-based: each page returns up to 5000 readers. Sort order is server-defined and stable across pages.
searchEmail is a server-side substring filter on the email address (case-insensitive). Combine with offSet=1 for the first matching page.
Safe to retry; idempotent.
The API token used for authenticating the request. This must be passed as a header parameter. To generate an API token, go to Settings > Knowledge base portal > API tokens. This token must correspond to a valid workspace and permission level.
1-based page number. Each page returns up to 5000 readers. Default: 1.
Filters the result to readers whose email contains this substring. Omit to return all readers on the page.
Operation succeeded. Inspect the response envelope's success flag and the result/data payload.
A standard reader who can see the entire project (every workspace, every category).
{
"reader_id": "91b70808-3d15-45e0-a641-f03e2a0b0efd",
"first_name": "Peter",
"last_name": "Jone",
"email": "peterjone@mail.com",
"access_scope": {
"access_level": 3,
"categories": [],
"project_versions": [],
"languages": []
},
"associated_reader_groups": [],
"is_invite_sso_user": false,
"last_login_at": "2026-04-12T09:15:00Z"
}A reader whose visibility is restricted to a single category in one workspace. Membership in a reader group inherits the group's scope.
{
"reader_id": "a7f2c5e1-8d4b-4cba-9f10-2b3c4d5e6f70",
"first_name": "Anita",
"last_name": "Rao",
"email": "anita.rao@example.com",
"access_scope": {
"access_level": 1,
"categories": [
{
"category_id": "c1d2e3f4-a5b6-4c7d-e8f9-a0b1c2d3e4f5",
"project_version_id": "46f48bc7-760f-4b07-b2d2-fce4aa8ba234",
"language_code": "en"
}
],
"project_versions": [],
"languages": []
},
"associated_reader_groups": [
"b2c3d4e5-f6a7-4b8c-9d0e-a1b2c3d4e5f6"
],
"is_invite_sso_user": false,
"last_login_at": "2026-05-03T14:42:00Z"
}A reader invited via SSO who has not yet completed their first sign-in. lastLoginAt is null and isInviteSsoUser is true.
{
"reader_id": "e5f6a7b8-c9d0-4e1f-a2b3-c4d5e6f7a8b9",
"first_name": "Bob",
"last_name": "Martinez",
"email": "bob.martinez@example.com",
"access_scope": {
"access_level": 2,
"categories": [],
"project_versions": [
"46f48bc7-760f-4b07-b2d2-fce4aa8ba234"
],
"languages": []
},
"associated_reader_groups": [],
"is_invite_sso_user": true,
"last_login_at": null
}The ID of the reader.
The first name of the reader.
The last name of the reader.
Email address of the reader.
The access scope of the reader.
The access level of the reader group. 0-None, 1-Category, 2-Version, 3-Project, 4-Language
List of category scope objects.
Category-scoped access entry — identifies a (category, workspace, language) tuple. Used inside V2 reader and reader-group access scopes.
The category ID to which the user should be given access.
The project version ID to which the category belongs.
The language to which the user should be given access.
List of project version IDs the reader has access to.
List of language scope objects.
Pair of (workspace, language) used to scope reader/group access — describes which language inside which workspace the entity should be granted access to.
The project version ID to which the user should be given access.
The language to which the user should be given access.
An array of the group IDs the reader is associated with.
Applicable only for SSO readers. If true, it indicates that an invitation has been sent to the reader, but the reader hasn't accepted the invitation yet.
The last login date and time by the reader.
Authentication failed — the api_token header is missing, malformed, or has been revoked.
Extension data for customer API response
Indicates the status of the API response. A value of true signifies that the request was successfully processed, while false indicates a failure or error occurred.
A list of errors encountered during the API request. Each error object provides details about the problem, including an error code and a message explaining the issue. This field is populated when the request fails or encounters issues.
One structured error in a response's Document360.Core.Messages.Core.BaseResponse.errors array.
This is the Extension data object
A technical trace showing where the error occurred within the system. Intended for backend debugging.
A clear message explaining what caused the error. This helps quickly understand what went wrong.
A short, predefined code that identifies the type of error. Useful for logging the error or raising a support request.
Any structured metadata for the error object.
A list of warnings generated during the API request. These are non-critical issues or recommendations that might affect the request but won't stop it from processing. Each warning object provides a message to inform the user of potential problems.
One non-fatal warning attached to an otherwise-successful response.
Extension Data for customer Api warning
A plain message that describes the warning and helps understand what should be reviewed.
A short, predefined code that uniquely identifies the warning type.
Contains additional non-critical information relevant to the request or response. This field provides extra details that might assist in understanding the context of the API response but is not essential for processing.
One informational message in a response's Document360.Core.Messages.Core.BaseResponse.information array. Non-error context the SPA may surface to the user.
Extension data for customer Api response information
A plain message offering helpful context about the response, such as confirmation of fallback logic or skipped operations.
Rate limit exceeded for this api_token. Wait for the duration in the Retry-After header before retrying.
Extension data for customer API response
Indicates the status of the API response. A value of true signifies that the request was successfully processed, while false indicates a failure or error occurred.
A list of errors encountered during the API request. Each error object provides details about the problem, including an error code and a message explaining the issue. This field is populated when the request fails or encounters issues.
One structured error in a response's Document360.Core.Messages.Core.BaseResponse.errors array.
This is the Extension data object
A technical trace showing where the error occurred within the system. Intended for backend debugging.
A clear message explaining what caused the error. This helps quickly understand what went wrong.
A short, predefined code that identifies the type of error. Useful for logging the error or raising a support request.
Any structured metadata for the error object.
A list of warnings generated during the API request. These are non-critical issues or recommendations that might affect the request but won't stop it from processing. Each warning object provides a message to inform the user of potential problems.
One non-fatal warning attached to an otherwise-successful response.
Extension Data for customer Api warning
A plain message that describes the warning and helps understand what should be reviewed.
A short, predefined code that uniquely identifies the warning type.
Contains additional non-critical information relevant to the request or response. This field provides extra details that might assist in understanding the context of the API response but is not essential for processing.
One informational message in a response's Document360.Core.Messages.Core.BaseResponse.information array. Non-error context the SPA may surface to the user.
Extension data for customer Api response information
A plain message offering helpful context about the response, such as confirmation of fallback logic or skipped operations.