Chilkat Online Tools

TCL / Zoom API / Get account plan information

Back to Collection Items

load ./chilkat.dll

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

set http [new_CkHttp]

# Adds the "Authorization: Bearer <access_token>" header.
CkHttp_put_AuthToken $http "<access_token>"

set sbResponseBody [new_CkStringBuilder]

set success [CkHttp_QuickGetSb $http "https://api.zoom.us/v2/accounts/:accountId/plans" $sbResponseBody]
if {$success == 0} then {
    puts [CkHttp_lastErrorText $http]
    delete_CkHttp $http
    delete_CkStringBuilder $sbResponseBody
    exit
}

set jResp [new_CkJsonObject]

CkJsonObject_LoadSb $jResp $sbResponseBody
CkJsonObject_put_EmitCompact $jResp 0

puts "Response Body:"
puts [CkJsonObject_emit $jResp]

set respStatusCode [CkHttp_get_LastStatus $http]
puts "Response Status Code = $respStatusCode"
if {$respStatusCode >= 400} then {
    puts "Response Header:"
    puts [CkHttp_lastHeader $http]
    puts "Failed."
    delete_CkHttp $http
    delete_CkStringBuilder $sbResponseBody
    delete_CkJsonObject $jResp
    exit
}

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

# {
#   "plan_base": {
#     "type": "monthly",
#     "hosts": 100,
#     "service_effective_date": "2021-09-07T00:00:00Z",
#     "next_invoice_date": "2021-10-07T00:00:00Z",
#     "status": "active"
#   },
#   "plan_zoom_rooms": {
#     "type": "zroom_monthly",
#     "hosts": 50,
#     "service_effective_date": "2021-09-07T00:00:00Z",
#     "next_invoice_date": "2021-10-07T00:00:00Z",
#     "status": "active"
#   },
#   "plan_room_connector": {
#     "type": "roomconnector_monthly",
#     "hosts": 10,
#     "service_effective_date": "2021-09-07T00:00:00Z",
#     "next_invoice_date": "2021-10-07T00:00:00Z",
#     "status": "active"
#   },
#   "plan_large_meeting": [
#     {
#       "type": "plan_large500_two_years",
#       "hosts": 10,
#       "service_effective_date": "2021-09-07T00:00:00Z",
#       "next_invoice_date": "2021-10-07T00:00:00Z",
#       "status": "active"
#     }
#   ],
#   "plan_webinar": [
#     {
#       "type": "webinar500_monthly",
#       "hosts": 10,
#       "service_effective_date": "2021-09-07T00:00:00Z",
#       "next_invoice_date": "2021-10-07T00:00:00Z",
#       "status": "active"
#     }
#   ],
#   "plan_zoom_events": [
#     {
#       "type": "zoomevents500_monthly",
#       "hosts": 20,
#       "service_effective_date": "2021-09-07T00:00:00Z",
#       "next_invoice_date": "2021-10-07T00:00:00Z",
#       "status": "active"
#     }
#   ],
#   "plan_recording": "cmr_monthly_commitment_40",
#   "plan_recording_service_effective_date": "2021-09-07T00:00:00Z",
#   "plan_recording_next_invoice_date": "2021-10-07T00:00:00Z",
#   "plan_recording_status": "status",
#   "plan_audio": {
#     "type": "tollfree_payongo",
#     "tollfree_countries": "US",
#     "premium_countries": "",
#     "callout_countries": "",
#     "ddi_numbers": 0,
#     "service_effective_date": "2021-09-07T00:00:00Z",
#     "next_invoice_date": "2021-10-07T00:00:00Z",
#     "status": "active"
#   },
#   "plan_phone": {
#     "plan_base": {
#       "type": "phone_payongo",
#       "callout_countries": "",
#       "service_effective_date": "2021-09-07T00:00:00Z",
#       "next_invoice_date": "2021-10-07T00:00:00Z",
#       "status": "active"
#     },
#     "plan_calling": [
#       {
#         "type": "phone_calling_usca_monthly_unlimited",
#         "hosts": 5,
#         "service_effective_date": "2021-09-07T00:00:00Z",
#         "next_invoice_date": "2021-10-07T00:00:00Z",
#         "status": "active"
#       }
#     ],
#     "plan_number": [
#       {
#         "type": "phone_number_usca_monthly",
#         "hosts": 5,
#         "service_effective_date": "2021-09-07T00:00:00Z",
#         "next_invoice_date": "2021-10-07T00:00:00Z",
#         "status": "active"
#       }
#     ]
#   }
# }

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

