Chilkat Online Tools

VB6 / Atlassian Confluence Cloud / Get multiple users using ids

Back to Collection Items

' This example assumes the Chilkat API to have been previously unlocked.
' See Global Unlock Sample for sample code.

Dim http As New ChilkatHttp
Dim success As Long

Dim queryParams As New ChilkatJsonObject
success = queryParams.UpdateString("accountId","<string>")
success = queryParams.UpdateString("expand","<string>")
success = queryParams.UpdateString("expand","<string>")
success = queryParams.UpdateString("limit","<integer>")

' Adds the "Authorization: Bearer <access_token>" header.
http.AuthToken = "<access_token>"

Dim resp As ChilkatHttpResponse
Set resp = http.QuickRequestParams("GET","https://your-domain.atlassian.net/wiki/rest/api/user/bulk",queryParams)
If (http.LastMethodSuccess = 0) Then
    Debug.Print http.LastErrorText
    Exit Sub
End If

Dim sbResponseBody As New ChilkatStringBuilder
success = resp.GetBodySb(sbResponseBody)

Dim jResp As New ChilkatJsonObject
success = jResp.LoadSb(sbResponseBody)
jResp.EmitCompact = 0

Debug.Print "Response Body:"
Debug.Print jResp.Emit()

Dim respStatusCode As Long
respStatusCode = resp.StatusCode
Debug.Print "Response Status Code = " & respStatusCode
If (respStatusCode >= 400) Then
    Debug.Print "Response Header:"
    Debug.Print resp.Header
    Debug.Print "Failed."

    Exit Sub
End If

' Sample JSON response:
' (Sample code for parsing the JSON response is shown below)

