Chilkat Online Tools

Objective-C / Atlassian Confluence Cloud / Get content versions

Back to Collection Items

#import <CkoHttp.h>
#import <CkoJsonObject.h>
#import <CkoHttpResponse.h>
#import <CkoStringBuilder.h>
#import <NSString.h>

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

CkoHttp *http = [[CkoHttp alloc] init];
BOOL success;

CkoJsonObject *queryParams = [[CkoJsonObject alloc] init];
[queryParams UpdateInt: @"start" value: [NSNumber numberWithInt: 0]];
[queryParams UpdateInt: @"limit" value: [NSNumber numberWithInt: 200]];
[queryParams UpdateString: @"expand" value: @"<string>"];
[queryParams UpdateString: @"expand" value: @"<string>"];

// Adds the "Authorization: Bearer <access_token>" header.
http.AuthToken = @"<access_token>";

CkoHttpResponse *resp = [http QuickRequestParams: @"GET" url: @"https://your-domain.atlassian.net/wiki/rest/api/content/:id/version" json: queryParams];
if (http.LastMethodSuccess == NO) {
    NSLog(@"%@",http.LastErrorText);
    return;
}

CkoStringBuilder *sbResponseBody = [[CkoStringBuilder alloc] init];
[resp GetBodySb: sbResponseBody];

CkoJsonObject *jResp = [[CkoJsonObject alloc] init];
[jResp LoadSb: sbResponseBody];
jResp.EmitCompact = NO;

NSLog(@"%@",@"Response Body:");
NSLog(@"%@",[jResp Emit]);

int respStatusCode = [resp.StatusCode intValue];
NSLog(@"%@%d",@"Response Status Code = ",respStatusCode);
if (respStatusCode >= 400) {
    NSLog(@"%@",@"Response Header:");
    NSLog(@"%@",resp.Header);
    NSLog(@"%@",@"Failed.");

    return;
}

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