set v_Type [CkJsonObject_stringOf $jResp "plan_base.type"]
set Hosts [CkJsonObject_IntOf $jResp "plan_base.hosts"]
set Service_effective_date [CkJsonObject_stringOf $jResp "plan_base.service_effective_date"]
set Next_invoice_date [CkJsonObject_stringOf $jResp "plan_base.next_invoice_date"]
set Status [CkJsonObject_stringOf $jResp "plan_base.status"]
set plan_zoom_roomsType [CkJsonObject_stringOf $jResp "plan_zoom_rooms.type"]
set plan_zoom_roomsHosts [CkJsonObject_IntOf $jResp "plan_zoom_rooms.hosts"]
set plan_zoom_roomsService_effective_date [CkJsonObject_stringOf $jResp "plan_zoom_rooms.service_effective_date"]
set plan_zoom_roomsNext_invoice_date [CkJsonObject_stringOf $jResp "plan_zoom_rooms.next_invoice_date"]
set plan_zoom_roomsStatus [CkJsonObject_stringOf $jResp "plan_zoom_rooms.status"]
set plan_room_connectorType [CkJsonObject_stringOf $jResp "plan_room_connector.type"]
set plan_room_connectorHosts [CkJsonObject_IntOf $jResp "plan_room_connector.hosts"]
set plan_room_connectorService_effective_date [CkJsonObject_stringOf $jResp "plan_room_connector.service_effective_date"]
set plan_room_connectorNext_invoice_date [CkJsonObject_stringOf $jResp "plan_room_connector.next_invoice_date"]
set plan_room_connectorStatus [CkJsonObject_stringOf $jResp "plan_room_connector.status"]
set plan_recording [CkJsonObject_stringOf $jResp "plan_recording"]
set plan_recording_service_effective_date [CkJsonObject_stringOf $jResp "plan_recording_service_effective_date"]
set plan_recording_next_invoice_date [CkJsonObject_stringOf $jResp "plan_recording_next_invoice_date"]
set plan_recording_status [CkJsonObject_stringOf $jResp "plan_recording_status"]
set plan_audioType [CkJsonObject_stringOf $jResp "plan_audio.type"]
set Tollfree_countries [CkJsonObject_stringOf $jResp "plan_audio.tollfree_countries"]
set Premium_countries [CkJsonObject_stringOf $jResp "plan_audio.premium_countries"]
set Callout_countries [CkJsonObject_stringOf $jResp "plan_audio.callout_countries"]
set Ddi_numbers [CkJsonObject_IntOf $jResp "plan_audio.ddi_numbers"]
set plan_audioService_effective_date [CkJsonObject_stringOf $jResp "plan_audio.service_effective_date"]
set plan_audioNext_invoice_date [CkJsonObject_stringOf $jResp "plan_audio.next_invoice_date"]
set plan_audioStatus [CkJsonObject_stringOf $jResp "plan_audio.status"]
set Plan_baseType [CkJsonObject_stringOf $jResp "plan_phone.plan_base.type"]
set Plan_baseCallout_countries [CkJsonObject_stringOf $jResp "plan_phone.plan_base.callout_countries"]
set Plan_baseService_effective_date [CkJsonObject_stringOf $jResp "plan_phone.plan_base.service_effective_date"]
set Plan_baseNext_invoice_date [CkJsonObject_stringOf $jResp "plan_phone.plan_base.next_invoice_date"]
set Plan_baseStatus [CkJsonObject_stringOf $jResp "plan_phone.plan_base.status"]
set i 0
set count_i [CkJsonObject_SizeOfArray $jResp "plan_large_meeting"]
while {$i < $count_i} {
    CkJsonObject_put_I $jResp $i
    set v_type [CkJsonObject_stringOf $jResp "plan_large_meeting[i].type"]
    set hosts [CkJsonObject_IntOf $jResp "plan_large_meeting[i].hosts"]
    set service_effective_date [CkJsonObject_stringOf $jResp "plan_large_meeting[i].service_effective_date"]
    set next_invoice_date [CkJsonObject_stringOf $jResp "plan_large_meeting[i].next_invoice_date"]
    set status [CkJsonObject_stringOf $jResp "plan_large_meeting[i].status"]
    set i [expr $i + 1]
}
set i 0
set count_i [CkJsonObject_SizeOfArray $jResp "plan_webinar"]
while {$i < $count_i} {
    CkJsonObject_put_I $jResp $i
    set v_type [CkJsonObject_stringOf $jResp "plan_webinar[i].type"]
    set hosts [CkJsonObject_IntOf $jResp "plan_webinar[i].hosts"]
    set service_effective_date [CkJsonObject_stringOf $jResp "plan_webinar[i].service_effective_date"]
    set next_invoice_date [CkJsonObject_stringOf $jResp "plan_webinar[i].next_invoice_date"]
    set status [CkJsonObject_stringOf $jResp "plan_webinar[i].status"]
    set i [expr $i + 1]
}
set i 0
set count_i [CkJsonObject_SizeOfArray $jResp "plan_zoom_events"]
while {$i < $count_i} {
    CkJsonObject_put_I $jResp $i
    set v_type [CkJsonObject_stringOf $jResp "plan_zoom_events[i].type"]
    set hosts [CkJsonObject_IntOf $jResp "plan_zoom_events[i].hosts"]
    set service_effective_date [CkJsonObject_stringOf $jResp "plan_zoom_events[i].service_effective_date"]
    set next_invoice_date [CkJsonObject_stringOf $jResp "plan_zoom_events[i].next_invoice_date"]
    set status [CkJsonObject_stringOf $jResp "plan_zoom_events[i].status"]
    set i [expr $i + 1]
}
set i 0
set count_i [CkJsonObject_SizeOfArray $jResp "plan_phone.plan_calling"]
while {$i < $count_i} {
    CkJsonObject_put_I $jResp $i
    set v_type [CkJsonObject_stringOf $jResp "plan_phone.plan_calling[i].type"]
    set hosts [CkJsonObject_IntOf $jResp "plan_phone.plan_calling[i].hosts"]
    set service_effective_date [CkJsonObject_stringOf $jResp "plan_phone.plan_calling[i].service_effective_date"]
    set next_invoice_date [CkJsonObject_stringOf $jResp "plan_phone.plan_calling[i].next_invoice_date"]
    set status [CkJsonObject_stringOf $jResp "plan_phone.plan_calling[i].status"]
    set i [expr $i + 1]
}
set i 0
set count_i [CkJsonObject_SizeOfArray $jResp "plan_phone.plan_number"]
while {$i < $count_i} {
    CkJsonObject_put_I $jResp $i
    set v_type [CkJsonObject_stringOf $jResp "plan_phone.plan_number[i].type"]
    set hosts [CkJsonObject_IntOf $jResp "plan_phone.plan_number[i].hosts"]
    set service_effective_date [CkJsonObject_stringOf $jResp "plan_phone.plan_number[i].service_effective_date"]
    set next_invoice_date [CkJsonObject_stringOf $jResp "plan_phone.plan_number[i].next_invoice_date"]
    set status [CkJsonObject_stringOf $jResp "plan_phone.plan_number[i].status"]
    set i [expr $i + 1]
}

