Chilkat Online Tools

VB6 / Support API / Incremental Sample Export

Back to Collection Items

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

Dim http As New ChilkatHttp
Dim success As Long

http.BasicAuth = 1
http.Login = "login"
http.Password = "password"

Dim queryParams As New ChilkatJsonObject
success = queryParams.UpdateString("start_time","<integer>")

http.SetRequestHeader "Accept","application/json"

Dim resp As ChilkatHttpResponse
Set resp = http.QuickRequestParams("GET","https://example.zendesk.com/api/v2/incremental/:incremental_resource/sample",queryParams)
If (http.LastMethodSuccess = 0) Then
    Debug.Print http.LastErrorText
    Exit Sub
End If

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

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

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

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

    Exit Sub
End If

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

' {
'   "count": "<integer>",
'   "end_of_stream": "<boolean>",
'   "end_time": "<integer>",
'   "next_page": "<string>",
'   "tickets": [
'     {
'       "requester_id": "<integer>",
'       "allow_attachments": "<boolean>",
'       "allow_channelback": "<boolean>",
'       "assignee_email": "<string>",
'       "assignee_id": "<integer>",
'       "attribute_value_ids": "<array>",
'       "brand_id": "<integer>",
'       "collaborator_ids": "<array>",
'       "collaborators": [
'         {
'           "email": "<email>",
'           "name": "<string>"
'         },
'         {
'           "email": "<email>",
'           "name": "<string>"
'         }
'       ],
'       "comment": {},
'       "created_at": "<dateTime>",
'       "custom_fields": "<array>",
'       "custom_status_id": "<integer>",
'       "description": "<string>",
'       "due_at": "<dateTime>",
'       "email_cc_ids": "<array>",
'       "email_ccs": {},
'       "external_id": "<string>",
'       "follower_ids": "<array>",
'       "followers": {},
'       "followup_ids": "<array>",
'       "forum_topic_id": "<integer>",
'       "from_messaging_channel": "<boolean>",
'       "group_id": "<integer>",
'       "has_incidents": "<boolean>",
'       "id": "<integer>",
'       "is_public": "<boolean>",
'       "macro_id": "<integer>",
'       "macro_ids": "<array>",
'       "metadata": {},
'       "organization_id": "<integer>",
'       "priority": "high",
'       "problem_id": "<integer>",
'       "raw_subject": "<string>",
'       "recipient": "<string>",
'       "requester": {},
'       "safe_update": "<boolean>",
'       "satisfaction_rating": {
'         "aliquad0": false
'       },
'       "sharing_agreement_ids": "<array>",
'       "status": "pending",
'       "subject": "<string>",
'       "submitter_id": "<integer>",
'       "tags": "<array>",
'       "ticket_form_id": "<integer>",
'       "type": "question",
'       "updated_at": "<dateTime>",
'       "updated_stamp": "<string>",
'       "url": "<string>",
'       "via": {
'         "channel": "<string>",
'         "source": {
'           "elit2f": -86657295.30733354
'         }
'       },
'       "via_followup_source_id": "<integer>",
'       "via_id": "<integer>",
'       "voice_comment": {}
'     },
'     {
'       "requester_id": "<integer>",
'       "allow_attachments": "<boolean>",
'       "allow_channelback": "<boolean>",
'       "assignee_email": "<string>",
'       "assignee_id": "<integer>",
'       "attribute_value_ids": "<array>",
'       "brand_id": "<integer>",
'       "collaborator_ids": "<array>",
'       "collaborators": [
'         {
'           "email": "<email>",
'           "name": "<string>"
'         },
'         {
'           "email": "<email>",
'           "name": "<string>"
'         }
'       ],
'       "comment": {},
'       "created_at": "<dateTime>",
'       "custom_fields": "<array>",
'       "custom_status_id": "<integer>",
'       "description": "<string>",
'       "due_at": "<dateTime>",
'       "email_cc_ids": "<array>",
'       "email_ccs": {},
'       "external_id": "<string>",
'       "follower_ids": "<array>",
'       "followers": {},
'       "followup_ids": "<array>",
'       "forum_topic_id": "<integer>",
'       "from_messaging_channel": "<boolean>",
'       "group_id": "<integer>",
'       "has_incidents": "<boolean>",
'       "id": "<integer>",
'       "is_public": "<boolean>",
'       "macro_id": "<integer>",
'       "macro_ids": "<array>",
'       "metadata": {},
'       "organization_id": "<integer>",
'       "priority": "high",
'       "problem_id": "<integer>",
'       "raw_subject": "<string>",
'       "recipient": "<string>",
'       "requester": {},
'       "safe_update": "<boolean>",
'       "satisfaction_rating": {
'         "minim_01": "minim tempor",
'         "ipsum8c2": false
'       },
'       "sharing_agreement_ids": "<array>",
'       "status": "open",
'       "subject": "<string>",
'       "submitter_id": "<integer>",
'       "tags": "<array>",
'       "ticket_form_id": "<integer>",
'       "type": "task",
'       "updated_at": "<dateTime>",
'       "updated_stamp": "<string>",
'       "url": "<string>",
'       "via": {
'         "channel": "<string>",
'         "source": {
'           "nostrud_ee": "dolore veniam consequat"
'         }
'       },
'       "via_followup_source_id": "<integer>",
'       "via_id": "<integer>",
'       "voice_comment": {}
'     }
'   ]
' }

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