// {
//   "results": [
//     {
//       "by": {
//         "type": "known",
//         "accountId": "nostrud",
//         "accountType": "atlassian",
//         "email": "anim elit esse ut",
//         "publicName": "ullamco",
//         "profilePicture": {
//           "path": "p",
//           "width": -77872476,
//           "height": 61065658,
//           "isDefault": false
//         },
//         "displayName": "eu",
//         "_expandable": {
//           "operations": "Excepteur",
//           "details": "consequat irure nostrud Lorem",
//           "personalSpace": "aute ullamco mollit"
//         },
//         "_links": {},
//         "username": "nulla laborum",
//         "userKey": "elit",
//         "operations": [
//           {
//             "operation": "restore",
//             "targetType": "blogpost"
//           },
//           {
//             "operation": "copy",
//             "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": -97629470,
//           "key": "labore exercitation nulla ex",
//           "name": "Duis consectetur anim",
//           "type": "laborum reprehenderit laboris Ut",
//           "status": "laboris sit mollit nulla",
//           "_expandable": {
//             "settings": "nisi sit",
//             "metadata": "qui do",
//             "operations": "v",
//             "lookAndFeel": "esse irure aliquip amet dolor",
//             "permissions": "cillum mollit",
//             "icon": "proident aliquip",
//             "description": "voluptate enim",
//             "theme": "voluptate",
//             "history": "ea tempor",
//             "homepage": "esse sed Lorem"
//           },
//           "_links": {},
//           "icon": {
//             "path": "nostrud enim mollit voluptate dolor",
//             "width": 30074773,
//             "height": 56410680,
//             "isDefault": true
//           },
//           "description": {
//             "plain": {
//               "value": "nostrud in tempor",
//               "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": "exercitation 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": 2894494,
//               "limit": 84285993,
//               "size": -38756606,
//               "_links": {}
//             }
//           },
//           "operations": [
//             {
//               "operation": "delete",
//               "targetType": "comment"
//             },
//             {
//               "operation": "purge_version",
//               "targetType": "space"
//             }
//           ],
//           "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": "update",
//                 "targetType": "blogpost"
//               },
//               "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": "create",
//                 "targetType": "application"
//               },
//               "anonymousAccess": false,
//               "unlicensedAccess": false
//             }
//           ],
//           "settings": {
//             "routeOverrideEnabled": false,
//             "_links": {}
//           },
//           "theme": {},
//           "lookAndFeel": {
//             "headings": {
//               "color": "cillum reprehenderit eu sunt"
//             },
//             "links": {
//               "color": "culpa qui"
//             },
//             "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": "sed"
//             }
//           },
//           "history": {
//             "createdDate": "1952-06-10T14:31:50.998Z"
//           }
//         }
//       },
//       "when": "1953-06-13T02:44:53.322Z",
//       "friendlyWhen": "magna culpa consectetur et",
//       "message": "esse quis id",
//       "number": 323605,
//       "minorEdit": true,
//       "_expandable": {
//         "content": "esse ",
//         "collaborators": "non Excepteur"
//       },
//       "_links": {},
//       "content": {
//         "value": "<Circular reference to #/components/schemas/Content detected>"
//       },
//       "collaborators": {
//         "users": {
//           "value": "<Error: Too many levels of nesting to fake this schema>"
//         },
//         "userKeys": {
//           "value": "<Error: Too many levels of nesting to fake this schema>"
//         },
//         "_links": {
//           "value": "<Error: Too many levels of nesting to fake this schema>"
//         }
//       }
//     },
//     {
//       "by": {
//         "type": "unknown",
//         "accountId": "Duis fugiat cupidatat",
//         "accountType": "atlassian",
//         "email": "ea in quis anim",
//         "publicName": "ullamco Lorem in",
//         "profilePicture": {
//           "path": "est sit",
//           "width": -36330137,
//           "height": -12646253,
//           "isDefault": true
//         },
//         "displayName": "deserunt a",
//         "_expandable": {
//           "operations": "velit in quis ipsum",
//           "details": "magna ea",
//           "personalSpace": "Excepteur eu est"
//         },
//         "_links": {},
//         "username": "eiusmod in cupidatat",
//         "userKey": "esse",
//         "operations": [
//           {
//             "operation": "create",
//             "targetType": "blogpost"
//           },
//           {
//             "operation": "create",
//             "targetType": "blogpost"
//           }
//         ],
//         "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": 47490726,
//           "key": "velit ",
//           "name": "nulla aliqua",
//           "type": "ea laboris",
//           "status": "cillum adipisicing ullamco laboris",
//           "_expandable": {
//             "settings": "proident ex",
//             "metadata": "quis irure dol",
//             "operations": "nostrud eiusmod nisi",
//             "lookAndFeel": "exercitation sunt labore non",
//             "permissions": "eiusmod in ad fugiat",
//             "icon": "nisi nostrud",
//             "description": "adipisicing in voluptate",
//             "theme": "ad dolore Duis sunt",
//             "history": "u",
//             "homepage": "nul"
//           },
//           "_links": {},
//           "icon": {
//             "path": "cillum sit eu",
//             "width": -34925021,
//             "height": 90425798,
//             "isDefault": false
//           },
//           "description": {
//             "plain": {
//               "value": "quis sunt",
//               "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>"
//                 }
//               ]
//             },
//             "view": {
//               "value": "sit id",
//               "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": 83779927,
//               "limit": -87535719,
//               "size": -65924145,
//               "_links": {}
//             }
//           },
//           "operations": [
//             {
//               "operation": "purge_version",
//               "targetType": "attachment"
//             },
//             {
//               "operation": "move",
//               "targetType": "application"
//             }
//           ],
//           "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": "export",
//                 "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": "use",
//                 "targetType": "page"
//               },
//               "anonymousAccess": false,
//               "unlicensedAccess": false
//             }
//           ],
//           "settings": {
//             "routeOverrideEnabled": false,
//             "_links": {}
//           },
//           "theme": {},
//           "lookAndFeel": {
//             "headings": {
//               "color": "veniam"
//             },
//             "links": {
//               "color": "nisi"
//             },
//             "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": "tempor laboris proident esse do"
//             }
//           },
//           "history": {
//             "createdDate": "2007-04-13T10:59:32.679Z"
//           }
//         }
//       },
//       "when": "1989-05-19T00:33:37.730Z",
//       "friendlyWhen": "irure ut",
//       "message": "adipisicing id ad sunt sint",
//       "number": 74656274,
//       "minorEdit": false,
//       "_expandable": {
//         "content": "des",
//         "collaborators": "eu"
//       },
//       "_links": {},
//       "content": {
//         "value": "<Circular reference to #/components/schemas/Content detected>"
//       },
//       "collaborators": {
//         "users": {
//           "value": "<Error: Too many levels of nesting to fake this schema>"
//         },
//         "userKeys": {
//           "value": "<Error: Too many levels of nesting to fake this schema>"
//         },
//         "_links": {
//           "value": "<Error: Too many levels of nesting to fake this schema>"
//         }
//       }
//     }
//   ],
//   "start": 56422235,
//   "limit": -9071484,
//   "size": 19664442,
//   "_links": {}
// }

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