delete_CkHttp $http
delete_CkStringBuilder $sbResponseBody
delete_CkJsonObject $jResp

Curl Command

curl -X GET
	-H "Authorization: Bearer <access_token>"
https://api.zoom.us/v2/accounts/:accountId/plans

Postman Collection Item JSON

{
  "name": "Get account plan information",
  "request": {
    "method": "GET",
    "header": [
    ],
    "url": {
      "raw": "{{baseUrl}}/accounts/:accountId/plans",
      "host": [
        "{{baseUrl}}"
      ],
      "path": [
        "accounts",
        ":accountId",
        "plans"
      ],
      "variable": [
        {
          "key": "accountId",
          "value": "quis officia in reprehenderit",
          "description": "(Required) The account's ID."
        }
      ]
    },
    "description": "Use this API to return plan information of a subaccount that is managed by a Master account. \n\n This API can only be used by Master accounts that pay all billing charges of their associated Pro or higher subaccounts. Zoom only allows approved partners to use [Master APIs](https://marketplace.zoom.us/docs/api-reference/master-account-apis) and manage subaccounts' billing information. Email the partner programs team at [**partner-success@zoom.us**](mailto:partner-success@zoom.us) for more details. \n\n **Scopes:** `billing:master`, `billing:read:admin` <br> **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `Medium`"
  },
  "response": [
    {
      "name": "**HTTP Status Code:**`200`<br>\nAccount's plans returned.\n",
      "originalRequest": {
        "method": "GET",
        "header": [
          {
            "description": "Added as a part of security scheme: oauth2",
            "key": "Authorization",
            "value": "<token>"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/accounts/:accountId/plans",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "accounts",
            ":accountId",
            "plans"
          ],
          "variable": [
            {
              "key": "accountId",
              "value": "quis officia in reprehenderit",
              "description": "(Required) The account's ID."
            }
          ]
        }
      },
      "status": "OK",
      "code": 200,
      "_postman_previewlanguage": "json",
      "header": [
        {
          "key": "Content-Type",
          "value": "application/json"
        }
      ],
      "cookie": [
      ],
      "body": "{\n \"plan_base\": {\n  \"type\": \"monthly\",\n  \"hosts\": 100,\n  \"service_effective_date\": \"2021-09-07T00:00:00Z\",\n  \"next_invoice_date\": \"2021-10-07T00:00:00Z\",\n  \"status\": \"active\"\n },\n \"plan_zoom_rooms\": {\n  \"type\": \"zroom_monthly\",\n  \"hosts\": 50,\n  \"service_effective_date\": \"2021-09-07T00:00:00Z\",\n  \"next_invoice_date\": \"2021-10-07T00:00:00Z\",\n  \"status\": \"active\"\n },\n \"plan_room_connector\": {\n  \"type\": \"roomconnector_monthly\",\n  \"hosts\": 10,\n  \"service_effective_date\": \"2021-09-07T00:00:00Z\",\n  \"next_invoice_date\": \"2021-10-07T00:00:00Z\",\n  \"status\": \"active\"\n },\n \"plan_large_meeting\": [\n  {\n   \"type\": \"plan_large500_two_years\",\n   \"hosts\": 10,\n   \"service_effective_date\": \"2021-09-07T00:00:00Z\",\n   \"next_invoice_date\": \"2021-10-07T00:00:00Z\",\n   \"status\": \"active\"\n  }\n ],\n \"plan_webinar\": [\n  {\n   \"type\": \"webinar500_monthly\",\n   \"hosts\": 10,\n   \"service_effective_date\": \"2021-09-07T00:00:00Z\",\n   \"next_invoice_date\": \"2021-10-07T00:00:00Z\",\n   \"status\": \"active\"\n  }\n ],\n \"plan_zoom_events\": [\n  {\n   \"type\": \"zoomevents500_monthly\",\n   \"hosts\": 20,\n   \"service_effective_date\": \"2021-09-07T00:00:00Z\",\n   \"next_invoice_date\": \"2021-10-07T00:00:00Z\",\n   \"status\": \"active\"\n  }\n ],\n \"plan_recording\": \"cmr_monthly_commitment_40\",\n \"plan_recording_service_effective_date\": \"2021-09-07T00:00:00Z\",\n \"plan_recording_next_invoice_date\": \"2021-10-07T00:00:00Z\",\n \"plan_recording_status\": \"status\",\n \"plan_audio\": {\n  \"type\": \"tollfree_payongo\",\n  \"tollfree_countries\": \"US\",\n  \"premium_countries\": \"\",\n  \"callout_countries\": \"\",\n  \"ddi_numbers\": 0,\n  \"service_effective_date\": \"2021-09-07T00:00:00Z\",\n  \"next_invoice_date\": \"2021-10-07T00:00:00Z\",\n  \"status\": \"active\"\n },\n \"plan_phone\": {\n  \"plan_base\": {\n   \"type\": \"phone_payongo\",\n   \"callout_countries\": \"\",\n   \"service_effective_date\": \"2021-09-07T00:00:00Z\",\n   \"next_invoice_date\": \"2021-10-07T00:00:00Z\",\n   \"status\": \"active\"\n  },\n  \"plan_calling\": [\n   {\n    \"type\": \"phone_calling_usca_monthly_unlimited\",\n    \"hosts\": 5,\n    \"service_effective_date\": \"2021-09-07T00:00:00Z\",\n    \"next_invoice_date\": \"2021-10-07T00:00:00Z\",\n    \"status\": \"active\"\n   }\n  ],\n  \"plan_number\": [\n   {\n    \"type\": \"phone_number_usca_monthly\",\n    \"hosts\": 5,\n    \"service_effective_date\": \"2021-09-07T00:00:00Z\",\n    \"next_invoice_date\": \"2021-10-07T00:00:00Z\",\n    \"status\": \"active\"\n   }\n  ]\n }\n}"
    },
    {
      "name": "**HTTP Status Code:** `400`<br>\n**Error Code:** `2100`<br> \nThis sub account is on self pay mode.",
      "originalRequest": {
        "method": "GET",
        "header": [
          {
            "description": "Added as a part of security scheme: oauth2",
            "key": "Authorization",
            "value": "<token>"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/accounts/:accountId/plans",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "accounts",
            ":accountId",
            "plans"
          ],
          "variable": [
            {
              "key": "accountId",
              "value": "quis officia in reprehenderit",
              "description": "(Required) The account's ID."
            }
          ]
        }
      },
      "status": "Bad Request",
      "code": 400,
      "_postman_previewlanguage": "text",
      "header": [
        {
          "key": "Content-Type",
          "value": "text/plain"
        }
      ],
      "cookie": [
      ],
      "body": ""
    },
    {
      "name": "**HTTP Status Code:**`404`<br>\nAccount does not exist: {subAccountId}.",
      "originalRequest": {
        "method": "GET",
        "header": [
          {
            "description": "Added as a part of security scheme: oauth2",
            "key": "Authorization",
            "value": "<token>"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/accounts/:accountId/plans",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "accounts",
            ":accountId",
            "plans"
          ],
          "variable": [
            {
              "key": "accountId",
              "value": "quis officia in reprehenderit",
              "description": "(Required) The account's ID."
            }
          ]
        }
      },
      "status": "Not Found",
      "code": 404,
      "_postman_previewlanguage": "text",
      "header": [
        {
          "key": "Content-Type",
          "value": "text/plain"
        }
      ],
      "cookie": [
      ],
      "body": ""
    }
  ]
}