components: schemas: PageBeanUser: additionalProperties: false description: A page of items. properties: isLast: description: Whether this is the last page. readOnly: true type: boolean maxResults: description: The maximum number of items that could be returned. format: int32 readOnly: true type: integer nextPage: description: If there is another page of results, the URL of the next page. format: uri readOnly: true type: string self: description: The URL of the page. format: uri readOnly: true type: string startAt: description: The index of the first item returned. format: int64 readOnly: true type: integer total: description: The number of items returned. format: int64 readOnly: true type: integer values: description: The list of items. items: $ref: '#/components/schemas/User' readOnly: true type: array type: object UnrestrictedUserEmail: additionalProperties: true properties: accountId: description: The accountId of the user type: string email: description: The email of the user type: string type: object FoundUsers: additionalProperties: false description: >- The list of users found in a search, including header text (Showing X of Y matching users) and total of matched users. properties: header: description: >- Header text indicating the number of users in the response and the total number of users found in the search. type: string total: description: The total number of users found in the search. format: int32 type: integer users: items: $ref: '#/components/schemas/UserPickerUser' type: array type: object PropertyKeys: additionalProperties: false description: List of property keys. properties: keys: description: Property key details. items: $ref: '#/components/schemas/PropertyKey' readOnly: true type: array type: object EntityProperty: additionalProperties: false description: >- An entity property, for more information see [Entity properties](https://developer.atlassian.com/cloud/jira/platform/jira-entity-properties/). properties: key: description: The key of the property. Required on create and update. type: string value: description: The value of the property. Required on create and update. type: object PageBeanUserKey: additionalProperties: false description: A page of items. properties: isLast: description: Whether this is the last page. readOnly: true type: boolean maxResults: description: The maximum number of items that could be returned. format: int32 readOnly: true type: integer nextPage: description: If there is another page of results, the URL of the next page. format: uri readOnly: true type: string self: description: The URL of the page. format: uri readOnly: true type: string startAt: description: The index of the first item returned. format: int64 readOnly: true type: integer total: description: The number of items returned. format: int64 readOnly: true type: integer values: description: The list of items. items: $ref: '#/components/schemas/UserKey' readOnly: true type: array type: object externalDocs: description: Find out more about Atlassian products and services. url: http://www.atlassian.com info: contact: email: ecosystem@atlassian.com description: Needs description. license: name: Apache 2.0 url: http://www.apache.org/licenses/LICENSE-2.0.html termsOfService: http://atlassian.com/terms/ title: 'Atlassian rest/api/3/user/' version: 1001.0.0-SNAPSHOT-67b5c6e5f3598d7ec1649016d026468ab2838a77 openapi: 3.0.1 paths: /rest/api/3/user/assignable/multiProjectSearch: get: deprecated: false description: >- Returns a list of users who can be assigned issues in one or more projects. The list may be restricted to users whose attributes match a string.

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 can be assigned issues in the projects. This means the operation usually returns fewer users than specified in `maxResults`. To get all the users who can be assigned issues in the projects, 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:** None. operationId: atlassianFindbulkassignableusers parameters: - description: >- A query string that is matched against user attributes, such as `displayName` and `emailAddress`, to find relevant users. The string can match the prefix of the attribute's value. For example, *query=john* matches a user with a `displayName` of *John Smith* and a user with an `emailAddress` of *johnson@example.com*. Required, unless `accountId` is specified. in: query name: query schema: example: query type: string x-showInExample: 'true' - description: >- This parameter is no longer available. See the [deprecation notice](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details. in: query name: username schema: type: string - description: >- A query string that is matched exactly against user `accountId`. Required, unless `query` is specified. in: query name: accountId schema: maxLength: 128 type: string - description: >- A list of project keys (case sensitive). This parameter accepts a comma-separated list. in: query name: projectKeys required: true schema: type: string - description: >- The index of the first item to return in a page of results (page offset). in: query name: startAt schema: default: 0 format: int32 type: integer - description: The maximum number of items to return per page. in: query name: maxResults schema: default: 50 format: int32 type: integer responses: '200': content: application/json: example: >- [{"accountId":"5b10a2844c20165700ede21g","accountType":"atlassian","active":false,"avatarUrls":{"16x16":"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16","24x24":"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24","32x32":"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32","48x48":"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48"},"displayName":"Mia Krystof","key":"","name":"","self":"https://your-domain.atlassian.net/rest/api/3/user?accountId=5b10a2844c20165700ede21g"},{"accountId":"5b10ac8d82e05b22cc7d4ef5","accountType":"atlassian","active":false,"avatarUrls":{"16x16":"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/AA-3.png?size=16&s=16","24x24":"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/AA-3.png?size=24&s=24","32x32":"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/AA-3.png?size=32&s=32","48x48":"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/AA-3.png?size=48&s=48"},"displayName":"Emma Richards","key":"","name":"","self":"https://your-domain.atlassian.net/rest/api/3/user?accountId=5b10ac8d82e05b22cc7d4ef5"}] schema: items: $ref: '#/components/schemas/User' type: array description: Returned if the request is successful. '400': description: |- Returned if: * `projectKeys` is missing. * `query` or `accountId` is missing. * `query` and `accountId` are provided. '401': description: Returned if the authentication credentials are incorrect or missing. '404': description: Returned if one or more of the projects is not found. '429': description: >- 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. security: - basicAuth: [] - OAuth2: - read:jira-user - {} summary: Atlassian Find Users Assignable To Projects tags: - User Search x-atlassian-data-security-policy: - app-access-rule-exempt: true x-atlassian-oauth2-scopes: - scheme: OAuth2 scopes: - read:jira-user state: Current - scheme: OAuth2 scopes: - read:project:jira - read:user:jira - read:application-role:jira - read:avatar:jira - read:group:jira state: Beta x-atlassian-connect-scope: READ /rest/api/3/user/assignable/search: get: deprecated: false description: >- Returns a list of users that can be assigned to an issue. Use this operation to find the list of users who can be assigned to:

* a new issue, by providing the `projectKeyOrId`.
* an updated issue, by providing the `issueKey`.
* to an issue during a transition (workflow action), by providing the `issueKey` and the transition id in `actionDescriptorId`. You can obtain the IDs of an issue's valid transitions using the `transitions` option in the `expand` parameter of [ Get issue](#api-rest-api-3-issue-issueIdOrKey-get).

In all these cases, you can pass an account ID to determine if a user can be assigned to an issue. The user is returned in the response if they can be assigned to the issue or issue transition.

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 can be assigned the issue. This means the operation usually returns fewer users than specified in `maxResults`. To get all the users who can be assigned the issue, 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.

**[Permissions](#permissions) required:** *Browse users and groups* [global permission](https://confluence.atlassian.com/x/x4dKLg) or *Assign issues* [project permission](https://confluence.atlassian.com/x/yodKLg) operationId: atlassianFindassignableusers parameters: - description: >- A query string that is matched against user attributes, such as `displayName`, and `emailAddress`, to find relevant users. The string can match the prefix of the attribute's value. For example, *query=john* matches a user with a `displayName` of *John Smith* and a user with an `emailAddress` of *johnson@example.com*. Required, unless `username` or `accountId` is specified. in: query name: query schema: example: query type: string x-showInExample: 'true' - description: >- The sessionId of this request. SessionId is the same until the assignee is set. in: query name: sessionId schema: type: string - description: >- This parameter is no longer available. See the [deprecation notice](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details. in: query name: username schema: type: string - description: >- A query string that is matched exactly against user `accountId`. Required, unless `query` is specified. in: query name: accountId schema: maxLength: 128 type: string - description: >- The project ID or project key (case sensitive). Required, unless `issueKey` is specified. in: query name: project schema: type: string - description: The key of the issue. Required, unless `project` is specified. in: query name: issueKey schema: type: string - description: >- The index of the first item to return in a page of results (page offset). in: query name: startAt schema: default: 0 format: int32 type: integer - description: >- The maximum number of items to return. This operation may return less than the maximum number of items even if more are available. The operation fetches users up to the maximum and then, from the fetched users, returns only the users that can be assigned to the issue. in: query name: maxResults schema: default: 50 format: int32 type: integer - description: The ID of the transition. in: query name: actionDescriptorId schema: format: int32 type: integer - in: query name: recommend schema: default: false type: boolean responses: '200': content: application/json: example: >- {"accountId":"5b10a2844c20165700ede21g","accountType":"atlassian","active":true,"applicationRoles":{"items":[],"size":1},"avatarUrls":{"16x16":"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16","24x24":"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24","32x32":"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32","48x48":"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48"},"displayName":"Mia Krystof","emailAddress":"mia@example.com","groups":{"items":[],"size":3},"key":"","name":"","self":"https://your-domain.atlassian.net/rest/api/3/user?accountId=5b10a2844c20165700ede21g","timeZone":"Australia/Sydney"} schema: items: $ref: '#/components/schemas/User' type: array description: Returned if the request is successful. '400': description: |- Returned if: * `issueKey` or `project` is missing. * `query` or `accountId` is missing. * `query` and `accountId` are provided. '401': description: Returned if the authentication credentials are incorrect or missing. '404': description: Returned if the project, issue, or transition is not found. '429': description: >- 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. security: - basicAuth: [] - OAuth2: - read:jira-user - {} summary: Atlassian Find Users Assignable To Issues tags: - User Search x-atlassian-data-security-policy: - app-access-rule-exempt: false x-atlassian-oauth2-scopes: - scheme: OAuth2 scopes: - read:jira-user state: Current - scheme: OAuth2 scopes: - read:issue:jira - read:project:jira - read:user:jira - read:application-role:jira - read:avatar:jira - read:group:jira state: Beta x-atlassian-connect-scope: READ /rest/api/3/user/bulk: get: deprecated: false description: >- Returns a [paginated](#pagination) list of the users specified by one or more account IDs.

**[Permissions](#permissions) required:** Permission to access Jira. operationId: atlassianBulkgetusers parameters: - description: >- The index of the first item to return in a page of results (page offset). in: query name: startAt schema: default: 0 format: int64 type: integer - description: The maximum number of items to return per page. in: query name: maxResults schema: default: 10 format: int32 type: integer - description: >- This parameter 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. in: query name: username schema: items: type: string type: array - description: >- This parameter 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. in: query name: key schema: items: type: string type: array - description: >- The account ID of a user. To specify multiple users, pass multiple `accountId` parameters. For example, `accountId=5b10a2844c20165700ede21g&accountId=5b10ac8d82e05b22cc7d4ef5`. in: query name: accountId required: true schema: example: 5b10ac8d82e05b22cc7d4ef5 items: example: 5b10ac8d82e05b22cc7d4ef5 maxLength: 128 type: string maxLength: 128 type: array x-showInExample: 'true' responses: '200': content: application/json: example: >- {"isLast":true,"maxResults":100,"startAt":0,"total":1,"values":[{"accountId":"5b10a2844c20165700ede21g","accountType":"atlassian","active":true,"avatarUrls":{"16x16":"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16","24x24":"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24","32x32":"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32","48x48":"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48"},"displayName":"Mia Krystof","emailAddress":"mia@example.com","self":"https://your-domain.atlassian.net/rest/api/3/user?accountId=5b10a2844c20165700ede21g","timeZone":"Australia/Sydney"}]} schema: $ref: '#/components/schemas/PageBeanUser' description: Returned if the request is successful. '400': description: Returned if `accountID` is missing. '401': description: Returned if the authentication credentials are incorrect or missing. security: - basicAuth: [] - OAuth2: - read:jira-user summary: Atlassian Bulk Get Users tags: - Users x-atlassian-data-security-policy: - app-access-rule-exempt: true x-atlassian-oauth2-scopes: - scheme: OAuth2 scopes: - read:jira-user state: Current - scheme: OAuth2 scopes: - read:application-role:jira - read:group:jira - read:user:jira - read:avatar:jira state: Beta x-experimental: true x-atlassian-connect-scope: READ /rest/api/3/user/bulk/migration: get: deprecated: false description: >- Returns the account IDs for the users specified in the `key` or `username` parameters. Note that multiple `key` or `username` parameters can be specified.

**[Permissions](#permissions) required:** Permission to access Jira. operationId: atlassianBulkgetusersmigration parameters: - description: >- The index of the first item to return in a page of results (page offset). in: query name: startAt schema: default: 0 format: int64 type: integer - description: The maximum number of items to return per page. in: query name: maxResults schema: default: 10 format: int32 type: integer - description: >- Username of a user. To specify multiple users, pass multiple copies of this parameter. For example, `username=fred&username=barney`. Required if `key` isn't provided. Cannot be provided if `key` is present. in: query name: username schema: items: type: string type: array - description: >- Key of a user. To specify multiple users, pass multiple copies of this parameter. For example, `key=fred&key=barney`. Required if `username` isn't provided. Cannot be provided if `username` is present. in: query name: key schema: items: type: string type: array responses: '200': content: application/json: example: >- [{"username":"mia","accountId":"5b10a2844c20165700ede21g"},{"username":"emma","accountId":"5b10ac8d82e05b22cc7d4ef5"}] schema: items: $ref: '#/components/schemas/UserMigrationBean' type: array description: Returned if the request is successful. '400': description: Returned if `key` or `username` '401': description: Returned if the authentication credentials are incorrect or missing. security: - basicAuth: [] - OAuth2: - read:jira-user summary: Atlassian Get Account Ids For Users tags: - Users x-atlassian-data-security-policy: - app-access-rule-exempt: true x-atlassian-oauth2-scopes: - scheme: OAuth2 scopes: - read:jira-user state: Current - scheme: OAuth2 scopes: - read:user:jira state: Beta x-experimental: true x-atlassian-connect-scope: READ /rest/api/3/user/columns: delete: deprecated: false description: >- Resets the default [ issue table columns](https://confluence.atlassian.com/x/XYdKLg) for the user to the system default. If `accountId` is not passed, the calling user's default columns are reset.

**[Permissions](#permissions) required:**

* *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg), to set the columns on any user.
* Permission to access Jira, to set the calling user's columns. operationId: atlassianResetusercolumns parameters: - description: >- The account ID of the user, which uniquely identifies the user across all Atlassian products. For example, *5b10ac8d82e05b22cc7d4ef5*. in: query name: accountId schema: example: 5b10ac8d82e05b22cc7d4ef5 maxLength: 128 type: string x-showInExample: 'true' - description: >- This parameter is no longer available. See the [deprecation notice](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details. in: query name: username schema: type: string responses: '204': description: Returned if the request is successful. '401': description: Returned if the authentication credentials are incorrect or missing. '403': description: >- Returned if the user does not have the necessary permission or is not accessing their user record. security: - basicAuth: [] - {} summary: Atlassian Reset User Default Columns tags: - Users x-atlassian-data-security-policy: - app-access-rule-exempt: true x-atlassian-connect-scope: INACCESSIBLE get: deprecated: false description: >- Returns the default [issue table columns](https://confluence.atlassian.com/x/XYdKLg) for the user. If `accountId` is not passed in the request, the calling user's details are returned.

**[Permissions](#permissions) required:**

* *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLgl), to get the column details for any user.
* Permission to access Jira, to get the calling user's column details. operationId: atlassianGetuserdefaultcolumns parameters: - description: >- The account ID of the user, which uniquely identifies the user across all Atlassian products. For example, *5b10ac8d82e05b22cc7d4ef5*. in: query name: accountId schema: example: 5b10ac8d82e05b22cc7d4ef5 maxLength: 128 type: string x-showInExample: 'true' - description: >- This parameter is no longer available See the [deprecation notice](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details. in: query name: username schema: type: string responses: '200': content: application/json: schema: items: $ref: '#/components/schemas/ColumnItem' type: array description: Returned if the request is successful. '401': description: Returned if the authentication credentials are incorrect or missing. '403': description: >- Returned if the user does not have the necessary permission or is not accessing their user record. '404': description: Returned if the requested user is not found. security: - basicAuth: [] - OAuth2: - read:jira-user - {} summary: Atlassian Get User Default Columns tags: - Users x-atlassian-data-security-policy: - app-access-rule-exempt: true x-atlassian-oauth2-scopes: - scheme: OAuth2 scopes: - read:jira-user state: Current - scheme: OAuth2 scopes: - read:user.columns:jira - read:filter.column:jira state: Beta x-atlassian-connect-scope: READ put: deprecated: false description: >- Sets the default [ issue table columns](https://confluence.atlassian.com/x/XYdKLg) for the user. If an account ID is not passed, the calling user's default columns are set. If no column details are sent, then all default columns are removed.

The parameters for this resource are expressed as HTML form data. For example, in curl:

`curl -X PUT -d columns=summary -d columns=description https://your-domain.atlassian.net/rest/api/3/user/columns?accountId=5b10ac8d82e05b22cc7d4ef5'`

**[Permissions](#permissions) required:**

* *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg), to set the columns on any user.
* Permission to access Jira, to set the calling user's columns. operationId: atlassianSetusercolumns parameters: - description: >- The account ID of the user, which uniquely identifies the user across all Atlassian products. For example, *5b10ac8d82e05b22cc7d4ef5*. in: query name: accountId schema: example: 5b10ac8d82e05b22cc7d4ef5 maxLength: 128 type: string x-showInExample: 'true' requestBody: content: '*/*': schema: $ref: '#/components/schemas/UserColumnRequestBody' multipart/form-data: schema: $ref: '#/components/schemas/UserColumnRequestBody' description: >- The ID of a column to set. To set multiple columns, send multiple `columns` parameters. required: true responses: '200': content: application/json: schema: {} description: Returned if the request is successful. '401': description: Returned if the authentication credentials are incorrect or missing. '403': description: >- Returned if the user does not have the necessary permission or is not accessing their user record. '404': description: Returned if the requested user is not found. '429': description: >- 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. '500': description: Returned if an invalid issue table column ID is sent. security: - basicAuth: [] - {} summary: Atlassian Set User Default Columns tags: - Users x-atlassian-data-security-policy: - app-access-rule-exempt: true x-atlassian-connect-scope: INACCESSIBLE /rest/api/3/user/email: get: deprecated: false description: >- Returns a user's email address. This API is only available to apps approved by Atlassian, according to these [guidelines](https://community.developer.atlassian.com/t/guidelines-for-requesting-access-to-email-address/27603). operationId: atlassianGetuseremail parameters: - description: >- The account ID of the user, which uniquely identifies the user across all Atlassian products. For example, `5b10ac8d82e05b22cc7d4ef5`. in: query name: accountId required: true schema: maxLength: 128 type: string responses: '200': content: application/json: example: name@example.com schema: $ref: '#/components/schemas/UnrestrictedUserEmail' description: Returned if the request is successful. '400': description: Returned if the calling app is not approved to use this API. '401': description: >- Returned if the authentication credentials are incorrect or missing from the request (for example if a user is trying to access this API). '404': description: Returned if a user with the given `accountId` doesn't exist '503': description: Indicates the API is not currently enabled security: - basicAuth: [] summary: Atlassian Get User Email tags: - Users x-atlassian-data-security-policy: - app-access-rule-exempt: true x-atlassian-connect-scope: ACCESS_EMAIL_ADDRESSES /rest/api/3/user/email/bulk: get: deprecated: false description: >- Returns a user's email address. This API is only available to apps approved by Atlassian, according to these [guidelines](https://community.developer.atlassian.com/t/guidelines-for-requesting-access-to-email-address/27603). operationId: atlassianGetuseremailbulk parameters: - description: >- The account IDs of the users for which emails are required. An `accountId` is an identifier that uniquely identifies the user across all Atlassian products. For example, `5b10ac8d82e05b22cc7d4ef5`. Note, this should be treated as an opaque identifier (that is, do not assume any structure in the value). in: query name: accountId required: true schema: items: maxLength: 128 type: string maxLength: 128 type: array responses: '200': content: application/json: schema: $ref: '#/components/schemas/UnrestrictedUserEmail' description: Returned if the request is successful. '400': description: Returned if the calling app is not approved to use this API. '401': description: >- Returned if the authentication credentials are incorrect, or missing from the request (for example if a user is trying to access this API). '503': description: Indicates the API is not currently enabled. security: - basicAuth: [] summary: Atlassian Get User Email Bulk tags: - Users x-atlassian-data-security-policy: - app-access-rule-exempt: true x-atlassian-connect-scope: ACCESS_EMAIL_ADDRESSES /rest/api/3/user/groups: get: deprecated: false description: >- Returns the groups to which a user belongs.

**[Permissions](#permissions) required:** *Browse users and groups* [global permission](https://confluence.atlassian.com/x/x4dKLg). operationId: atlassianGetusergroups parameters: - description: >- The account ID of the user, which uniquely identifies the user across all Atlassian products. For example, *5b10ac8d82e05b22cc7d4ef5*. in: query name: accountId required: true schema: example: 5b10ac8d82e05b22cc7d4ef5 maxLength: 128 type: string x-showInExample: 'true' - description: >- This parameter is no longer available. See the [deprecation notice](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details. in: query name: username schema: type: string - description: >- This parameter is no longer available. See the [deprecation notice](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details. in: query name: key schema: type: string responses: '200': content: application/json: example: >- {"groupId":"276f955c-63d7-42c8-9520-92d01dca0625","name":"jira-administrators","self":"https://your-domain.atlassian.net/rest/api/3/group?groupId=276f955c-63d7-42c8-9520-92d01dca0625"} schema: items: $ref: '#/components/schemas/GroupName' type: array description: Returned if the request is successful. '401': description: Returned if the authentication credentials are incorrect or missing. '403': description: >- Returned if the calling user does not have the *Browse users and groups* global permission. '404': description: Returned if the user is not found. security: - basicAuth: [] - OAuth2: - read:jira-user - {} summary: Atlassian Get User Groups tags: - Users x-atlassian-data-security-policy: - app-access-rule-exempt: true x-atlassian-oauth2-scopes: - scheme: OAuth2 scopes: - read:jira-user state: Current - scheme: OAuth2 scopes: - read:group:jira state: Beta x-atlassian-connect-scope: READ /rest/api/3/user/permission/search: get: deprecated: false description: >- Returns a list of users who fulfill these criteria:

* their user attributes match a search string.
* they have a set of permissions for a project or issue.

If no search string is provided, a list of all users with the permissions is returned.

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 for the project or issue. 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 for the project or issue, 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:**

* *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg), to get users for any project.
* *Administer Projects* [project permission](https://confluence.atlassian.com/x/yodKLg) for a project, to get users for that project. operationId: atlassianFinduserswithallpermissions parameters: - description: >- A query string that is matched against user attributes, such as `displayName` and `emailAddress`, to find relevant users. The string can match the prefix of the attribute's value. For example, *query=john* matches a user with a `displayName` of *John Smith* and a user with an `emailAddress` of *johnson@example.com*. Required, unless `accountId` is specified. in: query name: query schema: example: query type: string x-showInExample: 'true' - description: >- This parameter is no longer available. See the [deprecation notice](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details. in: query name: username schema: type: string - description: >- A query string that is matched exactly against user `accountId`. Required, unless `query` is specified. in: query name: accountId schema: maxLength: 128 type: string - description: >- A comma separated list of permissions. Permissions can be specified as any: * permission returned by [Get all permissions](#api-rest-api-3-permissions-get). * custom project permission added by Connect apps. * (deprecated) one of the following: * ASSIGNABLE\_USER * ASSIGN\_ISSUE * ATTACHMENT\_DELETE\_ALL * ATTACHMENT\_DELETE\_OWN * BROWSE * CLOSE\_ISSUE * COMMENT\_DELETE\_ALL * COMMENT\_DELETE\_OWN * COMMENT\_EDIT\_ALL * COMMENT\_EDIT\_OWN * COMMENT\_ISSUE * CREATE\_ATTACHMENT * CREATE\_ISSUE * DELETE\_ISSUE * EDIT\_ISSUE * LINK\_ISSUE * MANAGE\_WATCHER\_LIST * MODIFY\_REPORTER * MOVE\_ISSUE * PROJECT\_ADMIN * RESOLVE\_ISSUE * SCHEDULE\_ISSUE * SET\_ISSUE\_SECURITY * TRANSITION\_ISSUE * VIEW\_VERSION\_CONTROL * VIEW\_VOTERS\_AND\_WATCHERS * VIEW\_WORKFLOW\_READONLY * WORKLOG\_DELETE\_ALL * WORKLOG\_DELETE\_OWN * WORKLOG\_EDIT\_ALL * WORKLOG\_EDIT\_OWN * WORK\_ISSUE in: query name: permissions required: true schema: type: string - description: The issue key for the issue. in: query name: issueKey schema: type: string - description: The project key for the project (case sensitive). in: query name: projectKey schema: type: string - description: >- The index of the first item to return in a page of results (page offset). in: query name: startAt schema: default: 0 format: int32 type: integer - description: The maximum number of items to return per page. in: query name: maxResults schema: default: 50 format: int32 type: integer responses: '200': content: application/json: example: >- [{"accountId":"5b10a2844c20165700ede21g","accountType":"atlassian","active":false,"avatarUrls":{"16x16":"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16","24x24":"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24","32x32":"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32","48x48":"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48"},"displayName":"Mia Krystof","key":"","name":"","self":"https://your-domain.atlassian.net/rest/api/3/user?accountId=5b10a2844c20165700ede21g"},{"accountId":"5b10ac8d82e05b22cc7d4ef5","accountType":"atlassian","active":false,"avatarUrls":{"16x16":"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/AA-3.png?size=16&s=16","24x24":"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/AA-3.png?size=24&s=24","32x32":"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/AA-3.png?size=32&s=32","48x48":"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/AA-3.png?size=48&s=48"},"displayName":"Emma Richards","key":"","name":"","self":"https://your-domain.atlassian.net/rest/api/3/user?accountId=5b10ac8d82e05b22cc7d4ef5"}] schema: items: $ref: '#/components/schemas/User' type: array description: Returned if the request is successful. '400': description: |- Returned if: * `issueKey` or `projectKey` is missing. * `query` or `accountId` is missing. * `query` and `accountId` are provided. * `permissions` is empty or contains an invalid entry. '401': description: Returned if the authentication credentials are incorrect or missing. '403': description: Returned if the user does not have the necessary permission. '404': description: Returned if the issue or project is not found. '429': description: >- 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. security: - basicAuth: [] - OAuth2: - read:jira-user - {} summary: Atlassian Find Users With Permissions tags: - User Search x-atlassian-data-security-policy: - app-access-rule-exempt: false x-atlassian-oauth2-scopes: - scheme: OAuth2 scopes: - read:jira-user state: Current - scheme: OAuth2 scopes: - read:issue:jira - read:project:jira - read:user:jira - read:application-role:jira - read:avatar:jira - read:group:jira state: Beta x-atlassian-connect-scope: READ /rest/api/3/user/picker: get: deprecated: false description: >- Returns a list of users whose attributes match the query term. The returned object includes the `html` field where the matched query term is highlighted with the HTML strong tag. A list of account IDs can be provided to exclude users from the results.

This operation takes the users in the range defined by `maxResults`, up to the thousandth user, and then returns only the users from that range that match the query term. This means the operation usually returns fewer users than specified in `maxResults`. To get all the users who match the query term, 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 search results for an exact name match only. operationId: atlassianFindusersforpicker parameters: - description: >- A query string that is matched against user attributes, such as `displayName`, and `emailAddress`, to find relevant users. The string can match the prefix of the attribute's value. For example, *query=john* matches a user with a `displayName` of *John Smith* and a user with an `emailAddress` of *johnson@example.com*. in: query name: query required: true schema: type: string - description: >- The maximum number of items to return. The total number of matched users is returned in `total`. in: query name: maxResults schema: default: 50 format: int32 type: integer - description: Include the URI to the user's avatar. in: query name: showAvatar schema: default: false type: boolean - description: >- This parameter is no longer available. See the [deprecation notice](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details. in: query name: exclude schema: items: type: string type: array - description: >- A list of account IDs to exclude from the search results. This parameter accepts a comma-separated list. Multiple account IDs can also be provided using an ampersand-separated list. For example, `excludeAccountIds=5b10a2844c20165700ede21g,5b10a0effa615349cb016cd8&excludeAccountIds=5b10ac8d82e05b22cc7d4ef5`. Cannot be provided with `exclude`. in: query name: excludeAccountIds schema: items: type: string type: array - in: query name: avatarSize schema: type: string - in: query name: excludeConnectUsers schema: default: false type: boolean responses: '200': content: application/json: example: >- {"header":"Showing 20 of 25 matching groups","total":25,"users":[{"accountId":"5b10a2844c20165700ede21g","accountType":"atlassian","avatarUrl":"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16","displayName":"Mia Krystof","html":"Mia Krystof - mia@example.com (mia)","key":"mia","name":"mia"}]} schema: $ref: '#/components/schemas/FoundUsers' description: Returned if the request is successful. '400': description: Returned if `exclude` and `excludeAccountIds` are provided. '401': description: Returned if the authentication credentials are incorrect or missing. '429': description: >- 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. security: - basicAuth: [] - OAuth2: - read:jira-user - {} summary: Atlassian Find Users For Picker tags: - User Search x-atlassian-data-security-policy: - app-access-rule-exempt: true x-atlassian-oauth2-scopes: - scheme: OAuth2 scopes: - read:jira-user state: Current - scheme: OAuth2 scopes: - read:user:jira state: Beta x-atlassian-connect-scope: READ /rest/api/3/user/properties: get: deprecated: false description: >- Returns the keys of all properties for a user.

Note: This operation does not access the [user properties](https://confluence.atlassian.com/x/8YxjL) created and maintained in Jira.

**[Permissions](#permissions) required:**

* *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg), to access the property keys on any user.
* Access to Jira, to access the calling user's property keys. operationId: atlassianGetuserpropertykeys parameters: - description: >- The account ID of the user, which uniquely identifies the user across all Atlassian products. For example, *5b10ac8d82e05b22cc7d4ef5*. in: query name: accountId schema: example: 5b10ac8d82e05b22cc7d4ef5 maxLength: 128 type: string x-showInExample: 'true' - description: >- This parameter 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. in: query name: userKey schema: type: string - description: >- This parameter 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. in: query name: username schema: type: string responses: '200': content: application/json: example: >- {"keys":[{"key":"issue.support","self":"https://your-domain.atlassian.net/rest/api/3/issue/EX-2/properties/issue.support"}]} schema: $ref: '#/components/schemas/PropertyKeys' description: Returned if the request is successful. '400': description: Returned if `accountId` is missing. '401': description: Returned if the authentication credentials are incorrect or missing. '403': description: >- Returned if the user does not have the necessary permission or is not accessing their user record. '404': description: Returned if the user is not found. security: - basicAuth: [] - OAuth2: - read:jira-user summary: Atlassian Get User Property Keys tags: - User Properties x-atlassian-data-security-policy: - app-access-rule-exempt: true x-atlassian-oauth2-scopes: - scheme: OAuth2 scopes: - read:jira-user state: Current - scheme: OAuth2 scopes: - read:user.property:jira state: Beta x-atlassian-connect-scope: READ /rest/api/3/user/properties/{propertyKey}: delete: deprecated: false description: >- Deletes a property from a user.

Note: This operation does not access the [user properties](https://confluence.atlassian.com/x/8YxjL) created and maintained in Jira.

**[Permissions](#permissions) required:**

* *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg), to delete a property from any user.
* Access to Jira, to delete a property from the calling user's record. operationId: atlassianDeleteuserproperty parameters: - description: >- The account ID of the user, which uniquely identifies the user across all Atlassian products. For example, *5b10ac8d82e05b22cc7d4ef5*. in: query name: accountId schema: example: 5b10ac8d82e05b22cc7d4ef5 maxLength: 128 type: string x-showInExample: 'true' - description: >- This parameter 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. in: query name: userKey schema: type: string - description: >- This parameter 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. in: query name: username schema: type: string - description: The key of the user's property. in: path name: propertyKey required: true schema: type: string responses: '204': description: Returned if the user property is deleted. '400': description: Returned if `accountId` is missing. '401': description: Returned if the authentication credentials are incorrect or missing. '403': description: >- Returned if the user does not have the necessary permission or is not accessing their user record. '404': description: Returned if the user or the property is not found. security: - basicAuth: [] - OAuth2: - write:jira-work summary: Atlassian Delete User Property tags: - User Properties x-atlassian-data-security-policy: - app-access-rule-exempt: true x-atlassian-oauth2-scopes: - scheme: OAuth2 scopes: - write:jira-work state: Current - scheme: OAuth2 scopes: - delete:user.property:jira state: Beta x-atlassian-connect-scope: DELETE get: deprecated: false description: >- Returns the value of a user's property. If no property key is provided [Get user property keys](#api-rest-api-3-user-properties-get) is called.

Note: This operation does not access the [user properties](https://confluence.atlassian.com/x/8YxjL) created and maintained in Jira.

**[Permissions](#permissions) required:**

* *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg), to get a property from any user.
* Access to Jira, to get a property from the calling user's record. operationId: atlassianGetuserproperty parameters: - description: >- The account ID of the user, which uniquely identifies the user across all Atlassian products. For example, *5b10ac8d82e05b22cc7d4ef5*. in: query name: accountId schema: example: 5b10ac8d82e05b22cc7d4ef5 maxLength: 128 type: string x-showInExample: 'true' - description: >- This parameter 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. in: query name: userKey schema: type: string - description: >- This parameter 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. in: query name: username schema: type: string - description: The key of the user's property. in: path name: propertyKey required: true schema: type: string responses: '200': content: application/json: example: >- {"key":"issue.support","value":{"system.conversation.id":"b1bf38be-5e94-4b40-a3b8-9278735ee1e6","system.support.time":"1m"}} schema: $ref: '#/components/schemas/EntityProperty' description: Returned if the request is successful. '400': description: Returned if `accountId` is missing. '401': description: Returned if the authentication credentials are incorrect or missing. '403': description: >- Returned if the user does not have the necessary permission or is not accessing their user record. '404': description: Returned if the user is not found. security: - basicAuth: [] - OAuth2: - read:jira-user summary: Atlassian Get User Property tags: - User Properties x-atlassian-data-security-policy: - app-access-rule-exempt: true x-atlassian-oauth2-scopes: - scheme: OAuth2 scopes: - read:jira-user state: Current - scheme: OAuth2 scopes: - read:user.property:jira state: Beta x-atlassian-connect-scope: READ put: deprecated: false description: >- Sets the value of a user's property. Use this resource to store custom data against a user.

Note: This operation does not access the [user properties](https://confluence.atlassian.com/x/8YxjL) created and maintained in Jira.

**[Permissions](#permissions) required:**

* *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg), to set a property on any user.
* Access to Jira, to set a property on the calling user's record. operationId: atlassianSetuserproperty parameters: - description: >- The account ID of the user, which uniquely identifies the user across all Atlassian products. For example, *5b10ac8d82e05b22cc7d4ef5*. in: query name: accountId schema: example: 5b10ac8d82e05b22cc7d4ef5 maxLength: 128 type: string x-showInExample: 'true' - description: >- This parameter 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. in: query name: userKey schema: type: string - description: >- This parameter 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. in: query name: username schema: type: string - description: >- The key of the user's property. The maximum length is 255 characters. in: path name: propertyKey required: true schema: type: string requestBody: content: application/json: schema: {} description: >- The value of the property. The value has to be a valid, non-empty [JSON](https://tools.ietf.org/html/rfc4627) value. The maximum length of the property value is 32768 bytes. required: true responses: '200': content: application/json: schema: {} description: Returned if the user property is updated. '201': content: application/json: schema: {} description: Returned if the user property is created. '400': description: Returned if `accountId` is missing. '401': description: Returned if the authentication credentials are incorrect or missing. '403': description: >- Returned if the user does not have the necessary permission or is not accessing their user record. '404': description: Returned if the user is not found. '405': description: Returned if the property key is not specified. security: - basicAuth: [] - OAuth2: - write:jira-work summary: Atlassian Set User Property tags: - User Properties x-atlassian-data-security-policy: - app-access-rule-exempt: true x-atlassian-oauth2-scopes: - scheme: OAuth2 scopes: - write:jira-work state: Current - scheme: OAuth2 scopes: - write:user.property:jira state: Beta x-atlassian-connect-scope: WRITE /rest/api/3/user/search: get: deprecated: false description: >- Returns a list of active users that match the search string and property.

This operation first applies a filter to match the search string and property, and then takes the filtered users in the range defined by `startAt` and `maxResults`, up to the thousandth user. To get all the users who match the search string and property, use [Get all users](#api-rest-api-3-users-search-get) and filter the records in your code.

This operation can be accessed anonymously.

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.

**[Permissions](#permissions) required:** *Browse users and groups* [global permission](https://confluence.atlassian.com/x/x4dKLg). Anonymous calls or calls by users without the required permission return empty search results. operationId: atlassianFindusers parameters: - description: >- A query string that is matched against user attributes ( `displayName`, and `emailAddress`) to find relevant users. The string can match the prefix of the attribute's value. For example, *query=john* matches a user with a `displayName` of *John Smith* and a user with an `emailAddress` of *johnson@example.com*. Required, unless `accountId` or `property` is specified. in: query name: query schema: example: query type: string x-showInExample: 'true' - in: query name: username schema: type: string - description: >- A query string that is matched exactly against a user `accountId`. Required, unless `query` or `property` is specified. in: query name: accountId schema: maxLength: 128 type: string - description: >- The index of the first item to return in a page of filtered results (page offset). in: query name: startAt schema: default: 0 format: int32 type: integer - description: The maximum number of items to return per page. in: query name: maxResults schema: default: 50 format: int32 type: integer - description: >- A query string used to search properties. Property keys are specified by path, so property keys containing dot (.) or equals (=) characters cannot be used. The query string cannot be specified using a JSON object. Example: To search for the value of `nested` from `{"something":{"nested":1,"other":2}}` use `thepropertykey.something.nested=1`. Required, unless `accountId` or `query` is specified. in: query name: property schema: type: string responses: '200': content: application/json: example: >- [{"accountId":"5b10a2844c20165700ede21g","accountType":"atlassian","active":false,"avatarUrls":{"16x16":"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16","24x24":"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24","32x32":"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32","48x48":"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48"},"displayName":"Mia Krystof","key":"","name":"","self":"https://your-domain.atlassian.net/rest/api/3/user?accountId=5b10a2844c20165700ede21g"},{"accountId":"5b10ac8d82e05b22cc7d4ef5","accountType":"atlassian","active":false,"avatarUrls":{"16x16":"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/AA-3.png?size=16&s=16","24x24":"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/AA-3.png?size=24&s=24","32x32":"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/AA-3.png?size=32&s=32","48x48":"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/AA-3.png?size=48&s=48"},"displayName":"Emma Richards","key":"","name":"","self":"https://your-domain.atlassian.net/rest/api/3/user?accountId=5b10ac8d82e05b22cc7d4ef5"}] schema: items: $ref: '#/components/schemas/User' type: array description: Returned if the request is successful. '400': description: |- Returned if: * `accountId`, `query` or `property` is missing. * `query` and `accountId` are provided. * `property` parameter is not valid. '401': description: Returned if the authentication credentials are incorrect or missing. '429': description: >- 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. security: - basicAuth: [] - OAuth2: - read:jira-user - {} summary: Atlassian Find Users tags: - User Search x-atlassian-data-security-policy: - app-access-rule-exempt: true x-atlassian-oauth2-scopes: - scheme: OAuth2 scopes: - read:jira-user state: Current - scheme: OAuth2 scopes: - read:user:jira - read:user.property:jira - read:application-role:jira - read:avatar:jira - read:group:jira state: Beta x-atlassian-connect-scope: READ /rest/api/3/user/search/query: get: deprecated: false description: >- Finds users with a structured query and returns a [paginated](#pagination) list of user details.

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 structured query. This means the operation usually returns fewer users than specified in `maxResults`. To get all the users who match the structured query, use [Get all users](#api-rest-api-3-users-search-get) and filter the records in your code.

**[Permissions](#permissions) required:** *Browse users and groups* [global permission](https://confluence.atlassian.com/x/x4dKLg).

The query statements are:

* `is assignee of PROJ` Returns the users that are assignees of at least one issue in project *PROJ*.
* `is assignee of (PROJ-1, PROJ-2)` Returns users that are assignees on the issues *PROJ-1* or *PROJ-2*.
* `is reporter of (PROJ-1, PROJ-2)` Returns users that are reporters on the issues *PROJ-1* or *PROJ-2*.
* `is watcher of (PROJ-1, PROJ-2)` Returns users that are watchers on the issues *PROJ-1* or *PROJ-2*.
* `is voter of (PROJ-1, PROJ-2)` Returns users that are voters on the issues *PROJ-1* or *PROJ-2*.
* `is commenter of (PROJ-1, PROJ-2)` Returns users that have posted a comment on the issues *PROJ-1* or *PROJ-2*.
* `is transitioner of (PROJ-1, PROJ-2)` Returns users that have performed a transition on issues *PROJ-1* or *PROJ-2*.
* `[propertyKey].entity.property.path is "property value"` Returns users with the entity property value.

The list of issues can be extended as needed, as in *(PROJ-1, PROJ-2, ... PROJ-n)*. Statements can be combined using the `AND` and `OR` operators to form more complex queries. For example:

`is assignee of PROJ AND [propertyKey].entity.property.path is "property value"` operationId: atlassianFindusersbyquery parameters: - description: The search query. in: query name: query required: true schema: type: string - description: >- The index of the first item to return in a page of results (page offset). in: query name: startAt schema: default: 0 format: int64 type: integer - description: The maximum number of items to return per page. in: query name: maxResults schema: default: 100 format: int32 type: integer responses: '200': content: application/json: schema: $ref: '#/components/schemas/PageBeanUser' description: Returned if the request is successful. '400': content: application/json: schema: $ref: '#/components/schemas/ErrorCollection' description: Returned if the query is invalid. '401': content: application/json: schema: $ref: '#/components/schemas/ErrorCollection' description: Returned if the authentication credentials are incorrect or missing. '403': content: application/json: schema: $ref: '#/components/schemas/ErrorCollection' description: Returned if the user does not have the necessary permission. '408': content: application/json: schema: $ref: '#/components/schemas/ErrorCollection' description: Returned if the search is timed out. security: - basicAuth: [] - OAuth2: - read:jira-user summary: Atlassian Find Users By Query tags: - User Search x-atlassian-data-security-policy: - app-access-rule-exempt: false x-atlassian-oauth2-scopes: - scheme: OAuth2 scopes: - read:jira-user state: Current - scheme: OAuth2 scopes: - read:comment:jira - read:issue:jira - read:issue.vote:jira - read:issue.watcher:jira - read:project:jira - read:user:jira - read:user.property:jira - read:application-role:jira - read:avatar:jira - read:group:jira state: Beta x-atlassian-connect-scope: READ /rest/api/3/user/search/query/key: get: deprecated: false description: >- Finds users with a structured query and returns a [paginated](#pagination) list of user keys.

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 structured query. This means the operation usually returns fewer users than specified in `maxResults`. To get all the users who match the structured query, use [Get all users](#api-rest-api-3-users-search-get) and filter the records in your code.

**[Permissions](#permissions) required:** *Browse users and groups* [global permission](https://confluence.atlassian.com/x/x4dKLg).

The query statements are:

* `is assignee of PROJ` Returns the users that are assignees of at least one issue in project *PROJ*.
* `is assignee of (PROJ-1, PROJ-2)` Returns users that are assignees on the issues *PROJ-1* or *PROJ-2*.
* `is reporter of (PROJ-1, PROJ-2)` Returns users that are reporters on the issues *PROJ-1* or *PROJ-2*.
* `is watcher of (PROJ-1, PROJ-2)` Returns users that are watchers on the issues *PROJ-1* or *PROJ-2*.
* `is voter of (PROJ-1, PROJ-2)` Returns users that are voters on the issues *PROJ-1* or *PROJ-2*.
* `is commenter of (PROJ-1, PROJ-2)` Returns users that have posted a comment on the issues *PROJ-1* or *PROJ-2*.
* `is transitioner of (PROJ-1, PROJ-2)` Returns users that have performed a transition on issues *PROJ-1* or *PROJ-2*.
* `[propertyKey].entity.property.path is "property value"` Returns users with the entity property value.

The list of issues can be extended as needed, as in *(PROJ-1, PROJ-2, ... PROJ-n)*. Statements can be combined using the `AND` and `OR` operators to form more complex queries. For example:

`is assignee of PROJ AND [propertyKey].entity.property.path is "property value"` operationId: atlassianFinduserkeysbyquery parameters: - description: The search query. in: query name: query required: true schema: type: string - description: >- The index of the first item to return in a page of results (page offset). in: query name: startAt schema: default: 0 format: int64 type: integer - description: The maximum number of items to return per page. in: query name: maxResult schema: default: 100 format: int32 type: integer responses: '200': content: application/json: schema: $ref: '#/components/schemas/PageBeanUserKey' description: Returned if the request is successful. '400': content: application/json: schema: $ref: '#/components/schemas/ErrorCollection' description: Returned if the query is invalid. '401': content: application/json: schema: $ref: '#/components/schemas/ErrorCollection' description: Returned if the authentication credentials are incorrect or missing. '403': content: application/json: schema: $ref: '#/components/schemas/ErrorCollection' description: Returned if the user does not have the necessary permission. '408': content: application/json: schema: $ref: '#/components/schemas/ErrorCollection' description: Returned if the search is timed out. security: - basicAuth: [] - OAuth2: - read:jira-user summary: Atlassian Find User Keys By Query tags: - User Search x-atlassian-data-security-policy: - app-access-rule-exempt: true x-atlassian-oauth2-scopes: - scheme: OAuth2 scopes: - read:jira-user state: Current - scheme: OAuth2 scopes: - read:comment:jira - read:issue:jira - read:issue.vote:jira - read:issue.watcher:jira - read:project:jira - read:user.property:jira - read:user:jira state: Beta x-atlassian-connect-scope: READ /rest/api/3/user/viewissue/search: get: deprecated: false description: >- 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. operationId: atlassianFinduserswithbrowsepermission parameters: - description: >- A query string that is matched against user attributes, such as `displayName` and `emailAddress`, to find relevant users. The string can match the prefix of the attribute's value. For example, *query=john* matches a user with a `displayName` of *John Smith* and a user with an `emailAddress` of *johnson@example.com*. Required, unless `accountId` is specified. in: query name: query schema: example: query type: string x-showInExample: 'true' - description: >- This parameter is no longer available. See the [deprecation notice](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details. in: query name: username schema: type: string - description: >- A query string that is matched exactly against user `accountId`. Required, unless `query` is specified. in: query name: accountId schema: maxLength: 128 type: string - description: >- The issue key for the issue. Required, unless `projectKey` is specified. in: query name: issueKey schema: type: string - description: >- The project key for the project (case sensitive). Required, unless `issueKey` is specified. in: query name: projectKey schema: type: string - description: >- The index of the first item to return in a page of results (page offset). in: query name: startAt schema: default: 0 format: int32 type: integer - description: The maximum number of items to return per page. in: query name: maxResults schema: default: 50 format: int32 type: integer responses: '200': content: application/json: example: >- [{"accountId":"5b10a2844c20165700ede21g","accountType":"atlassian","active":false,"avatarUrls":{"16x16":"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16","24x24":"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24","32x32":"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32","48x48":"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48"},"displayName":"Mia Krystof","key":"","name":"","self":"https://your-domain.atlassian.net/rest/api/3/user?accountId=5b10a2844c20165700ede21g"},{"accountId":"5b10ac8d82e05b22cc7d4ef5","accountType":"atlassian","active":false,"avatarUrls":{"16x16":"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/AA-3.png?size=16&s=16","24x24":"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/AA-3.png?size=24&s=24","32x32":"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/AA-3.png?size=32&s=32","48x48":"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/AA-3.png?size=48&s=48"},"displayName":"Emma Richards","key":"","name":"","self":"https://your-domain.atlassian.net/rest/api/3/user?accountId=5b10ac8d82e05b22cc7d4ef5"}] schema: items: $ref: '#/components/schemas/User' type: array description: Returned if the request is successful. '400': description: |- Returned if: * `issueKey` or `projectKey` is missing. * `query` or `accountId` is missing. * `query` and `accountId` are provided. '401': description: Returned if the authentication credentials are incorrect or missing. '404': description: Returned if the issue or project is not found. '429': description: >- 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. security: - basicAuth: [] - OAuth2: - read:jira-user - {} summary: Atlassian Find Users With Browse Permission tags: - User Search x-atlassian-data-security-policy: - app-access-rule-exempt: false x-atlassian-oauth2-scopes: - scheme: OAuth2 scopes: - read:jira-user state: Current - scheme: OAuth2 scopes: - read:issue:jira - read:project:jira - read:user:jira - read:application-role:jira - read:avatar:jira - read:group:jira state: Beta x-atlassian-connect-scope: READ servers: - url: https://your-domain.atlassian.net tags: - name: User Properties - name: User Search - name: Users x-atlassian-narrative: documents: - anchor: about body: >- The Jira REST API enables you to interact with Jira programmatically. Use this API to [build apps](https://developer.atlassian.com/cloud/jira/platform/integrating-with-jira-cloud/), script interactions with Jira, or develop any other type of integration. This page documents the REST resources available in Jira Cloud, including the HTTP response codes and example requests and responses. title: About - anchor: version body: > This documentation is for **version 3** of the Jira Cloud platform REST API, which is the latest version but is in **beta**. [Version 2](https://developer.atlassian.com/cloud/jira/platform/rest/v2/) and version 3 of the API offer the same collection of operations. However, version 3 provides support for the [Atlassian Document Format](https://developer.atlassian.com/cloud/jira/platform/apis/document/structure/) (ADF) in: - `body` in comments, including where comments are used in issue, issue link, and transition resources. - `comment` in worklogs. - `description` and `environment` fields in issues. - `textarea` type custom fields (multi-line text fields) in issues. Single line custom fields (`textfield`) accept a string and don't handle Atlassian Document Format content. However, these new features are under development and may change. title: Version - anchor: authentication body: > ### Forge apps For Forge apps, [REST API scopes](https://developer.atlassian.com/cloud/jira/platform/scopes-for-oauth-2-3LO-and-forge-apps/) are used when authenticating with Jira Cloud platform. See [Add scopes to call an Atlassian REST API](https://developer.atlassian.com/platform/forge/add-scopes-to-call-an-atlassian-rest-api/) for more details. The URIs for Forge app REST API calls have this structure: `/rest/api/3/` For example, `/rest/api/3/issue/DEMO-1` ### Connect apps For Connect apps, authentication (JWT-based) is built into the Connect libraries. Authorization is implemented using either scopes (shown as _App scope required_ for operations on this page) or user impersonation. See [Security for Connect apps](https://developer.atlassian.com/cloud/jira/platform/security-for-connect-apps/) for details. The URIs for Connect app REST API calls have this structure: `https:///rest/api/3/` For example, `https://your-domain.atlassian.net/rest/api/3/issue/DEMO-1` ### Other integrations For integrations that are not Forge or Connect apps, use OAuth 2.0 authorization code grants (3LO) for security (3LO scopes are shown as for operations _OAuth scopes required_). See [OAuth 2.0 (3LO) apps](https://developer.atlassian.com/cloud/jira/platform/oauth-2-3lo-apps/) for details. The URIs for OAuth 2.0 (3LO) app REST API calls have this structure: `https://api.atlassian.com/ex/jira//rest/api/3/` For example, `https://api.atlassian.com/ex/jira/35273b54-3f06-40d2-880f-dd28cf8daafa/rest/api/3/issue/DEMO-1` ### Ad-hoc API calls For personal scripts, bots, and ad-hoc execution of the REST APIs use basic authentication. See [Basic auth for REST APIs](https://developer.atlassian.com/cloud/jira/platform/basic-auth-for-rest-apis/) for details. The URIs for basic authentication REST API calls have this structure: `https:///rest/api/3/` For example, `https://your-domain.atlassian.net/rest/api/3/issue/DEMO-1` title: Authentication and authorization - anchor: permissions body: > ### Operation permissions Most operations in this API require permissions. The calling user must have the required permissions for an operation to use it. Note that for Connect apps, the app user must have the required permissions for the operation and the app must have scopes that permit the operation. A permission can be granted to a group, project role, or issue role that the user is a member of, or granted directly to a user. See [Permissions overview](https://confluence.atlassian.com/x/FQiiLQ) for details. The most common permissions are: - **Administer the Cloud site**: Users in the _site-admins_ group have this permission. See [Manage groups](https://confluence.atlassian.com/x/24xjL) for details. - **Administer Jira**: Granted by the _Jira Administrators_ global permission. There is a default group for this permission. See [Manage groups](https://confluence.atlassian.com/x/24xjL) and [Managing global permissions](https://confluence.atlassian.com/x/x4dKLg) for details. - **Administer a project in Jira**: Granted by the _Administer projects_ project permission for a project. This can be granted to a user, a group, a project role, and more. See [Managing project permissions](https://confluence.atlassian.com/x/yodKLg) for details. - **Access a project in Jira**: Granted by the _Browse projects_ project permission for a project. This can be granted to a user, a group, a project role, and more. See [Managing project permissions](https://confluence.atlassian.com/x/yodKLg) for details. - **Access Jira**: Granted by the _Jira Users_ global permission. Users in the default product access group (for example, _jira-software-users-acmesite_) have this permission. See [Manage groups](https://confluence.atlassian.com/x/24xjL) and [Managing global permissions](https://confluence.atlassian.com/x/x4dKLg) for details. ### Anonymous access Some operations provide support for anonymous access. However, anonymous access is only available if the Jira permission needed to access the object or records returned by the operation is granted to the _Public_ group. See [Allowing anonymous access to your project](https://confluence.atlassian.com/x/GDxxLg) for details. If an operation is called anonymously and anonymous access is not available, the operation will return an error. Note that not all operations that correspond to objects that can be given public access provide for anonymous access. title: Permissions - anchor: expansion body: >+ ### Expansion The Jira REST API uses resource expansion, which means that some parts of a resource are not returned unless specified in the request. This simplifies responses and minimizes network traffic. To expand part of a resource in a request, use the expand query parameter and specify the object(s) to be expanded. If you need to expand nested objects, use the `.` dot notation. If you need to expand multiple objects, use a comma-separated list. For example, the following request expands the `names` and `renderedFields` properties for the _JRACLOUD-34423_ issue: `GET issue/JRACLOUD-34423?expand=names,renderedFields` To discover which object can be expanded, refer to the `expand` property in the object. In the JSON example below, the resource declares `widgets` as expandable. ```json { "expand": "widgets", "self": "https://your-domain.atlassian.net/rest/api/3/resource/KEY-1", "widgets": { "widgets": [], "size": 5 } } ``` ### Pagination The Jira REST API uses pagination to improve performance. Pagination is enforced for operations that could return a large collection of items. When you make a request to a paginated resource, the response wraps the returned array of values in a JSON object with paging metadata. For example: ```json { "startAt" : 0, "maxResults" : 10, "total": 200, "isLast": false, "values": [ { /* result 0 */ }, { /* result 1 */ }, { /* result 2 */ } ] } ``` * `startAt` is the index of the first item returned in the page. * `maxResults` is the maximum number of items that a page can return. Each operation can have a different limit for the number of items returned, and these limits may change without notice. To find the maximum number of items that an operation could return, set `maxResults` to a large number—for example, over 1000—and if the returned value of `maxResults` is less than the requested value, the returned value is the maximum. * `total` is the total number of items contained in all pages. This number **_may change_** as the client requests the subsequent pages, therefore the client should always assume that the requested page can be empty. Note that this property is not returned for all operations. * `isLast` indicates whether the page returned is the last one. Note that this property is not returned for all operations. ### Ordering Some operations support ordering the elements of a response by a field. Check the documentation for the operation to confirm whether ordering of a response is supported and which fields can be used. Responses are listed in ascending order by default. You can change the order using the `orderby` query parameter with a `-` or `+` symbol. For example: * `?orderBy=name` to order by `name` field ascending. * `?orderBy=+name` to order by `name` field ascending. * `?orderBy=-name` to order by `name` field descending. title: Expansion, pagination, and ordering - anchor: timestamps body: > By default, top-level timestamps (e.g. updated and created) are returned in [ISO 8601](https://www.w3.org/TR/NOTE-datetime) format, in the system default user time zone. To return date time data in the logged in user's timezone, please refer to `renderedFields` property under the `expand` query parameter in relevant APIs. title: Timestamps - anchor: special-request-headers body: >- The following request and response headers define important metadata for the Jira Cloud REST API resources. - `X-Atlassian-Token` (request): Operations that accept multipart/form-data must include the `X-Atlassian-Token: no-check` header in requests. Otherwise the request is blocked by cross-site request forgery (CSRF/XSRF) protection. - `X-Force-Accept-Language` (request): controls how the standard HTTP `Accept-Language` header is processed. By default `Accept-Language` is ignored and the response is in the language configured in the user's profile or, when no language is configured for the user, the default Jira instance language. For the response to recognize `Accept-Language` send `X-Force-Accept-Language = true` as well. If `Accept-Language` requests a language that Jira can return the response is in that language, otherwise Jira returns the response in the default language. If `Accept-Language` is not specified the response is in the default language. - `X-AAccountId` (response): This response header contains the Atlassian account ID of the authenticated user. title: Special headers - anchor: anonymous-operations body: |2- Jira provides for all permissions, except the [global permission](https://confluence.atlassian.com/x/x4dKLg) Administer Jira, to be assigned to *Anyone*. Once a permission is assigned to *Anyone*, anyone knowing a project's URL is able to use the features in Jira enabled by the permission. However, the Jira REST API does not enable anonymous access for operations by default. This means that an anonymous user who may be able to perform an action through Jira, may not be able to perform the same action where it's enabled by the REST API. The operations that provide anonymous access are annotated "This operation can be accessed anonymously." title: Anonymous operations - anchor: async-operations body: >- Some Jira REST API operations may trigger long-running or computationally expensive tasks. In these cases, the operation will schedule an asynchronous task and return a `303 (See Other)` response, indicating the location of the queued task in the `Location` header. You can query this task to get progress updates. When the task finishes, the response object will contain the `result` field. The content of the field is specific to the operation that created the task. Refer to the operation’s documentation for more information. Note that asynchronous tasks are not guaranteed to be run in order. In other words, if you need your tasks to execute in a certain order, you should start a task only after the prerequisite task(s) have finished. title: Asynchronous operations - anchor: experimental body: > Features and methods marked as experimental may change without notice. Feedback on experimental functionality is welcome. Report your suggestions and bugs in the [ACJIRA project](https://ecosystem.atlassian.net/projects/ACJIRA) (preferred) or use the **Give docs feedback** link at the top of this page. title: Experimental features - anchor: status-codes body: >- The Jira Cloud platform REST API uses the [standard HTTP status codes](https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html). Operations that return an error status code may also return a response body containing details of the error or errors. The schema for the response body is shown below: ```json { "id": "https://docs.atlassian.com/jira/REST/schema/error-collection#", "title": "Error Collection", "type": "object", "properties": { "errorMessages": { "type": "array", "items": { "type": "string" } }, "errors": { "type": "object", "patternProperties": { ".+": { "type": "string" } }, "additionalProperties": false }, "status": { "type": "integer" } }, "additionalProperties": false } ``` title: Status codes