' {
'   "results": [
'     {
'       "type": "user",
'       "accountId": "elit est ullamco in officia",
'       "accountType": "exercitation fugiat labo",
'       "email": "Excepteur in cillum officia",
'       "publicName": "ullamco occaecat",
'       "profilePicture": {
'         "path": "cupidatat dolore et labore ad",
'         "width": -99848841,
'         "height": 55035562,
'         "isDefault": true
'       },
'       "displayName": "amet",
'       "_expandable": {
'         "operations": "labore ut Duis id culpa",
'         "details": "in irure voluptate Duis magna",
'         "personalSpace": "n"
'       },
'       "_links": {},
'       "username": "est sunt dolor nostrud",
'       "userKey": "labo",
'       "operations": [
'         {
'           "operation": "update",
'           "targetType": "attachment"
'         },
'         {
'           "operation": "administer",
'           "targetType": "attachment"
'         }
'       ],
'       "details": {
'         "business": {
'           "value": "<Error: Too many levels of nesting to fake this schema>"
'         },
'         "personal": {
'           "value": "<Error: Too many levels of nesting to fake this schema>"
'         }
'       },
'       "personalSpace": {
'         "id": -93610124,
'         "key": "in eiusmod",
'         "name": "ut minim Excepteur",
'         "type": "sunt qui amet",
'         "status": "null",
'         "_expandable": {
'           "settings": "pariatur deserunt anim",
'           "metadata": "anim occaecat aliqua",
'           "operations": "aute nostrud in",
'           "lookAndFeel": "est irure aute labore",
'           "permissions": "in cupidatat qui",
'           "icon": "voluptate Duis",
'           "description": "culpa veniam Lorem velit",
'           "theme": "consequat sunt reprehenderit",
'           "history": "ex officia veniam sit do",
'           "homepage": "dolore dolore"
'         },
'         "_links": {},
'         "icon": {
'           "path": "dolore Lorem magna sunt",
'           "width": 3933679,
'           "height": -17426468,
'           "isDefault": false
'         },
'         "description": {
'           "plain": {
'             "value": "consequat consectetur laborum labore occaecat",
'             "representation": "view",
'             "embeddedContent": [
'               {
'                 "value": "<Error: Too many levels of nesting to fake this schema>"
'               },
'               {
'                 "value": "<Error: Too many levels of nesting to fake this schema>"
'               }
'             ]
'           },
'           "view": {
'             "value": "Duis reprehenderit anim ut",
'             "representation": "view",
'             "embeddedContent": [
'               {
'                 "value": "<Error: Too many levels of nesting to fake this schema>"
'               },
'               {
'                 "value": "<Error: Too many levels of nesting to fake this schema>"
'               }
'             ]
'           }
'         },
'         "homepage": {
'           "value": "<Circular reference to #/components/schemas/Content detected>"
'         },
'         "metadata": {
'           "labels": {
'             "results": [
'               {
'                 "value": "<Error: Too many levels of nesting to fake this schema>"
'               },
'               {
'                 "value": "<Error: Too many levels of nesting to fake this schema>"
'               }
'             ],
'             "start": 23981894,
'             "limit": -68365223,
'             "size": -97521792,
'             "_links": {}
'           }
'         },
'         "operations": [
'           {
'             "operation": "administer",
'             "targetType": "blogpost"
'           },
'           {
'             "operation": "delete",
'             "targetType": "blogpost"
'           }
'         ],
'         "permissions": [
'           {
'             "subjects": {
'               "_expandable": {
'                 "value": "<Error: Too many levels of nesting to fake this schema>"
'               },
'               "user": {
'                 "value": "<Error: Too many levels of nesting to fake this schema>"
'               },
'               "group": {
'                 "value": "<Error: Too many levels of nesting to fake this schema>"
'               }
'             },
'             "operation": {
'               "operation": "read",
'               "targetType": "space"
'             },
'             "anonymousAccess": false,
'             "unlicensedAccess": false
'           },
'           {
'             "subjects": {
'               "_expandable": {
'                 "value": "<Error: Too many levels of nesting to fake this schema>"
'               },
'               "user": {
'                 "value": "<Error: Too many levels of nesting to fake this schema>"
'               },
'               "group": {
'                 "value": "<Error: Too many levels of nesting to fake this schema>"
'               }
'             },
'             "operation": {
'               "operation": "restore",
'               "targetType": "blogpost"
'             },
'             "anonymousAccess": false,
'             "unlicensedAccess": false
'           }
'         ],
'         "settings": {
'           "routeOverrideEnabled": true,
'           "_links": {}
'         },
'         "theme": {},
'         "lookAndFeel": {
'           "headings": {
'             "color": "<string>"
'           },
'           "links": {
'             "color": "<string>"
'           },
'           "menus": {
'             "hoverOrFocus": {
'               "value": "<Error: Too many levels of nesting to fake this schema>"
'             },
'             "color": {
'               "value": "<Error: Too many levels of nesting to fake this schema>"
'             }
'           },
'           "header": {
'             "backgroundColor": {
'               "value": "<Error: Too many levels of nesting to fake this schema>"
'             },
'             "button": {
'               "value": "<Error: Too many levels of nesting to fake this schema>"
'             },
'             "primaryNavigation": {
'               "value": "<Error: Too many levels of nesting to fake this schema>"
'             },
'             "secondaryNavigation": {
'               "value": "<Error: Too many levels of nesting to fake this schema>"
'             },
'             "search": {
'               "value": "<Error: Too many levels of nesting to fake this schema>"
'             }
'           },
'           "content": {
'             "screen": {
'               "value": "<Error: Too many levels of nesting to fake this schema>"
'             },
'             "container": {
'               "value": "<Error: Too many levels of nesting to fake this schema>"
'             },
'             "header": {
'               "value": "<Error: Too many levels of nesting to fake this schema>"
'             },
'             "body": {
'               "value": "<Error: Too many levels of nesting to fake this schema>"
'             }
'           },
'           "bordersAndDividers": {
'             "color": "<string>"
'           }
'         },
'         "history": {
'           "createdDate": "2004-03-14T14:56:20.738Z"
'         }
'       }
'     },
'     {
'       "type": "user",
'       "accountId": "aliquip ex aute occaecat minim",
'       "accountType": "cupidatat dolore",
'       "email": "tempor non",
'       "publicName": "Lorem",
'       "profilePicture": {
'         "path": "fugiat ex sit sunt",
'         "width": 86996840,
'         "height": -45552232,
'         "isDefault": false
'       },
'       "displayName": "eu qui mollit",
'       "_expandable": {
'         "operations": "laborum dolor magna adipisicing",
'         "details": "culpa quis a",
'         "personalSpace": "id in"
'       },
'       "_links": {},
'       "username": "proident minim et ipsum",
'       "userKey": "est conseq",
'       "operations": [
'         {
'           "operation": "copy",
'           "targetType": "comment"
'         },
'         {
'           "operation": "purge_version",
'           "targetType": "application"
'         }
'       ],
'       "details": {
'         "business": {
'           "value": "<Error: Too many levels of nesting to fake this schema>"
'         },
'         "personal": {
'           "value": "<Error: Too many levels of nesting to fake this schema>"
'         }
'       },
'       "personalSpace": {
'         "id": -77236660,
'         "key": "mollit",
'         "name": "mollit reprehenderit",
'         "type": "ipsum eu",
'         "status": "id magna esse",
'         "_expandable": {
'           "settings": "Lorem cupidatat fugiat id",
'           "metadata": "ut non",
'           "operations": "m",
'           "lookAndFeel": "elit ",
'           "permissions": "proident labore",
'           "icon": "ut fugiat esse do",
'           "description": "sunt",
'           "theme": "ea consequat aliqua",
'           "history": "ullamco culpa",
'           "homepage": "eu esse ut amet"
'         },
'         "_links": {},
'         "icon": {
'           "path": "laborum magna Dui",
'           "width": -87940522,
'           "height": -74576861,
'           "isDefault": true
'         },
'         "description": {
'           "plain": {
'             "value": "adipisicing proident magna nulla",
'             "representation": "view",
'             "embeddedContent": [
'               {
'                 "value": "<Error: Too many levels of nesting to fake this schema>"
'               },
'               {
'                 "value": "<Error: Too many levels of nesting to fake this schema>"
'               }
'             ]
'           },
'           "view": {
'             "value": "quis enim ex adipisicing",
'             "representation": "plain",
'             "embeddedContent": [
'               {
'                 "value": "<Error: Too many levels of nesting to fake this schema>"
'               },
'               {
'                 "value": "<Error: Too many levels of nesting to fake this schema>"
'               }
'             ]
'           }
'         },
'         "homepage": {
'           "value": "<Circular reference to #/components/schemas/Content detected>"
'         },
'         "metadata": {
'           "labels": {
'             "results": [
'               {
'                 "value": "<Error: Too many levels of nesting to fake this schema>"
'               },
'               {
'                 "value": "<Error: Too many levels of nesting to fake this schema>"
'               }
'             ],
'             "start": 12150462,
'             "limit": -13231996,
'             "size": -79881326,
'             "_links": {}
'           }
'         },
'         "operations": [
'           {
'             "operation": "create",
'             "targetType": "page"
'           },
'           {
'             "operation": "update",
'             "targetType": "blogpost"
'           }
'         ],
'         "permissions": [
'           {
'             "subjects": {
'               "_expandable": {
'                 "value": "<Error: Too many levels of nesting to fake this schema>"
'               },
'               "user": {
'                 "value": "<Error: Too many levels of nesting to fake this schema>"
'               },
'               "group": {
'                 "value": "<Error: Too many levels of nesting to fake this schema>"
'               }
'             },
'             "operation": {
'               "operation": "purge",
'               "targetType": "attachment"
'             },
'             "anonymousAccess": false,
'             "unlicensedAccess": false
'           },
'           {
'             "subjects": {
'               "_expandable": {
'                 "value": "<Error: Too many levels of nesting to fake this schema>"
'               },
'               "user": {
'                 "value": "<Error: Too many levels of nesting to fake this schema>"
'               },
'               "group": {
'                 "value": "<Error: Too many levels of nesting to fake this schema>"
'               }
'             },
'             "operation": {
'               "operation": "delete",
'               "targetType": "application"
'             },
'             "anonymousAccess": false,
'             "unlicensedAccess": false
'           }
'         ],
'         "settings": {
'           "routeOverrideEnabled": true,
'           "_links": {}
'         },
'         "theme": {},
'         "lookAndFeel": {
'           "headings": {
'             "color": "<string>"
'           },
'           "links": {
'             "color": "<string>"
'           },
'           "menus": {
'             "hoverOrFocus": {
'               "value": "<Error: Too many levels of nesting to fake this schema>"
'             },
'             "color": {
'               "value": "<Error: Too many levels of nesting to fake this schema>"
'             }
'           },
'           "header": {
'             "backgroundColor": {
'               "value": "<Error: Too many levels of nesting to fake this schema>"
'             },
'             "button": {
'               "value": "<Error: Too many levels of nesting to fake this schema>"
'             },
'             "primaryNavigation": {
'               "value": "<Error: Too many levels of nesting to fake this schema>"
'             },
'             "secondaryNavigation": {
'               "value": "<Error: Too many levels of nesting to fake this schema>"
'             },
'             "search": {
'               "value": "<Error: Too many levels of nesting to fake this schema>"
'             }
'           },
'           "content": {
'             "screen": {
'               "value": "<Error: Too many levels of nesting to fake this schema>"
'             },
'             "container": {
'               "value": "<Error: Too many levels of nesting to fake this schema>"
'             },
'             "header": {
'               "value": "<Error: Too many levels of nesting to fake this schema>"
'             },
'             "body": {
'               "value": "<Error: Too many levels of nesting to fake this schema>"
'             }
'           },
'           "bordersAndDividers": {
'             "color": "<string>"
'           }
'         },
'         "history": {
'           "createdDate": "1965-11-18T11:33:14.736Z"
'         }
'       }
'     }
'   ],
'   "start": -77819495,
'   "limit": -88196390,
'   "size": -80415169,
'   "_links": {}
' }

