Developer
News and Updates
Get Support
Sign in
Get Support
Sign in
DOCUMENTATION
Cloud
Data Center
Resources
Sign in
Sign in
DOCUMENTATION
Cloud
Data Center
Resources
Sign in
Cloud
Organizations REST API / Reference / REST API

Users

Postman Collection
OpenAPI
POST

Search for users in an organization

Return a page of users in an organization that match the supplied parameters.

Use searchTerm for free-text search across user display names and email addresses. Use emails for exact-match filtering by full email addresses. searchTerm and emails are mutually exclusive. Providing both in the same request returns 400 Bad Request. Use the expand field to include additional fields such as platformRoles, counts.resources, productAccess, and groups in the response.

Request

Path parameters

orgId

string

Required
directoryId

string

Required

Request bodyapplication/json

cursor

string

limit

integer

accountIds

array<string>

directoryIds

array<string>

resourceIds

array<string>

groupIds

array<string>

mfaEnabled

boolean

claimStatus

string

status

array<string>

accountStatus

array<string>

Responses

Success

application/json

MultiDirectoryUserSearchPage
POST/v2/orgs/{orgId}/directories/{directoryId}/users/search
1 2 3 4 5 6 7 8 9 curl --request POST \ --url 'https://api.atlassian.com/admin/v2/orgs/{orgId}/directories/{directoryId}/users/search' \ --header 'Authorization: Bearer <access_token>' \ --header 'Accept: application/json' \ --header 'Content-Type: application/json' \ --data '{ "searchTerm": "alice", "limit": 50 }'
200Response
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 { "data": [ { "accountId": "12345678-1234-1234-1234-123456789012", "accountType": "atlassian", "status": "active", "accountStatus": "active", "membershipStatus": "active", "addedToOrg": "2024-01-01T00:00:00.000Z", "name": "John Doe", "nickname": "Jonny", "email": "email@example.com", "emailVerified": true, "claimStatus": "unmanaged", "platformRoles": [ "atlassian/org-admin" ], "picture": "https://picture.example.com/picture.png", "avatar": "https://avatar.example.com/avatar.png", "managementSource": "invited", "mfaEnabled": true, "jobTitle": "Senior Business Analyst", "department": "Human Resources", "organization": "Talent", "location": "New York", "timeZone": "America/New_York", "counts": { "resources": 10 }, "productAccess": [ { "key": "confluence", "id": "ari:cloud:confluence::site/12345678-1234-1234-1234-123456789012", "lastActiveTimestamp": "2025-11-06T23:07:29.936941226Z" } ], "groups": [ { "id": "ari:cloud:identity::group/12345678-1234-1234-1234-123456789012", "name": "Engineering", "description": "All engineers at the company" } ], "links": { "self": "ECg53CukK1twBo0LK1u9nw" } } ], "links": { "self": "ObSbZxpM1f1fzia2_GnuJw", "prev": "LIZFEbzCT2pCCkQhPIUgIQ", "next": "kloHX1ZQVasDAkx_P48NYQ" } }
GET

Get details of a user in a directory

Returns detailed information about a specific user in a directory within an organization.

Request

Path parameters

orgId

string

Required
directoryId

string

Required
accountId

string

Required

Responses

Success

application/json

MultiDirectoryUserDetails
GET/v2/orgs/{orgId}/directories/{directoryId}/users/{userId}
1 2 3 4 curl --request GET \ --url 'https://api.atlassian.com/admin/v2/orgs/{orgId}/directories/{directoryId}/users/{userId}' \ --header 'Authorization: Bearer <access_token>' \ --header 'Accept: application/json'
200Response
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 { "data": { "accountId": "12345678-1234-1234-1234-123456789012", "accountType": "atlassian", "status": "active", "accountStatus": "active", "membershipStatus": "active", "addedToOrg": "2024-01-01T00:00:00.000Z", "deactivatedOn": "2024-01-02T00:00:00.000Z", "name": "John Doe", "nickname": "Jonny", "email": "email@example.com", "emailVerified": true, "claimStatus": "unmanaged", "platformRoles": [ "atlassian/org-admin" ], "picture": "https://picture.example.com/picture.png", "avatar": "https://avatar.example.com/avatar.png", "managementSource": "invited", "mfaEnabled": true, "jobTitle": "Senior Business Analyst", "department": "Human Resources", "organization": "Talent", "location": "New York", "timeZone": "America/New_York", "counts": { "resources": 10 } } }
GET

Get managed accounts in an organization

Returns a list of managed accounts in an organization.

Scopes

Authorization scopes required: read:accounts:admin

Request

Path parameters

orgId

string

Required

Query parameters

cursor

string

Responses

Successful operation

application/json

