Chilkat Online Tools

Foxpro / Atlassian Confluence Cloud / Get multiple users using ids

Back to Collection Items

LOCAL loHttp
LOCAL lnSuccess
LOCAL loQueryParams
LOCAL loResp
LOCAL loSbResponseBody
LOCAL loJResp
LOCAL lnRespStatusCode
LOCAL lcV_type
LOCAL lcAccountId
LOCAL lcAccountType
LOCAL lcEmail
LOCAL lcPublicName
LOCAL lcPath
LOCAL lnWidth
LOCAL lnHeight
LOCAL lnIsDefault
LOCAL lcDisplayName
LOCAL lcOperations
LOCAL lcDetails
LOCAL lcPersonalSpace
LOCAL lcUsername
LOCAL lcUserKey
LOCAL lcValue
LOCAL lcPersonalValue
LOCAL lnId
LOCAL lcKey
LOCAL lcName
LOCAL lcV_Type
LOCAL lcStatus
LOCAL lcSettings
LOCAL lcMetadata
LOCAL lcV_expandableOperations
LOCAL lcLookAndFeel
LOCAL lcPermissions
LOCAL lcIcon
LOCAL lcDescription
LOCAL lcTheme
LOCAL lcHistory
LOCAL lcHomepage
LOCAL lcIconPath
LOCAL lnIconWidth
LOCAL lnIconHeight
LOCAL lnIconIsDefault
LOCAL lcPlainValue
LOCAL lcRepresentation
LOCAL lcViewValue
LOCAL lcViewRepresentation
LOCAL lcHomepageValue
LOCAL lnStart
LOCAL lnLimit
LOCAL lnSize
LOCAL lnRouteOverrideEnabled
LOCAL lcColor
LOCAL lcLinksColor
LOCAL lcHoverOrFocusValue
LOCAL lcColorValue
LOCAL lcBackgroundColorValue
LOCAL lcButtonValue
LOCAL lcPrimaryNavigationValue
LOCAL lcSecondaryNavigationValue
LOCAL lcSearchValue
LOCAL lcScreenValue
LOCAL lcContainerValue
LOCAL lcHeaderValue
LOCAL lcBodyValue
LOCAL lcBordersAndDividersColor
LOCAL lcCreatedDate
LOCAL j
LOCAL lnCount_j
LOCAL lcOperation
LOCAL lcTargetType
LOCAL lcValue
LOCAL lcV_expandableValue
LOCAL lcUserValue
LOCAL lcGroupValue
LOCAL lcOperation
LOCAL lcTargetType
LOCAL lnAnonymousAccess
LOCAL lnUnlicensedAccess
LOCAL lnStart
LOCAL lnLimit
LOCAL lnSize
LOCAL i
LOCAL lnCount_i

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

* For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.Http')
loHttp = CreateObject('Chilkat.Http')

* For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.JsonObject')
loQueryParams = CreateObject('Chilkat.JsonObject')
loQueryParams.UpdateString("accountId","<string>")
loQueryParams.UpdateString("expand","<string>")
loQueryParams.UpdateString("expand","<string>")
loQueryParams.UpdateString("limit","<integer>")

* Adds the "Authorization: Bearer <access_token>" header.
loHttp.AuthToken = "<access_token>"

loResp = loHttp.QuickRequestParams("GET","https://your-domain.atlassian.net/wiki/rest/api/user/bulk",loQueryParams)
IF (loHttp.LastMethodSuccess = 0) THEN
    ? loHttp.LastErrorText
    RELEASE loHttp
    RELEASE loQueryParams
    CANCEL
ENDIF

* For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.StringBuilder')
loSbResponseBody = CreateObject('Chilkat.StringBuilder')
loResp.GetBodySb(loSbResponseBody)

* For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.JsonObject')
loJResp = CreateObject('Chilkat.JsonObject')
loJResp.LoadSb(loSbResponseBody)
loJResp.EmitCompact = 0

? "Response Body:"
? loJResp.Emit()

lnRespStatusCode = loResp.StatusCode
? "Response Status Code = " + STR(lnRespStatusCode)
IF (lnRespStatusCode >= 400) THEN
    ? "Response Header:"
    ? loResp.Header
    ? "Failed."
    RELEASE loResp
    RELEASE loHttp
    RELEASE loQueryParams
    RELEASE loSbResponseBody
    RELEASE loJResp
    CANCEL