' Sample code for parsing the JSON response...
' Use this online tool to generate parsing code from sample JSON: Generate JSON Parsing Code

Dim v_type As String
Dim accountId As String
Dim accountType As String
Dim email As String
Dim publicName As String
Dim Path As String
Dim Width As Long
Dim Height As Long
Dim IsDefault As Long
Dim displayName As String
Dim Operations As String
Dim Details As String
Dim PersonalSpace As String
Dim username As String
Dim userKey As String
Dim Value As String
Dim PersonalValue As String
Dim Id As Long
Dim Key As String
Dim Name As String
Dim v_Type As String
Dim Status As String
Dim Settings As String
Dim Metadata As String
Dim v_expandableOperations As String
Dim LookAndFeel As String
Dim Permissions As String
Dim Icon As String
Dim Description As String
Dim Theme As String
Dim History As String
Dim Homepage As String
Dim IconPath As String
Dim IconWidth As Long
Dim IconHeight As Long
Dim IconIsDefault As Long
Dim PlainValue As String
Dim Representation As String
Dim ViewValue As String
Dim ViewRepresentation As String
Dim HomepageValue As String
Dim Start As Long
Dim Limit As Long
Dim Size As Long
Dim RouteOverrideEnabled As Long
Dim Color As String
Dim LinksColor As String
Dim HoverOrFocusValue As String
Dim ColorValue As String
Dim BackgroundColorValue As String
Dim ButtonValue As String
Dim PrimaryNavigationValue As String
Dim SecondaryNavigationValue As String
Dim SearchValue As String
Dim ScreenValue As String
Dim ContainerValue As String
Dim HeaderValue As String
Dim BodyValue As String
Dim BordersAndDividersColor As String
Dim CreatedDate As String
Dim j As Long
Dim count_j As Long
Dim operation As String
Dim targetType As String
Dim value As String
Dim v_expandableValue As String
Dim UserValue As String
Dim GroupValue As String
Dim Operation As String
Dim TargetType As String
Dim anonymousAccess As Long
Dim unlicensedAccess As Long