NSString *v_Type = 0;
NSString *AccountId = 0;
NSString *AccountType = 0;
NSString *v_Email = 0;
NSString *PublicName = 0;
NSString *Path = 0;
int Width;
int Height;
BOOL IsDefault;
NSString *DisplayName = 0;
NSString *Operations = 0;
NSString *Details = 0;
NSString *PersonalSpace = 0;
NSString *Username = 0;
NSString *UserKey = 0;
NSString *Value = 0;
NSString *PersonalValue = 0;
int Id;
NSString *Key = 0;
NSString *Name = 0;
NSString *PersonalSpaceType = 0;
NSString *Status = 0;
NSString *Settings = 0;
NSString *Metadata = 0;
NSString *v_expandableOperations = 0;
NSString *LookAndFeel = 0;
NSString *Permissions = 0;
NSString *Icon = 0;
NSString *Description = 0;
NSString *Theme = 0;
NSString *History = 0;
NSString *Homepage = 0;
NSString *IconPath = 0;
int IconWidth;
int IconHeight;
BOOL IconIsDefault;
NSString *PlainValue = 0;
NSString *Representation = 0;
NSString *ViewValue = 0;
NSString *ViewRepresentation = 0;
NSString *HomepageValue = 0;
int Start;
int Limit;
int Size;
BOOL RouteOverrideEnabled;
NSString *Color = 0;
NSString *LinksColor = 0;
NSString *HoverOrFocusValue = 0;
NSString *ColorValue = 0;
NSString *BackgroundColorValue = 0;
NSString *ButtonValue = 0;
NSString *PrimaryNavigationValue = 0;
NSString *SecondaryNavigationValue = 0;
NSString *SearchValue = 0;
NSString *ScreenValue = 0;
NSString *ContainerValue = 0;
NSString *HeaderValue = 0;
NSString *BodyValue = 0;
NSString *BordersAndDividersColor = 0;
NSString *CreatedDate = 0;
NSString *when = 0;
NSString *friendlyWhen = 0;
NSString *message = 0;
int v_number;
BOOL minorEdit;
NSString *Content = 0;
NSString *Collaborators = 0;
NSString *contentValue = 0;
NSString *UsersValue = 0;
NSString *UserKeysValue = 0;
NSString *v_linksValue = 0;
int j;
int count_j;
NSString *operation = 0;
NSString *targetType = 0;
NSString *value = 0;
NSString *v_expandableValue = 0;
NSString *UserValue = 0;
NSString *GroupValue = 0;
NSString *Operation = 0;
NSString *TargetType = 0;
BOOL anonymousAccess;
BOOL unlicensedAccess;

