# Unable to create zoom cc queue

**URL:** <https://devforum.zoom.us/t/unable-to-create-zoom-cc-queue/131243>\
**Category:** Contact Center\
**Created:** [April 9, 2025, 5:36pm UTC](https://devforum.zoom.us/t/unable-to-create-zoom-cc-queue/131243 "2025-04-09T17:36:20Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![ereyes](https://avatars.discourse-cdn.com/v4/letter/e/e8c25b/32.png) [@ereyes](https://devforum.zoom.us/u/ereyes)\
**Post date:** [April 9, 2025, 5:36pm UTC](https://devforum.zoom.us/t/unable-to-create-zoom-cc-queue/131243/1 "2025-04-09T17:36:20Z")

</div>

getting the following error when attempting to create ZOOM CC queue -  
{‘code’: 300, ‘message’: ‘Request Body should be a valid JSON object.’}

Please note that the body is serialized in JSON, so I’m unclear why I’m receiving this response from ZOOM. Below are details of the request.  
url: ‘[https://api.zoom.us/v2/contact\_center/queues](https://api.zoom.us/v2/contact_center/queues)’  
body: {“queue\_name”: “test-queue”, “queue\_description”: “test-queue”, “channel”: “voice”}

---

<div class="post-metadata">

**Author:** ![rehema.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/rehema.zoom/32/40323_2.png) [@rehema.zoom](https://devforum.zoom.us/u/rehema.zoom)\
**Post date:** [April 10, 2025, 2:28pm UTC](https://devforum.zoom.us/t/unable-to-create-zoom-cc-queue/131243/2 "2025-04-10T14:28:56Z")

</div>

Hi @ereyes,

Could you share a screenshot of the code snippet of where you’re making the API call?

Thanks,  
Rehema

---

<div class="post-metadata">

**Author:** ![ereyes](https://avatars.discourse-cdn.com/v4/letter/e/e8c25b/32.png) [@ereyes](https://devforum.zoom.us/u/ereyes)\
**Post date:** [April 10, 2025, 2:48pm UTC](https://devforum.zoom.us/t/unable-to-create-zoom-cc-queue/131243/3 "2025-04-10T14:48:41Z")

</div>

Hi Rehema. Thanks for the quick response. Sure below is the method that is part of a class I wrote. I’m using a requests.Session() (class var self.S) object to make the API call.

## class var

S = Session()  
self.headers = {‘Authorization’: 'Bearer ’ + token, ‘Content-Type’: ‘application/json’}  
self.base\_url = ‘[https://api.zoom.us/v2/](https://api.zoom.us/v2/)’

## function/method

def add\_queue(  
self,  
queue\_name:str,  
queue\_description:str=None,  
channel:str=‘voice’  
):  
‘’’  
Add ZCC Queue.

```
    :param queue_name: Name of queue.
    :param queue_description: Description of queue.
    :param channel: Channel type to be used by queue. [voice,video,messaging,email] (Default: voice)

    :type queue_name: str
    :type description: str
    :type channel: str
    '''
    uri = self.base_url + f'contact_center/queues'
    params = {
        'queue_name': queue_name,
        'queue_description': queue_description,
        'channel': channel
    }
    r = self.S.post(uri, json=params, headers=self.headers)
    return r

```

---

<div class="post-metadata">

**Author:** ![rehema.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/rehema.zoom/32/40323_2.png) [@rehema.zoom](https://devforum.zoom.us/u/rehema.zoom)\
**Post date:** [April 14, 2025, 2:09pm UTC](https://devforum.zoom.us/t/unable-to-create-zoom-cc-queue/131243/4 "2025-04-14T14:09:32Z")

</div>

Thanks for sharing @ereyes. The issue might be that queue\_description is being set to None, which gets serialized to null in the JSON request body. Some Zoom APIs don’t accept null values for optional fields — they expect the field to be omitted entirely if it’s not being used.

To fix this, you can update your code to only include queue\_description in the request params if it has a value (example conditional below). That should prevent the API from rejecting the request. Please let me know if this resolves the issue.

```auto

    params = {
        'queue_name': queue_name,
        'channel': channel
    }

    if queue_description is not None:
        params['queue_description'] = queue_description

```

Thanks,  
Rehema

---

<div class="post-metadata">

**Author:** ![ereyes](https://avatars.discourse-cdn.com/v4/letter/e/e8c25b/32.png) [@ereyes](https://devforum.zoom.us/u/ereyes)\
**Post date:** [April 16, 2025, 1:25pm UTC](https://devforum.zoom.us/t/unable-to-create-zoom-cc-queue/131243/5 "2025-04-16T13:25:09Z")

</div>

Hi Rehema. Thanks for your response. Although the default value for ‘queue\_description’ is ‘None’, I did pass a string of “test-queue” as indicated in my initial post-  
`body: {“queue_name”: “test-queue”, “queue_description”: “test-queue”, “channel”: “voice”}`

Nonetheless I found the problem. Passing parameter “channel” into the body does not work. It seems that even though the documentation states “channel\_types” is deprecated, that is still the one that works. See here- \> [Contact Center APIs](https://developers.zoom.us/docs/api/contact-center/#tag/queues/POST/contact_center/queues)

---

<div class="post-metadata">

**Author:** ![rehema.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/rehema.zoom/32/40323_2.png) [@rehema.zoom](https://devforum.zoom.us/u/rehema.zoom)\
**Post date:** [April 17, 2025, 5:24pm UTC](https://devforum.zoom.us/t/unable-to-create-zoom-cc-queue/131243/6 "2025-04-17T17:24:56Z")

</div>

@ereyes,

Thanks for sharing this insight. I will make sure the documentation is updated. Glad everything is working now!

Thanks,  
Rehema