Dim start As Long
start = jResp.IntOf("start")
Dim limit As Long
limit = jResp.IntOf("limit")
Dim size As Long
size = jResp.IntOf("size")
Dim i As Long
i = 0
Dim count_i As Long
count_i = jResp.SizeOfArray("results")
Do While i < count_i
    jResp.I = i
    v_type = jResp.StringOf("results[i].type")
    accountId = jResp.StringOf("results[i].accountId")
    accountType = jResp.StringOf("results[i].accountType")
    email = jResp.StringOf("results[i].email")
    publicName = jResp.StringOf("results[i].publicName")
    Path = jResp.StringOf("results[i].profilePicture.path")
    Width = jResp.IntOf("results[i].profilePicture.width")
    Height = jResp.IntOf("results[i].profilePicture.height")
    IsDefault = jResp.BoolOf("results[i].profilePicture.isDefault")
    displayName = jResp.StringOf("results[i].displayName")
    Operations = jResp.StringOf("results[i]._expandable.operations")
    Details = jResp.StringOf("results[i]._expandable.details")
    PersonalSpace = jResp.StringOf("results[i]._expandable.personalSpace")
    username = jResp.StringOf("results[i].username")
    userKey = jResp.StringOf("results[i].userKey")
    Value = jResp.StringOf("results[i].details.business.value")
    PersonalValue = jResp.StringOf("results[i].details.personal.value")
    Id = jResp.IntOf("results[i].personalSpace.id")
    Key = jResp.StringOf("results[i].personalSpace.key")
    Name = jResp.StringOf("results[i].personalSpace.name")
    v_Type = jResp.StringOf("results[i].personalSpace.type")
    Status = jResp.StringOf("results[i].personalSpace.status")
    Settings = jResp.StringOf("results[i].personalSpace._expandable.settings")
    Metadata = jResp.StringOf("results[i].personalSpace._expandable.metadata")
    v_expandableOperations = jResp.StringOf("results[i].personalSpace._expandable.operations")
    LookAndFeel = jResp.StringOf("results[i].personalSpace._expandable.lookAndFeel")
    Permissions = jResp.StringOf("results[i].personalSpace._expandable.permissions")
    Icon = jResp.StringOf("results[i].personalSpace._expandable.icon")
    Description = jResp.StringOf("results[i].personalSpace._expandable.description")
    Theme = jResp.StringOf("results[i].personalSpace._expandable.theme")
    History = jResp.StringOf("results[i].personalSpace._expandable.history")
    Homepage = jResp.StringOf("results[i].personalSpace._expandable.homepage")
    IconPath = jResp.StringOf("results[i].personalSpace.icon.path")
    IconWidth = jResp.IntOf("results[i].personalSpace.icon.width")
    IconHeight = jResp.IntOf("results[i].personalSpace.icon.height")
    IconIsDefault = jResp.BoolOf("results[i].personalSpace.icon.isDefault")
    PlainValue = jResp.StringOf("results[i].personalSpace.description.plain.value")
    Representation = jResp.StringOf("results[i].personalSpace.description.plain.representation")
    ViewValue = jResp.StringOf("results[i].personalSpace.description.view.value")
    ViewRepresentation = jResp.StringOf("results[i].personalSpace.description.view.representation")
    HomepageValue = jResp.StringOf("results[i].personalSpace.homepage.value")
    Start = jResp.IntOf("results[i].personalSpace.metadata.labels.start")
    Limit = jResp.IntOf("results[i].personalSpace.metadata.labels.limit")
    Size = jResp.IntOf("results[i].personalSpace.metadata.labels.size")
    RouteOverrideEnabled = jResp.BoolOf("results[i].personalSpace.settings.routeOverrideEnabled")
    Color = jResp.StringOf("results[i].personalSpace.lookAndFeel.headings.color")
    LinksColor = jResp.StringOf("results[i].personalSpace.lookAndFeel.links.color")
    HoverOrFocusValue = jResp.StringOf("results[i].personalSpace.lookAndFeel.menus.hoverOrFocus.value")
    ColorValue = jResp.StringOf("results[i].personalSpace.lookAndFeel.menus.color.value")
    BackgroundColorValue = jResp.StringOf("results[i].personalSpace.lookAndFeel.header.backgroundColor.value")
    ButtonValue = jResp.StringOf("results[i].personalSpace.lookAndFeel.header.button.value")
    PrimaryNavigationValue = jResp.StringOf("results[i].personalSpace.lookAndFeel.header.primaryNavigation.value")
    SecondaryNavigationValue = jResp.StringOf("results[i].personalSpace.lookAndFeel.header.secondaryNavigation.value")
    SearchValue = jResp.StringOf("results[i].personalSpace.lookAndFeel.header.search.value")
    ScreenValue = jResp.StringOf("results[i].personalSpace.lookAndFeel.content.screen.value")
    ContainerValue = jResp.StringOf("results[i].personalSpace.lookAndFeel.content.container.value")
    HeaderValue = jResp.StringOf("results[i].personalSpace.lookAndFeel.content.header.value")
    BodyValue = jResp.StringOf("results[i].personalSpace.lookAndFeel.content.body.value")
    BordersAndDividersColor = jResp.StringOf("results[i].personalSpace.lookAndFeel.bordersAndDividers.color")
    CreatedDate = jResp.StringOf("results[i].personalSpace.history.createdDate")
    j = 0
    count_j = jResp.SizeOfArray("results[i].operations")
    Do While j < count_j
        jResp.J = j
        operation = jResp.StringOf("results[i].operations[j].operation")
        targetType = jResp.StringOf("results[i].operations[j].targetType")
        j = j + 1
    Loop
    j = 0
    count_j = jResp.SizeOfArray("results[i].personalSpace.description.plain.embeddedContent")
    Do While j < count_j
        jResp.J = j
        value = jResp.StringOf("results[i].personalSpace.description.plain.embeddedContent[j].value")
        j = j + 1
    Loop
    j = 0
    count_j = jResp.SizeOfArray("results[i].personalSpace.description.view.embeddedContent")
    Do While j < count_j
        jResp.J = j
        value = jResp.StringOf("results[i].personalSpace.description.view.embeddedContent[j].value")
        j = j + 1
    Loop
    j = 0
    count_j = jResp.SizeOfArray("results[i].personalSpace.metadata.labels.results")
    Do While j < count_j
        jResp.J = j
        value = jResp.StringOf("results[i].personalSpace.metadata.labels.results[j].value")
        j = j + 1
    Loop
    j = 0
    count_j = jResp.SizeOfArray("results[i].personalSpace.operations")
    Do While j < count_j
        jResp.J = j
        operation = jResp.StringOf("results[i].personalSpace.operations[j].operation")
        targetType = jResp.StringOf("results[i].personalSpace.operations[j].targetType")
        j = j + 1
    Loop
    j = 0
    count_j = jResp.SizeOfArray("results[i].personalSpace.permissions")
    Do While j < count_j
        jResp.J = j
        v_expandableValue = jResp.StringOf("results[i].personalSpace.permissions[j].subjects._expandable.value")
        UserValue = jResp.StringOf("results[i].personalSpace.permissions[j].subjects.user.value")
        GroupValue = jResp.StringOf("results[i].personalSpace.permissions[j].subjects.group.value")
        Operation = jResp.StringOf("results[i].personalSpace.permissions[j].operation.operation")
        TargetType = jResp.StringOf("results[i].personalSpace.permissions[j].operation.targetType")
        anonymousAccess = jResp.BoolOf("results[i].personalSpace.permissions[j].anonymousAccess")
        unlicensedAccess = jResp.BoolOf("results[i].personalSpace.permissions[j].unlicensedAccess")
        j = j + 1
    Loop
    i = i + 1
