Chilkat Online Tools

Objective-C / Belvo API Docs / Retrieve

Back to Collection Items

#import <CkoHttp.h>
#import <CkoJsonObject.h>
#import <CkoHttpResponse.h>
#import <CkoStringBuilder.h>
#import <CkoJsonArray.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;

http.BasicAuth = YES;
http.Login = @"{{secretId}}";
http.Password = @"{{secretPassword}}";

// Use this online tool to generate code from sample JSON: Generate Code to Create JSON

// The following JSON is sent in the request body.

// {
//   "link": "2ccd5e15-194a-4a19-a45a-e7223c7e6717",
//   "token": "1234ab",
//   "save_data": true
// }

CkoJsonObject *json = [[CkoJsonObject alloc] init];
[json UpdateString: @"link" value: @"2ccd5e15-194a-4a19-a45a-e7223c7e6717"];
[json UpdateString: @"token" value: @"1234ab"];
[json UpdateBool: @"save_data" value: YES];

[http SetRequestHeader: @"Content-Type" value: @"application/json"];

CkoHttpResponse *resp = [http PostJson3: @"https://domain.com/api/owners/" contentType: @"application/json" json: json];
if (http.LastMethodSuccess == NO) {
    NSLog(@"%@",http.LastErrorText);
    return;
}

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

CkoJsonArray *jarrResp = [[CkoJsonArray alloc] init];
[jarrResp LoadSb: sbResponseBody];
jarrResp.EmitCompact = NO;

NSLog(@"%@",@"Response Body:");
NSLog(@"%@",[jarrResp 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)

// [
//   {
//     "link": "<uuid>",
//     "collected_at": "<dateTime>",
//     "display_name": "<string>",
//     "first_name": "<string>",
//     "last_name": "<string>",
//     "second_last_name": "<string>",
//     "address": "<string>",
//     "email": "<email>",
//     "phone_number": "<string>",
//     "accounts": [
//       {
//         "value": "<Error: Too many levels of nesting to fake this schema>"
//       },
//       {
//         "value": "<Error: Too many levels of nesting to fake this schema>"
//       }
//     ],
//     "gig_data": {
//       "collected_at": "<dateTime>",
//       "status": "<string>",
//       "acceptance_rate": "<number>"
//     }
//   },
//   {
//     "link": "<uuid>",
//     "collected_at": "<dateTime>",
//     "display_name": "<string>",
//     "first_name": "<string>",
//     "last_name": "<string>",
//     "second_last_name": "<string>",
//     "address": "<string>",
//     "email": "<email>",
//     "phone_number": "<string>",
//     "accounts": [
//       {
//         "value": "<Error: Too many levels of nesting to fake this schema>"
//       },
//       {
//         "value": "<Error: Too many levels of nesting to fake this schema>"
//       }
//     ],
//     "gig_data": {
//       "collected_at": "<dateTime>",
//       "status": "<string>",
//       "acceptance_rate": "<number>"
//     }
//   }
// ]

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

CkoJsonObject *json = 0;
NSString *link = 0;
NSString *collected_at = 0;
NSString *display_name = 0;
NSString *first_name = 0;
NSString *last_name = 0;
NSString *second_last_name = 0;
NSString *address = 0;
NSString *email = 0;
NSString *phone_number = 0;
NSString *Collected_at = 0;
NSString *Status = 0;
NSString *Acceptance_rate = 0;
int j;
int count_j;
NSString *value = 0;

int i = 0;
int count_i = [jarrResp.Size intValue];
while (i < count_i) {
    json = [jarrResp ObjectAt: [NSNumber numberWithInt: i]];
    link = [json StringOf: @"link"];
    collected_at = [json StringOf: @"collected_at"];
    display_name = [json StringOf: @"display_name"];
    first_name = [json StringOf: @"first_name"];
    last_name = [json StringOf: @"last_name"];
    second_last_name = [json StringOf: @"second_last_name"];
    address = [json StringOf: @"address"];
    email = [json StringOf: @"email"];
    phone_number = [json StringOf: @"phone_number"];
    Collected_at = [json StringOf: @"gig_data.collected_at"];
    Status = [json StringOf: @"gig_data.status"];
    Acceptance_rate = [json StringOf: @"gig_data.acceptance_rate"];
    j = 0;
    count_j = [[json SizeOfArray: @"accounts"] intValue];
    while (j < count_j) {
        json.J = [NSNumber numberWithInt: j];
        value = [json StringOf: @"accounts[j].value"];
        j = j + 1;
    }

    i = i + 1;
}

Curl Command

curl -X POST
	-u '{{secretId}}:{{secretPassword}}'
	-H "Content-Type: application/json"
	-d '{
    "link": "2ccd5e15-194a-4a19-a45a-e7223c7e6717",
    "token": "1234ab",
    "save_data": true
}'
https://domain.com/api/owners/

