Chilkat Online Tools

PureBasic / Atlassian Confluence Cloud / Get multiple users using ids

Back to Collection Items

IncludeFile "CkJsonObject.pb"
IncludeFile "CkStringBuilder.pb"
IncludeFile "CkHttp.pb"
IncludeFile "CkHttpResponse.pb"

Procedure ChilkatExample()

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

    http.i = CkHttp::ckCreate()
    If http.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    success.i

    queryParams.i = CkJsonObject::ckCreate()
    If queryParams.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    CkJsonObject::ckUpdateString(queryParams,"accountId","<string>")
    CkJsonObject::ckUpdateString(queryParams,"expand","<string>")
    CkJsonObject::ckUpdateString(queryParams,"expand","<string>")
    CkJsonObject::ckUpdateString(queryParams,"limit","<integer>")

    ; Adds the "Authorization: Bearer <access_token>" header.
    CkHttp::setCkAuthToken(http, "<access_token>")

    resp.i = CkHttp::ckQuickRequestParams(http,"GET","https://your-domain.atlassian.net/wiki/rest/api/user/bulk",queryParams)
    If CkHttp::ckLastMethodSuccess(http) = 0
        Debug CkHttp::ckLastErrorText(http)
        CkHttp::ckDispose(http)
        CkJsonObject::ckDispose(queryParams)
        ProcedureReturn
    EndIf

    sbResponseBody.i = CkStringBuilder::ckCreate()
    If sbResponseBody.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    CkHttpResponse::ckGetBodySb(resp,sbResponseBody)

    jResp.i = CkJsonObject::ckCreate()
    If jResp.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    CkJsonObject::ckLoadSb(jResp,sbResponseBody)
    CkJsonObject::setCkEmitCompact(jResp, 0)

    Debug "Response Body:"
    Debug CkJsonObject::ckEmit(jResp)

    respStatusCode.i = CkHttpResponse::ckStatusCode(resp)
    Debug "Response Status Code = " + Str(respStatusCode)
    If respStatusCode >= 400
        Debug "Response Header:"
        Debug CkHttpResponse::ckHeader(resp)
        Debug "Failed."
        CkHttpResponse::ckDispose(resp)

        CkHttp::ckDispose(http)
        CkJsonObject::ckDispose(queryParams)
        CkStringBuilder::ckDispose(sbResponseBody)
        CkJsonObject::ckDispose(jResp)
        ProcedureReturn
    EndIf

    CkHttpResponse::ckDispose(resp)

    ; 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

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

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


    CkHttp::ckDispose(http)
    CkJsonObject::ckDispose(queryParams)
    CkStringBuilder::ckDispose(sbResponseBody)
    CkJsonObject::ckDispose(jResp)


    ProcedureReturn
EndProcedure

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