UserPage
GET/v1/orgs/{orgId}/users
1 2 3 4 curl --request GET \ --url 'https://api.atlassian.com/admin/v1/orgs/{orgId}/users' \ --header 'Authorization: Bearer <access_token>' \ --header 'Accept: application/json'
200Response
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 { "data": [ { "account_id": "<string>", "account_type": "atlassian", "account_status": "active", "name": "<string>", "picture": "<string>", "email": "<string>", "access_billable": true, "last_active": "<string>", "product_access": [ { "key": "jira-software", "name": "<string>", "url": "<string>", "last_active": "<string>" } ], "links": { "self": "<string>" } } ], "meta": { "total": 35 }, "links": { "self": "<string>", "prev": "<string>", "next": "<string>" } }
POST

Invite users to an organization

Invite people to your organization. When you invite someone:

  • they’re given app roles according to your invitation.
  • they’re added to directories based on apps in your invitation.
  • they’re added to groups according to your invitation.
  • they receive an email invitation if the sendNotification field is set to true and the notificationText field contains a message to include in the email invitation.

This API is only available to customers who have at least one paid subscription in their organization.

Request

Path parameters

orgId

string

Required

Request bodyapplication/json

emails

array<string>

Required
permissionRules

array<MultidirectoryInviteRoleAssociation>

additionalGroups

array<string>

sendNotification

boolean

notificationText

string

Responses

Success

application/json

MultidirectoryInviteSuccessResponse
POST/v2/orgs/{orgId}/users/invite
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 curl --request POST \ --url 'https://api.atlassian.com/admin/v2/orgs/{orgId}/users/invite' \ --header 'Authorization: Bearer <access_token>' \ --header 'Accept: application/json' \ --header 'Content-Type: application/json' \ --data '{ "emails": [ "<string>" ], "permissionRules": [ { "resource": "ari:cloud:jira::site/70ef3a32-d0da-4e09-b35e-0109f91969c3", "role": "atlassian/user" } ], "additionalGroups": [ "<string>" ], "sendNotification": true, "notificationText": "<string>" }'
200Response
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 { "data": [ { "id": "<string>", "email": "<string>", "results": [ { "roleAssignmentResult": [ {} ], "groupAssignmentResult": [ {} ] } ] } ] }
GET

Get user role assignments

Returns a page of role assignments for a user that match the supplied parameters.

Scopes

Authorization scopes required: read:directories:admin

Request

Path parameters

orgId

string

Required
directoryId

string

Required
accountId

string

Required

Query parameters

cursor

string

limit

integer

directoryIds

array<string>

resourceOwners

array<string>

resourceIds

array<string>

roleIds

array<string>

Responses

Returned if the request is successful.

application/json

MultiDirectoryUserRoleAssignmentPage
GET/v2/orgs/{orgId}/directories/{directoryId}/users/{accountId}/role-assignments
1 2 3 4 curl --request GET \ --url 'https://api.atlassian.com/admin/v2/orgs/{orgId}/directories/{directoryId}/users/{accountId}/role-assignments' \ --header 'Authorization: Bearer <access_token>' \ --header 'Accept: application/json'
200Response
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 { "data": [ { "resourceId": "ari:cloud:jira-core::site/1", "resourceOwner": "jira-core", "roles": [ "atlassian/org-admin", "atlassian/site-admin", "atlassian/user-access-admin" ], "roleAssignments": [ { "role": "atlassian/user-access-admin", "roleAssignmentMethods": [ "group_direct" ] } ], "directoryId": "<string>", "userDirectoryStatus": "active" } ], "links": { "self": "ObSbZxpM1f1fzia2_GnuJw", "prev": "LIZFEbzCT2pCCkQhPIUgIQ", "next": "kloHX1ZQVasDAkx_P48NYQ" } }
POST

Grant user access

This API can be used to grant Platform Roles to a user.

Request

Path parameters

orgId

string

Required
userId

string

Required

Request bodyapplication/json

role

string

Required
resource

string

Responses

Role Assigned Successfully.

POST/v1/orgs/{orgId}/users/{userId}/roles/assign
1 2 3 4 5 6 7 8 curl --request POST \ --url 'https://api.atlassian.com/admin/v1/orgs/{orgId}/users/{userId}/roles/assign' \ --header 'Authorization: Bearer <access_token>' \ --header 'Content-Type: application/json' \ --data '{ "role": "atlassian/user", "resource": "ari:cloud:platform::site/70ef3a32-d0da-4e09-b35e-0109f91969c3" }'
POST

Revoke user access

This API can be used to revoke Platform Roles from a user.

Request

Path parameters

orgId

string

Required
userId

string

Required

Request bodyapplication/json

role

string

Required
resource

string

Responses

Role Revoked Successfully.