Postman Collection Item JSON

{
  "name": "Retrieve",
  "request": {
    "method": "POST",
    "header": [
      {
        "key": "Content-Type",
        "value": "application/json"
      }
    ],
    "body": {
      "mode": "raw",
      "raw": "{\n    \"link\": \"2ccd5e15-194a-4a19-a45a-e7223c7e6717\",\n    \"token\": \"1234ab\",\n    \"save_data\": true\n}"
    },
    "url": {
      "raw": "{{baseUrl}}/api/owners/",
      "host": [
        "{{baseUrl}}"
      ],
      "path": [
        "api",
        "owners",
        ""
      ]
    },
    "description": "Retrieve owner information from a specific link."
  },
  "response": [
    {
      "name": "Ok (when save_data=false)",
      "originalRequest": {
        "method": "POST",
        "header": [
          {
            "description": "Added as a part of security scheme: basic",
            "key": "Authorization",
            "value": "Basic <credentials>"
          }
        ],
        "body": {
          "mode": "raw",
          "raw": "{\n    \"link\": \"<uuid>\",\n    \"encryption_key\": \"<string>\",\n    \"token\": \"<string>\",\n    \"save_data\": true\n}"
        },
        "url": {
          "raw": "{{baseUrl}}/api/owners",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "api",
            "owners"
          ]
        }
      },
      "status": "OK",
      "code": 200,
      "_postman_previewlanguage": "json",
      "header": [
        {
          "key": "Content-Type",
          "value": "application/json"
        }
      ],
      "cookie": [
      ],
      "body": "[\n\t{\n\t\t\"link\": \"<uuid>\",\n\t\t\"collected_at\": \"<dateTime>\",\n\t\t\"display_name\": \"<string>\",\n\t\t\"first_name\": \"<string>\",\n\t\t\"last_name\": \"<string>\",\n\t\t\"second_last_name\": \"<string>\",\n\t\t\"address\": \"<string>\",\n\t\t\"email\": \"<email>\",\n\t\t\"phone_number\": \"<string>\",\n\t\t\"accounts\": [\n\t\t\t{\n\t\t\t\t\"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n\t\t\t}\n\t\t],\n\t\t\"gig_data\": {\n\t\t\t\"collected_at\": \"<dateTime>\",\n\t\t\t\"status\": \"<string>\",\n\t\t\t\"acceptance_rate\": \"<number>\"\n\t\t}\n\t},\n\t{\n\t\t\"link\": \"<uuid>\",\n\t\t\"collected_at\": \"<dateTime>\",\n\t\t\"display_name\": \"<string>\",\n\t\t\"first_name\": \"<string>\",\n\t\t\"last_name\": \"<string>\",\n\t\t\"second_last_name\": \"<string>\",\n\t\t\"address\": \"<string>\",\n\t\t\"email\": \"<email>\",\n\t\t\"phone_number\": \"<string>\",\n\t\t\"accounts\": [\n\t\t\t{\n\t\t\t\t\"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n\t\t\t}\n\t\t],\n\t\t\"gig_data\": {\n\t\t\t\"collected_at\": \"<dateTime>\",\n\t\t\t\"status\": \"<string>\",\n\t\t\t\"acceptance_rate\": \"<number>\"\n\t\t}\n\t}\n]"
    },
    {
      "name": "Created (when save_data=true)",
      "originalRequest": {
        "method": "POST",
        "header": [
          {
            "description": "Added as a part of security scheme: basic",
            "key": "Authorization",
            "value": "Basic <credentials>"
          }
        ],
        "body": {
          "mode": "raw",
          "raw": "{\n    \"link\": \"<uuid>\",\n    \"encryption_key\": \"<string>\",\n    \"token\": \"<string>\",\n    \"save_data\": true\n}"
        },
        "url": {
          "raw": "{{baseUrl}}/api/owners",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "api",
            "owners"
          ]
        }
      },
      "status": "Created",
      "code": 201,
      "_postman_previewlanguage": "json",
      "header": [
        {
          "key": "Content-Type",
          "value": "application/json"
        }
      ],
      "cookie": [
      ],
      "body": "[\n\t{\n\t\t\"id\": \"<uuid>\",\n\t\t\"link\": \"<uuid>\",\n\t\t\"collected_at\": \"<dateTime>\",\n\t\t\"display_name\": \"<string>\",\n\t\t\"first_name\": \"<string>\",\n\t\t\"last_name\": \"<string>\",\n\t\t\"second_last_name\": \"<string>\",\n\t\t\"address\": \"<string>\",\n\t\t\"email\": \"<email>\",\n\t\t\"phone_number\": \"<string>\",\n\t\t\"accounts\": [\n\t\t\t{\n\t\t\t\t\"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n\t\t\t}\n\t\t],\n\t\t\"gig_data\": {\n\t\t\t\"collected_at\": \"<dateTime>\",\n\t\t\t\"status\": \"<string>\",\n\t\t\t\"acceptance_rate\": \"<number>\"\n\t\t}\n\t},\n\t{\n\t\t\"id\": \"<uuid>\",\n\t\t\"link\": \"<uuid>\",\n\t\t\"collected_at\": \"<dateTime>\",\n\t\t\"display_name\": \"<string>\",\n\t\t\"first_name\": \"<string>\",\n\t\t\"last_name\": \"<string>\",\n\t\t\"second_last_name\": \"<string>\",\n\t\t\"address\": \"<string>\",\n\t\t\"email\": \"<email>\",\n\t\t\"phone_number\": \"<string>\",\n\t\t\"accounts\": [\n\t\t\t{\n\t\t\t\t\"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n\t\t\t}\n\t\t],\n\t\t\"gig_data\": {\n\t\t\t\"collected_at\": \"<dateTime>\",\n\t\t\t\"status\": \"<string>\",\n\t\t\t\"acceptance_rate\": \"<number>\"\n\t\t}\n\t}\n]"
    },
    {
      "name": "Bad request error",
      "originalRequest": {
        "method": "POST",
        "header": [
          {
            "description": "Added as a part of security scheme: basic",
            "key": "Authorization",
            "value": "Basic <credentials>"
          }
        ],
        "body": {
          "mode": "raw",
          "raw": "{\n    \"link\": \"<uuid>\",\n    \"encryption_key\": \"<string>\",\n    \"token\": \"<string>\",\n    \"save_data\": true\n}"
        },
        "url": {
          "raw": "{{baseUrl}}/api/owners",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "api",
            "owners"
          ]
        }
      },
      "status": "Bad Request",
      "code": 400,
      "_postman_previewlanguage": "json",
      "header": [
        {
          "key": "Content-Type",
          "value": "application/json"
        }
      ],
      "cookie": [
      ],
      "body": "[\n\t{\n\t\t\"code\": \"<string>\",\n\t\t\"message\": \"<string>\",\n\t\t\"request_id\": \"<string>\"\n\t},\n\t{\n\t\t\"code\": \"<string>\",\n\t\t\"message\": \"<string>\",\n\t\t\"request_id\": \"<string>\"\n\t}\n]"
    },
    {
      "name": "Unauthorized",
      "originalRequest": {
        "method": "POST",
        "header": [
          {
            "description": "Added as a part of security scheme: basic",
            "key": "Authorization",
            "value": "Basic <credentials>"
          }
        ],
        "body": {
          "mode": "raw",
          "raw": "{\n    \"link\": \"<uuid>\",\n    \"encryption_key\": \"<string>\",\n    \"token\": \"<string>\",\n    \"save_data\": true\n}"
        },
        "url": {
          "raw": "{{baseUrl}}/api/owners",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "api",
            "owners"
          ]
        }
      },
      "status": "Unauthorized",
      "code": 401,
      "_postman_previewlanguage": "json",
      "header": [
        {
          "key": "Content-Type",
          "value": "application/json"
        }
      ],
      "cookie": [
      ],
      "body": "[\n\t{\n\t\t\"code\": \"<string>\",\n\t\t\"message\": \"<string>\",\n\t\t\"request_id\": \"<string>\"\n\t},\n\t{\n\t\t\"code\": \"<string>\",\n\t\t\"message\": \"<string>\",\n\t\t\"request_id\": \"<string>\"\n\t}\n]"
    },
    {
      "name": "Request Timeout",
      "originalRequest": {
        "method": "POST",
        "header": [
          {
            "description": "Added as a part of security scheme: basic",
            "key": "Authorization",
            "value": "Basic <credentials>"
          }
        ],
        "body": {
          "mode": "raw",
          "raw": "{\n    \"link\": \"<uuid>\",\n    \"encryption_key\": \"<string>\",\n    \"token\": \"<string>\",\n    \"save_data\": true\n}"
        },
        "url": {
          "raw": "{{baseUrl}}/api/owners",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "api",
            "owners"
          ]
        }
      },
      "status": "Request Timeout",
      "code": 408,
      "_postman_previewlanguage": "json",
      "header": [
        {
          "key": "Content-Type",
          "value": "application/json"
        }
      ],
      "cookie": [
      ],
      "body": "[\n\t{\n\t\t\"code\": \"<string>\",\n\t\t\"message\": \"<string>\",\n\t\t\"request_id\": \"<string>\"\n\t},\n\t{\n\t\t\"code\": \"<string>\",\n\t\t\"message\": \"<string>\",\n\t\t\"request_id\": \"<string>\"\n\t}\n]"
    },
    {
      "name": "MFA Token Required",
      "originalRequest": {
        "method": "POST",
        "header": [
          {
            "description": "Added as a part of security scheme: basic",
            "key": "Authorization",
            "value": "Basic <credentials>"
          }
        ],
        "body": {
          "mode": "raw",
          "raw": "{\n    \"link\": \"<uuid>\",\n    \"encryption_key\": \"<string>\",\n    \"token\": \"<string>\",\n    \"save_data\": true\n}"
        },
        "url": {
          "raw": "{{baseUrl}}/api/owners",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "api",
            "owners"
          ]
        }
      },
      "status": "Precondition Required",
      "code": 428,
      "_postman_previewlanguage": "json",
      "header": [
        {
          "key": "Content-Type",
          "value": "application/json"
        }
      ],
      "cookie": [
      ],
      "body": "{\n\t\"code\": \"<string>\",\n\t\"message\": \"<string>\",\n\t\"request_id\": \"<uuid>\",\n\t\"session\": \"<uuid>\",\n\t\"expiry\": \"<integer>\",\n\t\"link\": \"<uuid>\",\n\t\"token_generation_data\": {\n\t\t\"instructions\": \"<string>\",\n\t\t\"type\": \"<string>\",\n\t\t\"value\": \"<string>\"\n\t}\n}"
    },
    {
      "name": "Unexpected Error",
      "originalRequest": {
        "method": "POST",
        "header": [
          {
            "description": "Added as a part of security scheme: basic",
            "key": "Authorization",
            "value": "Basic <credentials>"
          }
        ],
        "body": {
          "mode": "raw",
          "raw": "{\n    \"link\": \"<uuid>\",\n    \"encryption_key\": \"<string>\",\n    \"token\": \"<string>\",\n    \"save_data\": true\n}"
        },
        "url": {
          "raw": "{{baseUrl}}/api/owners",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "api",
            "owners"
          ]
        }
      },
      "status": "Internal Server Error",
      "code": 500,
      "_postman_previewlanguage": "json",
      "header": [
        {
          "key": "Content-Type",
          "value": "application/json"
        }
      ],
      "cookie": [
      ],
      "body": "[\n\t{\n\t\t\"code\": \"<string>\",\n\t\t\"message\": \"<string>\",\n\t\t\"request_id\": \"<string>\"\n\t},\n\t{\n\t\t\"code\": \"<string>\",\n\t\t\"message\": \"<string>\",\n\t\t\"request_id\": \"<string>\"\n\t}\n]"
    }
  ]
}