Loop

Curl Command

curl -G -d "accountId=%3Cstring%3E"
	-d "expand=%3Cstring%3E"
	-d "expand=%3Cstring%3E"
	-d "limit=%3Cinteger%3E"
	-H "Authorization: Bearer <access_token>"
https://your-domain.atlassian.net/wiki/rest/api/user/bulk

Postman Collection Item JSON

{
  "name": "Get multiple users using ids",
  "request": {
    "auth": {
      "type": "oauth2"
    },
    "method": "GET",
    "header": [
    ],
    "url": {
      "raw": "{{baseUrl}}/api/user/bulk?accountId=<string>&expand=<string>&expand=<string>&limit=<integer>",
      "host": [
        "{{baseUrl}}"
      ],
      "path": [
        "api",
        "user",
        "bulk"
      ],
      "query": [
        {
          "key": "accountId",
          "value": "<string>",
          "description": "(Required) A list of accountId's of users to be returned."
        },
        {
          "key": "expand",
          "value": "<string>",
          "description": "A multi-value parameter indicating which properties of the user to\nexpand.\n\n  - `operations` returns the operations that the user is allowed to do.\n  - `details.personal` returns the 'Personal' details in the user's profile, like the 'Email' and 'Phone'.\n  Note that these fields have been deprecated due to privacy changes. See the\n  [migration guide](https://developer.atlassian.com/cloud/confluence/deprecation-notice-user-privacy-api-migration-guide/)\n  for details.\n  - `details.business` returns the 'Company' details in the user's profile, like the 'Position' and 'Department'.\n  Note that these fields have been deprecated due to privacy changes. See the\n  [migration guide](https://developer.atlassian.com/cloud/confluence/deprecation-notice-user-privacy-api-migration-guide/)\n  for details.\n  - personalSpace returns the user's personal space, if it exists."
        },
        {
          "key": "expand",
          "value": "<string>",
          "description": "A multi-value parameter indicating which properties of the user to\nexpand.\n\n  - `operations` returns the operations that the user is allowed to do.\n  - `details.personal` returns the 'Personal' details in the user's profile, like the 'Email' and 'Phone'.\n  Note that these fields have been deprecated due to privacy changes. See the\n  [migration guide](https://developer.atlassian.com/cloud/confluence/deprecation-notice-user-privacy-api-migration-guide/)\n  for details.\n  - `details.business` returns the 'Company' details in the user's profile, like the 'Position' and 'Department'.\n  Note that these fields have been deprecated due to privacy changes. See the\n  [migration guide](https://developer.atlassian.com/cloud/confluence/deprecation-notice-user-privacy-api-migration-guide/)\n  for details.\n  - personalSpace returns the user's personal space, if it exists."
        },
        {
          "key": "limit",
          "value": "<integer>",
          "description": "The maximum number of results returned.\nCurrently API returns 200 results max.\nIf more that 200 ids are passed first 200 will be returned."
        }
      ]
    },
    "description": "Returns user details for the ids provided in request.\n\n**[Permissions](https://confluence.atlassian.com/x/_AozKw) required**:\nPermission to access the Confluence site ('Can use' global permission)."
  },
  "response": [
    {
      "name": "Returned if, the list of users is returned.",
      "originalRequest": {
        "method": "GET",
        "header": [
          {
            "description": {
              "content": "Added as a part of security scheme: oauth2",
              "type": "text/plain"
            },
            "key": "Authorization",
            "value": "<token>"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/api/user/bulk?accountId=<string>&expand=<string>&expand=<string>&limit=<integer>",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "api",
            "user",
            "bulk"
          ],
          "query": [
            {
              "key": "accountId",
              "value": "<string>"
            },
            {
              "key": "expand",
              "value": "<string>"
            },
            {
              "key": "expand",
              "value": "<string>"
            },
            {
              "key": "limit",
              "value": "<integer>"
            }
          ]
        }
      },
      "status": "OK",
      "code": 200,
      "_postman_previewlanguage": "json",
      "header": [
        {
          "key": "Content-Type",
          "value": "application/json"
        }
      ],
      "cookie": [
      ],
      "body": "{\n \"results\": [\n  {\n   \"type\": \"user\",\n   \"accountId\": \"elit est ullamco in officia\",\n   \"accountType\": \"exercitation fugiat labo\",\n   \"email\": \"Excepteur in cillum officia\",\n   \"publicName\": \"ullamco occaecat\",\n   \"profilePicture\": {\n    \"path\": \"cupidatat dolore et labore ad\",\n    \"width\": -99848841,\n    \"height\": 55035562,\n    \"isDefault\": true\n   },\n   \"displayName\": \"amet\",\n   \"_expandable\": {\n    \"operations\": \"labore ut Duis id culpa\",\n    \"details\": \"in irure voluptate Duis magna\",\n    \"personalSpace\": \"n\"\n   },\n   \"_links\": {},\n   \"username\": \"est sunt dolor nostrud\",\n   \"userKey\": \"labo\",\n   \"operations\": [\n    {\n     \"operation\": \"update\",\n     \"targetType\": \"attachment\"\n    },\n    {\n     \"operation\": \"administer\",\n     \"targetType\": \"attachment\"\n    }\n   ],\n   \"details\": {\n    \"business\": {\n     \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n    },\n    \"personal\": {\n     \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n    }\n   },\n   \"personalSpace\": {\n    \"id\": -93610124,\n    \"key\": \"in eiusmod\",\n    \"name\": \"ut minim Excepteur\",\n    \"type\": \"sunt qui amet\",\n    \"status\": \"null\",\n    \"_expandable\": {\n     \"settings\": \"pariatur deserunt anim\",\n     \"metadata\": \"anim occaecat aliqua\",\n     \"operations\": \"aute nostrud in\",\n     \"lookAndFeel\": \"est irure aute labore\",\n     \"permissions\": \"in cupidatat qui\",\n     \"icon\": \"voluptate Duis\",\n     \"description\": \"culpa veniam Lorem velit\",\n     \"theme\": \"consequat sunt reprehenderit\",\n     \"history\": \"ex officia veniam sit do\",\n     \"homepage\": \"dolore dolore\"\n    },\n    \"_links\": {},\n    \"icon\": {\n     \"path\": \"dolore Lorem magna sunt\",\n     \"width\": 3933679,\n     \"height\": -17426468,\n     \"isDefault\": false\n    },\n    \"description\": {\n     \"plain\": {\n      \"value\": \"consequat consectetur laborum labore occaecat\",\n      \"representation\": \"view\",\n      \"embeddedContent\": [\n       {\n        \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n       },\n       {\n        \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n       }\n      ]\n     },\n     \"view\": {\n      \"value\": \"Duis reprehenderit anim ut\",\n      \"representation\": \"view\",\n      \"embeddedContent\": [\n       {\n        \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n       },\n       {\n        \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n       }\n      ]\n     }\n    },\n    \"homepage\": {\n     \"value\": \"<Circular reference to #/components/schemas/Content detected>\"\n    },\n    \"metadata\": {\n     \"labels\": {\n      \"results\": [\n       {\n        \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n       },\n       {\n        \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n       }\n      ],\n      \"start\": 23981894,\n      \"limit\": -68365223,\n      \"size\": -97521792,\n      \"_links\": {}\n     }\n    },\n    \"operations\": [\n     {\n      \"operation\": \"administer\",\n      \"targetType\": \"blogpost\"\n     },\n     {\n      \"operation\": \"delete\",\n      \"targetType\": \"blogpost\"\n     }\n    ],\n    \"permissions\": [\n     {\n      \"subjects\": {\n       \"_expandable\": {\n        \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n       },\n       \"user\": {\n        \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n       },\n       \"group\": {\n        \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n       }\n      },\n      \"operation\": {\n       \"operation\": \"read\",\n       \"targetType\": \"space\"\n      },\n      \"anonymousAccess\": false,\n      \"unlicensedAccess\": false\n     },\n     {\n      \"subjects\": {\n       \"_expandable\": {\n        \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n       },\n       \"user\": {\n        \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n       },\n       \"group\": {\n        \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n       }\n      },\n      \"operation\": {\n       \"operation\": \"restore\",\n       \"targetType\": \"blogpost\"\n      },\n      \"anonymousAccess\": false,\n      \"unlicensedAccess\": false\n     }\n    ],\n    \"settings\": {\n     \"routeOverrideEnabled\": true,\n     \"_links\": {}\n    },\n    \"theme\": {},\n    \"lookAndFeel\": {\n     \"headings\": {\n      \"color\": \"<string>\"\n     },\n     \"links\": {\n      \"color\": \"<string>\"\n     },\n     \"menus\": {\n      \"hoverOrFocus\": {\n       \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n      },\n      \"color\": {\n       \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n      }\n     },\n     \"header\": {\n      \"backgroundColor\": {\n       \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n      },\n      \"button\": {\n       \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n      },\n      \"primaryNavigation\": {\n       \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n      },\n      \"secondaryNavigation\": {\n       \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n      },\n      \"search\": {\n       \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n      }\n     },\n     \"content\": {\n      \"screen\": {\n       \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n      },\n      \"container\": {\n       \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n      },\n      \"header\": {\n       \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n      },\n      \"body\": {\n       \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n      }\n     },\n     \"bordersAndDividers\": {\n      \"color\": \"<string>\"\n     }\n    },\n    \"history\": {\n     \"createdDate\": \"2004-03-14T14:56:20.738Z\"\n    }\n   }\n  },\n  {\n   \"type\": \"user\",\n   \"accountId\": \"aliquip ex aute occaecat minim\",\n   \"accountType\": \"cupidatat dolore\",\n   \"email\": \"tempor non\",\n   \"publicName\": \"Lorem\",\n   \"profilePicture\": {\n    \"path\": \"fugiat ex sit sunt\",\n    \"width\": 86996840,\n    \"height\": -45552232,\n    \"isDefault\": false\n   },\n   \"displayName\": \"eu qui mollit\",\n   \"_expandable\": {\n    \"operations\": \"laborum dolor magna adipisicing\",\n    \"details\": \"culpa quis a\",\n    \"personalSpace\": \"id in\"\n   },\n   \"_links\": {},\n   \"username\": \"proident minim et ipsum\",\n   \"userKey\": \"est conseq\",\n   \"operations\": [\n    {\n     \"operation\": \"copy\",\n     \"targetType\": \"comment\"\n    },\n    {\n     \"operation\": \"purge_version\",\n     \"targetType\": \"application\"\n    }\n   ],\n   \"details\": {\n    \"business\": {\n     \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n    },\n    \"personal\": {\n     \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n    }\n   },\n   \"personalSpace\": {\n    \"id\": -77236660,\n    \"key\": \"mollit\",\n    \"name\": \"mollit reprehenderit\",\n    \"type\": \"ipsum eu\",\n    \"status\": \"id magna esse\",\n    \"_expandable\": {\n     \"settings\": \"Lorem cupidatat fugiat id\",\n     \"metadata\": \"ut non\",\n     \"operations\": \"m\",\n     \"lookAndFeel\": \"elit \",\n     \"permissions\": \"proident labore\",\n     \"icon\": \"ut fugiat esse do\",\n     \"description\": \"sunt\",\n     \"theme\": \"ea consequat aliqua\",\n     \"history\": \"ullamco culpa\",\n     \"homepage\": \"eu esse ut amet\"\n    },\n    \"_links\": {},\n    \"icon\": {\n     \"path\": \"laborum magna Dui\",\n     \"width\": -87940522,\n     \"height\": -74576861,\n     \"isDefault\": true\n    },\n    \"description\": {\n     \"plain\": {\n      \"value\": \"adipisicing proident magna nulla\",\n      \"representation\": \"view\",\n      \"embeddedContent\": [\n       {\n        \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n       },\n       {\n        \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n       }\n      ]\n     },\n     \"view\": {\n      \"value\": \"quis enim ex adipisicing\",\n      \"representation\": \"plain\",\n      \"embeddedContent\": [\n       {\n        \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n       },\n       {\n        \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n       }\n      ]\n     }\n    },\n    \"homepage\": {\n     \"value\": \"<Circular reference to #/components/schemas/Content detected>\"\n    },\n    \"metadata\": {\n     \"labels\": {\n      \"results\": [\n       {\n        \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n       },\n       {\n        \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n       }\n      ],\n      \"start\": 12150462,\n      \"limit\": -13231996,\n      \"size\": -79881326,\n      \"_links\": {}\n     }\n    },\n    \"operations\": [\n     {\n      \"operation\": \"create\",\n      \"targetType\": \"page\"\n     },\n     {\n      \"operation\": \"update\",\n      \"targetType\": \"blogpost\"\n     }\n    ],\n    \"permissions\": [\n     {\n      \"subjects\": {\n       \"_expandable\": {\n        \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n       },\n       \"user\": {\n        \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n       },\n       \"group\": {\n        \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n       }\n      },\n      \"operation\": {\n       \"operation\": \"purge\",\n       \"targetType\": \"attachment\"\n      },\n      \"anonymousAccess\": false,\n      \"unlicensedAccess\": false\n     },\n     {\n      \"subjects\": {\n       \"_expandable\": {\n        \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n       },\n       \"user\": {\n        \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n       },\n       \"group\": {\n        \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n       }\n      },\n      \"operation\": {\n       \"operation\": \"delete\",\n       \"targetType\": \"application\"\n      },\n      \"anonymousAccess\": false,\n      \"unlicensedAccess\": false\n     }\n    ],\n    \"settings\": {\n     \"routeOverrideEnabled\": true,\n     \"_links\": {}\n    },\n    \"theme\": {},\n    \"lookAndFeel\": {\n     \"headings\": {\n      \"color\": \"<string>\"\n     },\n     \"links\": {\n      \"color\": \"<string>\"\n     },\n     \"menus\": {\n      \"hoverOrFocus\": {\n       \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n      },\n      \"color\": {\n       \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n      }\n     },\n     \"header\": {\n      \"backgroundColor\": {\n       \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n      },\n      \"button\": {\n       \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n      },\n      \"primaryNavigation\": {\n       \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n      },\n      \"secondaryNavigation\": {\n       \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n      },\n      \"search\": {\n       \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n      }\n     },\n     \"content\": {\n      \"screen\": {\n       \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n      },\n      \"container\": {\n       \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n      },\n      \"header\": {\n       \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n      },\n      \"body\": {\n       \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n      }\n     },\n     \"bordersAndDividers\": {\n      \"color\": \"<string>\"\n     }\n    },\n    \"history\": {\n     \"createdDate\": \"1965-11-18T11:33:14.736Z\"\n    }\n   }\n  }\n ],\n \"start\": -77819495,\n \"limit\": -88196390,\n \"size\": -80415169,\n \"_links\": {}\n}"
    },
    {
      "name": "Returned if the calling user does not have permission to use\nConfluence.",
      "originalRequest": {
        "method": "GET",
        "header": [
          {
            "description": {
              "content": "Added as a part of security scheme: oauth2",
              "type": "text/plain"
            },
            "key": "Authorization",
            "value": "<token>"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/api/user/bulk?accountId=<string>&expand=<string>&expand=<string>&limit=<integer>",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "api",
            "user",
            "bulk"
          ],
          "query": [
            {
              "key": "accountId",
              "value": "<string>"
            },
            {
              "key": "expand",
              "value": "<string>"
            },
            {
              "key": "expand",
              "value": "<string>"
            },
            {
              "key": "limit",
              "value": "<integer>"
            }
          ]
        }
      },
      "status": "Forbidden",
      "code": 403,
      "_postman_previewlanguage": "text",
      "header": [
        {
          "key": "Content-Type",
          "value": "text/plain"
        }
      ],
      "cookie": [
      ],
      "body": ""
    }
  ]
}