POST/v1/orgs/{orgId}/users/{userId}/roles/revoke
1 2 3 4 5 6 7 8 curl --request POST \ --url 'https://api.atlassian.com/admin/v1/orgs/{orgId}/users/{userId}/roles/revoke' \ --header 'Authorization: Bearer <access_token>' \ --header 'Content-Type: application/json' \ --data '{ "role": "atlassian/user", "resource": "ari:cloud:platform::site/70ef3a32-d0da-4e09-b35e-0109f91969c3" }'
POST

Suspend user access in directory

Suspend a user’s access in a directory to remove their access to apps temporarily. You’re not billed for a user when their access is suspended. They regain their roles and group memberships when you restore their access.

Request

Path parameters

orgId

string

Required
directoryId

string

Required
accountId

string

Required

Responses

Success

POST/v2/orgs/{orgId}/directories/{directoryId}/users/{accountId}/suspend
1 2 3 curl --request POST \ --url 'https://api.atlassian.com/admin/v2/orgs/{orgId}/directories/{directoryId}/users/{accountId}/suspend' \ --header 'Authorization: Bearer <access_token>'
POST

Restore user access in directory

Restore a user’s access in a directory to let them access apps again. They regain their roles and group memberships from before their access was suspended. We resume billing you for this user.

Request

Path parameters

orgId

string

Required
directoryId

string

Required
accountId

string

Required

Responses

Success

POST/v2/orgs/{orgId}/directories/{directoryId}/users/{accountId}/restore
1 2 3 curl --request POST \ --url 'https://api.atlassian.com/admin/v2/orgs/{orgId}/directories/{directoryId}/users/{accountId}/restore' \ --header 'Authorization: Bearer <access_token>'
DEL

Remove user from directory

Remove a user from a directory if you don’t want them to appear in your directory or have access to your apps anymore. You’re not billed for a user once they’re removed. You must invite the user to your organization again if you want to reinstate their access to your apps. You’ll need to assign their roles and group memberships again.

Request

Path parameters

orgId

string

Required
directoryId

string

Required
accountId

string

Required

Responses

Success

DEL/v2/orgs/{orgId}/directories/{directoryId}/users/{accountId}
1 2 3 curl --request DELETE \ --url 'https://api.atlassian.com/admin/v2/orgs/{orgId}/directories/{directoryId}/users/{accountId}' \ --header 'Authorization: Bearer <access_token>'
POST

Assign organization-level roleExperimental

Assign an organization-level role to a user. These are roles that have organization-wide privileges, like organization admin.

This operation follows eventual consistency. Changes may take up to 30 seconds to be reflected after the operation is performed.

Request

Path parameters

orgId

string

Required
userId

string

Required

Request bodyapplication/json

role

string

Required

Responses

Success.

POST/v1/orgs/{orgId}/users/{userId}/role-assignments/assign
1 2 3 4 5 6 7 curl --request POST \ --url 'https://api.atlassian.com/admin/v1/orgs/{orgId}/users/{userId}/role-assignments/assign' \ --header 'Authorization: Bearer <access_token>' \ --header 'Content-Type: application/json' \ --data '{ "role": "atlassian/org-admin" }'
POST

Remove organization-level roleExperimental

Remove an organization-level role from a user. These are roles that have organization-wide privileges, like organization admin.

This operation follows eventual consistency. Changes may take up to 30 seconds to be reflected after the operation is performed.

Request

Path parameters

orgId

string

Required
userId

string

Required

Request bodyapplication/json

role

string

Required

Responses

Success.

POST/v1/orgs/{orgId}/users/{userId}/role-assignments/revoke
1 2 3 4 5 6 7 curl --request POST \ --url 'https://api.atlassian.com/admin/v1/orgs/{orgId}/users/{userId}/role-assignments/revoke' \ --header 'Authorization: Bearer <access_token>' \ --header 'Content-Type: application/json' \ --data '{ "role": "atlassian/org-admin" }'
GET

Get count of users in an organization

Returns a count of users in an organization that match the supplied parameters. By default, users in all your directories and all your managed accounts are counted (including managed accounts that aren’t in a directory).

To count users in a directory only, use the directoryIds field. To count your managed accounts, regardless if they’re in a directory or not, use the claimStatus field.

Request

Path parameters

orgId

string

Required
directoryId

string

Required

Query parameters

accountIds

array<string>

directoryIds

array<string>

resourceIds

array<string>

groupIds

array<string>

mfaEnabled

boolean

claimStatus

string

status

array<string>

accountStatus

array<string>

membershipStatus

array<string>

roleIds

array<string>

Responses

Success

application/json

object
GET/v2/orgs/{orgId}/directories/{directoryId}/users/count
1 2 3 4 curl --request GET \ --url 'https://api.atlassian.com/admin/v2/orgs/{orgId}/directories/{directoryId}/users/count' \ --header 'Authorization: Bearer <access_token>' \ --header 'Accept: application/json'
200Response
1 2 3 { "count": 48 }
GET