Dim requester_id As String
Dim allow_attachments As String
Dim allow_channelback As String
Dim assignee_email As String
Dim assignee_id As String
Dim attribute_value_ids As String
Dim brand_id As String
Dim collaborator_ids As String
Dim created_at As String
Dim custom_fields As String
Dim custom_status_id As String
Dim description As String
Dim due_at As String
Dim email_cc_ids As String
Dim external_id As String
Dim follower_ids As String
Dim followup_ids As String
Dim forum_topic_id As String
Dim from_messaging_channel As String
Dim group_id As String
Dim has_incidents As String
Dim id As String
Dim is_public As String
Dim macro_id As String
Dim macro_ids As String
Dim organization_id As String
Dim priority As String
Dim problem_id As String
Dim raw_subject As String
Dim recipient As String
Dim safe_update As String
Dim Aliquad0 As Long
Dim sharing_agreement_ids As String
Dim status As String
Dim subject As String
Dim submitter_id As String
Dim tags As String
Dim ticket_form_id As String
Dim v_type As String
Dim updated_at As String
Dim updated_stamp As String
Dim url As String
Dim Channel As String
Dim Elit2f As String
Dim via_followup_source_id As String
Dim via_id As String
Dim Minim_01 As String
Dim Ipsum8c2 As Long
Dim Nostrud_ee As String
Dim j As Long
Dim count_j As Long
Dim email As String
Dim name As String

Dim count As String
count = jResp.StringOf("count")
Dim end_of_stream As String
end_of_stream = jResp.StringOf("end_of_stream")
Dim end_time As String
end_time = jResp.StringOf("end_time")
Dim next_page As String
next_page = jResp.StringOf("next_page")
Dim i As Long
i = 0
Dim count_i As Long
count_i = jResp.SizeOfArray("tickets")
Do While i < count_i
    jResp.I = i
    requester_id = jResp.StringOf("tickets[i].requester_id")
    allow_attachments = jResp.StringOf("tickets[i].allow_attachments")
    allow_channelback = jResp.StringOf("tickets[i].allow_channelback")
    assignee_email = jResp.StringOf("tickets[i].assignee_email")
    assignee_id = jResp.StringOf("tickets[i].assignee_id")
    attribute_value_ids = jResp.StringOf("tickets[i].attribute_value_ids")
    brand_id = jResp.StringOf("tickets[i].brand_id")
    collaborator_ids = jResp.StringOf("tickets[i].collaborator_ids")
    created_at = jResp.StringOf("tickets[i].created_at")
    custom_fields = jResp.StringOf("tickets[i].custom_fields")
    custom_status_id = jResp.StringOf("tickets[i].custom_status_id")
    description = jResp.StringOf("tickets[i].description")
    due_at = jResp.StringOf("tickets[i].due_at")
    email_cc_ids = jResp.StringOf("tickets[i].email_cc_ids")
    external_id = jResp.StringOf("tickets[i].external_id")
    follower_ids = jResp.StringOf("tickets[i].follower_ids")
    followup_ids = jResp.StringOf("tickets[i].followup_ids")
    forum_topic_id = jResp.StringOf("tickets[i].forum_topic_id")
    from_messaging_channel = jResp.StringOf("tickets[i].from_messaging_channel")
    group_id = jResp.StringOf("tickets[i].group_id")
    has_incidents = jResp.StringOf("tickets[i].has_incidents")
    id = jResp.StringOf("tickets[i].id")
    is_public = jResp.StringOf("tickets[i].is_public")
    macro_id = jResp.StringOf("tickets[i].macro_id")
    macro_ids = jResp.StringOf("tickets[i].macro_ids")
    organization_id = jResp.StringOf("tickets[i].organization_id")
    priority = jResp.StringOf("tickets[i].priority")
    problem_id = jResp.StringOf("tickets[i].problem_id")
    raw_subject = jResp.StringOf("tickets[i].raw_subject")
    recipient = jResp.StringOf("tickets[i].recipient")
    safe_update = jResp.StringOf("tickets[i].safe_update")
    Aliquad0 = jResp.BoolOf("tickets[i].satisfaction_rating.aliquad0")
    sharing_agreement_ids = jResp.StringOf("tickets[i].sharing_agreement_ids")
    status = jResp.StringOf("tickets[i].status")
    subject = jResp.StringOf("tickets[i].subject")
    submitter_id = jResp.StringOf("tickets[i].submitter_id")
    tags = jResp.StringOf("tickets[i].tags")
    ticket_form_id = jResp.StringOf("tickets[i].ticket_form_id")
    v_type = jResp.StringOf("tickets[i].type")
    updated_at = jResp.StringOf("tickets[i].updated_at")
    updated_stamp = jResp.StringOf("tickets[i].updated_stamp")
    url = jResp.StringOf("tickets[i].url")
    Channel = jResp.StringOf("tickets[i].via.channel")
    Elit2f = jResp.StringOf("tickets[i].via.source.elit2f")
    via_followup_source_id = jResp.StringOf("tickets[i].via_followup_source_id")
    via_id = jResp.StringOf("tickets[i].via_id")
    Minim_01 = jResp.StringOf("tickets[i].satisfaction_rating.minim_01")
    Ipsum8c2 = jResp.BoolOf("tickets[i].satisfaction_rating.ipsum8c2")
    Nostrud_ee = jResp.StringOf("tickets[i].via.source.nostrud_ee")
    j = 0
    count_j = jResp.SizeOfArray("tickets[i].collaborators")
    Do While j < count_j
        jResp.J = j
        email = jResp.StringOf("tickets[i].collaborators[j].email")
        name = jResp.StringOf("tickets[i].collaborators[j].name")
        j = j + 1
    Loop
    i = i + 1
Loop

Curl Command

curl  -u login:password -G -d "start_time=%3Cinteger%3E"
	-H "Accept: application/json"
https://example.zendesk.com/api/v2/incremental/:incremental_resource/sample

Postman Collection Item JSON

{
  "name": "Incremental Sample Export",
  "request": {
    "method": "GET",
    "header": [
      {
        "key": "Accept",
        "value": "application/json"
      }
    ],
    "url": {
      "raw": "{{baseUrl}}/api/v2/incremental/:incremental_resource/sample?start_time=<integer>",
      "host": [
        "{{baseUrl}}"
      ],
      "path": [
        "api",
        "v2",
        "incremental",
        ":incremental_resource",
        "sample"
      ],
      "query": [
        {
          "key": "start_time",
          "value": "<integer>",
          "description": "(Required) The time to start the incremental export from"
        }
      ],
      "variable": [
        {
          "key": "incremental_resource",
          "value": "<string>"
        }
      ]
    },
    "description": "Use this endpoint to test the incremental export format. It's more strict in terms of rate limiting,\nat 10 requests per 20 minutes instead of 10 requests per minute. It also returns only up to 50\nresults per request. Otherwise, it's identical to the above APIs.\n\nUse the `incremental_resource` parameter to specify the resource. Possible values are \"tickets\", \"ticket_events\", \"users\", or \"organizations\".\n"
  },
  "response": [
    {
      "name": "Success response",
      "originalRequest": {
        "method": "GET",
        "header": [
          {
            "description": "Added as a part of security scheme: basic",
            "key": "Authorization",
            "value": "Basic <credentials>"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/api/v2/incremental/:incremental_resource/sample?start_time=<integer>",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "api",
            "v2",
            "incremental",
            ":incremental_resource",
            "sample"
          ],
          "query": [
            {
              "key": "start_time",
              "value": "<integer>",
              "description": "(Required) The time to start the incremental export from"
            }
          ],
          "variable": [
            {
              "key": "incremental_resource"
            }
          ]
        }
      },
      "status": "OK",
      "code": 200,
      "_postman_previewlanguage": "json",
      "header": [
        {
          "key": "Content-Type",
          "value": "application/json"
        }
      ],
      "cookie": [
      ],
      "body": "{\n  \"count\": \"<integer>\",\n  \"end_of_stream\": \"<boolean>\",\n  \"end_time\": \"<integer>\",\n  \"next_page\": \"<string>\",\n  \"tickets\": [\n    {\n      \"requester_id\": \"<integer>\",\n      \"allow_attachments\": \"<boolean>\",\n      \"allow_channelback\": \"<boolean>\",\n      \"assignee_email\": \"<string>\",\n      \"assignee_id\": \"<integer>\",\n      \"attribute_value_ids\": \"<array>\",\n      \"brand_id\": \"<integer>\",\n      \"collaborator_ids\": \"<array>\",\n      \"collaborators\": [\n        {\n          \"email\": \"<email>\",\n          \"name\": \"<string>\"\n        },\n        {\n          \"email\": \"<email>\",\n          \"name\": \"<string>\"\n        }\n      ],\n      \"comment\": {},\n      \"created_at\": \"<dateTime>\",\n      \"custom_fields\": \"<array>\",\n      \"custom_status_id\": \"<integer>\",\n      \"description\": \"<string>\",\n      \"due_at\": \"<dateTime>\",\n      \"email_cc_ids\": \"<array>\",\n      \"email_ccs\": {},\n      \"external_id\": \"<string>\",\n      \"follower_ids\": \"<array>\",\n      \"followers\": {},\n      \"followup_ids\": \"<array>\",\n      \"forum_topic_id\": \"<integer>\",\n      \"from_messaging_channel\": \"<boolean>\",\n      \"group_id\": \"<integer>\",\n      \"has_incidents\": \"<boolean>\",\n      \"id\": \"<integer>\",\n      \"is_public\": \"<boolean>\",\n      \"macro_id\": \"<integer>\",\n      \"macro_ids\": \"<array>\",\n      \"metadata\": {},\n      \"organization_id\": \"<integer>\",\n      \"priority\": \"high\",\n      \"problem_id\": \"<integer>\",\n      \"raw_subject\": \"<string>\",\n      \"recipient\": \"<string>\",\n      \"requester\": {},\n      \"safe_update\": \"<boolean>\",\n      \"satisfaction_rating\": {\n        \"aliquad0\": false\n      },\n      \"sharing_agreement_ids\": \"<array>\",\n      \"status\": \"pending\",\n      \"subject\": \"<string>\",\n      \"submitter_id\": \"<integer>\",\n      \"tags\": \"<array>\",\n      \"ticket_form_id\": \"<integer>\",\n      \"type\": \"question\",\n      \"updated_at\": \"<dateTime>\",\n      \"updated_stamp\": \"<string>\",\n      \"url\": \"<string>\",\n      \"via\": {\n        \"channel\": \"<string>\",\n        \"source\": {\n          \"elit2f\": -86657295.30733354\n        }\n      },\n      \"via_followup_source_id\": \"<integer>\",\n      \"via_id\": \"<integer>\",\n      \"voice_comment\": {}\n    },\n    {\n      \"requester_id\": \"<integer>\",\n      \"allow_attachments\": \"<boolean>\",\n      \"allow_channelback\": \"<boolean>\",\n      \"assignee_email\": \"<string>\",\n      \"assignee_id\": \"<integer>\",\n      \"attribute_value_ids\": \"<array>\",\n      \"brand_id\": \"<integer>\",\n      \"collaborator_ids\": \"<array>\",\n      \"collaborators\": [\n        {\n          \"email\": \"<email>\",\n          \"name\": \"<string>\"\n        },\n        {\n          \"email\": \"<email>\",\n          \"name\": \"<string>\"\n        }\n      ],\n      \"comment\": {},\n      \"created_at\": \"<dateTime>\",\n      \"custom_fields\": \"<array>\",\n      \"custom_status_id\": \"<integer>\",\n      \"description\": \"<string>\",\n      \"due_at\": \"<dateTime>\",\n      \"email_cc_ids\": \"<array>\",\n      \"email_ccs\": {},\n      \"external_id\": \"<string>\",\n      \"follower_ids\": \"<array>\",\n      \"followers\": {},\n      \"followup_ids\": \"<array>\",\n      \"forum_topic_id\": \"<integer>\",\n      \"from_messaging_channel\": \"<boolean>\",\n      \"group_id\": \"<integer>\",\n      \"has_incidents\": \"<boolean>\",\n      \"id\": \"<integer>\",\n      \"is_public\": \"<boolean>\",\n      \"macro_id\": \"<integer>\",\n      \"macro_ids\": \"<array>\",\n      \"metadata\": {},\n      \"organization_id\": \"<integer>\",\n      \"priority\": \"high\",\n      \"problem_id\": \"<integer>\",\n      \"raw_subject\": \"<string>\",\n      \"recipient\": \"<string>\",\n      \"requester\": {},\n      \"safe_update\": \"<boolean>\",\n      \"satisfaction_rating\": {\n        \"minim_01\": \"minim tempor\",\n        \"ipsum8c2\": false\n      },\n      \"sharing_agreement_ids\": \"<array>\",\n      \"status\": \"open\",\n      \"subject\": \"<string>\",\n      \"submitter_id\": \"<integer>\",\n      \"tags\": \"<array>\",\n      \"ticket_form_id\": \"<integer>\",\n      \"type\": \"task\",\n      \"updated_at\": \"<dateTime>\",\n      \"updated_stamp\": \"<string>\",\n      \"url\": \"<string>\",\n      \"via\": {\n        \"channel\": \"<string>\",\n        \"source\": {\n          \"nostrud_ee\": \"dolore veniam consequat\"\n        }\n      },\n      \"via_followup_source_id\": \"<integer>\",\n      \"via_id\": \"<integer>\",\n      \"voice_comment\": {}\n    }\n  ]\n}"
    }
  ]
}