int start = [[jResp IntOf: @"start"] intValue];
int limit = [[jResp IntOf: @"limit"] intValue];
int size = [[jResp IntOf: @"size"] intValue];
int i = 0;
int count_i = [[jResp SizeOfArray: @"results"] intValue];
while (i < count_i) {
    jResp.I = [NSNumber numberWithInt: i];
    v_Type = [jResp StringOf: @"results[i].by.type"];
    AccountId = [jResp StringOf: @"results[i].by.accountId"];
    AccountType = [jResp StringOf: @"results[i].by.accountType"];
    v_Email = [jResp StringOf: @"results[i].by.email"];
    PublicName = [jResp StringOf: @"results[i].by.publicName"];
    Path = [jResp StringOf: @"results[i].by.profilePicture.path"];
    Width = [[jResp IntOf: @"results[i].by.profilePicture.width"] intValue];
    Height = [[jResp IntOf: @"results[i].by.profilePicture.height"] intValue];
    IsDefault = [jResp BoolOf: @"results[i].by.profilePicture.isDefault"];
    DisplayName = [jResp StringOf: @"results[i].by.displayName"];
    Operations = [jResp StringOf: @"results[i].by._expandable.operations"];
    Details = [jResp StringOf: @"results[i].by._expandable.details"];
    PersonalSpace = [jResp StringOf: @"results[i].by._expandable.personalSpace"];
    Username = [jResp StringOf: @"results[i].by.username"];
    UserKey = [jResp StringOf: @"results[i].by.userKey"];
    Value = [jResp StringOf: @"results[i].by.details.business.value"];
    PersonalValue = [jResp StringOf: @"results[i].by.details.personal.value"];
    Id = [[jResp IntOf: @"results[i].by.personalSpace.id"] intValue];
    Key = [jResp StringOf: @"results[i].by.personalSpace.key"];
    Name = [jResp StringOf: @"results[i].by.personalSpace.name"];
    PersonalSpaceType = [jResp StringOf: @"results[i].by.personalSpace.type"];
    Status = [jResp StringOf: @"results[i].by.personalSpace.status"];
    Settings = [jResp StringOf: @"results[i].by.personalSpace._expandable.settings"];
    Metadata = [jResp StringOf: @"results[i].by.personalSpace._expandable.metadata"];
    v_expandableOperations = [jResp StringOf: @"results[i].by.personalSpace._expandable.operations"];
    LookAndFeel = [jResp StringOf: @"results[i].by.personalSpace._expandable.lookAndFeel"];
    Permissions = [jResp StringOf: @"results[i].by.personalSpace._expandable.permissions"];
    Icon = [jResp StringOf: @"results[i].by.personalSpace._expandable.icon"];
    Description = [jResp StringOf: @"results[i].by.personalSpace._expandable.description"];
    Theme = [jResp StringOf: @"results[i].by.personalSpace._expandable.theme"];
    History = [jResp StringOf: @"results[i].by.personalSpace._expandable.history"];
    Homepage = [jResp StringOf: @"results[i].by.personalSpace._expandable.homepage"];
    IconPath = [jResp StringOf: @"results[i].by.personalSpace.icon.path"];
    IconWidth = [[jResp IntOf: @"results[i].by.personalSpace.icon.width"] intValue];
    IconHeight = [[jResp IntOf: @"results[i].by.personalSpace.icon.height"] intValue];
    IconIsDefault = [jResp BoolOf: @"results[i].by.personalSpace.icon.isDefault"];
    PlainValue = [jResp StringOf: @"results[i].by.personalSpace.description.plain.value"];
    Representation = [jResp StringOf: @"results[i].by.personalSpace.description.plain.representation"];
    ViewValue = [jResp StringOf: @"results[i].by.personalSpace.description.view.value"];
    ViewRepresentation = [jResp StringOf: @"results[i].by.personalSpace.description.view.representation"];
    HomepageValue = [jResp StringOf: @"results[i].by.personalSpace.homepage.value"];
    Start = [[jResp IntOf: @"results[i].by.personalSpace.metadata.labels.start"] intValue];
    Limit = [[jResp IntOf: @"results[i].by.personalSpace.metadata.labels.limit"] intValue];
    Size = [[jResp IntOf: @"results[i].by.personalSpace.metadata.labels.size"] intValue];
    RouteOverrideEnabled = [jResp BoolOf: @"results[i].by.personalSpace.settings.routeOverrideEnabled"];
    Color = [jResp StringOf: @"results[i].by.personalSpace.lookAndFeel.headings.color"];
    LinksColor = [jResp StringOf: @"results[i].by.personalSpace.lookAndFeel.links.color"];
    HoverOrFocusValue = [jResp StringOf: @"results[i].by.personalSpace.lookAndFeel.menus.hoverOrFocus.value"];
    ColorValue = [jResp StringOf: @"results[i].by.personalSpace.lookAndFeel.menus.color.value"];
    BackgroundColorValue = [jResp StringOf: @"results[i].by.personalSpace.lookAndFeel.header.backgroundColor.value"];
    ButtonValue = [jResp StringOf: @"results[i].by.personalSpace.lookAndFeel.header.button.value"];
    PrimaryNavigationValue = [jResp StringOf: @"results[i].by.personalSpace.lookAndFeel.header.primaryNavigation.value"];
    SecondaryNavigationValue = [jResp StringOf: @"results[i].by.personalSpace.lookAndFeel.header.secondaryNavigation.value"];
    SearchValue = [jResp StringOf: @"results[i].by.personalSpace.lookAndFeel.header.search.value"];
    ScreenValue = [jResp StringOf: @"results[i].by.personalSpace.lookAndFeel.content.screen.value"];
    ContainerValue = [jResp StringOf: @"results[i].by.personalSpace.lookAndFeel.content.container.value"];
    HeaderValue = [jResp StringOf: @"results[i].by.personalSpace.lookAndFeel.content.header.value"];
    BodyValue = [jResp StringOf: @"results[i].by.personalSpace.lookAndFeel.content.body.value"];
    BordersAndDividersColor = [jResp StringOf: @"results[i].by.personalSpace.lookAndFeel.bordersAndDividers.color"];
    CreatedDate = [jResp StringOf: @"results[i].by.personalSpace.history.createdDate"];
    when = [jResp StringOf: @"results[i].when"];
    friendlyWhen = [jResp StringOf: @"results[i].friendlyWhen"];
    message = [jResp StringOf: @"results[i].message"];
    v_number = [[jResp IntOf: @"results[i].number"] intValue];
    minorEdit = [jResp BoolOf: @"results[i].minorEdit"];
    Content = [jResp StringOf: @"results[i]._expandable.content"];
    Collaborators = [jResp StringOf: @"results[i]._expandable.collaborators"];
    contentValue = [jResp StringOf: @"results[i].content.value"];
    UsersValue = [jResp StringOf: @"results[i].collaborators.users.value"];
    UserKeysValue = [jResp StringOf: @"results[i].collaborators.userKeys.value"];
    v_linksValue = [jResp StringOf: @"results[i].collaborators._links.value"];
    j = 0;
    count_j = [[jResp SizeOfArray: @"results[i].by.operations"] intValue];
    while (j < count_j) {
        jResp.J = [NSNumber numberWithInt: j];
        operation = [jResp StringOf: @"results[i].by.operations[j].operation"];
        targetType = [jResp StringOf: @"results[i].by.operations[j].targetType"];
        j = j + 1;
    }

    j = 0;
    count_j = [[jResp SizeOfArray: @"results[i].by.personalSpace.description.plain.embeddedContent"] intValue];
    while (j < count_j) {
        jResp.J = [NSNumber numberWithInt: j];
        value = [jResp StringOf: @"results[i].by.personalSpace.description.plain.embeddedContent[j].value"];
        j = j + 1;
    }

    j = 0;
    count_j = [[jResp SizeOfArray: @"results[i].by.personalSpace.description.view.embeddedContent"] intValue];
    while (j < count_j) {
        jResp.J = [NSNumber numberWithInt: j];
        value = [jResp StringOf: @"results[i].by.personalSpace.description.view.embeddedContent[j].value"];
        j = j + 1;
    }

    j = 0;
    count_j = [[jResp SizeOfArray: @"results[i].by.personalSpace.metadata.labels.results"] intValue];
    while (j < count_j) {
        jResp.J = [NSNumber numberWithInt: j];
        value = [jResp StringOf: @"results[i].by.personalSpace.metadata.labels.results[j].value"];
        j = j + 1;
    }

    j = 0;
    count_j = [[jResp SizeOfArray: @"results[i].by.personalSpace.operations"] intValue];
    while (j < count_j) {
        jResp.J = [NSNumber numberWithInt: j];
        operation = [jResp StringOf: @"results[i].by.personalSpace.operations[j].operation"];
        targetType = [jResp StringOf: @"results[i].by.personalSpace.operations[j].targetType"];
        j = j + 1;
    }

    j = 0;
    count_j = [[jResp SizeOfArray: @"results[i].by.personalSpace.permissions"] intValue];
    while (j < count_j) {
        jResp.J = [NSNumber numberWithInt: j];
        v_expandableValue = [jResp StringOf: @"results[i].by.personalSpace.permissions[j].subjects._expandable.value"];
        UserValue = [jResp StringOf: @"results[i].by.personalSpace.permissions[j].subjects.user.value"];
        GroupValue = [jResp StringOf: @"results[i].by.personalSpace.permissions[j].subjects.group.value"];
        Operation = [jResp StringOf: @"results[i].by.personalSpace.permissions[j].operation.operation"];
        TargetType = [jResp StringOf: @"results[i].by.personalSpace.permissions[j].operation.targetType"];
        anonymousAccess = [jResp BoolOf: @"results[i].by.personalSpace.permissions[j].anonymousAccess"];
        unlicensedAccess = [jResp BoolOf: @"results[i].by.personalSpace.permissions[j].unlicensedAccess"];
        j = j + 1;
    }

    i = i + 1;
}