Get user stats in an organization

Return user stats for the organization.

Scopes

Authorization scopes required: read:directories:admin

Request

Path parameters

orgId

string

Required
directoryId

string

Required

Responses

Success

application/json

MultiDirectoryUserStats
GET/v2/orgs/{orgId}/directories/{directoryId}/users/stats
1 2 3 4 curl --request GET \ --url 'https://api.atlassian.com/admin/v2/orgs/{orgId}/directories/{directoryId}/users/stats' \ --header 'Authorization: Bearer <access_token>' \ --header 'Accept: application/json'
200Response
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 { "roles": [ { "roleId": "atlassian/org-admin", "count": 3 } ], "accountStatus": [ { "status": "active", "count": 5 }, { "status": "inactive", "count": 1 }, { "status": "closed", "count": 2 } ] }
GET

User’s last active dates

Additional response parameters of the API (for e.g., added_to_org) are available only to customers using the new user management experience. Learn more about the new user management experience.

Specifications:

  • Return a user’s last active date for each product listed in Atlassian Administration.
  • Active is defined as viewing a product's page for a minimum of 2 seconds.
  • The data for the last activity may be delayed by up to 24 hours.
  • If the user has not accessed a product, the product_access response field will be empty.

Learn the fastest way to call the API with a detailed tutorial.

Request

Path parameters

orgId

string

Required
accountId

string

Required

Query parameters

cursor

string

Responses

Successful operation

application/json

UserProductAccessActivityPage
GET/v1/orgs/{orgId}/directory/users/{accountId}/last-active-dates
1 2 3 4 curl --request GET \ --url 'https://api.atlassian.com/admin/v1/orgs/{orgId}/directory/users/{accountId}/last-active-dates' \ --header 'Authorization: Bearer <access_token>' \ --header 'Accept: application/json'
200Response
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 { "data": { "product_access": [ { "id": "<string>", "key": "jira-software", "last_active": "<string>", "last_active_timestamp": "<string>" } ], "added_to_org": "<string>", "added_to_org_timestamp": "<string>" }, "links": { "next": "<string>" } }
GET

Get users in an organizationDeprecated

This API is deprecated and will no longer work after June 30, 2027. Use the Search for users in an organization endpoint instead.

Return a page of users in your organization that match the supplied parameters. By default, returns users in all your directories.

To get users in a directory only, use the directoryIds field. To get your managed accounts, regardless if they’re in a directory or not, use the claimStatus field.

Scopes

Authorization scopes required: read:directories:admin

Request

Path parameters

orgId

string

Required
directoryId

string

Required

Query parameters

cursor

string

limit

integer

accountIds

array<string>

directoryIds

array<string>

resourceIds

array<string>

groupIds

array<string>

mfaEnabled

boolean

claimStatus

string

status

array<string>

accountStatus

array<string>

Responses

Success

application/json

MultiDirectoryUserPage
GET/v2/orgs/{orgId}/directories/{directoryId}/users
1 2 3 4 curl --request GET \ --url 'https://api.atlassian.com/admin/v2/orgs/{orgId}/directories/{directoryId}/users' \ --header 'Authorization: Bearer <access_token>' \ --header 'Accept: application/json'
200Response
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 { "data": [ { "accountId": "12345678-1234-1234-1234-123456789012", "accountType": "atlassian", "status": "active", "accountStatus": "active", "membershipStatus": "active", "addedToOrg": "2024-01-01T00:00:00.000Z", "name": "John Doe", "nickname": "Jonny", "email": "email@example.com", "emailVerified": true, "claimStatus": "unmanaged", "platformRoles": [ "atlassian/org-admin" ], "picture": "https://picture.example.com/picture.png", "avatar": "https://avatar.example.com/avatar.png", "managementSource": "invited", "mfaEnabled": true, "jobTitle": "Senior Business Analyst", "department": "Human Resources", "organization": "Talent", "location": "New York", "timeZone": "America/New_York", "counts": { "resources": 10 }, "productAccess": [ { "key": "confluence", "id": "ari:cloud:confluence::site/12345678-1234-1234-1234-123456789012", "lastActiveTimestamp": "2025-11-06T23:07:29.936941226Z" } ], "groups": [ { "id": "ari:cloud:identity::group/12345678-1234-1234-1234-123456789012", "name": "Engineering", "description": "All engineers at the company" } ], "links": { "self": "ECg53CukK1twBo0LK1u9nw" } } ], "links": { "self": "ObSbZxpM1f1fzia2_GnuJw", "prev": "LIZFEbzCT2pCCkQhPIUgIQ", "next": "kloHX1ZQVasDAkx_P48NYQ" } }

Rate this page: