---
title: "Find users with browse permission"
method: GET
path: "/rest/api/3/user/viewissue/search"
tags: ["User search"]
---

# Find users with browse permission

`GET /rest/api/3/user/viewissue/search`

Returns a list of users who fulfill these criteria:

 *  their user attributes match a search string.
 *  they have permission to browse issues.

Use this resource to find users who can browse:

 *  an issue, by providing the `issueKey`.
 *  any issue in a project, by providing the `projectKey`.

This operation takes the users in the range defined by `startAt` and `maxResults`, up to the thousandth user, and then returns only the users from that range that match the search string and have permission to browse issues. This means the operation usually returns fewer users than specified in `maxResults`. To get all the users who match the search string and have permission to browse issues, use [Get all users](#api-rest-api-3-users-search-get) and filter the records in your code.

Privacy controls are applied to the response based on the users' preferences. This could mean, for example, that the user's email address is hidden. See the [Profile visibility overview](https://developer.atlassian.com/cloud/jira/platform/profile-visibility/) for more details.

This operation can be accessed anonymously.

**[Permissions](#permissions) required:** *Browse users and groups* [global permission](https://confluence.atlassian.com/x/x4dKLg). Anonymous calls and calls by users without the required permission return empty search results.

## Query parameters

- `query` string
- `username` string
- `accountId` string
- `issueKey` string
- `projectKey` string
- `startAt` integer
- `maxResults` integer

## Response `200`

Returned if the request is successful.

- User[]
  - `accountId` string — The account ID of the user, which uniquely identifies the user across all Atlassian products. For example, *5b10ac8d82e05b22cc7d4ef5*. Required in requests.
  - `accountType` 'atlassian' | 'app' | 'customer' | 'unknown' — The user account type. Can take the following values: * `atlassian` regular Atlassian user account * `app` system account used for Connect applications and OAuth to represent external systems * `customer` Jira Service Desk account representing an external service desk
  - `active` boolean — Whether the user is active.
  - `appType` string — The app type of the user account when accountType is 'app'. Can take the following values: * `service` Service Account * `agent` Rovo Agent Account * `unknown` Unknown app type
  - `applicationRoles` SimpleListWrapperApplicationRole
    - `callback` ListWrapperCallbackApplicationRole
    - `items` ApplicationRole[]
      - `defaultGroups` string[] — The groups that are granted default access for this application role. As a group's name can change, use of `defaultGroupsDetails` is recommended to identify a groups.
      - `defaultGroupsDetails` GroupName[] — The groups that are granted default access for this application role.
        - `groupId` string, nullable — The ID of the group, which uniquely identifies the group across all Atlassian products. For example, *952d12c3-5b5b-4d04-bb32-44d383afc4b2*.
        - `name` string — The name of group.
        - `self` string, uri — The URL for these group details.
      - `defined` boolean — Deprecated.
      - `groupDetails` GroupName[] — The groups associated with the application role.
        - `groupId` string, nullable — The ID of the group, which uniquely identifies the group across all Atlassian products. For example, *952d12c3-5b5b-4d04-bb32-44d383afc4b2*.
        - `name` string — The name of group.
        - `self` string, uri — The URL for these group details.
      - `groups` string[] — The groups associated with the application role. As a group's name can change, use of `groupDetails` is recommended to identify a groups.
      - `hasUnlimitedSeats` boolean
      - `key` string — The key of the application role.
      - `name` string — The display name of the application role.
      - `numberOfSeats` integer — The maximum count of users on your license.
      - `platform` boolean — Indicates if the application role belongs to Jira platform (`jira-core`).
      - `remainingSeats` integer — The count of users remaining on your license.
      - `selectedByDefault` boolean — Determines whether this application role should be selected by default on user creation.
      - `userCount` integer — The number of users counting against your license.
      - `userCountDescription` string — The [type of users](https://confluence.atlassian.com/x/lRW3Ng) being counted against your license.
    - `max-results` integer
    - `pagingCallback` ListWrapperCallbackApplicationRole
    - `size` integer
  - `avatarUrls` AvatarUrlsBean
    - `16x16` string, uri — The URL of the item's 16x16 pixel avatar.
    - `24x24` string, uri — The URL of the item's 24x24 pixel avatar.
    - `32x32` string, uri — The URL of the item's 32x32 pixel avatar.
    - `48x48` string, uri — The URL of the item's 48x48 pixel avatar.
  - `displayName` string — The display name of the user. Depending on the user’s privacy setting, this may return an alternative value.
  - `emailAddress` string — The email address of the user. Depending on the user’s privacy setting, this may be returned as null.
  - `expand` string — Expand options that include additional user details in the response.
  - `groups` SimpleListWrapperGroupName
    - `callback` ListWrapperCallbackGroupName
    - `items` GroupName[]
      - `groupId` string, nullable — The ID of the group, which uniquely identifies the group across all Atlassian products. For example, *952d12c3-5b5b-4d04-bb32-44d383afc4b2*.
      - `name` string — The name of group.
      - `self` string, uri — The URL for these group details.
    - `max-results` integer
    - `pagingCallback` ListWrapperCallbackGroupName
    - `size` integer
  - `guest` boolean — Whether the user is a guest.
  - `key` string — This property is no longer available and will be removed from the documentation soon. See the [deprecation notice](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details.
  - `locale` string — The locale of the user. Depending on the user’s privacy setting, this may be returned as null.
  - `name` string — This property is no longer available and will be removed from the documentation soon. See the [deprecation notice](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details.
  - `self` string, uri — The URL of the user.
  - `timeZone` string — The time zone specified in the user's profile. If the user's time zone is not visible to the current user (due to user's profile setting), or if a time zone has not been set, the instance's default time zone will be returned.

## Other responses

- `400` — Returned if: * `issueKey` or `projectKey` is missing. * `query` or `accountId` is missing. * `query` and `accountId` are provided.
- `401` — Returned if the authentication credentials are incorrect or missing.
- `404` — Returned if the issue or project is not found.
- `429` — Returned if the rate limit is exceeded. User search endpoints share a collective rate limit for the tenant, in addition to Jira's normal rate limiting you may receive a rate limit for user search. Please respect the Retry-After header.

---

[API](https://skmtc.net/atlassian/apis/the-jira-cloud-platform-rest-api-2.md) · [All operations](https://skmtc.net/atlassian/apis/the-jira-cloud-platform-rest-api-2/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/atlassian/the-jira-cloud-platform-rest-api-2/revisions/5a51740d7ab3/schema)