Curl Command

curl -G -d "start=0"
	-d "limit=200"
	-d "expand=%3Cstring%3E"
	-d "expand=%3Cstring%3E"
	-H "Authorization: Bearer <access_token>"
https://your-domain.atlassian.net/wiki/rest/api/content/:id/version

Postman Collection Item JSON

{
  "name": "Get content versions",
  "request": {
    "auth": {
      "type": "oauth2"
    },
    "method": "GET",
    "header": [
    ],
    "url": {
      "raw": "{{baseUrl}}/api/content/:id/version?start=0&limit=200&expand=<string>&expand=<string>",
      "host": [
        "{{baseUrl}}"
      ],
      "path": [
        "api",
        "content",
        ":id",
        "version"
      ],
      "query": [
        {
          "key": "start",
          "value": "0",
          "description": "The starting index of the returned versions."
        },
        {
          "key": "limit",
          "value": "200",
          "description": "The maximum number of versions to return per page.\nNote, this may be restricted by fixed system limits."
        },
        {
          "key": "expand",
          "value": "<string>",
          "description": "A multi-value parameter indicating which properties of the content to expand.\n\n- `collaborators` returns the users that collaborated on the version.\n- `content` returns the content for the version."
        },
        {
          "key": "expand",
          "value": "<string>",
          "description": "A multi-value parameter indicating which properties of the content to expand.\n\n- `collaborators` returns the users that collaborated on the version.\n- `content` returns the content for the version."
        }
      ],
      "variable": [
        {
          "key": "id",
          "value": "<string>",
          "type": "string",
          "description": "(Required) The ID of the content to be queried for its versions."
        }
      ]
    },
    "description": "Returns the versions for a piece of content in descending order.\n\n**[Permissions](https://confluence.atlassian.com/x/_AozKw) required**:\nPermission to view the content. If the content is a blog post, 'View' permission\nfor the space is required."
  },
  "response": [
    {
      "name": "Returned if the requested versions are 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/content/:id/version?start=0&limit=200&expand=<string>&expand=<string>",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "api",
            "content",
            ":id",
            "version"
          ],
          "query": [
            {
              "key": "start",
              "value": "0"
            },
            {
              "key": "limit",
              "value": "200"
            },
            {
              "key": "expand",
              "value": "<string>"
            },
            {
              "key": "expand",
              "value": "<string>"
            }
          ],
          "variable": [
            {
              "key": "id"
            }
          ]
        }
      },
      "status": "OK",
      "code": 200,
      "_postman_previewlanguage": "json",
      "header": [
        {
          "key": "Content-Type",
          "value": "application/json"
        }
      ],
      "cookie": [
      ],
      "body": "{\n \"results\": [\n  {\n   \"by\": {\n    \"type\": \"known\",\n    \"accountId\": \"nostrud\",\n    \"accountType\": \"atlassian\",\n    \"email\": \"anim elit esse ut\",\n    \"publicName\": \"ullamco\",\n    \"profilePicture\": {\n     \"path\": \"p\",\n     \"width\": -77872476,\n     \"height\": 61065658,\n     \"isDefault\": false\n    },\n    \"displayName\": \"eu\",\n    \"_expandable\": {\n     \"operations\": \"Excepteur\",\n     \"details\": \"consequat irure nostrud Lorem\",\n     \"personalSpace\": \"aute ullamco mollit\"\n    },\n    \"_links\": {},\n    \"username\": \"nulla laborum\",\n    \"userKey\": \"elit\",\n    \"operations\": [\n     {\n      \"operation\": \"restore\",\n      \"targetType\": \"blogpost\"\n     },\n     {\n      \"operation\": \"copy\",\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\": -97629470,\n     \"key\": \"labore exercitation nulla ex\",\n     \"name\": \"Duis consectetur anim\",\n     \"type\": \"laborum reprehenderit laboris Ut\",\n     \"status\": \"laboris sit mollit nulla\",\n     \"_expandable\": {\n      \"settings\": \"nisi sit\",\n      \"metadata\": \"qui do\",\n      \"operations\": \"v\",\n      \"lookAndFeel\": \"esse irure aliquip amet dolor\",\n      \"permissions\": \"cillum mollit\",\n      \"icon\": \"proident aliquip\",\n      \"description\": \"voluptate enim\",\n      \"theme\": \"voluptate\",\n      \"history\": \"ea tempor\",\n      \"homepage\": \"esse sed Lorem\"\n     },\n     \"_links\": {},\n     \"icon\": {\n      \"path\": \"nostrud enim mollit voluptate dolor\",\n      \"width\": 30074773,\n      \"height\": 56410680,\n      \"isDefault\": true\n     },\n     \"description\": {\n      \"plain\": {\n       \"value\": \"nostrud in tempor\",\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\": \"exercitation 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\": 2894494,\n       \"limit\": 84285993,\n       \"size\": -38756606,\n       \"_links\": {}\n      }\n     },\n     \"operations\": [\n      {\n       \"operation\": \"delete\",\n       \"targetType\": \"comment\"\n      },\n      {\n       \"operation\": \"purge_version\",\n       \"targetType\": \"space\"\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\": \"update\",\n        \"targetType\": \"blogpost\"\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\": \"create\",\n        \"targetType\": \"application\"\n       },\n       \"anonymousAccess\": false,\n       \"unlicensedAccess\": false\n      }\n     ],\n     \"settings\": {\n      \"routeOverrideEnabled\": false,\n      \"_links\": {}\n     },\n     \"theme\": {},\n     \"lookAndFeel\": {\n      \"headings\": {\n       \"color\": \"cillum reprehenderit eu sunt\"\n      },\n      \"links\": {\n       \"color\": \"culpa qui\"\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\": \"sed\"\n      }\n     },\n     \"history\": {\n      \"createdDate\": \"1952-06-10T14:31:50.998Z\"\n     }\n    }\n   },\n   \"when\": \"1953-06-13T02:44:53.322Z\",\n   \"friendlyWhen\": \"magna culpa consectetur et\",\n   \"message\": \"esse quis id\",\n   \"number\": 323605,\n   \"minorEdit\": true,\n   \"_expandable\": {\n    \"content\": \"esse \",\n    \"collaborators\": \"non Excepteur\"\n   },\n   \"_links\": {},\n   \"content\": {\n    \"value\": \"<Circular reference to #/components/schemas/Content detected>\"\n   },\n   \"collaborators\": {\n    \"users\": {\n     \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n    },\n    \"userKeys\": {\n     \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n    },\n    \"_links\": {\n     \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n    }\n   }\n  },\n  {\n   \"by\": {\n    \"type\": \"unknown\",\n    \"accountId\": \"Duis fugiat cupidatat\",\n    \"accountType\": \"atlassian\",\n    \"email\": \"ea in quis anim\",\n    \"publicName\": \"ullamco Lorem in\",\n    \"profilePicture\": {\n     \"path\": \"est sit\",\n     \"width\": -36330137,\n     \"height\": -12646253,\n     \"isDefault\": true\n    },\n    \"displayName\": \"deserunt a\",\n    \"_expandable\": {\n     \"operations\": \"velit in quis ipsum\",\n     \"details\": \"magna ea\",\n     \"personalSpace\": \"Excepteur eu est\"\n    },\n    \"_links\": {},\n    \"username\": \"eiusmod in cupidatat\",\n    \"userKey\": \"esse\",\n    \"operations\": [\n     {\n      \"operation\": \"create\",\n      \"targetType\": \"blogpost\"\n     },\n     {\n      \"operation\": \"create\",\n      \"targetType\": \"blogpost\"\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\": 47490726,\n     \"key\": \"velit \",\n     \"name\": \"nulla aliqua\",\n     \"type\": \"ea laboris\",\n     \"status\": \"cillum adipisicing ullamco laboris\",\n     \"_expandable\": {\n      \"settings\": \"proident ex\",\n      \"metadata\": \"quis irure dol\",\n      \"operations\": \"nostrud eiusmod nisi\",\n      \"lookAndFeel\": \"exercitation sunt labore non\",\n      \"permissions\": \"eiusmod in ad fugiat\",\n      \"icon\": \"nisi nostrud\",\n      \"description\": \"adipisicing in voluptate\",\n      \"theme\": \"ad dolore Duis sunt\",\n      \"history\": \"u\",\n      \"homepage\": \"nul\"\n     },\n     \"_links\": {},\n     \"icon\": {\n      \"path\": \"cillum sit eu\",\n      \"width\": -34925021,\n      \"height\": 90425798,\n      \"isDefault\": false\n     },\n     \"description\": {\n      \"plain\": {\n       \"value\": \"quis sunt\",\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      \"view\": {\n       \"value\": \"sit id\",\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\": 83779927,\n       \"limit\": -87535719,\n       \"size\": -65924145,\n       \"_links\": {}\n      }\n     },\n     \"operations\": [\n      {\n       \"operation\": \"purge_version\",\n       \"targetType\": \"attachment\"\n      },\n      {\n       \"operation\": \"move\",\n       \"targetType\": \"application\"\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\": \"export\",\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\": \"use\",\n        \"targetType\": \"page\"\n       },\n       \"anonymousAccess\": false,\n       \"unlicensedAccess\": false\n      }\n     ],\n     \"settings\": {\n      \"routeOverrideEnabled\": false,\n      \"_links\": {}\n     },\n     \"theme\": {},\n     \"lookAndFeel\": {\n      \"headings\": {\n       \"color\": \"veniam\"\n      },\n      \"links\": {\n       \"color\": \"nisi\"\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\": \"tempor laboris proident esse do\"\n      }\n     },\n     \"history\": {\n      \"createdDate\": \"2007-04-13T10:59:32.679Z\"\n     }\n    }\n   },\n   \"when\": \"1989-05-19T00:33:37.730Z\",\n   \"friendlyWhen\": \"irure ut\",\n   \"message\": \"adipisicing id ad sunt sint\",\n   \"number\": 74656274,\n   \"minorEdit\": false,\n   \"_expandable\": {\n    \"content\": \"des\",\n    \"collaborators\": \"eu\"\n   },\n   \"_links\": {},\n   \"content\": {\n    \"value\": \"<Circular reference to #/components/schemas/Content detected>\"\n   },\n   \"collaborators\": {\n    \"users\": {\n     \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n    },\n    \"userKeys\": {\n     \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n    },\n    \"_links\": {\n     \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n    }\n   }\n  }\n ],\n \"start\": 56422235,\n \"limit\": -9071484,\n \"size\": 19664442,\n \"_links\": {}\n}"
    },
    {
      "name": "Returned if the calling user does not have permission to view the\ncontent.",
      "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/content/:id/version?start=0&limit=200&expand=<string>&expand=<string>",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "api",
            "content",
            ":id",
            "version"
          ],
          "query": [
            {
              "key": "start",
              "value": "0"
            },
            {
              "key": "limit",
              "value": "200"
            },
            {
              "key": "expand",
              "value": "<string>"
            },
            {
              "key": "expand",
              "value": "<string>"
            }
          ],
          "variable": [
            {
              "key": "id"
            }
          ]
        }
      },
      "status": "Forbidden",
      "code": 403,
      "_postman_previewlanguage": "text",
      "header": [
        {
          "key": "Content-Type",
          "value": "text/plain"
        }
      ],
      "cookie": [
      ],
      "body": ""
    }
  ]
}