ENDIF

RELEASE loResp

* 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

lnStart = loJResp.IntOf("start")
lnLimit = loJResp.IntOf("limit")
lnSize = loJResp.IntOf("size")
i = 0
lnCount_i = loJResp.SizeOfArray("results")
DO WHILE i < lnCount_i
    loJResp.I = i
    lcV_type = loJResp.StringOf("results[i].type")
    lcAccountId = loJResp.StringOf("results[i].accountId")
    lcAccountType = loJResp.StringOf("results[i].accountType")
    lcEmail = loJResp.StringOf("results[i].email")
    lcPublicName = loJResp.StringOf("results[i].publicName")
    lcPath = loJResp.StringOf("results[i].profilePicture.path")
    lnWidth = loJResp.IntOf("results[i].profilePicture.width")
    lnHeight = loJResp.IntOf("results[i].profilePicture.height")
    lnIsDefault = loJResp.BoolOf("results[i].profilePicture.isDefault")
    lcDisplayName = loJResp.StringOf("results[i].displayName")
    lcOperations = loJResp.StringOf("results[i]._expandable.operations")
    lcDetails = loJResp.StringOf("results[i]._expandable.details")
    lcPersonalSpace = loJResp.StringOf("results[i]._expandable.personalSpace")
    lcUsername = loJResp.StringOf("results[i].username")
    lcUserKey = loJResp.StringOf("results[i].userKey")
    lcValue = loJResp.StringOf("results[i].details.business.value")
    lcPersonalValue = loJResp.StringOf("results[i].details.personal.value")
    lnId = loJResp.IntOf("results[i].personalSpace.id")
    lcKey = loJResp.StringOf("results[i].personalSpace.key")
    lcName = loJResp.StringOf("results[i].personalSpace.name")
    lcV_Type = loJResp.StringOf("results[i].personalSpace.type")
    lcStatus = loJResp.StringOf("results[i].personalSpace.status")
    lcSettings = loJResp.StringOf("results[i].personalSpace._expandable.settings")
    lcMetadata = loJResp.StringOf("results[i].personalSpace._expandable.metadata")
    lcV_expandableOperations = loJResp.StringOf("results[i].personalSpace._expandable.operations")
    lcLookAndFeel = loJResp.StringOf("results[i].personalSpace._expandable.lookAndFeel")
    lcPermissions = loJResp.StringOf("results[i].personalSpace._expandable.permissions")
    lcIcon = loJResp.StringOf("results[i].personalSpace._expandable.icon")
    lcDescription = loJResp.StringOf("results[i].personalSpace._expandable.description")
    lcTheme = loJResp.StringOf("results[i].personalSpace._expandable.theme")
    lcHistory = loJResp.StringOf("results[i].personalSpace._expandable.history")
    lcHomepage = loJResp.StringOf("results[i].personalSpace._expandable.homepage")
    lcIconPath = loJResp.StringOf("results[i].personalSpace.icon.path")
    lnIconWidth = loJResp.IntOf("results[i].personalSpace.icon.width")
    lnIconHeight = loJResp.IntOf("results[i].personalSpace.icon.height")
    lnIconIsDefault = loJResp.BoolOf("results[i].personalSpace.icon.isDefault")
    lcPlainValue = loJResp.StringOf("results[i].personalSpace.description.plain.value")
    lcRepresentation = loJResp.StringOf("results[i].personalSpace.description.plain.representation")
    lcViewValue = loJResp.StringOf("results[i].personalSpace.description.view.value")
    lcViewRepresentation = loJResp.StringOf("results[i].personalSpace.description.view.representation")
    lcHomepageValue = loJResp.StringOf("results[i].personalSpace.homepage.value")
    lnStart = loJResp.IntOf("results[i].personalSpace.metadata.labels.start")
    lnLimit = loJResp.IntOf("results[i].personalSpace.metadata.labels.limit")
    lnSize = loJResp.IntOf("results[i].personalSpace.metadata.labels.size")
    lnRouteOverrideEnabled = loJResp.BoolOf("results[i].personalSpace.settings.routeOverrideEnabled")
    lcColor = loJResp.StringOf("results[i].personalSpace.lookAndFeel.headings.color")
    lcLinksColor = loJResp.StringOf("results[i].personalSpace.lookAndFeel.links.color")
    lcHoverOrFocusValue = loJResp.StringOf("results[i].personalSpace.lookAndFeel.menus.hoverOrFocus.value")
    lcColorValue = loJResp.StringOf("results[i].personalSpace.lookAndFeel.menus.color.value")
    lcBackgroundColorValue = loJResp.StringOf("results[i].personalSpace.lookAndFeel.header.backgroundColor.value")
    lcButtonValue = loJResp.StringOf("results[i].personalSpace.lookAndFeel.header.button.value")
    lcPrimaryNavigationValue = loJResp.StringOf("results[i].personalSpace.lookAndFeel.header.primaryNavigation.value")
    lcSecondaryNavigationValue = loJResp.StringOf("results[i].personalSpace.lookAndFeel.header.secondaryNavigation.value")
    lcSearchValue = loJResp.StringOf("results[i].personalSpace.lookAndFeel.header.search.value")
    lcScreenValue = loJResp.StringOf("results[i].personalSpace.lookAndFeel.content.screen.value")
    lcContainerValue = loJResp.StringOf("results[i].personalSpace.lookAndFeel.content.container.value")
    lcHeaderValue = loJResp.StringOf("results[i].personalSpace.lookAndFeel.content.header.value")
    lcBodyValue = loJResp.StringOf("results[i].personalSpace.lookAndFeel.content.body.value")
    lcBordersAndDividersColor = loJResp.StringOf("results[i].personalSpace.lookAndFeel.bordersAndDividers.color")
    lcCreatedDate = loJResp.StringOf("results[i].personalSpace.history.createdDate")
    j = 0
    lnCount_j = loJResp.SizeOfArray("results[i].operations")
    DO WHILE j < lnCount_j
        loJResp.J = j
        lcOperation = loJResp.StringOf("results[i].operations[j].operation")
        lcTargetType = loJResp.StringOf("results[i].operations[j].targetType")
        j = j + 1
    ENDDO
    j = 0
    lnCount_j = loJResp.SizeOfArray("results[i].personalSpace.description.plain.embeddedContent")
    DO WHILE j < lnCount_j
        loJResp.J = j
        lcValue = loJResp.StringOf("results[i].personalSpace.description.plain.embeddedContent[j].value")
        j = j + 1
    ENDDO
    j = 0
    lnCount_j = loJResp.SizeOfArray("results[i].personalSpace.description.view.embeddedContent")
    DO WHILE j < lnCount_j
        loJResp.J = j
        lcValue = loJResp.StringOf("results[i].personalSpace.description.view.embeddedContent[j].value")
        j = j + 1
    ENDDO
    j = 0
    lnCount_j = loJResp.SizeOfArray("results[i].personalSpace.metadata.labels.results")
    DO WHILE j < lnCount_j
        loJResp.J = j
        lcValue = loJResp.StringOf("results[i].personalSpace.metadata.labels.results[j].value")
        j = j + 1
    ENDDO
    j = 0
    lnCount_j = loJResp.SizeOfArray("results[i].personalSpace.operations")
    DO WHILE j < lnCount_j
        loJResp.J = j
        lcOperation = loJResp.StringOf("results[i].personalSpace.operations[j].operation")
        lcTargetType = loJResp.StringOf("results[i].personalSpace.operations[j].targetType")
        j = j + 1
    ENDDO
    j = 0
    lnCount_j = loJResp.SizeOfArray("results[i].personalSpace.permissions")
    DO WHILE j < lnCount_j
        loJResp.J = j
        lcV_expandableValue = loJResp.StringOf("results[i].personalSpace.permissions[j].subjects._expandable.value")
        lcUserValue = loJResp.StringOf("results[i].personalSpace.permissions[j].subjects.user.value")
        lcGroupValue = loJResp.StringOf("results[i].personalSpace.permissions[j].subjects.group.value")
        lcOperation = loJResp.StringOf("results[i].personalSpace.permissions[j].operation.operation")
        lcTargetType = loJResp.StringOf("results[i].personalSpace.permissions[j].operation.targetType")
        lnAnonymousAccess = loJResp.BoolOf("results[i].personalSpace.permissions[j].anonymousAccess")
        lnUnlicensedAccess = loJResp.BoolOf("results[i].personalSpace.permissions[j].unlicensedAccess")
        j = j + 1
    ENDDO
    i = i + 1
ENDDO

RELEASE loHttp
RELEASE loQueryParams
RELEASE loSbResponseBody
RELEASE loJResp

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": ""
    }
  ]
}