> ## Documentation Index > Fetch the complete documentation index at: https://docs.restaurant365.com/llms.txt > Use this file to discover all available pages before exploring further. # Users > Retrieves a paginated list of users for the tenant. Supports filtering by modification date range, location IDs, brand names, and email addresses. Use the continuationToken from the previous response to retrieve the next page. **Security** The requesting user must have the following permission to retrieve users: - Administration → Users → View Users For API-managed users, permissions are assigned through the API rather than the UI — see the API Managed Users article. _Permission-change latency:_ changes to permissions take several minutes to propagate. A user may continue to see the previous permission set's results for a short period after a permission is granted or removed. ## OpenAPI ````json GET /public/v1/user-management/users { "openapi": "3.0.1", "info": { "title": "R365 Public API", "contact": { "name": "R365 Services Team", "email": "r365@restaurant365.com" }, "version": "1.0" }, "security": [ { "Bearer": [] } ], "paths": { "/public/v1/user-management/users": { "get": { "tags": [ "user-management" ], "summary": "Users", "description": "Retrieves a paginated list of users for the tenant. Supports filtering by modification date range, location IDs, brand names, and email addresses.\r\nUse the continuationToken from the previous response to retrieve the next page.\n\n**Security**\n\nThe requesting user must have the following permission to retrieve users:\n\n- Administration → Users → View Users\n\nFor API-managed users, permissions are assigned through the API rather than the UI — see the API Managed Users article.\n\n_Permission-change latency:_ changes to permissions take several minutes to propagate. A user may continue to see the previous permission set's results for a short period after a permission is granted or removed.", "parameters": [ { "$ref": "#/components/parameters/TenantId" }, { "name": "ModifiedOnStart", "in": "query", "description": "Modified after", "required": false, "schema": { "type": "string" } }, { "name": "ModifiedOnEnd", "in": "query", "description": "Modified before", "required": false, "schema": { "type": "string" } }, { "name": "LocationsIds", "in": "query", "description": "Locations IDs to filter by (comma-separated)", "required": false, "schema": { "type": "string" } }, { "name": "pageSize", "in": "query", "required": false, "schema": { "type": "integer", "format": "int32", "minimum": 1, "maximum": 250, "default": 250 }, "description": "Maximum number of top-level objects to return in one page." }, { "name": "Brands", "in": "query", "description": "Brands names to filter by (comma-separated)", "required": false, "schema": { "type": "string" } }, { "name": "UserEmails", "in": "query", "description": "User emails to filter by (comma-separated)", "required": false, "schema": { "type": "string" } }, { "name": "ContinuationToken", "in": "query", "description": "Pagination token returned from a previous response. Omit to start from the first page", "required": false, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Users", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetUsersResponse" } } } }, "400": { "description": "Bad Request — a parameter value is malformed, of the wrong type, or outside its allowed range." }, "401": { "description": "Unauthorized — the bearer token is missing, invalid or expired, or is not valid for the specified tenant." }, "403": { "description": "Forbidden — the caller lacks the permission required for this operation." }, "404": { "description": "Not Found — the requested resource does not exist, or the supplied continuation token is unknown or has expired." }, "409": { "description": "Conflict — the request conflicts with the current state of the resource and cannot be applied." }, "422": { "description": "Unprocessable Entity — a required parameter is missing, or a supplied parameter value is invalid." }, "429": { "description": "Too Many Requests — the caller has exceeded the rate limit; retry after a short delay." }, "500": { "description": "Internal Server Error — an unexpected error occurred while processing the request." } } } } }, "components": { "parameters": { "TenantId": { "name": "x-r365-context-tenant-id", "in": "header", "required": true, "description": "Identifies the R365 tenant the request applies to. Required on every request.", "schema": { "type": "string" } } }, "schemas": { "GetUsersResponse": { "type": "object", "properties": { "entities": { "type": "array", "items": { "$ref": "#/components/schemas/User" } }, "nextPage": { "type": "string", "nullable": true, "description": "URL to retrieve the next page of results, or null when this is the last page." } } }, "User": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid", "description": "Unique identifier of the user." }, "fullName": { "type": "string" }, "username": { "type": "string" }, "defaultLocation": { "$ref": "#/components/schemas/UserLocation" }, "mobileNumber": { "type": "string" }, "email": { "type": "string" }, "inactive": { "type": "boolean", "description": "Indicates whether the user is inactive." }, "allLocationsAccess": { "type": "boolean" }, "allBrandFranchiseeLocationAccess": { "type": "boolean" }, "canGrantAccessBeyondPersonalLevel": { "type": "boolean" }, "userRoles": { "type": "array", "items": { "$ref": "#/components/schemas/UserRoleReference" } }, "reportRoles": { "type": "array", "items": { "$ref": "#/components/schemas/UserRoleReference" } }, "locations": { "type": "array", "items": { "$ref": "#/components/schemas/UserLocation" }, "description": "Locations the user may access. OMITTED FROM THE RESPONSE ENTIRELY when allLocationsAccess is true — do not rely on it being present.", "nullable": true }, "externalLocations": { "type": "array", "items": { "$ref": "#/components/schemas/UserLocation" } }, "subGroupValues": { "type": "array", "items": { "$ref": "#/components/schemas/UserSubGroupValue" } }, "managedByBrand": { "type": "string", "format": "uuid", "nullable": true, "description": "Brand that manages this user, or null when the user is not brand-managed." }, "linkedToEmployee": { "$ref": "#/components/schemas/UserEmployeeReference", "nullable": true, "description": "The employee record this user is linked to, or null when the user is not linked to an employee." }, "legalEntities": { "type": "array", "nullable": true, "items": { "$ref": "#/components/schemas/UserLegalEntityReference" }, "description": "Legal entities the user is scoped to, or null when not scoped by legal entity." } }, "additionalProperties": false }, "UserLocation": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid", "description": "Unique identifier of the location." }, "name": { "type": "string", "description": "Display name of the location." }, "number": { "type": "string", "description": "Number assigned to the location." } }, "additionalProperties": false }, "UserRoleReference": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid", "description": "Unique identifier of the role." }, "name": { "type": "string", "description": "Display name of the role." } }, "additionalProperties": false }, "UserSubGroupValue": { "type": "object", "properties": { "id": { "type": "integer", "format": "int32", "description": "Unique identifier of the option with location group." }, "subGroupValue": { "type": "string", "nullable": true }, "locationGroup": { "$ref": "#/components/schemas/EntityReferenceLongGet" } }, "additionalProperties": false }, "UserEmployeeReference": { "type": "object", "description": "Reference to the employee record a user is linked to.", "properties": { "id": { "type": "string", "format": "uuid" }, "name": { "type": "string", "nullable": true } } }, "UserLegalEntityReference": { "type": "object", "description": "Legal entity a user is scoped to.", "properties": { "id": { "type": "string", "format": "uuid" } } }, "EntityReferenceLongGet": { "type": "object", "properties": { "id": { "type": "integer", "format": "int64", "description": "Unique identifier of the entity reference long." }, "name": { "type": "string", "nullable": true, "description": "Display name of the entity reference long." } }, "additionalProperties": false } }, "securitySchemes": { "Bearer": { "type": "http", "scheme": "Bearer" } } } } ````