{"openapi":"3.0.0","info":{"title":"Contact Center","description":"The Contact Center APIs allow developers to interface with [Contact Center](https://developers.zoom.us/docs/contact-center/) features programmatically.","termsOfService":"https://zoom.us/docs/en-us/zoom_api_license_and_tou.html","contact":{"name":"Zoom Developers","url":"https://developer.zoom.us/"},"version":"2"},"externalDocs":{"description":"Find out more about Swagger","url":"https://swagger.io"},"servers":[{"url":"https://api.zoom.us/v2"}],"paths":{"/contact_center/storage/locations":{"get":{"tags":["Account"],"summary":"List storage locations","description":"List all available storage locations for this account.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_account:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:account_storage_location:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"ListStorageLocations","responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \nReturn the list of storage locations.","content":{"application/json":{"schema":{"type":"object","properties":{"recording_storage_locations":{"type":"array","description":"A list of all available recording storage locations.","items":{"type":"object","properties":{"storage_location_code":{"type":"string","description":"The storage location's code.","example":"us"},"storage_location_name":{"type":"string","description":"The storage location's name.","example":"United States"}}}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1052` <br>\n Recording storage location is not configured for this account. Please contact your administrator. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_account:read:admin","contact_center:read:account_storage_location:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_account:read:admin"],"x-granular-scopes":["contact_center:read:account_storage_location:admin"]}}},"/contact_center/address_books":{"get":{"tags":["Address Books"],"summary":"List address books","description":"Return a list of all address books. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_contact:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:list_address_books:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"listAddressBooks","parameters":[{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token returns whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of items returned per page.","required":false,"schema":{"maximum":300,"type":"integer","format":"int32","example":30,"default":30}},{"name":"unit_id","in":"query","description":"The address book unit's ID.","required":true,"schema":{"type":"string","example":"zeYjXoDOS_eV1QmTpj63PQ"}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \n Address books list returned.","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"type":"string","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":300,"type":"integer","description":"The number of records returned within a single API call.","example":30,"default":30},"total_records":{"type":"integer","description":"The total number of all the records available across pages.","example":1},"address_books":{"type":"array","description":"Information about the address books.","items":{"type":"object","properties":{"address_book_id":{"type":"string","description":"The address book's ID.","example":"zeYjXoDOS_eV1QmTpj63PQ"},"address_book_name":{"type":"string","description":"The address book's name.","example":"Address Book"},"address_book_description":{"type":"string","description":"The address book's description.","example":"This is an address book."},"total_contacts":{"type":"integer","description":"The address book's total number of contacts.","example":30},"unit_id":{"type":"string","description":"The address book unit's ID.","example":"zeYjXoDOS_eV1QmTpj63PQ"},"unit_name":{"type":"string","description":"The address book unit's name.","example":"Unit"}}}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `1902` <br>\n The `unit_id` field cannot be an empty value. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1901` <br>\n Unit does not exist: $unitId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_contact:read:admin","contact_center:read:list_address_books:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_contact:read:admin"],"x-granular-scopes":["contact_center:read:list_address_books:admin"]}},"post":{"tags":["Address Books"],"summary":"Create an address book","description":"Create an [address book](https://support.zoom.us/hc/en-us/articles/4471544949389). An address book is a collection of consumer information like display names, phone numbers, and locations. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_contact:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:write:address_book:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"createAddressBook","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"unit_id":{"type":"string","description":"The address book's unit ID.","example":"zeYjXoDOS_eV1QmTpj63PQ"},"address_book_name":{"maxLength":100,"type":"string","description":"The address book's name.","example":"Address Book"},"address_book_description":{"maxLength":256,"type":"string","description":"The address book's description.","example":"This is an address book."}}}}}},"responses":{"201":{"description":"**HTTP Status Code:** `201`   \n \n Address book created.","content":{"application/json":{"schema":{"type":"object","properties":{"address_book_id":{"type":"string","description":"The address book's ID.","example":"zeYjXoDOS_eV1QmTpj63PQ"},"address_book_name":{"maxLength":100,"type":"string","description":"The address book's name.","example":"Address Book"},"address_book_description":{"maxLength":256,"type":"string","description":"The address book's description.","example":"This is an address book."},"unit_id":{"type":"string","description":"The address book unit's ID.","example":"zeYjXoDOS_eV1QmTpj63PQ"},"unit_name":{"type":"string","description":"The address book unit's name.","example":"Unit"}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `1902` <br>\n The `unit_id` field cannot be an empty value. <br>\n**Error Code:** `1903` <br>\n The `address_book_name` field cannot be an empty value. <br>\n**Error Code:** `2003` <br>\n The address book name is not supported. <br>\n**Error Code:** `2002` <br>\n Address book already exists. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1901` <br>\n Unit does not exist: $unitId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_contact:write:admin","contact_center:write:address_book:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_contact:write:admin"],"x-granular-scopes":["contact_center:write:address_book:admin"]}}},"/contact_center/address_books/contacts/{contactId}/custom_fields":{"get":{"tags":["Address Books"],"summary":"List an address book contact's custom fields","description":"List all custom fields on a contact.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_contact:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:address_book_custom_field:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"ListContactCustomFields","parameters":[{"name":"contactId","in":"path","description":"The contact's ID.","required":true,"schema":{"type":"string","example":"zeYjXoDOS_eV1QmTpj63PQ"}},{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of records returned in a single API call.","required":false,"schema":{"maximum":300,"type":"integer","format":"int32","example":30,"default":30}}],"responses":{"200":{"description":"HTTP Status Code: 200 Contact custom fields are returned.","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"maxLength":100,"type":"string","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":300,"type":"integer","description":"The number of records returned in a single API call.","example":30,"default":30},"custom_fields":{"type":"array","description":"Array of custom field list.","items":{"required":["custom_field_id","custom_field_name","data_type"],"type":"object","properties":{"custom_field_id":{"maxLength":36,"type":"string","description":"The custom field's ID.","example":"7381d210-360e-4fbd-86e4-33eb7109b084"},"custom_field_name":{"maxLength":30,"type":"string","description":"The custom field's name.","example":"Preferred Contact Method"},"data_type":{"type":"string","description":"The custom field's data type.\n\n* string\n* number\n* boolean\n* email\n* phone - E.164 format\n* percent\n* currency\n* dateTime - unix timestamp\n* pick_list","example":"pick_list","enum":["string","number","boolean","email","phone","percent","currency","dateTime","pick_list"]},"custom_field_value":{"maxLength":512,"type":"string","description":"The contact's custom field value.","example":"phone"},"outdated":{"type":"boolean","description":"Whether the `custom_field_value` is outdated.","example":false}}}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `2101` <br>\n Contact does not exist: $contactId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_contact:read:admin","contact_center:read:address_book_custom_field:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_contact:read:admin"],"x-granular-scopes":["contact_center:read:address_book_custom_field:admin"]}}},"/contact_center/address_books/custom_fields":{"get":{"tags":["Address Books"],"summary":"List an address book's custom fields","description":"Return all address book custom fields.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_contact:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:address_book_custom_field:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"Listaddressbookcustomfields","parameters":[{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token returns whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of items returned per page.","required":false,"schema":{"type":"integer","example":30}}],"responses":{"200":{"description":"The address book's custom fields list is returned.","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"type":"string","description":"Use the next page token to paginate through large result sets. A next page token returns whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"type":"number","description":"The number of records returned within a single API call.","example":30},"total_records":{"type":"number","description":"The total number of all the records available across pages.","example":1},"custom_fields":{"type":"array","description":"Information about the address book custom fields.","items":{"required":["custom_field_id","custom_field_name","data_type"],"type":"object","properties":{"custom_field_id":{"maxLength":36,"type":"string","description":"The custom field's ID.","example":"7381d210 Contact Method"},"custom_field_name":{"maxLength":30,"type":"string","description":"The custom field's name.","example":"Preferred Contact Method"},"custom_field_description":{"maxLength":200,"type":"string","description":"The custom field's description.","example":"Custom field for contact method"},"data_type":{"type":"string","description":"The custom field's data type.\n\nstring\nnumber\nboolean\nemail\nphone - E.164 format\npercent\ncurrency\ndateTime - unix timestamp\npick_list","example":"pick_list","enum":["string","number","boolean","email","phone","percent","currency","dateTime","pick_list"]},"default_value":{"maxLength":512,"type":"string","description":"The custom field's default value.","example":"phone"},"pick_list_values":{"maxItems":250,"type":"array","description":"Specify the list of supported values for the picklist. This is only valid when data_type is pick_list.","items":{"maxLength":512,"type":"string","example":"phone"}},"address_books":{"maxItems":50,"type":"array","description":"The address books associated with the custom field.","items":{"type":"object","properties":{"address_book_id":{"maxLength":36,"type":"string","description":"The address book's ID.","example":"X2e_jsLNRkCjI0sQg2kRQQ"},"address_book_name":{"maxLength":100,"type":"string","description":"The address book's name.","example":"Jill's address book"}}}},"use_as_routing_profile_parameter":{"type":"boolean","description":"Whether or not to use the custom fields in the consumer routing profile.","example":true},"use_as_external_url_parameter":{"type":"boolean","description":"Whether or not to use the `custom_field_name` in defining external URLs launched for each engagement.\nWhen set to `true`, the `custom_field_name` should not contain any spaces.","example":false},"show_in_transferred_calls":{"type":"boolean","description":"Whether or not to show the custom fields in calls transferred to Zoom Phone.","example":true},"show_in_inbound_notification":{"type":"boolean","description":"Whether or not to show the custom fields on the inbound engagement notification in the Zoom client.","example":true},"show_in_profile_tab":{"type":"boolean","description":"Whether or not to show the custom fields on the profile tab in the Zoom client.","example":false}}}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_contact:read:admin","contact_center:read:address_book_custom_field:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_contact:read:admin"],"x-granular-scopes":["contact_center:read:address_book_custom_field:admin"]}},"post":{"tags":["Address Books"],"summary":"Create an address book custom field","description":"Create an address book custom field.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_contact:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:write:address_book_custom_field:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"Createacustomfield","requestBody":{"content":{"application/json":{"schema":{"required":["custom_field_name","data_type"],"type":"object","properties":{"custom_field_name":{"maxLength":30,"type":"string","description":"The custom field's name.","example":"Preferred Contact Method"},"custom_field_description":{"maxLength":200,"type":"string","description":"The custom field's description.","example":"The custom field for contact method"},"data_type":{"type":"string","description":"The custom field's data type.\n\nstring\nnumber\nboolean\nemail\nphone - E.164 format\npercent\ncurrency\ndateTime - unix timestamp\npick_list","example":"pick_list","enum":["string","number","boolean","email","phone","percent","currency","dateTime","pick_list"]},"default_value":{"maxLength":512,"type":"string","description":"The custom field's default value.","example":"phone"},"pick_list_values":{"maxItems":250,"type":"array","description":"Specify the list of supported values for the picklist. This is only valid when `data_type` is `pick_list`.","items":{"maxLength":512,"type":"string","example":"phone"}},"address_book_ids":{"maxItems":50,"type":"array","description":"The address book IDs that should be associated with the custom field.","items":{"maxLength":36,"type":"string","description":"The address book's ID.","example":"X2e_jsLNRkCjI0sQg2kRQQ"}},"use_as_routing_profile_parameter":{"type":"boolean","description":"Controls whether or not to use the custom fields in the consumer routing profile.","example":true},"use_as_external_url_parameter":{"type":"boolean","description":"Controls whether or not to use the `custom_field_name` in defining external URLs launched for each engagement.\nWhen set to `true`, the `custom_field_name` should not contain any spaces.","example":false},"show_in_transferred_calls":{"type":"boolean","description":"Controls whether or not to show the custom fields in calls transferred to Zoom Phone.","example":true},"show_in_inbound_notification":{"type":"boolean","description":"Controls whether or not to show the custom fields on the inbound engagement notification in the Zoom client.","example":true},"show_in_profile_tab":{"type":"boolean","description":"Controls whether or not to show the custom fields on the profile tab in the Zoom client.","example":false}}}}}},"responses":{"201":{"description":"Custom field created.","content":{"application/json":{"schema":{"required":["custom_field_id","custom_field_name","data_type"],"type":"object","properties":{"custom_field_id":{"maxLength":36,"type":"string","description":"The custom field's ID.","example":"7381d210-360e-4fbd-86e4-33eb7109b084"},"custom_field_name":{"maxLength":30,"type":"string","description":"The custom field's name.","example":"Preferred Contact Method"},"custom_field_description":{"maxLength":200,"type":"string","description":"The custom field's description.","example":"The custom field for contact method"},"data_type":{"type":"string","description":"The custom field's data type.\n\nstring\nnumber\nboolean\nemail\nphone - E.164 format\npercent\ncurrency\ndateTime - unix timestamp\npick_list","example":"pick_list","enum":["string","number","boolean","email","phone","percent","currency","dateTime","pick_list"]},"default_value":{"maxLength":512,"type":"string","description":"The custom field's default value.","example":"phone"},"pick_list_values":{"maxItems":250,"type":"array","description":"Specify the list of supported values for the picklist. This is only valid when `data_type` is `pick_list`.","items":{"maxLength":512,"type":"string","example":"phone"}},"address_books":{"maxItems":50,"type":"array","description":"The address books associated with the custom field.","items":{"type":"object","properties":{"address_book_id":{"maxLength":36,"type":"string","description":"The address book's ID.","example":"X2e_jsLNRkCjI0sQg2kRQQ"},"address_book_name":{"maxLength":100,"type":"string","description":"The address book's name.","example":"Jill's address book"}}}},"use_as_routing_profile_parameter":{"type":"boolean","description":"Controls whether or not to use the custom fields in the consumer routing profile.","example":true},"use_as_external_url_parameter":{"type":"boolean","description":"Controls whether or not to use the `custom_field_name` in defining external URLs launched for each engagement.\nWhen set to true, the `custom_field_name` should not contain any spaces.","example":false},"show_in_transferred_calls":{"type":"boolean","description":"Controls whether or not to show the custom fields in calls transferred to Zoom Phone.","example":true},"show_in_inbound_notification":{"type":"boolean","description":"Controls whether or not to show the custom fields on the inbound engagement notification in the Zoom client.","example":true},"show_in_profile_tab":{"type":"boolean","description":"Controls whether or not to show the custom fields on the profile tab in the Zoom client.","example":false}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `300` <br>\n Invalid field. <br>\n**Error Code:** `2107` <br>\n A custom field with this name already exists: $custom_field_name <br>\n**Error Code:** `2108` <br>\n The data type provided for the custom field is not supported. <br>\n**Error Code:** `2109` <br>\n The default value format does not match the data type. <br>\n**Error Code:** `2110` <br>\n Maximum limit of 4096 custom fields has been exceeded. <br>\n**Error Code:** `2111` <br>\n Custom field name cannot contain spaces when use_as_external_url_parameter is true. <br>\n**Error Code:** `2115` <br>\n Invalid default value. The provided value is not in the list of supported picklist values. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `2006` <br>\n Address books does not exist: $addressBookIds. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_contact:write:admin","contact_center:write:address_book_custom_field:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_contact:write:admin"],"x-granular-scopes":["contact_center:write:address_book_custom_field:admin"]}}},"/contact_center/address_books/custom_fields/{customFieldId}":{"get":{"tags":["Address Books"],"summary":"Get an address book's custom field","description":"Get information about an address book's custom field.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_contact:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:address_book_custom_field:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"Getaaddressbookcustomfield","parameters":[{"name":"customFieldId","in":"path","description":"The custom field's ID.","required":true,"schema":{"maxLength":36,"type":"string","example":"7381d210-360e-4fbd-86e4-33eb7109b084"}}],"responses":{"200":{"description":"The address book's custom field is returned.","content":{"application/json":{"schema":{"required":["custom_field_id","custom_field_name","data_type"],"type":"object","properties":{"custom_field_id":{"maxLength":36,"type":"string","description":"The custom field's ID.","example":"7381d210-360e-4fbd-86e4-33eb7109b084"},"custom_field_name":{"maxLength":30,"type":"string","description":"The custom field's name.","example":"Preferred Contact Method"},"custom_field_description":{"maxLength":200,"type":"string","description":"The custom field's description.","example":"Custom field for contact method"},"data_type":{"type":"string","description":"The custom field's data type.\n\nstring\nnumber\nboolean\nemail\nphone - E.164 format\npercent\ncurrency\ndateTime - unix timestamp\npick_list","example":"pick_list","enum":["string","number","boolean","email","phone","percent","currency","dateTime","pick_list"]},"default_value":{"maxLength":512,"type":"string","description":"The custom field's default value.","example":"phone"},"pick_list_values":{"maxItems":250,"type":"array","description":"Specify the list of supported values for the picklist. This is only valid when data_type is pick_list.","items":{"maxLength":512,"type":"string","example":"phone"}},"address_books":{"maxItems":50,"type":"array","description":"The address books associated with the custom field.","items":{"type":"object","properties":{"address_book_id":{"maxLength":36,"type":"string","description":"The address book's ID.","example":"X2e_jsLNRkCjI0sQg2kRQQ"},"address_book_name":{"maxLength":100,"type":"string","description":"The address book's name.","example":"Jill's address book"}}}},"use_as_routing_profile_parameter":{"type":"boolean","description":"Whether or not to use the custom fields in the consumer routing profile.","example":true},"use_as_external_url_parameter":{"type":"boolean","description":"Whether or not to use the `custom_field_name` in defining external URLs launched for each engagement.\nWhen set to `true`, the `custom_field_name` should not contain any spaces.","example":false},"show_in_transferred_calls":{"type":"boolean","description":"Whether or not to show the custom fields in calls transferred to Zoom Phone.","example":true},"show_in_inbound_notification":{"type":"boolean","description":"Whether or not to show the custom fields on the inbound engagement notification in the Zoom client.","example":true},"show_in_profile_tab":{"type":"boolean","description":"Whether or not to show the custom fields on the profile tab in the Zoom client.","example":false}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `2112` <br>\n Custom field does not exist: $customFieldId <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_contact:read:admin","contact_center:read:address_book_custom_field:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_contact:read:admin"],"x-granular-scopes":["contact_center:read:address_book_custom_field:admin"]}},"delete":{"tags":["Address Books"],"summary":"Delete an address book custom field","description":"Delete an address book custom field.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_contact:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:delete:address_book_custom_field:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"Deleteancustomfield","parameters":[{"name":"customFieldId","in":"path","description":"The custom field's ID.","required":true,"schema":{"maxLength":36,"type":"string","example":"7381d210-360e-4fbd-86e4-33eb7109b084"}}],"responses":{"204":{"description":"Custom field deleted."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `2112` <br>\n Custom field does not exist: $customFieldId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_contact:write:admin","contact_center:delete:address_book_custom_field:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_contact:write:admin"],"x-granular-scopes":["contact_center:delete:address_book_custom_field:admin"]}},"patch":{"tags":["Address Books"],"summary":"Update an address book custom field","description":"Update an address book custom field.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_contact:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:update:address_book_custom_field:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"Updateacustomfield","parameters":[{"name":"customFieldId","in":"path","description":"The custom field's ID.","required":true,"schema":{"maxLength":36,"type":"string","example":"7381d210-360e-4fbd-86e4-33eb7109b084"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["custom_field_name","data_type"],"type":"object","properties":{"custom_field_name":{"maxLength":30,"type":"string","description":"The custom field's name.","example":"Preferred Contact Method"},"custom_field_description":{"maxLength":200,"type":"string","description":"The custom field's description.","example":"The custom field for contact method"},"data_type":{"type":"string","description":"The custom field's data type.\n\nstring\nnumber\nboolean\nemail\nphone - E.164 format\npercent\ncurrency\ndateTime - unix timestamp\npick_list","example":"pick_list","enum":["string","number","boolean","email","phone","percent","currency","dateTime","pick_list"]},"default_value":{"maxLength":512,"type":"string","description":"The custom field's default value.","example":"phone"},"pick_list_values":{"maxItems":250,"type":"array","description":"Specify the list of supported values for the picklist. This is only valid when data_type is pick_list.","items":{"maxLength":512,"type":"string","example":"phone"}},"address_book_ids":{"maxItems":50,"type":"array","description":"The address book IDs that should be associated with the custom field.","items":{"maxLength":36,"type":"string","description":"The address book's ID.","example":"X2e_jsLNRkCjI0sQg2kRQQ"}},"use_as_routing_profile_parameter":{"type":"boolean","description":"Whether or not to use the custom fields in the consumer routing profile.","example":true},"use_as_external_url_parameter":{"type":"boolean","description":"Whether or not to use the `custom_field_name` in defining external URLs launched for each engagement.\nWhen set to true, the `custom_field_name` should not contain any spaces.","example":false},"show_in_transferred_calls":{"type":"boolean","description":"Whether or not to show the custom fields in calls transferred to Aoom Pnone.","example":true},"show_in_inbound_notification":{"type":"boolean","description":"Whether or not to show the custom fields on the inbound engagement notification in the Zoom client.","example":true},"show_in_profile_tab":{"type":"boolean","description":"Whether or not to show the custom fields on the profile tab in the Zoom client.","example":false}}}}}},"responses":{"204":{"description":"Custom field updated."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `300` <br>\n Invalid field. <br>\n**Error Code:** `2107` <br>\n A custom field with this name already exists: $custom_field_name. <br>\n**Error Code:** `2108` <br>\n The data type provided for the custom field is not supported. <br>\n**Error Code:** `2109` <br>\n The default value format does not match the data type. <br>\n**Error Code:** `2111` <br>\n Custom field name cannot contain spaces when `use_as_external_url_parameter` is `true`. <br>\n**Error Code:** `2115` <br>\n Invalid default value. The provided value is not in the list of supported picklist values. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `2112` <br>\n Custom field does not exist: $customFieldId. <br>\n**Error Code:** `2006` <br>\n Address books does not exist: $addressBookIds. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_contact:write:admin","contact_center:update:address_book_custom_field:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_contact:write:admin"],"x-granular-scopes":["contact_center:update:address_book_custom_field:admin"]}}},"/contact_center/address_books/units":{"get":{"tags":["Address Books"],"summary":"List address book units","description":"Return all address book units. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_contact:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:list_address_book_units:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"listUnits","parameters":[{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token returns whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of items returned per page.","required":false,"schema":{"maximum":300,"type":"integer","format":"int32","example":30,"default":30}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \n Units list returned.","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"type":"string","description":"The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":300,"type":"integer","description":"The number of records returned within a single API call.","example":30,"default":30},"total_records":{"type":"integer","description":"The total number of all the records available across pages.","example":1},"units":{"type":"array","description":"Information about the address book units.","items":{"type":"object","properties":{"unit_id":{"type":"string","description":"The address book unit's ID.","example":"zeYjXoDOS_eV1QmTpj63PQ"},"unit_name":{"type":"string","description":"The address book unit's name.","example":"Example"},"unit_description":{"type":"string","description":"The address book unit's description.","example":"This is a unit description."}}}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_contact:read:admin","contact_center:read:list_address_book_units:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_contact:read:admin"],"x-granular-scopes":["contact_center:read:list_address_book_units:admin"]}},"post":{"tags":["Address Books"],"summary":"Create an address book unit","description":"Create an [address book unit](https://support.zoom.us/hc/en-us/articles/4471495629837-Managing-address-book-units). Admins can use address book units to organize several [address books](https://support.zoom.us/hc/en-us/articles/4471544949389#:~:text=An%20address%20book%20is%20a%20collection%20of%20consumer%20information%20like%20display%20names%2C%20phone%20numbers%2C%20and%20locations.). \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_contact:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:write:address_book_unit:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"createUnit","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"unit_name":{"maxLength":255,"type":"string","description":"The address book unit's name.","example":"Example"},"unit_description":{"maxLength":256,"type":"string","description":"The address book unit's description.","example":"This is a unit."}}}}}},"responses":{"201":{"description":"**HTTP Status Code:** `201`   \n \n Unit created.","content":{"application/json":{"schema":{"type":"object","properties":{"unit_id":{"type":"string","description":"The address book unit's ID.","example":"zeYjXoDOS_eV1QmTpj63PQ"},"unit_name":{"maxLength":255,"type":"string","description":"The address book unit's name.","example":"Example"},"unit_description":{"maxLength":256,"type":"string","description":"The address book unit's description.","example":"This is a unit."}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `1904` <br>\n Unit already exists. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_contact:write:admin","contact_center:write:address_book_unit:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_contact:write:admin"],"x-granular-scopes":["contact_center:write:address_book_unit:admin"]}}},"/contact_center/address_books/units/{unitId}":{"get":{"tags":["Address Books"],"summary":"Get an address book unit","description":"Returns information about an address book unit. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_contact:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:address_book_unit:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"getUnit","parameters":[{"name":"unitId","in":"path","description":"The address book unit's ID.","required":true,"schema":{"type":"string","example":"zeYjXoDOS_eV1QmTpj63PQ"}},{"name":"unit_identifier_type","in":"query","description":"How the path parameter is interpreted. `id` treats it as a system-generated unique identifier. `name` treats it as the resource name.\nWhen using `name`, the resource name must be URL-encoded per RFC 3986.","required":false,"schema":{"type":"string","example":"id","default":"id","enum":["id","name"]}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \n Unit returned.","content":{"application/json":{"schema":{"type":"object","properties":{"unit_id":{"type":"string","description":"The address book unit's ID.","example":"zeYjXoDOS_eV1QmTpj63PQ"},"unit_name":{"type":"string","description":"The address book unit's name.","example":"Example"},"unit_description":{"type":"string","description":"The address book unit's description.","example":"This is a unit description."}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `2008` <br>\n More than one matching address book unit found. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1901` <br>\n Unit does not exist: $unitId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_contact:read:admin","contact_center:read:address_book_unit:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_contact:read:admin"],"x-granular-scopes":["contact_center:read:address_book_unit:admin"]}},"delete":{"tags":["Address Books"],"summary":"Delete an address book unit","description":"Delete an address book unit. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_contact:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:delete:address_book_unit:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"deleteUnit","parameters":[{"name":"unitId","in":"path","description":"The address book unit's ID.","required":true,"schema":{"type":"string","example":"zeYjXoDOS_eV1QmTpj63PQ"}}],"responses":{"204":{"description":"**HTTP Status Code:** `204`   \n \n Unit deleted."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `1905` <br>\n Salesforce integration unit cannot be updated and deleted. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1901` <br>\n Unit does not exist: $unitId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_contact:write:admin","contact_center:delete:address_book_unit:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_contact:write:admin"],"x-granular-scopes":["contact_center:delete:address_book_unit:admin"]}},"patch":{"tags":["Address Books"],"summary":"Update an address book unit","description":"Update an address book unit. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_contact:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:update:address_book_unit:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"updateUnit","parameters":[{"name":"unitId","in":"path","description":"The address book unit's ID.","required":true,"schema":{"type":"string","example":"zeYjXoDOS_eV1QmTpj63PQ"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"unit_name":{"maxLength":255,"type":"string","description":"The address book unit's name.","example":"example"},"unit_description":{"maxLength":256,"type":"string","description":"The address book unit's description.","example":"This is a Demo Unit."}}}}}},"responses":{"204":{"description":"**HTTP Status Code:** `204`   \n \n Unit updated."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `1905` <br>\n Salesforce integration unit cannot be updated or deleted. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1901` <br>\n Unit does not exist: $unitId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_contact:write:admin","contact_center:update:address_book_unit:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_contact:write:admin"],"x-granular-scopes":["contact_center:update:address_book_unit:admin"]}}},"/contact_center/address_books/{addressBookId}":{"get":{"tags":["Address Books"],"summary":"Get an address book","description":"Returns information about an address book. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_contact:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:address_book:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"getAddressBook","parameters":[{"name":"addressBookId","in":"path","description":"The address book's ID.","required":true,"schema":{"type":"string","example":"zeYjXoDOS_eV1QmTpj63PQ"}},{"name":"address_book_identifier_type","in":"query","description":"How the path parameter is interpreted. `id` treats it as a system-generated unique identifier. `name` treats it as the resource name.\nWhen using `name`, the resource name must be URL-encoded per RFC 3986.","required":false,"schema":{"type":"string","example":"id","default":"id","enum":["id","name"]}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \n Address book list returned.","content":{"application/json":{"schema":{"type":"object","properties":{"address_book_id":{"type":"string","description":"The address book's ID.","example":"zeYjXoDOS_eV1QmTpj63PQ"},"address_book_name":{"type":"string","description":"The address book's name.","example":"Address Book"},"address_book_description":{"type":"string","description":"The address book's description.","example":"This is an address book."},"total_contacts":{"type":"integer","description":"The address book's total number of contacts.","example":30},"unit_id":{"type":"string","description":"The address book unit's ID.","example":"zeYjXoDOS_eV1QmTpj63PQ"},"unit_name":{"type":"string","description":"The address book unit's name.","example":"Unit"},"queue_ids":{"maxItems":50,"type":"array","description":"The queue IDs that are accessible to an address book.","items":{"maxLength":36,"type":"string","description":"The Contact Center queue's ID or task queue id.","example":"beYjXoDOS_eV1QmTpj63PQ"}},"team_ids":{"maxItems":50,"type":"array","description":"The team IDs to that are accessible to an address book.","items":{"maxLength":36,"type":"string","description":"The team's ID.","example":"neYjXoDOS_tV1QmTpj43PQ"}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `2007` <br>\n More than one matching address book found. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `2001` <br>\n Address book does not exist: $addressBookId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_contact:read:admin","contact_center:read:address_book:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_contact:read:admin"],"x-granular-scopes":["contact_center:read:address_book:admin"]}},"delete":{"tags":["Address Books"],"summary":"Delete an address book","description":"Delete an address book. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_contact:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:delete:address_book:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"deleteAddressBook","parameters":[{"name":"addressBookId","in":"path","description":"The address book's ID.","required":true,"schema":{"type":"string","example":"zeYjXoDOS_eV1QmTpj63PQ"}}],"responses":{"204":{"description":"**HTTP Status Code:** `204`   \n \n Address Book deleted."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1201` <br>\n Address book does not exist: $addressBookId <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_contact:write:admin","contact_center:delete:address_book:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_contact:write:admin"],"x-granular-scopes":["contact_center:delete:address_book:admin"]}},"patch":{"tags":["Address Books"],"summary":"Update an address book","description":"Update an address book's information. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_contact:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:update:address_book:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"updateAddressBook","parameters":[{"name":"addressBookId","in":"path","description":"The address book's ID.","required":true,"schema":{"type":"string","example":"zeYjXoDOS_eV1QmTpj63PQ"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"address_book_name":{"maxLength":100,"type":"string","description":"The address book's name.","example":"example"},"address_book_description":{"maxLength":256,"type":"string","description":"The address book's description.","example":"This is a Demo Address Book."}}}}}},"responses":{"204":{"description":"**HTTP Status Code:** `204`   \n \n Address book updated."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `2004` <br>\n Salesforce integration address book cannot be updated or deleted. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `2001` <br>\n Address book does not exist: $addressBookId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_contact:write:admin","contact_center:update:address_book:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_contact:write:admin"],"x-granular-scopes":["contact_center:update:address_book:admin"]}}},"/contact_center/address_books/{addressBookId}/contacts":{"get":{"tags":["Address Books"],"summary":"List address book contacts","description":"When the `emails` or `phone_numbers` query parameter is included, the address book returns a maximum of 10,000 contacts.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_contact:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:list_address_book_contacts:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"listContacts","parameters":[{"name":"addressBookId","in":"path","description":"The address book's ID.","required":true,"schema":{"type":"string","example":"zeYjXoDOS_eV1QmTpj63PQ"}},{"name":"address_book_identifier_type","in":"query","description":"How the path parameter is interpreted. `id` treats it as a system-generated unique identifier. `name` treats it as the resource name.\nWhen using `name`, the resource name must be URL-encoded per RFC 3986.","required":false,"schema":{"type":"string","example":"id","default":"id","enum":["id","name"]}},{"name":"emails","in":"query","description":"The contact's email address. Multiple emails can be searched. Only an exact match is supported. Accomodates a maximum of 10 emails.","required":false,"schema":{"maxItems":10,"type":"array","example":["user@example.com"],"items":{"type":"string"}}},{"name":"phone_numbers","in":"query","description":"The contact's phone number. Multiple phone numbers can be searched, Only an exact match is supported. Accomodates a maximum of 10 phone numbers.","required":false,"schema":{"maxItems":10,"type":"array","example":["+12048002447"],"items":{"type":"string"}}},{"name":"page_size","in":"query","description":"The number of records returned in a single API call.","required":false,"schema":{"maximum":300,"type":"integer","format":"int32","example":30,"default":30}},{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \n Contacts list returned.","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"maxLength":100,"type":"string","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":300,"type":"integer","description":"The number of records returned in a single API call.","example":30,"default":30},"total_records":{"minimum":0,"type":"integer","description":"The total number of all records available across pages.","example":10},"contacts":{"type":"array","description":"Information about the contacts.","items":{"required":["contact_id","display_name","phones"],"type":"object","properties":{"contact_id":{"type":"string","description":"The contact's ID.","example":"zeYjXoDOS_eV1QmTpj63PQ"},"display_name":{"maxLength":125,"type":"string","description":"The contact's name.","example":"Jill Chill"},"first_name":{"maxLength":36,"type":"string","description":"The contact's first name.","example":"Jill"},"last_name":{"maxLength":36,"type":"string","description":"The contact's last name.","example":"Chill"},"phone_numbers":{"maxItems":5,"type":"array","description":"The contact's phone numbers.","deprecated":true,"items":{"type":"string","example":"+12048002447"}},"phones":{"maxItems":5,"type":"array","description":"The contact's phone numbers.","items":{"type":"object","properties":{"phone_number":{"type":"string","description":"The phone number.","example":"+12048002447"},"phone_type":{"type":"string","description":"The phone number type.","example":"main","enum":["main","work","home","mobile","other"]}},"description":"Supports up to 5 phone numbers. Only one main phone number is supported."}},"emails":{"maxItems":4,"type":"array","description":"The contact's email addresses.","items":{"type":"string","format":"email","example":"user@example.com"}},"location":{"maxLength":256,"type":"string","description":"The contact's location.","example":"San Jose"},"timezone":{"maxLength":100,"type":"string","description":"The contact's time zone. Refer to this list for supported [timezones](/docs/api/references/abbreviations/#timezones).","example":"America/Los_Angeles"},"account_number":{"maxLength":256,"type":"string","description":"The contact's account number.","example":"112233445566"},"company":{"maxLength":256,"type":"string","description":"The contact's company.","example":"Example"},"role":{"maxLength":256,"type":"string","description":"The contact's role.","example":"Agent"},"address_book_id":{"type":"string","description":"The address book's ID.","example":"zeYjXoDOS_eV1QmTpj63PQ"},"address_book_name":{"type":"string","description":"The address book's name.","example":"Address Book"},"variables":{"type":"array","description":"Information about address book variables.","items":{"type":"object","properties":{"variable_group_id":{"type":"string","description":"The variable group's ID.","example":"afececcd-0c9f-48de-9d19-0c84e8bdfeca"},"variable_id":{"type":"string","description":"The variable's ID.","example":"zeYjXoDOS_eV1QmTpj63PQ"},"variable_name":{"type":"string","description":"The variable's name.","example":"variable demo name"},"data_type":{"type":"string","description":"The variable's data type.","example":"string","enum":["string","boolean"]},"variable_value":{"type":"string","description":"The variable's value.","example":"variable value demo"}}}},"consumer_ids":{"maxItems":10,"type":"array","description":"The consumer IDs associated with the contact.","items":{"type":"string","description":"The consumer's unique ID.","example":"cvC2JxWkToWZsJUenBvNnw"}},"custom_fields_url":{"type":"string","description":"The URL to retrieve the contact's custom field list, if the contact's custom fields exist. \r\nFor security purposes, you must provide an OAuth access token in the authorization header to retrieve the contact's custom field list using this URL. Example:\r\ncurl --request GET \r\n --url {custom_fields_url} \r\n --header 'authorization: Bearer {access_token}' \r\n --header 'content-type: application/json'\r\n","example":"https://api.zoom.us/v2/contact_center/address_books/custom_fields/contacts/zeYjXoDOS_eV1QmTpj63PQ"}}}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `300` <br>\n Number of phone numbers exceeds max limit of 10 <br>\n**Error Code:** `300` <br>\n Number of emails exceeds max limit of 10 <br>\n**Error Code:** `300` <br>\n Invalid phone number <br>\n**Error Code:** `300` <br>\n Invalid email <br>\n**Error Code:** `2007` <br>\n More than one matching address book found. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `2001` <br>\n Address book does not exist: $addressBookId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_contact:read:admin","contact_center:read:list_address_book_contacts:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_contact:read:admin"],"x-granular-scopes":["contact_center:read:list_address_book_contacts:admin"]}},"post":{"tags":["Address Books"],"summary":"Create an address book contact","description":"Create a new contact in an [address book](https://support.zoom.us/hc/en-us/articles/4471544949389). During an active engagement, the Zoom desktop client displays information from the address book if that customer is a contact in the address book. If the consumer is not in the address book, agents can add a new contact and choose which address book the contact belongs to.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_contact:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:write:address_book_contact:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"createContact","parameters":[{"name":"addressBookId","in":"path","description":"The address book's ID.","required":true,"schema":{"type":"string","example":"jweQeTYDOS_eV1QmTpj63PQ"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["display_name","phone_numbers","phones"],"type":"object","properties":{"display_name":{"type":"string","description":"The contact's display name.","example":"Jane Doe"},"first_name":{"type":"string","description":"The contact's first name.","example":"Jane"},"last_name":{"type":"string","description":"The contact's last name.","example":"Doe"},"phone_numbers":{"maxItems":5,"type":"array","description":"The contact's phone numbers. You must provide this field and/or the `email` field when you create a contact.","deprecated":true,"items":{"type":"string","example":"+12048002447"}},"phones":{"maxItems":5,"type":"array","description":"The contact's phone numbers.","items":{"type":"object","properties":{"phone_number":{"type":"string","description":"The phone number.","example":"+12048002447"},"phone_type":{"type":"string","description":"The phone number type.","example":"main","enum":["main","work","home","mobile","other"]}},"description":"Supports up to 5 phone numbers. Only one main phone number is supported."}},"emails":{"maxItems":4,"type":"array","description":"The contact's email addresses. You must provide either this field or the `phone_numbers` field, or both, when you create a contact.","items":{"type":"string","format":"email","example":"user@example.com"}},"location":{"type":"string","description":"The contact's location.","example":"San Jose"},"timezone":{"maxLength":100,"type":"string","description":"The contact's time zone. Refer to this list for supported [timezones](/docs/api/references/abbreviations/#timezones).","example":"America/Los_Angeles"},"account_number":{"type":"string","description":"The contact's account number.","example":"112233445566"},"company":{"type":"string","description":"The contact's company.","example":"Example"},"role":{"type":"string","description":"The contact's role.","example":"Agent"},"variables":{"maxItems":200,"type":"array","description":"Information about address book variables.","items":{"type":"object","properties":{"variable_id":{"type":"string","description":"The variable's ID.","example":"zeYjXoDOS_eV1QmTpj63PQ"},"variable_value":{"type":"string","description":"The variable's value.","example":"variable value demo"}}}},"consumer_ids":{"maxItems":10,"type":"array","description":"The consumer IDs to be associated with the contact.","items":{"type":"string","description":"The consumer's unique ID.","example":"cvC2JxWkToWZsJUenBvNnw"}},"custom_fields":{"maxItems":100,"type":"array","description":"Information about address book's custom fields.","items":{"required":["custom_field_id"],"type":"object","properties":{"custom_field_id":{"maxLength":36,"type":"string","description":"The custom field's ID.","example":"7381d210-360e-4fbd-86e4-33eb7109b084"},"custom_field_value":{"maxLength":512,"type":"string","description":"The custom field's value.","example":"phone"}}}}}}}}},"responses":{"201":{"description":"**HTTP Status Code:** `201`   \n \n Contact created.","content":{"application/json":{"schema":{"required":["display_name","phone_numbers","phones"],"type":"object","properties":{"contact_id":{"type":"string","description":"The contact's ID.","example":"zeYjXoDOS_eV1QmTpj63PQ"},"display_name":{"type":"string","description":"The contact's display name.","example":"Jane Doe"},"first_name":{"type":"string","description":"The contact's first name.","example":"Jane"},"last_name":{"type":"string","description":"The contact's last name.","example":"Doe"},"phone_numbers":{"maxItems":5,"type":"array","description":"The contact's phone numbers.","deprecated":true,"items":{"type":"string","example":"+12048002447"}},"phones":{"maxItems":5,"type":"array","description":"The contact's phone numbers.","items":{"type":"object","properties":{"phone_number":{"type":"string","description":"The phone number.","example":"+12048002447"},"phone_type":{"type":"string","description":"The phone number type.","example":"main","enum":["main","work","home","mobile","other"]}},"description":"Supports up to 5 phone numbers. Only one main phone number is supported."}},"emails":{"maxItems":4,"type":"array","description":"The contact's email addresses.","items":{"type":"string","format":"email","example":"user@example.com"}},"location":{"type":"string","description":"The contact's location.","example":"San Jose"},"timezone":{"maxLength":100,"type":"string","description":"The contact's time zone. Refer to this list for supported [timezones](/docs/api/references/abbreviations/#timezones).","example":"America/Los_Angeles"},"account_number":{"type":"string","description":"The contact's account number.","example":"112233445566"},"company":{"type":"string","description":"The contact's company.","example":"Example"},"role":{"type":"string","description":"The contact's role.","example":"Agent"},"address_book_id":{"type":"string","description":"The address book's ID.","example":"jweQeTYDOS_eV1QmTpj63PQ"},"address_book_name":{"type":"string","description":"The address book's name.","example":"Address Book"},"variables":{"maxItems":200,"type":"array","description":"Information about address book variables.","items":{"type":"object","properties":{"variable_group_id":{"type":"string","description":"The variable group's ID.","example":"afececcd-0c9f-48de-9d19-0c84e8bdfeca"},"variable_id":{"type":"string","description":"The variable's ID.","example":"zeYjXoDOS_eV1QmTpj63PQ"},"variable_name":{"type":"string","description":"The variable's name.","example":"variable demo name"},"data_type":{"type":"string","description":"The variable's data type.","example":"string","enum":["string","boolean"]},"variable_value":{"type":"string","description":"The variable's value.","example":"variable value demo"}}}},"consumer_ids":{"maxItems":10,"type":"array","description":"The consumer IDs associated with the contact.","items":{"type":"string","description":"The consumer's unique ID.","example":"cvC2JxWkToWZsJUenBvNnw"}},"custom_fields_url":{"type":"string","description":"The URL to retrieve the contact's custom field list, if the contact's custom fields exist. \r\nFor security purposes, you must provide an OAuth access token in the authorization header to retrieve the contact's custom field list using this URL. Example:\r\ncurl --request GET \r\n --url {custom_fields_url} \r\n --header 'authorization: Bearer {access_token}' \r\n --header 'content-type: application/json'\r\n","example":"https://api.zoom.us/v2/contact_center/address_books/custom_fields/contacts/zeYjXoDOS_eV1QmTpj63PQ"}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `2102` <br>\n At least one of email's or phone's fields should be not empty. <br>\n**Error Code:** `2104` <br>\n The `display_name` field cannot be an empty value. <br>\n**Error Code:** `2005` <br>\n Salesforce integration contact can not be added, updated, or deleted. <br>\n**Error Code:** `2106` <br>\n Invalid consumer IDs: $consumerIds. <br>\n**Error Code:** `2113` <br>\n Contact custom field value `custom_field_value` format does not match the data type. <br>\n**Error Code:** `2114` <br>\n Custom field is invalid: $customFieldId <br>\n**Error Code:** `2116` <br>\n Invalid custom field value `custom_field_value`. The provided value is not in the list of supported picklist values. <br>\n**Error Code:** `2117` <br>\n Invalid time zone: $timezone. <br>\n**Error Code:** `300` <br>\n Invalid phone type. <br>\n**Error Code:** `300` <br>\n Only one main phone number is allowed. <br>\n**Error Code:** `300` <br>\n The maximum number of phones allowed is 5. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n**Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `2001` <br>\n Address book does not exist: $addressBookId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rest/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_contact:write:admin","contact_center:write:address_book_contact:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_contact:write:admin"],"x-granular-scopes":["contact_center:write:address_book_contact:admin"]}}},"/contact_center/address_books/{addressBookId}/contacts/batch":{"post":{"tags":["Address Books"],"summary":"Batch create address book contacts","description":"Batch create new contacts in an address book (https://support.zoom.us/hc/en-us/articles/4471544949389). Supports up to 10 contacts per request. Valid contacts are created while invalid contacts are rejected with detailed error messages. Returns 200 for all valid or partial success with invalid contact details, or 400 if all contacts are invalid.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_contact:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:write:address_book_contact:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"batchCreateContact","parameters":[{"name":"addressBookId","in":"path","description":"The address book's ID.","required":true,"schema":{"type":"string","example":"jweQeTYDOS_eV1QmTpj63PQ"}}],"requestBody":{"description":"Contact Center Open API: Public Batch Create Address Book Contacts API","content":{"application/json":{"schema":{"type":"object","properties":{"contacts":{"maxItems":10,"minItems":1,"type":"array","description":"Information about the contacts to create.","items":{"required":["display_name"],"type":"object","properties":{"display_name":{"maxLength":125,"minLength":1,"type":"string","description":"The contact's display name.","example":"John Doe"},"first_name":{"maxLength":36,"type":"string","description":"The contact's first name.","example":"John"},"last_name":{"maxLength":36,"type":"string","description":"The contact's last name.","example":"Doe"},"phones":{"maxItems":5,"type":"array","description":"The contact's phone numbers.","items":{"required":["phone_number"],"type":"object","properties":{"phone_number":{"type":"string","description":"The phone number in E.164 format.","example":"+12048002447"},"phone_type":{"type":"string","description":"The type of phone number.","example":"main","enum":["main","work","home","mobile","other"]}},"description":"The contact can have up to five phone numbers. Only one phone number can have the `main` type."}},"emails":{"maximum":4,"maxItems":4,"type":"array","description":"The contact's email addresses.","items":{"type":"string","format":"email","example":"john.doe@example.com"}},"location":{"maximum":4,"maxLength":256,"type":"string","description":"The contact's location.","example":"New York"},"timezone":{"maxLength":100,"type":"string","description":"The contact's time zone.","example":"America/Los_Angeles"},"account_number":{"maxLength":256,"type":"string","description":"The contact's account number.","example":"112233445566"},"company":{"maxLength":256,"type":"string","description":"The contact's company.","example":"Acme Corp"},"role":{"maxLength":256,"type":"string","description":"The contact's role.","example":"Agent"},"consumer_ids":{"maxItems":10,"type":"array","description":"The list of consumer IDs to associate with the contact.","items":{"type":"string","description":"The consumer's unique ID.","example":"cvC2JxWkToWZsJUenBvNnw"}},"custom_fields":{"type":"array","description":"The custom field values for this contact.","items":{"required":["custom_field_id"],"type":"object","properties":{"custom_field_id":{"maxLength":36,"minLength":1,"type":"string","description":"The custom field's ID.","example":"7381d210-360e-4fbd-86e4-33eb7109b084"},"custom_field_value":{"maxLength":512,"type":"string","description":"The custom field's value.","example":"priority"}}}},"source_id":{"type":"string","description":"The contact's source ID. This field is required for CRM address books.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"source_name":{"type":"string","description":"The contact's source name.","example":"salesforce"}}}}}}}}},"responses":{"200":{"description":"**HTTP Status Code:** `200`\n\nContacts created. When some contacts fail validation, the response includes both `contacts` (successful) and `invalid_contacts` (failed with error details).","content":{"application/json":{"schema":{"type":"object","properties":{"contacts":{"maxItems":10,"type":"array","description":"Information about the created contacts.","items":{"type":"object","properties":{"contact_id":{"type":"string","description":"The contact's ID.","example":"zeYjXoDOS_eV1QmTpj63PQ"},"display_name":{"type":"string","description":"The contact's name.","example":"John Doe"},"first_name":{"type":"string","description":"The contact's first name.","example":"John"},"last_name":{"type":"string","description":"The contact's last name.","example":"Doe"},"phones":{"maxItems":5,"type":"array","description":"The contact's phone numbers.","items":{"type":"object","properties":{"phone_number":{"type":"string","description":"The phone number in E.164 format.","example":"+12048002447"},"phone_type":{"type":"string","description":"The type of phone number. Allowed values are main, work, home, mobile, and other.","example":"main","enum":["main","work","home","mobile","other"]}},"description":"The contact can have up to five phone numbers. Only one phone number can have the main type."}},"emails":{"maxItems":4,"type":"array","description":"The contact's email addresses.","items":{"type":"string","format":"email","example":"john.doe@example.com"}},"location":{"type":"string","description":"The contact's location.","example":"New York"},"timezone":{"maxLength":100,"type":"string","description":"The contact's time zone.","example":"America/Los_Angeles"},"account_number":{"type":"string","description":"The contact's account number.","example":"112233445566"},"company":{"type":"string","description":"The contact's company.","example":"Acme Corp"},"role":{"type":"string","description":"The contact's role.","example":"Agent"},"address_book_id":{"type":"string","description":"The address book's ID.","example":"jweQeTYDOS_eV1QmTpj63PQ"},"address_book_name":{"type":"string","description":"The address book's name.","example":"Corporate Address Book"},"consumer_ids":{"maxItems":10,"type":"array","description":"The consumer IDs associated with the contact.","items":{"type":"string","example":"cvC2JxWkToWZsJUenBvNnw"}},"custom_fields_url":{"type":"string","description":"The URL to retrieve the contact's custom field list.","example":"https://api.zoom.us/v2/contact_center/address_books/custom_fields/contacts/zeYjXoDOS_eV1QmTpj63PQ"},"source_id":{"type":"string","description":"The contact's source ID. This field is required for CRM address books.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"source_name":{"type":"string","description":"The contact's source name.","example":"external_system"}}}},"invalid_contacts":{"type":"array","description":"Contacts that failed validation. Only present when some contacts in the batch are invalid.","items":{"type":"object","properties":{"display_name":{"type":"string","description":"The contact's display name from the request.","example":"Jane Doe"},"phone_numbers":{"type":"array","description":"The phone numbers from the request.","items":{"type":"string","description":"The phone numbers from the request.","example":"+12048002447"}},"emails":{"type":"array","description":"The email addresses from the request.","items":{"type":"string","description":"The email addresses from the request.","example":"jane.doe@example.com"}},"error_messages":{"type":"array","description":"Validation error messages for this contact.","items":{"type":"string","description":"Invalid phone number.","example":"The phone numbers do not match the E.164 format."}}}}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `2102` <br>\n Either the `emails` or `phones` fields must have a value. Both of these fields cannot be empty. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_contact:write:admin","contact_center:write:address_book_contact:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_contact:write:admin"],"x-granular-scopes":["contact_center:write:address_book_contact:admin"]}},"delete":{"tags":["Address Books"],"summary":"Batch delete address book contacts","description":"Batch delete contacts from an [address book](https://support.zoom.us/hc/en-us/articles/4471544949389). Supports up to 50 contacts per request.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_contact:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:delete:address_book_contact:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"batchDeletecontact","parameters":[{"name":"addressBookId","in":"path","description":"The address book's ID.","required":true,"schema":{"type":"string","example":"zeYjXoDOS_eV1QmTpj63PQ"}}],"requestBody":{"description":"Contact Center Open API: Public Batch Delete Address Book Contacts API","content":{"application/json":{"schema":{"required":["contact_ids"],"type":"object","properties":{"contact_ids":{"maxItems":50,"minItems":1,"type":"array","description":"List of contact IDs to delete.","items":{"type":"string","description":"The contact's ID.","example":"zeYjXoDOS_eV1QmTpj63PQ"}}}}}}},"responses":{"204":{"description":"**HTTP Status Code:** `204`   \n \n Contact deleted."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request   Bad request. The `contact_ids` field is empty or exceeds the maximum limit. \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  Address book does not exist: {addressBookId}. \n\n **Error Code:** `2001` <br>\n Address book does not exist: {addressBookId}. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_contact:write:admin","contact_center:delete:address_book_contact:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_contact:write:admin"],"x-granular-scopes":["contact_center:delete:address_book_contact:admin"]}},"patch":{"tags":["Address Books"],"summary":"Batch update address book contacts","description":"Batch update contacts in an address book (https://support.zoom.us/hc/en-us/articles/4471544949389).  Supports up to 50 contacts per request. Returns 200 for all valid or partial success with invalid contact details, or 400 if all contacts are invalid.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_contact:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:update:address_book_contact:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"batchUpdateContact","parameters":[{"name":"addressBookId","in":"path","description":"The address book's ID.","required":true,"schema":{"type":"string","example":"zeYjXoDOS_eV1QmTpj63PQ"}}],"requestBody":{"description":"Contact Center Open API: Public Batch Update Address Book Contacts API","content":{"application/json":{"schema":{"type":"object","properties":{"contacts":{"maxItems":50,"minItems":1,"type":"array","description":"Information about the contacts.","items":{"required":["contact_id"],"type":"object","properties":{"contact_id":{"type":"string","description":"The contact's ID.","example":"zeYjXoDOS_eV1QmTpj63PQ"},"display_name":{"maxLength":125,"minLength":1,"type":"string","description":"The contact's name.","example":"Jill Chill"},"first_name":{"maxLength":36,"type":"string","description":"The contact's first name.","example":"Jill"},"last_name":{"maxLength":36,"maxItems":5,"type":"string","description":"The contact's last name.","example":"Chill"},"phones":{"maximum":4,"maxItems":5,"type":"array","description":"The contact's phone numbers. Supports up to five with explicit `phone_type`.","items":{"required":["phone_number"],"type":"object","properties":{"phone_number":{"type":"string","description":"The phone number, in E.164 format.","example":"+12048002447"},"phone_type":{"type":"string","description":"The type of phone number.","example":"main","default":"main","enum":["main","work","home","mobile","other"]}},"description":"Supports up to five phone numbers. Only one main phone number is supported."}},"emails":{"maximum":4,"maxItems":4,"type":"array","description":"The contact's email addresses.","items":{"type":"string","example":"user@example.com"}},"location":{"maxLength":256,"type":"string","description":"The contact's location.","example":"San Jose"},"timezone":{"maxLength":100,"type":"string","description":"The contact's time zone.","example":"America/Los_Angeles"},"account_number":{"maxLength":256,"type":"string","description":"The contact's account number.","example":"112233445566"},"company":{"maxLength":256,"type":"string","description":"The contact's company.","example":"Acme Corp"},"role":{"maxLength":256,"type":"string","description":"The contact's role.","example":"Agent"},"consumer_ids":{"maxItems":10,"type":"array","description":"The list of consumer IDs to associate with the contact.","items":{"type":"string","description":"The consumer's unique ID.","example":"cvC2JxWkToWZsJUenBvNnw"}},"custom_fields":{"type":"array","description":"The custom field values for this contact.","items":{"required":["custom_field_id"],"type":"object","properties":{"custom_field_id":{"maxLength":36,"type":"string","description":"The custom field's ID.","example":"7381d210-360e-4fbd-86e4-33eb7109b084"},"custom_field_value":{"maxLength":512,"type":"string","description":"The custom field's value.","example":"priority"}}}},"source_id":{"type":"string","description":"The contact's source ID. This field is required for CRM address books.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"source_name":{"type":"string","description":"The contact's source name.","example":"salesforce"}}}}}}}}},"responses":{"200":{"description":"**HTTP Status Code:** `200`\n\nContacts created. When some contacts fail validation, the response includes both `contacts` (successful) and `invalid_contacts` (failed with error details).","content":{"application/json":{"schema":{"type":"object","properties":{"contacts":{"maxItems":10,"type":"array","description":"Information about the created contacts.","items":{"type":"object","properties":{"contact_id":{"type":"string","description":"The contact's ID.","example":"zeYjXoDOS_eV1QmTpj63PQ"},"display_name":{"type":"string","description":"The contact's name.","example":"John Doe"},"first_name":{"type":"string","description":"The contact's first name.","example":"John"},"last_name":{"type":"string","description":"The contact's last name.","example":"Doe"},"phones":{"maxItems":5,"type":"array","description":"The contact's phone numbers.","items":{"type":"object","properties":{"phone_number":{"type":"string","description":"The phone number in E.164 format.","example":"+12048002447"},"phone_type":{"type":"string","description":"The type of phone number.","example":"main","enum":["main","work","home","mobile","other"]}},"description":"The contact can have up to five phone numbers. Only one phone number can have the main type."}},"emails":{"maxItems":4,"type":"array","description":"The contact's email addresses.","items":{"type":"string","format":"email","example":"john.doe@example.com"}},"location":{"type":"string","description":"The contact's location.","example":"New York"},"timezone":{"maxLength":100,"type":"string","description":"The contact's time zone.","example":"America/Los_Angeles"},"account_number":{"type":"string","description":"The contact's account number.","example":"112233445566"},"company":{"type":"string","description":"The contact's company.","example":"Acme Corp"},"role":{"type":"string","description":"The contact's role.","example":"Agent"},"address_book_id":{"type":"string","description":"The address book's ID.","example":"jweQeTYDOS_eV1QmTpj63PQ"},"address_book_name":{"type":"string","description":"The address book's name.","example":"Corporate Address Book"},"consumer_ids":{"maxItems":10,"type":"array","description":"The consumer IDs associated with the contact.","items":{"type":"string","example":"cvC2JxWkToWZsJUenBvNnw"}},"custom_fields_url":{"type":"string","description":"The URL to retrieve the contact's custom field list.","example":"https://api.zoom.us/v2/contact_center/address_books/custom_fields/contacts/zeYjXoDOS_eV1QmTpj63PQ"},"source_id":{"type":"string","description":"The contact's source ID. This field is required for CRM address books.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"source_name":{"type":"string","description":"The contact's source name.","example":"external_system"}}}},"invalid_contacts":{"type":"array","description":"Contacts that failed validation. Only present when some contacts in the batch are invalid.","items":{"type":"object","properties":{"display_name":{"type":"string","description":"The contact's display name from the request.","example":"Jane Doe"},"phone_numbers":{"type":"array","description":"The phone numbers from the request.","items":{"type":"string","description":"The phone numbers from the request.","example":"+12048002447"}},"emails":{"type":"array","description":"The email addresses from the request.","items":{"type":"string","description":"The email addresses from the request.","example":"jane.doe@example.com"}},"error_messages":{"type":"array","description":"Validation error messages for this contact.","items":{"type":"string","description":"Invalid phone number.","example":"The phone numbers do not match the E.164 format."}}}}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  Include `invalid_contacts` body when ALL fail. \n\n **Error Code:** `2102` <br>\n Either the `email` or `phones` field must have a value. Both fields cannot be empty. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  Invalid access token or the access token has expired. \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  The user account is deactivated, does not have a Contact Center license, or is missing the required role privileges. \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_contact:write:admin","contact_center:update:address_book_contact:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_contact:write:admin"],"x-granular-scopes":["contact_center:update:address_book_contact:admin"]}}},"/contact_center/address_books/{addressBookId}/contacts/{contactId}":{"get":{"tags":["Address Books"],"summary":"Get an address book contact","description":"Returns information about an address book's contact.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_contact:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:address_book_contact:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"getContact","parameters":[{"name":"addressBookId","in":"path","description":"The address book's ID.","required":true,"schema":{"type":"string","example":"jweQeTYDOS_eV1QmTpj63PQ"}},{"name":"contactId","in":"path","description":"The contact's ID.","required":true,"schema":{"type":"string","example":"zeYjXoDOS_eV1QmTpj63PQ"}},{"name":"address_book_identifier_type","in":"query","description":"How the path parameter is interpreted. `id` treats it as a system-generated unique identifier. `name` treats it as the resource name.\nWhen using `name`, the resource name must be URL-encoded per RFC 3986.","required":false,"schema":{"type":"string","example":"id","default":"id","enum":["id","name"]}},{"name":"contact_identifier_type","in":"query","description":"How the `userId` path parameter is interpreted. `id` treats it as a system-generated unique identifier. `email` treats it as the contact email.\nWhen using `email`, the contact email must be URL-encoded per RFC 3986.","required":false,"schema":{"type":"string","example":"id","default":"id","enum":["id","email"]}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \n Contact returned.","content":{"application/json":{"schema":{"required":["contact_id","display_name","phones"],"type":"object","properties":{"contact_id":{"type":"string","description":"The contact's ID.","example":"zeYjXoDOS_eV1QmTpj63PQ"},"display_name":{"type":"string","description":"The contact's name.","example":"Jill Chill"},"first_name":{"type":"string","description":"The contact's first name.","example":"Jill"},"last_name":{"type":"string","description":"The contact's last name.","example":"Chill"},"phone_numbers":{"maxItems":5,"type":"array","description":"The contact's phone numbers.","deprecated":true,"items":{"type":"string","example":"+12048002447"}},"phones":{"maxItems":5,"type":"array","description":"The contact's phone numbers.","items":{"type":"object","properties":{"phone_number":{"type":"string","description":"The phone number.","example":"+12048002447"},"phone_type":{"type":"string","description":"The phone number type.","example":"main","enum":["main","work","home","mobile","other"]}},"description":"Supports up to five phone numbers. Only one main phone number is supported."}},"emails":{"maxItems":4,"type":"array","description":"The contact's email addresses.","items":{"type":"string","format":"email","example":"user@example.com"}},"location":{"type":"string","description":"The contact's location.","example":"San Jose"},"timezone":{"maxLength":100,"type":"string","description":"The contact's time zone. Refer to this list for supported [timezones](/docs/api/references/abbreviations/#timezones).","example":"America/Los_Angeles"},"account_number":{"type":"string","description":"The contact's account number.","example":"112233445566"},"company":{"type":"string","description":"The contact's company.","example":"Example"},"role":{"type":"string","description":"The contact's role.","example":"Agent"},"address_book_id":{"type":"string","description":"The address book's ID.","example":"jweQeTYDOS_eV1QmTpj63PQ"},"address_book_name":{"type":"string","description":"The address book's name.","example":"Address Book"},"variables":{"type":"array","description":"Information about address book variables.","items":{"type":"object","properties":{"variable_group_id":{"type":"string","description":"The variable group's ID.","example":"afececcd-0c9f-48de-9d19-0c84e8bdfeca"},"variable_id":{"type":"string","description":"The variable's ID.","example":"zeYjXoDOS_eV1QmTpj63PQ"},"variable_name":{"type":"string","description":"The variable's name.","example":"variable demo name"},"data_type":{"type":"string","description":"The variable's data type.","example":"string","enum":["string","boolean"]},"variable_value":{"type":"string","description":"The variable's value.","example":"variable value demo"}}}},"consumer_ids":{"maxItems":10,"type":"array","description":"The consumer IDs associated with the contact.","items":{"type":"string","description":"The consumer's unique ID.","example":"cvC2JxWkToWZsJUenBvNnw"}},"custom_fields_url":{"type":"string","description":"The URL to retrieve the contact's custom field list, if the contact's custom fields exist. \r\nFor security purposes, you must provide an OAuth access token in the authorization header to retrieve the contact's custom field list using this URL. Example:\r\ncurl --request GET \r\n --url {custom_fields_url} \r\n --header 'authorization: Bearer {access_token}' \r\n --header 'content-type: application/json'\r\n","example":"https://api.zoom.us/v2/contact_center/address_books/custom_fields/contacts/zeYjXoDOS_eV1QmTpj63PQ"}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `2007` <br>\n More than one matching address book found. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `2101` <br>\n Contact does not exist: $contactId. <br>\n**Error Code:** `2001` <br>\n Address book does not exist: $addressBookId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_contact:read:admin","contact_center:read:address_book_contact:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_contact:read:admin"],"x-granular-scopes":["contact_center:read:address_book_contact:admin"]}},"delete":{"tags":["Address Books"],"summary":"Delete an address book contact","description":"Delete a contact from an address book.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_contact:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:delete:address_book_contact:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"contactDelete","parameters":[{"name":"addressBookId","in":"path","description":"The address book's ID.","required":true,"schema":{"type":"string","example":"zeYjXoDOS_eV1QmTpj63PQ"}},{"name":"contactId","in":"path","description":"The contact's ID.","required":true,"schema":{"type":"string","example":"zeYjXoDOS_eV1QmTpj63PQ"}}],"responses":{"204":{"description":"**HTTP Status Code:** `204`   \n \n Contact deleted."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `2005` <br>\n Salesforce integration contact can not be added, updated, or deleted. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `2101` <br>\n Contact does not exist: $contactId. <br>\n**Error Code:** `2001` <br>\n Address book does not exist: $addressBookId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_contact:write:admin","contact_center:delete:address_book_contact:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_contact:write:admin"],"x-granular-scopes":["contact_center:delete:address_book_contact:admin"]}},"patch":{"tags":["Address Books"],"summary":"Update an address book contact","description":"Update an address book's contact.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_contact:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:update:address_book_contact:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"updateContact","parameters":[{"name":"addressBookId","in":"path","description":"The address book's ID.","required":true,"schema":{"type":"string","example":"zeYjXoDOS_eV1QmTpj63PQ"}},{"name":"contactId","in":"path","description":"The contact's ID.","required":true,"schema":{"type":"string","example":"zeYjXoDOS_eV1QmTpj63PQ"}}],"requestBody":{"description":"AddressBook","content":{"application/json":{"schema":{"required":["phone_numbers","phones"],"type":"object","properties":{"display_name":{"type":"string","description":"The contact's display name.","example":"Jane Doe"},"first_name":{"type":"string","description":"The contact's first name.","example":"Jane"},"last_name":{"type":"string","description":"The contact's last name.","example":"Doe"},"phone_numbers":{"maxItems":5,"type":"array","description":"The contact's phone numbers. You must provide this field and/or the `email` field when you create a contact.","deprecated":true,"items":{"type":"string","example":"+12048002447"}},"phones":{"maxItems":5,"type":"array","description":"The contact's phone numbers.","items":{"type":"object","properties":{"phone_number":{"type":"string","description":"The phone number.","example":"+12048002447"},"phone_type":{"type":"string","description":"The phone number type.","example":"main","enum":["main","work","home","mobile","other"]}},"description":"Supports up to 5 phone numbers. Only one main phone number is supported."}},"emails":{"maxItems":4,"type":"array","description":"The contact's email addresses. You must provide this field and/or the `phone_numbers` field when you create a contact.","items":{"type":"string","format":"email","example":"user@example.com"}},"location":{"type":"string","description":"The contact's location.","example":"San Jose"},"timezone":{"maxLength":100,"type":"string","description":"The contact's time zone. Refer to this list for supported [timezones](/docs/api/references/abbreviations/#timezones).","example":"America/Los_Angeles"},"account_number":{"type":"string","description":"The contact's account number.","example":"112233445566"},"company":{"type":"string","description":"The contact's company.","example":"Example"},"role":{"type":"string","description":"The contact's role.","example":"Agent"},"variables":{"maxItems":200,"type":"array","description":"Information about address book variables.","items":{"type":"object","properties":{"variable_id":{"type":"string","description":"The variable's ID.","example":"zeYjXoDOS_eV1QmTpj63PQ"},"variable_value":{"type":"string","description":"The variable's value.","example":"variable value demo"}}}},"consumer_ids":{"maxItems":10,"type":"array","description":"The consumer IDs to be associated with the contact.","items":{"type":"string","description":"The consumer's unique ID.","example":"cvC2JxWkToWZsJUenBvNnw"}},"custom_fields":{"maxItems":100,"type":"array","description":"Information about address book custom fields.","items":{"type":"object","properties":{"custom_field_id":{"maxLength":36,"type":"string","description":"The custom field's ID.","example":"7381d210-360e-4fbd-86e4-33eb7109b084"},"custom_field_value":{"maxLength":512,"type":"string","description":"The custom field's value.","example":"chat"}}}}}}}}},"responses":{"204":{"description":"**HTTP Status Code:** `204`   \n \n Contact updated."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `2005` <br>\n Salesforce integration contact cannot be added, updated, or deleted. <br>\n**Error Code:** `2106` <br>\n Invalid consumer Ids: $consumerIds. <br>\n**Error Code:** `2113` <br>\n Contact custom field value `custom_field_value` format does not match the data type. <br>\n**Error Code:** `2114` <br>\n Custom field is invalid: $customFieldId <br>\n**Error Code:** `2116` <br>\n Invalid custom field value `custom_field_value`. The provided value is not in the list of supported picklist values. <br>\n**Error Code:** `2117` <br>\n Invalid time zone: $timezone <br>\n**Error Code:** `300` <br>\n Invalid phone type. <br>\n**Error Code:** `300` <br>\n Only one main phone number is allowed. <br>\n**Error Code:** `300` <br>\n The maximum number of phones allowed is 5. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n**Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `2101` <br>\n Contact does not exist: $contactId. <br>\n**Error Code:** `2001` <br>\n Address book does not exist: $addressBookId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_contact:write:admin","contact_center:update:address_book_contact:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_contact:write:admin"],"x-granular-scopes":["contact_center:update:address_book_contact:admin"]}}},"/contact_center/system_statuses":{"get":{"tags":["Agent Statuses"],"summary":"List system statuses","description":"Get a list of system statuses. Administrators can create system statuses, such as **Maintenance**.  \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_preference:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:list_system_statues:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"listSystemStatus","parameters":[{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of items returned per page.","required":false,"schema":{"maximum":300,"type":"integer","format":"int32","example":30,"default":30}},{"name":"status_category","in":"query","description":"The status's category.\n\n* `agent_status` - User's system statuses.\n\n* `queue_opt_out_and_not_ready_status` - User's **Queue Opt-Out** and **Not Ready** reasons. **Not Ready** reasons are referenced by field `sub_status_name` in the Users APIs, such as [List users' profiles](https://developers.zoom.us/docs/contact-center/apis/#operation/users).","required":false,"schema":{"type":"string","example":"agent_status","enum":["agent_status","queue_opt_out_and_not_ready_status"]}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \nSystem statuses returned.","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"type":"string","description":"Use the next page token to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":300,"type":"integer","description":"The number of records returned within a single API call.","example":30,"default":30},"total_records":{"type":"integer","description":"The total number of all the records available across pages.","example":1},"statuses":{"type":"array","description":"Information about the statuses.","items":{"type":"object","properties":{"status_id":{"type":"string","description":"The status ID.","example":"1"},"status_name":{"type":"string","description":"The user's [availability status](https://support.zoom.us/hc/en-us/articles/4470584918541-Setting-availability-status). \n* Offline. \n* Ready. \n* Not Ready. \n* Occupied. \n* A custom user status, like **Lunch**.","example":"Lunch","enum":["Offline","Ready","Not Ready","Occupied","string"]},"status_type":{"type":"string","description":"The status's type, used to determine default or custom status.","example":"default","enum":["default","custom"]},"status_category":{"type":"string","description":"The status's category.\n\n* `agent_status` - User's system statuses.\n\n* `queue_opt_out_and_not_ready_status` - User's **Queue Opt-Out** and **Not Ready** reasons. **Not Ready** reasons are referenced by field `sub_status_name` in the Users APIs, such as [List users' profiles](https://developers.zoom.us/docs/contact-center/apis/#operation/users).","example":"agent_status","enum":["agent_status","queue_opt_out_and_not_ready_status"]},"enable":{"type":"boolean","description":"Only applicable to a status with the `queue_opt_out_and_not_ready_status` category. If enabled, the agent can set the status as a sub-status for **Not Ready** or **Queue Opt Out**.","example":true},"status_assigned_queues":{"type":"array","description":"Information about the queues that are using the 'Not Ready' or opt out of queue status.","items":{"type":"object","properties":{"id":{"type":"string","description":"Queue ID.","example":"123"},"value":{"type":"string","description":"Queue name.","example":"customer queue"}}}}}}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_preference:read:admin","contact_center:read:list_system_statues:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_preference:read:admin"],"x-granular-scopes":["contact_center:read:list_system_statues:admin"]}},"post":{"tags":["Agent Statuses"],"summary":"Create a system status","description":"Create custom statuses for the `agent_status` and `queue_opt_out_and_not_ready_status` categories. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_preference:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:write:system_status:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"createSystemStatus","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"status_name":{"type":"string","description":"The status's name.","example":"Lunch"},"status_category":{"type":"string","description":"The status's category.\n\n* `agent_status` - User's system statuses.\n\n* `queue_opt_out_and_not_ready_status` - User's **Queue Opt-Out** and **Not Ready** reasons. **Not Ready** reasons are referenced by field `sub_status_name` in the **Users** APIs, such as [List users' profiles](https://developers.zoom.us/docs/contact-center/apis/#operation/users).","example":"agent_status","enum":["agent_status","queue_opt_out_and_not_ready_status"]},"enable":{"type":"boolean","description":"Only applicable to a status with the `queue_opt_out_and_not_ready_status` category. If enabled, the agent can set a status as a sub-status for **Not Ready** or **Queue Opt Out**.","example":true,"default":true},"status_assigned_queues":{"type":"array","description":"Queues that the 'Not Ready' or opt out of queue status will be assigned to.","items":{"type":"object","properties":{"id":{"type":"string","description":"Queue ID.","example":"123"}}}}}}}}},"responses":{"201":{"description":"System status successfully created.","content":{"application/json":{"schema":{"type":"object","properties":{"status_id":{"type":"string","description":"The status ID.","example":"1"},"status_name":{"type":"string","description":"The user's [availability status](https://support.zoom.us/hc/en-us/articles/4470584918541-Setting-availability-status). \n* Offline \n* Ready \n* Not Ready \n* Occupied \n* A custom user status, like **Lunch**.","example":"Lunch","enum":["Offline","Ready","Not Ready","Occupied"]},"status_type":{"type":"string","description":"The status's type, used to determine default or custom status.","example":"default","enum":["default","custom"]},"status_category":{"type":"string","description":"The status's category.\n\n* `agent_status` - User's system statuses.\n\n* `queue_opt_out_and_not_ready_status` - User's **Queue Opt-Out** and **Not Ready** reasons. **Not Ready** reasons are referenced by field `sub_status_name` in the **Users** APIs, such as [List users' profiles](https://developers.zoom.us/docs/contact-center/apis/#operation/users).","example":"agent_status","enum":["agent_status","queue_opt_out_and_not_ready_status"]},"enable":{"type":"boolean","description":"Only applicable to a status with the `queue_opt_out_and_not_ready_status` category. If enabled, the agent can set the status as a sub-status for **Not Ready** or **Queue Opt Out**.","example":true}},"description":"Information about the user's status."}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `1105` <br>\n Can't create more custom `agent_status` because there's a maximum of 15. <br>\n**Error Code:** `1106` <br>\n Can't create more custom `queue_opt_out_and_not_ready_status` because there's a maximum of 15. <br>\n**Error Code:** `1107` <br>\n Creating the status. Please wait a moment. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1104` <br>\n Status category does not exist: $status_category. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_preference:write:admin","contact_center:write:system_status:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_preference:write:admin"],"x-granular-scopes":["contact_center:write:system_status:admin"]}}},"/contact_center/system_statuses/{statusId}":{"get":{"tags":["Agent Statuses"],"summary":"Get a system status","description":"Get information about a system status. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_preference:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:system_status:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"getAStatus","parameters":[{"name":"statusId","in":"path","description":"The status ID.","required":true,"schema":{"type":"string","example":"1"}},{"name":"status_identifier_type","in":"query","description":"How the path parameter is interpreted. `id` treats it as a system-generated unique identifier. `name` treats it as the resource name.\nWhen using `name`, the resource name must be URL-encoded per RFC 3986.","required":false,"schema":{"type":"string","example":"id","default":"id","enum":["id","name"]}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \nSystem status returned.","content":{"application/json":{"schema":{"type":"object","properties":{"status_id":{"type":"string","description":"The status ID.","example":"1"},"status_name":{"type":"string","description":"The user's [availability status](https://support.zoom.us/hc/en-us/articles/4470584918541-Setting-availability-status). \n* Offline. \n* Ready. \n* Not Ready. \n* Occupied. \n* A custom user status, like **Lunch**.","example":"Lunch","enum":["Offline","Ready","Not Ready","Occupied"]},"status_type":{"type":"string","description":"The status's type, used to determine default or custom status.","example":"default","enum":["default","custom"]},"status_category":{"type":"string","description":"The status's category.\n\n* `agent_status` - User's system statuses.\n\n* `queue_opt_out_and_not_ready_status` - User's **Queue Opt-Out** and **Not Ready** reasons. **Not Ready** reasons are referenced by field `sub_status_name` in the Users APIs, such as [List users' profiles](https://developers.zoom.us/docs/contact-center/apis/#operation/users).","example":"agent_status","enum":["agent_status","queue_opt_out_and_not_ready_status"]},"enable":{"type":"boolean","description":"Only applicable to a status with the `queue_opt_out_and_not_ready_status` category. If enabled, the agent can set the status as a sub-status for **Not Ready** or **Queue Opt Out**.","example":true},"status_assigned_queues":{"type":"array","description":"Information about the queues that are using the 'Not Ready' or opt out of queue status.","items":{"type":"object","properties":{"id":{"type":"string","description":"Queue ID.","example":"123"},"value":{"type":"string","description":"Queue name.","example":"customer queue"}}}}},"description":"Information about the user's status."}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `1116` <br>\n More than one matching status found. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1101` <br>\n Status does not exist: $statusId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_preference:read:admin","contact_center:read:system_status:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_preference:read:admin"],"x-granular-scopes":["contact_center:read:system_status:admin"]}},"delete":{"tags":["Agent Statuses"],"summary":"Delete a system status","description":"Delete a custom status for the `agent_status` and `queue_opt_out_and_not_ready_status categories`.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_preference:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:delete:system_status:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"deleteSystemStatus","parameters":[{"name":"statusId","in":"path","description":"The status ID.","required":true,"schema":{"type":"string","example":"1"}},{"name":"status_identifier_type","in":"query","description":"How the path parameter is interpreted. `id` treats it as a system-generated unique identifier. `name` treats it as the resource name.\nWhen using `name`, the resource name must be URL-encoded per RFC 3986.","required":false,"schema":{"type":"string","example":"id","default":"id","enum":["id","name"]}}],"responses":{"204":{"description":"**HTTP Status Code:** `204`  \n \nSystem status deleted."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `1108` <br>\n Status is default. Only custom statuses can be modified. <br>\n**Error Code:** `1116` <br>\n More than one matching status found. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1101` <br>\n Status does not exist: $statusId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_preference:write:admin","contact_center:delete:system_status:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_preference:write:admin"],"x-granular-scopes":["contact_center:delete:system_status:admin"]}},"patch":{"tags":["Agent Statuses"],"summary":"Update a system status","description":"Update a custom status for the `agent_status` and `queue_opt_out_and_not_ready_status` categories.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_preference:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:update:system_status:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"updateSystemStatus","parameters":[{"name":"statusId","in":"path","description":"The status ID.","required":true,"schema":{"type":"string","example":"1"}},{"name":"status_identifier_type","in":"query","description":"How the path parameter is interpreted. `id` treats it as a system-generated unique identifier. `name` treats it as the resource name.\nWhen using `name`, the resource name must be URL-encoded per RFC 3986.","required":false,"schema":{"type":"string","example":"id","default":"id","enum":["id","name"]}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"status_name":{"type":"string","description":"The status's name.","example":"Lunch"},"enable":{"type":"boolean","description":"Only applicable to a status with the `queue_opt_out_and_not_ready_status` category. If enabled, the agent can set the status as a sub-status for **Not Ready** or **Queue Opt Out**.","example":true,"default":true},"status_assigned_queues":{"type":"array","description":"Queues that the **Not Ready** or opt out of queue status will be assigned to.","items":{"type":"object","properties":{"id":{"type":"string","description":"Queue ID.","example":"123"}}}}}}}}},"responses":{"204":{"description":"**HTTP Status Code:** `204`   \n \nSystem status updated."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `300` <br>\n Parameter `status_name` is required. <br>\n**Error Code:** `1103` <br>\n The system status already exists. <br>\n**Error Code:** `1107` <br>\n Updating status. Please wait a moment. <br>\n**Error Code:** `1108` <br>\n Status is default. Only custom statuses can be modified. <br>\n**Error Code:** `1116` <br>\n More than one matching status found. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1101` <br>\n Status does not exist: $statusId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_preference:write:admin","contact_center:update:system_status:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_preference:write:admin"],"x-granular-scopes":["contact_center:update:system_status:admin"]}}},"/contact_center/asset_library/assets":{"get":{"tags":["Asset Library"],"summary":"List assets","description":"List Contact Center assets.\n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_asset_library:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:asset_library:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"listAssets","parameters":[{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"asset_type","in":"query","description":"The asset's type. \nIf you want to query based on multiple types, concatenate the types with commas.","required":false,"schema":{"maxLength":100,"type":"string","example":"audio,image","enum":["audio","image","script","slides","text","video","saved_reply"]}},{"name":"asset_language_code","in":"query","description":"The asset's language code enum.\nTo query based on multiple langauges, comma-separate the langauges.","required":false,"schema":{"maxLength":200,"type":"string","example":"en-US,ja-JP","enum":["zh-CN","zh-TW","yue-CN","cmn-CN","da-DK","nl-NL","en-AU","en-NZ","en-GB","en-US","fr-CA","fr-FR","de-DE","it-IT","ja-JP","ko-KR","pl-PL","pt-BR","pt-PT","ro-RO","ru-RU","es-ES","es-MX","es-US","sv-SE","tr-TR"]}},{"name":"page_size","in":"query","description":"The number of records returned within a single API call.","required":false,"schema":{"maximum":300,"minimum":1,"type":"integer","format":"int32","example":30,"default":30}},{"name":"asset_item_name","in":"query","description":"The asset item's name.","required":false,"schema":{"maxLength":150,"type":"string","example":"asset item name"}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \nAssets returned.","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"maxLength":100,"type":"string","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":300,"minimum":1,"type":"integer","description":"The number of records returned within a single API call.","example":30,"default":30},"total_records":{"minimum":0,"type":"integer","description":"The total number of all the records available across pages.","example":10},"assets":{"type":"array","description":"Array of assets.","items":{"type":"object","properties":{"asset_id":{"type":"string","description":"The asset's ID.","example":"zeYjXoDOS_eV1QmTpj63PQ"},"asset_name":{"type":"string","description":"The asset's name.","example":"My asset name."},"asset_description":{"type":"string","description":"The asset's description.","example":"My asset description."},"asset_type":{"type":"string","description":"The asset's type.","example":"image","enum":["audio","image","script","slides","text","video","saved_reply"]},"asset_category_id":{"type":"string","description":"The asset's category ID.","example":"8ONs9XW4S9a2Lco9O0GdCw"},"asset_category_name":{"type":"string","description":"The asset's category name.","example":"Sales Category"},"asset_language_code":{"type":"string","description":"The asset's language code.","example":"zh-CN","enum":["zh-CN","zh-TW","yue-CN","cmn-CN","da-DK","nl-NL","en-AU","en-NZ","en-GB","en-US","fr-CA","fr-FR","de-DE","it-IT","ja-JP","ko-KR","pl-PL","pt-BR","pt-PT","ro-RO","ru-RU","es-ES","es-MX","es-US","sv-SE","tr-TR"]},"modified_by":{"type":"string","description":"The ID of the user that last modified the asset.","example":"IGTRVt3gQ2i-WjoUIjeZxw"},"last_modified_time":{"type":"string","description":"The date and time when the asset was last modified.","format":"date-time","example":"2022-02-15T09:27:15Z"},"asset_items_url":{"type":"string","description":"If the query parameters include `asset_item_name`, this parameter returns the access URL of the matching asset item; otherwise, this field will return empty.","example":"https://api.zoom.us/v2/contact_center/asset_library/assets/zeYjXoDOS_eV1QmTpj63PQ?asset_item_name=english%20audio"}},"description":"Information about the asset."}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `300` <br>\n Validation failed. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_asset_library:read:admin","contact_center:read:asset_library:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_asset_library:read:admin"],"x-granular-scopes":["contact_center:read:asset_library:admin"]}},"post":{"tags":["Asset Library"],"summary":"Create an asset","description":"Create an asset to store in the Contact Center Asset Library.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_asset_library:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:write:asset_library:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"createAnAsset","requestBody":{"content":{"multipart/form-data":{"schema":{"required":["asset_items","asset_name","asset_type"],"type":"object","properties":{"asset_name":{"maxLength":150,"type":"string","description":"The asset's name.","example":"asset name"},"asset_description":{"maxLength":256,"type":"string","description":"The asset's description.","example":"This is an audio asset."},"asset_type":{"maxLength":30,"type":"string","description":"The asset's type.","example":"audio","enum":["audio","image","slides","text","video","saved_reply"]},"category_id":{"maxLength":50,"type":"string","description":"The asset category's ID.","example":"bnGEj1yrRb6qlNMvyMK08g"},"asset_items":{"type":"array","description":"A list of the asset's items.\n\n### Restriction\nEach item must have a different `asset_item_language`, and only one item can have a `is_default` set to `true`.","items":{"type":"object","properties":{"asset_item_name":{"maxLength":150,"minLength":1,"type":"string","description":"The asset item's name.","example":"english audio"},"asset_item_language":{"maxLength":10,"minLength":1,"type":"string","description":"The asset item's language code.","example":"en-US","enum":["zh-CN","zh-TW","yue-CN","cmn-CN","da-DK","nl-NL","en-AU","en-NZ","en-GB","en-US","fr-CA","fr-FR","de-DE","it-IT","ja-JP","ko-KR","pl-PL","pt-BR","pt-PT","ro-RO","ru-RU","es-ES","es-MX","es-US","sv-SE","tr-TR"]},"upload_file":{"type":"string","description":"The uploaded file in binary format. \nOnly works for `asset_type`s `audio`, `image`, `video` and `slides`.\n\nThis field is not required if you create a TTS item when creating or updating an audio asset.\n\n### Allowed file extension\n\n- audio : mp3, wav\n- image : jpeg, jpg, jpe, jif, jfif, png, gif\n- slides : pdf\n- video : mp4, mov\n\n### Maximum filesize support\n\nA single request can upload a maximum of 100MB.\nSingle file maximum filesize: \n- audio : 10M\n- image : 10M\n- slides : 10M\n- video : 100M ","format":"binary","example":"VkVST1EyRkhVa2hoUjFwclVucHNiVnBXWXpWTlYwNXdUMWN4YUZZemFITlVSekI0WkRBeE0xQlVNRDA9"},"asset_item_content":{"maxLength":500,"type":"string","description":"The asset item's content.\n\nOnly works for `asset_type`s `text` and `saved_reply`.","example":"text asset content"},"is_default":{"type":"boolean","description":"Whether this item is the default of the asset. Each asset can only have one `isDefault` set to `true`.","example":true},"asset_item_voice":{"maxLength":50,"type":"string","description":"The asset item's text-to-speech voice. It only works for the audio type.\n\nWhen you want to create a TTS asset item, need to fill in the `asset_item_file_url` and `asset_item_content`, but don't need to fill in the `upload_file` field.\n\nNot every language supports TTS, and each language has a different voice.\n\n| asset_item_language | asset_item_voice                                                                                                                      |\n|---------------------|------------------------------------------------------------------------------------------------------------------------------------------|\n| yue-CN              | Hiujin                                                                                                                                   |\n| cmn-CN              | Zhiyu                                                                                                                                    |\n| da-DK               | Naja<br/>Sofie<br/>Mads                                                                                                                  |\n| nl-NL               | Laura<br/>Ruben<br/>Lotte                                                                                                                |\n| en-US               | Joanna<br/>Stephen<br/>Kimberly<br/>Matthew<br/>Danielle<br/>Gregory<br/>Kevin<br/>Salli<br/>Kendra<br/>Justin<br/>Joey<br/>Ivy<br/>Ruth |\n| en-GB               | Emma<br/>Brian<br/>Amy<br/>Arthur                                                                                                        |\n| en-AU               | Olivia<br/>Russell<br/>Nicole                                                                                                            |\n| en-NZ               | Aria                                                                                                                                     |\n| fr-FR               | Celine<br/>Lea<br/>Remi<br/>Mathieu                                                                                                      |\n| fr-CA               | Gabrielle<br/>Liam<br/>Chantal                                                                                                           |\n| de-DE               | Daniel<br/>Vicki<br/>Marlene<br/>Hans                                                                                                    |\n| it-IT               | Adriano<br/>Bianca<br/>Giorgio<br/>Carla                                                                                                 |\n| ja-JP               | Takumi<br/>Kazuha<br/>Tomoko<br/>Mizuki                                                                                                  |\n| ko-KR               | Seoyeon                                                                                                                                  |\n| pl-PL               | Ola<br/>Maja<br/>Jan<br/>Jacek<br/>Ewa                                                                                                   |\n| pt-PT               | Ines<br/>Cristiano                                                                                                                       |\n| pt-BR               | Camila<br/>Thiago<br/>Vitoria<br/>Ricardo                                                                                                |\n| ro-RO               | Carmen                                                                                                                                   |\n| ru-RU               | Maxim<br/>Tatyana                                                                                                                        |\n| es-US               | Lupe<br/>Pedro<br/>Penelope<br/>Miguel                                                                                                   |\n| es-MX               | Mia<br/>Andres                                                                                                                           |\n| es-ES               | Lucia<br/>Sergio<br/>Enrique<br/>Conchita                                                                                                |\n| sv-SE               | Elin<br/>Astrid                                                                                                                          |\n| tr-TR               | Filiz<br/>Burcu                                                                                                                          |\n","example":"Joanna"}},"description":"This asset's item."}}},"description":"Information about the new asset."}}}},"responses":{"201":{"description":"**HTTP Status Code:** `201`   \n \nAsset created.","content":{"application/json":{"schema":{"type":"object","properties":{"asset_id":{"type":"string","description":"The asset's unique identifier.","example":"WkdWelkzSnBjSEZwYjI0PQ11"},"asset_name":{"maxLength":150,"type":"string","description":"The asset's name.","example":"asset name"},"asset_description":{"maxLength":256,"type":"string","description":"The asset's description.","example":"This is an audio asset."},"asset_type":{"maxLength":30,"type":"string","description":"The asset's type.","example":"audio","enum":["audio","image","slides","text","video","saved_reply"]},"modified_by":{"type":"string","description":"The ID of the user that last modified this data.","example":"IGTRVt3gQ2i-WjoUIjeZxw"},"asset_items":{"type":"array","description":"A list of the asset's items.\n\n**Restriction**\nEach item must have a different `asset_item_language`, and only one item can have a `is_default` set to `true`.","items":{"type":"object","properties":{"asset_item_id":{"maxLength":50,"type":"string","description":"The asset item's ID.\n\nIf it is used to update the asset item, carrying this field indicates an update. Otherwise, it indicates adding an asset item.","example":"beYjXoDOS_eV1QmTpj63PQ"},"asset_item_name":{"maxLength":150,"minLength":1,"type":"string","description":"The asset item's name.","example":"english audio"},"asset_item_language":{"maxLength":10,"minLength":1,"type":"string","description":"The asset item's language code.","example":"en-US","enum":["zh-CN","zh-TW","yue-CN","cmn-CN","da-DK","nl-NL","en-AU","en-NZ","en-GB","en-US","fr-CA","fr-FR","de-DE","it-IT","ja-JP","ko-KR","pl-PL","pt-BR","pt-PT","ro-RO","ru-RU","es-ES","es-MX","es-US","sv-SE","tr-TR"]},"is_default":{"type":"boolean","description":"Whether this item is the asset's default. Each asset can only have one `isDefault` set to `true`.","example":true},"asset_item_content":{"maxLength":500,"type":"string","description":"The asset item's content.\nOnly works for `asset_type`s `text` and `saved_reply`.","example":"text asset content"},"asset_item_file_url":{"type":"string","description":"The asset item's file URL.\n\nThis data will only exist when the `asset_type` is one of `image`, `audio`, `video`, or `slides`.","example":"https://file.example.com/xxxx"},"asset_item_voice":{"maxLength":50,"type":"string","description":"The asset item's text-to-speech voice. Only works for the `audio` type.\n\nTo create a TTS asset item, fill in the `asset_item_file_url` and `asset_item_content`. You don't need to fill in the `upload_file` field.\n\nNot every language supports TTS, and each language has a different voice.\n\n| asset_item_language | asset_item_voice                                                                                                                      |\n|---------------------|------------------------------------------------------------------------------------------------------------------------------------------|\n| yue-CN              | Hiujin                                                                                                                                   |\n| cmn-CN              | Zhiyu                                                                                                                                    |\n| da-DK               | Naja<br/>Sofie<br/>Mads                                                                                                                  |\n| nl-NL               | Laura<br/>Ruben<br/>Lotte                                                                                                                |\n| en-US               | Joanna<br/>Stephen<br/>Kimberly<br/>Matthew<br/>Danielle<br/>Gregory<br/>Kevin<br/>Salli<br/>Kendra<br/>Justin<br/>Joey<br/>Ivy<br/>Ruth |\n| en-GB               | Emma<br/>Brian<br/>Amy<br/>Arthur                                                                                                        |\n| en-AU               | Olivia<br/>Russell<br/>Nicole                                                                                                            |\n| en-NZ               | Aria                                                                                                                                     |\n| fr-FR               | Celine<br/>Lea<br/>Remi<br/>Mathieu                                                                                                      |\n| fr-CA               | Gabrielle<br/>Liam<br/>Chantal                                                                                                           |\n| de-DE               | Daniel<br/>Vicki<br/>Marlene<br/>Hans                                                                                                    |\n| it-IT               | Adriano<br/>Bianca<br/>Giorgio<br/>Carla                                                                                                 |\n| ja-JP               | Takumi<br/>Kazuha<br/>Tomoko<br/>Mizuki                                                                                                  |\n| ko-KR               | Seoyeon                                                                                                                                  |\n| pl-PL               | Ola<br/>Maja<br/>Jan<br/>Jacek<br/>Ewa                                                                                                   |\n| pt-PT               | Ines<br/>Cristiano                                                                                                                       |\n| pt-BR               | Camila<br/>Thiago<br/>Vitoria<br/>Ricardo                                                                                                |\n| ro-RO               | Carmen                                                                                                                                   |\n| ru-RU               | Maxim<br/>Tatyana                                                                                                                        |\n| es-US               | Lupe<br/>Pedro<br/>Penelope<br/>Miguel                                                                                                   |\n| es-MX               | Mia<br/>Andres                                                                                                                           |\n| es-ES               | Lucia<br/>Sergio<br/>Enrique<br/>Conchita                                                                                                |\n| sv-SE               | Elin<br/>Astrid                                                                                                                          |\n| tr-TR               | Filiz<br/>Burcu                                                                                                                          |\n","example":"Joanna"}},"description":"This asset's item."}},"asset_language_code":{"maxLength":10,"type":"string","description":"The asset's default language code.","example":"en-US","enum":["zh-CN","zh-TW","yue-CN","cmn-CN","da-DK","nl-NL","en-AU","en-NZ","en-GB","en-US","fr-CA","fr-FR","de-DE","it-IT","ja-JP","ko-KR","pl-PL","pt-BR","pt-PT","ro-RO","ru-RU","es-ES","es-MX","es-US","sv-SE","tr-TR"]},"category_id":{"maxLength":50,"type":"string","description":"The asset category's ID.","example":"bnGEj1yrRb6qlNMvyMK08g"},"category_name":{"maxLength":48,"type":"string","description":"The asset category's name.","example":"flows assets"},"archived":{"type":"boolean","description":"Whether the asset is archived.","example":false},"last_modified_time":{"type":"string","description":"The date and time when this data was last modified.","format":"date-time","example":"2022-02-15T09:27:15Z"},"archived_time":{"type":"string","description":"The time when this asset was archived.","format":"date-time","example":"2023-08-29T06:12:33Z"}},"description":"Information about the asset."}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `10005` <br>\n Asset name is too long. <br>\n**Error Code:** `10006` <br>\n The language is not supported. <br>\n**Error Code:** `10007` <br>\n Duplicate asset name <br>\n**Error Code:** `10013` <br>\n Asset description is too long. <br>\n**Error Code:** `10018` <br>\n Invalid asset type <br>\n**Error Code:** `10020` <br>\n Unable to create more. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rest/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_asset_library:write:admin","contact_center:write:asset_library:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_asset_library:write:admin"],"x-granular-scopes":["contact_center:write:asset_library:admin"]}}},"/contact_center/asset_library/assets/items":{"patch":{"tags":["Asset Library"],"summary":"Batch update asset items","description":"Batch updates asset items across multiple assets in a single request.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_asset_library:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:update:asset_library:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"BatchUpdateAssetItems","requestBody":{"description":"**Field usage by asset type**\n\n| Asset Type        | Applicable fields                                |\n| ----------------- | ------------------------------------------------ |\n| Audio (file)      | `upload_file_content`, `upload_file_name`        |\n| Audio (TTS)       | `asset_item_voice`, `asset_item_content`         |\n| Image             | `upload_file_content`, `upload_file_name`        |\n| Video             | `upload_file_content`, `upload_file_name`        |\n| Slides            | `upload_file_content`, `upload_file_name`        |\n| Text              | `asset_item_content`                             |\n| Saved Reply       | `asset_item_content`                             |","content":{"application/json":{"schema":{"required":["items"],"type":"object","properties":{"items":{"maxItems":50,"minItems":1,"type":"array","description":"The items to update. \n\n**Note** Ensure that the request body size does not exceed `100MB`.","items":{"required":["asset_id","asset_item_language"],"type":"object","properties":{"asset_id":{"type":"string","description":"The asset's unique identifier.","example":"WkdWelkzSnBjSEZwYjI0PQ11"},"asset_item_language":{"maxLength":10,"minLength":1,"type":"string","description":"The asset item's language code.","example":"en-US","enum":["zh-CN","zh-TW","yue-CN","cmn-CN","da-DK","nl-NL","en-AU","en-NZ","en-GB","en-US","fr-CA","fr-FR","de-DE","it-IT","ja-JP","ko-KR","pl-PL","pt-BR","pt-PT","ro-RO","ru-RU","es-ES","es-MX","es-US","sv-SE","tr-TR"]},"asset_item_name":{"maxLength":150,"minLength":1,"type":"string","description":"The asset item's name.","example":"english audio"},"asset_item_voice":{"maxLength":50,"type":"string","description":"The asset item's text-to-speech voice. This field only applies to the audio type.\n\nTo update a TTS asset item, only fill in this field and `asset_item_content`. Do not fill in `upload_file_name` and `upload_file_content`.\n\nNot every language supports TTS, and each language has different available voices.\n\n| asset_item_language | asset_item_voice                                                                                                                      |\n|---------------------|------------------------------------------------------------------------------------------------------------------------------------------|\n| yue-CN              | Hiujin                                                                                                                                   |\n| cmn-CN              | Zhiyu                                                                                                                                    |\n| da-DK               | Naja<br/>Sofie<br/>Mads                                                                                                                  |\n| nl-NL               | Laura<br/>Ruben<br/>Lotte                                                                                                                |\n| en-US               | Joanna<br/>Stephen<br/>Kimberly<br/>Matthew<br/>Danielle<br/>Gregory<br/>Kevin<br/>Salli<br/>Kendra<br/>Justin<br/>Joey<br/>Ivy<br/>Ruth |\n| en-GB               | Emma<br/>Brian<br/>Amy<br/>Arthur                                                                                                        |\n| en-AU               | Olivia<br/>Russell<br/>Nicole                                                                                                            |\n| en-NZ               | Aria                                                                                                                                     |\n| fr-FR               | Celine<br/>Lea<br/>Remi<br/>Mathieu                                                                                                      |\n| fr-CA               | Gabrielle<br/>Liam<br/>Chantal                                                                                                           |\n| de-DE               | Daniel<br/>Vicki<br/>Marlene<br/>Hans                                                                                                    |\n| it-IT               | Adriano<br/>Bianca<br/>Giorgio<br/>Carla                                                                                                 |\n| ja-JP               | Takumi<br/>Kazuha<br/>Tomoko<br/>Mizuki                                                                                                  |\n| ko-KR               | Seoyeon                                                                                                                                  |\n| pl-PL               | Ola<br/>Maja<br/>Jan<br/>Jacek<br/>Ewa                                                                                                   |\n| pt-PT               | Ines<br/>Cristiano                                                                                                                       |\n| pt-BR               | Camila<br/>Thiago<br/>Vitoria<br/>Ricardo                                                                                                |\n| ro-RO               | Carmen                                                                                                                                   |\n| ru-RU               | Maxim<br/>Tatyana                                                                                                                        |\n| es-US               | Lupe<br/>Pedro<br/>Penelope<br/>Miguel                                                                                                   |\n| es-MX               | Mia<br/>Andres                                                                                                                           |\n| es-ES               | Lucia<br/>Sergio<br/>Enrique<br/>Conchita                                                                                                |\n| sv-SE               | Elin<br/>Astrid                                                                                                                          |\n| tr-TR               | Filiz<br/>Burcu                                                                                                                          |\n","example":"Joanna"},"upload_file_name":{"maxLength":255,"type":"string","description":"The original file name. Required when `upload_file_content` is provided.","example":"hindi_aditi.wav"},"upload_file_content":{"maxLength":10000000,"type":"string","description":"The Base64-encoded file content. Required when `upload_file_name` is provided.","example":"UklGRiQAAABXQVZFZm10IBAAAA...(base64)"},"use_shared":{"type":"boolean","description":"When `true`, this item inherits the wrapper-level `shared_item.upload_file_content` and `shared_item.upload_file_name` if it omits its own per-item upload pair. When omitted, `null`, or `false`, this item does **not** inherit any shared upload pair; if it omits its own upload fields, the existing file on the asset item is preserved.\n\nPer-item upload fields, when present, always override the shared pair for that item regardless of `use_shared`.\n\n**Note:** Setting `use_shared` to `true` when `shared_item` is absent or empty does not raise an error; the item is treated as if it had no upload contribution from the shared pair, and the standard \"at least one updatable field\" validator decides whether the item is acceptable based on its remaining fields.","example":true,"default":false}}}},"shared_item":{"type":"object","properties":{"upload_file_content":{"maxLength":10000000,"type":"string","description":"The Base64-encoded file content. Required when `upload_file_name` is provided.","example":"UklGRiQAAABXQVZFZm10IBAAAA...(base64)"},"upload_file_name":{"maxLength":255,"type":"string","description":"The original file name. Required when `upload_file_content` is provided.","example":"hindi_aditi.wav"}},"description":"Optional shared item that supplies an opt-in upload pair (`upload_file_content` and `upload_file_name`). The pair is only inherited by items that explicitly set `use_shared` to `true` and omit their own per-item upload fields; items that do not set `use_shared` (or set it to `false`) preserve their existing file regardless of whether `shared_item` is present. Per-item upload fields, when present, always override the shared pair for that item regardless of `use_shared`.\n\n**Same-source pairing rule:** Within `shared_item`, `upload_file_content` and `upload_file_name` must be provided together or both omitted. Sending one without the other causes the entire request to be rejected with HTTP 400.\n\n**Decoded once:** When provided, the shared Base64 content is decoded and validated exactly once per request and reused across items. Invalid Base64 in the shared content rejects the entire request (it is not a per-item failure).\n\n**Size limits:** The shared content is subject to the per-content limit (`10 MB`) and is counted exactly once toward the total request limit (`100 MB`), regardless of how many items fall back to it."}}}}}},"responses":{"200":{"description":"**HTTP Status Code:** `200` <br>\n Asset items updated.\n\n ","content":{"application/json":{"schema":{"required":["failed_assets","succeeded_assets"],"type":"object","properties":{"succeeded_assets":{"type":"array","description":"The assets that were successfully updated.","items":{"required":["asset_id","asset_item_language"],"type":"object","properties":{"asset_id":{"type":"string","description":"The asset's unique identifier.","example":"WkdWelkzSnBjSEZwYjI0PQ11"},"asset_item_language":{"maxLength":10,"minLength":1,"type":"string","description":"The asset item's language code.","example":"en-US","enum":["zh-CN","zh-TW","yue-CN","cmn-CN","da-DK","nl-NL","en-AU","en-NZ","en-GB","en-US","fr-CA","fr-FR","de-DE","it-IT","ja-JP","ko-KR","pl-PL","pt-BR","pt-PT","ro-RO","ru-RU","es-ES","es-MX","es-US","sv-SE","tr-TR"]}}}},"failed_assets":{"type":"array","description":"The assets that failed to update.","items":{"required":["asset_id","asset_item_language","error_code","error_message"],"type":"object","properties":{"asset_id":{"type":"string","description":"The asset's unique identifier.","example":"WkdWelkzSnBjSEZwYjI0PQ11"},"asset_item_language":{"maxLength":10,"minLength":1,"type":"string","description":"The asset item's language code.","example":"en-US","enum":["zh-CN","zh-TW","yue-CN","cmn-CN","da-DK","nl-NL","en-AU","en-NZ","en-GB","en-US","fr-CA","fr-FR","de-DE","it-IT","ja-JP","ko-KR","pl-PL","pt-BR","pt-PT","ro-RO","ru-RU","es-ES","es-MX","es-US","sv-SE","tr-TR"]},"error_code":{"type":"integer","description":"The error code.\n\n* 10009 - Asset not found.\n* 10026 - Asset item not found.","example":10026},"error_message":{"type":"string","description":"The error message describing the reason for the failure.","example":"Asset item not found."}}}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `303` <br>\n Request array must not exceed 50 items. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_asset_library:write:admin","contact_center:update:asset_library:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_asset_library:write:admin"],"x-granular-scopes":["contact_center:update:asset_library:admin"]}}},"/contact_center/asset_library/assets/{assetId}":{"get":{"tags":["Asset Library"],"summary":"Get an asset","description":"Get information about an asset. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_asset_library:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:asset_library:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"getAnAsset","parameters":[{"name":"assetId","in":"path","description":"The asset's ID.","required":true,"schema":{"type":"string","example":"zeYjXoDOS_eV1QmTpj63PQ"}},{"name":"asset_identifier_type","in":"query","description":"How the path parameter is interpreted. `id` treats it as a system-generated unique identifier. `name` treats it as the resource name.\nWhen using `name`, the resource name must be URL-encoded per RFC 3986.","required":false,"schema":{"type":"string","example":"id","default":"id","enum":["id","name"]}},{"name":"asset_item_name","in":"query","description":"The asset item's name.","required":false,"schema":{"maxLength":150,"type":"string","example":"asset item name"}},{"name":"asset_language_code","in":"query","description":"The asset's language code enum.\nTo query based on multiple langauges, comma-separate the langauges.","required":false,"schema":{"maxLength":200,"type":"string","example":"en-US,ja-JP","enum":["zh-CN","zh-TW","yue-CN","cmn-CN","da-DK","nl-NL","en-AU","en-NZ","en-GB","en-US","fr-CA","fr-FR","de-DE","it-IT","ja-JP","ko-KR","pl-PL","pt-BR","pt-PT","ro-RO","ru-RU","es-ES","es-MX","es-US","sv-SE","tr-TR"]}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n\nAsset returned.","content":{"application/json":{"schema":{"type":"object","properties":{"asset_id":{"type":"string","description":"The asset's unique identifier.","example":"WkdWelkzSnBjSEZwYjI0PQ11"},"asset_name":{"maxLength":150,"type":"string","description":"The asset's name.","example":"asset name"},"asset_description":{"maxLength":256,"type":"string","description":"The asset's description.","example":"This is an audio asset."},"asset_type":{"maxLength":30,"type":"string","description":"The asset's type.","example":"audio","enum":["audio","image","slides","text","video","saved_reply"]},"modified_by":{"type":"string","description":"The ID of the user that last modified this data.","example":"IGTRVt3gQ2i-WjoUIjeZxw"},"last_modified_time":{"type":"string","description":"The date and time when this data was last modified.","format":"date-time","example":"2022-02-15T09:27:15Z"},"archived":{"type":"boolean","description":"Whether the asset is archived.","example":false},"archived_time":{"type":"string","description":"The time when this asset was archived.","format":"date-time","example":"2023-08-29T06:12:33Z"},"asset_items":{"type":"array","description":"A list of the asset's items.\n\n**Restriction**\nEach item must have a different `asset_item_language`, and only one item can have a `is_default` set to `true`.","items":{"type":"object","properties":{"asset_item_id":{"maxLength":50,"type":"string","description":"The asset item's ID.\nIf it is used to update the asset item, carrying this field indicates an update. Otherwise, it indicates adding an asset item.","example":"beYjXoDOS_eV1QmTpj63PQ"},"asset_item_name":{"maxLength":150,"minLength":1,"type":"string","description":"The asset item's name.","example":"english audio"},"asset_item_language":{"maxLength":10,"minLength":1,"type":"string","description":"The asset item's language code.","example":"en-US","enum":["zh-CN","zh-TW","yue-CN","cmn-CN","da-DK","nl-NL","en-AU","en-NZ","en-GB","en-US","fr-CA","fr-FR","de-DE","it-IT","ja-JP","ko-KR","pl-PL","pt-BR","pt-PT","ro-RO","ru-RU","es-ES","es-MX","es-US","sv-SE","tr-TR"]},"is_default":{"type":"boolean","description":"Whether this item is the asset's default. Each asset can only have one `isDefault` set to `true`.","example":true},"asset_item_content":{"maxLength":500,"type":"string","description":"The asset item's content.\nOnly works for `asset_type`s `text` and `saved_reply`.","example":"text asset content"},"asset_item_file_url":{"type":"string","description":"The asset item's file URL. \nThis data will only exist when the `asset_type` is one of `image`, `audio`, `video`, or `slides`.","example":"https://file.example.com/xxxx"},"asset_item_voice":{"maxLength":50,"type":"string","description":"The asset item's text-to-speech voice. Only works for the `audio` type.\n\nTo create a TTS asset item, fill in the `asset_item_file_url` and `asset_item_content`. You don't need to fill in the `upload_file` field.\n\nNot every language supports TTS, and each language has a different voice.\n\n| asset_item_language | asset_item_voice                                                                                                                      |\n|---------------------|------------------------------------------------------------------------------------------------------------------------------------------|\n| yue-CN              | Hiujin                                                                                                                                   |\n| cmn-CN              | Zhiyu                                                                                                                                    |\n| da-DK               | Naja<br/>Sofie<br/>Mads                                                                                                                  |\n| nl-NL               | Laura<br/>Ruben<br/>Lotte                                                                                                                |\n| en-US               | Joanna<br/>Stephen<br/>Kimberly<br/>Matthew<br/>Danielle<br/>Gregory<br/>Kevin<br/>Salli<br/>Kendra<br/>Justin<br/>Joey<br/>Ivy<br/>Ruth |\n| en-GB               | Emma<br/>Brian<br/>Amy<br/>Arthur                                                                                                        |\n| en-AU               | Olivia<br/>Russell<br/>Nicole                                                                                                            |\n| en-NZ               | Aria                                                                                                                                     |\n| fr-FR               | Celine<br/>Lea<br/>Remi<br/>Mathieu                                                                                                      |\n| fr-CA               | Gabrielle<br/>Liam<br/>Chantal                                                                                                           |\n| de-DE               | Daniel<br/>Vicki<br/>Marlene<br/>Hans                                                                                                    |\n| it-IT               | Adriano<br/>Bianca<br/>Giorgio<br/>Carla                                                                                                 |\n| ja-JP               | Takumi<br/>Kazuha<br/>Tomoko<br/>Mizuki                                                                                                  |\n| ko-KR               | Seoyeon                                                                                                                                  |\n| pl-PL               | Ola<br/>Maja<br/>Jan<br/>Jacek<br/>Ewa                                                                                                   |\n| pt-PT               | Ines<br/>Cristiano                                                                                                                       |\n| pt-BR               | Camila<br/>Thiago<br/>Vitoria<br/>Ricardo                                                                                                |\n| ro-RO               | Carmen                                                                                                                                   |\n| ru-RU               | Maxim<br/>Tatyana                                                                                                                        |\n| es-US               | Lupe<br/>Pedro<br/>Penelope<br/>Miguel                                                                                                   |\n| es-MX               | Mia<br/>Andres                                                                                                                           |\n| es-ES               | Lucia<br/>Sergio<br/>Enrique<br/>Conchita                                                                                                |\n| sv-SE               | Elin<br/>Astrid                                                                                                                          |\n| tr-TR               | Filiz<br/>Burcu                                                                                                                          |\n","example":"Joanna"}},"description":"This asset's item."}},"asset_language_code":{"maxLength":10,"type":"string","description":"The asset's default language code.","example":"en-US","enum":["zh-CN","zh-TW","yue-CN","cmn-CN","da-DK","nl-NL","en-AU","en-NZ","en-GB","en-US","fr-CA","fr-FR","de-DE","it-IT","ja-JP","ko-KR","pl-PL","pt-BR","pt-PT","ro-RO","ru-RU","es-ES","es-MX","es-US","sv-SE","tr-TR"]},"category_id":{"maxLength":50,"type":"string","description":"The asset category's ID.","example":"bnGEj1yrRb6qlNMvyMK08g"},"category_name":{"maxLength":48,"type":"string","description":"The asset category's name.","example":"flows assets"}},"description":"Information about the asset."}}}},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `10009` <br>\n Asset not found. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_asset_library:read:admin","contact_center:read:asset_library:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_asset_library:read:admin"],"x-granular-scopes":["contact_center:read:asset_library:admin"]}},"delete":{"tags":["Asset Library"],"summary":"Delete an asset","description":"Delete or achive an existing asset. \r\nYou can only operate assets that have not been assigned to other modules.\r\nOnly assets in archived status can be deleted. Set the asset to `archived` through this API before deleting.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_asset_library:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:delete:asset_library:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"deleteAnAsset","parameters":[{"name":"assetId","in":"path","description":"The asset's ID.","required":true,"schema":{"type":"string","example":"W_VATTk_Q5aW6z5rZtBxAQ"}},{"name":"archive","in":"query","description":"Should it be archived? After archiving, it won't be deleted immediately, but will be automatically deleted after a period of time. During this time, you can restore it.","required":false,"schema":{"type":"boolean","example":false}}],"responses":{"204":{"description":"**HTTP Status Code:** `204` Asset deleted or archived."},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `10009` <br>\n Asset not found. <br>\n**Error Code:** `10010` <br>\n Unable to delete asset directly, archive it first. <br>\n**Error Code:** `10002` <br>\n This asset is being used. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_asset_library:write:admin","contact_center:delete:asset_library:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_asset_library:write:admin"],"x-granular-scopes":["contact_center:delete:asset_library:admin"]}},"patch":{"tags":["Asset Library"],"summary":"Update an asset","description":"Update an asset.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_asset_library:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:write:asset_library:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"updateAnAsset","parameters":[{"name":"assetId","in":"path","description":"The asset's ID.","required":true,"schema":{"type":"string","example":"W_VATTk_Q5aW6z5rZtBxAQ"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"asset_description":{"maxLength":256,"type":"string","description":"The asset's description.","example":"This is an audio asset."},"asset_name":{"maxLength":150,"type":"string","description":"The asset's name.","example":"asset name"},"category_id":{"maxLength":50,"type":"string","description":"The asset category's ID.","example":"bnGEj1yrRb6qlNMvyMK08g"},"asset_items":{"type":"array","description":"A list of the asset's items.\n\n**Restriction**\nEach item must have a different `asset_item_language`, and only one item can have a `is_default` set to `true`.\n\nIf this field is not filled in, it means no modifications will be made to the asset items. \nIf this field is filled in, the provided data will overwrite the current asset items. \nTo update an existing asset item, fill in the `asset_item_id`. Otherwise, it will be considered adding a new asset item.\n\nThis API can only update or add asset items, not delete them.","items":{"type":"object","properties":{"asset_item_id":{"maxLength":50,"type":"string","description":"The asset item's ID.\nIf it is used to update the asset item, carrying this field indicates an update; otherwise, it indicates adding an asset item.","example":"beYjXoDOS_eV1QmTpj63PQ"},"asset_item_name":{"maxLength":150,"minLength":1,"type":"string","description":"The asset item's name.","example":"english audio"},"upload_file":{"type":"string","description":"The uploaded file, in binary format. \nOnly works for `asset_type`s `audio`, `image`, `video` and `slides`.\n\nThis field is not required if you create a TTS item when creating or updating an audio asset.\n\n**Allowed file extensions**\n* audio - mp3, wav\n* image - jpeg, jpg, jpe, jif, jfif, png, gif\n* slides - pdf\n* video - mp4, mov\n\n**Maximum supported filesize**\nA single request can upload a maximum of 100MB.\n**Single file maximum filesize**\n* audio - 10M\n* image - 10M\n* slides - 10M\n* video - 100M ","format":"binary","example":"Vm10V1UxUXhSWGxTYTJoV1lUSm9iMVZxUm5kamJGWjFZMGhPYVZadVFsaFhXSEJYVkd4WmQwNVlaRlZOVjA0MFdWVmFXbVZ0UmtsVWJGWlRaV3RKTUZkclVrSmxSVEI0VVd4V1RsSkVRVGs9"},"asset_item_content":{"maxLength":500,"type":"string","description":"The asset item's content.\nOnly works for `asset_type`s `text` and `saved_reply`.","example":"text asset content"},"is_default":{"type":"boolean","description":"Whether this item is the default of the asset. Each asset can only have one `isDefault` set to `true`.","example":true},"asset_item_voice":{"maxLength":50,"type":"string","description":"The asset item's text-to-speech voice. It only works for the audio type.\n\nWhen you want to create a TTS asset item, need to fill in the `asset_item_file_url` and `asset_item_content`, but don't need to fill in the `upload_file` field.\n\nNot every language supports TTS, and each language has a different voice.\n\n| asset_item_language | asset_item_voice                                                                                                                      |\n|---------------------|------------------------------------------------------------------------------------------------------------------------------------------|\n| yue-CN              | Hiujin                                                                                                                                   |\n| cmn-CN              | Zhiyu                                                                                                                                    |\n| da-DK               | Naja<br/>Sofie<br/>Mads                                                                                                                  |\n| nl-NL               | Laura<br/>Ruben<br/>Lotte                                                                                                                |\n| en-US               | Joanna<br/>Stephen<br/>Kimberly<br/>Matthew<br/>Danielle<br/>Gregory<br/>Kevin<br/>Salli<br/>Kendra<br/>Justin<br/>Joey<br/>Ivy<br/>Ruth |\n| en-GB               | Emma<br/>Brian<br/>Amy<br/>Arthur                                                                                                        |\n| en-AU               | Olivia<br/>Russell<br/>Nicole                                                                                                            |\n| en-NZ               | Aria                                                                                                                                     |\n| fr-FR               | Celine<br/>Lea<br/>Remi<br/>Mathieu                                                                                                      |\n| fr-CA               | Gabrielle<br/>Liam<br/>Chantal                                                                                                           |\n| de-DE               | Daniel<br/>Vicki<br/>Marlene<br/>Hans                                                                                                    |\n| it-IT               | Adriano<br/>Bianca<br/>Giorgio<br/>Carla                                                                                                 |\n| ja-JP               | Takumi<br/>Kazuha<br/>Tomoko<br/>Mizuki                                                                                                  |\n| ko-KR               | Seoyeon                                                                                                                                  |\n| pl-PL               | Ola<br/>Maja<br/>Jan<br/>Jacek<br/>Ewa                                                                                                   |\n| pt-PT               | Ines<br/>Cristiano                                                                                                                       |\n| pt-BR               | Camila<br/>Thiago<br/>Vitoria<br/>Ricardo                                                                                                |\n| ro-RO               | Carmen                                                                                                                                   |\n| ru-RU               | Maxim<br/>Tatyana                                                                                                                        |\n| es-US               | Lupe<br/>Pedro<br/>Penelope<br/>Miguel                                                                                                   |\n| es-MX               | Mia<br/>Andres                                                                                                                           |\n| es-ES               | Lucia<br/>Sergio<br/>Enrique<br/>Conchita                                                                                                |\n| sv-SE               | Elin<br/>Astrid                                                                                                                          |\n| tr-TR               | Filiz<br/>Burcu                                                                                                                          |\n","example":"Joanna"},"asset_item_language":{"maxLength":10,"minLength":1,"type":"string","description":"The asset item's language code.","example":"en-US","enum":["zh-CN","zh-TW","yue-CN","cmn-CN","da-DK","nl-NL","en-AU","en-NZ","en-GB","en-US","fr-CA","fr-FR","de-DE","it-IT","ja-JP","ko-KR","pl-PL","pt-BR","pt-PT","ro-RO","ru-RU","es-ES","es-MX","es-US","sv-SE","tr-TR"]}},"description":"This asset's item."}},"restore":{"type":"boolean","description":"Whether this asset should be restored. \nOnly assets in archived status can be restored. Take care to avoid name duplication with current assets. If there is a conflict, the name of this asset needs to be changed as well.  \nIf this field is `true`, this request will ignore updates to other fields apart from the initial `asset_name`.","example":true}},"description":"Information about the new asset."}}}},"responses":{"204":{"description":"**HTTP Status Code:** `204` Asset updated"},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `10005` <br>\n Asset name is too long. <br>\n**Error Code:** `10007` <br>\n Duplicate asset name <br>\n**Error Code:** `10013` <br>\n Asset description is too long. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `10009` <br>\n Asset not found. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_asset_library:write:admin","contact_center:write:asset_library:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_asset_library:write:admin"],"x-granular-scopes":["contact_center:write:asset_library:admin"]}}},"/contact_center/asset_library/assets/{assetId}/duplicate":{"post":{"tags":["Asset Library"],"summary":"Duplicate an asset","description":"Creates new assets based on an existing asset.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_asset_library:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:write:asset_library:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"duplicateAnAsset","parameters":[{"name":"assetId","in":"path","description":"The unique identifier of the asset to duplicate.","required":true,"schema":{"type":"string","example":"W_VATTk_Q5aW6z5rZtBxAQ"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["assets"],"type":"object","properties":{"assets":{"maxItems":10,"minItems":1,"type":"array","description":"List of new asset information to be created.","items":{"required":["asset_name"],"type":"object","properties":{"asset_name":{"maxLength":150,"type":"string","description":"The asset's name.","example":"asset name"},"asset_description":{"maxLength":256,"type":"string","description":"The asset's description.","example":"This is an audio asset."}},"description":"Information for creating a new asset."}}},"description":"Request body containing information about the new assets to be created."}}}},"responses":{"201":{"description":"**HTTP Status Code:** `201` Asset duplicated.","content":{"application/json":{"schema":{"required":["results"],"type":"object","properties":{"results":{"maxItems":10,"type":"array","description":"Array containing the duplication results for each asset.","items":{"required":["status"],"type":"object","properties":{"asset_id":{"type":"string","description":"The asset's unique identifier.","example":"WkdWelkzSnBjSEZwYjI0PQ11"},"asset_name":{"maxLength":150,"type":"string","description":"The asset's name.","example":"asset name"},"status":{"type":"string","description":"The duplication status of the asset.","example":"success","enum":["success","failed"]},"error":{"type":"string","description":"The reason for duplication failure. This field is returned only when duplication fails.","example":"Asset name is too long."}}}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `10009` <br>\n Asset not found. \nIf the source asset you input does not exist or is in an archived state, this error will occur. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_asset_library:write:admin","contact_center:write:asset_library:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_asset_library:write:admin"],"x-granular-scopes":["contact_center:write:asset_library:admin"]}}},"/contact_center/asset_library/assets/{assetId}/items":{"delete":{"tags":["Asset Library"],"summary":"Delete asset items","description":"Delete specific asset items.\nThe default asset item can't be deleted.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_asset_library:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:write:asset_library:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"Deleteassetitems","parameters":[{"name":"assetId","in":"path","description":"The asset's ID","required":true,"schema":{"type":"string","example":"zeYjXoDOS_eV1QmTpj63PQ"}}],"requestBody":{"description":"Delete specific asset items.","content":{"application/json":{"schema":{"type":"object","properties":{"asset_item_ids":{"type":"array","description":"The list of asset item IDs.","items":{"maxLength":50,"type":"string","description":"The asset item's ID.","example":"BeSjXoDOS_eV1QmTpj63PQ"}}}}}}},"responses":{"204":{"description":"**HTTP Status Code:** `204` Asset items deleted."},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `10009` <br>\n Asset not found. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_asset_library:write:admin","contact_center:write:asset_library:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_asset_library:write:admin"],"x-granular-scopes":["contact_center:write:asset_library:admin"]}}},"/contact_center/asset_library/categories":{"get":{"tags":["Asset Library"],"summary":"List asset categories","description":"List asset categories. \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_asset_library:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:asset_library:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"listAssetCategories","parameters":[{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of records returned within a single API call.","required":false,"schema":{"maximum":300,"minimum":1,"type":"integer","format":"int32","example":30,"default":30}},{"name":"category_scope","in":"query","description":"Query by category scope.","required":false,"schema":{"type":"string","example":"system"}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`    Asset categories returned.","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"maxLength":100,"type":"string","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":300,"minimum":1,"type":"integer","description":"The number of records returned within a single API call.","example":30,"default":30},"total_records":{"minimum":0,"type":"integer","description":"The total number of all the records available across pages.","example":10},"categories":{"type":"array","description":"Array of assets categories.","items":{"type":"object","properties":{"category_id":{"maxLength":50,"type":"string","description":"The asset category's ID.","example":"bnGEj1yrRb6qlNMvyMK08g"},"category_name":{"maxLength":48,"type":"string","description":"The asset category's name.","example":"flows assets"},"category_scope":{"maxLength":20,"type":"string","description":"The asset category's scope.","example":"system","enum":["system","agent"]}}}}}}}}},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_asset_library:read:admin","contact_center:read:asset_library:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_asset_library:read:admin"],"x-granular-scopes":["contact_center:read:asset_library:admin"]}},"post":{"tags":["Asset Library"],"summary":"Create an asset category","description":"Create an asset category.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_asset_library:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:write:asset_library:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"createAnAssetCategory","requestBody":{"content":{"application/json":{"schema":{"required":["category_name","category_scope"],"type":"object","properties":{"category_name":{"maxLength":48,"type":"string","description":"The asset category's name.","example":"flows assets"},"category_scope":{"maxLength":20,"type":"string","description":"The asset category's scope.","example":"system","enum":["system","agent"]}}}}}},"responses":{"201":{"description":"**HTTP Status Code:** `201`    Assets category created.","content":{"application/json":{"schema":{"type":"object","properties":{"category_id":{"maxLength":50,"type":"string","description":"The asset category's ID.","example":"bnGEj1yrRb6qlNMvyMK08g"},"category_name":{"maxLength":48,"type":"string","description":"The asset category's name.","example":"flows assets"},"category_scope":{"maxLength":20,"type":"string","description":"The asset category's scope.","example":"system","enum":["system","agent"]}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `10015` <br>\n Duplicate category name. <br>\n**Error Code:** `10020` <br>\n Unable to create more. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_asset_library:write:admin","contact_center:write:asset_library:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_asset_library:write:admin"],"x-granular-scopes":["contact_center:write:asset_library:admin"]}}},"/contact_center/asset_library/categories/{categoryId}":{"get":{"tags":["Asset Library"],"summary":"Get an asset category","description":"Get an asset category.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_asset_library:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:asset_library:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"getAnAssetCategory","parameters":[{"name":"categoryId","in":"path","description":"The asset category's ID.","required":true,"schema":{"maxLength":50,"type":"string","example":"W_VATTk_Q5aW6z5rZtBxAQ"}},{"name":"asset_category_identifier_type","in":"query","description":"How the path parameter is interpreted. `id` treats it as a system-generated unique identifier. `name` treats it as the resource name.\nWhen using `name`, the resource name must be URL-encoded per RFC 3986.","required":false,"schema":{"type":"string","example":"id","default":"id","enum":["id","name"]}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`    Assets category returned.","content":{"application/json":{"schema":{"type":"object","properties":{"category_id":{"maxLength":50,"type":"string","description":"The asset category's ID.","example":"bnGEj1yrRb6qlNMvyMK08g"},"category_name":{"maxLength":48,"type":"string","description":"The asset category's name.","example":"flows assets"},"category_scope":{"maxLength":20,"type":"string","description":"The asset category's scope.","example":"system","enum":["system","agent"]}}}}}},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `10023` <br>\n Asset category not found. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_asset_library:read:admin","contact_center:read:asset_library:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_asset_library:read:admin"],"x-granular-scopes":["contact_center:read:asset_library:admin"]}},"delete":{"tags":["Asset Library"],"summary":"Delete an asset category","description":"Delete an existing asset category.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_asset_library:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:delete:asset_library:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"deleteAnAssetCategory","parameters":[{"name":"categoryId","in":"path","description":"The assets category's ID.","required":true,"schema":{"type":"string","example":"W_VATTk_Q5aW6z5rZtBxAQ"}}],"responses":{"204":{"description":"**HTTP Status Code:** `204` Asset deleted."},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `10023` <br>\n Asset category not found. <br>\n**Error Code:** `10019` <br>\n This asset category is being used. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_asset_library:write:admin","contact_center:delete:asset_library:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_asset_library:write:admin"],"x-granular-scopes":["contact_center:delete:asset_library:admin"]}},"patch":{"tags":["Asset Library"],"summary":"Update an asset category","description":"Update an asset category.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_asset_library:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:write:asset_library:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"updateAnAssetCategory","parameters":[{"name":"categoryId","in":"path","description":"The assets category's ID.","required":true,"schema":{"type":"string","example":"W_VATTk_Q5aW6z5rZtBxAQ"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"category_name":{"maxLength":48,"type":"string","description":"The asset category's name.","example":"flows assets"}}}}}},"responses":{"204":{"description":"**HTTP Status Code:** `204` The assets category updated"},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `10015` <br>\n Duplicate category name. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `10023` <br>\n Asset category not found. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_asset_library:write:admin","contact_center:write:asset_library:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_asset_library:write:admin"],"x-granular-scopes":["contact_center:write:asset_library:admin"]}}},"/contact_center/block_list_rules/ip_addresses":{"get":{"tags":["Block List Rules"],"summary":"List block list rules for IP addresses","description":"List block list rules for IP addresses.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_block_list_rules:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:block_list_rules:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"listBlockListRulesIpAddresses","parameters":[{"name":"match_type","in":"query","description":"The block list rule's match type. \n * `ip_address` — Matches a specific IP address.","required":false,"schema":{"type":"string","example":"ip_address","enum":["ip_address"]}},{"name":"status","in":"query","description":"The block list rule's status.","required":false,"schema":{"type":"string","example":"active","enum":["active","inactive"]}},{"name":"ip_address","in":"query","description":"The IP address that the block list rule applies to.","required":false,"schema":{"type":"string","example":"192.168.1.100"}},{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of records returned in a single API call.","required":false,"schema":{"maximum":300,"type":"integer","format":"int32","example":30,"default":30}}],"responses":{"200":{"description":"Block list rules of IP addresses returned.","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"maxLength":100,"type":"string","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":100,"minimum":1,"type":"integer","description":"The number of records returned within a single API call.","example":10,"default":10},"total_records":{"minimum":0,"type":"integer","description":"The total number of all records available across pages.","example":10},"ip_address_block_list_rules":{"type":"array","description":"Information about the block list rules of IP addresses.","items":{"required":["created_time","ip_address","ip_address_block_list_rule_id","last_modified_time","match_type","status"],"type":"object","properties":{"ip_address_block_list_rule_id":{"type":"string","description":"The block list rule's unique identifier.","example":"zeYjXoDOS_eV1QmTpj63PQ"},"ip_address":{"type":"string","description":"The IP address the block list rule applies to.","example":"192.168.1.100"},"match_type":{"type":"string","description":"The block list rule's match type. \n * `ip_address` — Matches a specific IP address.","example":"ip_address","enum":["ip_address"]},"status":{"type":"string","description":"The block list rule's status.","example":"active","enum":["active","inactive"]},"comment":{"maxLength":100,"type":"string","description":"The comment about the block list rule.","example":"Suspicious activity detected"},"created_time":{"type":"string","description":"The date and time when the block list rule was created.","format":"date-time","example":"2022-02-15T09:27:15Z"},"last_modified_time":{"type":"string","description":"The date and time when the block list rule was last modified.","format":"date-time","example":"2022-02-15T09:27:15Z"}}}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `300` <br>\n Validation failed. <br>\n**Error Code:** `1019` <br>\n Feature OP flag is not enabled. <br>\n**Error Code:** `300` <br>\n Invalid `match_type`. <br>\n**Error Code:** `300` <br>\n Invalid `ip_address`. <br>\n**Error Code:** `300` <br>\n Invalid `status`. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"},"500":{"description":"**HTTP Status Code:** `500` <br>\n Internal Server Error  \n\n "}},"security":[{"openapi_oauth":["contact_center_block_list_rules:read:admin","contact_center:read:block_list_rules:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_block_list_rules:read:admin"],"x-granular-scopes":["contact_center:read:block_list_rules:admin"]}},"post":{"tags":["Block List Rules"],"summary":"Create block list rules for IP addresses","description":"Create block list rules for IP addresses. Supports up to 20 block list rules per request. Valid block list rules are created while invalid block list rules are rejected with detailed error messages. Returns `201` if all are valid, `207` for partial success, or `400` if all are invalid.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_block_list_rules:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:write:block_list_rules:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"createBlockListRulesIpAddresses","requestBody":{"content":{"application/json":{"schema":{"required":["ip_address_block_list_rules"],"type":"object","properties":{"ip_address_block_list_rules":{"maxItems":20,"minItems":1,"type":"array","description":"Information about the block list rules for IP addresses. You can create a maximum number of 20 rules.","items":{"required":["ip_address","match_type","status"],"type":"object","properties":{"status":{"type":"string","description":"The block list rule's status.","example":"active","enum":["active","inactive"]},"match_type":{"type":"string","description":"The block list rule's match type. \n * `ip_address` - Matches a specific IP address.","example":"ip_address","enum":["ip_address"]},"ip_address":{"type":"string","description":"The IP address the block list rule applies to.","example":"192.168.1.100"},"comment":{"maxLength":50,"type":"string","description":"The comment about the block list rule.","example":"Suspicious activity detected"}}}}}}}}},"responses":{"201":{"description":"**HTTP Status Code:** `201`\nAll block list rules of IP addresses successfully created.\n**HTTP Status Code:** `207`\nBlock list rules of IP addresses partially created. Valid block list rules are created while invalid block list rules are rejected with detailed error messages.","content":{"application/json":{"schema":{"required":["ip_address_block_list_rules"],"type":"object","properties":{"ip_address_block_list_rules":{"maxItems":20,"type":"array","description":"Information about the created block list rules.","items":{"required":["ip_address","ip_address_block_list_rule_id","match_type","status"],"type":"object","properties":{"ip_address_block_list_rule_id":{"type":"string","description":"The block list rule's unique identifier.","example":"zeYjXoDOS_eV1QmTpj63PQ"},"status":{"type":"string","description":"The status of the block list rule.","example":"active","enum":["active","inactive"]},"match_type":{"type":"string","description":"The block list rule's match type. \n * `ip_address` - Matches a specific IP address.","example":"ip_address","enum":["ip_address"]},"ip_address":{"type":"string","description":"The IP address the block list rule applies to.","example":"192.168.1.100"},"comment":{"type":"string","description":"The comment about the block list rule.","example":"Suspicious activity detected"},"created_time":{"type":"string","description":"The date and time when the block list rule was created.","format":"date-time","example":"2022-02-15T09:27:15Z"},"last_modified_time":{"type":"string","description":"The date and time when the block list rule was last modified.","format":"date-time","example":"2022-02-15T09:27:15Z"}}}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `300` <br>\n Validation failed. <br>\n**Error Code:** `1508` <br>\n Invalid IP address. <br>\n**Error Code:** `1507` <br>\n Duplicated block list rule. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_block_list_rules:write:admin","contact_center:write:block_list_rules:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_block_list_rules:write:admin"],"x-granular-scopes":["contact_center:write:block_list_rules:admin"]}},"delete":{"tags":["Block List Rules"],"summary":"Delete IP addresses' block list rules","description":"Delete block list rules of IP addresses. \nSupports up to 20 block list rules per request. No block list rules are deleted unless all IDs in the request are valid.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_block_list_rules:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:delete:block_list_rules:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"deleteBlockListRuleIpAddresses","requestBody":{"content":{"application/json":{"schema":{"required":["ip_address_block_list_rule_ids"],"type":"object","properties":{"ip_address_block_list_rule_ids":{"maxItems":20,"minItems":1,"type":"array","description":"A list of block list rule IDs to delete.","example":["zeYjXoDOS_eV1QmTpj63PQ","abCdEfGhI_jKlMnOpQrStU"],"items":{"type":"string","example":"zeYjXoDOS_eV1QmTpj63PQ"}}}}}}},"responses":{"204":{"description":"All IP address block list rules were successfully deleted."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `1019` <br>\n Feature OP flag is not enabled. <br>\n**Error Code:** `300` <br>\n `ip_address_block_list_rule_ids` is required. <br>\n**Error Code:** `300` <br>\n Block list rule supports a maximum of 20. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1505` <br>\n Block list rules do not exist: `ipAddressBlockListRuleId1`, `ipAddressBlockListRuleId2`. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"},"500":{"description":"**HTTP Status Code:** `500` <br>\n Internal Server Error  \n\n "}},"security":[{"openapi_oauth":["contact_center_block_list_rules:write:admin","contact_center:delete:block_list_rules:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_block_list_rules:write:admin"],"x-granular-scopes":["contact_center:delete:block_list_rules:admin"]}}},"/contact_center/block_list_rules/ip_addresses/{ipAddressBlockListRuleId}":{"get":{"tags":["Block List Rules"],"summary":"Get a block list rule of IP addresses","description":"Get a block list rule of IP addresses.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_block_list_rules:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:block_list_rules:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"getBlockListRuleIpAddress","parameters":[{"name":"ipAddressBlockListRuleId","in":"path","description":"The ID of the block list rule.","required":true,"schema":{"type":"string","example":"zeYjXoDOS_eV1QmTpj63PQ"}}],"responses":{"200":{"description":"Block list rule of IP addresses returned.","content":{"application/json":{"schema":{"required":["created_time","ip_address","ip_address_block_list_rule_id","last_modified_time","match_type","status"],"type":"object","properties":{"ip_address_block_list_rule_id":{"type":"string","description":"The ID of the block list rule.","example":"zeYjXoDOS_eV1QmTpj63PQ"},"ip_address":{"type":"string","description":"The IP address the block list rule applies to.","example":"192.168.1.100"},"match_type":{"type":"string","description":"The match type of the block list rule. \n * `ip_address` — Matches a specific IP address","example":"ip_address","enum":["ip_address"]},"status":{"type":"string","description":"The status of the block list rule.","example":"active","enum":["active","inactive"]},"comment":{"maxLength":100,"type":"string","description":"The comment about the block list rule.","example":"Suspicious activity detected"},"created_time":{"type":"string","description":"The date and time when the block list rule was created.","format":"date-time","example":"2022-02-15T09:27:15Z"},"last_modified_time":{"type":"string","description":"The date and time when the block list rule was last modified.","format":"date-time","example":"2022-02-15T09:27:15Z"}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `1019` <br>\n Feature OP flag is not enabled. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1505` <br>\n Block list rule does not exist: {ipAddressBlockListRuleId}. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "},"500":{"description":"**HTTP Status Code:** `500` <br>\n Internal Server Error  \n\n "}},"security":[{"openapi_oauth":["contact_center_block_list_rules:read:admin","contact_center:read:block_list_rules:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_block_list_rules:read:admin"],"x-granular-scopes":["contact_center:read:block_list_rules:admin"]}}},"/contact_center/block_list_rules/phone_numbers":{"get":{"tags":["Block List Rules"],"summary":"List block list rules of phone numbers","description":"List block list rules of phone numbers.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_block_list_rules:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:block_list_rules:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"listBlockListRulesPhoneNumbers","parameters":[{"name":"match_type","in":"query","description":"The block list rule's match type. \n * `phone_number` - A specific phone number \n * `prefix` - All numbers starting with the specified digits","required":false,"schema":{"type":"string","example":"phone_number","enum":["phone_number","prefix"]}},{"name":"status","in":"query","description":"The block list rule's status.","required":false,"schema":{"type":"string","example":"active","enum":["active","inactive"]}},{"name":"phone_number","in":"query","description":"The phone number or prefix the block list rule applies to.","required":false,"schema":{"type":"string","example":"18005550100"}},{"name":"channel","in":"query","description":"The channel the block list rule applies to. \n\nUse comma-separated values to specify multiple channels. \n\n * `voice` - Voice channel. \n * `sms` - SMS channel.","required":false,"schema":{"type":"string","example":"voice, sms"}},{"name":"direction","in":"query","description":"The call direction the block list rule applies to. \n\nUse comma-separated values to specify multiple directions. \n\n * `inbound` - Inbound direction. \n * `outbound` - Outbound direction.","required":false,"schema":{"type":"string","example":"inbound, outbound"}},{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of records returned in a single API call.","required":false,"schema":{"maximum":300,"type":"integer","format":"int32","example":30,"default":30}}],"responses":{"200":{"description":"Block list rules of phone numbers returned.","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"maxLength":100,"type":"string","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":300,"type":"integer","description":"The number of records returned in a single API call.","example":30,"default":30},"total_records":{"minimum":0,"type":"integer","description":"The total number of all records available across pages.","example":10},"phone_block_list_rules":{"type":"array","description":"Information about the block list rules of phone numbers.","items":{"required":["channel","country_iso_code","created_time","direction","last_modified_time","match_type","phone_block_list_rule_id","phone_number","status"],"type":"object","properties":{"phone_block_list_rule_id":{"type":"string","description":"The block list rule's ID.","example":"zeYjXoDOS_eV1QmTpj63PQ"},"status":{"type":"string","description":"The block list rule's status.","example":"active","enum":["active","inactive"]},"match_type":{"type":"string","description":"The block list rule's match type. \n * `phone_number` - A specific phone number. \n * `prefix` - All numbers starting with the specified digits.","example":"prefix","enum":["phone_number","prefix"]},"country_iso_code":{"type":"string","description":"The [ISO country code](/docs/api/references/abbreviations/#countries).","example":"US"},"phone_number":{"type":"string","description":"The phone number or prefix the block list rule applies to.","example":"1800"},"exceptions":{"type":"array","description":"The phone numbers excluded from the block list rule. Only applies to `prefix` match type.","example":["8005550101"],"items":{"type":"string"}},"direction":{"type":"array","description":"The call direction the block list rule applies to.","items":{"type":"string","enum":["inbound","outbound"]}},"channel":{"type":"array","description":"The channel the block list rule applies to.","items":{"type":"string","enum":["voice","sms"]}},"comment":{"maxLength":50,"type":"string","description":"The comment about the block list rule.","example":"Spam caller"},"created_time":{"type":"string","description":"The date and time when the block list rule was created.","format":"date-time","example":"2022-02-15T09:27:15Z"},"last_modified_time":{"type":"string","description":"The date and time when the block list rule was last modified.","format":"date-time","example":"2022-02-15T09:27:15Z"}}}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `300` <br>\n Invalid `match_type`. <br>\n**Error Code:** `300` <br>\n Invalid `status`. <br>\n**Error Code:** `300` <br>\n Invalid `direction`. <br>\n**Error Code:** `300` <br>\n Invalid `channel`. <br>\n**Error Code:** `1019` <br>\n Feature OP flag is not enabled. <br>\n**Error Code:** `300` <br>\n Invalid phone number. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"},"500":{"description":"**HTTP Status Code:** `500` <br>\n Internal Server Error  \n\n "}},"security":[{"openapi_oauth":["contact_center_block_list_rules:read:admin","contact_center:read:block_list_rules:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_block_list_rules:read:admin"],"x-granular-scopes":["contact_center:read:block_list_rules:admin"]}},"post":{"tags":["Block List Rules"],"summary":"Create block list rules for phone numbers","description":"Create block list rules for phone numbers. Supports up to 20 block list rules per request. Valid block list rules are created while invalid block list rules are rejected with detailed error messages. Returns `201` if all are valid, `207` for partial success, or `400` if all are invalid.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_block_list_rules:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:write:block_list_rules:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"createBlockListRulesPhoneNumbers","requestBody":{"content":{"application/json":{"schema":{"required":["phone_block_list_rules"],"type":"object","properties":{"phone_block_list_rules":{"maxItems":20,"minItems":1,"type":"array","description":"Information about the block list rules for phone numbers. You can create a maximum of 20 rules.","items":{"required":["channel","country_iso_code","direction","match_type","phone_number","status"],"type":"object","properties":{"status":{"type":"string","description":"The block list rule's status.","example":"active","enum":["active","inactive"]},"match_type":{"type":"string","description":"The block list rule's match type.\n\n * `phone_number` - Matches a specific phone number. \n * `prefix` - Matches all numbers starting with the specified digits.","example":"prefix","enum":["phone_number","prefix"]},"country_iso_code":{"type":"string","description":"The [ISO country code](/docs/api/rest/other-references/abbreviation-lists/#countries).","example":"US"},"phone_number":{"type":"string","description":"The phone number or prefix the block list rule applies to.","example":"1800"},"exceptions":{"maxItems":30,"type":"array","description":"The phone numbers excluded from the block list rule. Only applies to `prefix` match type.\n\n**Note:**\n* Must start with the prefix.\n* Do not include the country code.\n* Phone numbers are digits only.","example":["8005550101","8005550102"],"items":{"type":"string"}},"direction":{"maxItems":2,"minItems":1,"type":"array","description":"The call direction the block list rule applies to.","example":["inbound"],"items":{"type":"string","enum":["inbound","outbound"]}},"channel":{"maxItems":2,"minItems":1,"type":"array","description":"The channel the block list rule applies to.","example":["voice"],"items":{"type":"string","enum":["voice","sms"]}},"comment":{"maxLength":50,"type":"string","description":"The comment about the block list rule.","example":"Spam caller"}}}}}}}}},"responses":{"201":{"description":"**HTTP Status Code:** `201`\nAll block list rules of phone numbers successfully created.\n**HTTP Status Code:** `207`\nBlock list rules of phone number partially created. Valid block list rules are created while invalid block list rules are rejected with detailed error messages.","content":{"application/json":{"schema":{"required":["phone_block_list_rules"],"type":"object","properties":{"phone_block_list_rules":{"maxItems":20,"type":"array","description":"Information about the created block list rules.","items":{"required":["channel","country_iso_code","direction","match_type","phone_block_list_rule_id","phone_number","status"],"type":"object","properties":{"phone_block_list_rule_id":{"type":"string","description":"The block list rule's unique identifier.","example":"zeYjXoDOS_eV1QmTpj63PQ"},"status":{"type":"string","description":"The block list rule's status.","example":"active","enum":["active","inactive"]},"match_type":{"type":"string","description":"The block list rule's match type.\n\n * `phone_number` - Matches a specific phone number. \n * `prefix` - Matches all numbers starting with the specified digits.","example":"prefix","enum":["phone_number","prefix"]},"country_iso_code":{"type":"string","description":"The [ISO country code](/docs/api/rest/other-references/abbreviation-lists/#countries).","example":"US"},"phone_number":{"type":"string","description":"The phone number or prefix the block list rule applies to.","example":"1800"},"exceptions":{"type":"array","description":"The phone numbers excluded from the block list rule. Only applies to `prefix` match type.","example":["8005550101","8005550102"],"items":{"type":"string"}},"direction":{"type":"array","description":"The call direction the block list rule applies to.","items":{"type":"string","enum":["inbound","outbound"]}},"channel":{"type":"array","description":"The channel the block list rule applies to.","items":{"type":"string","enum":["voice","sms"]}},"comment":{"type":"string","description":"The comment about the block list rule.","example":"Spam caller"},"created_time":{"type":"string","description":"The date and time when the block list rule was created.","format":"date-time","example":"2022-02-15T09:27:15Z"},"last_modified_time":{"type":"string","description":"The date and time when the block list rule was last modified.","format":"date-time","example":"2022-02-15T09:27:15Z"}}}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `1019` <br>\n Feature OP flag is not enabled. <br>\n**Error Code:** `300` <br>\n `phone_block_list_rules` is required. <br>\n**Error Code:** `300` <br>\n Block list rule supports a maximum of 20. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"},"500":{"description":"**HTTP Status Code:** `500` <br>\n Internal Server Error  \n\n "}},"security":[{"openapi_oauth":["contact_center_block_list_rules:write:admin","contact_center:write:block_list_rules:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_block_list_rules:write:admin"],"x-granular-scopes":["contact_center:write:block_list_rules:admin"]}},"delete":{"tags":["Block List Rules"],"summary":"Delete phone numbers' block list rules","description":"Delete block list rules of phone numbers. Supports up to 20 block list rules per request. No block list rules are deleted unless all IDs in the request are valid.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_block_list_rules:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:delete:block_list_rules:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"deleteBlockListRulePhoneNumbers","requestBody":{"content":{"application/json":{"schema":{"required":["phone_block_list_rule_ids"],"type":"object","properties":{"phone_block_list_rule_ids":{"maxItems":20,"minItems":1,"type":"array","description":"A list of IDs of block list rules to delete.","example":["zeYjXoDOS_eV1QmTpj63PQ","abCdEfGhI_jKlMnOpQrStU"],"items":{"type":"string","example":"zeYjXoDOS_eV1QmTpj63PQ"}}}}}}},"responses":{"204":{"description":"All block list rules of phone numbers successfully deleted."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `1019` <br>\n Feature OP flag is not enabled. <br>\n**Error Code:** `300` <br>\n `phone_block_list_rule_ids` is required. <br>\n**Error Code:** `300` <br>\n Block list rule supports a maximum of 20. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1505` <br>\n Block list rules do not exist: `phoneBlockListRuleId1`, `phoneBlockListRuleId2`. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"},"500":{"description":"**HTTP Status Code:** `500` <br>\n Internal Server Error  \n\n "}},"security":[{"openapi_oauth":["contact_center_block_list_rules:write:admin","contact_center:delete:block_list_rules:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_block_list_rules:write:admin"],"x-granular-scopes":["contact_center:delete:block_list_rules:admin"]}}},"/contact_center/block_list_rules/phone_numbers/{phoneBlockListRuleId}":{"get":{"tags":["Block List Rules"],"summary":"Get a block list rule of phone numbers","description":"Get a block list rule of phone numbers.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_block_list_rules:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:block_list_rules:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"getBlockListRulePhoneNumber","parameters":[{"name":"phoneBlockListRuleId","in":"path","description":"The block list rule's ID.","required":true,"schema":{"type":"string","example":"zeYjXoDOS_eV1QmTpj63PQ"}}],"responses":{"200":{"description":"Block list rule of phone numbers returned.","content":{"application/json":{"schema":{"required":["channel","country_iso_code","created_time","direction","last_modified_time","match_type","phone_block_list_rule_id","phone_number","status"],"type":"object","properties":{"phone_block_list_rule_id":{"type":"string","description":"The block list rule's ID.","example":"zeYjXoDOS_eV1QmTpj63PQ"},"status":{"type":"string","description":"The block list rule's status.","example":"active","enum":["active","inactive"]},"match_type":{"type":"string","description":"The block list rule's match type. \n * `phone_number` — A specific phone number. \n * `prefix` — All numbers starting with the specified digits.","example":"prefix","enum":["phone_number","prefix"]},"country_iso_code":{"type":"string","description":"The [ISO country code](/docs/api/rest/other-references/abbreviation-lists/#countries).","example":"US"},"phone_number":{"type":"string","description":"The phone number or prefix the block list rule applies to.","example":"1800"},"exceptions":{"type":"array","description":"The phone numbers excluded from the block list rule. Only applies to `prefix` match type.","example":["8005550101"],"items":{"type":"string"}},"direction":{"type":"array","description":"The call direction the block list rule applies to.","items":{"type":"string","enum":["inbound","outbound"]}},"channel":{"type":"array","description":"The channel the block list rule applies to.","items":{"type":"string","enum":["voice","sms"]}},"comment":{"maxLength":50,"type":"string","description":"The comment about the block list rule.","example":"Spam caller"},"created_time":{"type":"string","description":"The date and time when the block list rule was created.","format":"date-time","example":"2022-02-15T09:27:15Z"},"last_modified_time":{"type":"string","description":"The date and time when the block list rule was last modified.","format":"date-time","example":"2022-02-15T09:27:15Z"}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `1019` <br>\n Feature OP flag is not enabled. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1505` <br>\n Blocklist rule does not exist: {phoneBlockListRuleId}. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"},"500":{"description":"**HTTP Status Code:** `500` <br>\n Internal Server Error  \n\n "}},"security":[{"openapi_oauth":["contact_center_block_list_rules:read:admin","contact_center:read:block_list_rules:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_block_list_rules:read:admin"],"x-granular-scopes":["contact_center:read:block_list_rules:admin"]}}},"/contact_center/engagements/{engagementId}/recording/{command}":{"put":{"tags":["Call Control"],"summary":"Control an engagement's recording","description":"Controls the recording state for an engagement.\n\nThis request is only valid for video and voice engagements. Calling this API for other channel types is invalid.\n\nAcceptance of a request and response of `HTTP 204 No Content` only ensures there were no validation errors with the request.\n\n**Note:** The **Control an engagement's recording** API only works with third-party apps if the account admin has enabled the **Allow Open API to pause and resume automatic call recording** setting. For more details, refer to this [support article](https://support.zoom.com/hc/en/article?id=zm_kb&sysparm_article=KB0059069).\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_engagement:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:update:engagement_recording_control:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"engagementRecordingControl","parameters":[{"name":"engagementId","in":"path","description":"The engagement event's unique ID.","required":true,"schema":{"type":"string","example":"W_VATTk_Q5aW6z5rZtBxAQ"}},{"name":"command","in":"path","description":"The command for the recording control.","required":true,"schema":{"type":"string","example":"pause","enum":["pause","resume"]}}],"responses":{"204":{"description":"**HTTP Status:** `204` **No Content** Request accepted for processing with no validation errors. This does not imply successful execution of the command."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `2814` <br>\n Cannot use this recording control command with this engagement's channel type. <br>\n**Error Code:** `2815` <br>\n The engagement is not assigned to an agent. It is not being recorded. <br>\n**Error Code:** `2818` <br>\n Cannot change recording state from {current_state} to {command_state}. <br>\n**Error Code:** `2819` <br>\n Recording is stopped. <br>\n**Error Code:** `2808` <br>\n Recording is in progress. There is no need to open it again. <br>\n**Error Code:** `2809` <br>\n Start recording first. Cannot be converted to {state}. <br>\n**Error Code:** `2810` <br>\n No need to repeat the operation. The current state is already {state}. <br>\n**Error Code:** `2812` <br>\n The recording control's current state is {current_state}, and it cannot be converted to {command_state}. <br>\n**Error Code:** `300` <br>\n Invalid request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `20006` <br>\n Account not found. <br>\n**Error Code:** `2816` <br>\n The system could not find the session for the engagement. <br>\n**Error Code:** `2817` <br>\n There is no recording for this engagement. <br>\n**Error Code:** `2901` <br>\n Engagement does not exist: {0}. <br>\n**Error Code:** `2906` <br>\n There are no agents on the call. <br>\n"},"409":{"description":"**HTTP Status Code:** `409` <br>\n Conflict  \n\n **Error Code:** `2907` <br>\n There was a problem processing the recording control request. <br>\n**Error Code:** `2908` <br>\n The operation was partially completed. Try again. <br>\n**Error Code:** `2909` <br>\n There was a problem processing the recording control request. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_engagement:write:admin","contact_center:update:engagement_recording_control:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_engagement:write:admin"],"x-granular-scopes":["contact_center:update:engagement_recording_control:admin"]}}},"/contact_center/users/{userId}/commands":{"post":{"tags":["Call Control"],"summary":"Command control of a user","description":"Issue a command to trigger an action for a Contact Center user.\n- command - `make_call` initiates an outbound voice engagement.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_user:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:write:user_control:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"userControl","parameters":[{"name":"userId","in":"path","description":"The user identifier. This can be the Meetings user ID `user_id`, the Contact Center user ID `cc_user_id`, an email address, or [the 'me' value](/docs/api/using-zoom-apis/#the-me-keyword) to refer to the user associated with the access token.","required":true,"schema":{"type":"string","example":"G4XhxFgnRQGSa2y7loqw4w"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["channel","command"],"type":"object","properties":{"command":{"type":"string","description":"Control commands.\n\n- `make_call` - The `cc_queue_id` field is required.","example":"make_call","enum":["make_call","answer_call","hold_call","unhold_call","end_call","conference_warm_invite"]},"channel":{"type":"string","description":"The channel type. Currently only supports `voice`.","example":"voice","enum":["voice"]},"params":{"type":"object","properties":{"device_id":{"maxLength":64,"type":"string","description":"The device ID. Only valid and `Required` when `channel` is `voice`.","example":"ZoomClient-CCITab-Tnxa76dLQ_SZwxmCP3bIOA"},"cc_queue_id":{"maxLength":36,"type":"string","description":"The Contact Center queue identifier.","example":"a4lCNeq2SzKbgkcDVbjCZQ"},"queue_caller_id_number":{"maxLength":64,"type":"string","description":"The queue's caller ID number, in E.164 format, configured inside the queue. Only valid and `Optional` when `command` is `make_call`.","example":"+14155552641"},"consumer_number":{"maxLength":32,"type":"string","description":"The customer's phone number. Only valid and `Required` when `command` is `make_call`.","example":"+14155552641"},"consumer_display_name":{"maxLength":64,"type":"string","description":"The consumer's name. Only valid and `Optional` when `command` is `make_call`.","example":"Jill Chill"},"reservation_id":{"maxLength":64,"type":"string","description":"The reservation's ID. Only valid and `Required` when `command` is `answer_call`.","example":"ZWRB4E457925500218F7883FC12D151AA9F"},"engagement_id":{"maxLength":64,"type":"string","description":"The engagement's ID. Only valid and `Required` when `command` is `hold_call`, `unhold_call`, or `end_call` or `conference_warm_invite`.","example":"TTv5RIhDRWS6Kb-OZfTYtg"},"invitee_type":{"type":"integer","description":"The invitee's type.\n\n- 0= Contact Center agent \n\n- 1= queue\n\n-  2= Direct Inward Dialing Number (DID number) \n\nOnly valid and `Required` when `command` is `conference_warm_invite`.","example":0,"enum":[0,1,2]},"invitee_id":{"maxLength":64,"type":"string","description":"The invitee's ID. \n\nWhen `invitee_type` is `0`, it represents the agent's ID. \n\nWhen `invitee_type` is `1`, it represents the queue's ID.\n\nWhen `invitee_type` is `2`, it represents the DID number.\n\n Only valid and `Required` when `command` is `conference_warm_invite`.","example":"NMYuY-8aThej4Fm3GTww4Q"}},"description":"The parameters."}}}}}},"responses":{"201":{"description":"**HTTP Status:** `201` **Created** Request created for processing with no validation errors. This does not imply successful execution of the command.","content":{"application/json":{"schema":{"required":["request_id"],"type":"object","properties":{"request_id":{"type":"string","description":"The request ID to correlate the asynchronous response. \n\nFor `make_call` commands, the webhook event containing the `request_id` is [`contact_center.call_control_make_call_executed`](/docs/api/contact-center/events/#tag/contact_center/postcontact_center.call_control_make_call_executed).","example":"alU302FoDe-dCq9QAFeZhw"}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `9002` <br>\n User is currently `Occupied`. <br>\n**Error Code:** `300` <br>\n Invalid request. <br>\n**Error Code:** `1018` <br>\n User device not found. <br>\n**Error Code:** `1211` <br>\n User is not assigned to queue. <br>\n**Error Code:** `1212` <br>\n Caller ID not found or not assigned to queue. <br>\n**Error Code:** `9003` <br>\n The CTI device is not supported. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n**Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_user:write:admin","contact_center:write:user_control:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_user:write:admin"],"x-granular-scopes":["contact_center:write:user_control:admin"]}}},"/contact_center/users/{userId}/devices":{"get":{"tags":["Call Control"],"summary":"List user's devices ","description":"List a Contact Center user's device information.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_user:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:user_device:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"Listuserdevices","parameters":[{"name":"userId","in":"path","description":"The user identifier. This can be the Meetings user ID `user_id`, the Contact Center user ID `cc_user_id`, an email address, or [the 'me' value](/docs/api/using-zoom-apis/#the-me-keyword) to refer to the user associated with the access token.","required":true,"schema":{"type":"string","example":"JWm74129TSyxvSeMEiqCfQ"}},{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of records returned in a single API call.","required":false,"schema":{"maximum":300,"type":"integer","format":"int32","example":30,"default":30}}],"responses":{"200":{"description":"User device list returned.","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"maxLength":100,"type":"string","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":100,"minimum":1,"type":"integer","description":"The number of records returned within a single API call.","example":10,"default":10},"total_records":{"minimum":0,"type":"integer","description":"The total number of all records available across pages.","example":10},"devices":{"maxItems":100,"type":"array","description":"The device information.","items":{"type":"object","properties":{"device_id":{"type":"string","description":"User login device ID.","example":"ZoomClient-CCITab-Tnxa76dLQ_SZwxmCP3bIOA"},"device_version":{"type":"string","description":"Client version.","example":"6.2.3.40682"},"sip_registration_information":{"type":"object","properties":{"registration_success":{"type":"boolean","description":"Registration successful.","example":true}},"description":"The SIP registration information."},"device_type":{"type":"string","description":"Device type.","example":"pwa","enum":["pwa","client","cti"]}}}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1001` <br>\n User does not exist: {userId}. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_user:read:admin","contact_center:read:user_device:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_user:read:admin"],"x-granular-scopes":["contact_center:read:user_device:admin"]}}},"/contact_center/outbound_campaign/campaigns":{"get":{"tags":["Campaigns"],"summary":"List outbound campaigns","description":"List Contact Center outbound campaigns.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_outbound_campaign:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:outbound_campaign:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"listOutboundCampaigns","parameters":[{"name":"outbound_campaign_status","in":"query","description":"An outbound campaign's status.","required":false,"schema":{"type":"string","example":"running","enum":["draft","ready","running","paused","completed","not_running"]}},{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of records returned within a single API call.","required":false,"schema":{"maximum":100,"type":"integer","format":"int32","example":10,"default":10}}],"responses":{"200":{"description":"Outbound campaigns are returned successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"page_size":{"maximum":100,"minimum":1,"type":"integer","description":"The number of records returned within a single API call.","example":10,"default":10},"total_records":{"minimum":0,"type":"integer","description":"The total number of all records available across pages.","example":10},"next_page_token":{"maxLength":100,"type":"string","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"outbound_campaign_items":{"type":"array","description":"Array of outbound campaigns.","items":{"type":"object","properties":{"outbound_campaign_id":{"type":"string","description":"The outbound campaign ID.","example":"TY_XsJuWR9ehXrsf1DSIAQ"},"outbound_campaign_name":{"type":"string","description":"The campaign's name. The name is a unique key among all outbound campaigns.","example":"My outbound campaign"},"outbound_campaign_description":{"type":"string","description":"The campaign's description.","example":"My outbound campaign description"},"outbound_campaign_status":{"type":"string","description":"The campaign's status.","example":"paused","enum":["draft","ready","running","paused","completed","not_running"]}},"description":"Outbound campaign object."}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `5012` <br>\n Campaign status enum is invalid. <br>\n**Error Code:** `300` <br>\n Validation failed. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_outbound_campaign:read:admin","contact_center:read:outbound_campaign:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_outbound_campaign:read:admin"],"x-granular-scopes":["contact_center:read:outbound_campaign:admin"]}},"post":{"tags":["Campaigns"],"summary":"Create an outbound campaign","description":"Create an outbound Contact Center campaign.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_outbound_campaign:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:write:outbound_campaign:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"createOutboundCampaign","requestBody":{"description":"The outbound campaign request data.","content":{"application/json":{"schema":{"required":["dialing_method","dialing_method_settings","outbound_campaign_name","phone_number_id","queue_id"],"type":"object","properties":{"outbound_campaign_name":{"maxLength":100,"minLength":1,"type":"string","description":"The campaign's name. Names are a unique key among all outbound campaigns.","example":"My outbound campaign name"},"outbound_campaign_description":{"maxLength":255,"type":"string","description":"The campaign's description.","example":"My outbound campaign description"},"queue_id":{"maxLength":36,"type":"string","description":"The queue ID.\n\n1 - Only voice queues configured for outbound engagements with at least one user from Zoom Contact Center Premium or Elite packages are available for selection.\n2 - Queue distribution cannot be configured to Simultaneous or Do Not Distribute.","example":"TY_XsJuWR9ehXrsf1DSIAQ"},"phone_number_id":{"maxLength":36,"type":"string","description":"The outbound phone number for the campaign. This value can be either the phone number ID or the phone number in E.164 format, such as `+17083362211`. The response always returns the canonical phone number ID.\nThis number is displayed to consumers for outbound calls.","example":"XfTPrZjyR5W6QgNARdtGlw"},"assign_type":{"maximum":3,"minimum":1,"type":"string","description":"Caller ID assignment type. This assignment type needs to match with `phone_number_id`.","example":"queue","default":"queue","enum":["queue","default","customer"]},"dialing_method":{"maximum":2,"minimum":1,"type":"string","description":"Determine how contacts in this campaign will be dialed.\n- `progressive` - engagement details are displayed to the agent **after** they are connected with the consumer.\n- `preview` - engagement details are displayed to the agent **before** they are connected with the consumer.\n- `agentless` - automated dialing without agent involvement.","example":"progressive","default":"progressive","enum":["progressive","preview","agentless"]},"dialing_method_settings":{"description":"One of either progressive, preview, or agentless dialing.","oneOf":[{"title":"progressive_settings","type":"object","properties":{"enable_amd":{"type":"boolean","description":"Enable answering machine detection (AMD). Detect an answering machine for calls to consumers.\n\n**Default configurations when AMD is enabled**\n- A person answers - disconnect the call. Optionally, provide an asset ID for an asset to play before connecting the call to an agent.\n- An answering machine answers - disconnect the call. Optionally, provide an asset ID for an asset to play after the tone and before disconnecting.\n- A FAX machine answers - disconnect the call.\n\n**Note:** Enabling AMD may increase the connection time between an agent and a consumer, due to the necessity to analyze the audio stream.\n\nBy enabling AMD, you acknowledge that you are responsible for ensuring that your use of this technology complies with local laws and regulations.","example":false,"default":false},"amd_settings":{"type":"object","properties":{"greeting_asset_id":{"maxLength":36,"type":"string","description":"The Contact Center Asset Library asset to play when a consumer answers the call, before the agent is connected.","example":"zNWo_1M5ScCuKnBb2Z-sfw"},"answering_machine_asset_id":{"maxLength":36,"type":"string","description":"The Contact Center Asset Library asset to play when an answering machine is detected.","example":"z8XtiytyQammquBRlVPiWw"}},"description":"Answering machine detection (AMD) settings. Use with `enable_amd`. "},"enable_abandonment_timeout":{"type":"boolean","description":"Abandon answered calls if an agent does not connect within a set period of time.","example":false,"default":false},"abandonment_timeout":{"maximum":30,"minimum":2,"type":"integer","description":"Use with `enable_abandonment_timeout`. If `enable_abandonment_timeout` is false, this will be set to null.\nA call connected to a consumer will be abandoned if an agent does not connect before the abandonment timeout has elapsed. Abandonment timeout must be between 2 and 30 seconds.","example":5,"default":5},"abandonment_message_asset_id":{"maxLength":36,"type":"string","description":"Use with `enable_abandonment_timeout`. The Contact Center Asset Library asset to play when a call is abandoned due to agent unavailability.","example":"z8XtiytyQammquBRlVPiWw"}},"description":"Settings for Progressive dialing method."},{"title":"preview_settings","type":"object","properties":{"dialing_strategy":{"type":"string","description":"Use with the Preview dialing method. \nAutomatic connects calls automatically. Manual allows the agent to dial the calls manually.","example":"automatic","default":"automatic","enum":["automatic","manual"]},"preview_timer":{"maximum":60,"minimum":5,"type":"integer","description":"Displays timer before call is initiated automatically.","example":5,"default":5},"enable_skip":{"type":"boolean","description":"Preview dialing method only. Allow agent to skip outbound engagements.","example":true,"default":true},"max_skips":{"maximum":5,"minimum":1,"type":"integer","description":"Preview dialing method only. Configure skip reasons under **Contact Center Preferences**.","example":1,"default":1},"enable_ignore_preview_notification":{"type":"boolean","description":"Preview dialing method only. Ignoring will automatically update the agent's status based on the Auto Update Status settings in **Contact Center Preferences**.","example":true,"default":true},"allow_retry_preview_dialer":{"type":"boolean","description":"Allow retrying the preview dialer.","example":false,"default":false}},"description":"Preview dialing method settings."},{"title":"agentless_settings","required":["max_concurrent_calls","new_flow_id"],"type":"object","properties":{"max_concurrent_calls":{"maximum":100,"minimum":1,"type":"integer","description":"The maximum concurrent calls for the agentless dialer.","example":5,"default":5},"agentless_amd_off_action":{"maxLength":50,"type":"string","description":"Action when agentless AMD is off.","example":"playMedia","default":"playMedia","enum":["useFlow","hangUp","playMedia"]},"agentless_amd_off_resource_id":{"maxLength":36,"type":"string","description":"Resource ID when agentless AMD is off.","example":"z8XtiytyQammquBRlVPiWw"},"old_flow_id":{"maxLength":36,"type":"string","description":"The agentless dialer's old flow ID.","example":"_2npVp3juQWO2g9pt2rqSKg"},"new_flow_id":{"maxLength":36,"type":"string","description":"The agentless dialer's new flow ID.","example":"_3npVp3juQWO2g9pt2rqSKg"}},"description":"Agentless dialing method settings."}]},"outbound_campaign_priority":{"maximum":5,"minimum":1,"type":"integer","description":"The campaign priority.","example":5,"default":5},"campaign_contact_list_ids":{"maxItems":100000,"type":"array","description":"Contacts will be dialed in alphabetical order. If a contact has more than one phone number, the numbers will be dialed in the order they are listed until a call is connected or all numbers have been tried.\n\nA list of contact list ids to dial with this campaign. Multiple contact lists can be input here.\n\n","items":{"type":"string","description":"Contact list IDs. These can be retrieved using the [List campaign contact lists API.](/docs/api/contact-center/#tag/campaign/GET/contact_center/outbound_campaign/contact_lists)","example":"MN2Dtcb2T-yT5CU3clN-AA"}},"campaign_do_not_contact_list_ids":{"maxItems":100000,"type":"array","description":"Contacts will not be dialed in.","items":{"type":"string","description":"Do mot contact list IDs.","example":"Lp7Wzxf4Q-pA9RX6bhO-XX"}},"exclusion_logic":{"type":"string","description":"Exclusion logic for contact lists.","example":"and","default":"and","enum":["and","or"]},"max_attempts_per_contact":{"maximum":10,"minimum":1,"type":"integer","description":"Maximum attempts per contact.","example":3},"attempts_use_same_period":{"type":"boolean","description":"Whether attempts use the same period.","example":false,"default":false},"second_attempt_period":{"maximum":1440,"minimum":1,"type":"integer","description":"Second attempt period. Could be in seconds, minutes, hours, and days.","example":30,"default":30},"third_attempt_period":{"maximum":1440,"minimum":1,"type":"integer","description":"Third attempt period. Could be in seconds, minutes, hours, and days.","example":60,"default":60},"other_attempt_period":{"maximum":1440,"minimum":1,"type":"integer","description":"Other attempt period. Could be in seconds, minutes, hours, and days.","example":120},"retry_period":{"maximum":1440,"minimum":1,"type":"integer","description":"Retry period. Could be in seconds, minutes, hours, and days.","example":60},"retry_period_unit":{"type":"string","description":"Unit for retry period.","example":"hours","default":"hours","enum":["seconds","minutes","hours","days"]},"dial_sequence":{"type":"string","description":"Controls the dialing sequence and failure-handling behavior.\n\n- `LIST_DIAL` (Current Mode) - Upon a dial failure, the system immediately abandons the current contact and tries the next contact in the list or queue.\n- `CONTACT_DIAL` (New Mode) - Upon a dial failure for a phone number, the system tries the next available phone number for the same contact before moving to the next contact.\n- `CONTACT_WITH_LOCK` - Functions as `CONTACT_DIAL`, but also applies an exclusive agent lock to the contact upon retrieval to prevent simultaneous access by other agents.","example":"list_dial","default":"list_dial","enum":["list_dial","contact_dial","contact_with_lock"]},"enable_max_ring_time":{"type":"boolean","description":"Disconnect unanswered calls after a set period of time has elapsed.","example":true,"default":true},"max_ring_time":{"maximum":120,"minimum":15,"type":"integer","description":"Use with `enable_max_ring_time`. A call is considered unanswered after the maximum ring time has elapsed. Maximum ring time must be between 15 and 120 seconds.","example":60,"default":60},"business_hour_source":{"type":"string","description":"The Contact Center business hour source. Select `queue` to use the outbound queue's business hours, and `campaign` to set custom hours. Defaults to `queue`.","example":"campaign","default":"queue","enum":["queue","campaign"]},"business_hour_id":{"maxLength":36,"type":"string","description":"The Contact Center business hours ID. The campaign will only dial during these hours.\n[Create business hours API.](/docs/contact-center/apis/#operation/businessHourCreate)","example":"h7XtiytFTammquBRlTRiWZ"},"enable_closure_hour":{"type":"boolean","description":"Toggle closure hours on or off. Outbound calls are not started during closure hours.","example":false,"default":false},"closure_set_id":{"maxLength":36,"type":"string","description":"The Contact Center closure hours ID.\n[Create closure hours API.](/docs/contact-center/apis/#operation/closuresSetCreate)","example":"y9XtiytyQammquBRlTPiWw"},"contact_timezone_source":{"type":"string","description":"Determine the source used to establish the contact's timezone for deciding appropriate calling hours, like 9 AM to 5 PM.\n\n**Valid values**\n\n`none` - Disables timezone-based calling restrictions. Calls can be made at any time.\n\n`timezone` - Uses the contact's explicit timezone attribute to determine calling eligibility.\n\n`area_code` - Derives the timezone based on the area code of the contact's highest priority phone number according to the dial order.","example":"area_code","default":"none","enum":["none","area_code","timezone"]},"contact_phone_order":{"maxLength":50,"type":"string","description":"Contact phone order. 1 means main, 2 means work, 3 means home, 4 means mobile, 5 means other ","example":"1,2,3,4,5"},"enable_always_running":{"type":"boolean","description":"Enable always running.","example":false,"default":false},"enable_diagnostics":{"type":"boolean","description":"Enable diagnostics.","example":false,"default":false}}}}}},"responses":{"201":{"description":"**HTTP Status Code:** `201`     Outbound campaign is created.","content":{"application/json":{"schema":{"type":"object","properties":{"outbound_campaign_id":{"maxLength":36,"type":"string","description":"The outbound campaign ID.","example":"TY_XsJuWR9ehXrsf1DSIAQ"},"outbound_campaign_name":{"maxLength":100,"minLength":1,"type":"string","description":"The campaign's name. Names are a unique key among all outbound campaigns.","example":"My outbound campaign"},"outbound_campaign_description":{"maxLength":255,"type":"string","description":"The campaign's description.","example":"My outbound campaign description"},"queue_id":{"maxLength":36,"type":"string","description":"The queue ID.\n\n1 - Only voice queues configured for outbound engagements with at least one user from Zoom Contact Center Premium or Elite packages are available for selection.\n2 - Queue distribution cannot be configured to Simultaneous or Do Not Distribute.","example":"TY_XsJuWR9ehXrsf1DSIAQ"},"queue_name":{"maxLength":150,"type":"string","description":"The Contact Center queue name.","example":"Voice - Customer Support"},"phone_number_id":{"type":"string","description":"The reference ID for the Contact Center phone number. This number is displayed to consumers for outbound calls.","example":"XfTPrZjyR5W6QgNARdtGlw"},"assign_type":{"type":"string","description":"Caller ID assignment type.","example":"queue","default":"queue","enum":["queue","default","customer"]},"outbound_campaign_status":{"type":"string","description":"The campaign's status.","example":"draft","enum":["draft","ready","running","paused","completed","not_running"]},"dialing_method":{"type":"string","description":"Determine how contacts in this campaign will be dialed.\\nProgressive - engagement details are displayed to the agent **after** they are connected with the consumer.\\nPreview - engagement details are displayed to the agent **before** they are connected with the consumer.\\nAgentless - automated dialing without agent involvement.","example":"progressive","enum":["progressive","preview","agentless"]},"dialing_method_settings":{"description":"One of either progressive, pPreview, or agentless dialing.","oneOf":[{"title":"progressive_settings","type":"object","properties":{"enable_amd":{"type":"boolean","description":"Enable answering machine detection (AMD). Use this action to detect an answering machine for calls to consumers.\n\n**Default configurations when AMD is enabled**\n* A person answers - disconnect the call. Optionally, provide an asset ID for an asset to play before connecting the call to an agent.\n* An answering machine answers - disconnect the call. Optionally, provide an asset id for an asset to play after the tone and before disconnecting.\n* A FAX machine answers - disconnect the call.\n\nNote: Enabling answering machine detection may increase the connection time between an agent and a consumer, due to the necessity to analyze the audio stream.\n\nBy enabling answering machine detection, you acknowledge that you are responsible for ensuring that your use of this technology complies with local laws and regulations.","example":true},"amd_settings":{"type":"object","properties":{"greeting_asset_id":{"maxLength":36,"type":"string","description":"The Contact Center Asset Library asset to play when a consumer answers the call, before the agent is connected.","example":"zNWo_1M5ScCuKnBb2Z-sfw"},"answering_machine_asset_id":{"maxLength":36,"type":"string","description":"The Contact Center Asset Library asset to play when an answering machine is detected.","example":"z8XtiytyQammquBRlVPiWw"}},"description":"AMD settings. Use with `enable_amd`. "},"enable_abandonment_timeout":{"type":"boolean","description":"Abandon answered calls if an agent does not connect within a set period of time.","example":false},"abandonment_timeout":{"maximum":30,"minimum":2,"type":"integer","description":"Use with `enable_abandonment_timeout`. If `enable_abandonment_timeout` is `false`, then this will be set to null.\nA call connected to a consumer will be abandoned if an agent does not connect before the abandonment timeout has elapsed. Abandonment timeout must be between 2 and 30 seconds.","example":5},"abandonment_message_asset_id":{"maxLength":36,"type":"string","description":"Use with `enable_abandonment`. The Contact Center Asset Library asset to play when a call is abandoned due to agent unavailability.","example":"z8XtiytyQammquBRlVPiWw"}},"description":"The progressive dialing method's settings."},{"title":"preview_settings","type":"object","properties":{"dialing_strategy":{"type":"string","description":"Use with the preview dialing method. \nAutomatic - connects calls automatically. Manual - the agent manually dials the calls.","example":"automatic","default":"automatic","enum":["automatic","manual"]},"preview_timer":{"type":"integer","description":"Display timer before call is initiated automatically.","example":5,"default":5},"enable_skip":{"type":"boolean","description":"Preview dialing method only. Allow agent to skip outbound engagements.","example":false},"max_skips":{"maximum":5,"minimum":1,"type":"integer","description":"Preview dialing method only. Configure skip reasons under **Contact Center Preferences**.","example":1},"enable_ignore_preview_notification":{"type":"boolean","description":"Preview dialing method only. Ignoring will automatically update the agent's status based on the **Auto Update Status** settings in **Contact Center Preferences**.","example":false},"allow_retry_preview_dialer":{"type":"boolean","description":"Whether retring the preview dialer is allowed.","example":false}},"description":"The preview dialing method's settings."},{"title":"agentless_settings","type":"object","properties":{"max_concurrent_calls":{"maximum":100,"minimum":1,"type":"integer","description":"The maximum concurrent calls for agentless dialer.","example":5},"agentless_amd_off_action":{"maxLength":50,"type":"string","description":"Action when agentless AMD is off.","example":"use_flow","enum":["use_flow","hang_up","play_media"]},"agentless_amd_off_resource_id":{"type":"string","description":"Resource ID when agentless AMD is off.","example":"z8XtiytyQammquBRlVPiWw"},"old_flow_id":{"type":"string","description":"The agentless dialer's old flow ID.","example":"_2npVp3juQWO2g9pt2rqSKg"},"new_flow_id":{"type":"string","description":"New flow ID.","example":"_3npVp3juQWO2g9pt2rqSKg"}},"description":"The agentless dialing method's settings."}]},"outbound_campaign_priority":{"maximum":5,"minimum":1,"type":"integer","description":"The campaign priority.","example":5,"default":5},"campaign_contact_list":{"maxItems":50,"type":"array","description":"Contacts will be dialed in alphabetical order. If a contact has more than one phone number, the numbers will be dialed in the order they are listed until a call is connected or all numbers have been tried.\n\nA list of contact list ids to dial with this campaign. Multiple contact lists can be input here.\n\n**Leave this blank to use this campaign with the outbound dialer API.**","items":{"required":["contact_list_id","contact_list_name"],"type":"object","properties":{"contact_list_id":{"type":"string","description":"The campaign contact list's ID.","example":"MN2Dtcb2T-yT5CU3clN-AA"},"contact_list_name":{"type":"string","description":"The campaign contact list's name.","example":"Contact List"},"contact_list_description":{"type":"string","description":"The campaign contact list's description.","example":"Description"},"contacts_count":{"type":"string","description":"Number of contacts in the contact list.","example":"1"}},"description":"Contact list ids. These can be retrieved using the [List campaign contact lists API.](https://developers.zoom.us/docs/api/contact-center/#tag/campaign/GET/contact_center/outbound_campaign/contact_lists)"}},"campaign_do_not_contact_list_ids":{"maxItems":50,"type":"array","description":"Contacts will be not dialed.","items":{"required":["contact_list_id","contact_list_name"],"type":"object","properties":{"contact_list_id":{"type":"string","description":"The campaign contact list's ID.","example":"Lp7Wzxf4Q-pA9RX6bhO-XX"},"contact_list_name":{"type":"string","description":"The campaign contact list's name.","example":"Do-not-contact list"},"contact_list_description":{"type":"string","description":"The campaign contact list's description.","example":"Description"},"contacts_count":{"type":"string","description":"Number of contacts in the contact list.","example":"1"}},"description":"Do not contact list IDs."}},"exclusion_logic":{"type":"string","description":"Exclusion logic for contact lists.","example":"AND"},"max_attempts_per_contact":{"type":"integer","description":"Maximum attempts per contact.","example":3},"attempts_use_same_period":{"type":"boolean","description":"Whether attempts use the same period.","example":false},"second_attempt_period":{"type":"integer","description":"Second attempt period. Could be in seconds, minutes, hours, and days.","example":30},"third_attempt_period":{"type":"integer","description":"Third attempt period. Could be in seconds, minutes, hours, and days.","example":60},"other_attempt_period":{"type":"integer","description":"Other attempt period. Could be in seconds, minutes, hours, and days.","example":120},"retry_period":{"type":"integer","description":"Retry period. Could be in seconds, minutes, hours, and days.","example":60},"retry_period_unit":{"type":"string","description":"Unit for retry period.","example":"hours","enum":["seconds","minutes","hours","days"]},"dial_sequence":{"type":"string","description":"Dial sequence mode.","example":"LIST_DIAL"},"max_ring_time":{"maximum":120,"minimum":15,"type":"integer","description":"Use with `max_ring_time_enabled`. A call is considered unanswered after the maximum ring time has elapsed. Maximum ring time must be between 15 and 120 seconds.","example":15},"enable_max_ring_time":{"type":"boolean","description":"Enabled if `max_ring_time` is set.","example":true},"business_hour_source":{"type":"string","description":"The Contact Center business hour source. Select `queue` to use the outbound queue's business hours, and `campaign` to set custom hours. Defaults to `queue`.\nWhen this value is `queue`, the operating hours are not provided in the API response. [Use the Get Queue Operating Hours API.](/docs/contact-center/apis/#operation/getAQueueOperatingHours)","example":"queue","default":"queue","enum":["queue","campaign"]},"business_hour_id":{"maxLength":36,"type":"string","description":"The Contact Center business hours ID. The campaign will only dial during these hours.\n[Create business hours API.](/docs/contact-center/apis/#operation/businessHourCreate)","example":"h7XtiytFTammquBRlTRiWZ"},"enable_closure_hour":{"type":"boolean","description":"Toggle closure hours on or off. Outbound calls are not started during closure hours.","example":true},"closure_set_id":{"maxLength":36,"type":"string","description":"The Contact Center closure hours ID.\n[Create closure hours API.](/docs/contact-center/apis/#operation/closuresSetCreate)","example":"y9XtiytyQammquBRlTPiWw"},"contact_timezone_source":{"type":"string","description":"Determine the source used to establish the contact's timezone for deciding appropriate calling hours, like 9 AM to 5 PM.\n\n**Valid values**\n\n`none` - Disables timezone-based calling restrictions; calls can be made at any time.\n\n`timezone` - Uses the contact's explicit timezone attribute to determine calling eligibility.\n\n`area_code` - Derives the timezone based on the area code of the contact's highest priority phone number according to the dial order.","example":"area_code","default":"none","enum":["none","timezone","area_code"]},"contact_phone_order":{"type":"string","description":"Contact phone order.","example":"ascending"},"enable_always_running":{"type":"boolean","description":"Whether always running is enabled.","example":false,"default":false},"contact_order":{"type":"integer","description":"Contact order.","example":1},"enable_diagnostics":{"type":"boolean","description":"Whether diagnostics is enabled.","example":false}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `5008` <br>\n Campaign phone number not found. Please check that the phone number exists in Contact Center Preferences and that the ID is correct. <br>\n**Error Code:** `5009` <br>\n Campaign greeting asset not found. Please check that the asset exists in Contact Center Asset Library and that the ID is correct. <br>\n**Error Code:** `5010` <br>\n Campaign AMD asset not found. Please check that the asset exists in Contact Center Asset Library and that the ID is correct. <br>\n**Error Code:** `300` <br>\n Validation failed. <br>\n**Error Code:** `302` <br>\n Invalid enum value. <br>\n**Error Code:** `5011` <br>\n Campaign Business Hour not found. Please check that the Operating Hour exists in Contact Center Preferences and that the ID is correct. <br>\n**Error Code:** `5012` <br>\n Campaign Closure Hour Set not found. Please check that the Operating Hour exists in Contact Center Preferences and that the ID is correct. <br>\n**Error Code:** `5016` <br>\n The maximum number of contacts assigned to a campaign cannot exceed 100000. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n "},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_outbound_campaign:write:admin","contact_center:write:outbound_campaign:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_outbound_campaign:write:admin"],"x-granular-scopes":["contact_center:write:outbound_campaign:admin"]}}},"/contact_center/outbound_campaign/campaigns/{campaignId}":{"get":{"tags":["Campaigns"],"summary":"Get an outbound campaign","description":"Get a Contact Center outbound campaign.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_outbound_campaign:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:outbound_campaign:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"getOutboundCampaign","parameters":[{"name":"campaignId","in":"path","description":"The outbound campaign ID.","required":true,"schema":{"type":"string","example":"TY_XsJuWR9ehXrsf1DSIAQ"}},{"name":"campaign_identifier_type","in":"query","description":"How the path parameter is interpreted. `id` treats it as a system-generated unique identifier. `name` treats it as the resource name.\nWhen using `name`, the resource name must be URL-encoded per RFC 3986.","required":false,"schema":{"type":"string","example":"id","default":"id","enum":["id","name"]}}],"responses":{"200":{"description":"Outbound campaign object.","content":{"application/json":{"schema":{"type":"object","properties":{"outbound_campaign_id":{"maxLength":36,"type":"string","description":"The outbound campaign ID.","example":"TY_XsJuWR9ehXrsf1DSIAQ"},"outbound_campaign_name":{"maxLength":100,"minLength":1,"type":"string","description":"The campaign's name. Names are a unique key among all outbound campaigns.","example":"My outbound campaign"},"outbound_campaign_description":{"maxLength":255,"type":"string","description":"The campaign's description.","example":"My outbound campaign description"},"queue_id":{"maxLength":36,"type":"string","description":"1 - Only voice queues configured for outbound engagements with at least one user from Zoom Contact Center Premium or Elite packages are available for selection.\\n2 - Queue distribution cannot be configured to Simultaneous or Do Not Distribute.","example":"TY_XsJuWR9ehXrsf1DSIAQ"},"queue_name":{"maxLength":36,"type":"string","description":"The queue's name.","example":"My queue name"},"phone_number_id":{"maxLength":36,"type":"string","description":"The reference ID for the Contact Center phone number. This number is displayed to consumers for outbound calls.","example":"XfTPrZjyR5W6QgNARdtGlw"},"assign_type":{"maximum":3,"minimum":1,"type":"string","description":"Caller ID assignment type.","example":"queue","default":"queue","enum":["queue","default","customer"]},"outbound_campaign_status":{"type":"string","description":"The campaign's status.","example":"draft","enum":["draft","ready","running","paused","completed","not_running"]},"dialing_method":{"type":"string","description":"Determine how contacts in this campaign will be dialed.\\nProgressive - display engagement details to the agent **after** they are connected with the consumer.\\nPreview - display engagement details to the agent **before** they are connected with the consumer.\\nAgentless - automated dialing without agent involvement.","example":"progressive","enum":["progressive","preview","agentless"]},"dialing_method_settings":{"description":"Settings for the selected dialing method.","oneOf":[{"title":"progressive_settings","type":"object","properties":{"enable_amd":{"type":"boolean","description":"Enable answering machine detection (AMD). Detect an answering machine for calls to consumers.\n\n**Default configurations set when AMD is enabled**\n- A person answers - disconnect the call. Optionally, provide an asset ID for an asset to play before connecting the call to an agent.\n- An answering machine answers - disconnect the call. Optionally, provide an asset ID for an asset to play after the tone and before disconnecting.\n- A FAX machine answers: disconnect the call.\n\n**Note:** Enabling AMD may increase the connection time between an agent and a consumer, due to the necessity to analyze the audio stream.\n\nBy enabling AMD, you acknowledge that you are responsible for ensuring that your use of this technology complies with local laws and regulations.","example":false,"default":false},"amd_settings":{"type":"object","properties":{"greeting_asset_id":{"maxLength":36,"type":"string","description":"The Contact Center Asset Library asset to play when a consumer answers the call, before the agent is connected.","example":"zNWo_1M5ScCuKnBb2Z-sfw"},"answering_machine_asset_id":{"maxLength":36,"type":"string","description":"The Contact Center Asset Library asset to play when an answering machine is detected.","example":"z8XtiytyQammquBRlVPiWw"}},"description":"AMD settings. Use with `enable_amd`."},"enable_abandonment_timeout":{"type":"boolean","description":"Abandon answered calls if an agent does not connect within a set period of time.","example":false,"default":false},"abandonment_timeout":{"maximum":30,"minimum":2,"type":"integer","description":"Use with `enable_abandonment_timeout`. If `enable_abandonment_timeout` is false, this will be set to null.\nA call connected to a consumer will be abandoned if an agent does not connect before the abandonment timeout has elapsed. Abandonment timeout must be between 2 and 30 seconds.","example":5,"default":5},"abandonment_message_asset_id":{"maxLength":36,"type":"string","description":"Use with `enable_abandonment_timeout`. The Contact Center Asset Library asset to play when a call is abandoned due to agent unavailability.","example":"z8XtiytyQammquBRlVPiWw"}},"description":"Settings for the Progressive dialing method."},{"title":"preview_settings","type":"object","properties":{"dialing_strategy":{"type":"string","description":"Use with the Preview dialing method. \nAutomatic connects calls automatically. Manual allows the agent to dial the calls manually.","example":"automatic","default":"automatic","enum":["automatic","manual"]},"preview_timer":{"maximum":60,"minimum":5,"type":"integer","description":"Displays timer before call is initiated automatically.","example":5,"default":5},"enable_skip":{"type":"boolean","description":"Preview dialing method only. Allow agent to skip outbound engagements.","example":true,"default":true},"max_skips":{"maximum":5,"minimum":1,"type":"integer","description":"Preview dialing method only. Skip reasons are configured under Contact Center Preferences.","example":1,"default":1},"enable_ignore_preview_notification":{"type":"boolean","description":"Preview dialing method only. Ignoring will automatically update the agent's status based on the Auto Update Status settings in **Contact Center Preferences**.","example":true,"default":true},"allow_retry_preview_dialer":{"type":"boolean","description":"Allow retry preview dialer.","example":false,"default":false}},"description":"Preview dialing method settings."},{"title":"agentless_settings","type":"object","properties":{"max_concurrent_calls":{"maximum":100,"minimum":1,"type":"integer","description":"The maximum concurrent calls for agentless dialer.","example":5,"default":5},"agentless_amd_off_action":{"maxLength":50,"type":"string","description":"Action when agentless AMD is off.","example":"playMedia","default":"playMedia","enum":["useFlow","hangUp","playMedia"]},"agentless_amd_off_resource_id":{"maxLength":36,"type":"string","description":"Resource ID for agentless AMD off action.","example":"z8XtiytyQammquBRlVPiWw"},"agentless_amd_off_resource_name":{"maxLength":255,"type":"string","description":"Resource name for agentless AMD off action.","example":"AMD Off Resource"},"old_flow_id":{"maxLength":36,"type":"string","description":"The agentless dialer's old flow ID.","example":"_2npVp3juQWO2g9pt2rqSKg"},"new_flow_id":{"maxLength":36,"type":"string","description":"The agentless dialer's new flow ID.","example":"_3npVp3juQWO2g9pt2rqSKg"}},"description":"Agentless dialing method settings."}]},"outbound_campaign_priority":{"maximum":5,"minimum":1,"type":"integer","description":"The campaign priority.","example":5,"default":5},"campaign_contact_list":{"type":"array","description":"Contacts will be dialed in alphabetical order. If a contact has more than one phone number, the numbers will be dialed in the order they are listed until a call is connected or all numbers have been tried.\n\nA list of contact list ids to dial with this campaign. Multiple contact lists can be input here.\n\n**Leave this blank to use this campaign with the outbound dialer API.**","items":{"required":["contact_list_id","contact_list_name"],"type":"object","properties":{"contact_list_id":{"type":"string","description":"The campaign contact list's ID.","example":"MN2Dtcb2T-yT5CU3clN-AA"},"contact_list_name":{"type":"string","description":"The campaign contact list's name.","example":"Contact List"},"contact_list_description":{"type":"string","description":"The campaign contact list's description.","example":"Description"},"contacts_count":{"type":"string","description":"Number of contacts in the contact list.","example":"1"}},"description":"Contact list IDs. Retrieve these using the [**List campaign contact lists** API.](/docs/api/contact-center/#tag/campaign/GET/contact_center/outbound_campaign/contact_lists)"}},"campaign_do_not_contact_list":{"type":"array","description":"Do not contact lists for the campaign.","items":{"type":"object","properties":{"contact_list_id":{"type":"string","description":"The do not contact list's ID.","example":"Lp7Wzxf4Q-pA9RX6bhO-XX"},"contact_list_name":{"type":"string","description":"The do not contact list's name.","example":"DNC List"},"contact_list_description":{"type":"string","description":"The do not contact list's description.","example":"DNC Description"},"contacts_count":{"type":"string","description":"Number of contacts in the do not contact list.","example":"1"}}}},"exclusion_logic":{"type":"string","description":"Exclusion logic for contact lists.","example":"and","default":"and","enum":["and","or"]},"max_attempts_per_contact":{"maximum":10,"minimum":1,"type":"integer","description":"Maximum attempts per contact.","example":3},"attempts_use_same_period":{"type":"boolean","description":"Whether attempts use the same period.","example":false,"default":false},"second_attempt_period":{"maximum":1440,"minimum":1,"type":"integer","description":"Second attempt period. Could be in seconds, minutes, hours, and days.","example":30,"default":30},"third_attempt_period":{"maximum":1440,"minimum":1,"type":"integer","description":"Third attempt period. Could be in seconds, minutes, hours, and days.","example":60,"default":60},"other_attempt_period":{"maximum":1440,"minimum":1,"type":"integer","description":"Other attempt period. Could be in seconds, minutes, hours, and days.","example":120},"retry_period":{"maximum":1440,"minimum":1,"type":"integer","description":"Retry period. Could be in seconds, minutes, hours, and days.","example":60},"retry_period_unit":{"type":"string","description":"Unit for the retry period.","example":"hours","default":"hours","enum":["seconds","minutes","hours","days"]},"dial_sequence":{"type":"string","description":"Controls the dialing sequence and failure-handling behavior.\n\n- `LIST_DIAL (Current Mode)` - Upon a dial failure, the system immediately abandons the current contact and tries the next contact in the list or queue.\n- `CONTACT_DIAL (New Mode)` - Upon a dial failure for a phone number, the system tries the next available phone number for the*same contact before moving to the next contact.\n- `CONTACT_WITH_LOCK` - Functions as `CONTACT_DIAL`, but also applies an exclusive agent lock to the contact upon retrieval to prevent simultaneous access by other agents.","example":"list_dial","default":"list_dial","enum":["list_dial","contact_dial","contact_with_lock"]},"enable_max_ring_time":{"type":"boolean","description":"Disconnect unanswered calls after a set period of time has elapsed.","example":true,"default":true},"max_ring_time":{"maximum":120,"minimum":15,"type":"integer","description":"Use with `max_ring_time_enabled`. A call is considered unanswered after the maximum ring time has elapsed. Maximum ring time must be between 15 and 120 seconds.","example":60,"default":60},"contact_phone_order":{"maxLength":50,"type":"string","description":"Contact phone order.","example":"ascending"},"enable_always_running":{"type":"boolean","description":"Enable always running.","example":false,"default":false},"contact_order":{"type":"integer","description":"The order for processing contacts.","example":1},"enable_diagnostics":{"type":"boolean","description":"Enable diagnostics.","example":false,"default":false},"business_hour_source":{"type":"string","description":"The Contact Center business hour source. Select `queue` to use the outbound queue's business hours, and `campaign` to set custom hours. Defaults to `queue`.","example":"queue","default":"queue","enum":["queue","campaign"]},"business_hour_id":{"maxLength":36,"type":"string","description":"The Contact Center business hours ID. The campaign will only dial during these hours.\n[Create business hours API.](/docs/contact-center/apis/#operation/businessHourCreate)","example":"h7XtiytFTammquBRlTRiWZ"},"enable_closure_hour":{"type":"boolean","description":"Toggle closure hours on or off. Outbound calls are not started during closure hours.","example":false,"default":false},"closure_set_id":{"maxLength":36,"type":"string","description":"The Contact Center closure hours ID.\n[Create closure hours API.](/docs/contact-center/apis/#operation/closuresSetCreate)","example":"y9XtiytyQammquBRlTPiWw"},"contact_timezone_source":{"type":"string","description":"Determines the source used to establish the contact's timezone for deciding appropriate calling hours, such as \"9 AM to 5 PM\".\n\n**Valid values**\n\n`none` - Disables timezone-based calling restrictions. Calls can be made at any time.\n\n`timezone` - Uses the contact's explicit timezone attribute to determine calling eligibility.\n\n`area_code` - Derives the timezone based on the area code of the contact's highest priority phone number according to the dial order.","example":"area_code","default":"none","enum":["none","timezone","area_code"]}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `5005` <br>\n Campaign not found. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_outbound_campaign:read:admin","contact_center:read:outbound_campaign:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_outbound_campaign:read:admin"],"x-granular-scopes":["contact_center:read:outbound_campaign:admin"]}},"delete":{"tags":["Campaigns"],"summary":"Delete an outbound campaign","description":"Delete a Contact Center's outbound campaign.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_outbound_campaign:delete:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:delete:outbound_campaign:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"deleteOutboundCampaign","parameters":[{"name":"campaignId","in":"path","description":"The outbound campaign ID.","required":true,"schema":{"type":"string","example":"TY_XsJuWR9ehXrsf1DSIAQ"}}],"responses":{"204":{"description":"**HTTP Status Code:** `204`    Outbound campaign is removed."},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `5005` <br>\n Campaign not found. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_outbound_campaign:delete:admin","contact_center:delete:outbound_campaign:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_outbound_campaign:delete:admin"],"x-granular-scopes":["contact_center:delete:outbound_campaign:admin"]}},"patch":{"tags":["Campaigns"],"summary":"Update an outbound campaign","description":"Update an outbound Contact Center campaign.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_outbound_campaign:update:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:update:outbound_campaign:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"updateOutboundCampaign","parameters":[{"name":"campaignId","in":"path","description":"The outbound campaign ID.","required":true,"schema":{"type":"string","example":"TY_XsJuWR9ehXrsf1DSIAQ"}}],"requestBody":{"description":"The outbound campaign request data.","content":{"application/json":{"schema":{"type":"object","properties":{"outbound_campaign_name":{"maxLength":100,"minLength":1,"type":"string","description":"The campaign's name. Names are a unique key among all outbound campaigns.","example":"My outbound campaign name"},"outbound_campaign_description":{"maxLength":255,"type":"string","description":"The campaign's description.","example":"My outbound campaign description"},"phone_number_id":{"maxLength":36,"type":"string","description":"The outbound phone number for the campaign. This value can be either the phone number ID or the phone number in E.164 format, such as `+17083362211`. The response always returns the canonical phone number ID.\nThis number is displayed to consumers for outbound calls.","example":"XfTPrZjyR5W6QgNARdtGlw"},"assign_type":{"maximum":3,"minimum":1,"type":"string","description":"Caller ID assignment type.","example":"queue","default":"queue","enum":["queue","default","customer"]},"outbound_campaign_priority":{"maximum":5,"minimum":1,"type":"integer","description":"The campaign priority.","example":5,"default":5},"enable_max_ring_time":{"type":"boolean","description":"Disconnect unanswered calls after a set period of time has elapsed.","example":true},"max_ring_time":{"maximum":120,"minimum":15,"type":"integer","description":"Use with `max_ring_time_enabled`. A call is considered unanswered after the maximum ring time has elapsed. Maximum ring time must be between 15 and 120 seconds.","example":15},"campaign_do_not_contact_list_ids":{"maxItems":100000,"type":"array","description":"Contacts will not be dialed in.","items":{"type":"string","description":"Do Not Contact list IDs.","example":"Lp7Wzxf4Q-pA9RX6bhO-XX"}},"exclusion_logic":{"type":"string","description":"Exclusion logic for contact lists. When choose and as strategy, contacts with additional phone numbers will still be included in the campaign. When choose or strategy, the contacts will be excluded from the campaign if one or more phone number matches the DNC list.","example":"and","default":"and","enum":["and","or"]},"max_attempts_per_contact":{"maximum":10,"minimum":1,"type":"integer","description":"Maximum number of attempts per contact.","example":3},"attempts_use_same_period":{"type":"boolean","description":"Whether attempts use the same period.","example":true},"second_attempt_period":{"maximum":1440,"minimum":1,"type":"integer","description":"Second attempt period. Could be in seconds, minutes, hours, and days.","example":30,"default":30},"third_attempt_period":{"maximum":1440,"minimum":1,"type":"integer","description":"Third attempt period. Could be in seconds, minutes, hours, and days.","example":60,"default":60},"other_attempt_period":{"maximum":1440,"minimum":1,"type":"integer","description":"Other attempt period. Could be in seconds, minutes, hours, and days.","example":120},"retry_period":{"maximum":1440,"minimum":1,"type":"integer","description":"Retry period. Could be in seconds, minutes, hours, and days.","example":60},"retry_period_unit":{"type":"string","description":"Unit for retry period.","example":"hours","default":"hours","enum":["seconds","minutes","hours","days"]},"dial_sequence":{"type":"string","description":"Control the dialing sequence and failure-handling behavior.\n\n- `LIST_DIAL` (Current Mode) -  Upon a dial failure, the system immediately abandons the current contact and tries the next contact in the list or queue.\n- `CONTACT_DIAL` (New Mode)** - Upon a dial failure for a phone number, the system tries the next available phone number for the same contact before moving to the next contact.\n- `CONTACT_WITH_LOCK` - Functions as `CONTACT_DIAL`, but also applies an exclusive agent lock to the contact upon retrieval to prevent simultaneous access by other agents.","example":"list_dial","enum":["list_dial","contact_dial","contact_with_lock"]},"enable_abandonment_timeout":{"type":"boolean","description":"Abandon answered calls if an agent does not connect within a set period of time.","example":false,"default":false},"abandonment_timeout":{"maximum":30,"minimum":2,"type":"integer","description":"Use with `enable_abandonment_timeout`. If `enable_abandonment_timeout` is `false`, this is set to null.\nA call connected to a consumer will be abandoned if an agent does not connect before the abandonment timeout elapses. Abandonment timeout must be between 2 and 30 seconds.","example":5,"default":5},"abandonment_message_asset_id":{"maxLength":36,"type":"string","description":"Use with `enable_abandonment_timeout`. The Contact Center Asset Library asset to play when a call is abandoned due to agent unavailability.","example":"z8XtiytyQammquBRlVPiWw"},"enable_skip":{"type":"boolean","description":"Preview dialing method only. Allow agent to skip outbound engagements.","example":true,"default":true},"max_skips":{"maximum":5,"minimum":1,"type":"integer","description":"Preview dialing method only. Configure skip reasons under **Contact Center Preferences**.","example":1,"default":1},"business_hour_source":{"type":"string","description":"The Contact Center business hour source. Select `queue` to use the outbound queue's business hours, and `campaign` to set custom hours. Defaults to `queue`.","example":"campaign","default":"queue","enum":["queue","campaign"]},"business_hour_id":{"maxLength":36,"type":"string","description":"The Contact Center business hours ID. The campaign will only dial during these hours.\n[Create business hours API.](/docs/contact-center/apis/#operation/businessHourCreate)","example":"rYyRJRjGQhi8gFNP9G7pSw"},"enable_closure_hour":{"type":"boolean","description":"Toggle closure hours on or off. Outbound calls are not started during closure hours.","example":false,"default":false},"closure_set_id":{"maxLength":36,"type":"string","description":"The Contact Center closure hours ID.\n[Create closure hours API.](/docs/contact-center/apis/#operation/closuresSetCreate)","example":"IlSdt6YUQES8nkOqSehKJg"},"contact_timezone_source":{"type":"string","description":"Determines the source used to establish the contact's timezone for deciding appropriate calling hours (9 AM to 5 PM).\n\n**Valid values**\n\n`none` - Disables timezone-based calling restrictions. Calls can be made at any time.\n\n`timezone` - Uses the contact's explicit timezone attribute to determine calling eligibility.\n\n`area_code` - Derives the timezone based on the area code of the contact's highest priority phone number according to the dial order.","example":"area_code","default":"none","enum":["none","timezone","area_code"]},"contact_phone_order":{"maxLength":50,"type":"string","description":"The order for contact phone numbers.","example":"mobile,home,work"},"enable_always_running":{"type":"boolean","description":"Enable always running.","example":false,"default":false},"contact_order":{"maximum":10,"minimum":1,"type":"integer","description":"The order for contacts.","example":1},"enable_diagnostics":{"type":"boolean","description":"Enable diagnostics.","example":false,"default":false},"allow_retry_preview_dialer":{"type":"boolean","description":"Allow retry for preview dialer.","example":false,"default":false},"max_concurrent_calls":{"maximum":100,"minimum":1,"type":"integer","description":"The maximum concurrent calls for the agentless dialer.","example":5},"old_flow_id":{"type":"string","description":"The agentless dialer's old flow ID.","example":"_2npVp3juQWO2g9pt2rqSKg"},"new_flow_id":{"type":"string","description":"The agentless dialer's new flow ID.","example":"_3npVp3juQWO2g9pt2rqSKg"},"agentless_amd_off_action":{"maxLength":50,"type":"string","description":"Action when agentless AMD is off.","example":"use_flow","enum":["use_flow","hang_up","play_media"]},"agentless_amd_off_resource_id":{"type":"string","description":"Resource ID when agentless AMD is off.","example":"z8XtiytyQammquBRlVPiWw"}}}}}},"responses":{"204":{"description":"**HTTP Status Code:** `204`     Outbound Campaign is updated."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `300` <br>\n Validation failed. <br>\n**Error Code:** `302` <br>\n Invalid enum value. <br>\n**Error Code:** `5008` <br>\n Campaign phone number not found. Please check that the phone number exists in **Contact Center Preferences** and that the ID is correct. <br>\n**Error Code:** `5011` <br>\n Campaign business hour not found. Please check that the operating hours exist in **Contact Center Preferences** and that the ID is correct. <br>\n**Error Code:** `5012` <br>\n Campaign closure hour set not found. Please check that the operating hours exist in **Contact Center Preferences** and that the ID is correct. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `5005` <br>\n Campaign is not found. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_outbound_campaign:update:admin","contact_center:update:outbound_campaign:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_outbound_campaign:update:admin"],"x-granular-scopes":["contact_center:update:outbound_campaign:admin"]}}},"/contact_center/outbound_campaign/campaigns/{campaignId}/status":{"patch":{"tags":["Campaigns"],"summary":"Update an outbound campaign status","description":"Update an outbound campaign status.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_outbound_campaign:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:update:outbound_campaign:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"Updateanoutboundcampaignstatus","parameters":[{"name":"campaignId","in":"path","description":"The outbound campaign ID.","required":true,"schema":{"type":"string","example":"TY_XsJuWR9ehXrsf1DSIAQ"}}],"requestBody":{"description":"Update an outbound campaign status.","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","description":"An outbound campaign status.","example":"Draft","default":"Draft","enum":["Draft","Ready","Paused","Running"]}}}}}},"responses":{"204":{"description":"**HTTP Status Code:** `204`     Outbound Campaign Status is updated."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `302` <br>\n Invalid enum value. <br>\n**Error Code:** `300` <br>\n Validation failed. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_outbound_campaign:write:admin","contact_center:update:outbound_campaign:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_outbound_campaign:write:admin"],"x-granular-scopes":["contact_center:update:outbound_campaign:admin"]}}},"/contact_center/outbound_campaign/contact_list_custom_fields":{"get":{"tags":["Campaigns"],"summary":"List campaign contact lists' custom fields","description":"Retrieve all custom fields defined for campaign contact lists.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_outbound_campaign_contactlist:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:outbound_campaign_contactlist:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"listCampaignCustomFields","parameters":[{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of records returned in a single API call.","required":false,"schema":{"maximum":300,"type":"integer","format":"int32","example":30,"default":30}}],"responses":{"200":{"description":"The campaign contact list's custom fields list is returned.","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"maxLength":100,"type":"string","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":300,"type":"integer","description":"The number of records returned in a single API call.","example":30,"default":30},"total_records":{"minimum":0,"type":"integer","description":"The total number of all records available across pages.","example":10},"custom_fields":{"type":"array","description":"Information about custom fields in campaign contact lists.","items":{"required":["custom_field_id","custom_field_name","data_type"],"type":"object","properties":{"custom_field_id":{"maxLength":36,"type":"string","description":"The custom field's ID.","example":"7381d210 Contact Method"},"custom_field_name":{"maxLength":30,"type":"string","description":"The custom field's name.","example":"Preferred Contact Method"},"data_type":{"type":"string","description":"The custom field's data type.\n\n- `string` - Any text value.\n- `number` - Numeric value. Supports integers or decimals like `123.45`. Valid range is -9999999999 to 9999999999.\n- `percent` - Numeric value between 0 and 100. May include decimals.\n- `currency` - Decimal value ≥ 0 with up to two decimal places.\n\nWhen `data_type` is `pick_list`, `pick_list_values` specifies the allowed options.","example":"string","enum":["string","number","boolean","email","phone","percent","currency","date_time","pick_list"]},"default_value":{"maxLength":512,"type":"string","description":"The custom field's default value.","example":"phone"},"pick_list_values":{"maxItems":250,"type":"array","description":"The picklist's supported values. This is only valid when `data_type` is `pick_list`.","items":{"maxLength":512,"type":"string","example":"phone"}},"contact_list_ids":{"maxItems":50,"type":"array","description":"The contact list IDs associated with the custom field.","items":{"maxLength":36,"type":"string","description":"The contact list's ID.","example":"suk0leXNTye2JjIm6v0yCQ"}},"use_as_routing_profile_parameter":{"type":"boolean","description":"Whether the custom field is used in the consumer routing profile.","example":true},"use_as_external_url_parameter":{"type":"boolean","description":"Whether the `custom_field_name` is used in defining external URLs launched for each engagement.\n\nWhen set to `true`, the `custom_field_name` should not contain any spaces.","example":false},"show_in_transferred_calls":{"type":"boolean","description":"Whether the custom field is shown in calls transferred to Zoom Phone.","example":true},"allow_third_party_access":{"type":"boolean","description":"Whether the custom field can be accessed by third party apps.","example":true},"show_in_inbound_notification":{"type":"boolean","description":"Whether the custom field is shown on the inbound engagement notification in the Zoom client.","example":true},"show_in_profile_tab":{"type":"boolean","description":"Whether the custom field is shown on the profile tab in the Zoom client.","example":false}}}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_outbound_campaign_contactlist:read:admin","contact_center:read:outbound_campaign_contactlist:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_outbound_campaign_contactlist:read:admin"],"x-granular-scopes":["contact_center:read:outbound_campaign_contactlist:admin"]}},"post":{"tags":["Campaigns"],"summary":"Create a campaign contact list's custom field","description":"Create a custom field for a campaign contact list.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_outbound_campaign_contactlist:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:write:outbound_campaign_contactlist:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"createACampaignContactCustomField","requestBody":{"content":{"application/json":{"schema":{"required":["custom_field_name","data_type"],"type":"object","properties":{"custom_field_name":{"maxLength":30,"type":"string","description":"The custom field's name. When `use_as_external_url_parameter` is set to `true`, `custom_field_name` must not contain spaces.","example":"contact_field_demo"},"data_type":{"type":"string","description":"The custom field's data type.\n- `string` - Any text value.\n- `number` - Numeric value. Supports integers or decimals like 123.45. Valid range is -9999999999 to 9999999999.\n- `percent` - Numeric value between 0 and 100. May include decimals.\n- `currency` - Decimal value ≥ 0 with up to two decimal places.\nWhen `data_type` is `pick_list`, `pick_list_values` specifies the allowed options.","example":"string","enum":["string","number","boolean","email","phone","percent","currency","date_time","pick_list"]},"default_value":{"maxLength":512,"type":"string","description":"The custom field's default value. When `data_type` is `pick_list`, the default value must be one of the `pick_list_values`.","example":"option_a"},"pick_list_values":{"maxItems":250,"minItems":1,"type":"array","description":"The list of supported values for the picklist. This field is required when `data_type` is `pick_list`.","items":{"maxLength":512,"type":"string","example":"option_a"}},"contact_list_ids":{"maxItems":50,"type":"array","description":"The IDs of contact lists associated with the custom field. Retrieve available contact list IDs using the [**List campaign contact lists**](/docs/api/contact-center/#tag/campaigns/get/contact_center/outbound_campaign/contact_lists) API.","items":{"maxLength":36,"type":"string","description":"The contact list's ID.","example":"suk0leXNTye2JjIm6v0yCQ"}},"use_as_routing_profile_parameter":{"type":"boolean","description":"Whether the custom field is used in the consumer routing profile.","example":true},"use_as_external_url_parameter":{"type":"boolean","description":"Whether the `custom_field_name` is used in defining external URLs launched for each engagement.\n\nWhen set to t`rue`, the `custom_field_name` should not contain any spaces.","example":false},"show_in_transferred_calls":{"type":"boolean","description":"Whether the custom field is shown in calls transferred to Zoom Phone.","example":true},"allow_third_party_access":{"type":"boolean","description":"Whether the custom field can be accessed by third party apps.","example":true},"show_in_inbound_notification":{"type":"boolean","description":"Whether the custom field is shown on the inbound engagement notification in the Zoom client.","example":true},"show_in_profile_tab":{"type":"boolean","description":"Whether the custom field is shown on the profile tab in the Zoom client.","example":false}}}}}},"responses":{"201":{"description":"Custom field created.","content":{"application/json":{"schema":{"required":["custom_field_id","custom_field_name","data_type"],"type":"object","properties":{"custom_field_id":{"maxLength":36,"type":"string","description":"The custom field's ID.","example":"7381d210-360e-4fbd-86e4-33eb7109b084"},"custom_field_name":{"maxLength":30,"type":"string","description":"The custom field's name. When `use_as_external_url_parameter` is set to `true`, `custom_field_name` must not contain spaces.","example":"contact_field_demo"},"data_type":{"type":"string","description":"The custom field's data type.\n\n- `string` - Any text value.\n- `number` - Numeric value. Supports integers or decimals like 123.45. Valid range is -9999999999 to 9999999999.\n- `percent` - Numeric value between 0 and 100. May include decimals.\n- `currency` - Decimal value ≥ 0 with up to two decimal places.\n\nWhen `data_type` is `pick_list`, `pick_list_values` specifies the allowed options.","example":"string","enum":["string","number","boolean","email","phone","percent","currency","date_time","pick_list"]},"default_value":{"maxLength":512,"type":"string","description":"The custom field's default value. When `data_type` is `pick_list`, the default value must be one of the `pick_list_values`.","example":"option_a"},"pick_list_values":{"maxItems":250,"minItems":1,"type":"array","description":"The list of supported values for the picklist. This field is required when `data_type` is `pick_list`.","items":{"maxLength":512,"type":"string","example":"option_a"}},"contact_list_ids":{"maxItems":50,"type":"array","description":"The IDs of contact lists associated with the custom field. Retrieve available contact list IDs using the [**List campaign contact lists**](/docs/api/contact-center/#tag/campaigns/get/contact_center/outbound_campaign/contact_lists) API.","items":{"maxLength":36,"type":"string","description":"The contact list's ID.","example":"suk0leXNTye2JjIm6v0yCQ"}},"use_as_routing_profile_parameter":{"type":"boolean","description":"Whether the custom field is used in the consumer routing profile.","example":true},"use_as_external_url_parameter":{"type":"boolean","description":"Whether the `custom_field_name` is used in defining external URLs launched for each engagement.\nWhen set to true, the `custom_field_name` should not contain any spaces.","example":false},"show_in_transferred_calls":{"type":"boolean","description":"Whether the custom field is shown in calls transferred to Zoom Phone.","example":true},"allow_third_party_access":{"type":"boolean","description":"Whether the custom field can be accessed by third party apps.","example":true},"show_in_inbound_notification":{"type":"boolean","description":"Whether the custom field is shown on the inbound engagement notification in the Zoom client.","example":true},"show_in_profile_tab":{"type":"boolean","description":"Whether the custom field is shown on the profile tab in the Zoom client.","example":false}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `300` <br>\n Invalid field. <br>\n**Error Code:** `2107` <br>\n A custom field with this name already exists: {0}. <br>\n**Error Code:** `2108` <br>\n The data type provided for the custom field is not supported. <br>\n**Error Code:** `2109` <br>\n The default value format does not match the data type. <br>\n**Error Code:** `2110` <br>\n You've exceeded the maximum limit of 4096 custom fields. <br>\n**Error Code:** `2111` <br>\n Custom field name cannot contain spaces when `use_as_external_url_parameter` is `true`. Field name cannot contain spaces when `use_as_external_url_parameter` is `true`. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `5001` <br>\n Contact list not found. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_outbound_campaign_contactlist:write:admin","contact_center:write:outbound_campaign_contactlist:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_outbound_campaign_contactlist:write:admin"],"x-granular-scopes":["contact_center:write:outbound_campaign_contactlist:admin"]}}},"/contact_center/outbound_campaign/contact_list_custom_fields/{customFieldId}":{"get":{"tags":["Campaigns"],"summary":"Get a campaign contact list's custom field","description":"Retrieve information about a campaign contact list custom field.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_outbound_campaign_contactlist:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:outbound_campaign_contactlist:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"getACampaignContactCustomField","parameters":[{"name":"customFieldId","in":"path","description":"The custom field's ID.","required":true,"schema":{"maxLength":36,"type":"string","example":"7381d210-360e-4fbd-86e4-33eb7109b084"}}],"responses":{"200":{"description":"The campaign contact list's custom field is returned.","content":{"application/json":{"schema":{"required":["custom_field_id","custom_field_name","data_type"],"type":"object","properties":{"custom_field_id":{"maxLength":36,"type":"string","description":"The custom field's ID.","example":"7381d210-360e-4fbd-86e4-33eb7109b084"},"custom_field_name":{"maxLength":30,"type":"string","description":"The custom field's name.","example":"Preferred Contact Method"},"data_type":{"type":"string","description":"The custom field's data type.\n\n- `string` - Any text value.\n- `number` - Numeric value. Supports integers or decimals, like `123.45`. Valid range is -9999999999 to 9999999999.\n- `percent` - Numeric value between 0 and 100. May include decimals.\n- `currency` - Decimal value ≥ 0 with up to two decimal places.\n\nWhen `data_type` is `pick_list`, `pick_list_values` specifies the allowed options.","example":"string","enum":["string","number","boolean","email","phone","percent","currency","date_time","pick_list"]},"default_value":{"maxLength":512,"type":"string","description":"The custom field's default value.","example":"phone"},"pick_list_values":{"maxItems":250,"type":"array","description":"The list of supported values for the picklist. This is only valid when `data_type` is `pick_list`.","items":{"maxLength":512,"type":"string","example":"phone"}},"contact_list_ids":{"maxItems":50,"type":"array","description":"The IDs of contact lists associated with the custom field.","items":{"maxLength":36,"type":"string","description":"The contact list's ID.","example":"suk0leXNTye2JjIm6v0yCQ"}},"use_as_routing_profile_parameter":{"type":"boolean","description":"Whether the custom field is used in the consumer routing profile.","example":true},"use_as_external_url_parameter":{"type":"boolean","description":"Whether the `custom_field_name` is used in defining external URLs launched for each engagement.\n\nWhen set to `true`, the `custom_field_name` should not contain any spaces.","example":false},"show_in_transferred_calls":{"type":"boolean","description":"Whether the custom field is shown in calls transferred to Zoom Phone.","example":true},"allow_third_party_access":{"type":"boolean","description":"Whether the custom field can be accessed by third party apps.","example":true},"show_in_inbound_notification":{"type":"boolean","description":"Whether the custom field is shown on the inbound engagement notification in the Zoom client.","example":true},"show_in_profile_tab":{"type":"boolean","description":"Whether the custom field is shown on the profile tab in the Zoom client.","example":false}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `2112` <br>\n Custom field does not exist: {0}. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_outbound_campaign_contactlist:read:admin","contact_center:read:outbound_campaign_contactlist:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_outbound_campaign_contactlist:read:admin"],"x-granular-scopes":["contact_center:read:outbound_campaign_contactlist:admin"]}},"delete":{"tags":["Campaigns"],"summary":"Delete a campaign contact list's custom field","description":"Delete a custom field in a campaign contact list.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_outbound_campaign_contactlist:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:delete:outbound_campaign_contactlist:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"deleteACampaignCustomField","parameters":[{"name":"customFieldId","in":"path","description":"The custom field's ID.","required":true,"schema":{"maxLength":36,"type":"string","example":"7381d210-360e-4fbd-86e4-33eb7109b084"}}],"responses":{"204":{"description":"Custom field deleted."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `2112` <br>\n Custom field does not exist: {0}. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_outbound_campaign_contactlist:write:admin","contact_center:delete:outbound_campaign_contactlist:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_outbound_campaign_contactlist:write:admin"],"x-granular-scopes":["contact_center:delete:outbound_campaign_contactlist:admin"]}},"patch":{"tags":["Campaigns"],"summary":"Update a campaign contact list's custom field","description":"Update details of a campaign contact list's custom field.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_outbound_campaign_contactlist:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:update:outbound_campaign_contactlist:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"updateACampaignCustomField","parameters":[{"name":"customFieldId","in":"path","description":"The custom field's ID.","required":true,"schema":{"maxLength":36,"type":"string","example":"7381d210-360e-4fbd-86e4-33eb7109b084"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"custom_field_name":{"maxLength":30,"minLength":1,"type":"string","description":"The custom field's name.","example":"Preferred Contact Method"},"data_type":{"type":"string","description":"The custom field's data type.\n\n- `string`- Any text value.\n- `number` - Numeric value. Supports integers or decimals, like `123.45`. Valid range is -9999999999 to 9999999999.\n- `percent` - Numeric value between 0 and 100. May include decimals.\n- `currency` - Decimal value ≥ 0 with up to two decimal places.\n\nWhen `data_type` is `pick_list`, `pick_list_values` specifies the allowed options.\n\n**Note** Modifying the `data_type` will invalidate all previously configured related variables.","example":"string","enum":["string","number","boolean","email","phone","percent","currency","date_time","pick_list"]},"default_value":{"maxLength":512,"type":"string","description":"The custom field's default value.","example":"phone"},"pick_list_values":{"maxItems":250,"type":"array","description":"The list of the picklist's supported values. This is only valid when `data_type` is `pick_list`. \n\nWhen updating this array, the update operation performs a full replacement of the existing list rather than a merge. \n\nRemoving values from the list does not affect any existing contacts that already use those values. They remain valid for those contacts. \n\nValues currently in use can still be removed from the picklist definition.","items":{"maxLength":512,"type":"string","example":"phone"}},"contact_list_ids":{"maxItems":50,"type":"array","description":"The list of contact list IDs that should be associated with the custom field.\n\nWhen updating this array, the operation performs a **full replacement** of the existing list rather than an additive merge. This means that any previously associated contact list IDs not included in the update request will be removed from the association. \n\nIf a contact list that is currently associated with this custom field is deleted or becomes unavailable, the corresponding value in that field becomes invalid and should be handled appropriately by the client application. \n\nEnsure that updated contact list IDs reference valid and existing contact lists to avoid invalid references or data integrity issues.","items":{"maxLength":36,"type":"string","description":"The unique identifier of a contact list associated with the custom field.","example":"X2e_jsLNRkCjI0sQg2kRQQ"}},"use_as_routing_profile_parameter":{"type":"boolean","description":"Whether the custom field is used in the consumer routing profile.","example":true},"use_as_external_url_parameter":{"type":"boolean","description":"Whether the `custom_field_name` is used in defining external URLs launched for each engagement.\n\nWhen set to `true`, the `custom_field_name` should not contain any spaces.","example":false},"show_in_transferred_calls":{"type":"boolean","description":"Whether the custom field is shown in calls transferred to Zoom Phone.","example":true},"allow_third_party_access":{"type":"boolean","description":"Whether the custom field can be accessed by third party apps.","example":true},"show_in_inbound_notification":{"type":"boolean","description":"Whether the custom field is shown on the inbound engagement notification in the Zoom client.","example":true},"show_in_profile_tab":{"type":"boolean","description":"Whether the custom field is shown on the profile tab in the Zoom client.","example":false}}}}}},"responses":{"204":{"description":"Custom field updated."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `300` <br>\n Invalid field. <br>\n**Error Code:** `2107` <br>\n A custom field with this name already exists: {0}. <br>\n**Error Code:** `2108` <br>\n The data type provided for the custom field is not supported. <br>\n**Error Code:** `2109` <br>\n The default value format does not match the data type. <br>\n**Error Code:** `2111` <br>\n Custom field name cannot contain spaces when use_as_external_url_parameter is true. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `2112` <br>\n Custom field does not exist: {0}. <br>\n**Error Code:** `5001` <br>\n Contact list not found. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_outbound_campaign_contactlist:write:admin","contact_center:update:outbound_campaign_contactlist:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_outbound_campaign_contactlist:write:admin"],"x-granular-scopes":["contact_center:update:outbound_campaign_contactlist:admin"]}}},"/contact_center/outbound_campaign/contact_lists":{"get":{"tags":["Campaigns"],"summary":"List campaign contact lists","description":"List campaign contact lists.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_outbound_campaign_contactlist:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:outbound_campaign_contactlist:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"listCampaignContactLists","parameters":[{"name":"contact_list_type","in":"query","description":"The contact list's type.\n\n- `contact` - default, returns contact lists\n- `do_not_contact` returns Do Not Contact (DNC) lists","required":false,"schema":{"type":"string","example":"contact","default":"contact","enum":["contact","do_not_contact"]}},{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of records returned within a single API call.","required":false,"schema":{"type":"integer","example":30}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`     Campaign contact lists or do not contact lists are returned.","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"maxLength":100,"type":"string","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":100,"minimum":1,"type":"integer","description":"The number of records returned within a single API call.","example":30,"default":30},"total_records":{"minimum":0,"type":"integer","description":"The total number of all records available across pages.","example":10},"contact_lists":{"type":"array","description":"Array of contact lists or DNC lists","items":{"required":["contact_list_id","contact_list_name","contacts_phones"],"type":"object","properties":{"contact_list_id":{"type":"string","description":"The campaign contact list's ID or DNC list's ID.","example":"MN2Dtcb2T-yT5CU3clN-AA"},"contact_list_name":{"maxLength":100,"minLength":1,"type":"string","description":"The campaign contact list's name or DNC list's name.","example":"Contact List"},"contact_list_description":{"maxLength":100,"type":"string","description":"The campaign contact list's description or DNC list's description.","example":"Description"},"contacts_count":{"maximum":100000,"type":"integer","description":"Number of contacts in the contact list or DNC list.","example":1}},"description":"Contact lists object"}}},"description":"Contact list items"}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_outbound_campaign_contactlist:read:admin","contact_center:read:outbound_campaign_contactlist:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_outbound_campaign_contactlist:read:admin"],"x-granular-scopes":["contact_center:read:outbound_campaign_contactlist:admin"]}},"post":{"tags":["Campaigns"],"summary":"Create a campaign contact list","description":"Create a campaign contact list.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_outbound_campaign_contactlist:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:write:outbound_campaign_contactlist:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"createCampaignContactList","requestBody":{"content":{"application/json":{"schema":{"required":["contact_list_name"],"type":"object","properties":{"contact_list_name":{"maxLength":100,"minLength":1,"type":"string","description":"The contact list's name.","example":"Contact List"},"contact_list_description":{"maxLength":100,"type":"string","description":"The contact list's description.","example":"This is a description"},"contact_list_type":{"maxLength":100,"type":"string","description":"The contact list's type.","example":"contact","default":"contact","enum":["contact","do_not_contact"]}},"description":"Campaign contact list object."}}}},"responses":{"201":{"description":"**HTTP Status Code:** `201`     Campaign contact list is created.","content":{"application/json":{"schema":{"type":"object","properties":{"contact_list_id":{"type":"string","description":"The newly created contact list's ID.","example":"rfMoVPVYS3yjWJAzdOOlWA"},"contact_list_name":{"type":"string","description":"The contact list's name.","example":"Contact List"},"contact_list_description":{"type":"string","description":"The contact list's description.","example":"Description"},"contacts_count":{"type":"integer","description":"Number of contacts.","example":0},"contact_list_type":{"type":"string","description":"The contact list's type.","example":"contact"}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `300` <br>\n Validation failed. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_outbound_campaign_contactlist:write:admin","contact_center:write:outbound_campaign_contactlist:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_outbound_campaign_contactlist:write:admin"],"x-granular-scopes":["contact_center:write:outbound_campaign_contactlist:admin"]}},"patch":{"tags":["Campaigns"],"summary":"Batch update campaign contact lists","description":"Batch update campaign contact lists.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_outbound_campaign_contactlist:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:update:outbound_campaign_contactlist:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"Batchupdatecampaigncontactlists","requestBody":{"content":{"application/json":{"schema":{"required":["contact_list_id"],"type":"object","properties":{"contact_list_id":{"maxLength":64,"type":"string","description":"Campaign contact list ID.","example":"07UQHRzvQ02R_o-l9pBB4w"},"contact_list_name":{"maxLength":100,"type":"string","description":"The campaign contact list's name.","example":"New Name"},"contact_list_description":{"maxLength":100,"type":"string","description":"The campaign contact list's description.","example":"New Description"}},"description":"Request body."}}}},"responses":{"200":{"description":"**HTTP Status Code:** `200`     Campaign contact lists are updated.","content":{"application/json":{"schema":{"type":"object","properties":{"failed_contact_lists":{"maxItems":100,"type":"array","description":"List of contact lists that failed to patch.","items":{"type":"object","properties":{"contact_list_id":{"type":"string","description":"The contact list's ID.","example":"07UQHRzvQ02R_o-l9pBB4w"},"error":{"type":"string","description":"The failure reason.","example":"Contact list not found"}},"description":"Failure reason object."}}},"description":"Response body."}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `300` <br>\n Validation failed. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_outbound_campaign_contactlist:write:admin","contact_center:update:outbound_campaign_contactlist:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_outbound_campaign_contactlist:write:admin"],"x-granular-scopes":["contact_center:update:outbound_campaign_contactlist:admin"]}}},"/contact_center/outbound_campaign/contact_lists/{contactListId}":{"get":{"tags":["Campaigns"],"summary":"Get a campaign contact list","description":"Get a campaign contact list.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_outbound_campaign_contactlist:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:outbound_campaign_contactlist:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"getCampaignContactList","parameters":[{"name":"contactListId","in":"path","description":"Contact list ID.","required":true,"schema":{"type":"string","example":"MN2Dtcb2T-yT5CU3clN-AA"}},{"name":"contact_list_identifier_type","in":"query","description":"How the path parameter is interpreted. `id` treats it as a system-generated unique identifier. `name` treats it as the resource name.\nWhen using `name`, the resource name must be URL-encoded per RFC 3986.","required":false,"schema":{"type":"string","example":"id","default":"id","enum":["id","name"]}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`    Campaign contact list is returned.","content":{"application/json":{"schema":{"required":["contact_list_id","contact_list_name"],"type":"object","properties":{"contact_list_id":{"type":"string","description":"The campaign contact list's ID.","example":"MN2Dtcb2T-yT5CU3clN-AA"},"contact_list_name":{"maxLength":100,"minLength":1,"type":"string","description":"The campaign contact list's name.","example":"Contact List"},"contact_list_description":{"maxLength":100,"type":"string","description":"The campaign contact list's description.","example":"Description"},"contacts_count":{"maximum":100000,"type":"integer","description":"Number of contacts in the contact list.","example":1},"contact_list_type":{"type":"string","description":"Contact list type.","example":"contact","enum":["contact","do_not_contact"]}},"description":"Campaign contact list object."}}}},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `5001` <br>\n Contact list is not found <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_outbound_campaign_contactlist:read:admin","contact_center:read:outbound_campaign_contactlist:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_outbound_campaign_contactlist:read:admin"],"x-granular-scopes":["contact_center:read:outbound_campaign_contactlist:admin"]}},"delete":{"tags":["Campaigns"],"summary":"Remove a campaign contact list","description":"Delete a campaign contact list\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_outbound_campaign_contactlist:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:delete:outbound_campaign_contactlist:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"deleteCampaignContactList","parameters":[{"name":"contactListId","in":"path","description":"The contact list ID.","required":true,"schema":{"type":"string","example":"TY_XsJuWR9ehXrsf1DSIAQ"}}],"responses":{"204":{"description":"**HTTP Status Code:** `204`     Campaign contact list is removed."},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `5001` <br>\n Contact list not found. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_outbound_campaign_contactlist:write:admin","contact_center:delete:outbound_campaign_contactlist:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_outbound_campaign_contactlist:write:admin"],"x-granular-scopes":["contact_center:delete:outbound_campaign_contactlist:admin"]}},"patch":{"tags":["Campaigns"],"summary":"Update a campaign contact list","description":"Update a campaign contact list\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_outbound_campaign_contactlist:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:update:outbound_campaign_contactlist:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"updateCampaignContactList","parameters":[{"name":"contactListId","in":"path","description":"Campaign contact list Id","required":true,"schema":{"type":"string","example":"07UQHRzvQ02R_o-l9pBB4w"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"contact_list_name":{"maxLength":100,"type":"string","description":"The name of the campaign contact list","example":"New Name"},"contact_list_description":{"maxLength":100,"type":"string","description":"Description for the campaign contact list","example":"New Description"}}}}}},"responses":{"204":{"description":"**HTTP Status Code:** `204`     Campaign contact list is updated."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `300` <br>\n Validation failed. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `5001` <br>\n Contact list not found. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_outbound_campaign_contactlist:write:admin","contact_center:update:outbound_campaign_contactlist:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_outbound_campaign_contactlist:write:admin"],"x-granular-scopes":["contact_center:update:outbound_campaign_contactlist:admin"]}}},"/contact_center/outbound_campaign/contact_lists/{contactListId}/contacts":{"get":{"tags":["Campaigns"],"summary":"List a campaign contact list's contacts","description":"List contacts on a campaign contact list.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_outbound_campaign_contacts:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:outbound_campaign_contacts:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"listCampaignContactListContacts","parameters":[{"name":"contactListId","in":"path","description":"Campaign contact list ID.","required":true,"schema":{"type":"string","example":"rfMoVPVYS3yjWJAzdOOlWA"}},{"name":"contact_list_identifier_type","in":"query","description":"How the path parameter is interpreted. `id` treats it as a system-generated unique identifier. `name` treats it as the resource name.\nWhen using `name`, the resource name must be URL-encoded per RFC 3986.","required":false,"schema":{"type":"string","example":"id","default":"id","enum":["id","name"]}},{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of records returned within a single API call.","required":false,"schema":{"maximum":100,"type":"integer","format":"int32","example":30,"default":30}}],"responses":{"200":{"description":"Campaign contacts of contact list are returned.","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"maxLength":100,"type":"string","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":100,"minimum":1,"type":"integer","description":"The number of records returned within a single API call.","example":30,"default":30},"total_records":{"minimum":0,"type":"integer","description":"The total number of all records available across pages.","example":10},"contacts":{"type":"array","description":"Array of contacts.","items":{"required":["contact_display_name","contact_id","contact_phones"],"type":"object","properties":{"contact_id":{"type":"string","description":"The contact ID.","example":"07UQHRzvQ02R_o-l9pBB4w"},"contact_display_name":{"maxLength":64,"type":"string","description":"The contact's display name.","example":"Jill Chill"},"contact_first_name":{"maxLength":64,"type":"string","description":"The contact's first name.","example":"Jill"},"contact_last_name":{"maxLength":64,"type":"string","description":"The contact's last name.","example":"Chill"},"contact_phones":{"maxItems":5,"type":"array","description":"The contact's phone numbers.","items":{"required":["contact_phone_number","contact_phone_type"],"type":"object","properties":{"contact_phone_number":{"type":"string","description":"Phone number, in E164 format.","example":"+12345551100"},"contact_phone_type":{"type":"string","description":"The phone's type.","example":"Main","enum":["Main","Home","Work","Mobile","Other"]}}}},"contact_emails":{"maxItems":4,"uniqueItems":true,"type":"array","description":"Array of emails.","items":{"type":"string","description":"The contact's email.","format":"email","example":"test@example.com"}},"contact_location":{"maxLength":50,"type":"string","description":"The contact's location.","example":"Location"},"contact_account_number":{"maxLength":50,"type":"string","description":"The contact's account number.","example":"123"},"contact_company":{"maxLength":50,"type":"string","description":"The contact's company.","example":"Zoom"},"contact_role":{"maxLength":50,"type":"string","description":"The contact's role.","example":"developer"},"custom_fields":{"maxItems":4096,"type":"array","description":"Custom fields associated with the current contact.","items":{"required":["custom_field_id","custom_field_value"],"type":"object","properties":{"custom_field_id":{"maxLength":36,"minLength":1,"type":"string","description":"The custom field's ID. Required - must not be null or empty.","example":"suk0leXNTye2JjIm6v0yCQ"},"custom_field_value":{"maxLength":512,"type":"string","description":"The custom field's value. All custom field values are represented as `strings`, regardless of their logical data type specified in `data_type`.\n\nThe API consumer should provide the value in the correct format according to the `data_type`.\n\n- `string` - Any text content.\n- `number` - Numeric string representing integer or decimal values, such as '123.45'. Valid range is -9999999999 to 9999999999.\n- `boolean - 'true' or 'false'.\n- `email` - Valid email address format.\n- `phone` - Phone number string including country code, like `+1-202-555-0147`.\n- `percent` - Numeric string between 0 and 100, like `85.5`.\n- `currency` - Decimal string ≥ 0 with up to two decimal places.\n- `date_time` - ISO 8601 formatted string, like `2026-01-28T08:00:00Z`.\n- `pick_list` - One of the allowed option values defined in `pick_list_values`.\n\nInput validation should follow these rules based on the `data_type`.","example":"+1-202-555-0147"}},"description":"A single custom field object."}}},"description":"Contact object."}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `5017` <br>\n More than one matching contact list found. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_outbound_campaign_contacts:read:admin","contact_center:read:outbound_campaign_contacts:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_outbound_campaign_contacts:read:admin"],"x-granular-scopes":["contact_center:read:outbound_campaign_contacts:admin"]}},"post":{"tags":["Campaigns"],"summary":"Create a campaign contact list's contact","description":"Add a new contact to a campaign contact list.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_outbound_campaign_contacts:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:write:outbound_campaign_contacts:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"createCampaignContactListContact","parameters":[{"name":"contactListId","in":"path","description":"Campaign contact list.","required":true,"schema":{"type":"string","example":"MN2Dtcb2T-yT5CU3clN-AA"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["contact_display_name","contact_phones"],"type":"object","properties":{"contact_display_name":{"maxLength":64,"minLength":1,"type":"string","description":"The contact's display name.","example":"Display Name"},"contact_first_name":{"maxLength":64,"type":"string","description":"The contact's first name.","example":"First Name"},"contact_last_name":{"maxLength":64,"type":"string","description":"The contact's last name.","example":"Last Name"},"contact_phones":{"maxItems":5,"type":"array","description":"Supports up to 5 phone numbers. Only one main or primary phone number is supported.","items":{"required":["contact_phone_number","contact_phone_type"],"type":"object","properties":{"contact_phone_number":{"type":"string","description":"Phone number in E164 format.","example":"+12345551100"},"contact_phone_type":{"type":"string","description":"The phone's type.","example":"Main","enum":["Main","Work","Home","Mobile","Other"]}}}},"contact_emails":{"maxItems":4,"uniqueItems":true,"type":"array","description":"Supports up to 4 emails, with a maximum of 1100 characters total.","items":{"type":"string","description":"Email address","example":"test@example.com"}},"contact_location":{"maxLength":50,"type":"string","description":"The contact's location.","example":"Location"},"contact_account_number":{"maxLength":50,"type":"string","description":"The contact's account number.","example":"111"},"contact_company":{"maxLength":50,"type":"string","description":"The contact's company.","example":"zoom"},"contact_role":{"maxLength":50,"type":"string","description":"The contact's role.","example":"developer"},"contact_timezone":{"maxLength":50,"type":"string","description":"[TZDB identifier](/docs/api/references/abbreviations/#timezones) time zone.","example":"America/Los_Angeles"},"custom_fields":{"maxItems":4096,"type":"array","description":"Custom fields associated with the current contact.","items":{"required":["custom_field_id","custom_field_value"],"type":"object","properties":{"custom_field_id":{"maxLength":36,"minLength":1,"type":"string","description":"The custom field's ID.\n\nRequired, must not be null or empty)","example":"suk0leXNTye2JjIm6v0yCQ"},"custom_field_value":{"maxLength":512,"type":"string","description":"The custom field's value. All custom field values are represented as **strings**, regardless of their logical data type specified in `data_type`.\n\nThe API consumer should provide the value in the correct format according to the `data_type`.\n- **string** - Any text content.\n- **number** - Numeric string representing integer or decimal values, like '123.45'. Valid range is -9999999999 to 9999999999.\n- **boolean** - 'true' or 'false'.\n- **email** - Valid email address format, like 'user@example.com'.\n- **phone** - Phone number string including country code, like '+1-202-555-0147'.\n- **percent** - Numeric string between 0 and 100, like '85.5'.\n- **currency** - Decimal string ≥ 0 with up to two decimal places, like '199.99'.\n- **date_time** - ISO 8601 formatted string, such as '2026-01-28T08:00:00Z'.\n- **pick_list** - One of the allowed option values defined in `pick_list_values`.\n\nInput validation should follow these rules based on the `data_type`.","example":"+1-202-555-0147"}},"description":"A single custom field object."}}}}}}},"responses":{"201":{"description":"**HTTP Status Code:** `201` New contact has been created.","content":{"application/json":{"schema":{"required":["contact_display_name","contact_id","contact_phones"],"type":"object","properties":{"contact_id":{"type":"string","description":"The contact's ID.","example":"GgAOGeRFQOqJlphf3gqhqg"},"contact_display_name":{"maxLength":64,"minLength":1,"type":"string","description":"The contact's display name.","example":"Jill Chill"},"contact_first_name":{"maxLength":64,"type":"string","description":"The contact's first name.","example":"Jill"},"contact_last_name":{"maxLength":64,"type":"string","description":"The contact's last name.","example":"Chill"},"contact_phones":{"maxItems":5,"minItems":1,"type":"array","description":"Contact emails","items":{"required":["contact_phone_number","contact_phone_type"],"type":"object","properties":{"contact_phone_number":{"type":"string","description":"The phone number, in E164 format.","example":"+12345551100"},"contact_phone_type":{"type":"string","description":"Phone type","example":"Main","enum":["Main","Work","Home","Mobile","Other"]}}}},"contact_emails":{"maxItems":4,"uniqueItems":true,"type":"array","description":"The contact's email addresses.","items":{"type":"string","description":"Email address","format":"email","example":"jillchill@example.com"}},"contact_location":{"maxLength":50,"type":"string","description":"The contact's location.","example":"Location"},"contact_account_number":{"maxLength":50,"type":"string","description":"Account number.","example":"111"},"contact_company":{"maxLength":50,"type":"string","description":"Contact company.","example":"zoom"},"contact_role":{"maxLength":50,"type":"string","description":"Contact role","example":"developer"},"contact_timezone":{"maxLength":50,"type":"string","description":"[TZDB identifier](/docs/api/references/abbreviations/#timezones) time zone.","example":"America/Los_Angeles"},"custom_fields":{"maxItems":4096,"type":"array","description":"Custom fields associated with the current contact.","items":{"required":["custom_field_id","custom_field_value"],"type":"object","properties":{"custom_field_id":{"maxLength":36,"minLength":1,"type":"string","description":"The custom field's ID. Required - must not be null or empty.","example":"suk0leXNTye2JjIm6v0yCQ"},"custom_field_value":{"maxLength":512,"type":"string","description":"The value of the custom field. All custom field values are represented as **strings**, regardless of their logical data type specified in `data_type`.\n\nThe API consumer should provide the value in the correct format according to the `data_type`.\n- **string** - Any text content.\n- **number** - Numeric string representing integer or decimal values, like '123.45'. Valid range is -9999999999 to 9999999999.\n- **boolean** - 'true' or 'false'.\n- **email** - Valid email address format, like 'user@example.com'.\n- **phone** - Phone number string including country code, like '+1-202-555-0147'.\n- **percent** - Numeric string between 0 and 100, like '85.5'.\n- **currency** - Decimal string ≥ 0 with up to two decimal places, such as '199.99'.\n- **date_time** - ISO 8601 formatted string, like'2026-01-28T08:00:00Z'.\n- **pick_list** - One of the allowed option values defined in `pick_list_values`.\n\nInput validation should follow these rules based on the `data_type`.","example":"+1-202-555-0147"}},"description":"A single custom field object."}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `300` <br>\n Validation failed. <br>\n**Error Code:** `5003` <br>\n Contact already exists. <br>\n**Error Code:** `5004` <br>\n Reached the limit of contacts per contact list. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `5001` <br>\n Contact list not found. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_outbound_campaign_contacts:write:admin","contact_center:write:outbound_campaign_contacts:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_outbound_campaign_contacts:write:admin"],"x-granular-scopes":["contact_center:write:outbound_campaign_contacts:admin"]}},"patch":{"tags":["Campaigns"],"summary":"Update a batch of contacts on a campaign contact list","description":"Batch update contacts on a campaign contact list.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_outbound_campaign_contacts:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:update:outbound_campaign_contacts:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"Updateabatchofcontactsonacampaigncontactlist","parameters":[{"name":"contactListId","in":"path","description":"Campaign contact list.","required":true,"schema":{"type":"string","example":"rfMoVPVYS3yjWJAzdOOlWA"}}],"requestBody":{"description":"Batch update contacts on a campaign contact list.","content":{"application/json":{"schema":{"type":"object","properties":{"contacts":{"maxItems":100,"type":"array","description":"Array of contacts to patch.","items":{"required":["contact_id"],"type":"object","properties":{"contact_id":{"maxLength":64,"type":"string","description":"The contact's ID.","example":"MN2Dtcb2T-yT5CU3clN-AA"},"contact_display_name":{"maxLength":64,"type":"string","description":"The contact's display name.","example":"Jill Chill"},"contact_first_name":{"maxLength":64,"type":"string","description":"The contact's first name.","example":"Jill"},"contact_last_name":{"maxLength":64,"type":"string","description":"The contact's last name.","example":"Chill"},"contact_phones":{"maxItems":5,"type":"array","description":"Supports up to 5 numbers. Only one main or primar phone number is supported.","items":{"type":"object","properties":{"contact_phone_number":{"type":"string","description":"Phone number, in E164 format.","example":"+12345551100"},"contact_phone_type":{"type":"string","description":"The phone's type.","example":"Main","enum":["Main","Work","Home","Mobile","Other"]}},"description":"The contact's phone object."}},"contact_emails":{"maxItems":4,"uniqueItems":true,"type":"array","description":"Supports up to 4 emails, up to a maximum of 1100 characters.","items":{"maxLength":1100,"type":"string","description":"Email address.","format":"email","example":"jillchill@example.com"}},"contact_location":{"maxLength":50,"type":"string","description":"The contact's location.","example":"Zurich"},"contact_account_number":{"maxLength":50,"type":"string","description":"The contact's account number.","example":"111"},"contact_company":{"maxLength":50,"type":"string","description":"The contact's company.","example":"Zoom"},"contact_role":{"maxLength":50,"type":"string","description":"The contact's role.","example":"developer"},"contact_timezone":{"maxLength":50,"type":"string","description":"[TZDB identifier](/docs/api/references/abbreviations/#timezones) time zone.","example":"America/Los_Angeles"},"custom_fields":{"maxItems":4096,"type":"array","description":"Custom fields associated with the current contact. \n\nIf omitted, existing custom fields remain unchanged. \n\nIf provided as an empty array, all existing custom fields for the contact will be removed. \nIf provided as null, the field is ignored and no changes are made.","items":{"required":["custom_field_id","custom_field_value"],"type":"object","properties":{"custom_field_id":{"maxLength":36,"minLength":1,"type":"string","description":"The custom field's ID.\n\nRequired. Must not be null or empty.","example":"suk0leXNTye2JjIm6v0yCQ"},"custom_field_value":{"maxLength":512,"type":"string","description":"The value of the custom field. All custom field values are represented as **strings**, regardless of their logical data type specified in `data_type`.\nThe API consumer should provide the value in the correct format according to the `data_type`:\n- **string**: Any text content.\n- **number**: Numeric string representing integer or decimal values (e.g., '123.45'). Valid range: -9999999999 to 9999999999.\n- **boolean**: 'true' or 'false'.\n- **email**: Valid email address format (e.g., 'user@example.com').\n- **phone**: Phone number string including country code (e.g., '+1-202-555-0147').\n- **percent**: Numeric string between 0 and 100 (e.g., '85.5').\n- **currency**: Decimal string ≥ 0 with up to two decimal places (e.g., '199.99').\n- **date_time**: ISO 8601 formatted string (e.g., '2026-01-28T08:00:00Z').\n- **pick_list**: One of the allowed option values defined in `pick_list_values`.\nInput validation should follow these rules based on the `data_type`.","example":"+1-202-555-0147"}},"description":"A single custom field object."}}},"description":"Contact object."}}},"description":"Request body."}}}},"responses":{"200":{"description":"**HTTP Status Code:** `200` Contact list is updated.","content":{"application/json":{"schema":{"type":"object","properties":{"failed_contacts":{"maxItems":100,"uniqueItems":true,"type":"array","description":"List of contacts that failed to patch.","items":{"type":"object","properties":{"contact_id":{"maxLength":64,"type":"string","description":"The contact's ID.","example":"MN2Dtcb2T-yT5CU3clN-AA"},"error":{"type":"string","description":"The reason for failure.","example":"Contact not found"}},"description":"Failure reason object."}}},"description":"Response body."}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `300` <br>\n Validation failed. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n "},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_outbound_campaign_contacts:write:admin","contact_center:update:outbound_campaign_contacts:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_outbound_campaign_contacts:write:admin"],"x-granular-scopes":["contact_center:update:outbound_campaign_contacts:admin"]}}},"/contact_center/outbound_campaign/contact_lists/{contactListId}/contacts/batch":{"post":{"tags":["Campaigns"],"summary":"Insert a batch of contacts into a campaign contact list","description":"Batch insert contacts into a campaign contact list.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_outbound_campaign_contacts:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:write:outbound_campaign_contacts:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"Insertabatchofcontactstoacampaigncontactlist","parameters":[{"name":"contactListId","in":"path","description":"The `contactListId` refers to the unique identifier of the contact list associated with a specific campaign.","required":true,"schema":{"type":"string","example":"rfMoVPVYS3yjWJAzdOOlWA"}}],"requestBody":{"description":"Batch insert contacts to a campaign contact list.","content":{"application/json":{"schema":{"type":"object","properties":{"contacts":{"maxItems":100,"minItems":1,"type":"array","description":"Array of contacts to insert.","items":{"required":["contact_display_name","contact_phones"],"type":"object","properties":{"contact_display_name":{"maxLength":64,"type":"string","description":"The contact's display name.","example":"Jane Doe"},"contact_first_name":{"maxLength":64,"type":"string","description":"The contact's first name.","example":"Jane"},"contact_last_name":{"maxLength":64,"type":"string","description":"The contact's last name.","example":"Doe"},"contact_phones":{"maxItems":5,"minItems":1,"type":"array","description":"Supports up to 5 numbers. Only one main or primary phone number is supported.","items":{"required":["contact_phone_number","contact_phone_type"],"type":"object","properties":{"contact_phone_number":{"type":"string","description":"The phone number, in E164 format.","example":"+12345551100"},"contact_phone_type":{"type":"string","description":"The phone's type.","example":"Main","enum":["Main","Work","Home","Mobile","Other"]}},"description":"The contact's phone object."}},"contact_emails":{"maxItems":4,"uniqueItems":true,"type":"array","description":"Supports up to 4 emails.","items":{"maxLength":250,"type":"string","description":"Email address.","format":"email","example":"jdoe@example.com"}},"contact_location":{"maxLength":50,"type":"string","description":"The contact's location.","example":"Los_Angeles"},"contact_account_number":{"maxLength":50,"type":"string","description":"The contact's account number.","example":"73510482"},"contact_company":{"maxLength":50,"type":"string","description":"The contact's company.","example":"Zoom"},"contact_role":{"maxLength":50,"type":"string","description":"The contact's role.","example":"Developer"},"contact_timezone":{"maxLength":50,"type":"string","description":"[TZDB identifier](/docs/api/references/abbreviations/#timezones) time zone.","example":"America/Los_Angeles"}},"description":"Contact object."}}},"description":"A batch of contacts to be inserted into the campaign's contact list."}}}},"responses":{"200":{"description":"**HTTP Status Code:** `200` The request was processed successfully. Check the `failed_contacts` array for any contacts that could not be created.","content":{"application/json":{"schema":{"type":"object","properties":{"failed_contacts":{"type":"array","description":"List of contacts that failed to be created.","items":{"type":"object","properties":{"contact_index":{"type":"string","description":"The contact's index from the input list, zero-based.","example":"3"},"error":{"type":"string","description":"The error message describing why the contact failed to be created.","example":"Invalid Email"}},"description":"Failure reason object."}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `300` <br>\n Validation failed. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n**Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_outbound_campaign_contacts:write:admin","contact_center:write:outbound_campaign_contacts:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_outbound_campaign_contacts:write:admin"],"x-granular-scopes":["contact_center:write:outbound_campaign_contacts:admin"]}}},"/contact_center/outbound_campaign/contact_lists/{contactListId}/contacts/{contactId}":{"get":{"tags":["Campaigns"],"summary":"Get a campaign contact list's contact","description":"Get a contact on a campaign contact list.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_outbound_campaign_contacts:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:outbound_campaign_contacts:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"getCampaignContactListContact","parameters":[{"name":"contactListId","in":"path","description":"Campaign contact list's ID.","required":true,"schema":{"type":"string","example":"MN2Dtcb2T-yT5CU3clN-AA"}},{"name":"contactId","in":"path","description":"Campaign contact list's contact ID.","required":true,"schema":{"type":"string","example":"07UQHRzvQ02R_o-l9pBB4w"}},{"name":"identifier_type","in":"query","description":"How the path parameters are interpreted. `id` treats them as a system-generated unique identifier. `name` treats them as the resource name.\nWhen using `name`, the resource name must be URL-encoded per RFC 3986. This parameter applies to both the contact list and contact. The contact list is queried by `name`, while the contact is queried by `displayName`.","required":false,"schema":{"type":"string","example":"id","default":"id","enum":["id","name"]}}],"responses":{"200":{"description":"**HTTP Status Code:** `200` Campaign contact list contact is returned.","content":{"application/json":{"schema":{"required":["contact_display_name","contact_id","contact_phones"],"type":"object","properties":{"contact_id":{"type":"string","description":"Campaign contact list contact ID.","example":"07UQHRzvQ02R_o-l9pBB4w"},"contact_display_name":{"maxLength":64,"type":"string","description":"The contact's display name","example":"Joe Chill"},"contact_first_name":{"maxLength":64,"type":"string","description":"The contact's first name.","example":"Joe"},"contact_last_name":{"maxLength":64,"type":"string","description":"The contact's last name.","example":"Chill"},"contact_phones":{"maxItems":5,"type":"array","description":"Array of phones.","items":{"required":["contact_phone_number","contact_phone_type"],"type":"object","properties":{"contact_phone_number":{"type":"string","description":"Phone number, in E164 format.","example":"+12345551100"},"contact_phone_type":{"type":"string","description":"The phone's type.","example":"Main","enum":["Main","Home","Work","Mobile","Other"]}},"description":"Phone object."}},"contact_emails":{"maxItems":4,"uniqueItems":true,"type":"array","description":"Array of emails.","items":{"type":"string","description":"The contact's email.","format":"email","example":"test@example.com"}},"contact_location":{"maxLength":50,"type":"string","description":"The contact's location.","example":"Location"},"contact_account_number":{"maxLength":50,"type":"string","description":"The contact's account number.","example":"123"},"contact_company":{"maxLength":50,"type":"string","description":"The contact's company.","example":"zoom"},"contact_role":{"maxLength":50,"type":"string","description":"The contact's role.","example":"developer"},"contact_timezone":{"maxLength":50,"type":"string","description":"[TZDB identifier](/docs/api/references/abbreviations/#timezones) time zone.","example":"America/Los_Angeles"},"custom_fields":{"maxItems":4096,"type":"array","description":"Custom fields associated with the current contact.","items":{"required":["custom_field_id","custom_field_value"],"type":"object","properties":{"custom_field_id":{"maxLength":36,"minLength":1,"type":"string","description":"The custom field's ID.\n\nRequired. Must not be null or empty.","example":"suk0leXNTye2JjIm6v0yCQ"},"custom_field_value":{"maxLength":512,"type":"string","description":"The custom field's value. All custom field values are represented as **strings**, regardless of their logical data type specified in `data_type`.\nThe API consumer should provide the value in the correct format according to the `data_type`:\n- **string**: Any text content.\n- **number**: Numeric string representing integer or decimal values (e.g., '123.45'). Valid range: -9999999999 to 9999999999.\n- **boolean**: 'true' or 'false'.\n- **email**: Valid email address format (e.g., 'user@example.com').\n- **phone**: Phone number string including country code (e.g., '+1-202-555-0147').\n- **percent**: Numeric string between 0 and 100 (e.g., '85.5').\n- **currency**: Decimal string ≥ 0 with up to two decimal places (e.g., '199.99').\n- **date_time**: ISO 8601 formatted string (e.g., '2026-01-28T08:00:00Z').\n- **pick_list**: One of the allowed option values defined in `pick_list_values`.\nInput validation should follow these rules based on the `data_type`.","example":"+1-202-555-0147"}},"description":"A single custom field object."}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `5017` <br>\n More than one matching contact list found. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `5001` <br>\n Contact list not found. <br>\n**Error Code:** `5002` <br>\n Contact not found. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_outbound_campaign_contacts:read:admin","contact_center:read:outbound_campaign_contacts:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_outbound_campaign_contacts:read:admin"],"x-granular-scopes":["contact_center:read:outbound_campaign_contacts:admin"]}},"delete":{"tags":["Campaigns"],"summary":"Remove campaign contact list's contact","description":"Remove a contact by ID from a campaign contact list.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_outbound_campaign_contacts:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:delete:outbound_campaign_contacts:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"deleteCampaigncontactListContact","parameters":[{"name":"contactListId","in":"path","description":"Campaign contact list ID.","required":true,"schema":{"type":"string","example":"rfMoVPVYS3yjWJAzdOOlWA"}},{"name":"contactId","in":"path","description":"Campaign contact list contact's ID.","required":true,"schema":{"type":"string","example":"07UQHRzvQ02R_o-l9pBB4w"}}],"responses":{"204":{"description":"**HTTP Status Code:** `204`     Contact is deleted."},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `5001` <br>\n Contact list is not found. <br>\n**Error Code:** `5002` <br>\n Contact is not found. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_outbound_campaign_contacts:write:admin","contact_center:delete:outbound_campaign_contacts:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_outbound_campaign_contacts:write:admin"],"x-granular-scopes":["contact_center:delete:outbound_campaign_contacts:admin"]}},"patch":{"tags":["Campaigns"],"summary":"Update contact on a campaign contact list","description":"Update a contact on a campaign contact list.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_outbound_campaign_contacts:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:update:outbound_campaign_contacts:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"updateCampaignContactListContact","parameters":[{"name":"contactListId","in":"path","description":"Campaign contact list.","required":true,"schema":{"type":"string","example":"rfMoVPVYS3yjWJAzdOOlWA"}},{"name":"contactId","in":"path","description":"Campaign contact","required":true,"schema":{"type":"string","example":"MN2Dtcb2T-yT5CU3clN-AA"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"contact_display_name":{"maxLength":64,"minLength":1,"type":"string","description":"The contact's display name.","example":"Jill Chill"},"contact_first_name":{"maxLength":64,"type":"string","description":"The contact's first name.","example":"Jill"},"contact_last_name":{"maxLength":64,"type":"string","description":"The contact's last name.","example":"Chill"},"contact_phones":{"maxItems":5,"type":"array","description":"Supports up to 5 numbers. Only one main or primar phone number is supported.","items":{"type":"object","properties":{"contact_phone_number":{"type":"string","description":"Phone number, in E164 format.","example":"+12345551100"},"contact_phone_type":{"type":"string","description":"The phone's type.","example":"Main","enum":["Main","Work","Home","Mobile","Other"]}}}},"contact_emails":{"maxItems":4,"uniqueItems":true,"type":"array","description":"Supports up to 4 emails, a maximum of 1100 characters in total.","items":{"type":"string","description":"Email address.","example":"jillchill@example.com"}},"contact_location":{"maxLength":50,"type":"string","description":"The contact's location.","example":"Zurich"},"contact_account_number":{"maxLength":50,"type":"string","description":"The contact's account number.","example":"111"},"contact_company":{"maxLength":50,"type":"string","description":"The contact's company.","example":"Zoom"},"contact_role":{"maxLength":50,"type":"string","description":"The contact's role.","example":"developer"},"contact_timezone":{"maxLength":50,"type":"string","description":"[TZDB identifier](/docs/api/references/abbreviations/#timezones) time zone.","example":"America/Los_Angeles"},"custom_fields":{"maxItems":4096,"type":"array","description":"Custom fields associated with the current contact.\n\nIf omitted, existing custom fields remain unchanged. \n\nIf provided as an empty array, all existing custom fields for the contact will be removed. \n\nIf provided as null, the field is ignored and no changes are made.","items":{"required":["custom_field_id","custom_field_value"],"type":"object","properties":{"custom_field_id":{"maxLength":36,"minLength":1,"type":"string","description":"The custom field's ID.\n\nRequired. Must not be null or empty.","example":"suk0leXNTye2JjIm6v0yCQ"},"custom_field_value":{"maxLength":512,"type":"string","description":"The custom field's value. All custom field values are represented as **strings**, regardless of their logical data type specified in `data_type`.\n\nThe API consumer should provide the value in the correct format according to the `data_type`.\n\n- **string** - Any text content.\n- **number** - Numeric string representing integer or decimal values such as '123.45'. Valid range is -9999999999 to 9999999999.\n- **boolean** - 'true' or 'false'.\n- **email** - Valid email address format, like 'user@example.com'.\n- **phone** - Phone number string including country code, like '+1-202-555-0147'.\n- **percent** - Numeric string between 0 and 100, like '85.5'.\n- **currency** - Decimal string ≥ 0 with up to two decimal places such as '199.99'.\n- **date_time** - ISO 8601 formatted string, like '2026-01-28T08:00:00Z'.\n- **pick_list** - One of the allowed option values defined in `pick_list_values`.\n\nInput validation should follow these rules based on the `data_type`.","example":"+1-202-555-0147"}},"description":"A single custom field object."}}}}}}},"responses":{"204":{"description":"**HTTP Status Code:** `204` Contact is updated."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `300` <br>\n Validation failed. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `5001` <br>\n Contact list not found. <br>\n**Error Code:** `5002` <br>\n Contact not found. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_outbound_campaign_contacts:write:admin","contact_center:update:outbound_campaign_contacts:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_outbound_campaign_contacts:write:admin"],"x-granular-scopes":["contact_center:update:outbound_campaign_contacts:admin"]}}},"/contact_center/outbound_campaign/contacts/{contactId}/custom_fields":{"get":{"tags":["Campaigns"],"summary":"List a campaign contact's custom fields","description":"Retrieve all custom fields associated with a contact.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_outbound_campaign_contactlist:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:outbound_campaign_contactlist:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"listCampaignContactCustomFields","parameters":[{"name":"contactId","in":"path","description":"The contact's ID.","required":true,"schema":{"type":"string","example":"zeYjXoDOS_eV1QmTpj63PQ"}},{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of records returned in a single API call.","required":false,"schema":{"maximum":300,"type":"integer","format":"int32","example":30,"default":30}}],"responses":{"200":{"description":"Contact custom fields are returned.","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"maxLength":100,"type":"string","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":300,"type":"integer","description":"The number of records returned in a single API call.","example":30,"default":30},"total_records":{"minimum":0,"type":"integer","description":"The total number of all records available across pages.","example":10},"custom_fields":{"type":"array","description":"A list of custom fields associated with the contact.","items":{"required":["custom_field_id","custom_field_name","data_type"],"type":"object","properties":{"custom_field_id":{"maxLength":36,"type":"string","description":"The custom field's ID.","example":"7381d210-360e-4fbd-86e4-33eb7109b084"},"custom_field_name":{"maxLength":30,"type":"string","description":"The custom field's name.","example":"Preferred Contact Method"},"data_type":{"type":"string","description":"The custom field's data type.\n\n- `string` - Any text value.\n- `number` - Numeric value. Supports integers or decimals, like `123.45`. Valid range is -9999999999 to 9999999999.\n- `percent` - Numeric value between 0 and 100. May include decimals.\n- `currency` - Decimal value ≥ 0 with up to two decimal places.\n\nWhen `data_type` is `pick_list`, `pick_list_values` specifies the allowed options.","example":"string","enum":["string","number","boolean","email","phone","percent","currency","date_time","pick_list"]},"custom_field_value":{"maxLength":512,"type":"string","description":"The contact's custom field value.","example":"phone"}}}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `2101` <br>\n Contact does not exist. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_outbound_campaign_contactlist:read:admin","contact_center:read:outbound_campaign_contactlist:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_outbound_campaign_contactlist:read:admin"],"x-granular-scopes":["contact_center:read:outbound_campaign_contactlist:admin"]}}},"/contact_center/outbound_campaign/dnc_lists/{dncListId}/phones":{"get":{"tags":["Campaigns"],"summary":"List campaign DNC phone numbers","description":"List phone numbers on a campaign DNC (Do Not Call) list.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_outbound_campaign_dnc_list_phones:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:outbound_campaign_dnc_list_phones:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"listCampaignDncListPhones","parameters":[{"name":"dncListId","in":"path","description":"The DNC list ID.","required":true,"schema":{"type":"string","example":"rfMoVPVYS3yjWJAzdOOlWA"}},{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of items returned per page.","required":false,"schema":{"maximum":100,"type":"integer","format":"int32","example":10,"default":10}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`     Phone numbers of DNC list are returned.","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"maxLength":100,"type":"string","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":100,"minimum":1,"type":"integer","description":"The number of records returned within a single API call.","example":10,"default":10},"total_records":{"minimum":0,"type":"integer","description":"The total number of all records available across pages.","example":10},"dnc_list_phones":{"type":"array","description":"Array of phone numbers in the DNC list.","items":{"required":["phone_id","phone_number"],"type":"object","properties":{"phone_id":{"type":"string","description":"The phone record ID.","example":"07UQHRzvQ02R_o-l9pBB4w"},"phone_number":{"type":"string","description":"Phone number, in E164 format.","example":"+12345551100"}},"description":"DNC list phone object."}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `5020` <br>\n DNC list is not found. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_outbound_campaign_dnc_list_phones:read:admin","contact_center:read:outbound_campaign_dnc_list_phones:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_outbound_campaign_dnc_list_phones:read:admin"],"x-granular-scopes":["contact_center:read:outbound_campaign_dnc_list_phones:admin"]}},"post":{"tags":["Campaigns"],"summary":"Batch create a campaign DNC list's phones","description":"Batch add phone numbers to a Do Not Call (DNC) list.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_outbound_campaign_dnc_list_phones:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:write:outbound_campaign_dnc_list_phones:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"batchCreateCampaignDncListPhones","parameters":[{"name":"dncListId","in":"path","description":"A campaign DNC list's ID.","required":true,"schema":{"type":"string","example":"MN2Dtcb2T-yT5CU3clN-AA"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["phone_numbers"],"type":"object","properties":{"phone_numbers":{"maxItems":100,"minItems":1,"uniqueItems":true,"type":"array","description":"Phone numbers to be added to the DNC list.","items":{"type":"string","description":"Phone number of the phone to be added.","example":"+12095551212"}}}}}}},"responses":{"201":{"description":"**HTTP Status Code:** `201` Phone numbers successfully added."},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `5020` <br>\n DNC list is not found. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_outbound_campaign_dnc_list_phones:write:admin","contact_center:write:outbound_campaign_dnc_list_phones:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_outbound_campaign_dnc_list_phones:write:admin"],"x-granular-scopes":["contact_center:write:outbound_campaign_dnc_list_phones:admin"]}},"delete":{"tags":["Campaigns"],"summary":"Batch delete a campaign DNC list's phones","description":"Batch delete phone numbers from a Do Not Call (DNC) list.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_outbound_campaign_dnc_list_phones:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:delete:outbound_campaign_dnc_list_phones:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"batchDeleteCampaignDncListPhone","parameters":[{"name":"dncListId","in":"path","description":"A campaign's DNC list ID.","required":true,"schema":{"type":"string","example":"wesm32JXQ7W_TL7IPCl5jg"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"phone_ids":{"maxItems":100,"minItems":1,"uniqueItems":true,"type":"array","description":"IDs of the phones to be deleted.","items":{"type":"string","description":"ID of the phone to be deleted.","example":"pJ_DCxrmQMevo0MUJvEUAA"}}}}}}},"responses":{"204":{"description":"**HTTP Status Code:** `204`   Phones are deleted."},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `5020` <br>\n DNC list is not found. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_outbound_campaign_dnc_list_phones:write:admin","contact_center:delete:outbound_campaign_dnc_list_phones:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_outbound_campaign_dnc_list_phones:write:admin"],"x-granular-scopes":["contact_center:delete:outbound_campaign_dnc_list_phones:admin"]}}},"/contact_center/dispositions":{"get":{"tags":["Dispositions"],"summary":"List dispositions","description":"Return a list of available dispositions. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_disposition:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:list_dispositions:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"listDispositions","parameters":[{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of items returned per page.","required":false,"schema":{"maximum":300,"type":"integer","format":"int32","example":30,"default":30}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \nDispositions returned.","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"maxLength":100,"type":"string","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":300,"minimum":1,"type":"integer","description":"The number of records returned within a single API call.","example":30,"default":30},"total_records":{"minimum":0,"type":"integer","description":"The total number of all the records available across pages.","example":10},"dispositions":{"maxItems":300,"type":"array","description":"Information about the disposition.","items":{"type":"object","properties":{"disposition_id":{"type":"string","description":"The disposition's ID.","example":"W_VATTk_Q5aW6z5rZtBxAQ"},"disposition_name":{"type":"string","description":"The disposition's name.","example":"Inquiry"},"disposition_description":{"type":"string","description":"The disposition's description.","example":"Inquiry dispositions."},"status":{"type":"string","description":"The disposition's active status. \n* `inactive` - Deactivated. \n* `active` - Activated.","example":"inactive","enum":["inactive","active"]},"queue_count":{"type":"integer","description":"The number of queues associated with the disposition.","example":0},"last_modified_time":{"type":"string","description":"The date and time when this data was last modified.","format":"date-time","example":"2022-02-15T09:27:15Z"},"modified_by":{"type":"string","description":"The ID of the user that last modified this data.","example":"IGTRVt3gQ2i-WjoUIjeZxw"},"disposition_type":{"type":"string","description":"The disposition type.","example":"single","enum":["single","multi_level"]}},"description":"Information about the disposition."}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n "},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_disposition:read:admin","contact_center:read:list_dispositions:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_disposition:read:admin"],"x-granular-scopes":["contact_center:read:list_dispositions:admin"]}},"post":{"tags":["Dispositions"],"summary":"Create a disposition","description":"Create a new [disposition](https://support.zoom.us/hc/en-us/articles/4470153057549-Managing-dispositions). Dispositions let agents assign an outcome or topic to each engagement. After creating dispositions, you can add them to queues. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_disposition:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:write:disposition:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"createDisposition","requestBody":{"content":{"application/json":{"schema":{"required":["disposition_name"],"type":"object","properties":{"status":{"type":"string","description":"The disposition's active status. \n* `inactive` - Deactivated. \n* `active` - Activated.","example":"inactive","default":"inactive","enum":["inactive","active"]},"disposition_name":{"type":"string","description":"The disposition's name.","example":"Inquiry"},"disposition_description":{"type":"string","description":"The disposition's description.","example":"Inquiry dispositions."},"disposition_type":{"type":"string","description":"The disposition's type.","example":"multi_level","default":"single","enum":["single","multi_level"]},"sub_dispositions":{"maxItems":500,"type":"array","description":"For `single` dispositions, this field can be ignored. For `multi_level` dispositions, there must be at least one subdisposition. There can be up to 500, and each parent node can have up to 20 child nodes. Child nodes can only have up to 4 levels.","items":{"required":["current_index","parent_index","sub_disposition_name"],"type":"object","properties":{"sub_disposition_name":{"type":"string","description":"The subdisposition's name.","example":"Subdisposition A"},"current_index":{"maximum":500,"minimum":1,"type":"number","description":"The subdisposition's unique identifier.","example":1},"parent_index":{"maximum":499,"type":"number","description":"The index of the parent node that the current node belongs to. \nIf it is `0`, it means that the current node belongs to the root node.\nIf the parent index does not exist, the node will be discarded.","example":0}}}}},"description":"Information about the new disposition."}}}},"responses":{"201":{"description":"**HTTP Status Code:** `201`   \n \nDisposition created.","content":{"application/json":{"schema":{"type":"object","properties":{"disposition_id":{"type":"string","description":"The disposition's ID.","example":"W_VATTk_Q5aW6z5rZtBxAQ"},"disposition_name":{"type":"string","description":"The disposition's name.","example":"Inquiry"},"disposition_description":{"type":"string","description":"The disposition's description.","example":"Inquiry dispositions."},"status":{"type":"string","description":"The disposition's active status. \n* `inactive` - Deactivated. \n* `active` - Activated.","example":"inactive","enum":["inactive","active"]},"last_modified_time":{"type":"string","description":"The date and time when this data was last modified.","format":"date-time","example":"2022-02-15T09:27:15Z"},"modified_by":{"type":"string","description":"The ID of the user that last modified this data.","example":"IGTRVt3gQ2i-WjoUIjeZxw"},"disposition_type":{"type":"string","description":"The disposition's type.","example":"multi_level","enum":["single","multi_level"]}},"description":"Information about the disposition."}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `2402` <br>\n That disposition name already exists. Use a different name. <br>\n**Error Code:** `2504` <br>\n Sub dispositions total size should be less than or equal to 500. <br>\n**Error Code:** `2505` <br>\n Sub Disposition current index repeated. <br>\n**Error Code:** `2507` <br>\n Multi_level disposition no sub dispositions. <br>\n**Error Code:** `2508` <br>\n Duplicate sub disposition name on the same tier. <br>\n**Error Code:** `2509` <br>\n Sub disposition tier size should be more than 0 and less than 5. <br>\n**Error Code:** `2512` <br>\n The number of sub dispositions on the same tier should less than or equal to 20. <br>\n**Error Code:** `2514` <br>\n Sub Disposition current_index is required. <br>\n**Error Code:** `2515` <br>\n Sub Disposition parent_index is required. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n "},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_disposition:write:admin","contact_center:write:disposition:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_disposition:write:admin"],"x-granular-scopes":["contact_center:write:disposition:admin"]}}},"/contact_center/dispositions/sets":{"get":{"tags":["Dispositions"],"summary":"List disposition sets","description":"Return a list of available disposition sets. Use sets to organize dispositions into groups.\n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_disposition:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:list_disposition_sets:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"listSets","parameters":[{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of items returned per page.","required":false,"schema":{"maximum":300,"type":"integer","format":"int32","example":30,"default":30}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \nDisposition sets returned.","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"maxLength":100,"type":"string","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":300,"minimum":1,"type":"integer","description":"The number of records returned within a single API call.","example":30,"default":30},"total_records":{"minimum":0,"type":"integer","description":"The total number of all the records available across pages.","example":10},"disposition_sets":{"type":"array","description":"Information about the disposition set.","items":{"type":"object","properties":{"disposition_set_id":{"type":"string","description":"The set's ID.","example":"saaHWgVMGQU69soco456oNA"},"disposition_set_name":{"type":"string","description":"The set's name.","example":"Lead created"},"disposition_set_description":{"type":"string","description":"The set's description.","example":"New leads generated."},"status":{"type":"string","description":"The set's active status. \n* `inactive` - Deactivated. \n* `active` - Activated.","example":"inactive","enum":["inactive","active"]},"last_modified_time":{"type":"string","description":"The date and time when this data was last modified.","format":"date-time","example":"2022-02-15T09:27:15Z"},"modified_by":{"type":"string","description":"The ID of the user that last modified this data.","example":"IGTRVt3gQ2i-WjoUIjeZxw"},"dispositions_count":{"type":"integer","description":"The number of dispositions associated with the disposition set.","example":0},"queues_count":{"type":"integer","description":"The number of queues associated with the disposition set.","example":0}},"description":"Information about the disposition set."}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n "},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_disposition:read:admin","contact_center:read:list_disposition_sets:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_disposition:read:admin"],"x-granular-scopes":["contact_center:read:list_disposition_sets:admin"]}},"post":{"tags":["Dispositions"],"summary":"Create a disposition set","description":"Create a new disposition set.\n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_disposition:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:write:disposition_set:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"createSet","requestBody":{"content":{"application/json":{"schema":{"required":["disposition_set_name"],"type":"object","properties":{"status":{"type":"string","description":"The set's active status.\n* `inactive` - Deactivated. \n* `active` - Activated.","example":"inactive","default":"inactive","enum":["inactive","active"]},"disposition_set_name":{"type":"string","description":"The set's name.","example":"Lead created"},"disposition_set_description":{"type":"string","description":"The set's description.","example":"New leads generated."},"disposition_ids":{"maxItems":250,"type":"array","description":"Information about the set's assigned dispositions.","items":{"type":"string","description":"The disposition's ID.","example":"W_VATTk_Q5aW6z5rZtBxAQ"}}},"description":"Information about the created disposition set."}}}},"responses":{"201":{"description":"**HTTP Status Code:** `201`   \n \nDisposition set created.","content":{"application/json":{"schema":{"type":"object","properties":{"disposition_set_id":{"type":"string","description":"The set's ID.","example":"saaHWgVMGQU69soco456oNA"},"disposition_set_name":{"type":"string","description":"The set's name.","example":"Lead created"},"disposition_set_description":{"type":"string","description":"The set's description.","example":"New leads generated."},"status":{"type":"string","description":"The set's active status.\n* `inactive` - Deactivated. \n* `active` - Activated.","example":"inactive","enum":["inactive","active"]},"last_modified_time":{"type":"string","description":"The date and time when this data was last modified.","format":"date-time","example":"2022-02-15T09:27:15Z"},"modified_by":{"type":"string","description":"The ID of the user that last modified this data.","example":"IGTRVt3gQ2i-WjoUIjeZxw"},"dispositions":{"maxItems":250,"type":"array","description":"Information about the set's assigned dispositions.","items":{"type":"object","properties":{"disposition_id":{"type":"string","description":"The disposition's ID.","example":"W_VATTk_Q5aW6z5rZtBxAQ"},"disposition_name":{"type":"string","description":"The disposition's name.","example":"Inquiry"}},"description":"Information about the disposition set."}}},"description":"Information about the disposition set."}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `2502` <br>\n That set name already exists. Use a different name. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `2403` <br>\n Disposition does not exist: $disposition_ids. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_disposition:write:admin","contact_center:write:disposition_set:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_disposition:write:admin"],"x-granular-scopes":["contact_center:write:disposition_set:admin"]}}},"/contact_center/dispositions/sets/{dispositionSetId}":{"get":{"tags":["Dispositions"],"summary":"Get a disposition set","description":"Retrieve information about a disposition set. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_disposition:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:disposition_set:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"getSet","parameters":[{"name":"dispositionSetId","in":"path","description":"The set's ID.","required":true,"schema":{"type":"string","example":"saaHWgVMGQU69soco456oNA"}},{"name":"disposition_set_identifier_type","in":"query","description":"How the path parameter is interpreted. `id` treats it as a system-generated unique identifier. `name` treats it as the resource name.\nWhen using `name`, the resource name must be URL-encoded per RFC 3986.","required":false,"schema":{"type":"string","example":"id","default":"id","enum":["id","name"]}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`  \n \nSet returned.","content":{"application/json":{"schema":{"type":"object","properties":{"disposition_set_id":{"type":"string","description":"The set's ID.","example":"saaHWgVMGQU69soco456oNA"},"disposition_set_name":{"type":"string","description":"The set's name.","example":"Lead created"},"disposition_set_description":{"type":"string","description":"The set's description.","example":"New leads generated."},"status":{"type":"string","description":"The set's active status. \n* `inactive` &mdash; Deactivated. \n* `active` &mdash; Activated.","example":"inactive","enum":["inactive","active"]},"last_modified_time":{"type":"string","description":"The date and time when this data was last modified.","format":"date-time","example":"2022-02-15T09:27:15Z"},"modified_by":{"type":"string","description":"The ID of the user that last modified this data.","example":"IGTRVt3gQ2i-WjoUIjeZxw"},"dispositions":{"type":"array","description":"Information about the set's assigned dispositions.","items":{"type":"object","properties":{"disposition_id":{"type":"string","description":"The disposition's ID.","example":"W_VATTk_Q5aW6z5rZtBxAQ"},"disposition_name":{"type":"string","description":"The disposition's name.","example":"Inquiry"}},"description":"Information about the disposition set."}},"queues":{"type":"array","description":"Information about the set's assigned queue.","items":{"type":"object","properties":{"queue_id":{"type":"string","description":"The queue's ID.","example":"d95avl1eRJ-H162PZUJ-qg","deprecated":true},"cc_queue_id":{"type":"string","description":"The Contact Center queue's ID.","example":"d95avl1eRJ-H162PZUJ-qg"},"queue_name":{"type":"string","description":"The queue's name.","example":"Sales"}},"description":"Information about the queue."}}},"description":"Information about the disposition set."}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `2513` <br>\n More than one matching disposition set found. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `2501` <br>\n Disposition Set does not exist: $setId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_disposition:read:admin","contact_center:read:disposition_set:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_disposition:read:admin"],"x-granular-scopes":["contact_center:read:disposition_set:admin"]}},"delete":{"tags":["Dispositions"],"summary":"Delete a disposition set","description":"Delete a disposition set. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_disposition:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:delete:disposition_set:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"deleteSet","parameters":[{"name":"dispositionSetId","in":"path","description":"The set's ID.","required":true,"schema":{"type":"string","example":"saaHWgVMGQU69soco456oNA"}}],"responses":{"204":{"description":"**HTTP Status Code:** `204 `  \n \nDisposition Set deleted."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `2501` <br>\n Set does not exist: $setId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_disposition:write:admin","contact_center:delete:disposition_set:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_disposition:write:admin"],"x-granular-scopes":["contact_center:delete:disposition_set:admin"]}},"patch":{"tags":["Dispositions"],"summary":"Update a disposition set","description":"Update an existing disposition set. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_disposition:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:update:disposition_set:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"updateSet","parameters":[{"name":"dispositionSetId","in":"path","description":"The set's ID.","required":true,"schema":{"type":"string","example":"saaHWgVMGQU69soco456oNA"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"disposition_set_name":{"type":"string","description":"The set's name.","example":"Lead created"},"disposition_set_description":{"type":"string","description":"The set's description.","example":"New leads generated."},"status":{"type":"string","description":"The set's active status. \n* `inactive` &mdash; Deactivated. \n* `active` &mdash; Activated.","example":"inactive","enum":["inactive","active"]},"disposition_ids":{"maxItems":50,"type":"array","description":"A list of disposition IDs to add to the set.","items":{"type":"string","description":"The disposition's ID.","example":"W_VATTk_Q5aW6z5rZtBxAQ"}}}}}}},"responses":{"204":{"description":"**HTTP Status Code:** `204`   \n \nSet updated."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `2502` <br>\n That set name already exists. Use a different name. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `2501` <br>\n Set does not exist: $dispositionSetId. <br>\n**Error Code:** `2403` <br>\n Dispositions do not exist: $disposition_ids. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_disposition:write:admin","contact_center:update:disposition_set:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_disposition:write:admin"],"x-granular-scopes":["contact_center:update:disposition_set:admin"]}}},"/contact_center/dispositions/{dispositionId}":{"get":{"tags":["Dispositions"],"summary":"Get a disposition","description":"Retrieve information about a disposition. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_disposition:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:disposition:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"getDisposition","parameters":[{"name":"dispositionId","in":"path","description":"The disposition's ID.","required":true,"schema":{"type":"string","example":"W_VATTk_Q5aW6z5rZtBxAQ"}},{"name":"disposition_identifier_type","in":"query","description":"How the path parameter is interpreted. `id` treats it as a system-generated unique identifier. `name` treats it as the resource name.\nWhen using `name`, the resource name must be URL-encoded per RFC 3986.","required":false,"schema":{"type":"string","example":"id","default":"id","enum":["id","name"]}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`  \n \nDisposition returned.","content":{"application/json":{"schema":{"type":"object","properties":{"disposition_id":{"type":"string","description":"The disposition's ID.","example":"W_VATTk_Q5aW6z5rZtBxAQ"},"disposition_name":{"type":"string","description":"The disposition's name.","example":"Inquiry"},"disposition_description":{"type":"string","description":"The disposition's description.","example":"Inquiry dispositions."},"status":{"type":"string","description":"The disposition's active status. \n* `inactive` - Deactivated. \n* `active` - Activated.","example":"inactive","enum":["inactive","active"]},"queue_count":{"type":"integer","description":"The number of queues associated with the disposition.","example":0},"last_modified_time":{"type":"string","description":"The date and time when this data was last modified.","format":"date-time","example":"2022-02-15T09:27:15Z"},"modified_by":{"type":"string","description":"The ID of the user that last modified this data.","example":"IGTRVt3gQ2i-WjoUIjeZxw"},"disposition_type":{"type":"string","description":"The disposition's type.","example":"multi_level","enum":["single","multi_level"]},"sub_dispositions":{"type":"array","description":"The list of sub-dispositions.","items":{"type":"object","properties":{"sub_disposition_id":{"type":"string","description":"The sub-disposition's ID.","example":"OYTRVt3gQ2iAGjoUIjeZxq"},"sub_disposition_name":{"type":"string","description":"The sub-disposition's name.","example":"Sub-Disposition A"},"current_index":{"type":"number","description":"The sub-disposition's unique identifier.","example":1},"parent_index":{"type":"number","description":"The index of the parent node that the current sub-disposition belongs to. `parent_index` - `0` means that the parent node of the current node is the root node.","example":1}}}}},"description":"Information about the disposition."}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `2404` <br>\n More than one matching disposition found. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `2401` <br>\n Disposition does not exist: $dispositionId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_disposition:read:admin","contact_center:read:disposition:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_disposition:read:admin"],"x-granular-scopes":["contact_center:read:disposition:admin"]}},"delete":{"tags":["Dispositions"],"summary":"Delete a disposition","description":"Delete an existing disposition. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_disposition:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:delete:disposition:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"deleteDisposition","parameters":[{"name":"dispositionId","in":"path","description":"The disposition's ID.","required":true,"schema":{"type":"string","example":"W_VATTk_Q5aW6z5rZtBxAQ"}}],"responses":{"204":{"description":"**HTTP Status Code:** `204 `  \n \nDisposition deleted."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `2401` <br>\n Disposition does not exist: $dispositionId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_disposition:write:admin","contact_center:delete:disposition:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_disposition:write:admin"],"x-granular-scopes":["contact_center:delete:disposition:admin"]}},"patch":{"tags":["Dispositions"],"summary":"Update a disposition","description":"Update an existing disposition. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_disposition:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:update:disposition:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"updateDisposition","parameters":[{"name":"dispositionId","in":"path","description":"The disposition's ID.","required":true,"schema":{"type":"string","example":"W_VATTk_Q5aW6z5rZtBxAQ"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"disposition_name":{"type":"string","description":"The disposition's name.","example":"Inquiry"},"status":{"type":"string","description":"The disposition's active status. \n* `inactive` &mdash; Deactivated. \n* `active` &mdash; Activated.","example":"inactive","enum":["inactive","active"]},"disposition_description":{"type":"string","description":"The disposition's description.","example":"Inquiry dispositions."},"disposition_type":{"type":"string","description":"The disposition's type.","example":"multi_level","default":"single","enum":["single","multi_level"]},"sub_dispositions":{"maxItems":500,"type":"array","description":"For `single` dispositions, this field can be ignored. For `multi_level` dispositions, there must be at least one subdispositions, there can be up to 500, and each parent node can have up to 20 child nodes. At the same time, child nodes can only have up to 4 levels.","items":{"required":["current_index","parent_index","sub_disposition_name"],"type":"object","properties":{"sub_disposition_id":{"type":"string","description":"The subdisposition's ID.","example":"HDLHFK_gdhgfajhsedfhg"},"sub_disposition_name":{"type":"string","description":"The subdisposition's name.","example":"Subdisposition A"},"current_index":{"maximum":500,"minimum":1,"type":"number","description":"The subdisposition's unique identifier.","example":1},"parent_index":{"maximum":499,"type":"number","description":"The index of the parent node to which the current node belongs. \nIf it is `0`, it means that the current node belongs to the root node.\nIf the parent index does not exist, the node will be discarded.","example":0}}}}}}}}},"responses":{"204":{"description":"**HTTP Status Code:** `204`   \n \nDisposition updated."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `2402` <br>\n That disposition name already exists. Use a different name. <br>\n**Error Code:** `2504` <br>\n Sub disposition's total size should be less than or equal to 500. <br>\n**Error Code:** `2507` <br>\n Multi_level disposition no subdispositions. <br>\n**Error Code:** `2508` <br>\n Duplicate subdisposition name on the same tier. <br>\n**Error Code:** `2509` <br>\n Sub disposition tier size should be more than 0 and less than 5. <br>\n**Error Code:** `2510` <br>\n Can not update `multi_level` to single. <br>\n**Error Code:** `2512` <br>\n The number of sub dispositions on the same tier should less than or equal to 20. <br>\n**Error Code:** `2505` <br>\n Sub Disposition current index repeated. <br>\n**Error Code:** `2514` <br>\n Sub Disposition current_index is required. <br>\n**Error Code:** `2515` <br>\n Sub Disposition parent_index is required. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `2401` <br>\n Disposition does not exist: $dispositionId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_disposition:write:admin","contact_center:update:disposition:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_disposition:write:admin"],"x-granular-scopes":["contact_center:update:disposition:admin"]}}},"/contact_center/engagement":{"post":{"tags":["Engagements"],"summary":"Start an engagement","description":"Start an engagement. Currently only supports the `Work Item` channel.\n\n**Note** When creating a work item, variable conflicts are resolved using these guidelines.\n- If a key exists in both `consumerInfo` and `variableList`, the value from `consumerInfo` takes precedence.\n- If duplicate keys are provided within `variableList`, only the first occurrence is used.\n- If a key appears only once in `variableList`, the provided value is applied.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_engagement:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:write:engagement:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"Startworkitemengagement","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"work_item_variables":{"required":["work_item_name"],"type":"object","properties":{"work_item_id":{"type":"string","description":"The request's unique identifier, used to ensure idempotency. We recommended using a UUID format.","example":"24fwet23525"},"work_item_name":{"type":"string","description":"Each work item's name or title.","example":"Research the market performance of competing companies."},"work_item_desc":{"type":"string","description":"The work item's description.","example":"Conduct an in-depth analysis of key competitors' overall performance in the target market, including but not limited to market share, sales trends, product positioning, pricing strategies, distribution channels, and recent market activities."},"work_item_type_id":{"type":"string","description":"The work item source type's ID. Find the work item type ID in the Contact Center's **Preferences**.","example":"w3pOm-CLRHmugqYIiByYHg"},"work_item_type":{"type":"string","description":"This field is automatically populated during engagement creation based on the configured settings. It will also be included in the response payload.","example":"work_item","deprecated":true},"work_item_due_date":{"type":"string","description":"The work item's due date in `YYYY-MM-DDTHH:mm:ssZ` format. Time zone is `UTC`.","example":"2025-10-01T00:00:00Z"},"work_item_origin":{"type":"string","description":"Where or how each work item was created.","example":"chat system"},"work_item_priority":{"type":"integer","description":"The work item's priority.","example":1},"work_item_transcript_url":{"type":"string","description":"Ingest and store an external transcript in the Contact Center. When provided, the associated transcript becomes accessible to agents directly from the work item while they are handling it.","example":"https://api.example.com/v2/transcripts/download/yJAEEra27v4InERTcm77LQ"},"work_item_hyperlink":{"type":"string","description":"The link to the work item's detail.","example":"www.example.com/ticket123"}},"description":"The variables required to initiate a work item engagement."},"flow":{"required":["flow_entry_id"],"type":"object","properties":{"flow_entry_id":{"type":"string","description":"The `flow_entry_id`, which should be bound to a Contact Center flow.","example":"4ad5A8qLTIunwdlpzSS4lg"}},"description":"The flow info required to start a new engagement."},"language_code":{"type":"string","description":"Equivalent to setting the `global_system.Engagement.language` variable. Default value is `en-US`.\n\n|Language\t| Value|\n| - | - |\n| Chinese (Simplified)\t | zh-CN |\n| Chinese (Traditional)\t | zh-TW |\n| Chinese Cantonese\t | yue-CN |\n| Chinese Mandarin\t | cmn-CN |\n| Danish (Denmark)\t |da-DK|\n| Dutch (Netherlands)\t | nl-NL |\n| English (Australia)\t | en-AU |\n| English (New Zealand)\t | en-NZ |\n| English (UK)\t | en-GB |\n| English (US)\t | en-US |\n| French (Canada)\t | fr-CA |\n| French (France)\t | fr-FR |\n|German (Germany)\t| de-DE |\n| Italian (Italy)\t | it-IT |\n| Japanese (Japan)\t |ja-JP  |\n| Korean (Korea)\t | ko-KR |\n| Polish (Poland)\t | pl-PL |\n| Portuguese (Brazil)\t | pt-BR |\n| Portuguese (Portugal)\t |pt-PT  |\n|Romanian (Romania)\t| ro-RO |\n| Russian (Russia)\t |  ru-RU|\n| Spanish (European)\t | es-ES |\n|Spanish (Mexico)\t  | es-MX |\n|Spanish (US)\t| es-US |\n| Swedish (Sweden)\t |  sv-SE|\n| Turkish (Turkey)\t |  tr-TR|\n\n\n\n\n","example":"en-US"},"channels":{"maxItems":15,"type":"array","description":"The task's channels. It contains only one element when starting an engagement.","items":{"required":["channel","channel_source"],"type":"object","properties":{"channel":{"type":"string","description":"The channel you want to start. Currently only supports `work_item`.","example":"work_item","enum":["work_item"]},"channel_source":{"type":"string","description":"The channel source you want to start. Currently only supports `API`.","example":"API","enum":["API"]}}}},"consumers":{"maxItems":5,"type":"array","description":"Consumer information. Contains only one element when starting an engagement.","items":{"required":["consumer_display_name"],"type":"object","properties":{"consumer_external_id":{"type":"string","description":"A unique identifier for the consumer initiating the conversation.","example":"yJAEEra27v4InERTcm77LQ"},"consumer_display_name":{"type":"string","description":"The consumer's name.","example":"Jill Doe"},"consumer_email":{"type":"string","description":"The consumer's email.","example":"JillDoe@example.com"},"consumer_number":{"type":"string","description":"The consumer's phone number, in E.164 format. Maximum length is 15 characters.","example":"+1234561212"}}}},"variables":{"maxItems":100,"type":"array","description":"Global variables.\\nFor more information, see [Variables](/docs/api/contact-center/#tag/variables).","items":{"required":["name","value"],"type":"object","properties":{"name":{"maxLength":100,"type":"string","description":"The variable's name.","example":"global_custom.user.name"},"value":{"maxLength":4096,"type":"string","description":"The variable's value.","example":"123"}}}}}}}}},"responses":{"201":{"description":"Engagement information.","content":{"application/json":{"schema":{"required":["engagement_id","start_time"],"type":"object","properties":{"work_item_variables":{"type":"object","properties":{"work_item_name":{"type":"string","description":"The work item's name or title.","example":"Research the market performance of competing companies."},"work_item_source_id":{"type":"string","description":"Same as work item type's ID. ","example":"1","deprecated":true},"work_item_desc":{"type":"string","description":"The work item's description.","example":"Conduct an in-depth analysis of key competitors' overall performance in the target market, including but not limited to market share, sales trends, product positioning, pricing strategies, distribution channels, and recent market activities."},"work_item_type":{"type":"string","description":"The work item type's name.","example":"ticket"},"work_item_id":{"type":"string","description":"The request's unique identifier, used to ensure idempotency. We recommend using UUID format.","example":"24fwet23525"},"work_item_due_date":{"type":"string","description":"The work item's due date in `YYYY-MM-DDTHH:mm:ss` format. Time zone is `UTC`.","example":"2025-10-01T00:00:00"},"work_item_origin":{"type":"string","description":"Where or how the work item was created.","example":"chat system"},"work_item_priority":{"type":"string","description":"The work item's priority.","example":"1"},"work_item_transcript_url":{"type":"string","description":"Ingest and store an external transcript in the Contact Center. When provided, the associated transcript becomes accessible to agents directly from the work item while they are handling it.","example":"https://api.example.com/v2/transcripts/download/yJAEEra27v4InERTcm77LQ"},"work_item_hyperlink":{"type":"string","description":"The link to the work item's detail.","example":"www.example.com/ticket123"},"work_item_type_id":{"type":"string","description":"The work item source type's ID. **Note** This field is not yet supported.","example":"w3pOm-CLRHmugqYIiByYHg"}}},"flows":{"maxItems":10,"type":"array","description":"Information about the engagement's flows.","items":{"type":"object","properties":{"flow_entry_id":{"type":"string","description":"The `flow_entry_id` bound to a Contact Center flow.","example":"4ad5A8qLTIunwdlpzSS4lg"},"flow_id":{"type":"string","description":"The flow's ID.","example":"zeYjXoDOS_eV1QmTpj63PQ"},"flow_name":{"type":"string","description":"The flow's name.","example":"Demo"},"flow_version":{"type":"string","description":"The flow's version.","example":"5"}}}},"session_id":{"type":"string","description":"Session ID.","example":"z7bc2vC5TPSliVBO4dhaoQ"},"engagement_id":{"type":"string","description":"Engagement ID.","example":"vj9yy02ZTsyK22boIf2dww"},"language_code":{"type":"string","description":"Engagement language code.","example":"en-US"},"channels":{"maxItems":15,"type":"array","description":"The task's channels. It contains only one element when starting an engagement.","items":{"type":"object","properties":{"channel":{"type":"string","description":"The channel you want to start. Currently only supports `work_item`.","example":"work_item","enum":["work_item"]},"channel_source":{"type":"string","description":"The channel source you want to start. Currently only supports `API`.","example":"API","enum":["API"]}}}},"start_time":{"type":"string","description":"Engagement start time in `YYYY-MM-DDThh:mm:ssZ` format. Time zone is `UTC`.","example":"2025-09-01T00:00:00Z"},"consumers":{"maxItems":10,"type":"array","description":"A list of consumer information. It contains only one element when starting an engagement.","items":{"type":"object","properties":{"consumer_id":{"type":"string","description":"The consumer's ID.","example":"zeYjXoDOS_eV1QmTpj63PQ"},"consumer_external_id":{"type":"string","description":"A unique identifier for the consumer initiating the conversation.","example":"yJAEEra27v4InERTcm77LQ"},"consumer_display_name":{"type":"string","description":"The consumer's name.","example":"Jill Doe"},"consumer_email":{"type":"string","description":"The consumer's email.","example":"JillDoe@example.com"},"consumer_number":{"type":"string","description":"The user's phone number in E.164 format. Maximum length is 15 characters.","example":"+1234561212"}}}},"variables":{"maxItems":100,"type":"array","description":"Global variables.\n\nFor more information, see [Variables](/docs/api/contact-center/#tag/variables)","items":{"type":"object","properties":{"name":{"type":"string","description":"The variable's name.","example":"global_custom.user.name"},"value":{"type":"string","description":"The variable's value.","example":"123"}}}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"409":{"description":"**HTTP Status Code:** `409` <br>\n Conflict  \n\n **Error Code:** `8000007` <br>\n Repeated request. <br>\n**Error Code:** `8000017` <br>\n Lock failed. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_engagement:write:admin","contact_center:write:engagement:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_engagement:write:admin"],"x-granular-scopes":["contact_center:write:engagement:admin"]}}},"/contact_center/engagements":{"get":{"tags":["Engagements"],"summary":"List engagements","description":"Return a list of engagement detail objects. Engagements are available via API once they have completed processing, not immediately after they end.\n\nYou may retry this request for up to 1 minute to get engagement details for a specific engagement, if querying shortly after an [engagement_ended webhook event](/docs/api/contact-center/events/#tag/contact_center/postcontact_center.engagement_ended). Consider using a backoff between retries, to avoid rate limiting.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_report:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:list_engagements:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `HEAVY`","operationId":"listEngagements","parameters":[{"name":"timezone","in":"query","description":"The [timezone ID](/docs/api/references/abbreviations/#timezones) used for date filtering and response times. Default is `UTC`.\n\n**Behavior by input format**\n- `yyyy-MM-dd` - Timezone is applied. The date is interpreted in this timezone.\n- `yyyy-MM-dd'T'HH:mm:ss'Z'` - Timezone is applied. The `'Z'` is treated as a literal, not UTC.\n- `yyyy-MM-dd'T'HH:mm:ss±HH:mm` - Timezone offset in timestamp is used for filtering; `timezone` parameter is used for response formatting","required":false,"schema":{"type":"string","example":"America/Los_Angeles"}},{"name":"from","in":"query","description":"The start time and date in `yyyy-MM-dd`, `yyyy-MM-dd'T'HH:mm:ss'Z'`, or `yyyy-MM-dd'T'HH:mm:ss±HH:mm` format. The defined date range should be a month, as the response only includes one month's worth of data. If no start date is specified, return data from the past 24 hours.\n\n**Note:** When using `yyyy-MM-dd'T'HH:mm:ss'Z'` format, the `'Z'` is treated as a literal character, not as a UTC indicator. The `timezone` parameter will still be applied. When using `yyyy-MM-dd'T'HH:mm:ss±HH:mm` format, the timezone offset in the timestamp is used and the `timezone` parameter is ignored for time range filtering.","required":false,"schema":{"type":"string","example":"2021-12-10"}},{"name":"to","in":"query","description":"**Required** only when the `from` parameter is specified. The end time and date in `yyyy-MM-dd`, `yyyy-MM-dd'T'HH:mm:ss'Z'`, or `yyyy-MM-dd'T'HH:mm:ss±HH:mm` format, matching the format of the `from` parameter.","required":false,"schema":{"type":"string","example":"2021-12-10"}},{"name":"queue_id","in":"query","description":"The queue's ID.","required":false,"schema":{"type":"string","example":"zeYjXoDOS_eV1QmTpj63PQ"}},{"name":"consumer_number","in":"query","description":"The customer's phone number.","required":false,"schema":{"type":"string","example":"+12059300920"}},{"name":"channel_types","in":"query","description":"The channel's type.","required":false,"deprecated":true,"schema":{"type":"array","deprecated":true,"items":{"type":"string","example":"voice","enum":["voice","sms","chat","video","kiosk","in_app_chat","in_app_video"]}}},{"name":"channel","in":"query","description":"The engagement's channel. Accepts a single channel value.\n\nIf you use a channel as an input parameter, the deprecated parameter `channel_types` is not processed.","required":false,"schema":{"type":"string","example":"messaging","enum":["voice","video","messaging","email"]}},{"name":"channel_sources","in":"query","description":"The channel's source. \n* `in_app_video` - Only applies to video channel. \n* `kiosk_video` - Only applies to video channel. \n* `web_video` - Only applies to video channel. \n* `in_app_chat` - Only applies to messaging channel.  \n* `web_chat` - Only applies to messaging channel. \n* `sms` - Only applies to messaging channel. \n* `facebook_messenger` - Only applies to messaging channel.\n* `whatsapp` - Only applies to messaging channel.\n* `email_address` - Only applies to email channel.\n\nAccepts multiple values.","required":false,"schema":{"type":"array","items":{"type":"string","example":"web_chat","enum":["in_app_video","kiosk_video","web_video","web_chat","in_app_chat","sms","facebook_messenger","whatsapp","email_address"]}}},{"name":"direction","in":"query","description":"The engagement's direction.","required":false,"schema":{"type":"string","example":"inbound","enum":["inbound","outbound"]}},{"name":"user_id","in":"query","description":"The Meetings user identifier.","required":false,"schema":{"type":"string","example":"IGTRVt3gQ2i-WjoUIjeZxw"}},{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of records returned within a single API call.","required":false,"schema":{"maximum":100,"type":"integer","format":"int32","example":10,"default":10}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \nEngagements returned.","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"maxLength":100,"type":"string","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":100,"minimum":1,"type":"integer","description":"The number of records returned within a single API call.","example":10,"default":10},"total_records":{"minimum":0,"type":"integer","description":"The total number of all records available across pages.","example":10},"timezone":{"type":"string","description":"The engagement's [timezone ID](/docs/api/references/abbreviations/#timezones). The default is UTC.","example":"America/Los_Angeles"},"from":{"type":"string","description":"The start time and date. If the input was `yyyy-MM-dd`, it is expanded to `yyyy-MM-ddT00:00:00Z`. Otherwise, the input format is preserved as either `yyyy-MM-dd'T'HH:mm:ss'Z'` or `yyyy-MM-dd'T'HH:mm:ss±HH:mm`.","format":"date-time","example":"2021-12-10T00:00:00Z"},"to":{"type":"string","description":"The end time and date. If the input was `yyyy-MM-dd`, it is expanded to `yyyy-MM-ddT23:59:59Z`. Otherwise, the input format is preserved as either `yyyy-MM-dd'T'HH:mm:ss'Z'` or `yyyy-MM-dd'T'HH:mm:ss±HH:mm`.","format":"date-time","example":"2021-12-10T23:59:59Z"},"engagements":{"type":"array","description":"A list of engagement detail objects.","items":{"type":"object","properties":{"start_time":{"type":"string","description":"The date and time when the engagement started. Format is either `yyyy-MM-dd'T'HH:mm:ss'Z'` or `yyyy-MM-dd'T'HH:mm:ss±HH:mm`, matching the input format when a timezone offset was provided in the `from`/`to` parameters. Time is adjusted to the specified timezone.","format":"date-time","example":"2021-12-03T13:07:46Z"},"end_time":{"type":"string","description":"The date and time when the engagement ended. Format is either `yyyy-MM-dd'T'HH:mm:ss'Z'` or `yyyy-MM-dd'T'HH:mm:ss±HH:mm`, matching the input format when a timezone offset was provided in the `from`/`to` parameters. Time is adjusted to the specified timezone.","format":"date-time","example":"2021-12-03T13:07:46Z"},"duration":{"type":"integer","description":"The engagement's duration, in seconds.","format":"int64","example":3600},"engagement_id":{"type":"string","description":"The engagement's ID.","example":"W_VATTk_Q5aW6z5rZtBxAQ"},"direction":{"type":"string","description":"The engagement's direction.","example":"inbound"},"channel_types":{"type":"array","description":"The channel's type.","deprecated":true,"items":{"type":"string","example":"voice","enum":["voice","sms","chat","video","kiosk","in_app_chat","in_app_video"]}},"channels":{"type":"array","description":"The engagement's channels.","items":{"type":"object","properties":{"channel":{"type":"string","description":"The engagement's channel.","example":"messaging","enum":["voice","video","messaging","email"]},"channel_source":{"type":"string","description":"The channel's source. \n* `in_app_video` - Only applies to video channel. \n* `kiosk_video` - Only applies to video channel. \n* `web_video` - Only applies to video channel. \n* `in_app_chat` - Only applies to messaging channel.  \n* `web_chat` - Only applies to messaging channel. \n* `sms` - Only applies to messaging channel.\n* `facebook_messenger` - Only applies to messaging channel.\n* `whatsapp` - Only applies to messaging channel.\n* `email_address` - Only applies to email channel.","example":"in_app_chat","enum":["in_app_video","kiosk_video","web_video","web_chat","in_app_chat","sms","facebook_messenger","whatsapp","email_address"]}}}},"consumers":{"type":"array","description":"Information about the consumers.","items":{"type":"object","properties":{"consumer_id":{"type":"string","description":"The consumer's ID.","example":"zeYjXoDOS_eV1QmTpj63PQ"},"consumer_display_name":{"type":"string","description":"The consumer's name.","example":"Jill"},"consumer_number":{"type":"string","description":"The consumer's phone number.","example":"+12058945728"}}}},"flows":{"type":"array","description":"Information about the engagement's flows.","items":{"type":"object","properties":{"flow_id":{"type":"string","description":"The flow's ID.","example":"zeYjXoDOS_eV1QmTpj63PQ"},"flow_name":{"type":"string","description":"The flow's name.","example":"Demo"},"flow_version":{"type":"string","description":"The flow's version.","example":"5"}},"description":"Information about the flow."}},"queues":{"type":"array","description":"Information about the engagement's queues.","items":{"type":"object","properties":{"cc_queue_id":{"maxLength":36,"type":"string","description":"The Contact Center queue identifier.","example":"a4lCNeq2SzKbgkcDVbjCZQ"},"queue_name":{"maxLength":150,"type":"string","description":"The Contact Center queue name.","example":"Voice - Customer Support"},"queue_id":{"maxLength":36,"type":"string","description":"The task queue's identifier.\n\n**Deprecated** - use the `cc_queue_id` field to reference the Contact Center queue.","example":"Ql3qxUWXSHes4PmcOmzyOg","deprecated":true}},"description":"Information about the queue."}},"agents":{"type":"array","description":"Information about the engagement's agents.","items":{"type":"object","properties":{"user_id":{"maxLength":36,"type":"string","description":"The Meetings user identifier.","example":"IGTRVt3gQ2i-WjoUIjeZxw"},"display_name":{"type":"string","description":"The user's display name.","example":"Jane Doe"}},"description":"Information about the agent."}},"talk_duration":{"type":"integer","description":"The engagement's talk duration, in seconds.","format":"int64","example":10},"flow_duration":{"type":"integer","description":"The engagement's flow duration, in seconds.","format":"int64","example":10},"waiting_duration":{"type":"integer","description":"The engagement's waiting duration, in seconds.","format":"int64","example":10},"handling_duration":{"type":"integer","description":"The engagement's handling duration, in seconds.","format":"int64","example":0},"wrap_up_duration":{"type":"integer","description":"The engagement's wrap-up duration, in seconds.","format":"int64","example":10},"transfer_count":{"type":"integer","description":"The engagement's transfer count.","format":"int32","example":10},"dispositions":{"type":"array","description":"Information about the dispositions.","items":{"type":"object","properties":{"disposition_id":{"type":"string","description":"The disposition's ID.","example":"W_VATTk_Q5aW6z5rZtBxAQ"},"disposition_name":{"type":"string","description":"The disposition's name.","example":"Inquiry"}}}},"notes":{"type":"array","description":"Information about the notes.","items":{"type":"object","properties":{"user_id":{"maxLength":36,"type":"string","description":"The Meetings user identifier.","example":"IGTRVt3gQ2i-WjoUIjeZxw"},"note_id":{"type":"string","description":"The note's ID.","example":"W_VATTk_Q5aW6z5rZtBxAQ"},"note":{"type":"string","description":"The note's content.","example":"This is the content of the note."},"last_modified_time":{"type":"string","description":"The date and time when this data was last modified.","format":"date-time","example":"2022-02-15T09:27:15Z"}}}},"transcript_url":{"type":"string","description":"The URL to download the messaging transcript, if the transcript text file exists. This field is only used for messaging engagements. For voice and video engagement recordings, see the List engagement recordings API.\n\nFor security purposes, you **must** provide an OAuth access token in the authorization header to download the transcript file using this URL. The app used to generate the token must have the granular scope `contact_center:read:engagement:admin` or the classic scope `contact_center_report:read:admin`. Example:\n```\ncurl --request GET \\\n  --url {transcript_url} \\\n  --header 'Authorization: Bearer {access_token}' \\\n  --header 'Content-Type: application/json'\n```","example":"https://api.example.com/v2/contact_center/engagements/transcripts/download/W_VATTk_Q5aW6z5rZtBxAQ"},"survey_id":{"type":"string","description":"The survey's ID.","example":"2yWjT4awTumcFKIrvcf4OA"},"transferCount":{"type":"integer","description":"The engagement's transfer count.","format":"int32","example":10,"deprecated":true},"voice_mail":{"type":"integer","description":"The number of voicemails for the engagement.","format":"int32","example":1},"queue_wait_type":{"type":"string","description":"The engagement's queue wait type.","example":"live_waiting","enum":["live_waiting","callback"]},"callback_voice_messages":{"type":"array","description":"The callback voice messages.","items":{"type":"object","properties":{"callback_voice_message_url":{"type":"string","description":"The URL to download the callback voice recording, if the recording file exists. \r\n\r\nFor security purposes, you **must** provide an OAuth access token in the authorization header to download the recording file using this URL.","example":"https://api.zoom.us/v2/contact_center/consumer_callback/voice_messages/4Q0ILNMfTA2nJolNxhg0Rw/download"},"callback_voice_message_transcript_url":{"type":"string","description":"The URL to download the callback voice message transcript, if the transcript text file exists. \r\n\r\nFor security purposes, you **must** provide an OAuth access token in the authorization header to download the transcript file using this URL.","example":"https://api.zoom.us/v2/contact_center/consumer_callback/voice_messages/4Q0ILNMfTA2nJolNxhg0Rw/transcript"}},"description":"The callback voice message."}}},"description":"An engagement detail object."}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `300` <br>\n Invalid field. <br>\n**Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `300` <br>\n The requested report exceeds the 1-month limit. <br>\n**Error Code:** `300` <br>\n The time and date must be in yyyy-mm-dd or ISO 8601 format (yyyy-MM-dd'T'HH:mm:ss'Z' or yyyy-MM-dd'T'HH:mm:ss'TZD'). <br>\n**Error Code:** `300` <br>\n Timezone does not exist: {timezone}. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `1001` <br>\n The user associated with this access token was not found or is invalid. <br>\n**Error Code:** `1601` <br>\n Access denied. Invalid or insufficient permissions. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1201` <br>\n Queue does not exist: {queueId}. <br>\n**Error Code:** `1001` <br>\n User does not exist: {userId}. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_report:read:admin","contact_center:read:list_engagements:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_report:read:admin"],"x-granular-scopes":["contact_center:read:list_engagements:admin"]}}},"/contact_center/engagements/{engagementId}":{"get":{"tags":["Engagements"],"summary":"Get an engagement","description":"Retrieve information about an engagement. Engagements are available via API once they have completed processing, not immediately after they end. This API may return an empty response while the data is persisting.\n\nYou may need to retry this request for up to 1 minute to get engagement details, if querying shortly after an [`engagement_ended` webhook event](/docs/api/contact-center/events/#tag/contact_center/postcontact_center.engagement_ended). Consider using a backoff between retries to avoid rate limiting.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_report:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:engagement:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"getEngagement","parameters":[{"name":"engagementId","in":"path","description":"The engagement's ID.","required":true,"schema":{"type":"string","example":"3XilEfOvQEKRIWMWhX1jDg"}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`  \n \nEngagement information returned.","content":{"application/json":{"schema":{"type":"object","properties":{"start_time":{"type":"string","description":"The date and time when the engagement started. Always returned in `yyyy-MM-dd'T'HH:mm:ss'Z'` format (UTC).","format":"date-time","example":"2021-12-03T13:07:46Z"},"end_time":{"type":"string","description":"The date and time when the engagement ended. Always returned in `yyyy-MM-dd'T'HH:mm:ss'Z'` format (UTC).","format":"date-time","example":"2021-12-03T13:07:46Z"},"duration":{"type":"integer","description":"The engagement's duration, in seconds.","format":"int64","example":3600},"engagement_id":{"type":"string","description":"The engagement's ID.","example":"W_VATTk_Q5aW6z5rZtBxAQ"},"channel_types":{"type":"array","description":"The channel's type. \n* voice \n* SMS \n* chat \n* video \n* kiosk \n* in_app_chat \n* in_app_video","example":["voice"],"deprecated":true,"items":{"type":"string","example":"voice","enum":["voice","sms","chat","video","kiosk","in_app_chat","in_app_video"]}},"channels":{"type":"array","description":"The task's channels.","items":{"type":"object","properties":{"channel":{"type":"string","description":"The task's channel. \n* `voice` \n* `video` \n* `messaging` \n* `email`","example":"video","enum":["voice","video","messaging","email"]},"channel_source":{"type":"string","description":"The channel's source. \n* `in_app_video` - Only applies to video channel. \n* `kiosk_video` - Only applies to video channel. \n* `web_video` - Only applies to video channel. \n* `in_app_chat` - Only applies to messaging channel.  \n* `web_chat` - Only applies to messaging channel. \n* `sms` - Only applies to messaging channel.\n* `facebook_messenger` - Only applies to messaging channel.\n* `whatsapp` - Only applies to messaging channel.\n* `email_address` - Only applies to email channel.","example":"in_app_video","enum":["in_app_video","kiosk_video","web_video","web_chat","in_app_chat","sms","facebook_messenger","whatsapp","email_address"]}}}},"consumers":{"type":"array","description":"Information about the customers.","items":{"type":"object","properties":{"consumer_id":{"type":"string","description":"The customer's ID.","example":"zeYjXoDOS_eV1QmTpj63PQ"},"consumer_display_name":{"type":"string","description":"The customer's name.","example":"Jill"},"consumer_number":{"type":"string","description":"The customer's phone number.","example":"+12058945728"}}}},"direction":{"type":"string","description":"The session's direction. `inbound` | `outbound`.","example":"inbound","enum":["inbound","outbound"]},"flows":{"type":"array","description":"Information about the engagement's flows.","items":{"type":"object","properties":{"flow_id":{"type":"string","description":"The flow's ID.","example":"zeYjXoDOS_eV1QmTpj63PQ"},"flow_name":{"type":"string","description":"The flow's name.","example":"Demo"},"flow_version":{"type":"string","description":"The flow's version.","example":"5"}},"description":"Information about the flow."}},"queues":{"type":"array","description":"Information about the engagement's queues.","items":{"type":"object","properties":{"queue_id":{"type":"string","description":"The queue's ID.","example":"d95avl1eRJ-H162PZUJ-qg","deprecated":true},"cc_queue_id":{"type":"string","description":"The Contact Center queue's ID.","example":"d95avl1eRJ-H162PZUJ-qg"},"queue_name":{"type":"string","description":"The queue's name.","example":"agentQueue"}},"description":"Information about the queue."}},"agents":{"type":"array","description":"Information about the engagement's agents.","items":{"type":"object","properties":{"user_id":{"type":"string","description":"The agent's ID.","example":"ukAAkZKfROKMSw1bj_RDFQ"},"display_name":{"type":"string","description":"The agent's name.","example":"Jilly"}},"description":"Information about the queue."}},"queue_wait_type":{"type":"string","description":"The queue's wait type.","example":"live_waiting","enum":["live_waiting","callback"]},"talk_duration":{"type":"integer","description":"The engagement's talk duration, in seconds.","format":"int64","example":10},"flow_duration":{"type":"integer","description":"The engagement's flow duration, in seconds.","format":"int64","example":10},"waiting_duration":{"type":"integer","description":"The engagement's waiting duration, in seconds.","format":"int64","example":10},"handling_duration":{"type":"integer","description":"The handling duration, in seconds. This setting applies to voice channels.","format":"int64","example":0},"wrap_up_duration":{"type":"integer","description":"The engagement's wrap-up duration, in seconds.","format":"int64","example":10},"voice_mail":{"type":"integer","description":"The voicemail count.","format":"int32","example":10},"dispositions":{"type":"array","description":"Information about the dispositions.","items":{"type":"object","properties":{"disposition_id":{"type":"string","description":"The disposition's ID.","example":"W_VATTk_Q5aW6z5rZtBxAQ"},"disposition_name":{"type":"string","description":"The disposition's name.","example":"Inquiry"}}}},"notes":{"type":"array","description":"Information about the notes.","items":{"type":"object","properties":{"user_id":{"type":"string","description":"The agent's ID.","example":"ukAAkZKfROKMSw1bj_RDFQ"},"note_id":{"type":"string","description":"The note's ID.","example":"W_VATTk_Q5aW6z5rZtBxAQ"},"note":{"type":"string","description":"The note's content.","example":"This is the content of the note."},"last_modified_time":{"type":"string","description":"The date and time when this data was last modified.","format":"date-time","example":"2022-02-15T09:27:15Z"}}}},"events":{"type":"array","description":"Information about the events.","items":{"type":"object","properties":{"start_time":{"type":"string","description":"The date and time when the event started. Always returned in `yyyy-MM-dd'T'HH:mm:ss'Z'` format (UTC).","format":"date-time","example":"2021-12-03T13:07:46Z"},"duration":{"type":"integer","description":"The event's duration.","format":"int64","example":3600},"channel_type":{"type":"string","description":"The channel's type. \n* voice \n* SMS \n* chat \n* video \n* kiosk \n* in_app_chat \n* in_app_video","example":"voice","deprecated":true,"enum":["voice","sms","chat","video","in_app_chat","kiosk","in_app_chat","in_app_video"]},"channel":{"type":"string","description":"The task's channel. \n* `voice` \n* `video` \n* `messaging` \n* `email`","example":"video","enum":["voice","video","messaging","email"]},"channel_source":{"type":"string","description":"The channel's source. \n* `in_app_video` - Only applies to video channel. \n* `kiosk_video` - Only applies to video channel. \n* `web_video` - Only applies to video channel. \n* `in_app_chat` - Only applies to messaging channel.  \n* `web_chat` - Only applies to messaging channel. \n* `sms` - Only applies to messaging channel. \n* `email_address` - Only applies to email channel.","example":"in_app_video","enum":["in_app_video","kiosk_video","web_video","web_chat","in_app_chat","sms","email_address"]},"event_type":{"type":"string","description":"The event's type.","example":"Agent Ringing"},"direction":{"type":"string","description":"The session's direction. `inbound` | `outbound`.","example":"inbound","enum":["inbound","outbound"]},"flow_id":{"type":"string","description":"The flow's ID.","example":"zwKiV80hQ7CwRg9BEm0Bvw"},"flow_name":{"type":"string","description":"The flow's name.","example":"Demo"},"queue_id":{"type":"string","description":"The queue's ID.","example":"d95avl1eRJ-H162PZUJ-qg","deprecated":true},"cc_queue_id":{"type":"string","description":"The Contact Center queue's ID.","example":"d95avl1eRJ-H162PZUJ-qg"},"queue_name":{"type":"string","description":"The queue's name.","example":"Sales"},"user_id":{"type":"string","description":"The agent's ID.","example":"ukAAkZKfROKMSw1bj_RDFQ"},"user_display_name":{"type":"string","description":"The agent's name.","example":"Jilly"},"accept_type":{"type":"string","description":"The router's accept type. `manual` | `auto`.","example":"manual","enum":["manual","auto"]},"transfer_to_flow_id":{"type":"string","description":"The target flow's ID.","example":"zwKiV80hQ7CwRg9BEm0Bvw"},"transfer_to_flow_name":{"type":"string","description":"The target flow's name.","example":"Demo"},"transfer_to_queue_id":{"type":"string","description":"The target queue's ID.","example":"d95avl1eRJ-H162PZUJ-qg","deprecated":true},"transfer_to_cc_queue_id":{"type":"string","description":"The target queue's ID.","example":"d95avl1eRJ-H162PZUJ-qg"},"transfer_to_queue_name":{"type":"string","description":"The target flow's ID.","example":"Sales"},"transfer_to_user_id":{"type":"string","description":"The target agent's ID.","example":"zwKiV80hQ7CwRg9BEm0Bvw"},"transfer_to_user_display_name":{"type":"string","description":"The target agent's name.","example":"Jilly"},"transfer_to_number":{"type":"string","description":"The transfer's number.","example":"+12059300920"},"transfer_type":{"type":"string","description":"The transfer's type.","example":"cold","enum":["cold","warm"]},"transfer_count":{"type":"integer","description":"The number of transfers during the engagement.","format":"int32","example":2},"upgraded_to_channel_type":{"type":"string","description":"The target upgraded channel's type.","example":"video","enum":["video"]},"crm_type":{"type":"string","description":"The CRM's type.","example":"salesforce"},"crm_call_status":{"type":"string","description":"The CRM's call status.","example":"ringing","enum":["ringing","answer","hangup","miss"]},"supervisor_id":{"type":"string","description":"The supervisor's ID.","example":"kRQpbWO5TV6E7wxEYOKFWw"},"supervisor_display_name":{"type":"string","description":"The supervisor's name.","example":"Jilly"},"consumer_id":{"type":"string","description":"The consumer's ID.","example":"zeYjXoDOS_eV1QmTpj63PQ"},"consumer_display_name":{"type":"string","description":"The customer's name.","example":"Jill"},"inbox_id":{"type":"string","description":"The inbox's ID.","example":"W_VATTk_Q5aW6z5rZtBxAQ"},"inbox_name":{"type":"string","description":"The inbox's name.","example":"example"},"conference_type":{"type":"string","description":"The conference's type.","example":"cold","enum":["cold","warm"]},"invitee_type":{"type":"string","description":"The conference invitee's type.","example":"PSTN number","enum":["Agent","Queue","PSTN number"]},"invitee":{"type":"string","description":"The conference's invitee.","example":"+14244108479"},"skills":{"type":"array","description":"Information about the skills.","items":{"type":"object","properties":{"skill_category_id":{"type":"string","description":"The skill category's ID.","example":"Mu_IEZZHQZGMY9avK74kwA"},"skill_category_name":{"type":"string","description":"The skill category's name.","example":"Languages"},"skill_id":{"type":"string","description":"The skill's ID.","example":"saaHWgVMGQU69soco456oNA"},"skill_name":{"type":"string","description":"The skill's name.","example":"French"},"skill_proficiency_level":{"type":"integer","description":"The skill's proficiency level. Only proficiency-based skill will have proficiency level.","format":"int32","example":3}},"description":"Information about the skill."}},"email_reply_to":{"type":"array","description":"Recipient's information when replying to an email.","items":{"type":"object","properties":{"email_address":{"type":"string","description":"Email address","example":"jill.chill@example.com"},"email_name":{"type":"string","description":"Email name","example":"Jill Chill"}},"description":"Recipient's information when replying to an email."}},"email_reply_cc":{"type":"array","description":"CC recipients' information when replying to emails.","items":{"type":"object","properties":{"email_address":{"type":"string","description":"Email address","example":"jill.chill@example.com"},"email_name":{"type":"string","description":"Email name","example":"Jill Chill"}},"description":"CC recipients' information when replying to emails."}},"email_reply_bcc":{"type":"array","description":"BCC recipients' information when replying to an email.","items":{"type":"object","properties":{"email_address":{"type":"string","description":"Email address","example":"jill.chill@example.com"},"email_name":{"type":"string","description":"Email name","example":"Jill Chill"}},"description":"BCC recipients' information when replying to an email."}}}}},"transcript_url":{"type":"string","description":"The URL to download the messaging transcript, if the transcript text file exists. This field is only used for messaging engagements. For voice and video engagement recordings, see the `List engagement recordings` API. \n\nFor security purposes, you **must** provide an OAuth access token in the authorization header to download the transcript file using this URL. \n\n**Example**:\\r\\n```curl --request GET \\r\\n  --url {transcript_url} \\r\\n  --header 'authorization: Bearer {access_token}' \\r\\n  --header 'content-type: application/json'\\r\\n```","example":"https://api.zoom.us/v2/contact_center/engagements/transcripts/download/W_VATTk_Q5aW6z5rZtBxAQ"},"survey_id":{"type":"string","description":"The survey's ID.","example":"2yWjT4awTumcFKIrvcf4OA"},"callback_voice_messages":{"type":"array","description":"The callback voice messages.","items":{"type":"object","properties":{"callback_voice_message_url":{"type":"string","description":"The URL to download the callback voice recording, if the recording file exists. \r\n\r\nFor security purposes, you **must** provide an OAuth access token in the authorization header to download the recording file using this URL.","example":"https://api.zoom.us/v2/contact_center/consumer_callback/voice_messages/4Q0ILNMfTA2nJolNxhg0Rw/download"},"callback_voice_message_transcript_url":{"type":"string","description":"The URL to download the callback voice message transcript, if the transcript text file exists. \r\n\r\nFor security purposes, you **must** provide an OAuth access token in the authorization header to download the transcript file using this URL.","example":"https://api.zoom.us/v2/contact_center/consumer_callback/voice_messages/4Q0ILNMfTA2nJolNxhg0Rw/transcript"}},"description":"The callback voice message."}}},"description":"Information about the engagement."}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `2901` <br>\n Engagement does not exist: $engagementId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rest/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_report:read:admin","contact_center:read:engagement:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_report:read:admin"],"x-granular-scopes":["contact_center:read:engagement:admin"]}},"patch":{"tags":["Engagements"],"summary":"Update an engagement","description":"Allows performing an action on an engagement\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_engagement:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:update:engagement:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"updateEngagement","parameters":[{"name":"engagementId","in":"path","description":"Unique identifier for the engagement to be updated.","required":true,"schema":{"type":"string","example":"LjjdDBo5SkGneP8qY4SvuQ"}}],"requestBody":{"description":"Allows performing an action on an engagement based on the specified action type, like transfer.\n\n**Supported channels**\n- Messaging (Headless Web Chat)\n- Email\n- Work Item\n- Video\n\n**Unsupported channels**\n- Messaging (Web Chat, In App Chat, SMS, Facebook Messenger, Whatsapp, Instagram)\n- Voice\n","content":{"application/json":{"schema":{"required":["engagement_action"],"type":"object","properties":{"engagement_status":{"type":"string","description":"The new status to set for the engagement. The **activate/deactivate** option is only supported for work item channels.","example":"end","deprecated":true,"enum":["end","activate","deactivate"]},"engagement_action":{"type":"string","description":"Action to apply to the engagement.\nThe **activate/deactivate** option is only supported for work item channels.","example":"transfer to queue","enum":["transfer to queue","transfer to agent","transfer to flow","release","end","activate","deactivate"]},"target_queue_id":{"type":"string","description":"The target queue ID for transfer. Required when the action is `transfer to queue`.","example":"aok8Zi4GQUyZ6HjR_nZl1A"},"target_agent_id":{"type":"string","description":"The target agent ID for transfer. Required when the action is `transfer to agent`.","example":"eBUOIxoDSrSTUht2USpoUQ"},"target_flow_id":{"type":"string","description":"The target flow ID for transfer. Required when the action is `transfer to flow`.","example":"QCCP5nfbTVqXOsUZxkWsJw"}}}}}},"responses":{"204":{"description":"**HTTP 204 No Content** — The engagement was successfully updated. No content is returned in the response body."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `2907` <br>\n Invalid `engagement_status`. <br>\n**Error Code:** `2908` <br>\n Invalid `engagement_action`. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n "},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_engagement:write:admin","contact_center:update:engagement:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_engagement:write:admin"],"x-granular-scopes":["contact_center:update:engagement:admin"]}}},"/contact_center/engagements/{engagementId}/attachments":{"get":{"tags":["Engagements"],"summary":"Get an engagement's attachments","description":"Retrieve a list of attachments for a specified engagement.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_attachment:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:attachment:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"ListAttachments","parameters":[{"name":"engagementId","in":"path","description":"The engagement's ID.  \nNote: Only video engagements are supported.","required":true,"schema":{"type":"string","example":"3XilEfOvQEKRIWMWhX1jDg"}},{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of items returned per page.","required":false,"schema":{"maximum":300,"type":"integer","format":"int32","example":30,"default":30}}],"responses":{"200":{"description":"Engagement attachment list returned.","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"maxLength":100,"type":"string","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":300,"minimum":1,"type":"integer","description":"The number of records returned within a single API call.","example":30,"default":30},"total_records":{"minimum":0,"type":"integer","description":"The total number of all the records available across pages.","example":10},"attachments":{"type":"array","description":"Information about the attachments.","items":{"type":"object","properties":{"attachment_id":{"type":"string","description":"The attachment's ID.","example":"0AYFv9ePSsmPUSJYHorUWQ"},"engagement_id":{"type":"string","description":"The engagement's ID.","example":"3XilEfOvQEKRIWMWhX1jDg"},"attachment_name":{"type":"string","description":"The attachment's name.","example":"GMT20251015-95414_296_lbMMg_boRtaWyHqA87cUuQ_VideoScreenshot.png"},"attachment_url":{"type":"string","description":"The URL to download the attachment. For security purposes, you **must** provide an OAuth access token in the authorization header to download the attachment using this URL. Example:\\n```curl --request GET \\n  --url {attachment_url} \\n  --header 'authorization: Bearer {access_token}' \\n  --header 'content-type: application/json'\\n```","example":"https://api.zoom.us/v2/contact_center/attachments/0AYFv9ePSsmPUSJYHorUWQ/download?type=screenshot"},"attachment_alias":{"type":"string","description":"The attachment's alias.","example":"Screenshot 1.png"},"attachment_size":{"type":"number","description":"The attachment's file size, in bytes.","example":197238},"attachment_type":{"type":"string","description":"The attachment's file type.","example":"image"}},"description":"Information about the attachments."}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `2901` <br>\n Engagement does not exist: $engagementId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_attachment:read:admin","contact_center:read:attachment:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_attachment:read:admin"],"x-granular-scopes":["contact_center:read:attachment:admin"]}}},"/contact_center/engagements/{engagementId}/events":{"get":{"tags":["Engagements"],"summary":"Get an engagement's events","description":"Retrieve information about an engagement's events.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_report:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:engagement:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"getEngagementEvents","parameters":[{"name":"engagementId","in":"path","description":"The engagement's ID.","required":true,"schema":{"type":"string","example":"3XilEfOvQEKRIWMWhX1jDg"}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   Engagement's events information returned.","content":{"application/json":{"schema":{"type":"object","properties":{"engagement_id":{"type":"string","description":"The engagement's ID.","example":"W_VATTk_Q5aW6z5rZtBxAQ"},"events":{"type":"array","description":"Information about the events.","items":{"type":"object","properties":{"start_time":{"type":"string","description":"The date and time when the event started. Always returned in `yyyy-MM-dd'T'HH:mm:ss'Z'` format (UTC).","format":"date-time","example":"2021-12-03T13:07:46Z"},"event_name":{"type":"string","description":"The event's name, [Engagement events](https://support.zoom.com/hc/en/article?id=zm_kb&sysparm_article=KB0059105&_ga=2.188292840.1595505736.1717553252-540387373.1700551325#h_01GCW1GKA8NFE21SNAN3VR3K4P)","example":"Start"},"channel":{"type":"string","description":"The task's channel. Currently supports only voice and video channels.","example":"video","enum":["voice","video"]},"channel_source":{"type":"string","description":"The channel's source. Currently only returns voice and video channel sources.\n\n* `voice` - Only applies to voice channel. \n* `in_app_video` - Only applies to video channel. \n* `kiosk_video` - Only applies to video channel. \n* `web_video` - Only applies to video channel.","example":"in_app_video","enum":["voice","in_app_video","kiosk_video","web_video"]},"event_content":{"type":"string","description":"Currently, only voice channel events are supported. Other channel events will be supported in the future.\nDeserializes [engagement events](https://support.zoom.com/hc/en/article?id=zm_kb&sysparm_article=KB0059105).","example":"{\"flow_id\": \"zwKiV80hQ7CwRg9BEm0Bvw\",\"flow_name\": \"Demo\"}"}}}}},"description":"Information about the engagement's event."}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `7001` <br>\n Only voice and video channels are currently supported. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `2901` <br>\n Engagement does not exist: $engagementId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_report:read:admin","contact_center:read:engagement:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_report:read:admin"],"x-granular-scopes":["contact_center:read:engagement:admin"]}}},"/contact_center/engagements/{engagementId}/recordings/status":{"get":{"tags":["Engagements"],"summary":"Poll an engagement recording's status","description":"Polls a video or voice engagement's recordings' status.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_engagement:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:engagement_recording_status:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"EngagementRecordingStatus","parameters":[{"name":"engagementId","in":"path","description":"The engagement ID.","required":true,"schema":{"type":"string","example":"W_VATTk_Q5aW6z5rZtBxAQ"}}],"responses":{"200":{"description":"**HTTP Status:** `200` **OK**","content":{"application/json":{"schema":{"type":"object","properties":{"statuses":{"type":"array","description":"The list of statuses.","items":{"type":"object","properties":{"status":{"type":"string","description":"The recording status.\n\nIf the recording status change failed, it does not explicitly show in this API response.\n\nIf the recording status does not change within 5 seconds of an expected change, assume that the recording status did not successfully transition to the expected status. If used with the recording control API, the control API request can be re-attempted.","example":"pause","enum":["pause","resume","start","stop"]},"last_modified_time":{"type":"string","description":"The date and time when the recording was last modified.","example":"2023-01-01T00:00:00Z"}},"description":" The recording status."}},"engagement_id":{"type":"string","description":"The engagement's ID.","example":"W_VATTk_Q5aW6z5rZtBxAQ"},"channel":{"type":"string","description":"The recording's channel type. \n* `voice` - Voice recording. * `video` - Video recording.","example":"video","enum":["voice","video"]},"channel_source":{"type":"string","description":"The channel's source. \n* `in_app_chat` - Only applies to messaging channel. * `web_chat` - Only applies to messaging channel. * `sms` - Only applies to messaging channel.","example":"live_video","enum":["in_app_video","kiosk_video","web_video"]}},"description":"root"}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `2814` <br>\n The engagement's channel type is invalid for this recording control command. <br>\n**Error Code:** `2815` <br>\n The engagement is not assigned to an agent. It is not being recorded. <br>\n**Error Code:** `300` <br>\n Invalid request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `2901` <br>\n Engagement does not exist: {0}. <br>\n**Error Code:** `20006` <br>\n Account not found. <br>\n**Error Code:** `2817` <br>\n There is no recording for this engagement. <br>\n**Error Code:** `2906` <br>\n There are not any agents on the call. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_engagement:read:admin","contact_center:read:engagement_recording_status:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_engagement:read:admin"],"x-granular-scopes":["contact_center:read:engagement_recording_status:admin"]}}},"/contact_center/engagements/{engagementId}/survey":{"get":{"tags":["Engagements"],"summary":"Get an engagement's survey","description":"Get an engagement's survey\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_engagement:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:engagement:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"getEngagementSurvey","parameters":[{"name":"engagementId","in":"path","description":"The engagement's ID.","required":true,"schema":{"type":"string","example":"3XilEfOvQEKRIWMWhX1jDg"}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`    Survey returned.","content":{"application/json":{"schema":{"type":"object","properties":{"survey_id":{"type":"string","description":"The survey's ID.","example":"2yWjT4awTumcFKIrvcf4OA"},"survey_name":{"type":"string","description":"The survey's name.","example":"web chat survey"},"engagement_id":{"type":"string","description":"The engagement's ID.","example":"I9kVGZJZS5u796LxrKSWWg"},"queue_id":{"type":"string","description":"The `queue_id` or `queue_name` is returned if the survey is tied to a queue.","example":"2N13_yMTaeYUSYUKqupQQ"},"queue_name":{"type":"string","description":"The `queue_id` or `queue_name` is returned if the survey is tied to a queue.","example":"queue-chat"},"flow_id":{"type":"string","description":"The `flow_id` or `flow_name` is returned if the survey is tied to a flow.","example":"--N6BCoPQveeGJSyni57jw"},"flow_name":{"type":"string","description":"The `flow_id` or `flow_name` is returned if the survey is tied to a flow.","example":"flow-chat"},"survey_trigger_level":{"type":"integer","description":"The survey's trigger level.\n* `0` - queue.\n* `1` - flow.","example":0,"enum":[0,1]},"survey_results":{"type":"array","description":"The survey's answers, to a maximum of 10 items.","items":{"type":"object","properties":{"question_id":{"type":"string","description":"The question's ID.","example":"JocDev1cT-mIHREwDtMTVw"},"question_name":{"type":"string","description":"The question's name.","example":"What is your suggestion?"},"question_type":{"type":"integer","description":"The question's type.\n* `0` - Single choice.\n* `5` - Long answer.\n* `7` - Rating scale (NPS).","example":0,"enum":[0,5,7]},"question_order":{"type":"integer","description":"The question's order.","example":10},"date_time":{"type":"string","description":"The date and time of the customer's response. Format is ISO 8601 with milliseconds and timezone offset.","example":"2024-07-02T01:10:22.000+00:00"},"answer":{"type":"string","description":"The user's given answer.","example":"this is my answer"},"numeric_answer":{"type":"integer","description":"The user's given numeric answer.","example":10},"file_url":{"type":"string","description":"The answer as a recording URL.","example":"https://file.example.com/file/pvlGl_b5Q8KxSBp2vaAKXA?jwt=eyJ6bV9za20iOiJ6bV9vMm0iLCJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJhc3luY2ZpbGUiLCJ0b2tlbklkIjoiNVIyNjBGYW9RaUdFTE44alJneS0zUSIsImFwcE5hbWUiOiJhcHBfd2ViIiwiaXNzIjoiYXBwX3dlYiIsInBlcm1pc3Npb24iOiJtQ1l3ME9mM3N5Wm41alZFM25qYW40MXFMWUo4aWh1dGp3SmFYamd0Z1NrYUJxaEp4NjAtcXR2WEVoejBWVVFOOVl1Y3NrRlVwUUtxbVViS1o5TnpJQ2YxZHVaVUxjMkpVanlrOHZpXzFIWVNfdDhWeHluZ1VUdWpIbHFDTjRqY3p3Tnppdy5JbnhMMmZlVTVsZzU3cnZ3IiwiZXhwIjoxNzIwMTkwNjc0LCJ0b2tlblR5cGUiOiJwcmVzaWduVG9rZW4iLCJpYXQiOjE3MjAwODI2NzR9.tJ2Nq9f_veVMv6-60bKGcVZfIzPf2WshnOECg9Lkhxw&mode=play&with_domain=true"}},"description":"Answer item."}}},"description":"Answer object."}}}},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `404` <br>\n The engagement does not trigger survey. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rest/rate-limits/). \n\n "},"444":{"description":"**HTTP Status Code:** `444` <br>\n No Response  \n\n **Error Code:** `444` <br>\n The survey for this engagement has no answer. <br>\n"}},"security":[{"openapi_oauth":["contact_center_engagement:read:admin","contact_center:read:engagement:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_engagement:read:admin"],"x-granular-scopes":["contact_center:read:engagement:admin"]}}},"/contact_center/engagements/{engagementId}/transfer/flows":{"get":{"tags":["Engagements"],"summary":"Get available transfer flows","description":"Retrieve a list of flows that are available for transfer.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_flow:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:flow:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"GetAvailableTransferFlows","parameters":[{"name":"engagementId","in":"path","description":"The engagement's ID.","required":true,"schema":{"type":"string","example":"kke-J9A9QF-ecsuu_sGomg"}},{"name":"keyword","in":"query","description":"The keyword for fuzzy searching by name.","required":false,"schema":{"type":"string","example":"Support Flow"}},{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of records returned within a single API call.","required":false,"schema":{"maximum":100,"type":"integer","format":"int32","example":10,"default":10}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`  \n \nSuccessfully retrieved the list of available transfer flows.","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"maxLength":100,"type":"string","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":100,"minimum":1,"type":"integer","description":"The number of records returned within a single API call.","example":10,"default":10},"total_records":{"minimum":0,"type":"integer","description":"The total number of all records available across pages.","example":10},"flows":{"type":"array","items":{"required":["flow_id"],"type":"object","properties":{"flow_id":{"type":"string","description":"The flow's ID.","example":"1QEhGTxFRmqKKLrZIm18CQ"},"flow_name":{"type":"string","description":"The flow's name.","example":"SMS"},"flow_description":{"type":"string","description":"The flow's description.","example":"SMS flow"}}}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `7001` <br>\n Invalid channel or `channel_source`. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n**Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n**Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `2901` <br>\n Engagement does not exist: $engagementId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_flow:read:admin","contact_center:read:flow:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_flow:read:admin"],"x-granular-scopes":["contact_center:read:flow:admin"]}}},"/contact_center/engagements/{engagementId}/transfer/queues":{"get":{"tags":["Engagements"],"summary":"Get available transfer queues","description":"Return a list of queues that are available for transfer.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_queue:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:list_queues:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"GetAvailableTransferQueues","parameters":[{"name":"engagementId","in":"path","description":"The engagement's ID.","required":true,"schema":{"type":"string","example":"kke-J9A9QF-ecsuu_sGomg"}},{"name":"keyword","in":"query","description":"The keyword for fuzzy search by name.","required":false,"schema":{"type":"string","example":"Support Queue"}},{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of records returned within a single API call.","required":false,"schema":{"maximum":100,"type":"integer","format":"int32","example":10,"default":10}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`  \nOK\n\nQueue information returned.","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"maxLength":100,"type":"string","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":100,"minimum":1,"type":"integer","description":"The number of records returned within a single API call.","example":10,"default":10},"total_records":{"minimum":0,"type":"integer","description":"The total number of all records available across pages.","example":10},"queues":{"type":"array","items":{"required":["queue_id"],"type":"object","properties":{"queue_id":{"type":"string","description":"The queue's ID.","example":"1QEhGTxFRmqKKLrZIm18CQ"},"queue_name":{"type":"string","description":"The queue's name.","example":"SMS"},"queue_description":{"type":"string","description":"The queue's description.","example":"SMS Queue"}}}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `7001` <br>\n Invalid channel or `channel_source`. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n**Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n**Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `2901` <br>\n Engagement does not exist: $engagementId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_queue:read:admin","contact_center:read:list_queues:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_queue:read:admin"],"x-granular-scopes":["contact_center:read:list_queues:admin"]}}},"/contact_center/engagements/{engagementId}/transfer/users":{"get":{"tags":["Engagements"],"summary":"Get available transfer users","description":"Retrieve a list of available transfer users.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_user:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:list_users:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"GetAvailableTransferUsers","parameters":[{"name":"engagementId","in":"path","description":"The engagement's ID.","required":true,"schema":{"type":"string","example":"kke-J9A9QF-ecsuu_sGomg"}},{"name":"keyword","in":"query","description":"Used for fuzzy search by name, phone number, or email.","required":false,"schema":{"type":"string","example":"Jill Doe"}},{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of records returned within a single API call.","required":false,"schema":{"maximum":100,"type":"integer","format":"int32","example":10,"default":10}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`  \n \nAgent information returned.","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"maxLength":100,"type":"string","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":100,"minimum":1,"type":"integer","description":"The number of records returned within a single API call.","example":10,"default":10},"total_records":{"minimum":0,"type":"integer","description":"The total number of all records available across pages.","example":10},"users":{"type":"array","items":{"required":["cc_user_id","user_status"],"type":"object","properties":{"cc_user_id":{"maxLength":36,"type":"string","description":"The Contact Center user identifier.","example":"hKuMAiDdRlSwMkBxR5we7g"},"user_id":{"maxLength":36,"type":"string","description":"The Meetings user identifier.","example":"IGTRVt3gQ2i-WjoUIjeZxw"},"user_display_name":{"type":"string","description":"The user's display name.","example":"Jane Doe"},"user_email":{"type":"string","description":"The user's email address.","format":"email","example":"jchill@example.com"},"user_status":{"type":"string","description":"The user's current status.","example":"available","enum":["offline","available","unavailable","occupied","break","meal","training","meeting","end_shift","forced","disabling","in_meeting","on_call"]},"user_first_name":{"type":"string","description":"The user's first name.","example":"John"},"user_last_name":{"type":"string","description":"The user's last name.","example":"Doe"},"user_profile_picture_background_color":{"type":"string","description":"The background color of the user's profile picture.","example":"#4A90E2"},"user_profile_picture_file_id":{"type":"string","description":"The file ID of the user's profile picture.","example":"file_abc123xyz"},"user_profile_picture_type":{"type":"string","description":"The type of the user's profile picture.","example":"uploaded"},"user_personal_profile_avatar":{"type":"string","description":"The URL of the user's personal profile avatar.","example":"https://example.com/avatar.png"},"queue_count":{"type":"integer","description":"The number of queues assigned to the user.","example":5},"queues":{"type":"array","description":"The list of queues assigned to the user.","items":{"type":"object","properties":{"queue_id":{"type":"string","description":"The queue's ID.","example":"RpKKZwpVxNq1aQtMIODHq"},"queue_name":{"type":"string","description":"The queue's name.","example":"Support Queue"}}}}}}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n**Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n**Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `2901` <br>\n Engagement does not exist: $engagementId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_user:read:admin","contact_center:read:list_users:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_user:read:admin"],"x-granular-scopes":["contact_center:read:list_users:admin"]}}},"/contact_center/open_engagements":{"get":{"tags":["Engagements"],"summary":"List open engagements","description":"Return a list of open engagements.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_engagement:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:list_engagements:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"list open engagements","parameters":[{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through a large set of results. A next page token returns whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of items returned per page.","required":false,"schema":{"maximum":100,"type":"integer","format":"int32","example":10,"default":10}},{"name":"timezone","in":"query","description":"The call's timezone. The default is UTC.","required":false,"schema":{"type":"string","example":"America/Los_Angeles"}},{"name":"engagement_id","in":"query","description":"The engagement's ID. Supports substring matching queries.","required":false,"schema":{"type":"string","example":"W_VATTk_Q5aW6z5rZtBxAQ"}},{"name":"queue_id","in":"query","description":"The queue's ID.","required":false,"schema":{"type":"string","example":"zeYjXoDOS_eV1QmTpj63PQ"}},{"name":"queue_name","in":"query","description":"The queue's name. Supports substring matching queries.","required":false,"schema":{"type":"string","example":"test queue"}},{"name":"agent_id","in":"query","description":"The agent's ID.","required":false,"schema":{"type":"string","example":"ukAAkZKfROKMSw1bj_RDFQ"}},{"name":"agent_name","in":"query","description":"The agent's name. Supports substring matching queries.","required":false,"schema":{"type":"string","example":"agent one"}},{"name":"channel","in":"query","description":"The task's channel.\n\nThis provides only a single channel.\n\nIf `channel` is used as an input parameter, the deprecated parameter `channel_types` is not processed.","required":false,"schema":{"type":"string","example":"messaging","enum":["voice","video","messaging","email","work_item"]}},{"name":"channel_sources","in":"query","description":"The channel's source.\n* `in_app_video` - Only applies to the `video` channel.\n* `kiosk_video` - Only applies to the `video` channel.\n* `web_video` - Only applies to the `video` channel.\n* `in_app_chat` - Only applies to the `messaging` channel.\n* `web_chat` - Only applies to the `messaging` channel.\n* `sms` - Only applies to the `messaging` channel.\n* `facebook_messenger` - Only applies to the `messaging` channel.\n* `whatsapp` - Only applies to the `messaging` channel.\n* `email_address` - Only applies to the `email` channel.\n* `api` - Only applies to the `work_item` channel.\n\nThis supports multiple channel sources.","required":false,"schema":{"type":"array","items":{"type":"string","example":"web_chat,in_app_chat","enum":["in_app_video","kiosk_video","web_video","web_chat","in_app_chat","sms","facebook_messenger","whatsapp","email_address","voice","api"]}}},{"name":"direction","in":"query","description":"The engagement's direction.","required":false,"schema":{"type":"string","example":"inbound","enum":["inbound","outbound"]}},{"name":"status","in":"query","description":"The engagement's status.","required":false,"schema":{"type":"string","example":"in_queue","enum":["in_flow","in_queue","callback","awaiting_callback","callback_retry","ringing","inactive","assigned","assigned(on_hold)","virtual_agent","parked"]}},{"name":"email_sent_time_from","in":"query","description":"Start time for filtering `email_sent_time` in a time range query in either `yyyy-mm-dd` or `yyyy-MM-dd'T'HH:mm:ss'Z'` format. Only applies to the `email` channel.","required":false,"schema":{"type":"string","example":"2025-06-03T13:07:46Z"}},{"name":"email_sent_time_to","in":"query","description":"End time for filtering `email_sent_time` in a time range query in either `yyyy-mm-dd` or `yyyy-MM-dd'T'HH:mm:ss'Z'` format. Only applies to the `email` channel.","required":false,"schema":{"type":"string","example":"2025-07-04T13:07:46Z"}},{"name":"customer_email_address","in":"query","description":"The sender's email address. Only applies to the `email` channel. Supports substring matching queries.","required":false,"schema":{"type":"string","example":"customer@example.com"}},{"name":"entry_point_email_address","in":"query","description":"The flow entry point email address. Only applies to the `email` channel. Supports substring matching queries.","required":false,"schema":{"type":"string","example":"entryId@example.com"}},{"name":"outbound_email_address","in":"query","description":"The outbound email address. Only applies to the `email` channel. Supports substring matching queries.","required":false,"schema":{"type":"string","example":"outbound@example.com"}},{"name":"email_subject","in":"query","description":"The email subject. Only applies to the `email` channel. Supports substring matching queries.","required":false,"schema":{"type":"string","example":"customer question"}},{"name":"priority","in":"query","description":"The email's priority. Only applies to the `email` channel.","required":false,"schema":{"type":"string","example":"High","enum":["High","Normal","Low"]}},{"name":"work_item_type_id","in":"query","description":"The work item type's ID. Only applies to the `work_item` channel.","required":false,"schema":{"type":"string","example":"4ad5A8qLTIunwdlpzSS4lg"}},{"name":"work_item_type_name","in":"query","description":"The work item type's name. Only applies to the `work_item` channel. Supports substring matching queries.","required":false,"schema":{"type":"string","example":"ticket"}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \nEngagements returned.","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"type":"string","description":"Use the next page token to paginate through a large set of results. A next page token returns whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"jA5csQv1W1oXuYZLspNIZzMOXqTD9r9Rje2"},"page_size":{"maximum":100,"type":"integer","description":"The number of records returned within a single API call.","example":10,"default":10},"total_records":{"type":"integer","description":"The total number of all the records available across pages.","example":100},"timezone":{"type":"string","description":"The call's [timezone ID](/docs/api/references/abbreviations/#timezones). The default is UTC.","example":"America/Los_Angeles"},"engagements":{"type":"array","description":"Information about the engagements.","items":{"type":"object","properties":{"start_time":{"type":"string","description":"The date and time when the engagement started, in ISO 8601 format, either `yyyy-MM-dd'T'HH:mm:ss'Z'` or `yyyy-MM-dd'T'HH:mm:ss'TZD'`. The `start_time` is in the timezone indicated by the user. If no timezone is provided, `start_time` is in UTC.","format":"date-time","example":"2021-12-03T13:07:46Z"},"email_sent_time":{"type":"string","description":"The date and time when the email was sent, in ISO 8601 format, either `yyyy-MM-dd'T'HH:mm:ss'Z'` or `yyyy-MM-dd'T'HH:mm:ss'TZD'`. The time is in the timezone indicated by the user. If no timezone is provided, it is in UTC. Only present for `email` channel engagements.","format":"date-time","example":"2021-12-03T13:07:46Z"},"engagement_id":{"type":"string","description":"The engagement's ID.","example":"W_VATTk_Q5aW6z5rZtBxAQ"},"direction":{"type":"string","description":"The engagement's direction.","example":"inbound"},"status":{"type":"string","description":"The engagement's status.","example":"in_queue","enum":["in_flow","in_queue","callback","awaiting_callback","callback_retry","ringing","inactive","assigned","assigned(on_hold)","virtual_agent","parked"]},"channels":{"type":"array","description":"The task's channels.","items":{"type":"object","properties":{"channel":{"type":"string","description":"The task's channel. \n* `voice` \n* `video` \n* `messaging` \n* `email`\n* `work_item`","example":"email","enum":["voice","video","messaging","email","work_item"]},"channel_source":{"type":"string","description":"The channel's source. \n* `in_app_video` - Only applies to the `video` channel. \n* `kiosk_video` - Only applies to the `video` channel. \n* `web_video` - Only applies to the `video` channel. \n* `in_app_chat` - Only applies to the `messaging` channel.  \n* `web_chat` - Only applies to the `messaging` channel. \n* `sms` - Only applies to the `messaging` channel.\n* `facebook_messenger` - Only applies to the `messaging` channel.\n* `whatsapp` - Only applies to the `messaging` channel.\n* `email_address` - Only applies to the `email` channel.\n* `voice` - Only applies to the `voice` channel.\n* `api` - Only applies to the `work_item` channel.","example":"email_address","enum":["in_app_video","kiosk_video","web_video","web_chat","in_app_chat","sms","facebook_messenger","whatsapp","email_address","voice","api"]}}}},"consumers":{"type":"array","description":"Information about the consumers.","items":{"type":"object","properties":{"consumer_id":{"type":"string","description":"The consumer's ID.","example":"zeYjXoDOS_eV1QmTpj63PQ"},"consumer_display_name":{"type":"string","description":"The consumer's display name.","example":"Jill"},"consumer_email_address":{"type":"string","description":"The consumer's email address. Only present for `email` channel engagements.","example":"customer@example.com"},"consumer_number":{"type":"string","description":"The consumer's phone number. Only present for `voice` and `messaging` channel engagements.","example":"+800-555-1212"}}}},"flows":{"type":"array","description":"Information about the engagement's flows.","items":{"type":"object","properties":{"flow_id":{"type":"string","description":"The flow's ID.","example":"zeYjXoDOS_eV1QmTpj63PQ"},"flow_name":{"type":"string","description":"The flow's name.","example":"Demo"},"flow_version":{"type":"string","description":"The flow's version.","example":"5"}},"description":"Information about the flow."}},"queues":{"type":"array","description":"Information about the engagement's queues.","items":{"type":"object","properties":{"cc_queue_id":{"type":"string","description":"The Contact Center queue's ID.","example":"d95avl1eRJ-H162PZUJ-qg"},"queue_name":{"type":"string","description":"The queue's name.","example":"agentQueue"}},"description":"Information about the queue."}},"agents":{"type":"array","description":"Information about the engagement's agents.","items":{"type":"object","properties":{"user_id":{"type":"string","description":"The agent's ID.","example":"ukAAkZKfROKMSw1bj_RDFQ"},"display_name":{"type":"string","description":"The agent's display name.","example":"Jilly"},"team_id":{"type":"string","description":"The ID of the team that the agent belongs to.","example":"w1bj_RDFQukAAkZKfROKMS"},"team_name":{"type":"string","description":"The name of the team that the agent belongs to.","example":"teamA"}},"description":"Information about the agent."}},"priority":{"type":"string","description":"The priority of the email. Only present for `email` channel engagements.","example":"High"}},"description":"Information about the engagement."}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1201` <br>\n Queue does not exist: $queueId. <br>\n**Error Code:** `1001` <br>\n User does not exist: $userId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_engagement:read:admin","contact_center:read:list_engagements:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_engagement:read:admin"],"x-granular-scopes":["contact_center:read:list_engagements:admin"]}}},"/contact_center/flows":{"get":{"tags":["Flows"],"summary":"List flows","description":"Return a list of flows. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_flow:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:list_flows:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"listFlows","parameters":[{"name":"status","in":"query","description":"Use the status to filter the result.","required":false,"schema":{"type":"string","example":"published","enum":["draft","published","archived"]}},{"name":"channel_type","in":"query","description":"Use the channel type to filter the result.","required":false,"deprecated":true,"schema":{"type":"string","example":"voice","enum":["voice","chat","sms","video","in_app_chat"]}},{"name":"channel","in":"query","description":"Use the channel to filter the result.","required":false,"schema":{"type":"string","example":"messaging","enum":["voice","video","messaging","email","work_item"]}},{"name":"channel_source","in":"query","description":"Use the channel source to filter the result.  \n* `in_app_chat` - Only applies to messaging channel.  \n* `web_chat` - Only applies to messaging channel.  \n* `sms` - Only applies to messaging channel.\n* `facebook_messenger` - Only applies to messaging channel.\n* `whatsapp` - Only applies to messaging channel.\n* `email_address` - Only applies to email channel.\n* `api` - Only applies to work_item channel.","required":false,"schema":{"type":"string","example":"web_chat","enum":["web_chat","in_app_chat","sms","facebook_messenger","whatsapp","email_address","api"]}},{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of items returned per page.","required":false,"schema":{"maximum":300,"type":"integer","format":"int32","example":30,"default":30}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \n Flow list returned.","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"maxLength":100,"type":"string","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":100,"minimum":1,"type":"integer","description":"The number of records returned within a single API call.","example":30,"default":30},"total_records":{"minimum":0,"type":"integer","description":"The total number of all the records available across pages.","example":10},"flows":{"type":"array","description":"Information about the flows.","items":{"type":"object","properties":{"flow_id":{"type":"string","description":"The flow's ID.","example":"zwKiV80hQ7CwRg9BEm0Bvw"},"flow_name":{"type":"string","description":"The flow's name.","example":"Video Test"},"flow_description":{"type":"string","description":"The flow's description.","example":"A testing flow."},"channel_type":{"type":"string","description":"The flow's channel type.","example":"voice","deprecated":true,"enum":["voice","chat","sms","video","in_app_chat"]},"channel":{"type":"string","description":"The flow's channel.","example":"messaging","enum":["voice","video","messaging","email","work_item"]},"channel_source":{"type":"string","description":"The channel's source. \n* `in_app_chat` - Only applies to messaging channel.  \n* `web_chat` - Only applies to messaging channel. \n* `sms` - Only applies to messaging channel.\n* `facebook_messenger` - Only applies to messaging channel.\n* `whatsapp` - Only applies to messaging channel.\n* `email_address` - Only applies to email channel.\n* `api` - Only applies to work_item channel.","example":"web_chat","enum":["web_chat","in_app_chat","sms","facebook_messenger","whatsapp","email_address","api"]},"status":{"type":"string","description":"This flow's status.","example":"published","enum":["draft","published","archived","debugging"]},"modified_by":{"type":"string","description":"The ID of the user that last modified this data.","example":"IGTRVt3gQ2i-WjoUIjeZxw"},"last_modified_time":{"type":"string","description":"The date and time when this data was last modified.","format":"date-time","example":"2022-02-15T09:27:15Z"},"entry_points":{"type":"array","description":"The flow's entry points.","items":{"type":"object","properties":{"entry_id":{"type":"string","description":"The flow's entry point ID.","example":"x_h7uCj3TtScXWOBnQnKrw"},"entry_name":{"type":"string","description":"The flow's entry point name, applicable to Video, Web Chat and In-App Chat.","example":"Test video"},"entry_number":{"type":"string","description":"The flow's entry point number, applicable to voice and SMS.","example":"+16052052430"},"entry_language":{"type":"string","description":"The flow's entry point engagement language.","example":"en-US"},"email_address":{"type":"string","description":"The flow's entry point email address, applicable to email.","example":"xxxx@zoom.us"}}}},"flow_versions":{"type":"array","description":"The flow's versions.","items":{"type":"object","properties":{"flow_version_id":{"type":"string","description":"The flow's studio version ID.","example":"EWg5URJZRXKwfbLJpeJWyA"},"flow_version_description":{"type":"string","description":"The flow's version description.","example":"Version 1"},"flow_version_status":{"type":"string","description":"The flow version's status.","example":"draft","enum":["draft","published","archived","debugging"]},"flow_version":{"type":"integer","description":"The flow's version.","example":2},"flow_version_modified_by":{"type":"string","description":"The parent ID of the user who modified the flow version.","example":"jdhgdhghk376453hjdf"},"flow_version_last_modified_time":{"type":"string","description":"The date and time when this flow version was last modified. ","example":"2022-08-05T01:55:52Z"}},"description":"The flow versions' detailed information."}}}}}}}}}},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_flow:read:admin","contact_center:read:list_flows:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_flow:read:admin"],"x-granular-scopes":["contact_center:read:list_flows:admin"]}},"post":{"tags":["Flows"],"summary":"Import a flow","description":"Import and create a flow, using content from another flow's exported JSON.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_flow:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:write:flow:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"ImportFlow","requestBody":{"content":{"multipart/form-data":{"schema":{"required":["flow_file","flow_name"],"type":"object","properties":{"flow_name":{"maxLength":64,"type":"string","description":"The flow name. Must be unique within a division.","example":"my flow"},"flow_description":{"maxLength":256,"type":"string","description":"The flow description.","example":"my description"},"flow_version_description":{"maxLength":256,"type":"string","description":"The flow version description. The flow is imported and created with Version 1 automatically.","example":"my version description"},"flow_file":{"type":"string","description":"* View - The uploaded file is in binary format.\n* Allowed file extensions - `xxx.json`\n\n* Maximum file size supported - 10 MB\n","format":"binary","example":"Vm0wd2QyUXlVWGxWV0d4V1YwZDRWMVl3WkRSWFJteFZVMjA1VjAxV2JETlhhMk0xVmpKS1NHVkVRbUZXVmxsM1ZtcEJlRll5U2tWVWJHaG9UVlZ3VlZacVFtRlRNbEpJVm10a1dHSkdjSEJXYTFwaFpWWmFkRTFVVWxSTmF6RTFWa2QwYzJGc1NuUmhSemxWVmpOT00xcFZXbUZrUjA1R1UyMTRVMkpXU2twV2JURXdWakZXZEZOc1dsaGlSMmhZV1d4b2IyVnNVbFZTYlVaclVqQTFSMVV5TVRSVk1rcElaSHBHVjFaRmIzZFdha1poVjBaT2NtRkhhRk5sYlhoWFZtMXdUMVF3TUhoalJscFlZbFZhY2xWc1VrZFdiRnBZWlVoa1YwMUVSa1pWYkZKSFZqSkZlVlZZWkZkaGExcFhXbFphVDJOdFNrZFRiV2hzWWxob1dWWXhaRFJpTWtsM1RVaG9hbEp0VWxsWmJHaFRWMFpTVjFwR1RteGlSbXcxVkZaU1UxWnJNWEpqUld4aFUwaENTRlpxU2tabFZsWlpXa1p3YkdFelFrbFdWM0JIVkRKU1YxWnVUbGhpVjNoVVdWUk9RMlJzV25STldHUlZUVlpXTkZVeGFHOWhiRXB6WTBac1dtSkhhRlJXTUZwVFZqRndSVkZyT1dsU00yaFlWbXBKZUZJeFdsaFRhMXBxVWxkb1dGUlhOVU5YUmxweFVtdDBhazFyTlVoWlZWcHJZVWRGZWxGcmJGZFdSVXBvVjFaa1UxWXhUblZVYkZKcFVqRktWVlpHVWtKa01ERlNVRlF3UFE9PQ=="},"import_mode":{"maxLength":32,"type":"string","description":"\"new\" (default) or \"version\" - \"new\" creates a brand new flow. - \"version\" checks for existing flow by name + channel and imports as new version.","example":"new","enum":["new","version"]}}}}}},"responses":{"201":{"description":"**HTTP Status Code:** `201`  \nImport and create a flow.","content":{"application/json":{"schema":{"type":"object","properties":{"flow_id":{"type":"string","description":"The flow ID.","example":"zwKiV80hQ7CwRg9BEm0Bvw"},"flow_name":{"type":"string","description":"The flow name.","example":"test_flow"},"flow_description":{"type":"string","description":"The flow description.","example":"test_flow"},"channel":{"type":"string","description":"The flow's channel.","example":"messaging","enum":["voice","video","messaging","email","work_item"]},"channel_source":{"type":"string","description":"The channel's source.\n`in_app_chat` - Only applies to messaging channel.\n`web_chat` - Only applies to messaging channel.\n`sms` - Only applies to messaging channel.\n`facebook_messenger` - Only applies to messaging channel.\n`whatsapp` - Only applies to messaging channel.\n`web_chat` - Only applies to messaging channel.\n`email_address` - Only applies to email channel.\n`api` - Only applies to work_item channel.","example":"web_chat","enum":["video","voice","sms","web_chat","in_app_chat","facebook_messenger","whatsapp","instagram","team_chat","email_address","api"]},"status":{"type":"string","description":"The flow's status.","example":"draft","enum":["draft","published"]},"modified_by":{"type":"string","description":"The ID of the user who last modified this data.","example":"IGTRVt3gQ2i-WjoUIjeZxw"},"last_modified_time":{"type":"string","description":"The date and time when this data was last modified.","format":"date-time","example":"2022-02-15T09:27:15Z"},"entry_points":{"maxItems":50,"type":"array","description":"The flow's entry points.","items":{"type":"object","properties":{"entry_id":{"type":"string","description":"The flow's entry point ID.","example":"x_h7uCj3TtScXWOBnQnKrw"},"entry_name":{"type":"string","description":"The flow's entry point name. Applicable to video, web chat, and in-app chat.","example":"my_entry"},"entry_number":{"type":"string","description":"The flow's entry point number. Applicable to voice and SMS.","example":"+16052052430"},"entry_language":{"type":"string","description":"The flow's entry point engagement language.","example":"en-US"},"email_address":{"type":"string","description":"The flow's entry point email address. Applicable to email.","example":"address@company.com"}},"description":"Entry point items."}},"flow_versions":{"maxItems":20,"type":"array","description":"The flow version.","items":{"type":"object","properties":{"flow_version_id":{"type":"string","description":"The flow's entry point ID.","example":"EWg5URJZRXKwfbLJpeJWyA"},"flow_version_description":{"type":"string","description":"The flow version's description.","example":"My Version Description"},"flow_version_status":{"type":"string","description":"The flow version's status.","example":"draft","enum":["draft","published","archieved"]},"flow_version":{"type":"integer","description":"The flow's version.","example":2},"flow_version_modified_by":{"type":"string","description":"The parent ID of the user who modified the flow version.","example":"jdhgdhghk376453hjdf"},"flow_version_last_modified_time":{"type":"string","description":"The date and time when this flow version was last modified.","example":"2023-01-01T00:00:00-04:00"}},"description":"The flow version item."}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `3202` <br>\n The flow name already exists. <br>\n**Error Code:** `3203` <br>\n The flow is invalid. <br>\n**Error Code:** `3211` <br>\n Flow file widget data is invalid. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n "},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_flow:write:admin","contact_center:write:flow:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_flow:write:admin"],"x-granular-scopes":["contact_center:write:flow:admin"]}}},"/contact_center/flows/{flowId}":{"get":{"tags":["Flows"],"summary":"Get a flow","description":"Get information about a flow. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_flow:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:flow:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"getAFlow","parameters":[{"name":"flowId","in":"path","description":"The flow's ID.","required":true,"schema":{"type":"string","example":"F2aM1AQuSXyWerbDqswFJQ"}},{"name":"flow_identifier_type","in":"query","description":"How the path parameter is interpreted. `id` treats it as a system-generated unique identifier. `name` treats it as the resource name.\nWhen using `name`, the resource name must be URL-encoded per RFC 3986.","required":false,"schema":{"type":"string","example":"id","default":"id","enum":["id","name"]}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \nFlow returned.","content":{"application/json":{"schema":{"type":"object","properties":{"flow_id":{"type":"string","description":"The flow's ID.","example":"zwKiV80hQ7CwRg9BEm0Bvw"},"flow_name":{"type":"string","description":"The flow's name.","example":"Video Test"},"flow_description":{"type":"string","description":"The flow's description.","example":"A testing flow."},"channel_type":{"type":"string","description":"The flow's channel type.","example":"voice","deprecated":true,"enum":["voice","chat","sms","video","in_app_chat"]},"channel":{"type":"string","description":"The flow's channel.","example":"messaging","enum":["voice","video","messaging","email","work_item"]},"channel_source":{"type":"string","description":"The channel's source. \n* `in_app_chat` - Only applies to messaging channel.  \n* `web_chat` - Only applies to messaging channel. \n* `sms` - Only applies to messaging channel.\n* `facebook_messenger` - Only applies to messaging channel.\n* `whatsapp` - Only applies to messaging channel. \n* `web_chat` - Only applies to messaging channel. \n* `sms` - Only applies to messaging channel.\n* `facebook_messenger` - Only applies to messaging channel.\n* `email_address` - Only applies to email channel.\n* `api` - Only applies to work_item channel.","example":"web_chat","enum":["web_chat","in_app_chat","sms","facebook_messenger","whatsapp","email_address","api"]},"status":{"type":"string","description":"This flow's status.","example":"published","enum":["draft","published","archived","debugging"]},"modified_by":{"type":"string","description":"The parent ID of the user who modified the flow.","example":"jdhgdhghk376453hjdf"},"last_modified_time":{"type":"string","description":"The date and time when this flow was last modified. ","example":"2022-08-05T01:55:52Z"},"entry_points":{"type":"array","description":"The flow's entry points.","items":{"type":"object","properties":{"entry_id":{"type":"string","description":"The flow's entry point ID.","example":"x_h7uCj3TtScXWOBnQnKrw"},"entry_name":{"type":"string","description":"The flow's entry point name, applicable to Video, Web Chat and In-App Chat.","example":"Test video"},"entry_number":{"type":"string","description":"The flow's entry point number, applicable to voice and SMS.","example":"+16052052430"},"entry_language":{"type":"string","description":"The flow's entry point engagement language.","example":"en-US"},"email_address":{"type":"string","description":"The flow's entry point email address. Applicable to email.","example":"xxxx@zoom.us"}}}},"flow_versions":{"type":"array","description":"The flow's versions.","items":{"type":"object","properties":{"flow_version_id":{"type":"string","description":"The flow's studio version ID.","example":"EWg5URJZRXKwfbLJpeJWyA"},"flow_version_description":{"type":"string","description":"The flow's version description.","example":"Version 1"},"flow_version_status":{"type":"string","description":"The flow version's status.","example":"draft","enum":["draft","published","archived","debugging"]},"flow_version":{"type":"integer","description":"The flow's version.","example":2},"flow_version_modified_by":{"type":"string","description":"The parent ID of the user who modified the flow version.","example":"jdhgdhghk376453hjdf"},"flow_version_last_modified_time":{"type":"string","description":"The date and time when this flow version was last modified. ","example":"2022-08-05T01:55:52Z"}},"description":"The flow versions' detailed information."}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `3201` <br>\n Flow does not exist: $flowId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_flow:read:admin","contact_center:read:flow:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_flow:read:admin"],"x-granular-scopes":["contact_center:read:flow:admin"]}},"delete":{"tags":["Flows"],"summary":"Delete a flow","description":"Delete a flow.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_flow:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:delete:flow:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"DeleteFlow","parameters":[{"name":"flowId","in":"path","description":"The flow ID.","required":true,"schema":{"type":"string","example":"zwKiV80hQ7CwRg9BEm0Bvw"}}],"responses":{"204":{"description":"**HTTP Status Code:** `204`    \nDelete a flow."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `3209` <br>\n **Message:**  \nCurrent flow is in use for the following areas and can’t be deleted. Please remove the flow from the listed areas before proceeding.\n\n**Errors:**\n\n- **Related Flows** (Flow information associated with the current flow):\n```json\n  \"related_flows\": [\n    {\n      \"flow_name\": \"xxx\",\n      \"flow_id\": \"xxx\"\n    }\n  ]\n  ```\n- **Related Queues** (Queue information associated with the current flow):\n```json\n  \"related_queues\": [\n  {\n    \"queue_name\": \"xxx\",\n    \"queue_id\": \"xxx\"\n  }\n]\n```\n\n- **Related Campaigns** (Queue information associated with the current flow):\n```json\n  \"related_campaigns\": [\n  {\n    \"campaign_id\": \"xxx\",\n    \"campaign_name\": \"xxx\"\n  }\n]\n```\n\n\n\n <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `3201` <br>\n Flow does not exist. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_flow:write:admin","contact_center:delete:flow:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_flow:write:admin"],"x-granular-scopes":["contact_center:delete:flow:admin"]}},"patch":{"tags":["Flows"],"summary":"Edit a flow","description":"Edit a flow's attributes.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_flow:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:update:flow:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"EditFlow","parameters":[{"name":"flowId","in":"path","description":"The flow's ID.","required":true,"schema":{"type":"string","example":"zwKiV80hQ7CwRg9BEm0Bvw"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["flow_version"],"type":"object","properties":{"flow_name":{"type":"string","description":"The flow's name.","example":"my flow name"},"flow_description":{"type":"string","description":"The flow's description.","example":"my_flow_desc"},"flow_version_description":{"type":"string","description":"The flow version description.","example":"my_flow_version_desc"},"flow_version":{"type":"integer","description":"The flow version.","example":1}}}}}},"responses":{"204":{"description":"**HTTP Status Code:** `204`    \nEdit a flow's attributes."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `3202` <br>\n Flow name already exists. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `3201` <br>\n Flow does not exist. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_flow:write:admin","contact_center:update:flow:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_flow:write:admin"],"x-granular-scopes":["contact_center:update:flow:admin"]}}},"/contact_center/flows/{flowId}/entry_points":{"get":{"tags":["Flows"],"summary":"List flow's entry points","description":"Retrieve a list of the entry points bound to the current flow.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_flow:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:flow:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"ListFlowEntryPoints","parameters":[{"name":"flowId","in":"path","description":"The flow ID.","required":true,"schema":{"type":"string","example":"PyKkDGalRY68zZIPwykQ5A"}},{"name":"flow_identifier_type","in":"query","description":"How the path parameter is interpreted. `id` treats it as a system-generated unique identifier. `name` treats it as the resource name.\nWhen using `name`, the resource name must be URL-encoded per RFC 3986.","required":false,"schema":{"type":"string","example":"id","default":"id","enum":["id","name"]}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`     \nList the entry points bound to the current flow","content":{"application/json":{"schema":{"type":"object","properties":{"entry_points":{"maxItems":1000,"type":"array","description":"The entry point list.","items":{"required":["entry_id"],"type":"object","properties":{"entry_id":{"type":"string","description":"The entry's ID.","example":"xxxxxxxxxx"},"entry_number":{"type":"string","description":"The phone number. Only supports `channel` = voice or `channel` = messaging and `channel_source` = sms.","example":"+1209144732"},"entry_email":{"type":"string","description":"The email address. Only supports `channel_source` = email.","example":"xxx@example.com"},"entry_name":{"type":"string","description":"entry name","example":"test entry"},"entry_number_type":{"type":"integer","description":"Only supports `channel_source` = voice or sms.\n2- Toll-free.\n3- Virtual.\n5- Mobile.","example":2,"enum":[2,3,5]},"entry_number_country_code":{"type":"string","description":"**Note** \nNumber country. Only supports `channel` = voice or `channel` = messaging and `channel_source` = sms.\n\nSee [Country Abbreviations](/docs/api/references/abbreviations/#countries) for more details.","example":"US"},"entry_number_area_code":{"type":"string","description":"The number's area code. Only supports `channel` = voice or `channel` = messaging and `channel_source` = sms.","example":"209"},"entry_language":{"type":"string","description":" **Only supports `channel` = voice**\nThe language you choose sets the engagement's language and which language based assets are used.\n**Channel limitation** - This field is only needed when `channel` = voice.\n**Default value** - `en_US`\n**Language List**\n| Language                  | Value    |\n|---------------------------|----------|\n| Chinese (Simplified)      | zh-CN    |\n| Chinese (Traditional)     | zh-TW    |\n| Chinese Cantonese         | yue-CN   |\n| Chinese Mandarin          | cmn-CN   |\n| Danish (Denmark)          | da-DK    |\n| Dutch (Netherlands)       | nl-NL    |\n| English (Australia)       | en-AU    |\n| English (New Zealand)     | en-NZ    |\n| English (UK)              | en-GB    |\n| English (US)              | en-US    |\n| French (Canada)           | fr-CA    |\n| French (France)           | fr-FR    |\n| German (Germany)          | de-DE    |\n| Italian (Italy)           | it-IT    |\n| Japanese (Japan)          | ja-JP    |\n| Korean (Korea)            | ko-KR    |\n| Polish (Poland)           | pl-PL    |\n| Portuguese (Brazil)       | pt-BR    |\n| Portuguese (Portugal)     | pt-PT    |\n| Romanian (Romania)        | ro-RO    |\n| Russian (Russia)          | ru-RU    |\n| Spanish (European)        | es-ES    |\n| Spanish (Mexico)          | es-MX    |\n| Spanish (US)              | es-US    |\n| Swedish (Sweden)          | sv-SE    |\n| Turkish (Turkey)          | tr-TR    |\n","example":"en-US"},"customer_identity_source":{"type":"string","description":"Which email header the Contact Center uses to identify the customer for an inbound email engagement at this email entry point.\n\nThis field is only applicable to the **Email** channel.\n\n- `from` - Use the inbound email `From` header as the customer identity.\n- `reply_to` - Prefer the inbound email `Reply-To` header as the customer identity. If the `Reply-To` header is missing, the system falls back to using the `From` header.","example":"from","default":"from","enum":["from","reply_to"]}},"description":"Flow entry points."}},"enable_detect_language":{"type":"boolean","description":"**Channel limitation** - This field is only required when `channel` = email.\n**Default value** = `false`\n**Note** - The detected language will automatically set the global variable `engagement language`.\n","example":true},"channel":{"type":"string","description":"The flow's channel.","example":"messaging","enum":["voice","video","messaging","email","work_item"]},"channel_source":{"type":"string","description":"The channel's source.\n`in_app_chat` - Only applies to messaging channel.\n`web_chat` - Only applies to messaging channel.\n`sms` - Only applies to messaging channel.\n`team_chat` - Only applies to messaging channel.\n`instagram` - Only applies to messaging channel.\n`facebook_messenger` - Only applies to messaging channel.\n`whatsapp` - Only applies to messaging channel.\n`web_chat` - Only applies to messaging channel.\n`email_address` - Only applies to email channel.\n`video` - Only applies to video channel.\n`voice` - Only applies to voice channel.\n`api` - Only applies to work_item channel.\n","example":"web_chat","enum":["sms","web_chat","in_app_chat","team_chat","email_address","instagram","facebook_messenger","whatsapp","api"]}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `3201` <br>\n Flow does not exist. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_flow:read:admin","contact_center:read:flow:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_flow:read:admin"],"x-granular-scopes":["contact_center:read:flow:admin"]}},"post":{"tags":["Flows"],"summary":"Add flow entry points","description":"Add entry points to a flow.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_flow:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:write:flow:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"AddFlowEntryPoints","parameters":[{"name":"flowId","in":"path","description":"The flow's ID.","required":true,"schema":{"type":"string","example":"zwKiV80hQ7CwRg9BEm0Bvw"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"entry_points":{"maxItems":200,"type":"array","description":"The entry ID list.","items":{"required":["entry_id"],"type":"object","properties":{"entry_id":{"type":"string","description":"Identifier for the entry point. For voice and SMS flows you may pass either the phone number ID or the phone number in E.164 format such as +17083362211. For chat-based flows pass the channel-specific identifier.","example":"Nn3aO8lOSm6aYYW6l8brSQ"},"entry_language":{"type":"string","description":"**Channel Limitation*- only channel=voice need this field.\nDefault value - `en_US`\n**Language list** - \n\n\n\n| Language                  | Value    |\n|---------------------------|----------|\n| Chinese (Simplified)      | zh-CN    |\n| Chinese (Traditional)     | zh-TW    |\n| Chinese Cantonese         | yue-CN   |\n| Chinese Mandarin          | cmn-CN   |\n| Danish (Denmark)          | da-DK    |\n| Dutch (Netherlands)       | nl-NL    |\n| English (Australia)       | en-AU    |\n| English (New Zealand)     | en-NZ    |\n| English (UK)              | en-GB    |\n| English (US)              | en-US    |\n| French (Canada)           | fr-CA    |\n| French (France)           | fr-FR    |\n| German (Germany)          | de-DE    |\n| Italian (Italy)           | it-IT    |\n| Japanese (Japan)          | ja-JP    |\n| Korean (Korea)            | ko-KR    |\n| Polish (Poland)           | pl-PL    |\n| Portuguese (Brazil)       | pt-BR    |\n| Portuguese (Portugal)     | pt-PT    |\n| Romanian (Romania)        | ro-RO    |\n| Russian (Russia)          | ru-RU    |\n| Spanish (European)        | es-ES    |\n| Spanish (Mexico)          | es-MX    |\n| Spanish (US)              | es-US    |\n| Swedish (Sweden)          | sv-SE    |\n| Turkish (Turkey)          | tr-TR    |\n","example":"en-US"},"customer_identity_source":{"type":"string","description":"Determines which email header Contact Center uses to identify the customer for an inbound email engagement at this email entry point.  \nThis field is only applicable to the **Email** channel.\n\n- `from` - Use the inbound email `From` header as the customer identity.\n- `reply_to` - Prefer the inbound email `Reply-To` header as the customer identity. If the `Reply-To` header is missing, the system falls back to using the `From` header.","example":"from","default":"from","enum":["from","reply_to"]}}}},"enable_detect_language":{"type":"boolean","description":"**Channel Limitation** - This field is only required when `channel=email`.\n- Default Value- `false`\n**Note** The detected language will automatically set the global variable `engagement language`.\n","example":false}}}}}},"responses":{"201":{"description":"**HTTP Status Code:** `201`    \nFlow entry points added.","content":{"application/json":{"schema":{"required":["channel","channel_source","entry_points"],"type":"object","properties":{"entry_points":{"maxItems":200,"type":"array","items":{"required":["entry_id"],"type":"object","properties":{"entry_id":{"type":"string","description":"The entry ID.","example":"Nn3aO8lOSm6aYYW6l8brSQ"},"entry_language":{"type":"string","description":"This value only returns when `channel` = voice.","example":"en_US"},"customer_identity_source":{"type":"string","description":"Determines which email header Contact Center uses to identify the customer for an inbound email engagement at this email entry point.  \nThis field is only applicable to the **Email channel**.\n\n- **from**: Use the inbound email `From` header as the customer identity.\n- **reply_to**: Prefer the inbound email `Reply-To` header as the customer identity. If the `Reply-To` header is missing, the system falls back to using the `From` header.","example":"from","enum":["from","reply_to"]}}}},"channel_source":{"type":"string","description":"The channel's source.\n- `in_app_chat` - Only applies to messaging channel.\n- `web_chat` - Only applies to messaging channel.\n- `sms` - Only applies to messaging channel.\n- `team_chat` - Only applies to messaging channel.\n- `instagram` - Only applies to messaging channel.\n- `facebook_messenger` - Only applies to messaging channel.\n`whatsapp` - Only applies to messaging channel.\n- `web_chat` - Only applies to messaging channel.\n- `email_address` - Only applies to email channel.\n- `api` - Only applies to work_item channel.\n","example":"web_chat","enum":["sms","web_chat","in_app_chat","team_chat","email","instagram","facebook_messenger","whatsapp","api"]},"channel":{"type":"string","description":"The flow channel.","example":"messaging","enum":["voice","video","messaging","email","work_item"]},"enable_detect_language":{"type":"boolean","description":"This field is meaningful only when `channel` = email.","example":false}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `3208` <br>\n The flow entry point has reached the maximum limit. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `3201` <br>\n Flow does not exist. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_flow:write:admin","contact_center:write:flow:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_flow:write:admin"],"x-granular-scopes":["contact_center:write:flow:admin"]}},"delete":{"tags":["Flows"],"summary":"Remove flow entry points","description":"Remove entry points from a flow.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_flow:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:delete:flow:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"RemoveFlowEntryPoints","parameters":[{"name":"flowId","in":"path","description":"The flow ID.","required":true,"schema":{"type":"string","example":"zwKiV80hQ7CwRg9BEm0Bvw"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"entry_ids":{"maxItems":100,"type":"array","description":"Identifiers for the entry points to remove. For voice and SMS flows each value may be either the phone number ID or the phone number in E.164 format such as +17083362211. For chat-based flows pass the channel-specific identifier.","items":{"type":"string","description":"The entry ID.","example":"zwKiV80hQ7CwRg9BEm0Bvw"}}}}}}},"responses":{"204":{"description":"**HTTP Status Code:** `204`    \nEntry points are deleted"},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n  <br>\n**Error Code:** `124` <br>\n  <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `3201` <br>\n Flow does not exist: $flowId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n  You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_flow:write:admin","contact_center:delete:flow:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_flow:write:admin"],"x-granular-scopes":["contact_center:delete:flow:admin"]}}},"/contact_center/flows/{flowId}/export":{"get":{"tags":["Flows"],"summary":"Export a flow","description":"Export a flow's content as JSON.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_flow:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:flow:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"ExportFlow","parameters":[{"name":"flowId","in":"path","description":"The flow's ID.","required":true,"schema":{"type":"string","example":"zwKiV80hQ7CwRg9BEm0Bvw"}},{"name":"flow_identifier_type","in":"query","description":"How the path parameter is interpreted. `id` treats it as a system-generated unique identifier. `name` treats it as the resource name.\nWhen using `name`, the resource name must be URL-encoded per RFC 3986.","required":false,"schema":{"type":"string","example":"id","default":"id","enum":["id","name"]}},{"name":"flow_version","in":"query","description":"The flow version.","required":true,"schema":{"type":"integer","example":1}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`    Export flow as JSON. You will get a downloadable file."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `3201` <br>\n Flow does not exist: $flowId $flowVersion. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n "},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_flow:read:admin","contact_center:read:flow:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_flow:read:admin"],"x-granular-scopes":["contact_center:read:flow:admin"]}}},"/contact_center/flows/{flowId}/publish":{"put":{"tags":["Flows"],"summary":"Publish a flow","description":"Publish a flow version. Any other published version of the flow will be replaced with the one specified in this request.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_flow:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:update:flow:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"PublishFlow","parameters":[{"name":"flowId","in":"path","description":"The flow ID.","required":true,"schema":{"type":"string","example":"zwKiV80hQ7CwRg9BEm0Bvw"}},{"name":"flow_version","in":"query","description":"flow version","required":false,"schema":{"type":"integer","example":1}}],"responses":{"204":{"description":"**HTTP Status Code:** `204`  Publish a flow."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `3201` <br>\n Flow does not exist. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_flow:write:admin","contact_center:update:flow:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_flow:write:admin"],"x-granular-scopes":["contact_center:update:flow:admin"]}}},"/contact_center/flows_entry_points":{"get":{"tags":["Flows"],"summary":"List entry points","description":"Retrieve a list of entry points.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_flow:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:flow:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"ListentryPoints","parameters":[{"name":"channel","in":"query","description":"The flow's channel.","required":true,"schema":{"type":"string","example":"messaging","enum":["voice","video","messaging","email"]}},{"name":"channel_source","in":"query","description":"The channel's source.\n`in_app_chat` - Only applies to messaging channel.\n`web_chat` - Only applies to messaging channel.\n`sms` - Only applies to messaging channel.\n`team_chat` - Only applies to messaging channel.\n`instagram` - Only applies to messaging channel.\n`facebook_messenger` - Only applies to messaging channel.\n`whatsapp` - Only applies to messaging channel.\n`web_chat` - Only applies to messaging channel.\n`email_address` - Only applies to email channel.\n`API` - Only applies to work_item channel.\n","required":false,"schema":{"type":"string","example":"web_chat","enum":["sms","web_chat","in_app_chat","team_chat","instagram","facebook_messenger","whatsapp","email_address"]}},{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of items returned per page.","required":false,"schema":{"maximum":300,"type":"integer","format":"int32","example":30,"default":30}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`     \nList current channel available entry id list","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"maxLength":100,"type":"string","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":300,"minimum":1,"type":"integer","description":"The number of records returned within a single API call.","example":30,"default":30},"total_records":{"minimum":0,"type":"integer","description":"The total number of all the records available across pages.","example":10},"entry_points":{"type":"array","description":"The entry point list.","items":{"type":"object","properties":{"entry_id":{"type":"string","description":"The entry ID.","example":"rDjD-6bvTKyvc7jWuKJOxg"},"entry_number":{"type":"string","description":"**Note**  \nPhone number only supports `channel = voice` or `channel = messaging` with `channel_source = sms`.\n","example":"+1209144732"},"entry_name":{"type":"string","description":"The entry name.","example":"test entry"},"entry_email":{"type":"string","description":"Email address. Only supported when `channel = email`.","example":"xxx@example.com"},"entry_number_type":{"type":"integer","description":"**Note** Only supports `channel = voice` or `channel = messaging & channel_source = sms`\n\nSupported number types\n Toll-Free  \n Virtual  \n Mobile\n","example":2,"enum":[2,3,5]},"entry_number_country_code":{"type":"string","description":"**Note**  Number country only supports `channel = voice` or `channel = messaging & channel_source = sms`.\n\nSee [Zoom API Country Abbreviations](/docs/api/references/abbreviations/#countries) for more details.\n","example":"US"},"entry_number_area_code":{"type":"string","description":"The number's area code.","example":"209"},"channel":{"type":"string","description":"The flow's channel.","example":"messaging","enum":["voice","video","messaging","email","work_item"]},"channel_source":{"type":"string","description":"The channel's source.\n\n- `in_app_chat` - Only applies to the messaging channel.  \n- `web_chat` - Only applies to the messaging channel.  \n- `sms` - Only applies to **messaging** channel  \n- `team_chat` – Only applies to **messaging** channel  \n- `instagram` – Only applies to **messaging** channel  \n- `facebook_messenger` – Only applies to **messaging** channel  \n- `whatsapp` – Only applies to **messaging** channel  \n- `email_address` – Only applies to **email** channel  \n- `api` - Only applies to work_item channel.\n","example":"web_chat","enum":["sms","web_chat","in_app_chat","team_chat","email_address","instagram","facebook_messenger","whatsapp","api"]}}}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `3210` <br>\n Channel or `channel_source` is illegal. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n "},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_flow:read:admin","contact_center:read:flow:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_flow:read:admin"],"x-granular-scopes":["contact_center:read:flow:admin"]}}},"/contact_center/engagements/{engagementId}/follow_up_tasks":{"get":{"tags":["Follow-up Tasks"],"summary":"List engagement follow-up tasks","description":"Returns a list of follow-up tasks under an engagement.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_follow_up_task:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:list_follow_up_tasks:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"engagementFollowUpTasksBatchList","parameters":[{"name":"engagementId","in":"path","description":"The engagement event's unique ID.","required":true,"schema":{"type":"string","example":"Xh79Eq6gQhy8I1vM-r8P-w"}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`\n\nEngagement follow-up task list returned","content":{"application/json":{"schema":{"type":"object","properties":{"follow_up_tasks":{"maxItems":100,"type":"array","description":"Information about the follow-up tasks.","items":{"type":"object","properties":{"task_id":{"type":"string","description":"The follow-up task's unique ID.","example":"W_VATTk_Q5aW6z5rZtBxAQ"},"engagement_id":{"type":"string","description":"The engagement event's unique ID.","example":"Xh79Eq6gQhy8I1vM-r8P-w"},"content":{"maxLength":5000,"minLength":1,"type":"string","description":"The follow-up task's content.","example":"The agent will check the customer's order status and provide an update."},"user_id":{"type":"string","description":"The ID of the user who created the task.","example":"DLv4511QThOGTMTWHn7oGw"},"create_time":{"type":"string","description":"The follow-up task's creation time.","example":"2022-05-23T14:15:57Z"},"update_time":{"type":"string","description":"The follow-up task's last modification time.","example":"2022-05-23T14:15:57Z"}}}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_follow_up_task:read:admin","contact_center:read:list_follow_up_tasks:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_follow_up_task:read:admin"],"x-granular-scopes":["contact_center:read:list_follow_up_tasks:admin"]}}},"/contact_center/engagements/{engagementId}/follow_up_tasks/{taskId}":{"get":{"tags":["Follow-up Tasks"],"summary":"Get a follow-up task","description":"Returns a single follow-up task by engagement and task ID.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_follow_up_task:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:follow_up_task:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"engagementFollowUpTaskGet","parameters":[{"name":"engagementId","in":"path","description":"The engagement event's unique ID.","required":true,"schema":{"type":"string","example":"Xh79Eq6gQhy8I1vM-r8P-w"}},{"name":"taskId","in":"path","description":"The follow-up task's unique ID.","required":true,"schema":{"type":"string","example":"W_VATTk_Q5aW6z5rZtBxAQ"}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`\n\nFollow-up task returned.","content":{"application/json":{"schema":{"required":["content","create_time","engagement_id","task_id","update_time"],"type":"object","properties":{"task_id":{"type":"string","description":"The follow-up task's unique ID.","example":"W_VATTk_Q5aW6z5rZtBxAQ"},"engagement_id":{"type":"string","description":"The engagement event's unique ID.","example":"Xh79Eq6gQhy8I1vM-r8P-w"},"content":{"maxLength":5000,"minLength":1,"type":"string","description":"The follow-up task's content.","example":"The agent will check the customer's order status and provide an update."},"user_id":{"type":"string","description":"The ID of the user who created the task.","example":"DLv4511QThOGTMTWHn7oGw"},"create_time":{"type":"string","description":"The follow-up task's creation time.","example":"2022-05-23T14:15:57Z"},"update_time":{"type":"string","description":"The follow-up task's last modification time.","example":"2022-05-23T14:15:57Z"}}}}}},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `13002` <br>\n Follow-up task does not exist: $taskId <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_follow_up_task:read:admin","contact_center:read:follow_up_task:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_follow_up_task:read:admin"],"x-granular-scopes":["contact_center:read:follow_up_task:admin"]}},"patch":{"tags":["Follow-up Tasks"],"summary":"Update a follow-up task","description":"Updates a single follow-up task.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_follow_up_task:write`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:update:follow_up_task`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"engagementFollowUpTaskPatch","parameters":[{"name":"engagementId","in":"path","description":"The engagement event's unique ID. This must match the task's engagement.","required":true,"schema":{"type":"string","example":"Xh79Eq6gQhy8I1vM-r8P-w"}},{"name":"taskId","in":"path","description":"The follow-up task's unique ID.","required":true,"schema":{"type":"string","example":"W_VATTk_Q5aW6z5rZtBxAQ"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["content"],"type":"object","properties":{"content":{"maxLength":5000,"minLength":1,"type":"string","description":"The follow-up task's content.","example":"The agent will check the customer's order status and provide an update."}}}}}},"responses":{"204":{"description":"**HTTP Status Code:** `204`   \n \nFollow-up task updated"},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `13003` <br>\n Follow-up task can not be updated. You can only update the task that belongs to you. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `13002` <br>\n Follow-up task does not exist: $taskId <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_follow_up_task:write","contact_center:update:follow_up_task"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_follow_up_task:write"],"x-granular-scopes":["contact_center:update:follow_up_task"]}}},"/contact_center/inboxes":{"get":{"tags":["Inboxes"],"summary":"List inboxes","description":"Return a list of inboxes. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_inbox:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:list_inboxes:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"listInbox","parameters":[{"name":"page_size","in":"query","description":"The number of records returned in a single API call.","required":false,"schema":{"maximum":300,"type":"integer","format":"int32","example":30,"default":30}},{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \nInbox list returned.","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"maxLength":100,"type":"string","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":300,"type":"integer","description":"The number of records returned in a single API call.","example":30,"default":30},"total_records":{"minimum":0,"type":"integer","description":"The total number of all records available across pages.","example":10},"inboxes":{"type":"array","description":"Information about the notes.","items":{"type":"object","properties":{"inbox_id":{"type":"string","description":"The inbox's unique ID.","example":"W_VATTk_Q5aW6z5rZtBxAQ"},"inbox_name":{"type":"string","description":"The inbox's name.","example":"example"},"inbox_type":{"type":"string","description":"The inbox type.\n* voicemail","example":"voicemail","enum":["voicemail"]},"access_user_count":{"type":"integer","description":"The inbox access user count.","example":5},"access_queue_count":{"type":"integer","description":"The inbox access queue count.","example":5},"last_modified_time":{"type":"string","description":"The date and time when this data was last modified.","format":"date-time","example":"2022-02-15T09:27:15Z"},"modified_by":{"type":"string","description":"The ID of the user that last modified this data.","example":"IGTRVt3gQ2i-WjoUIjeZxw"}},"description":"Information about the inbox."}}}}}}},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_inbox:read:admin","contact_center:read:list_inboxes:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_inbox:read:admin"],"x-granular-scopes":["contact_center:read:list_inboxes:admin"]}},"post":{"tags":["Inboxes"],"summary":"Create an inbox","description":"Create a new inbox. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_inbox:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:write:inbox:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"inboxCreate","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"inbox_name":{"type":"string","description":"The inbox's name.","example":"example"},"inbox_description":{"type":"string","description":"The inbox's description.","example":"This is a inbox."},"inbox_type":{"type":"string","description":"The inbox type.\n* voicemail","example":"voicemail","enum":["voicemail"]},"inbox_content_storage_location":{"type":"string","description":"The inbox content's physical storage location, using a two-letter country code. \n\n US: `United States`\n\nAU: `Australia`\n\n\nBR: `Brazil`\n\nCA: `Canada`\n\nDE: `Germany`\n\nJP: `Japan`\n\nSG: `Singapore`","example":"US","enum":["US","AU","BR","CA","DE","JP","SG"]},"voicemail":{"type":"object","properties":{"soft_delete":{"type":"boolean","description":"Enable soft deletion for the inbox.","example":true},"soft_delete_days_limit":{"type":"integer","description":"When a voicemail is deleted, it is initially soft-deleted and can be restored within the admin-specified timeframe, which is up to 30 days. After that time, the voicemail is permanently deleted.","example":20},"voicemail_time_limit":{"type":"integer","description":"The voicemail time limit in minutes.","example":5},"delete_voicemail_days_limit":{"type":"integer","description":"Delete voicemail after a specified number of days.","example":30},"voicemail_transcription":{"type":"boolean","description":"The voicemail enable transcription.","example":false},"voicemail_notification_by_email":{"type":"object","properties":{"enable":{"type":"boolean","description":"Enable voicemail notification by email.","example":false},"include_voicemail_file":{"type":"boolean","description":"Whether to include voicemail file.","example":false},"include_voicemail_transcription":{"type":"boolean","description":"Whether to include voicemail transcription.","example":false},"forward_voicemail_to_emails":{"type":"boolean","description":"Enable forward voicemail to emails.","example":false},"emails":{"maxItems":10,"type":"array","description":"Forward voicemail to an email list.","items":{"type":"string","example":"jchill@example.com"}}},"description":"The voicemail notification by email."}},"description":"The voicemail settings."}}}}}},"responses":{"201":{"description":"**HTTP Status Code:** `201`   \n \nInbox created.","content":{"application/json":{"schema":{"type":"object","properties":{"inbox_id":{"type":"string","description":"The inbox's unique ID.","example":"W_VATTk_Q5aW6z5rZtBxAQ"},"inbox_name":{"type":"string","description":"The inbox's name.","example":"example"},"inbox_description":{"type":"string","description":"The inbox's description.","example":"This is a inbox."},"inbox_type":{"type":"string","description":"The inbox type.\n* voicemail","example":"voicemail","enum":["voicemail"]},"inbox_content_storage_location":{"type":"string","description":"The inbox content's physical storage location, using a two-letter country code. \n\n US: `United States`\n\nAU: `Australia`\n\n\nBR: `Brazil`\n\nCA: `Canada`\n\nDE: `Germany`\n\nJP: `Japan`\n\nSG: `Singapore`","example":"US","enum":["US","AU","BR","CA","DE","JP","SG"]},"last_modified_time":{"type":"string","description":"The date and time when this data was last modified.","format":"date-time","example":"2022-02-15T09:27:15Z"},"modified_by":{"type":"string","description":"The ID of the user that last modified this data.","example":"IGTRVt3gQ2i-WjoUIjeZxw"},"voicemail":{"type":"object","properties":{"soft_delete":{"type":"boolean","description":"Enable soft deletion for the inbox.","example":true},"soft_delete_days_limit":{"type":"integer","description":"When a voicemail is deleted, it is initially soft-deleted and can be restored within the admin-specified timeframe, which is up to 30 days. After that time, the voicemail is permanently deleted.","example":20},"voicemail_time_limit":{"type":"integer","description":"The voicemail time limit in minutes.","example":5},"delete_voicemail_days_limit":{"type":"integer","description":"Delete voicemail after a specified number of days.","example":30},"voicemail_transcription":{"type":"boolean","description":"Enable voicemail transcription.","example":false},"voicemail_notification_by_email":{"type":"object","properties":{"enable":{"type":"boolean","description":"The voicemail enable notification by email.","example":false},"include_voicemail_file":{"type":"boolean","description":"Whether to include voicemail file.","example":false},"include_voicemail_transcription":{"type":"boolean","description":"Whether to include voicemail transcription.","example":false},"forward_voicemail_to_emails":{"type":"boolean","description":"Enable forwarding voicemail to emails.","example":false},"emails":{"maxItems":10,"type":"array","description":"Forward voicemail to an email list.","items":{"type":"string","example":"jchill@example.com"}}},"description":"The voicemail notification by email."},"voicemail_auto_assignment":{"type":"object","properties":{"enable":{"type":"boolean","description":"Enable voicemail auto assignment.","example":false},"voicemail_auto_assignment_type":{"type":"integer","description":"Voicemail auto assignment type. The value can only be one of these values.\n*1 - user\n*2 - access list\n*3 - queue\n*4 - team\n*5 - rotation","format":"int32","example":1,"enum":[1,2,3,4,5]},"voicemail_auto_assignment_during_active_work_session":{"type":"integer","description":"The person assigned the voicemail auto assignment is during an active work session.The value can only be `0` inactive or `1` active. This field is only effective when `voicemail_auto_assignment_type` is `2`, `3`, `4`, or `5`.","format":"int32","example":0,"enum":[0,1]},"voicemail_auto_assignment_content_id":{"type":"string","description":"The voicemail auto assignment operation object's ID. Can be `userId`, `queueId` or `teamId`. This field is only effective when `voicemail_auto_assignment_type` is `1`, `3`, or `4`.","example":"testUserId"},"voicemail_auto_assignment_routine_profile_id":{"type":"string","description":"Routine profile ID used by voicemail auto assignment. This field only takes effect when `voicemail_auto_assignment_type` is `2`, `3`, `4,` or `5`, and the user has set a routine profile.","example":"testRoutineProfileId"}},"description":"Voicemail auto assignment settings."},"voicemail_send_reminders_for_unresolved":{"type":"object","properties":{"enable":{"type":"boolean","description":"Enable a reminder policy for unresolved voicemails.","example":false},"send_alert_for_unresolved_voicemail_timeout":{"maximum":10080,"minimum":1,"type":"integer","description":"Timeout for unresolved voicemail reminders, in minutes. The range is from 1 to 10080.","example":30}},"description":"Reminder policy for unresolved voicemails."}},"description":"The voicemail settings."}},"description":"Information about the inbox."}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n "},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_inbox:write:admin","contact_center:write:inbox:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_inbox:write:admin"],"x-granular-scopes":["contact_center:write:inbox:admin"]}},"delete":{"tags":["Inboxes"],"summary":"Delete inboxes","description":"Delete one or more inboxes. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_inbox:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:delete:inbox:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"inboxesDelete","parameters":[{"name":"inbox_ids","in":"query","description":"List all inboxes to delete.","required":false,"schema":{"maxItems":10,"type":"array","items":{"type":"string","example":"W_VATTk_Q5aW6z5rZtBxAQ"}}},{"name":"delete_all_messages_and_inboxes","in":"query","description":"Delete all inboxes and messages provided.","required":false,"schema":{"type":"boolean","example":true}},{"name":"move_to_inbox_id","in":"query","description":"The ID of the inbox where messages from deleted inbox(es) will be moved.","required":false,"schema":{"type":"string","example":"w3v6brV3T-6MK1if1nw8PA"}}],"responses":{"204":{"description":"**HTTP Status Code:** `204`   \n \nInboxes deleted."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `3001` <br>\n Inbox does not exist: $inboxId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_inbox:write:admin","contact_center:delete:inbox:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_inbox:write:admin"],"x-granular-scopes":["contact_center:delete:inbox:admin"]}}},"/contact_center/inboxes/messages":{"get":{"tags":["Inboxes"],"summary":"List an account's inbox messages","description":"Return all messages in an inbox. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_inbox:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:inbox_messages:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"listInboxesMessages","parameters":[{"name":"queue_ids","in":"query","description":"The queue's IDs. The maximum value is 10 ","required":false,"deprecated":true,"schema":{"type":"array","items":{"type":"string","example":"ghyetrjj_2342353rsgfkdjfl"}}},{"name":"cc_queue_ids","in":"query","description":"The Contact Center queue's IDs. The maximum value is 10.","required":false,"schema":{"type":"array","items":{"type":"string","example":"ghyetrjj_2342353rsgfkdjfl"}}},{"name":"inbox_id","in":"query","description":"The inbox's ID.","required":false,"schema":{"type":"string","example":"W_VATTk_Q5aW6z5rZtBxAQ"}},{"name":"flow_id","in":"query","description":"The flow's ID.","required":false,"schema":{"type":"string","example":"ghyetrjj_2342353rsgfkdjfl"}},{"name":"minimum_duration","in":"query","description":"The minimum duration.","required":false,"schema":{"type":"integer","example":10}},{"name":"maximum_duration","in":"query","description":"The maximum duration.","required":false,"schema":{"type":"integer","example":50}},{"name":"message_type","in":"query","description":"The inbox message's type.\n* voicemail","required":false,"schema":{"type":"string","example":"voicemail","enum":["voicemail"]}},{"name":"from","in":"query","description":"The start time and date in **yyyy-mm-dd** or **yyyy-MM-dd'T'HH:mm:ss'Z'** format. The date range defined by the `from` and `to` parameters should be a month maximum, as the response only includes one month's worth of data at once. If unspecified, this parameter returns data from the past 30 days.","required":false,"schema":{"type":"string","format":"date","example":"2022-05-01"}},{"name":"to","in":"query","description":"**Required** only when specifying the `from` parameter. The end time and date in **yyyy-mm-dd** or **yyyy-MM-dd'T'HH:mm:ss'Z'** format, the same format as the `from` parameter.","required":false,"schema":{"type":"string","format":"date","example":"2022-05-31"}},{"name":"engagement_id","in":"query","description":"Filter inbox messages by engagement ID.","required":false,"schema":{"type":"string","example":"1234"}},{"name":"consumer_number","in":"query","description":"Filter inbox messages by consumer number.","required":false,"schema":{"type":"string","example":"1234"}},{"name":"status","in":"query","description":"Filter inbox messages by status.","required":false,"schema":{"type":"string","example":"normal","enum":["normal","deleted"]}},{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of items returned per page.","required":false,"schema":{"maximum":300,"type":"integer","format":"int32","example":30,"default":30}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \nInbox messages returned.","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"type":"string","description":"Use the next page token to paginate through large result sets. A next page token returns when the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":300,"type":"integer","description":"The number of records returned in a single API call.","example":30,"default":30},"total_records":{"type":"integer","description":"The total number of all the records available across pages.","example":1},"messages":{"type":"array","description":"Information about the inbox message.","items":{"type":"object","properties":{"message_id":{"type":"string","description":"The inbox message's ID.","example":"4Q0ILNMfTA2nJolNxhg0Rw"},"inbox_id":{"type":"string","description":"The inbox's unique ID.","example":"W_VATTk_Q5aW6z5rZtBxAQ"},"inbox_name":{"type":"string","description":"The inbox's name.","example":"example"},"engagement_id":{"type":"string","description":"The engagement's ID.","example":"xRk0eHNNTGygFDPrWqR9FA"},"created_at":{"type":"string","description":"The inbox message's creation time.","format":"date-time","example":"2022-05-23T14:15:57Z"},"flow_id":{"type":"string","description":"The flow's ID.","example":"1wGgU3HQR8u1wWjPFNXOyA"},"flow_name":{"type":"string","description":"The flow's name.","example":"inbox_message_flow"},"queue_id":{"type":"string","description":"The queue ID of the inbox message routed by the queue.","example":"ZWQ84A20CBBA11AFA5BC55079D5A12A28D7","deprecated":true},"cci_queue_id":{"type":"string","description":"The Contact Center queue ID of the inbox message routed by the queue.","example":"LB937Z8oQP2mJxeNj3GxJQ"},"queue_name":{"type":"string","description":"The queue name of the inbox message routed by the queue.","example":"inbox_message_queue"},"message_type":{"type":"string","description":"The inbox message's type.\n* voicemail","example":"voicemail","enum":["voicemail"]},"download_url":{"type":"string","description":"The URL to download the inbox message. For security purposes, you **must** provide an OAuth access token in the authorization header to download the inbox message file using this URL. Example:\n```curl --request GET \n  --url {download_url} \n  --header 'authorization: Bearer {access_token}' \n  --header 'content-type: application/json'\n```","example":"https://api.zoom.us/v2/contact_center/inbox/message/download/4Q0ILNMfTA2nJolNxhg0Rw?type=voicemail"},"playback_url":{"type":"string","description":"The URL to playback the inbox message. For security purposes, you  **must** provide an OAuth access token in the authorization header to playback the inbox message file using this URL. Example:\n```curl --request GET \n  --url {playback_url} \n  --header 'authorization: Bearer {access_token}' \n  --header 'content-type: application/json'\n```","example":"https://api.zoom.us/v2/contact_center/inbox/message/playback/4Q0ILNMfTA2nJolNxhg0Rw?type=voicemail"},"transcript_url":{"type":"string","description":"The URL to download the inbox message transcript. For security purposes, you **must** provide an OAuth access token in the authorization header to download the recording transcript file using this URL. Example:\n```curl --request GET \n  --url {transcript_url} \n  --header 'authorization: Bearer {access_token}' \n  --header 'content-type: application/json'\n```","example":"https://api.zoom.us/v2/contact_center/inbox/message/transcripts/download/4Q0ILNMfTA2nJolNxhg0Rw"},"message_duration":{"type":"integer","description":"The inbox message's duration in seconds.","example":150},"consumer_number":{"type":"string","description":"The consumer's phone number.","example":"+12058945728"},"consumer_id":{"type":"string","description":"The consumer's ID.","example":"fsdfere78fserhgfyjb"},"consumer_display_name":{"type":"string","description":"The consumer's name.","example":"Jill"},"status":{"type":"string","description":"The inbox message soft delete flag. \n* normal \n* deleted","example":"normal","enum":["normal","deleted"]}},"description":"Information about the inbox message."}}}}}}},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_inbox:read:admin","contact_center:read:inbox_messages:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_inbox:read:admin"],"x-granular-scopes":["contact_center:read:inbox_messages:admin"]}},"delete":{"tags":["Inboxes"],"summary":"Delete inbox messages","description":"Delete messages. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_inbox:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:delete:inbox_messages:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"inboxesMessagesDelete","parameters":[{"name":"delete_all_messages","in":"query","description":"Whether or not to delete all inbox messages.\n\n `true` - Delete all inbox messages related to the filtered queues or flows. \n\n `false` - No inbox message is deleted.","required":false,"schema":{"type":"boolean","example":true}},{"name":"queue_ids","in":"query","description":"The queue's IDs. The maximum value is 10.","required":false,"deprecated":true,"schema":{"maxItems":10,"type":"array","items":{"type":"string","example":"ghyetrjj_2342353rsgfkdjfl"}}},{"name":"cc_queue_ids","in":"query","description":"The Contact Center queue's IDs. The maximum value is 10.","required":false,"schema":{"maxItems":10,"type":"array","items":{"type":"string","example":"ghyetrjj_2342353rsgfkdjfl"}}},{"name":"flow_ids","in":"query","description":"List of flow's IDs, up to 10 separate IDs.","required":false,"schema":{"maxItems":10,"type":"array","items":{"type":"string","example":"ghyetrjj_2342353rsgfkdjfl"}}}],"responses":{"204":{"description":"**HTTP Status Code:** `204`   \n \nInbox messages deleted."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_inbox:write:admin","contact_center:delete:inbox_messages:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_inbox:write:admin"],"x-granular-scopes":["contact_center:delete:inbox_messages:admin"]}}},"/contact_center/inboxes/{inboxId}":{"get":{"tags":["Inboxes"],"summary":"Get an inbox","description":"Retrieve an inbox.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_inbox:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:inbox:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"getInbox","parameters":[{"name":"inboxId","in":"path","description":"The inbox's ID.","required":true,"schema":{"type":"string","example":"W_VATTk_Q5aW6z5rZtBxAQ"}},{"name":"inbox_identifier_type","in":"query","description":"How the path parameter is interpreted. `id` treats it as a system-generated unique identifier. `name` treats it as the resource name.\nWhen using `name`, the resource name must be URL-encoded per RFC 3986.","required":false,"schema":{"type":"string","example":"id","default":"id","enum":["id","name"]}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n\nInbox returned.","content":{"application/json":{"schema":{"type":"object","properties":{"inbox_id":{"type":"string","description":"The inbox's unique ID.","example":"W_VATTk_Q5aW6z5rZtBxAQ"},"inbox_name":{"type":"string","description":"The inbox's name.","example":"example"},"inbox_description":{"type":"string","description":"The inbox's description.","example":"This is a inbox."},"inbox_type":{"type":"string","description":"The inbox type.","example":"voicemail","enum":["voicemail"]},"inbox_content_storage_location":{"type":"string","description":"The inbox content's physical storage location, using a two-letter country code. \n\n US: `United States`\n\nAU: `Australia`\n\n\nBR: `Brazil`\n\nCA: `Canada`\n\nDE: `Germany`\n\nJP: `Japan`\n\nSG: `Singapore`","example":"US","enum":["US","AU","BR","CA","DE","JP","SG"]},"last_modified_time":{"type":"string","description":"The date and time when this data was last modified.","format":"date-time","example":"2022-02-15T09:27:15Z"},"modified_by":{"type":"string","description":"The ID of last user to modify the inbox.","example":"IGTRVt3gQ2i-WjoUIjeZxw"},"voicemail":{"type":"object","properties":{"soft_delete":{"type":"boolean","description":"Enable soft deletion for the inbox.","example":true},"soft_delete_days_limit":{"type":"integer","description":"When a voicemail is deleted, it is initially soft-deleted and can be restored within the admin-specified timeframe, which is up to 30 days. After that time, the voicemail is permanently deleted.","example":20},"voicemail_time_limit":{"type":"integer","description":"The voicemail time limit in minutes.","example":5},"delete_voicemail_days_limit":{"type":"integer","description":"Delete voicemail after a specified number of days.","example":30},"voicemail_transcription":{"type":"boolean","description":"Enable voicemail transcription.","example":false},"voicemail_notification_by_email":{"type":"object","properties":{"enable":{"type":"boolean","description":"The voicemail enable notification by email.","example":false},"include_voicemail_file":{"type":"boolean","description":"Whether to include voicemail file.","example":false},"include_voicemail_transcription":{"type":"boolean","description":"Whether to include voicemail transcription.","example":false},"forward_voicemail_to_emails":{"type":"boolean","description":"Enable forwarding voicemail to emails.","example":false},"emails":{"type":"array","description":"Forward voicemail to email list.","items":{"type":"string","example":"jchill@example.com"}}},"description":"The voicemail notification by email."},"greeting_audio_asset_id":{"type":"string","description":"Greeting audio asset ID used for voicemail.","example":"testAssetId"},"voicemail_auto_assignment":{"type":"object","properties":{"enable":{"type":"boolean","description":"Enable voicemail auto assignment.","example":false},"voicemail_auto_assignment_type":{"type":"integer","description":"Voicemail auto assignment type. The value can be any one of these options.\n*1 - user\n*2 - access list\n*3 - queue\n*4 - team\n*5 - rotation","format":"int32","example":1,"enum":[1,2,3,4,5]},"voicemail_auto_assignment_during_active_work_session":{"type":"integer","description":"The person assigned the voicemail auto assignment is during an active work session. The value can only be `0` or `1`, 0 - inactive, 1 - active. This field is only effective when `voicemail_auto_assignment_type` is `2`, `3`, `4`, or `5`.","format":"int32","example":0,"enum":[0,1]},"voicemail_auto_assignment_content_id":{"type":"string","description":"The voicemail auto assignment operation object's ID. Can be `userId`, `queueId`, or `teamId`. This field is only effective when `voicemail_auto_assignment_type` is `1`, `3`, or `4`.","example":"testUserId"},"voicemail_auto_assignment_routine_profile_id":{"type":"string","description":"Routine profile ID used by voicemail auto assignment. This field only takes effect when `voicemail_auto_assignment_type` is `2`, `3`, `4`, or `5`, and the user has set a routine profile.","example":"testRoutineProfileId"}},"description":"Voicemail auto assignment settings."},"voicemail_send_reminders_for_unresolved":{"type":"object","properties":{"enable":{"type":"boolean","description":"Enable a reminder policy for unresolved voicemails.","example":false},"send_alert_for_unresolved_voicemail_timeout":{"maximum":10080,"minimum":1,"type":"integer","description":"Timeout for unresolved voicemail reminders, in minutes. The range is from 1 to 10080.","example":30}},"description":"Reminder policy for unresolved voicemails."}},"description":"The voicemail settings."}},"description":"Information about the inbox."}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `3010` <br>\n More than one matching inbox found. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `3001` <br>\n Inbox does not exist: $inboxId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_inbox:read:admin","contact_center:read:inbox:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_inbox:read:admin"],"x-granular-scopes":["contact_center:read:inbox:admin"]}},"patch":{"tags":["Inboxes"],"summary":"Update an inbox","description":"Update an inbox. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_inbox:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:update:inbox:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"inboxUpdate","parameters":[{"name":"inboxId","in":"path","description":"The inbox's ID.","required":true,"schema":{"type":"string","example":"W_VATTk_Q5aW6z5rZtBxAQ"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"inbox_name":{"type":"string","description":"The inbox's name.","example":"example"},"inbox_description":{"type":"string","description":"The inbox's description.","example":"This is a inbox."},"inbox_content_storage_location":{"type":"string","description":"The inbox content's physical storage location, using a two-letter country code. \n\n US: `United States`\n\nAU: `Australia`\n\n\nBR: `Brazil`\n\nCA: `Canada`\n\nDE: `Germany`\n\nJP: `Japan`\n\nSG: `Singapore`","example":"US","enum":["US","AU","BR","CA","DE","JP","SG"]},"voicemail":{"type":"object","properties":{"soft_delete":{"type":"boolean","description":"Enable soft deletion for the inbox.","example":true},"soft_delete_days_limit":{"type":"integer","description":"When a voicemail is deleted, it is initially soft-deleted and can be restored within the admin-specified timeframe, which is up to 30 days. After that time, the voicemail is permanently deleted.","example":20},"voicemail_time_limit":{"type":"integer","description":"The voicemail time limit in minutes.","example":5},"delete_voicemail_days_limit":{"type":"integer","description":"Delete voicemail after a specified number of days.","example":30},"voicemail_transcription":{"type":"boolean","description":"Enable voicemail transcription.","example":false},"voicemail_notification_by_email":{"type":"object","properties":{"enable":{"type":"boolean","description":"The voicemail enable notification by email.","example":false},"include_voicemail_file":{"type":"boolean","description":"Whether to include voicemail file.","example":false},"include_voicemail_transcription":{"type":"boolean","description":"Whether to include voicemail transcription.","example":false},"forward_voicemail_to_emails":{"type":"boolean","description":"Enable forwarding voicemail to emails.","example":false},"emails":{"maxItems":10,"type":"array","description":"Forward voicemail to email list.","items":{"type":"string","example":"jchill@example.com"}}},"description":"The voicemail notification by email."},"greeting_audio_asset_id":{"type":"string","description":"Greeting audio asset ID used for voicemail.","example":"testAssetId"},"voicemail_auto_assignment":{"type":"object","properties":{"enable":{"type":"boolean","description":"Enable voicemail auto assignment.","example":false},"voicemail_auto_assignment_type":{"type":"integer","description":"Voicemail auto assignment type. The value can only be one of these values.\n*1 - user\n*2 - access list\n*3 - queue\n*4 - team\n*5 - rotation","format":"int32","example":1,"enum":[1,2,3,4,5]},"voicemail_auto_assignment_during_active_work_session":{"type":"integer","description":"The person assigned the voicemail auto assignment is during an active work session.The value can only be `0` inactive or `1` active. This field is only effective when `voicemail_auto_assignment_type` is `2`, `3`, `4`, or `5`.","format":"int32","example":0,"enum":[0,1]},"voicemail_auto_assignment_content_id":{"type":"string","description":"The voicemail auto assignment operation object's ID. Can be `userId`, `queueId` or `teamId`. This field is only effective when `voicemail_auto_assignment_type` is `1`, `3`, or `4`.","example":"testUserId"},"voicemail_auto_assignment_routine_profile_id":{"type":"string","description":"Routine profile ID used by voicemail auto assignment. This field only takes effect when `voicemail_auto_assignment_type` is `2`, `3`, `4,` or `5`, and the user has set a routine profile.","example":"testRoutineProfileId"}},"description":"Voicemail auto assignment settings."},"voicemail_send_reminders_for_unresolved":{"type":"object","properties":{"enable":{"type":"boolean","description":"Enable a reminder policy for unresolved voicemails.","example":false},"send_alert_for_unresolved_voicemail_timeout":{"maximum":10080,"minimum":1,"type":"integer","description":"Timeout for unresolved voicemail reminders, in minutes. The range is from 1 to 10080.","example":30}},"description":"Reminder policy for unresolved voicemails."}},"description":"The voicemail settings."}},"description":"Information about the inbox."}}}},"responses":{"204":{"description":"**HTTP Status Code:** `204`   \n \nInbox updated."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `3001` <br>\n Inbox does not exist: $inboxId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_inbox:write:admin","contact_center:update:inbox:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_inbox:write:admin"],"x-granular-scopes":["contact_center:update:inbox:admin"]}}},"/contact_center/inboxes/{inboxId}/email_notification":{"patch":{"tags":["Inboxes"],"summary":"Update an inbox's email notification setting","description":"Update an inbox's email notification setting for a given user.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_inbox:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:update:inbox:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"Updateaninboxemailnotification","parameters":[{"name":"inboxId","in":"path","description":"The inbox's ID.","required":true,"schema":{"type":"string","example":"W_VATTk_Q5aW6z5rZtBxAQ"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["user_id"],"type":"object","properties":{"user_id":{"maxLength":36,"type":"string","description":"The email, Meetings user ID, or Contact Center id used to identify the user. This value will not be modified.","example":"IGTRVt3gQ2i-WjoUIjeZxw"},"email_notification":{"type":"boolean","description":"Enable email notification. Defaults to `false`.","example":true}},"description":"Information about the inbox email notifictaion."}}}},"responses":{"204":{"description":"**HTTP Status Code:** `204`   \n \nInbox email notifictaion updated."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `3009` <br>\n The voicemail email notification setting for inbox ''{inboxId}'' is locked and cannot be modified. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `3001` <br>\n Inbox does not exist: {inboxId}. <br>\n**Error Code:** `1001` <br>\n User does not exist: {userId}. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_inbox:write:admin","contact_center:update:inbox:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_inbox:write:admin"],"x-granular-scopes":["contact_center:update:inbox:admin"]}}},"/contact_center/inboxes/{inboxId}/email_notifications":{"get":{"tags":["Inboxes"],"summary":"Get an inbox email notification list","description":"Retrieve a list of inbox email notifications.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_inbox:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:inbox:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"Getinboxemailnotificationlist","parameters":[{"name":"inboxId","in":"path","description":"The inbox's ID.","required":true,"schema":{"type":"string","example":"jMsQ1thcQVSvs8EqJ5qYWQ"}},{"name":"inbox_identifier_type","in":"query","description":"How the path parameter is interpreted. `id` treats it as a system-generated unique identifier. `name` treats it as the resource name.\nWhen using `name`, the resource name must be URL-encoded per RFC 3986.","required":false,"schema":{"type":"string","example":"id","default":"id","enum":["id","name"]}},{"name":"page_size","in":"query","description":"The number of records returned in a single API call.","required":false,"schema":{"maximum":300,"type":"integer","format":"int32","example":30,"default":30}},{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \\n \\nInbox email notifictaion settings returned.","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"maxLength":100,"type":"string","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":300,"type":"integer","description":"The number of records returned in a single API call.","example":30,"default":30},"total_records":{"minimum":0,"type":"integer","description":"The total number of all records available across pages.","example":10},"email_notifications":{"type":"array","description":"Information about the inbox email notification settings.","items":{"type":"object","properties":{"user_id":{"maxLength":36,"type":"string","description":"The Meetings user identifier.","example":"IGTRVt3gQ2i-WjoUIjeZxw"},"email_notification":{"type":"boolean","description":"Enable email notification.","example":true},"display_name":{"type":"string","description":"The user's display name.","example":"Jane Doe"},"user_email":{"type":"string","description":"The user's email address.","format":"email","example":"jchill@example.com"}},"description":"Information about the inbox email notification settings."}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `3010` <br>\n More than one matching inbox found. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `3001` <br>\n Inbox does not exist: $inboxId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n  You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_inbox:read:admin","contact_center:read:inbox:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_inbox:read:admin"],"x-granular-scopes":["contact_center:read:inbox:admin"]}}},"/contact_center/inboxes/{inboxId}/messages":{"get":{"tags":["Inboxes"],"summary":"List an inbox's messages","description":"Return a list of all messages in an inbox. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_inbox:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:inbox_messages:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"listInboxMessages","parameters":[{"name":"inboxId","in":"path","description":"The inbox's ID.","required":true,"schema":{"type":"string","example":"W_VATTk_Q5aW6z5rZtBxAQ"}},{"name":"inbox_identifier_type","in":"query","description":"How the path parameter is interpreted. `id` treats it as a system-generated unique identifier. `name` treats it as the resource name.\nWhen using `name`, the resource name must be URL-encoded per RFC 3986.","required":false,"schema":{"type":"string","example":"id","default":"id","enum":["id","name"]}},{"name":"queue_ids","in":"query","description":"The queue's IDs. The maximum value is 10.","required":false,"schema":{"type":"array","items":{"type":"string","example":"ghyetrjj_2342353rsgfkdjfl"}}},{"name":"message_type","in":"query","description":"The inbox message's type.","required":false,"schema":{"type":"string","example":"voicemail","enum":["voicemail"]}},{"name":"flow_id","in":"query","description":"The flow's ID.","required":false,"schema":{"type":"string","example":"ghyetrjj_2342353rsgfkdjfl"}},{"name":"from","in":"query","description":"The start time and date in `yyyy-mm-dd` or `yyyy-MM-dd'T'HH:mm:ss'Z'` format. The date range defined by the `from` and `to` parameters should be a month maximum, as the response only includes one month's worth of data at once. If unspecified, this parameter returns data from the past 30 days.","required":false,"schema":{"type":"string","format":"date","example":"2022-05-01"}},{"name":"to","in":"query","description":"**Required** only when specifying the `from` parameter. The end time and date in `yyyy-mm-dd` or `yyyy-MM-dd'T'HH:mm:ss'Z'` format, the same as the `from` parameter.","required":false,"schema":{"type":"string","format":"date","example":"2022-05-31"}},{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token returns whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of items returned per page.","required":false,"schema":{"maximum":300,"type":"integer","format":"int32","example":30,"default":30}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n\nInbox messages returned.","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"type":"string","description":"Use the next page token to paginate through large result sets. A next page token returns when the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":300,"type":"integer","description":"The number of records returned in a single API call.","example":30,"default":30},"total_records":{"type":"integer","description":"The total number of all the records available across pages.","example":1},"messages":{"type":"array","description":"Information about the inbox message.","items":{"type":"object","properties":{"message_id":{"type":"string","description":"The inbox message's ID.","example":"4Q0ILNMfTA2nJolNxhg0Rw"},"inbox_id":{"type":"string","description":"The inbox's unique ID.","example":"W_VATTk_Q5aW6z5rZtBxAQ"},"inbox_name":{"type":"string","description":"The inbox's name.","example":"example"},"engagement_id":{"type":"string","description":"The engagement's ID.","example":"xRk0eHNNTGygFDPrWqR9FA"},"created_at":{"type":"string","description":"The inbox message's creation time.","format":"date-time","example":"2022-05-23T14:15:57Z"},"flow_id":{"type":"string","description":"The flow's ID.","example":"1wGgU3HQR8u1wWjPFNXOyA"},"flow_name":{"type":"string","description":"The flow's name.","example":"inbox_message_flow"},"queue_id":{"type":"string","description":"The queue ID of the inbox message routed by the queue.","example":"ZWQ84A20CBBA11AFA5BC55079D5A12A28D7"},"queue_name":{"type":"string","description":"The queue name of the inbox message routed by the queue.","example":"inbox_message_queue"},"message_type":{"type":"string","description":"The inbox message's type.","example":"voicemail","enum":["voicemail"]},"download_url":{"type":"string","description":"The URL to download the inbox message. For security purposes, you **must** provide an OAuth access token in the authorization header to download the inbox message file using this URL. Example:\n```curl --request GET \n  --url {download_url} \n  --header 'authorization: Bearer {access_token}' \n  --header 'content-type: application/json'\n```","example":"https://api.zoom.us/v2/contact_center/inbox/message/download/4Q0ILNMfTA2nJolNxhg0Rw?type=voicemail"},"playback_url":{"type":"string","description":"The URL to playback the inbox message. For security purposes, you  **must** provide an OAuth access token in the authorization header to playback the inbox message file using this URL. Example:\n```curl --request GET \n  --url {playback_url} \n  --header 'authorization: Bearer {access_token}' \n  --header 'content-type: application/json'\n```","example":"https://api.zoom.us/v2/contact_center/inbox/message/playback/4Q0ILNMfTA2nJolNxhg0Rw?type=voicemail"},"transcript_url":{"type":"string","description":"The URL to download the inbox message transcript. For security purposes, you **must** provide an OAuth access token in the authorization header to download the recording transcript file using this URL. Example:\n```curl --request GET \n  --url {transcript_url} \n  --header 'authorization: Bearer {access_token}' \n  --header 'content-type: application/json'\n```","example":"https://api.zoom.us/v2/contact_center/inbox/message/transcripts/download/4Q0ILNMfTA2nJolNxhg0Rw"},"message_duration":{"type":"integer","description":"The inbox message's duration in seconds.","example":150},"consumer_number":{"type":"string","description":"The consumer's phone number.","example":"+12058945728"},"consumer_id":{"type":"string","description":"The consumer's ID.","example":"fsdfere78fserhgfyjb"},"consumer_display_name":{"type":"string","description":"The consumer's name.","example":"Jill"},"status":{"type":"string","description":"The inbox message soft delete flag.","example":"normal","enum":["normal","deleted"]}},"description":"Information about the inbox message."}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `3010` <br>\n More than one matching inbox found. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `3001` <br>\n Inbox does not exist: $inboxId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_inbox:read:admin","contact_center:read:inbox_messages:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_inbox:read:admin"],"x-granular-scopes":["contact_center:read:inbox_messages:admin"]}},"delete":{"tags":["Inboxes"],"summary":"Delete an inbox's messages","description":"Delete messages in an inbox.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_inbox:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:delete:inbox_messages:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"inboxMessagesDelete","parameters":[{"name":"inboxId","in":"path","description":"The inbox's ID.","required":true,"schema":{"type":"string","example":"W_VATTk_Q5aW6z5rZtBxAQ"}},{"name":"delete_all_messages","in":"query","description":"Whether or not to delete all messages in a given inbox.\n\n true: delete all messages under an inbox.","required":false,"schema":{"type":"boolean","example":true,"default":true}}],"responses":{"204":{"description":"**HTTP Status Code:** `204`   \n \nInbox messages deleted."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `3001` <br>\n Inbox does not exist: $inboxId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_inbox:write:admin","contact_center:delete:inbox_messages:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_inbox:write:admin"],"x-granular-scopes":["contact_center:delete:inbox_messages:admin"]}}},"/contact_center/inboxes/{inboxId}/messages/{messageId}":{"delete":{"tags":["Inboxes"],"summary":"Delete an inbox message","description":"Delete a single message in an inbox. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_inbox:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:delete:inbox_message:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"inboxMessageDelete","parameters":[{"name":"inboxId","in":"path","description":"The inbox's ID.","required":true,"schema":{"type":"string","example":"W_VATTk_Q5aW6z5rZtBxAQ"}},{"name":"messageId","in":"path","description":"The inbox message's ID.","required":true,"schema":{"type":"string","example":"kopVATTk_Q5awefgretBxAQ"}}],"responses":{"204":{"description":"**HTTP Status Code:** `204`   \n \nInbox message deleted."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `3001` <br>\n Inbox does not exist: $inboxId. <br>\n**Error Code:** `3101` <br>\n Inbox message does not exist: $messageId. <br>\n**Error Code:** `3102` <br>\n The inbox id that matches this message id is: $inboxId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_inbox:write:admin","contact_center:delete:inbox_message:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_inbox:write:admin"],"x-granular-scopes":["contact_center:delete:inbox_message:admin"]}}},"/contact_center/inboxes/{inboxId}/queues":{"get":{"tags":["Inboxes"],"summary":"Get inbox access queues","description":"Retrieve a list of queues that have access to an inbox. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_queue:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:list_inbox_queues:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"listInboxQueues","parameters":[{"name":"inboxId","in":"path","description":"The inbox's ID.","required":true,"schema":{"type":"string","example":"W_VATTk_Q5aW6z5rZtBxAQ"}},{"name":"inbox_identifier_type","in":"query","description":"How the path parameter is interpreted. `id` treats it as a system-generated unique identifier. `name` treats it as the resource name.\nWhen using `name`, the resource name must be URL-encoded per RFC 3986.","required":false,"schema":{"type":"string","example":"id","default":"id","enum":["id","name"]}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \nList of inbox queues returned.","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"type":"string","description":"Use the next page token to paginate through large result sets. A next page token returns whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":300,"type":"integer","description":"The number of records returned within a single API call.","example":30,"default":30},"total_records":{"type":"integer","description":"The total number of all the records available across pages.","example":1},"queues":{"type":"array","description":"Information about the task queues.","items":{"type":"object","properties":{"queue_id":{"type":"string","description":"The task queue's ID.","example":"Ql3qxUWXSHes4PmcOmzyOg","deprecated":true},"cc_queue_id":{"type":"string","description":"The Contact Center queue's ID.","example":"Ql3qxUWXSHes4PmcOmzyOg"},"queue_name":{"type":"string","description":"The task queue's name.","example":"queue_661c6e4b-89fc-4b0d-9978-c7394725462"},"agents_count":{"type":"integer","description":"The number of assigned agents.","example":1},"supervisors_count":{"type":"integer","description":"The number of assigned supervisors.","example":1},"channel_types":{"type":"array","description":"The task queue's channel types.","deprecated":true,"items":{"type":"string","example":"voice","deprecated":true,"enum":["voice","chat","sms","video","in_app_chat"]}},"channel":{"type":"string","description":"The Contact Center queue's channel.","example":"voice","enum":["voice","video","messaging","email"]}}}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `3010` <br>\n More than one matching inbox found. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `3001` <br>\n Inbox does not exist: $inboxId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_queue:read:admin","contact_center:read:list_inbox_queues:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_queue:read:admin"],"x-granular-scopes":["contact_center:read:list_inbox_queues:admin"]}},"post":{"tags":["Inboxes"],"summary":"Assign inbox access queues","description":"Assign queues access to an inbox. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_queue:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:write:inbox_queue:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"assignInboxQueues","parameters":[{"name":"inboxId","in":"path","description":"The inbox's ID.","required":true,"schema":{"type":"string","example":"W_VATTk_Q5aW6z5rZtBxAQ"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"queue_ids":{"maxItems":30,"type":"array","deprecated":true,"items":{"type":"string","description":"The queue's ID.","example":"zeYjXoDOS_eV1QmTpj63PQ"}},"cc_queue_ids":{"maxItems":30,"type":"array","items":{"type":"string","description":"The Contact Center queue's ID.","example":"zeYjXoDOS_eV1QmTpj63PQ"}}}}}}},"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \nList of queues has been updated."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `1202` <br>\n \"Queues do not exist: [$queue_id].\"<br> <br>\n**Error Code:** `1203` <br>\n Queue is already assigned to inbox: [$queue_id]. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `3001` <br>\n Inbox does not exist: $inboxId.<br> <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_queue:write:admin","contact_center:write:inbox_queue:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_queue:write:admin"],"x-granular-scopes":["contact_center:write:inbox_queue:admin"]}},"delete":{"tags":["Inboxes"],"summary":"Remove inbox access queues","description":"Remove queues' access to an inbox. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_queue:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:delete:inbox_queue:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"unassignInboxQueues","parameters":[{"name":"inboxId","in":"path","description":"The inbox's ID.","required":true,"schema":{"type":"string","example":"W_VATTk_Q5aW6z5rZtBxAQ"}},{"name":"queue_ids","in":"query","description":"The queue's IDs. The maximum value is 10.","required":false,"deprecated":true,"schema":{"maxItems":30,"type":"array","items":{"type":"string","example":"ghyetrjj_2342353rsgfkdjfl"}}},{"name":"cc_queue_ids","in":"query","description":"The Contact Center queue's IDs. The maximum value is 10.","required":false,"schema":{"maxItems":30,"type":"array","items":{"type":"string","example":"ghyetrjj_2342353rsgfkdjfl"}}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \nQueues' access has been removed from the inbox."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `1202` <br>\n \"Queues do not exist: [$queue_id].\"<br> <br>\n**Error Code:** `1204` <br>\n Queue is not assigned to inbox: [$queue_id]. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `3001` <br>\n Inbox does not exist: $inboxId.<br> <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_queue:write:admin","contact_center:delete:inbox_queue:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_queue:write:admin"],"x-granular-scopes":["contact_center:delete:inbox_queue:admin"]}}},"/contact_center/inboxes/{inboxId}/users":{"get":{"tags":["Inboxes"],"summary":"List inbox users","description":"Retrieve a list of users assigned to an inbox. \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_user:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:inbox_user:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"listInboxUsers","parameters":[{"name":"inboxId","in":"path","description":"The inbox's ID.","required":true,"schema":{"type":"string","example":"W_VATTk_Q5aW6z5rZtBxAQ"}},{"name":"inbox_identifier_type","in":"query","description":"How the path parameter is interpreted. `id` treats it as a system-generated unique identifier. `name` treats it as the resource name.\nWhen using `name`, the resource name must be URL-encoded per RFC 3986.","required":false,"schema":{"type":"string","example":"id","default":"id","enum":["id","name"]}},{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of records returned in a single API call.","required":false,"schema":{"maximum":300,"type":"integer","format":"int32","example":30,"default":30}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \nReturns a list of users assigned to the inbox. ","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"maxLength":100,"type":"string","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":300,"type":"integer","description":"The number of records returned in a single API call.","example":30,"default":30},"total_records":{"minimum":0,"type":"integer","description":"The total number of all records available across pages.","example":10},"users":{"type":"array","description":"Information about the users.","items":{"type":"object","properties":{"user_id":{"maxLength":36,"type":"string","description":"The Meetings user identifier.","example":"IGTRVt3gQ2i-WjoUIjeZxw"},"cc_user_id":{"maxLength":36,"type":"string","description":"The Contact Center user identifier.","example":"hKuMAiDdRlSwMkBxR5we7g"},"display_name":{"type":"string","description":"The user's display name.","example":"Jane Doe"},"user_email":{"type":"string","description":"The user's email address.","format":"email","example":"jchill@example.com"}}}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `3010` <br>\n More than one matching inbox found. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `3001` <br>\n Inbox does not exist: $inboxId.<br> <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rest/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_user:read:admin","contact_center:read:inbox_user:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_user:read:admin"],"x-granular-scopes":["contact_center:read:inbox_user:admin"]}},"post":{"tags":["Inboxes"],"summary":"Assign inbox access users","description":"Assign users to a Contact Center inbox. This operation is atomic - all specified users must be valid and not already assigned to the inbox, or the entire request fails. No partial assignments occur.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_user:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:write:inbox_user:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"assignInboxUsers","parameters":[{"name":"inboxId","in":"path","description":"The inbox's ID.","required":true,"schema":{"type":"string","example":"W_VATTk_Q5aW6z5rZtBxAQ"}},{"name":"inbox_identifier_type","in":"query","description":"How the path parameter is interpreted. `id` treats it as a system-generated unique identifier. `name` treats it as the resource name.\nWhen using `name`, the resource name must be URL-encoded per RFC 3986.","required":false,"schema":{"type":"string","example":"id","default":"id","enum":["id","name"]}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"user_ids":{"maxItems":30,"uniqueItems":true,"type":"array","description":"The user identifiers. The values can be a mix of email addresses, Meetings user IDs, or Contact Center user IDs.","items":{"type":"string","example":"ukAAkZKfROKMSw1bj_RDFQ"}}}}}}},"responses":{"204":{"description":"**HTTP Status Code:** `204`   \n \nUsers successfully assigned to an inbox."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `1013` <br>\n User is already assigned to inbox: [user_ids]. <br>\n**Error Code:** `3010` <br>\n More than one matching inbox found. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `3001` <br>\n Inbox does not exist: {inboxId}. <br>\n**Error Code:** `1012` <br>\n Users do not exist: [user_ids]. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rest/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_user:write:admin","contact_center:write:inbox_user:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_user:write:admin"],"x-granular-scopes":["contact_center:write:inbox_user:admin"]}},"delete":{"tags":["Inboxes"],"summary":"Unassign inbox access users","description":"Remove users' access to an inbox. \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_user:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:delete:inbox_user:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"unassignInboxUsers","parameters":[{"name":"inboxId","in":"path","description":"The inbox's ID.","required":true,"schema":{"type":"string","example":"W_VATTk_Q5aW6z5rZtBxAQ"}},{"name":"inbox_identifier_type","in":"query","description":"How the path parameter is interpreted. `id` treats it as a system-generated unique identifier. `name` treats it as the resource name.\nWhen using `name`, the resource name must be URL-encoded per RFC 3986.","required":false,"schema":{"type":"string","example":"id","default":"id","enum":["id","name"]}},{"name":"user_ids","in":"query","description":"The value used to identify the user. The value can be an email address, a Meetings user ID, or a Contact Center user ID.","required":true,"schema":{"maxItems":30,"minItems":1,"uniqueItems":true,"type":"array","example":["9f71O6rWT8KFUGQmJIFAdD","IGTRVt3gQ2i-WjoUIjeZxw"],"items":{"type":"string","example":"IGTRVt3gQ2i-WjoUIjeZxw"}}}],"responses":{"204":{"description":"**HTTP Status Code:** `204`   \n \nUsers' access has been removed from the inbox."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `1012` <br>\n Users do not exist: [$user_id]. <br>\n**Error Code:** `1014` <br>\n User is not assigned to inbox: [$user_id]. <br>\n**Error Code:** `3010` <br>\n More than one matching inbox found. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `3001` <br>\n Inbox does not exist: $inboxId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_user:write:admin","contact_center:delete:inbox_user:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_user:write:admin"],"x-granular-scopes":["contact_center:delete:inbox_user:admin"]}}},"/contact_center/email/messages":{"get":{"tags":["Logs"],"summary":"List email message history","description":"Retrieve the list of messages exchanged during a specific email engagement.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_messaging:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:engagement_log:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"getEmailMessageHistory","parameters":[{"name":"engagement_id","in":"query","description":"The email engagement's unique identifier.","required":true,"schema":{"type":"string","example":"DmJzBVygRcaMuPqYar2lxU"}},{"name":"direction","in":"query","description":"The direction to fetch messages.\n* `forward` - chronological order\n* `backward` - reverse chronological order","required":false,"schema":{"type":"string","example":"forward","default":"backward","enum":["forward","backward"]}},{"name":"page_size","in":"query","description":"The number of items returned per page.","required":false,"schema":{"maximum":300,"type":"integer","format":"int32","example":30,"default":30}},{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}}],"responses":{"200":{"description":"A list of messages belonging to the specified email engagement.","content":{"application/json":{"schema":{"type":"object","properties":{"engagement_id":{"type":"string","description":"The email engagement's unique identifier.","example":"DmJzBVygRcaMuPqYar2lxU"},"messages":{"type":"array","description":"List of messages exchanged during the engagement.","items":{"required":["from_type","message_type","sent_time","text","user_id","user_name"],"type":"object","properties":{"content":{"type":"string","description":"The original full content of the email, including formatting or markup.","example":"<html><head>\r\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"></head><body><div dir=\"ltr\"><img src=\"cid:ii_me9niaqb0\" alt=\"image.png\" width=\"542\" height=\"224\"><br></div></body></html>"},"text":{"type":"string","description":"The email's plain text portion.","example":"email text"},"subject":{"type":"string","description":"The email's subject.","example":"email subject"},"sent_time":{"type":"string","description":"The timestamp when the email was sent, in ISO 8601 format (UTC), to the millisecond.","format":"date-time","example":"2024-12-03T13:07:46.123Z"},"from_type":{"type":"string","description":"The message sender's participant type.","example":"agent","enum":["agent","customer","supervisor"]},"user_id":{"type":"string","description":"The agent's unique identifier.","example":"JzBVygmRcaMzBVygr2lxU"},"user_name":{"type":"string","description":"The agent's name.","example":"Agent Alice"},"from_address":{"type":"object","properties":{"name":{"type":"string","description":"The sender's display name.","example":"Jill"},"address":{"type":"string","description":"The sender's email address.","example":"Jill63PQ@example.com"}},"description":"The sender's information."},"to":{"type":"array","description":"The list of recipients for this email.","items":{"type":"object","properties":{"name":{"type":"string","description":"The recipient's display name.","example":"Jill"},"address":{"type":"string","description":"The recipient's email address.","example":"Jill63PQ@example.com"}}}},"cc":{"type":"array","description":"The list of carbon copy (CC) recipients for this email. These recipients can see each other's addresses.","items":{"type":"object","properties":{"name":{"type":"string","description":"The CC recipient's display name.","example":"Jill"},"address":{"type":"string","description":"The CC recipient's email address.","example":"Jill63PQ@example.com"}}}},"bcc":{"type":"array","description":"The list of blind carbon copy (BCC) recipients for this email. These recipients cannot see each other's addresses.","items":{"type":"object","properties":{"name":{"type":"string","description":"The BCC recipient's display name.","example":"Jill"},"address":{"type":"string","description":"The BCC recipient's email address.","example":"Jill63PQ@example.com"}}}},"content_mime_type":{"type":"string","description":"The MIME type of the email content, indicating its format and character encoding.","example":"text/plain; charset=UTF-8"},"message_type":{"type":"string","description":"The message type. `general` indicates a standard user message, while `system` indicates a message generated by the system, such as engagement events or status updates.","example":"system","enum":["general","system"]},"files":{"type":"array","description":"The list of files attached to this email.","items":{"type":"object","properties":{"file_type":{"type":"string","description":"The file's MIME type or format.","example":"application/pdf"},"file_name":{"type":"string","description":"The file's name, including its extension.","example":"invoice_2025.pdf"},"file_size":{"type":"integer","description":"The file size, in bytes.","format":"int64","example":1024},"download_url":{"type":"string","description":"Attachment download link.","example":"https://api.example.com/attachments/0AYFv9ePSsmPUSJYHorUWQ/download?type=email_attachment"}}}},"inline_files":{"type":"array","description":"The list of inline files embedded within the email content, such as images or logos displayed directly in the message body.","items":{"type":"object","properties":{"file_type":{"type":"string","description":"The file's MIME type or format.","example":"image/png"},"file_name":{"type":"string","description":"The file's name, including its extension.","example":"logo.png"},"file_size":{"type":"integer","description":"The file's size, in bytes.","format":"int64","example":2048},"download_url":{"type":"string","description":"Attachment download link","example":"https://api.example.com/attachments/0AYFv9ePSsmPUSJYHorUWQ/download?type=email_attachment"}}}}}}},"has_more":{"type":"boolean","description":"Whether there are more records available beyond the current response.","example":false},"next_page_token":{"maxLength":100,"type":"string","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `11004` <br>\n Engagement not found. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n "},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_messaging:read:admin","contact_center:read:engagement_log:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_messaging:read:admin"],"x-granular-scopes":["contact_center:read:engagement_log:admin"]}}},"/contact_center/messaging/messages":{"get":{"tags":["Logs"],"summary":"List message history","description":"Retrieve the list of messages exchanged during a specific messaging engagement.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_messaging:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:messaging:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"getMessageHistory","parameters":[{"name":"engagement_id","in":"query","description":"The messaging engagement's unique identifier.","required":true,"schema":{"type":"string","example":"DmJzBVygRcaMuPqYar2lxU"}},{"name":"direction","in":"query","description":"The direction to fetch messages.\n* `backward` - chronological order\n* `forward` - reverse order","required":false,"schema":{"type":"string","example":"forward","default":"backward","enum":["forward","backward"]}},{"name":"page_size","in":"query","description":"The number of records returned in a single API call.","required":false,"schema":{"maximum":300,"type":"integer","format":"int32","example":30,"default":30}},{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}}],"responses":{"200":{"description":"A list of messages belonging to the specified engagement.","content":{"application/json":{"schema":{"required":["has_more"],"type":"object","properties":{"messages":{"type":"array","description":"A list of messages exchanged during the engagement.","items":{"required":["message_id","message_type","sender_participant_id","sender_participant_name","sent_time"],"type":"object","properties":{"message_id":{"type":"string","description":"The message's unique identifier.","example":"lKK_xlqXQWex0mKUYyGHUw"},"content":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","description":"The message's content type.","example":"text","enum":["text","html","markdown","quickReplies","card","carousel","form","article","video","attachment","multiAttachment","error"]},"value":{"type":"string","description":"The actual message content.","example":"Hi, I'm your virtual agent!"}},"description":"The message's content."},"sent_time":{"type":"string","description":"The timestamp when the message was sent, in ISO 8601 format (UTC), to the millisecond.","format":"date-time","example":"2024-12-03T13:07:46.123Z"},"sender_participant_id":{"type":"string","description":"The message sender's unique identifier, corresponding to the internally generated participant_id within the Contact Center.","example":"wMLp6VvjTc6A1mkiwHt3dQ"},"sender_participant_name":{"type":"string","description":"The sender's display name.","example":"Agent Alice"},"message_type":{"type":"string","description":"The message type. `general` indicates a standard user message, while `system` indicates a message generated by the system, such as engagement events or status updates.","example":"system","enum":["general","system"]}}}},"has_more":{"type":"boolean","description":"Whether there are more records available beyond the current response.","example":false},"next_page_token":{"maxLength":100,"type":"string","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `11006` <br>\n The integration messaging channel feature is not enabled for this account. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `11004` <br>\n Engagement not found. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_messaging:read:admin","contact_center:read:messaging:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_messaging:read:admin"],"x-granular-scopes":["contact_center:read:messaging:admin"]}}},"/contact_center/sms":{"get":{"tags":["Logs"],"summary":"List SMS logs","description":"Returns a list of SMS engagement logs. Engagement data are available via API once they are completed.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_sms:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:sms_log:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `HEAVY`","operationId":"listSMS","parameters":[{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of items returned per page.","required":false,"schema":{"maximum":100,"type":"integer","format":"int32","example":10,"default":10}},{"name":"from","in":"query","description":"The start time and date in `yyyy-mm-dd` or ISO 8601 format, which is either `yyyy-MM-dd'T'HH:mm:ss'Z'` or `yyyy-MM-dd'T'HH:mm:ss'TZD'`. The defined date range should be a month, as the response only includes one month's worth of data. If no start date is specified, return data from the past 24 hours.","required":false,"schema":{"type":"string","format":"date","example":"2021-12-10"}},{"name":"to","in":"query","description":"**Required** only when the `from` parameter is specified. The end time and date in `yyyy-mm-dd` or ISO 8601 format, which is either `yyyy-MM-dd'T'HH:mm:ss'Z'` or `yyyy-MM-dd'T'HH:mm:ss'TZD'`.","required":false,"schema":{"type":"string","format":"date","example":"2021-12-10"}},{"name":"country_iso_codes","in":"query","description":"Two-letter ISO country [code](/docs/api/references/abbreviations/#countries).","required":false,"schema":{"type":"array","example":["US"],"items":{"type":"string","example":"CN"}}},{"name":"direction","in":"query","description":"The engagement's direction.","required":false,"schema":{"type":"string","example":"inbound","enum":["inbound","outbound"]}},{"name":"user_id","in":"query","description":"The agent's ID.","required":false,"schema":{"type":"string","example":"ukAAkZKfROKMSw1bj_RDFQ"}},{"name":"engagement_id","in":"query","description":"The engagement's ID.","required":false,"schema":{"type":"string","example":"3XilEfOvQEKRIWMWhX1jDg"}},{"name":"consumer_number","in":"query","description":"The consumer's phone number.","required":false,"schema":{"type":"string","example":"+12059300920"}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \nVariables list returned","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"type":"string","description":"Use the next page token to paginate through large result sets. A next page token returns when the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":100,"type":"integer","description":"The number of records returned in a single API call.","example":30,"default":10},"total_records":{"type":"integer","description":"The total number of all the records available across pages.","example":1},"from":{"type":"string","description":"The start time and date in ISO 8601 format, either `yyyy-MM-dd'T'HH:mm:ss'Z'`, or `yyyy-MM-dd'T'HH:mm:ss'TZD'`. The defined date range should be a month, as the response only includes one month's worth of data. If no start date is specified, return data from the past 24 hours.","format":"date-time","example":"2023-01-01T08:00:00Z"},"to":{"type":"string","description":"**Required** only when the `from` parameter is specified. The end time and date in ISO 8601 format, either `yyyy-MM-dd'T'HH:mm:ss'Z'` or `yyyy-MM-dd'T'HH:mm:ss'TZD'`, the same format as the `from` parameter.","format":"date-time","example":"2023-01-01T09:00:00Z"},"sms":{"type":"array","description":"Information about the SMS.","items":{"type":"object","properties":{"direction":{"type":"string","description":"The engagement's direction. `inbound` | `outbound`.","example":"inbound","enum":["inbound","outbound"]},"engagement_id":{"type":"string","description":"The engagement's ID","example":"3XilEfOvQEKRIWMWhX1jDg"},"contact_center_number":{"type":"string","description":"The agent's number. An agent used a flow or queue number and did not really have its own number.","example":"+18108001001"},"start_time":{"type":"string","description":"The date and time when the engagement started in ISO 8601 format, either `yyyy-MM-dd'T'HH:mm:ss'Z'` or `yyyy-MM-dd'T'HH:mm:ss'TZD'`.","format":"date-time","example":"2023-01-01T08:00:00Z"},"end_time":{"type":"string","description":"The date and time when the engagement ended in ISO 8601 format, either `yyyy-MM-dd'T'HH:mm:ss'Z'` or `yyyy-MM-dd'T'HH:mm:ss'TZD'`.","format":"date-time","example":"2023-01-01T09:00:00Z"},"consumer_number":{"type":"string","description":"The consumer's phone number.","example":"+12059300920"},"consumer_display_name":{"type":"string","description":"The consumer's name.","example":"Tester"},"queues":{"type":"array","description":"Information about the engagement's queues.","items":{"type":"object","properties":{"queue_id":{"type":"string","description":"The queue's ID.","example":"d95avl1eRJ-H162PZUJ-qg","deprecated":true},"cc_queue_id":{"type":"string","description":"The Contact Center queue's ID.","example":"d95avl1eRJ-H162PZUJ-qg"},"queue_name":{"type":"string","description":"The queue's name.","example":"agentQueue"}},"description":"Information about the queue."}},"agents":{"type":"array","description":"Information about the engagement's agents.","items":{"type":"object","properties":{"user_id":{"type":"string","description":"The agent's ID.","example":"ukAAkZKfROKMSw1bj_RDFQ"},"display_name":{"type":"string","description":"The agent's name.","example":"Jilly"}},"description":"Information about the queue."}},"country_name":{"type":"string","description":"The country name.","example":"China"},"sms_types":{"type":"array","description":"The SMS's type.","items":{"type":"string","example":"sms","enum":["sms","mms"]}},"total_sent_messages":{"type":"integer","description":"The total number of sent messages.","format":"int64","example":0},"total_received_messages":{"type":"integer","description":"The total number of received messages.","format":"int64","example":0},"total_sent_files":{"type":"integer","description":"The total number of sent files.","format":"int64","example":0},"total_received_files":{"type":"integer","description":"The total number of received files.","format":"int64","example":0}},"description":"Information about the SMS."}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `2901` <br>\n Engagement does not exist: $engagementId. <br>\n**Error Code:** `1001` <br>\n User does not exist: $userId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_sms:read:admin","contact_center:read:sms_log:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_sms:read:admin"],"x-granular-scopes":["contact_center:read:sms_log:admin"]}},"post":{"tags":["SMS"],"summary":"Send an SMS","description":"Send an SMS message.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_sms:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:write:sms:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"contactCenterSMS","requestBody":{"content":{"application/json":{"schema":{"required":["body","consumer_numbers","contact_center_number"],"type":"object","properties":{"contact_center_number":{"type":"string","description":"This must be an SMS capable phone number allocated to Zoom Contact Center within the customer account. Enter the number in E.164 format. Get the number via Zoom PAYG Global Number SKU after meeting the in-country compliance requirements.","example":"+12090000000"},"consumer_numbers":{"maximum":20,"type":"array","description":"The phone number of the person receiving the SMS. Consumer numbers should be in the E.164 format. Opt in - START - and opt out - STOP - keywords received from this number will be honored. This field may not be empty. Maximum length of the array is 20 items.","items":{"type":"string","description":"The consumer's e164 number.","example":"+12090001111"}},"body":{"maximum":500,"type":"string","description":"The content that needs to be sent as an SMS. Maximum length is 500 characters. Messages will be broken into smaller segments of 160 characters and concatenated at the time of delivery. Unicode characters and emojis are supported. You can send any text or URL. MMS is not supported. There is no support for handling inbound messages and delivery confirmations.","example":"hello contact sms"}}}}}},"responses":{"201":{"description":"Send SMS response.","content":{"application/json":{"schema":{"type":"array","items":{"required":["consumer_number","contact_center_number","success"],"type":"object","properties":{"contact_center_number":{"type":"string","description":"E164 flow number.","example":"+12090000000"},"consumer_number":{"type":"string","description":"The consumer's phone number, in e164 format.","example":"+12090001111"},"message_id":{"type":"string","description":"The message ID. Indicates the action of sending a message from this `contact_center_number` to this consumer number.","example":"IQ-dhfaoufosadfb"},"success":{"type":"boolean","description":"Indicates whether the SMS was sent successfully.","example":true},"description":{"type":"string","description":"The error message returned when the SMS was not successfully sent.","example":"The consumer number you have messaged has not opted in","enum":["Invalid consumer number. The format of the consumer number used is incorrect. E.164 format is required","Zoom Contact Center numbers cannot be used as consumer numbers. Retry using a non Zoom Contact Center number","The consumer number you have messaged has not opted in","This consumer number has opted out of receiving SMS from this Zoom contact center number","This consumer number is a part of the block list defined by your Zoom Contact Center account administrator and cannot be messaged","International messaging is not supported on this account"]}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `1405` <br>\n `contact_center_number` has not enabled SMS feature. <br>\n**Error Code:** `1408` <br>\n `consumer_number` cannot be more than 20 digits. <br>\n**Error Code:** `1404` <br>\n `contact_center_number` not found. <br>\n**Error Code:** `1412` <br>\n `body` can't be empty. <br>\n**Error Code:** `1413` <br>\n SMS `body` is too long. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_sms:write:admin","contact_center:write:sms:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_sms:write:admin"],"x-granular-scopes":["contact_center:write:sms:admin"]}}},"/contact_center/voice_calls":{"get":{"tags":["Logs"],"summary":"List voice call logs","description":"Return a list of voice call engagement logs. Engagement data is available via API once it is completed. \n**Note** These fields - `agents.user_ip_address`, `agents.user_device_mac_address`, `agents.user_registered_sip_zone`, `agents.sip_zone_ip_address`, `session_border_controller_list.session_border_controller_name`, `session_border_controller_list.session_border_controller_ip_address`, `session_border_controller_list.consumer_zoom_trunk_name` and `session_border_controller_list.consumer_sbc_ip_address` - are only available to accounts which have enabled an internal flag to return these additional fields. To enable the feature flag, contact Zoom Support.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_voice_call:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:voice_call_log:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `HEAVY`","operationId":"listVoiceCall","parameters":[{"name":"from","in":"query","description":"The start time and date in either `yyyy-MM-dd`, `yyyy-MM-dd'T'HH:mm:ss'Z'`, or `yyyy-MM-dd'T'HH:mm:ss±HH:mm` format. The defined date range should be a month, as the response only includes one month's worth of data. If no start date is specified, return data from the past 24 hours.\n\n**Note** When using `yyyy-MM-dd'T'HH:mm:ss'Z'` format, the `'Z'` is treated as a literal character. The timezone offset from `yyyy-MM-dd'T'HH:mm:ss±HH:mm` format is used for response datetime formatting.","required":false,"schema":{"type":"string","example":"2021-12-10"}},{"name":"to","in":"query","description":"**Required** only when the `from` parameter is specified. The end time and date in `yyyy-MM-dd`, `yyyy-MM-dd'T'HH:mm:ss'Z'`, or `yyyy-MM-dd'T'HH:mm:ss±HH:mm` format, matching the format of the `from` parameter.","required":false,"schema":{"type":"string","example":"2021-12-10"}},{"name":"types","in":"query","description":"The call's type.","required":false,"schema":{"type":"array","items":{"type":"string","example":"external_call","enum":["external_call","external_conference_call","external_callback_call","internal_call","internal_conference_call","internal_callback_call"]}}},{"name":"distribution","in":"query","description":"The engagement's distribution.","required":false,"schema":{"type":"string","example":"acd","enum":["acd","non_acd"]}},{"name":"consumer_number","in":"query","description":"The consumer's phone number.","required":false,"schema":{"type":"string","example":"+12059300920"}},{"name":"direction","in":"query","description":"The engagement's direction.","required":false,"schema":{"type":"string","example":"inbound","enum":["inbound","outbound"]}},{"name":"user_ids","in":"query","description":"A comma-separated list of agents' user IDs to query, up to 20 agent IDs.","required":false,"schema":{"type":"array","items":{"type":"string","example":"t9PXwOsSQ2qXp7YSPDrALQ"}}},{"name":"engagement_id","in":"query","description":"The engagement's ID.","required":false,"schema":{"type":"string","example":"3XilEfOvQEKRIWMWhX1jDg"}},{"name":"queue_ids","in":"query","description":"A comma-separated list of queue IDs to query, up to 20 queue IDs. If user provide `none`, filter by **No queue used** in the web UI.","required":false,"deprecated":true,"schema":{"type":"array","items":{"type":"string","example":"Ql3qxUWXSHes4PmcOmzyOg"}}},{"name":"cc_queue_ids","in":"query","description":"A comma-separated list of Contact Center queue IDs to query, up to 20 queue IDs. If a user provides `none`, filter by **No queue used** in the web UI.","required":false,"schema":{"type":"array","items":{"type":"string","example":"Ql3qxUWXSHes4PmcOmzyOg"}}},{"name":"country_iso_codes","in":"query","description":"Two-letter ISO country [code](/docs/api/references/abbreviations/#countries).","required":false,"schema":{"type":"array","items":{"type":"string","example":"CN"}}},{"name":"number_types","in":"query","description":"The number's type.","required":false,"schema":{"type":"array","items":{"type":"string","example":"toll_free_number","enum":["toll_free_number","virtual_service_number","byoc_number"]}}},{"name":"region_ids","in":"query","description":"A comma-separated list of region IDs to query, up to 20 region IDs.","required":false,"schema":{"maxItems":20,"uniqueItems":true,"type":"array","example":["3XilEfOvQEKRIWMWhX1jDg"],"items":{"type":"string"}}},{"name":"region_names","in":"query","description":"A comma-separated list of region names to query, up to 20 region Names.","required":false,"schema":{"maxItems":20,"uniqueItems":true,"type":"array","example":["Main Region"],"items":{"type":"string"}}},{"name":"team_ids","in":"query","description":"A comma-separated list of team IDs to query, up to 20 team IDs.","required":false,"schema":{"maxItems":20,"uniqueItems":true,"type":"array","example":["3XilEfOvQEKRIWMWhX1jDg"],"items":{"type":"string"}}},{"name":"team_names","in":"query","description":"A comma-separated list of team names to query, up to 20 team names.","required":false,"schema":{"maxItems":20,"uniqueItems":true,"type":"array","example":["My Team"],"items":{"type":"string"}}},{"name":"sub_types","in":"query","description":"A comma-separated list of detailed call leg types.\n**Allowed subtypes**\n* `external_warm_conference_call`\n* `external_direct_conference_call`\n* `external_warm_transfer_call`\n* `external_direct_transfer_call`\n* `internal_warm_conference_call`\n* `internal_direct_conference_call`\n* `internal_warm_transfer_call`\n* `internal_direct_transfer_call`\n* `flow_initiated_outgoing_call` - flow outgoing","required":false,"schema":{"type":"array","example":["external_direct_transfer_call"],"items":{"type":"string","example":"external_direct_transfer_call","enum":["external_warm_conference_call","external_direct_conference_call","external_warm_transfer_call","external_direct_transfer_call","internal_warm_conference_call","internal_direct_conference_call","internal_warm_transfer_call","internal_direct_transfer_call","flow_initiated_outgoing_call"]}}},{"name":"view_type","in":"query","description":"By default, this API returns the summary in List voice logs.\nIf `detail` is selected, it returns all the call logs' additional details. ","required":false,"schema":{"type":"string","example":"summary","default":"summary","enum":["summary","detail"]}},{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of items returned per page.","required":false,"schema":{"maximum":100,"type":"integer","format":"int32","example":10,"default":10}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   Variables list returned.","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"maxLength":100,"type":"string","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":100,"minimum":1,"type":"integer","description":"The number of records returned within a single API call.","example":10,"default":10},"total_records":{"minimum":0,"type":"integer","description":"The total number of all records available across pages.","example":10},"from":{"type":"string","description":"The start time and date in ISO 8601 format, either `yyyy-MM-dd'T'HH:mm:ss'Z'` or `yyyy-MM-dd'T'HH:mm:ss'TZD'`. The defined date range should be a month, as the response only includes one month's worth of data. If no start date is specified, return data from the past 24 hours.","format":"date-time","example":"2023-01-01T08:00:00Z"},"to":{"type":"string","description":"**Required** only when the `from` parameter is specified. The end time and date in ISO 8601 format, either `yyyy-MM-dd'T'HH:mm:ss'Z'` or `yyyy-MM-dd'T'HH:mm:ss'TZD'`, the same format as the `from` parameter.","format":"date-time","example":"2023-01-01T09:00:00Z"},"voice_calls":{"type":"array","description":"Information about the voice call.","items":{"type":"object","properties":{"engagement_id":{"type":"string","description":"The engagement's ID","example":"3XilEfOvQEKRIWMWhX1jDg"},"direction":{"type":"string","description":"The engagement's direction.","example":"inbound","enum":["inbound","outbound"]},"call_legs":{"type":"array","description":"The direction of the engagement call leg. `inbound` | `outbound`.","items":{"type":"string","example":"inbound","enum":["inbound","outbound"]}},"distributions":{"type":"array","description":"The engagement's distribution.","items":{"type":"string","example":"acd","enum":["acd","non_acd"]}},"types":{"type":"array","description":"The call's type.","items":{"type":"string","example":"external_call","enum":["external_call","external_conference_call","external_callback_call","internal_call","internal_conference_call","internal_callback_call"]}},"sub_types":{"type":"array","description":"Specifies the detailed call leg type, such as a transfer or conference call.","items":{"type":"string","example":"external_direct_transfer_call","enum":["external_warm_conference_call","external_direct_conference_call","external_warm_transfer_call","external_direct_transfer_call","internal_warm_conference_call","internal_direct_conference_call","internal_warm_transfer_call","internal_direct_transfer_call","flow_initiated_outgoing_call"]}},"caller_number":{"type":"string","description":"The caller's phone number.","example":"+18108001001"},"caller_number_type":{"type":"string","description":"The caller's number type.","example":"toll_free_number","enum":["toll_free_number","virtual_service_number","byoc_number"]},"callee_number":{"type":"string","description":"The callee's phone number.","example":"+12055437350"},"callee_number_type":{"type":"string","description":"The callee's number type.","example":"toll_free_number","enum":["toll_free_number","virtual_service_number","byoc_number"]},"start_time":{"type":"string","description":"The date and time when the engagement started in `yyyy-MM-dd'T'HH:mm:ss±HH:mm` format. The timezone offset matches the offset provided in the `from` input parameter, or defaults to UTC (+00:00) if no offset was provided.","example":"2023-01-01T00:00:00-08:00"},"end_time":{"type":"string","description":"The date and time when the engagement ended, in `yyyy-MM-dd'T'HH:mm:ss±HH:mm` format. The timezone offset is derived from the `from` input parameter if it includes a timezone offset (e.g., `-08:00`), otherwise it defaults to `+00:00` (UTC).","example":"2023-01-01T01:00:00-08:00"},"total_duration":{"type":"integer","description":"The engagement's total duration, in seconds.","format":"int64","example":10},"consumer_number":{"type":"string","description":"The consumer's phone number.","example":"+12059300920"},"consumer_display_name":{"type":"string","description":"The consumer's name.","example":"Tester"},"queues":{"type":"array","description":"Information about the engagement's queues.","items":{"type":"object","properties":{"queue_id":{"type":"string","description":"The queue's ID.","example":"d95avl1eRJ-H162PZUJ-qg","deprecated":true},"cc_queue_id":{"type":"string","description":"The Contact Center queue's ID.","example":"d95avl1eRJ-H162PZUJ-qg"},"queue_name":{"type":"string","description":"The queue's name.","example":"agentQueue"}},"description":"Information about the queue."}},"agents":{"type":"array","description":"Information about the engagement's agents.","items":{"type":"object","properties":{"user_id":{"type":"string","description":"The agent's ID.","example":"ukAAkZKfROKMSw1bj_RDFQ"},"display_name":{"type":"string","description":"The agent's name.","example":"Jilly"},"user_email":{"type":"string","description":"The agent's email.","example":"jakie@zoom.us"},"user_ip_address":{"type":"string","description":"IP address of the agent's device.","format":"ipv4","example":"38.145.73.4"},"user_device_mac_address":{"pattern":"^([0-9A-Fa-f]{2}[:]){5}([0-9A-Fa-f]{2})$","type":"string","description":"MAC address of the agent's device.","example":"05:FA:15:25:EE:FF"},"user_registered_sip_zone":{"type":"string","description":"The SIP zone where the agent registered.","example":"ams1sbc"},"sip_zone_ip_address":{"type":"string","description":"The SIP zome's IP address.","format":"ipv4","example":"38.145.73.4"},"user_region":{"type":"string","description":"The agent's region name","example":"Main Region"},"team_ids":{"type":"array","description":"The agent's team IDs","items":{"type":"string","description":"agent team ID list","example":"[\"3XilEfOvQEKRIWMWhX1jDg\"]"}},"team_names":{"type":"array","description":"The agent's team names.","items":{"type":"string","description":"agent team name list.","example":"[\"My team\"]"}}},"description":"Information about the queue."}},"flows":{"type":"array","description":"Information about the engagement's flows.","items":{"type":"object","properties":{"flow_id":{"type":"string","description":"The flow's ID.","example":"zeYjXoDOS_eV1QmTpj63PQ"},"flow_name":{"type":"string","description":"The flow's name.","example":"Demo"}},"description":"Information about the flow."}},"country_name":{"type":"string","description":"The country name.","example":"China"},"recorded":{"type":"boolean","description":"Flag to determine whether to recorded.","example":false},"monitored":{"type":"boolean","description":"Flag to determine whether to monitored.","example":false},"inbox":{"type":"boolean","description":"Flag to determine whether a message is in the box.","example":false},"result":{"type":"string","description":"The engagement's results.","example":"completed","enum":["completed","short_abandoned","long_abandoned","hold_abandoned","long_calls","short_calls","hang_up_calls","overflowed_to_disconnect","overflowed_to_inbox","overflowed","abandon_quit","auto_closed","contained","missed","declined","callback_abandoned_by_consumer"]},"caller_id":{"type":"string","description":"The caller's number.","example":"+12058945728"},"calling_party":{"type":"string","description":"The calling's party.","example":"consumer","enum":["consumer","agent"]},"charge":{"type":"string","description":"The bill's charge.","example":"$0.019"},"rates":{"type":"array","description":"The price for each sent message.","items":{"type":"string","example":"$0.019"}},"charge_type":{"type":"string","description":"The charge type.","example":"per_minute","enum":["per_minute"]},"session_border_controller_list":{"type":"array","description":"Information about the session border controllers.","items":{"type":"object","properties":{"session_border_controller_name":{"type":"string","description":"The session border controller's name.","example":"ams1sbc"},"session_border_controller_ip_address":{"type":"string","description":"The SBC's IP address.","example":"38.145.73.20"},"consumer_zoom_trunk_name":{"type":"string","description":"The name of the trunk between the customer SBC and Zoom SBC.","example":"C10010142296A06"},"consumer_sbc_ip_address":{"type":"string","description":"The customer's SBC IP address.","example":"39.15.60.145"}},"description":"Information about the session border controller."}},"voice_call_details":{"type":"array","description":"All related call logs.","items":{"type":"object","properties":{"engagement_id":{"type":"string","description":"The engagement's ID.","example":"3XilEfOvQEKRIWMWhX1jDg"},"call_leg":{"type":"string","description":"The direction of the engagement call log.","example":"inbound","enum":["inbound","outbound"]},"distribution":{"type":"string","description":"The call log's distribution.","example":"acd","enum":["acd","non_acd"]},"type":{"type":"string","description":"The call's type.","example":"external_call","enum":["external_call","external_conference_call","external_callback_call","internal_call","internal_conference_call","internal_callback_call"]},"caller_number":{"type":"string","description":"The caller's phone number.","example":"+18108001001"},"caller_number_type":{"type":"string","description":"The caller's number type.","example":"toll_free_number","enum":["toll_free_number","virtual_service_number","byoc_number"]},"callee_number":{"type":"string","description":"The callee's phone number.","example":"+12055437350"},"callee_number_type":{"type":"string","description":"The callee's number type.","example":"toll_free_number","enum":["toll_free_number","virtual_service_number","byoc_number"]},"start_time":{"type":"string","description":"The date and time when the call started, in ISO 8601 format, either `yyyy-MM-dd'T'HH:mm:ss'Z'` or `yyyy-MM-dd'T'HH:mm:ss'TZD'`.","example":"2023-01-01T00:00:00-08:00"},"end_time":{"type":"string","description":"The date and time when the call ended, in ISO 8601 format, either `yyyy-MM-dd'T'HH:mm:ss'Z'` or `yyyy-MM-dd'T'HH:mm:ss'TZD'`.","example":"2023-01-01T01:00:00-08:00"},"total_duration":{"type":"integer","description":"The call log's total duration, in seconds.","format":"int64","example":10},"consumer_number":{"type":"string","description":"The consumer's phone number.","example":"+12059300920"},"consumer_display_name":{"type":"string","description":"The consumer's name.","example":"Tester"},"queue":{"type":"object","properties":{"cc_queue_id":{"type":"string","description":"The Contact Center queue's ID.","example":"d95avl1eRJ-H162PZUJ-qg"},"queue_name":{"type":"string","description":"The queue's name.","example":"agentQueue"}},"description":"Information about the queue."},"agents":{"type":"array","description":"Information about the engagement's agents.","items":{"type":"object","properties":{"user_id":{"type":"string","description":"The agent's ID.","example":"ukAAkZKfROKMSw1bj_RDFQ"},"display_name":{"type":"string","description":"The agent's name.","example":"Jilly"},"user_email":{"type":"string","description":"The agent's email.","example":"jakie@zoom.us"},"user_ip_address":{"type":"string","description":"The agent's device's IP address.","format":"ipv4","example":"38.145.73.4"},"user_device_mac_address":{"pattern":"^([0-9A-Fa-f]{2}[:]){5}([0-9A-Fa-f]{2})$","type":"string","description":"The agent's device's MAC address.","example":"05:FA:15:25:EE:FF"},"user_registered_sip_zone":{"type":"string","description":"The SIP zone where the agent registered.","example":"ams1sbc"},"sip_zone_ip_address":{"type":"string","description":"The SIP zone's IP address.","format":"ipv4","example":"38.145.73.4"},"user_region":{"type":"string","description":"The agent's region name.","example":"Main Region"},"team_ids":{"type":"array","description":"The agent's team IDs","items":{"type":"string","description":"Agent team ID list.","example":"3XilEfOvQEKRIWMWhX1jDg"}},"team_names":{"type":"array","description":"The agent's team names.","items":{"type":"string","description":"Agent team name list.","example":"My team"}}},"description":"Information about the queue."}},"flow":{"type":"object","properties":{"flow_id":{"type":"string","description":"The flow's ID.","example":"zeYjXoDOS_eV1QmTpj63PQ"},"flow_name":{"type":"string","description":"The flow's name.","example":"Demo"}},"description":"Information about the flow."},"country_name":{"type":"string","description":"The country name.","example":"China"},"recorded":{"type":"boolean","description":"Whether to record.","example":false},"monitored":{"type":"boolean","description":"Whether to monitor.","example":false},"inbox":{"type":"boolean","description":"Whether a message is in the box.","example":false},"result":{"type":"string","description":"The engagement's results.","example":"completed","enum":["completed","short_abandoned","long_abandoned","hold_abandoned","long_calls","short_calls","hang_up_calls","overflowed_to_disconnect","overflowed_to_inbox","overflowed","abandon_quit","auto_closed","contained","missed","declined","callback_abandoned_by_consumer"]},"caller_id":{"type":"string","description":"The caller's number.","example":"+12058945728"},"calling_party":{"type":"string","description":"The calling's party.","example":"consumer","enum":["consumer","agent"]},"charge":{"type":"string","description":"The bill's charge.","example":"$0.019"},"rate":{"type":"string","description":"The price for sent message.","example":"$0.019"},"charge_type":{"type":"string","description":"The charge type.","example":"per_minute","enum":["per_minute"]}},"description":"Related call leg details"}},"sbcInfos":{"type":"array","description":"Information about the session border controllers.\n**Note** This field will be abolished, and the `sbcInfos` will be used uniformly.","deprecated":true,"items":{"type":"object","properties":{"session_border_controller_name":{"type":"string","description":"The session border controller's name.","example":"ams1sbc"},"session_border_controller_ip_address":{"type":"string","description":"The SBC's IP address.","example":"38.145.73.20"},"consumer_zoom_trunk_name":{"type":"string","description":"The name of the trunk between the customer SBC and Zoom SBC.","example":"C10010142296A06"},"consumer_sbc_ip_address":{"type":"string","description":"The customer's SBC IP address.","example":"39.15.60.145"}},"description":"Information about the session border controller."}}},"description":"Information about the voice call."}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `300` <br>\n The time and date must be in `yyyy-mm-dd`` or ISO 8601 format, either `yyyy-MM-dd'T'HH:mm:ss'Z'` or `yyyy-MM-dd'T'HH:mm:ss'TZD'`. <br>\n**Error Code:** `300` <br>\n The requested report exceeds the 1-month limit. <br>\n**Error Code:** `300` <br>\n Invalid field. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1001` <br>\n User does not exist: {userId}. <br>\n**Error Code:** `1201` <br>\n Queue does not exist: {queueId}. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_voice_call:read:admin","contact_center:read:voice_call_log:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_voice_call:read:admin"],"x-granular-scopes":["contact_center:read:voice_call_log:admin"]}}},"/contact_center/work_item/messages":{"get":{"tags":["Logs"],"summary":"List work item message history","description":"Retrieve the list of messages exchanged during a specific work item engagement.\n\n**Note** This endpoint retrieves messages from work item sessions associated with the engagement.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_messaging:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:engagement_log:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"getWorkItemMessageHistory","parameters":[{"name":"engagement_id","in":"query","description":"The work item engagement's unique identifier.","required":true,"schema":{"type":"string","example":"DmJzBVygRcaMuPqYar2lxU"}},{"name":"direction","in":"query","description":"The direction to fetch messages.\n* `backward` - chronological order, newest first\n* `forward` - reverse chronological order, oldest first","required":false,"schema":{"type":"string","example":"backward","deprecated":true,"default":"backward","enum":["forward","backward"]}},{"name":"order","in":"query","description":"The order to fetch messages. * `backward` - reverse chronological order, or newest first \n* `forward` - chronological order, or oldest first","required":false,"schema":{"type":"string","example":"backward"}},{"name":"page_size","in":"query","description":"The number of records returned in a single API call.","required":false,"schema":{"maximum":300,"type":"integer","format":"int32","example":30,"default":30}},{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}}],"responses":{"200":{"description":"A list of messages belonging to the specified work item engagement.","content":{"application/json":{"schema":{"required":["has_more"],"type":"object","properties":{"engagement_id":{"type":"string","description":"The work item engagement's unique identifier.","example":"DmJzBVygRcaMuPqYar2lxU"},"messages":{"type":"array","description":"List of messages exchanged during the work item engagement.","items":{"required":["message_id","message_type","sender_participant_id","sender_participant_name","sent_time"],"type":"object","properties":{"message_id":{"type":"string","description":"The message's unique identifier.","example":"lKK_xlqXQWex0mKUYyGHUw"},"content":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","description":"**Deprecated**. Use `message_details.content_type`.","example":"text","deprecated":true,"enum":["text","html","action","markdown","quickReplies","card","carousel","article","image","audio","video","link","attachment"]},"value":{"type":"string","description":"**Deprecated**. Use `message_details.content`.","example":"agent accept","deprecated":true}},"description":"**Deprecated**. Use `message_details`.","deprecated":true},"message_details":{"type":"object","properties":{"content_type":{"type":"string","description":"The type of `message_details.content`. For email, this is typically `html`, or `text` when there is no HTML body. For other channels, it indicates the original message payload type.","example":"text","enum":["text","html","action","markdown","quickReplies","card","carousel","article","image","audio","video","link","attachment"]},"content":{"maxLength":409600,"type":"string","description":"The original message payload. For email, this is the full email body, typically HTML. For other channels, this is the original message content.\nThe maximum content size is `400KB`, and UTF-8 encoded.","example":"<html><head><meta charset=\"UTF-8\"></head><body><p>Refund request for order 774512.</p><p>Customer reports duplicate charge and asks for reversal.</p></body></html>"},"text":{"type":"string","description":"Email-only. The plain-text body extracted from the email content.","example":"Refund request for order 774512. Customer reports duplicate charge and asks for reversal."},"subject":{"type":"string","description":"Email-only. The subject of the email message.","example":"Refund request for order"},"from_address":{"type":"object","properties":{"name":{"type":"string","description":"The email sender's display name.","example":"Jane Doe"},"address":{"type":"string","description":"The email sender's email address.","example":"jdoe@example.com"}},"description":"Email-only. The email sender information."},"to_addresses":{"maxItems":20,"type":"array","description":"Email-only. The list of email recipients.\n\nMaximum of 20 items will be returned. If there are more than 20 email addresses, only the first 20 will be included in the response.","items":{"type":"object","properties":{"name":{"type":"string","description":"The recipient's display name.","example":"Jane Doe"},"address":{"type":"string","description":"The recipient's email address.","example":"jdoe@example.com"}}}},"files":{"maxItems":20,"type":"array","description":"The list of attachments.\n\nThis field is truncated to a maximum of 20 items. Additional files will not be returned.","items":{"type":"object","properties":{"file_type":{"type":"string","description":"The file's MIME type or format.","example":"application/pdf"},"file_name":{"type":"string","description":"The file's name, including its extension.","example":"invoice_2025.pdf"},"file_size":{"type":"integer","description":"The file size, in bytes.","format":"int64","example":1024},"download_url":{"type":"string","description":"Attachment download link.","example":"https://www.example.com/v2/contact_center/attachments/0AYFv9ePSsmPUSJYHorUWQ/download?type=email_attachment"}},"description":"Maximum of 20 items will be returned. If there are more than 20 files, only the first 20 will be included in the response."}},"inline_files":{"maxItems":20,"type":"array","description":"Email-only. Inline files embedded in the email body, such as images or logos.\n\nThis field is truncated to a maximum of 20 items. Additional inline files will not be returned.","items":{"type":"object","properties":{"file_type":{"type":"string","description":"The file's MIME type or format.","example":"image/png"},"file_name":{"type":"string","description":"The file's name, including its extension.","example":"logo.png"},"file_size":{"type":"integer","description":"The file's size, in bytes.","format":"int64","example":2048},"download_url":{"type":"string","description":"Attachment download link","example":"https://www.example.com/v2/contact_center/attachments/0AYFv9ePSsmPUSJYHorUWQ/download?type=email_attachment"}}}}},"description":"Message payload details. For email, content is the original email body and text is the plain-text body. For other channels, content is the original message payload."},"sent_time":{"type":"string","description":"The timestamp when the message was sent, in ISO 8601 format (UTC), to the millisecond.","format":"date-time","example":"2025-12-03T13:07:46.123Z"},"sender_participant_id":{"type":"string","description":"The message sender's unique identifier, corresponding to the internally generated `participant_id` within the Contact Center.","example":"wMLp6VvjTc6A1mkiwHt3dQ"},"sender_participant_name":{"type":"string","description":"The sender's display name.","example":"Agent Alice"},"message_type":{"type":"string","description":"The message type.\n\n* `general` - a standard user message\n* `system` - a message generated by the system, such as engagement events or status updates","example":"system","enum":["general","system"]},"message_channel":{"type":"string","description":"The message's channel, such as `email` or `sms`. This field is only set for flow send email or SMS messages. Otherwise it is empty.","example":"email","enum":["email","sms"]}}}},"has_more":{"type":"boolean","description":"Whether there are more records available beyond the current response.","example":false},"next_page_token":{"maxLength":100,"type":"string","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `300` <br>\n Validation failed. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `11004` <br>\n Engagement not found. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_messaging:read:admin","contact_center:read:engagement_log:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_messaging:read:admin"],"x-granular-scopes":["contact_center:read:engagement_log:admin"]}}},"/contact_center/messages":{"post":{"tags":["Messaging"],"summary":"Send a message","description":"Send a message via the specified messaging channel.\n\n**Note** A 200 OK response indicates that the request was successfully received and accepted by the API. It doesn't guarantee that the message has been sent or delivered.\n\nMessage delivery is processed asynchronously. To track the actual send and delivery status, use the `contact_center.message_status` webhook, which provides updates as the message progresses through the system.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_messaging:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:write:messaging:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"SendaMessage","requestBody":{"content":{"application/json":{"schema":{"required":["from","to"],"type":"object","properties":{"from":{"type":"string","description":"The sender's identifier. Different channels use platform-specific formats. For number-based channels, like WhatsApp, the value must be in E.164 format. For the number-based SMS channel, we support either an E.164 formatted phone number or an alphanumeric ID.","example":"+12090000000"},"to":{"type":"string","description":"The recipient's identifier. Different channels use platform-specific formats. For number-based channels, like WhatsApp and SMS, the value must be in E.164 format.","example":"+12090001111"},"whatsapp_message":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","description":"The message content type.","example":"whatsAppTemplate","enum":["whatsAppTemplate"]},"value":{"type":"string","description":"The message payload.","example":"{\"name\":\"marketing_button\",\"language_code\":\"en\"}"}},"description":"WhatsApp-specific message content, with type-specific structure."},"sms_message":{"required":["type","value"],"type":"object","properties":{"type":{"type":"string","description":"The SMS message content type.","example":"text","enum":["text"]},"value":{"type":"string","description":"The SMS message payload.","example":"Hello, this is a test SMS message."}},"description":"SMS-specific message content."},"create_engagement":{"type":"boolean","description":"Whether to create an engagement.","example":true},"flow_id":{"type":"string","description":"The flow ID to trigger when the consumer replies. Only used if `create_engagement=true` and a new engagement is created.","example":"zwKiV80hQ7CwRg9BEm0Bvw"}}}}}},"responses":{"200":{"description":"Message response sent.","content":{"application/json":{"schema":{"required":["from","message_id","to"],"type":"object","properties":{"from":{"type":"string","description":"The sender's identifier. Different channels use platform-specific formats. For number-based channels, such as WhatsApp, the value must be in E.164 format.","example":"+12090000000"},"to":{"type":"string","description":"The recipient's identifier. Different channels use platform-specific formats. For number-based channels, such as WhatsApp, the value must be in E.164 format.","example":"+12090001111"},"message_id":{"type":"string","description":"The unique identifier of the sent message, automatically generated by the Contact Center.","example":"f21b5055-5ec2-4e3f-8dde-916d4f76a2ee"},"engagement_id":{"type":"string","description":"The engagement's unique identifier, representing either a newly created engagement or an existing open engagement.","example":"u-ewaaDUS9qWlTNt8qhmmA"},"new_engagement":{"type":"boolean","description":"Returned when `create_engagement=true`. `true` indicates a new engagement was created, and `false` indicates an existing open engagement was reused.","example":true},"opt_in_required":{"type":"boolean","description":"For SMS, `true` indicates the consumer has not opted in and an opt-in invitation was sent.","example":true}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `1019` <br>\n feature OP flag is not enabled. <br>\n**Error Code:** `1500` <br>\n Input contains an invalid phone number. Please provide valid phone numbers in E.164 format. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_messaging:write:admin","contact_center:write:messaging:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_messaging:write:admin"],"x-granular-scopes":["contact_center:write:messaging:admin"]}}},"/contact_center/engagements/notes":{"get":{"tags":["Notes"],"summary":"List notes","description":"Return a list of notes. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_note:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:list_notes:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"notes","parameters":[{"name":"next_page_token","in":"query","description":"The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of items returned per page.","required":false,"schema":{"maximum":300,"type":"integer","format":"int32","example":30,"default":30}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \nNote list returned","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"type":"string","description":"Use the next page token to paginate through large result sets. A next page token returns when the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":300,"type":"integer","description":"The number of records returned in a single API call.","example":30,"default":30},"total_records":{"type":"integer","description":"The total number of all the records available across pages.","example":1},"notes":{"maxItems":300,"type":"array","description":"Information about the notes.","items":{"type":"object","properties":{"note_id":{"type":"string","description":"The note's unique ID.","example":"W_VATTk_Q5aW6z5rZtBxAQ"},"engagement_id":{"type":"string","description":"The engagement event's unique ID.","example":"3XilEfOvQEKRIWMWhX1jDg"},"channel_type":{"type":"string","description":"The channel's type: \n* voice \n* sms \n* chat \n* video","example":"voice","deprecated":true,"enum":["voice","sms","chat","video"]},"channel":{"type":"string","description":"The channel's type.\n* voice\n* sms\n* chat\n* video\n* email","example":"email","enum":["voice","sms","chat","video","email"]},"channel_source":{"type":"string","description":"The channel source.","example":"email_address"},"note":{"type":"string","description":"The note's content.","example":"This is the content of the note."},"last_modified_time":{"type":"string","description":"The note's last modification time.","format":"date-time","example":"2022-05-23T14:15:57Z"},"user_id":{"type":"string","description":"The ID of last user to modify the note.","example":"IGTRVt3gQ2i-WjoUIjeZxw"}},"description":"Information about the note."}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_note:read:admin","contact_center:read:list_notes:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_note:read:admin"],"x-granular-scopes":["contact_center:read:list_notes:admin"]}}},"/contact_center/engagements/{engagementId}/notes":{"get":{"tags":["Notes"],"summary":"List engagement notes","description":"Return a list of notes under an engagement. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_note:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:list_notes:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"engagementNotes","parameters":[{"name":"engagementId","in":"path","description":"The engagement event's unique ID.","required":true,"schema":{"type":"string","example":"Xh79Eq6gQhy8I1vM-r8P-w"}},{"name":"next_page_token","in":"query","description":"The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of items returned per page.","required":false,"schema":{"maximum":300,"type":"integer","format":"int32","example":30,"default":30}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \nEngagement note list returned","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"type":"string","description":"Use the next page token to paginate through large result sets. A next page token returns when the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":300,"type":"integer","description":"The number of records returned in a single API call.","example":30,"default":30},"total_records":{"type":"integer","description":"The total number of all the records available across pages.","example":1},"notes":{"maxItems":300,"type":"array","description":"Information about the notes.","items":{"type":"object","properties":{"note_id":{"type":"string","description":"The note's unique ID.","example":"W_VATTk_Q5aW6z5rZtBxAQ"},"engagement_id":{"type":"string","description":"The engagement event's unique ID.","example":"3XilEfOvQEKRIWMWhX1jDg"},"channel_type":{"type":"string","description":"The channel's type. \n* voice \n* sms \n* chat \n* video","example":"voice","deprecated":true,"enum":["voice","sms","chat","video"]},"channel":{"type":"string","description":"The channel's type. \n * voice * sms * chat * video* email","example":"email","enum":["voice","sms","chat","video","email"]},"channel_source":{"type":"string","description":"The channel source.","example":"email_address"},"note":{"type":"string","description":"The note's content.","example":"This is the content of the note."},"last_modified_time":{"type":"string","description":"The note's last modification time.","format":"date-time","example":"2022-05-23T14:15:57Z"},"user_id":{"type":"string","description":"The ID of last user to modify the note.","example":"IGTRVt3gQ2i-WjoUIjeZxw"}},"description":"Information about the note."}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_note:read:admin","contact_center:read:list_notes:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_note:read:admin"],"x-granular-scopes":["contact_center:read:list_notes:admin"]}}},"/contact_center/engagements/{engagementId}/notes/{noteId}":{"get":{"tags":["Notes"],"summary":"Get a note","description":"Retrieve a note. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_note:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:note:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"getNote","parameters":[{"name":"engagementId","in":"path","description":"The engagement event's unique ID.","required":true,"schema":{"type":"string","example":"Xh79Eq6gQhy8I1vM-r8P-w"}},{"name":"noteId","in":"path","description":"The note's ID.","required":true,"schema":{"type":"string","example":"W_VATTk_Q5aW6z5rZtBxAQ"}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \nNote returned","content":{"application/json":{"schema":{"type":"object","properties":{"note_id":{"type":"string","description":"The note's unique ID.","example":"W_VATTk_Q5aW6z5rZtBxAQ"},"engagement_id":{"type":"string","description":"The engagement event's unique ID.","example":"3XilEfOvQEKRIWMWhX1jDg"},"channel_type":{"type":"string","description":"The channel's type. \n* voice \n* sms \n* chat \n* video","example":"voice","deprecated":true,"enum":["voice","sms","chat","video","email"]},"channel":{"type":"string","description":"The channel's type. \n* voice \n* sms \n* chat \n* video\n* email","example":"email","enum":["voice","sms","chat","video","email"]},"channel_source":{"type":"string","description":"channel source","example":"email_address","enum":["email_address"]},"note":{"type":"string","description":"The note's content.","example":"This is the content of the note."},"last_modified_time":{"type":"string","description":"The note's last modification time.","format":"date-time","example":"2022-05-23T14:15:57Z"},"user_id":{"type":"string","description":"The ID of last user to modify the note.","example":"IGTRVt3gQ2i-WjoUIjeZxw"}},"description":"Information about the note."}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `2704` <br>\n The engagementId that matches this noteId is: $engagementId <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `2701` <br>\n Note does not exist: $noteId <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_note:read:admin","contact_center:read:note:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_note:read:admin"],"x-granular-scopes":["contact_center:read:note:admin"]}},"patch":{"tags":["Notes"],"summary":"Update a note","description":"Update a note. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_note:write`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:update:note`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"noteUpdate","parameters":[{"name":"engagementId","in":"path","description":"The engagement event's unique ID.","required":true,"schema":{"type":"string","example":"Xh79Eq6gQhy8I1vM-r8P-w"}},{"name":"noteId","in":"path","description":"The note's ID.","required":true,"schema":{"type":"string","example":"W_VATTk_Q5aW6z5rZtBxAQ"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"note":{"type":"string","description":"The note's content.","example":"This is the content of the note."}}}}}},"responses":{"204":{"description":"**HTTP Status Code:** `204`   \n \nNote updated"},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `2702` <br>\n Note can not be updated. You can only update the note that belongs to you. <br>\n**Error Code:** `2704` <br>\n The `engagementId` that matches this noteId is: $engagementId. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `2701` <br>\n Note does not exist: $noteId <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_note:write","contact_center:update:note"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_note:write"],"x-granular-scopes":["contact_center:update:note"]}}},"/contact_center/business_hours":{"get":{"tags":["Operating Hours"],"summary":"List business hours","description":"Get a list of business hours. Admins can create business hours to select, such as the business hours &quot;Default Hours&quot;. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_operating_hours:read:admin`,`contact_center_queue:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:list_business_hours:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"listBusinessHours","parameters":[{"name":"account_default","in":"query","description":"Default business hours or closures for the newly created queue.","required":false,"schema":{"type":"boolean","example":true}},{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of records returned within a single API call.","required":false,"schema":{"type":"integer","example":30}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \nBusiness hours returned.","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"maxLength":100,"type":"string","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":100,"minimum":1,"type":"integer","description":"The number of records returned within a single API call.","example":30,"default":30},"total_records":{"minimum":0,"type":"integer","description":"The total number of all the records available across pages.","example":10},"business_hours":{"type":"array","description":"Information about the business hours.","items":{"type":"object","properties":{"business_hour_id":{"type":"string","description":"The business hours' ID.","example":"66ZjSQ7YTOescnINN_4vog"},"business_hour_name":{"type":"string","description":"The business hours' name.","example":"Default Business hours"},"timezone":{"type":"string","description":"The business hours' timezone ID.","example":"America/New_York"},"account_default":{"type":"boolean","description":"Default business hours for the newly created queue.","example":true},"queues_count":{"type":"integer","description":"The number of queues using the business hour.","example":1},"flows_count":{"type":"integer","description":"The number of flows using the business hour.","example":1},"hours":{"type":"object","properties":{"hour_type":{"type":"integer","description":"The type of business hours. \n* `1` &mdash; 24 hours, 7 days a week. \n* `2` &mdash; Custom hours.","example":2,"enum":[1,2]},"custom_hours":{"type":"array","description":"The custom hours settings. It returns only for the `Custom hours` type.","items":{"type":"object","properties":{"day_of_week":{"type":"integer","description":"The day of the week. \n* `1` &mdash; Monday \n* `2` &mdash; Tuesday \n* `3` &mdash; Wednesday \n* `4` &mdash; Thursday \n* `5` &mdash; Friday \n* `6` &mdash; Saturday \n* `7` &mdash; Sunday","example":1,"enum":[1,2,3,4,5,6,7]},"custom_hour_type":{"type":"integer","description":"The type of custom hours. \n* `0` &mdash; Disabled. \n* `1` &mdash; 24 hours. \n* `2` &mdash; Customized hours.","example":2,"enum":[0,1,2]},"custom_hour_ranges":{"maxItems":2,"type":"array","description":"The custom hours range. It returns only for the `Customized hours` type.","items":{"type":"object","properties":{"start_time":{"type":"string","description":"The custom hours start time, `HH:mm` and `24-hour clock` format.","example":"09:00"},"end_time":{"type":"string","description":"The custom hours end time, `HH:mm` and `24-hour clock` format.","example":"18:00"}}}}}}}},"description":"The business hours."}}}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_operating_hours:read:admin","contact_center_queue:read:admin","contact_center:read:list_business_hours:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_operating_hours:read:admin","contact_center_queue:read:admin"],"x-granular-scopes":["contact_center:read:list_business_hours:admin"]}},"post":{"tags":["Operating Hours"],"summary":"Create business hours","description":"Create new business hours. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_operating_hours:write:admin`,`contact_center_queue:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:write:business_hour:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"businessHourCreate","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"business_hour_name":{"type":"string","description":"The business hours' name.","example":"Default business hours"},"business_hour_description":{"type":"string","description":"The business hours' description.","example":"This is a description."},"timezone":{"type":"string","description":"The business hours' timezone ID.","example":"America/New_York"},"account_default":{"type":"boolean","description":"Default business hours for the newly created queue.","example":true},"hours":{"type":"object","properties":{"hour_type":{"type":"integer","description":"The type of business hours. \n* `1` &mdash; 24 hours, 7 days a week. \n* `2` &mdash; Custom hours.","example":2,"enum":[1,2]},"custom_hours":{"maxItems":7,"type":"array","description":"The custom hours' settings. Required only for the `Custom hours` type.","items":{"type":"object","properties":{"day_of_week":{"type":"integer","description":"The day of the week. \n* `1` &mdash; Monday \n* `2` &mdash; Tuesday \n* `3` &mdash; Wednesday \n* `4` &mdash; Thursday \n* `5` &mdash; Friday \n* `6` &mdash; Saturday \n* `7` &mdash; Sunday","example":1,"enum":[1,2,3,4,5,6,7]},"custom_hour_type":{"type":"integer","description":"The type of custom hours. \n* `1` &mdash; 24 hours. \n* `2` &mdash; Customized hours.","example":2,"enum":[1,2]},"custom_hour_ranges":{"maxItems":2,"type":"array","description":"The custom hours' range. Required only for the `Customized hours` type.","items":{"type":"object","properties":{"start_time":{"type":"string","description":"The custom hours' start time, in `HH:mm` and `24-hour clock` format.","example":"09:00"},"end_time":{"type":"string","description":"The custom hours' end time, in `HH:mm` and `24-hour clock` format.","example":"18:00"}}}}}}}}}}}}}},"responses":{"201":{"description":"**HTTP Status Code:** `201`   \n \nBusiness hours created.","content":{"application/json":{"schema":{"type":"object","properties":{"business_hour_id":{"type":"string","description":"The business hours' ID.","example":"66ZjSQ7YTOescnINN_4vog"},"business_hour_name":{"type":"string","description":"The business hours' name.","example":"Default business hours"},"business_hour_description":{"type":"string","description":"The business hours' description.","example":"This is a description."},"timezone":{"type":"string","description":"The business hours' timezone ID.","example":"America/New_York"},"account_default":{"type":"boolean","description":"Default business hours for the newly created queue.","example":true},"hours":{"type":"object","properties":{"hour_type":{"type":"integer","description":"The type of business hours. \n* `1` &mdash; 24 hours, 7 days a week. \n* `2` &mdash; Custom hours.","example":2,"enum":[1,2]},"custom_hours":{"maxItems":7,"type":"array","description":"The custom hours' settings. Returned only for the `Custom hours` type.","items":{"type":"object","properties":{"day_of_week":{"type":"integer","description":"The day of the week. \n* `1` &mdash; Monday \n* `2` &mdash; Tuesday \n* `3` &mdash; Wednesday \n* `4` &mdash; Thursday \n* `5` &mdash; Friday \n* `6` &mdash; Saturday \n* `7` &mdash; Sunday","example":1,"enum":[1,2,3,4,5,6,7]},"custom_hour_type":{"type":"integer","description":"The type of custom hours. \n* `0` &mdash; Disabled. \n* `1` &mdash; 24 hours. \n* `2` &mdash; Customized hours.","example":2,"enum":[0,1,2]},"custom_hour_ranges":{"maxItems":2,"type":"array","description":"The custom hours' range. Returned only for the `Customized hours` type.","items":{"type":"object","properties":{"start_time":{"type":"string","description":"The custom hours' start time, in `HH:mm` and `24-hour clock` format.","example":"09:00"},"end_time":{"type":"string","description":"The custom hours' end time, in `HH:mm` and `24-hour clock` format.","example":"18:00"}}}}}}}}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `3607` <br>\n The `custom_hour_ranges` should not be empty when the `custom_hour_type` is `Customized hours`. <br>\n**Error Code:** `3608` <br>\n The `end_time` $endTime should not be earlier than the `start_time` $startTime. <br>\n**Error Code:** `300` <br>\n Validation failed. <br>\n**Error Code:** `3604` <br>\n The `custom_hours` should not be empty when the `hour_type` is `Custom hours`. <br>\n**Error Code:** `3602` <br>\n Timezone does not exist. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_operating_hours:write:admin","contact_center_queue:write:admin","contact_center:write:business_hour:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_operating_hours:write:admin","contact_center_queue:write:admin"],"x-granular-scopes":["contact_center:write:business_hour:admin"]}}},"/contact_center/business_hours/{businessHourId}":{"get":{"tags":["Operating Hours"],"summary":"Get business hours","description":"Get information about business hours. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_operating_hours:read:admin`,`contact_center_queue:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:business_hour:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"getABusinessHour","parameters":[{"name":"businessHourId","in":"path","description":"The business hours' ID.","required":true,"schema":{"type":"string","example":"66ZjSQ7YTOescnINN_4vog"}},{"name":"business_hour_identifier_type","in":"query","description":"How the path parameter is interpreted. `id` treats it as a system-generated unique identifier. `name` treats it as the resource name.\nWhen using `name`, the resource name must be URL-encoded per RFC 3986.","required":false,"schema":{"type":"string","example":"id","default":"id","enum":["id","name"]}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \nBusiness hours returned.","content":{"application/json":{"schema":{"type":"object","properties":{"business_hour_id":{"type":"string","description":"The business hours' ID.","example":"66ZjSQ7YTOescnINN_4vog"},"business_hour_name":{"type":"string","description":"The business hours' name.","example":"Default Business hours"},"business_hour_description":{"type":"string","description":"The business hours' description.","example":"This is a description."},"timezone":{"type":"string","description":"The business hours' timezone ID.","example":"America/New_York"},"account_default":{"type":"boolean","description":"Default business hours for the newly created queue.","example":true},"hours":{"type":"object","properties":{"hour_type":{"type":"integer","description":"The type of business hours. \n* `1` - 24 hours, 7 days a week. \n* `2` - Custom hours.","example":2,"enum":[1,2]},"custom_hours":{"type":"array","description":"The custom hours settings. It returns only for the `Custom hours` type.","items":{"type":"object","properties":{"day_of_week":{"type":"integer","description":"The day of the week. \n* `1` - Monday \n* `2` - Tuesday \n* `3` - Wednesday \n* `4` - Thursday \n* `5` - Friday \n* `6` - Saturday \n* `7` - Sunday","example":1,"enum":[1,2,3,4,5,6,7]},"custom_hour_type":{"type":"integer","description":"The type of custom hours. \n* `0` - Disabled. \n* `1` - 24 hours. \n* `2` - Customized hours.","example":2,"enum":[0,1,2]},"custom_hour_ranges":{"maxItems":2,"type":"array","description":"The custom hours range. It returns only for the `Customized hours` type.","items":{"type":"object","properties":{"start_time":{"type":"string","description":"The custom hours start time, in `HH:mm` and `24-hour clock` format.","example":"09:00"},"end_time":{"type":"string","description":"The custom hours end time, in `HH:mm` and `24-hour clock` format.","example":"18:00"}}}}}}}}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `3601` <br>\n Business hour does not exist: $businessHourId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_operating_hours:read:admin","contact_center_queue:read:admin","contact_center:read:business_hour:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_operating_hours:read:admin","contact_center_queue:read:admin"],"x-granular-scopes":["contact_center:read:business_hour:admin"]}},"delete":{"tags":["Operating Hours"],"summary":"Delete business hours","description":"Delete business hours. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_operating_hours:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:delete:business_hour:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"businessHourDelete","parameters":[{"name":"businessHourId","in":"path","description":"The business hours' ID.","required":true,"schema":{"type":"string","example":"66ZjSQ7YTOescnINN_4vog"}}],"responses":{"204":{"description":"**HTTP Status Code:** `204`   \n \nBusiness hours deleted."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `3612` <br>\n The business hours of account default cannot be deleted. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `3601` <br>\n Business hours do not exist: $businessHourId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_operating_hours:write:admin","contact_center:delete:business_hour:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_operating_hours:write:admin"],"x-granular-scopes":["contact_center:delete:business_hour:admin"]}},"patch":{"tags":["Operating Hours"],"summary":"Update business hours","description":"Update business hours.   \n   \n \n\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_operating_hours:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:update:business_hour:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"businessHourUpdate","parameters":[{"name":"businessHourId","in":"path","description":"The business hours' ID.","required":true,"schema":{"type":"string","example":"66ZjSQ7YTOescnINN_4vog"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"business_hour_name":{"type":"string","description":"The business hours' name.","example":"Default Business hours"},"business_hour_description":{"type":"string","description":"The business hours' description.","example":"This is a description."},"timezone":{"type":"string","description":"The business hours' timezone ID.","example":"America/New_York"},"account_default":{"type":"boolean","description":"Default business hours for the newly created queue. Only support `true` value.","example":true},"hours":{"type":"object","properties":{"hour_type":{"type":"integer","description":"The type of business hours. \n* `1` &mdash; 24 hours, 7 days a week. \n* `2` &mdash; Custom hours.","example":2,"enum":[1,2]},"custom_hours":{"maxItems":7,"type":"array","description":"The custom hours' settings. Required only for the `custom` type.","items":{"type":"object","properties":{"day_of_week":{"type":"integer","description":"The day of the week. \n* `1` &mdash; Monday \n* `2` &mdash; Tuesday \n* `3` &mdash; Wednesday \n* `4` &mdash; Thursday \n* `5` &mdash; Friday \n* `6` &mdash; Saturday \n* `7` &mdash; Sunday","example":1,"enum":[1,2,3,4,5,6,7]},"custom_hour_type":{"type":"integer","description":"The type of custom hours. \n* `0` &mdash; Disabled. \n* `1` &mdash; 24 hours. \n* `2` &mdash; Customized hours.","example":2,"enum":[0,1,2]},"custom_hour_ranges":{"maxItems":2,"type":"array","description":"The custom hours' range. Required only for the `specific_Time` type.","items":{"type":"object","properties":{"start_time":{"type":"string","description":"The custom hours' start time, in `HH:mm` and `24-hour clock` format.","example":"09:00"},"end_time":{"type":"string","description":"The custom hours' end time, in `HH:mm` and `24-hour clock` format.","example":"18:00"}}}}}}}},"description":"Hour items."}}}}}},"responses":{"204":{"description":"**HTTP Status Code:** `204`   \n \nBusiness hour updated."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `3602` <br>\n Timezone does not exist. <br>\n**Error Code:** `3611` <br>\n Can't update default business hours to be non-default. <br>\n**Error Code:** `3608` <br>\n The `end_time` $endTime should not be earlier than the `start_time` $startTime. <br>\n**Error Code:** `300` <br>\n Validation Failed <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `3601` <br>\n Business hour does not exist: $businessHourId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_operating_hours:write:admin","contact_center:update:business_hour:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_operating_hours:write:admin"],"x-granular-scopes":["contact_center:update:business_hour:admin"]}}},"/contact_center/business_hours/{businessHourId}/flows":{"get":{"tags":["Operating Hours"],"summary":"List the business hours' flows","description":"Show a list of flows using business hours. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_flow:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:business_hours_flow:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"listBusinessHourFlows","parameters":[{"name":"businessHourId","in":"path","description":"The business hours' ID.","required":true,"schema":{"type":"string","example":"66ZjSQ7YTOescnINN_4vog"}},{"name":"business_hour_identifier_type","in":"query","description":"How the path parameter is interpreted. \n\n`id` treats it as a system-generated unique identifier. \n\n`name` treats it as the resource name. When using `name`, the resource name must be URL-encoded per RFC 3986.","required":false,"schema":{"type":"string","example":"id","default":"id","enum":["id","name"]}},{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of records returned in a single API call.","required":false,"schema":{"maximum":300,"type":"integer","format":"int32","example":30,"default":30}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \nFlows returned.","content":{"application/json":{"schema":{"required":["next_page_token","page_size"],"type":"object","properties":{"next_page_token":{"maxLength":100,"type":"string","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":100,"minimum":1,"type":"integer","description":"The number of records returned within a single API call.","example":30,"default":30},"total_records":{"minimum":0,"type":"integer","description":"The total number of all records available across pages.","example":10},"flows":{"type":"array","description":"Information about the flows.","items":{"required":["flow_id","flow_name"],"type":"object","properties":{"flow_id":{"type":"string","description":"The flow's ID.","example":"psjHGHrHQbaX8Zk7ldc81Q"},"flow_name":{"type":"string","description":"The flow's name.","example":"Default Flow"}}}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `3601` <br>\n Business hour does not exist: $businessHourId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_flow:read:admin","contact_center:read:business_hours_flow:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_flow:read:admin"],"x-granular-scopes":["contact_center:read:business_hours_flow:admin"]}}},"/contact_center/business_hours/{businessHourId}/queues":{"get":{"tags":["Operating Hours"],"summary":"List the business hours' queues","description":"Show a list of queues using business hours. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_queue:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:business_hours_queue:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"listBusinessHourQueues","parameters":[{"name":"businessHourId","in":"path","description":"The business hours' ID.","required":true,"schema":{"type":"string","example":"66ZjSQ7YTOescnINN_4vog"}},{"name":"business_hour_identifier_type","in":"query","description":"How the path parameter is interpreted. \n\n`id` treats it as a system-generated unique identifier. \n\n`name` treats it as the resource name. When using `name`, the resource name must be URL-encoded per RFC 3986.","required":false,"schema":{"type":"string","example":"id","default":"id","enum":["id","name"]}},{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of records returned in a single API call.","required":false,"schema":{"maximum":300,"type":"integer","format":"int32","example":30,"default":30}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \nQueues returned.","content":{"application/json":{"schema":{"required":["next_page_token","page_size"],"type":"object","properties":{"next_page_token":{"maxLength":100,"type":"string","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":100,"minimum":1,"type":"integer","description":"The number of records returned within a single API call.","example":30,"default":30},"total_records":{"minimum":0,"type":"integer","description":"The total number of all records available across pages.","example":10},"queues":{"type":"array","description":"Information about the queues.","items":{"required":["cc_queue_id","queue_id","queue_name"],"type":"object","properties":{"queue_id":{"type":"string","description":"The task queue's ID.","example":"ZWQ33BD1C6E46FFD0D869D32E220D35F4D4","deprecated":true},"cc_queue_id":{"type":"string","description":"The Contact Center queue's ID.","example":"xqJE_cgERLyAJHYYL5LLeg"},"queue_name":{"type":"string","description":"The queue's name.","example":"VoiceQueue"}}}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `3601` <br>\n Business hours do not exist: $businessHourId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_queue:read:admin","contact_center:read:business_hours_queue:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_queue:read:admin"],"x-granular-scopes":["contact_center:read:business_hours_queue:admin"]}}},"/contact_center/closures":{"get":{"tags":["Operating Hours"],"summary":"List closures","description":"Get a list of closures. Admins can create closures to select. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_queue:read:admin`,`contact_center_operating_hours:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:list_closure_hours:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"listClosures","parameters":[{"name":"account_default","in":"query","description":"Default business hours or closures for the newly-created queue.","required":false,"schema":{"type":"boolean","example":true}},{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of records returned within a single API call.","required":false,"schema":{"type":"integer","example":30}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \nClosures returned.","content":{"application/json":{"schema":{"required":["next_page_token","page_size"],"type":"object","properties":{"next_page_token":{"maxLength":100,"type":"string","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":100,"minimum":1,"type":"integer","description":"The number of records returned within a single API call.","example":30,"default":30},"total_records":{"minimum":0,"type":"integer","description":"The total number of all the records available across pages.","example":10},"closure_sets":{"type":"array","description":"Information about the closure.","items":{"required":["account_default","closure_set_id","closure_set_name","closures","flows_count","queues_count","timezone"],"type":"object","properties":{"closure_set_id":{"type":"string","description":"The closure set's ID.","example":"Ixo-Na0bRfCyQ4q2lAryDw"},"closure_set_name":{"type":"string","description":"The closure set's name.","example":"Default Closure"},"timezone":{"type":"string","description":"The closure set's timezone ID.","example":"America/New_York"},"account_default":{"type":"boolean","description":"Default closure for the newly-created queue.","example":true},"queues_count":{"type":"integer","description":"The number of queues using the closure set.","example":1},"flows_count":{"type":"integer","description":"The number of flows using the closure set.","example":1},"closures":{"maxItems":50,"type":"array","description":"The closure's details.","items":{"required":["closure_hour_type","closure_name","end_time","recurring_frequency","start_time"],"type":"object","properties":{"closure_id":{"type":"string","description":"The closure item's ID.","example":"ksbJvJ"},"closure_name":{"type":"string","description":"The closure item's name.","example":"New Year"},"closure_hour_type":{"type":"integer","description":"The closure's time type. \n* `1` &mdash; All day. \n* `2` &mdash; Customized time.","example":2,"enum":[1,2]},"start_time":{"type":"string","description":"The closure's start time and date in ISO 8601 format: yyyy-MM-dd'T'HH:mm:ss'Z', or yyyy-MM-dd'T'HH:mm:ss'TZD'.","example":"2023-01-01T00:00:00-04:00"},"end_time":{"type":"string","description":"The closure's end time and date in ISO 8601 format: yyyy-MM-dd'T'HH:mm:ss'Z', or yyyy-MM-dd'T'HH:mm:ss'TZD'.","example":"2023-02-01T00:00:00-04:00"},"recurring_frequency":{"type":"integer","description":"The frequency of a closure's recurrence. \n* `0` &mdash; Never. \n* `1` &mdash; Annually. \n* `2` &mdash; Monthly. \n* `3` &mdash; Weekly.","example":2,"enum":[0,1,2,3]},"recurring_frequency_type":{"type":"integer","description":"The closure time's type of recurrence. This applies to `Annually`, `Monthly` and `Weekly` repeat frequency. It returns only for the not `Never` recurrence type. \n* `1` &mdash; Specific. \n* `2` &mdash; Customized.","example":2,"enum":[1,2]},"recurring_month":{"type":"integer","description":"The recurrence month. It returns only for the `Annually` recurrence type. \n* `1` &mdash; January \n* `2` &mdash; February \n* `3` &mdash; March \n* `4` &mdash; April \n* `5` &mdash; May \n* `6` &mdash; June \n* `7` &mdash; July \n* `8` &mdash; August \n* `9` &mdash; September \n* `10` &mdash; October \n* `11` &mdash; November \n* `12` &mdash; December","example":1,"enum":[1,2,3,4,5,6,7,8,9,10,11,12]},"recurring_week_interval":{"maximum":12,"minimum":1,"type":"integer","description":"The number of weekly recurrences. It returns only for the `Customized` recurrence time types. When it is `Annually/Customized` or `Monthly/Customized` type, the minimum value is `1` and the maximum value is `5`. When it is `Weekly/Customized` type, the minimum value is `1` and the maximum value is `12`.","example":1},"recurring_days_of_week":{"maxItems":7,"type":"array","description":"The week days of a recurrence. It returns only for the `Weekly/Customized`, the `Weekly/Specific`, the `Annually/Customized` and the `Monthly/Customized` recurrence time types. When the type is &quot;`Weekly/Customized`&quot;, there may be multiple values. \n* `1` &mdash; Monday \n* `2` &mdash; Tuesday \n* `3` &mdash; Wednesday \n* `4` &mdash; Thursday \n* `5` &mdash; Friday \n* `6` &mdash; Saturday \n* `7` &mdash; Sunday","items":{"type":"string","example":"1"}}}}}}}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_queue:read:admin","contact_center_operating_hours:read:admin","contact_center:read:list_closure_hours:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_queue:read:admin","contact_center_operating_hours:read:admin"],"x-granular-scopes":["contact_center:read:list_closure_hours:admin"]}},"post":{"tags":["Operating Hours"],"summary":"Create a closure set","description":"Create a new closure set. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_queue:write:admin`,`contact_center_operating_hours:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:write:closure_hour:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"closuresSetCreate","requestBody":{"content":{"application/json":{"schema":{"required":["closure_set_name","closures","timezone"],"type":"object","properties":{"closure_set_name":{"type":"string","description":"The closure set's name.","example":"Default closure"},"closure_set_description":{"type":"string","description":"The closure set's description.","example":"This is a description."},"timezone":{"type":"string","description":"The closure set's timezone ID.","example":"America/New_York"},"account_default":{"type":"boolean","description":"Default closure for the newly created queue.","example":true},"closures":{"maxItems":50,"type":"array","description":"The closure's details.","items":{"required":["closure_hour_type","closure_name","end_time","recurring_frequency","start_time"],"type":"object","properties":{"closure_name":{"type":"string","description":"The closure item's name.","example":"New Year"},"closure_hour_type":{"type":"integer","description":"The closure's time type. \n* `1` &mdash; All day. \n* `2` &mdash; Customized time.","example":2,"enum":[1,2]},"start_time":{"type":"string","description":"The closure's start time and date in ISO 8601 format: yyyy-MM-dd'T'HH:mm:ss'Z', or yyyy-MM-dd'T'HH:mm:ss'TZD'.","example":"2023-01-01T00:00:00-04:00"},"end_time":{"type":"string","description":"The closure's end time and date in ISO 8601 format: yyyy-MM-dd'T'HH:mm:ss'Z', or yyyy-MM-dd'T'HH:mm:ss'TZD'.","example":"2023-02-01T00:00:00-04:00"},"recurring_frequency":{"type":"integer","description":"The frequency of a closure's recurrence. \n* `0` &mdash; Never. \n* `1` &mdash; Annually. \n* `2` &mdash; Monthly. \n* `3` &mdash; Weekly.","example":2,"enum":[0,1,2,3]},"recurring_frequency_type":{"type":"integer","description":"The closure time's type of recurrence. Applies to `Annually`, `Monthly`, and `Weekly` repeat frequency. Returns only for the not `Never` recurrence type. \n* `1` &mdash; Specific. \n* `2` &mdash; Customized.","example":2,"enum":[1,2]},"recurring_month":{"type":"integer","description":"The recurrence month. Required only for the `Annually` recurrence type. \n* `1` &mdash; January \n* `2` &mdash; February \n* `3` &mdash; March \n* `4` &mdash; April \n* `5` &mdash; May \n* `6` &mdash; June \n* `7` &mdash; July \n* `8` &mdash; August \n* `9` &mdash; September \n* `10` &mdash; October \n* `11` &mdash; November \n* `12` &mdash; December","example":1,"enum":[1,2,3,4,5,6,7,8,9,10,11,12]},"recurring_week_interval":{"maximum":12,"minimum":1,"type":"integer","description":"The number of weekly recurrences. Required only for the `Customized` recurrence time types. When the type is `Annually/Customized` or `Monthly/Customized`, the minimum value is `1` and the maximum value is `5`. When the type is `Weekly/Customized`, the minimum value is `1` and the maximum value is `12`.","example":1},"recurring_days_of_week":{"maxItems":7,"type":"array","description":"The week days of a recurrence. Required only for the `Weekly/Customized`, `Weekly/Specific`, `Annually/Customized`, and `Monthly/Customized` recurrence time types. When the type is &quot;`Weekly/Customized`&quot;, there may be multiple values. \n* `1` &mdash; Monday \n* `2` &mdash; Tuesday \n* `3` &mdash; Wednesday \n* `4` &mdash; Thursday \n* `5` &mdash; Friday \n* `6` &mdash; Saturday \n* `7` &mdash; Sunday","items":{"type":"string","example":"1"}}}}}}}}}},"responses":{"201":{"description":"**HTTP Status Code:** `201`   \n \nClosure set created.","content":{"application/json":{"schema":{"required":["account_default","closure_set_description","closure_set_id","closure_set_name","closures","timezone"],"type":"object","properties":{"closure_set_id":{"type":"string","description":"The closure set's ID.","example":"Ixo-Na0bRfCyQ4q2lAryDw"},"closure_set_name":{"type":"string","description":"The closure set's name.","example":"Default closure"},"closure_set_description":{"type":"string","description":"The closure set's description.","example":"This is a description."},"timezone":{"type":"string","description":"The closure set's timezone ID.","example":"America/New_York"},"account_default":{"type":"boolean","description":"Default closure for the newly created queue.","example":true},"closures":{"maxItems":50,"type":"array","description":"The closure details.","items":{"required":["closure_hour_type","closure_name","end_time","recurring_frequency","start_time"],"type":"object","properties":{"closure_id":{"type":"string","description":"The closure item's ID.","example":"ksbJvJ"},"closure_name":{"type":"string","description":"The closure item's name.","example":"New Year"},"closure_hour_type":{"type":"integer","description":"The closure's time type. \n* `1` &mdash; All day. \n* `2` &mdash; Customized time.","example":2,"enum":[1,2]},"start_time":{"type":"string","description":"The closure's start time and date in ISO 8601 format: yyyy-MM-dd'T'HH:mm:ss'Z', or yyyy-MM-dd'T'HH:mm:ss'TZD'.","example":"2023-01-01T00:00:00-04:00"},"end_time":{"type":"string","description":"The closure's end time and date in ISO 8601 format: yyyy-MM-dd'T'HH:mm:ss'Z', or yyyy-MM-dd'T'HH:mm:ss'TZD'.","example":"2023-02-01T00:00:00-04:00"},"recurring_frequency":{"type":"integer","description":"The frequency of a closure's recurrence. \n* `0` &mdash; Never. \n* `1` &mdash; Annually. \n* `2` &mdash; Monthly. \n* `3` &mdash; Weekly.","example":2,"enum":[0,1,2,3]},"recurring_frequency_type":{"type":"integer","description":"The closure time's type of recurrence. Applies to `Annually`, `Monthly`, and `Weekly` repeat frequency. Returns only for the not `Never` recurrence type. \n* `1` &mdash; Specific. \n* `2` &mdash; Customized.","example":2,"enum":[1,2]},"recurring_month":{"type":"integer","description":"The recurrence month. Returns only for the `Annually` recurrence type. \n* `1` &mdash; January \n* `2` &mdash; February \n* `3` &mdash; March \n* `4` &mdash; April \n* `5` &mdash; May \n* `6` &mdash; June \n* `7` &mdash; July \n* `8` &mdash; August \n* `9` &mdash; September \n* `10` &mdash; October \n* `11` &mdash; November \n* `12` &mdash; December","example":1,"enum":[1,2,3,4,5,6,7,8,9,10,11,12]},"recurring_week_interval":{"maximum":12,"minimum":1,"type":"integer","description":"The number of weekly recurrences. Returns only for the `Customized` recurrence time types. When the type is `Annually/Customized` or `Monthly/Customized`, the minimum value is `1` and the maximum value is `5`. When it is `Weekly/Customized`, the minimum value is `1` and the maximum value is `12`.","example":1},"recurring_days_of_week":{"maxItems":7,"type":"array","description":"The week days of a recurrence. Returns only for the `Weekly/Customized`, the `Weekly/Specific`, the `Annually/Customized`, and the `Monthly/Customized` recurrence time types. When the type is &quot;`Weekly/Customized`&quot;, there may be multiple values. \n* `1` &mdash; Monday \n* `2` &mdash; Tuesday \n* `3` &mdash; Wednesday \n* `4` &mdash; Thursday \n* `5` &mdash; Friday \n* `6` &mdash; Saturday \n* `7` &mdash; Sunday","items":{"type":"string","example":"1"}}}}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `3602` <br>\n Timezone does not exist. <br>\n**Error Code:** `3702` <br>\n The closure name has already been duplicated: $closure_name. <br>\n**Error Code:** `3703` <br>\n The end time should be greater than the start time. <br>\n**Error Code:** `3704` <br>\n The `recurring_frequency_type` should not be empty when the `recurring_frequency` is anything other than `Never`. <br>\n**Error Code:** `3705` <br>\n The `start_time` and `end_time` must be in the same year when the `recurring_frequency` is `Annually`. <br>\n**Error Code:** `3706` <br>\n The `start_time` and `end_time` must be in the same month when the `recurring_frequency` is `Monthly`. <br>\n**Error Code:** `3707` <br>\n The `start_time` and `end_time` must be in the same week when the `recurring_frequency` is `Weekly`. <br>\n**Error Code:** `3708` <br>\n The `recurring_week_interval` should not be empty when the `recurring_frequency_type` type is `Customized`. <br>\n**Error Code:** `3709` <br>\n The `recurring_days_of_week` should not be empty when the `recurring_frequency_type` type is `Customized`. <br>\n**Error Code:** `3710` <br>\n The `recurring_month` should not be empty when the type is `Annually/Customized`. <br>\n**Error Code:** `3711` <br>\n The `recurring_week_interval` should be between `1` and `5` when the `recurring_frequency` type is `Annually` or `Monthly`. <br>\n**Error Code:** `3712` <br>\n The `start_time` and `end_time` must match the `timezone`: $start_time/$end_time. <br>\n**Error Code:** `3603` <br>\n The name already exists. <br>\n**Error Code:** `3714` <br>\n The `recurring_days_of_week` should be between `1` and `7`. <br>\n**Error Code:** `300` <br>\n Validation failed. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_queue:write:admin","contact_center_operating_hours:write:admin","contact_center:write:closure_hour:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_queue:write:admin","contact_center_operating_hours:write:admin"],"x-granular-scopes":["contact_center:write:closure_hour:admin"]}}},"/contact_center/closures/{closureSetId}":{"get":{"tags":["Operating Hours"],"summary":"Get a closure set","description":"Get information about a closure set.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_queue:read:admin`,`contact_center_operating_hours:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:closure_hour:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"getAClosureSet","parameters":[{"name":"closureSetId","in":"path","description":"The closure set's ID.","required":true,"schema":{"type":"string","example":"Ixo-Na0bRfCyQ4q2lAryDw"}},{"name":"closure_set_identifier_type","in":"query","description":"How the path parameter is interpreted. `id` treats it as a system-generated unique identifier. `name` treats it as the resource name.\nWhen using `name`, the resource name must be URL-encoded per RFC 3986.","required":false,"schema":{"type":"string","example":"id","default":"id","enum":["id","name"]}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \nClosure set returned.","content":{"application/json":{"schema":{"required":["account_default","closure_set_description","closure_set_id","closure_set_name","closures","timezone"],"type":"object","properties":{"closure_set_id":{"type":"string","description":"The closure set's ID.","example":"Ixo-Na0bRfCyQ4q2lAryDw"},"closure_set_name":{"type":"string","description":"The closure set's name.","example":"Default closure"},"closure_set_description":{"type":"string","description":"The closure set's description.","example":"This is a description."},"timezone":{"type":"string","description":"The closure set's timezone ID.","example":"America/New_York"},"account_default":{"type":"boolean","description":"Default closure for the newly-created queue.","example":true},"closures":{"maxItems":50,"type":"array","description":"The closure's details.","items":{"required":["closure_hour_type","closure_name","end_time","recurring_frequency","start_time"],"type":"object","properties":{"closure_id":{"type":"string","description":"The closure item's ID.","example":"ksbJvJ"},"closure_name":{"type":"string","description":"The closure item's name.","example":"New Year"},"closure_hour_type":{"type":"integer","description":"The closure's time type. \n* `1` - All day. \n* `2` - Customized time.","example":2,"enum":[1,2]},"start_time":{"type":"string","description":"The closure's start time and date in ISO 8601 format: `yyyy-MM-dd'T'HH:mm:ss'Z'`, or `yyyy-MM-dd'T'HH:mm:ss'TZD'`.","example":"2023-01-01T00:00:00-04:00"},"end_time":{"type":"string","description":"The closure's end time and date in ISO 8601 format: `yyyy-MM-dd'T'HH:mm:ss'Z'`, or `yyyy-MM-dd'T'HH:mm:ss'TZD'`.","example":"2023-02-01T00:00:00-04:00"},"recurring_frequency":{"type":"integer","description":"The frequency of a closure's recurrence. \n* `0` - Never. \n* `1` - Annually. \n* `2` - Monthly. \n* `3` - Weekly.","example":2,"enum":[0,1,2,3]},"recurring_frequency_type":{"type":"integer","description":"The closure time's recurrence type. This applies to `Annually`, `Monthly` and `Weekly` recurrence frequency. It returns for recurrence types that are not `Never`. \n* `1` - Specific. \n* `2` - Customized.","example":2,"enum":[1,2]},"recurring_month":{"type":"integer","description":"The recurrence month. It returns only for the `Annually` recurrence type. \n* `1` - January \n* `2` - February \n* `3` - March \n* `4` - April \n* `5` - May \n* `6` - June \n* `7` - July \n* `8` - August \n* `9` - September \n* `10` - October \n* `11` - November \n* `12` - December","example":1,"enum":[1,2,3,4,5,6,7,8,9,10,11,12]},"recurring_week_interval":{"maximum":12,"minimum":1,"type":"integer","description":"The number of weekly recurrences. It returns only for the `Customized` recurrence time types. When the recurrence type is either `Annually/Customized` or `Monthly/Customized` type, the minimum value is `1` and the maximum value is `5`. When it is `Weekly/Customized` type, the minimum value is `1` and the maximum value is `12`.","example":1},"recurring_days_of_week":{"maxItems":7,"type":"array","description":"The recurrence's week days. It returns only for the `Weekly/Customized`, the `Weekly/Specific`, the `Annually/Customized`, and the `Monthly/Customized` recurrence time types. When the recurrence type is &quot;`Weekly/Customized`&quot;, there may be multiple values. \n* `1` - Monday \n* `2` - Tuesday \n* `3` - Wednesday \n* `4` - Thursday \n* `5` - Friday \n* `6` - Saturday \n* `7` - Sunday","items":{"type":"string","example":"1"}}}}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `3701` <br>\n Closures set does not exist: $closureId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_queue:read:admin","contact_center_operating_hours:read:admin","contact_center:read:closure_hour:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_queue:read:admin","contact_center_operating_hours:read:admin"],"x-granular-scopes":["contact_center:read:closure_hour:admin"]}},"delete":{"tags":["Operating Hours"],"summary":"Delete a closure set","description":"Delete closure sets. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_operating_hours:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:delete:closure_hour:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"closureSetDelete","parameters":[{"name":"closureSetId","in":"path","description":"The closure set's ID.","required":true,"schema":{"type":"string","example":"Ixo-Na0bRfCyQ4q2lAryDw"}}],"responses":{"204":{"description":"**HTTP Status Code:** `204`   \n \nClosure sets deleted."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `3713` <br>\n The closures of account default cannot be deleted. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `3701` <br>\n Closure set does not exist: $closureSetId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_operating_hours:write:admin","contact_center:delete:closure_hour:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_operating_hours:write:admin"],"x-granular-scopes":["contact_center:delete:closure_hour:admin"]}},"patch":{"tags":["Operating Hours"],"summary":"Update a closure set","description":"Update information about a closure set.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_operating_hours:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:update:closure_hour:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"closureSetUpdate","parameters":[{"name":"closureSetId","in":"path","description":"The closure set's ID.","required":true,"schema":{"type":"string","example":"Ixo-Na0bRfCyQ4q2lAryDw"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["closure_set_name","closures","timezone"],"type":"object","properties":{"closure_set_name":{"type":"string","description":"The closure set's name.","example":"Default closure"},"closure_set_description":{"type":"string","description":"The closure set's description.","example":"This is a description."},"timezone":{"type":"string","description":"The closure set's timezone ID.","example":"America/New_York"},"account_default":{"type":"boolean","description":"Default closure for the newly-created queue.","example":true},"closures":{"maxItems":50,"type":"array","description":"The closure set's details.","items":{"type":"object","properties":{"closure_id":{"type":"string","description":"The closure item's ID.","example":"ksbJvJ"},"closure_name":{"type":"string","description":"The closure item's name.","example":"New Year"},"closure_hour_type":{"type":"integer","description":"The closure's time type. \n* `1` &mdash; All day. \n* `2` &mdash; Customized time.","example":2,"enum":[1,2]},"start_time":{"type":"string","description":"The closure's start time and date in ISO 8601 format: yyyy-MM-dd'T'HH:mm:ss'Z', or yyyy-MM-dd'T'HH:mm:ss'TZD'.","example":"2023-01-01T00:00:00-04:00"},"end_time":{"type":"string","description":"The closure's end time and date in ISO 8601 format: yyyy-MM-dd'T'HH:mm:ss'Z', or yyyy-MM-dd'T'HH:mm:ss'TZD'.","format":"datetime","example":"2023-02-01T00:00:00-04:00"},"recurring_frequency":{"type":"integer","description":"The frequency of a closure's recurrence. * `0` &mdash; Never. * `1` &mdash; Annually. * `2` &mdash; Monthly. * `3` &mdash; Weekly.","example":2,"enum":[0,1,2,3]},"recurring_frequency_type":{"type":"integer","description":"The closure time's type of recurrence. Applies to `Annually`, `Monthly`, and `Weekly` repeat frequency. Returns only for the not `Never` recurrence type. * `1` &mdash; Specific. * `2` &mdash; Customized.","example":2,"enum":[1,2]},"recurring_month":{"type":"integer","description":"The recurrence month. Required only for the `Annually` recurrence type. * `1` &mdash; January * `2` &mdash; February * `3` &mdash; March * `4` &mdash; April * `5` &mdash; May * `6` &mdash; June * `7` &mdash; July * `8` &mdash; August * `9` &mdash; September * `10` &mdash; October * `11` &mdash; November * `12` &mdash; December","example":1,"enum":[1,2,3,4,5,6,7,8,9,10,11,12]},"recurring_week_interval":{"maximum":12,"minimum":1,"type":"integer","description":"The number of weekly recurrences. Required only for the `Customized` recurrence time types. When the type is `Annually/Customized` or `Monthly/Customized`, the minimum value is `1` and the maximum value is `5`. When the type is `Weekly/Customized`, the minimum value is `1` and the maximum value is `12`.","example":1},"recurring_days_of_week":{"maxItems":7,"type":"array","description":"The recurrence's week days. Required only for the `Weekly/Customized`, the `Weekly/Specific`, the `Annually/Customized`, and the `Monthly/Customized` recurrence time types. When the type is &quot;`Weekly/Customized`&quot;, there may be multiple values. \n* `1` &mdash; Monday \n* `2` &mdash; Tuesday \n* `3` &mdash; Wednesday \n* `4` &mdash; Thursday \n* `5` &mdash; Friday \n* `6` &mdash; Saturday \n* `7` &mdash; Sunday","items":{"type":"string","example":"1"}},"to_delete":{"type":"boolean","description":"Whether to delete this closure item.","example":false}}}}}}}}},"responses":{"204":{"description":"**HTTP Status Code:** `204`   \n \nClosure set updated."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `3602` <br>\n Timezone does not exist. <br>\n**Error Code:** `3702` <br>\n The closure name has already been duplicated: $closure_name. <br>\n**Error Code:** `3703` <br>\n The end time should be greater than the start time. <br>\n**Error Code:** `3704` <br>\n The `recurring_frequency_type` should not be empty when the `recurring_frequency` is not `Never`. <br>\n**Error Code:** `3705` <br>\n The `start_time` and `end_time` must be in the same year when the `recurring_frequency` is `Annually`. <br>\n**Error Code:** `3706` <br>\n The `start_time` and `end_time` must be in the same month when the `recurring_frequency` is `Monthly`. <br>\n**Error Code:** `3707` <br>\n The \"start_time\" and \"end_time\" must be in the same week when the \"recurring_frequency\" is the \"Weekly\". <br>\n**Error Code:** `3708` <br>\n The `recurring_week_interval` should not be empty when the `recurring_frequency_type` type is `Customized`. <br>\n**Error Code:** `3709` <br>\n The `recurring_days_of_week` should not be empty when the `recurring_frequency_type` type is `Customized`. <br>\n**Error Code:** `3710` <br>\n The `recurring_month` should not be empty when the type is `Annually/Customized`. <br>\n**Error Code:** `3711` <br>\n The `recurring_week_interval` should between `1` and `5` when the `recurring_frequency` type is `Annually` or `Monthly`. <br>\n**Error Code:** `3712` <br>\n The `start_time` and `end_time` must match the `timezone`: $start_time/$end_time. <br>\n**Error Code:** `3603` <br>\n The name already exists. <br>\n**Error Code:** `3901` <br>\n The closure id has already been duplicated: $closure_id. <br>\n**Error Code:** `3902` <br>\n Closure does not exist: $closure_id. <br>\n**Error Code:** `3903` <br>\n The `hour_type` field cannot be empty when the `closure_id` field is empty. <br>\n**Error Code:** `3904` <br>\n The `closure_name` field cannot be empty when the `closure_id` field is empty. <br>\n**Error Code:** `3905` <br>\n The `start_time` field cannot be empty when the `closure_id` field is empty. <br>\n**Error Code:** `3906` <br>\n The `end_time` field cannot be empty when the `closure_id` field is empty. <br>\n**Error Code:** `3907` <br>\n The `recurring_frequency` field cannot be empty when the `closure_id` field is empty. <br>\n**Error Code:** `3908` <br>\n Every closure set has at least one closure item. <br>\n**Error Code:** `300` <br>\n Validation failed. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `3701` <br>\n Closure set does not exist: $closureSetId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_operating_hours:write:admin","contact_center:update:closure_hour:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_operating_hours:write:admin"],"x-granular-scopes":["contact_center:update:closure_hour:admin"]}}},"/contact_center/closures/{closureSetId}/flows":{"get":{"tags":["Operating Hours"],"summary":"List the closures' flows","description":"Show a list of flows using closures. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_flow:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:clousre_hour_flow:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"listClosureSetFlows","parameters":[{"name":"closureSetId","in":"path","description":"The closure set's ID.","required":true,"schema":{"type":"string","example":"Ixo-Na0bRfCyQ4q2lAryDw"}},{"name":"closure_set_identifier_type","in":"query","description":"How the path parameter is interpreted. \n\n`id` treats it as a system-generated unique identifier. \n\n`name` treats it as the resource name. When using `name`, the resource name must be URL-encoded per RFC 3986.","required":false,"schema":{"type":"string","example":"id","default":"id","enum":["id","name"]}},{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of records returned in a single API call.","required":false,"schema":{"maximum":300,"type":"integer","format":"int32","example":30,"default":30}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \nFlows returned.","content":{"application/json":{"schema":{"required":["next_page_token","page_size"],"type":"object","properties":{"next_page_token":{"maxLength":100,"type":"string","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":100,"minimum":1,"type":"integer","description":"The number of records returned within a single API call.","example":30,"default":30},"total_records":{"minimum":0,"type":"integer","description":"The total number of all records available across pages.","example":10},"flows":{"type":"array","description":"Information about the flows.","items":{"required":["flow_id","flow_name"],"type":"object","properties":{"flow_id":{"type":"string","description":"The flow's ID.","example":"psjHGHrHQbaX8Zk7ldc81Q"},"flow_name":{"type":"string","description":"The flow's name.","example":"Default Flow"}}}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `3701` <br>\n Closures set does not exist: $closureSetId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_flow:read:admin","contact_center:read:clousre_hour_flow:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_flow:read:admin"],"x-granular-scopes":["contact_center:read:clousre_hour_flow:admin"]}}},"/contact_center/closures/{closureSetId}/queues":{"get":{"tags":["Operating Hours"],"summary":"List the closures' queues","description":"Show a list of queues using closures.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_queue:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:closure_hour_queue:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"listClosureSetQueues","parameters":[{"name":"closureSetId","in":"path","description":"The closure set's ID.","required":true,"schema":{"type":"string","example":"Ixo-Na0bRfCyQ4q2lAryDw"}},{"name":"closure_set_identifier_type","in":"query","description":"How the path parameter is interpreted. \n\n`id` treats it as a system-generated unique identifier. \n\n`name` treats it as the resource name. When using `name`, the resource name must be URL-encoded per RFC 3986.","required":false,"schema":{"type":"string","example":"id","default":"id","enum":["id","name"]}},{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of records returned in a single API call.","required":false,"schema":{"maximum":300,"type":"integer","format":"int32","example":30,"default":30}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \nQueues returned.","content":{"application/json":{"schema":{"required":["next_page_token","page_size"],"type":"object","properties":{"next_page_token":{"maxLength":100,"type":"string","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":100,"minimum":1,"type":"integer","description":"The number of records returned within a single API call.","example":30,"default":30},"total_records":{"minimum":0,"type":"integer","description":"The total number of all records available across pages.","example":10},"queues":{"type":"array","description":"Information about the queues.","items":{"required":["cc_queue_id","queue_id","queue_name"],"type":"object","properties":{"queue_id":{"type":"string","description":"The task queue's ID.","example":"ZWQ33BD1C6E46FFD0D869D32E220D35F4D4","deprecated":true},"cc_queue_id":{"type":"string","description":"The Contact Center queue's ID.","example":"xqJE_cgERLyAJHYYL5LLeg"},"queue_name":{"type":"string","description":"The queue's name.","example":"VoiceQueue"}}}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `3701` <br>\n Closures set does not exist: $closureSetId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_queue:read:admin","contact_center:read:closure_hour_queue:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_queue:read:admin"],"x-granular-scopes":["contact_center:read:closure_hour_queue:admin"]}}},"/contact_center/queue_templates":{"get":{"tags":["Queues"],"summary":"List queue templates","description":"Retrieve a list of queue templates.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_queue:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:queue:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"Listqueuetemplates","parameters":[{"name":"channel","in":"query","description":"The template's channel.","required":false,"schema":{"type":"string","example":"voice","enum":["voice","messaging","email","video","work_item"]}},{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of items returned per page.","required":false,"schema":{"type":"string","example":"30"}}],"responses":{"200":{"description":"Queue templates by page.","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"type":"string","description":"Use the next page token to paginate through large result sets. A next page token returns whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"3Y42JUhtdR7yav3CwXpQxzCA8b8LjPGySQ2"},"page_size":{"type":"number","description":"The number of records returned within a single API call.","example":5},"total_records":{"type":"number","description":"The total number of all the records available across pages.","example":5},"queue_templates":{"type":"array","description":"Information about the queue templates.","items":{"required":["channel","last_modified_time","modified_by","template_description","template_id","template_name","template_need_attention","template_status","template_type"],"type":"object","properties":{"template_id":{"type":"string","description":"Template ID.","example":"cIInrJZUQWy12qoLPASXLw"},"template_name":{"type":"string","description":"Template name.","example":"voice add template 9"},"template_description":{"type":"string","description":"Template description.","example":"test voice add template 9"},"channel":{"type":"string","description":"Template channel. ","example":"voice","enum":["voice","messaging","email","video","work_item"]},"template_type":{"type":"string","description":"Template type.","example":"add","enum":["add","update"]},"template_status":{"type":"string","description":"Template status.","example":"active","enum":["active","inactive"]},"template_need_attention":{"type":"boolean","description":"Whether the template needs attention or not.","example":false},"modified_by":{"type":"string","description":"The ID of user who last modified the asset.","example":"CXF7npCJTQ2i3blpn9tSCw"},"last_modified_time":{"type":"string","description":"The date and time when the asset was last modified.","example":"2025-05-14T23:30:38.000+00:00"}}}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_queue:read:admin","contact_center:read:queue:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_queue:read:admin"],"x-granular-scopes":["contact_center:read:queue:admin"]}},"post":{"tags":["Queues"],"summary":"Create a queue template","description":"Create a Contact Center queue template.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_queue:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:write:queue:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"createQueueTemplate","requestBody":{"content":{"application/json":{"schema":{"required":["channel","queue_template_name","queue_template_type"],"type":"object","properties":{"queue_template_name":{"maxLength":150,"minLength":1,"type":"string","description":"The queue template's name.","example":"Voice Queue Template"},"queue_template_description":{"maxLength":255,"type":"string","description":"The queue template's description.","example":"Standard template for voice queues with default settings"},"channel":{"type":"string","description":"The queue template's channel type.","example":"voice","enum":["voice","video","messaging","email","work_item"]},"queue_template_type":{"type":"string","description":"The queue template's type. Use `add` to create new queues, and use `update` to modify existing queues.","example":"add","enum":["add","update"]}},"description":"Request body for creating a Contact Center queue template."}}}},"responses":{"201":{"description":"Queue template created successfully.","content":{"application/json":{"schema":{"required":["channel","last_modified_time","modified_by","queue_template_id","queue_template_name","queue_template_status","queue_template_type"],"type":"object","properties":{"queue_template_id":{"type":"string","description":"The queue template's unique identifier.","example":"cIInrJZUQWy12qoLPASXLw"},"queue_template_name":{"maxLength":150,"minLength":1,"type":"string","description":"The queue template's name.","example":"Voice Queue Template"},"queue_template_description":{"maxLength":255,"type":"string","description":"The queue template's description.","example":"Standard template for voice queues with default settings"},"channel":{"type":"string","description":"The queue template's channel type.","example":"voice","enum":["voice","video","messaging","email","work_item"]},"queue_template_type":{"type":"string","description":"The queue template's type. Use `add` to create new queues, and use `update` to modify existing queues.","example":"add","enum":["add","update"]},"queue_template_status":{"type":"string","description":"The queue template's status. `active` templates can be used, `inactive` templates are disabled.","example":"active","enum":["active","inactive"]},"queue_template_need_attention":{"type":"boolean","description":"Whether the queue template requires attention due to configuration issues or missing dependencies.","example":false},"modified_by":{"type":"string","description":"The user ID of the user who last modified the queue template.","example":"zIInwJQUCUy12qoLPASXJi"},"last_modified_time":{"type":"string","description":"The date and time when the queue template was last modified, in ISO 8601 format.","example":"2025-12-03T08:43:10.000+00:00"}},"description":"A Contact Center queue template object."}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `1214` <br>\n Queue template is not enabled: {accountId}. <br>\n**Error Code:** `1205` <br>\n Queue channel type is invalid: {channel}. <br>\n**Error Code:** `1240` <br>\n Queue template type is invalid: {templateType}. Valid values: add, update. <br>\n**Error Code:** `1242` <br>\n Queue template name already exists: {templateName}. <br>\n**Error Code:** `1243` <br>\n Queue template limit exceeded. Maximum number of templates allowed has been reached. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_queue:write:admin","contact_center:write:queue:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_queue:write:admin"],"x-granular-scopes":["contact_center:write:queue:admin"]}},"delete":{"tags":["Queues"],"summary":"Batch delete queue templates","description":"Delete multiple Contact Center queue templates.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_queue:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:delete:queue:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"deleteQueueTemplates","requestBody":{"content":{"application/json":{"schema":{"required":["queue_template_ids"],"type":"object","properties":{"queue_template_ids":{"maxItems":50,"minItems":1,"type":"array","description":"A list of queue template IDs to delete.","example":["UdfmrJHUQWy12qoLPASXAa","cIInrJZUQWy12qoLPASXLw"],"items":{"maxLength":36,"type":"string"}}},"description":"Request body for deleting multiple Contact Center queue templates."}}}},"responses":{"204":{"description":"Queue templates deleted successfully."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `1214` <br>\n Queue template is not enabled: {accountId}. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n**Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n**Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1213` <br>\n Queue template does not exist: {queueTemplateId}. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_queue:write:admin","contact_center:delete:queue:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_queue:write:admin"],"x-granular-scopes":["contact_center:delete:queue:admin"]}}},"/contact_center/queue_templates/{queueTemplateId}":{"get":{"tags":["Queues"],"summary":"Get a queue template","description":"Retrieve a Contact Center queue template.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_queue:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:queue:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"getQueueTemplate","parameters":[{"name":"queueTemplateId","in":"path","description":"The queue template ID or name, depending on the `identifier_type` parameter.","required":true,"schema":{"minLength":1,"type":"string","example":"UdfmrJHUQWy12qoLPASXAa"}},{"name":"queue_template_identifier_type","in":"query","description":"How the path parameter is interpreted. `id` treats it as a system-generated unique identifier. `name` treats it as the resource name.\nWhen using `name`, the resource name must be URL-encoded per RFC 3986.","required":false,"schema":{"type":"string","example":"id","default":"id","enum":["id","name"]}}],"responses":{"200":{"description":"Queue template retrieved successfully.","content":{"application/json":{"schema":{"required":["channel","last_modified_time","modified_by","queue_template_id","queue_template_name","queue_template_status","queue_template_type"],"type":"object","properties":{"queue_template_id":{"type":"string","description":"The queue template's unique identifier.","example":"cIInrJZUQWy12qoLPASXLw"},"queue_template_name":{"maxLength":150,"minLength":1,"type":"string","description":"The queue template's name.","example":"Voice Queue Template"},"queue_template_description":{"maxLength":255,"type":"string","description":"The queue template's description.","example":"Standard template for voice queues with default settings"},"channel":{"type":"string","description":"The queue template's channel type.","example":"voice","enum":["voice","video","messaging","email","work_item"]},"queue_template_type":{"type":"string","description":"The queue template's type. Use `add` to create new queues, and use `update` to modify existing queues.","example":"add","enum":["add","update"]},"queue_template_status":{"type":"string","description":"The queue template's status. `active` templates can be used, `inactive` templates are disabled.","example":"active","enum":["active","inactive"]},"queue_template_need_attention":{"type":"boolean","description":"Whether the queue template requires attention due to configuration issues or missing dependencies.","example":false},"modified_by":{"type":"string","description":"The user ID of the user who last modified the queue template.","example":"zIInwJQUCUy12qoLPASXJi"},"last_modified_time":{"type":"string","description":"The date and time when the queue template was last modified, in ISO 8601 format.","example":"2025-12-03T08:43:10.000+00:00"}},"description":"A Contact Center queue template object."}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `1214` <br>\n Queue template is not enabled: {accountId}. <br>\n**Error Code:** `1245` <br>\n More than one matching queue template found. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1213` <br>\n Queue template does not exist: {queueTemplateId}. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_queue:read:admin","contact_center:read:queue:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_queue:read:admin"],"x-granular-scopes":["contact_center:read:queue:admin"]}},"delete":{"tags":["Queues"],"summary":"Delete a queue template","description":"Delete a Contact Center queue template.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_queue:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:delete:queue:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"deleteQueueTemplate","parameters":[{"name":"queueTemplateId","in":"path","description":"The queue template's unique identifier.","required":true,"schema":{"maxLength":36,"minLength":1,"type":"string","example":"UdfmrJHUQWy12qoLPASXAa"}},{"name":"queue_template_identifier_type","in":"query","description":"How the path parameter is interpreted. `id` treats it as a system-generated unique identifier. `name` treats it as the resource name.\nWhen using `name`, the resource name must be URL-encoded per RFC 3986.","required":false,"schema":{"type":"string","example":"id","default":"id","enum":["id","name"]}}],"responses":{"204":{"description":"Queue template deleted successfully."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `1214` <br>\n Queue template is not enabled: {accountId}. <br>\n**Error Code:** `1245` <br>\n More than one matching queue template found. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1213` <br>\n Queue template does not exist: {queueTemplateId}. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_queue:write:admin","contact_center:delete:queue:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_queue:write:admin"],"x-granular-scopes":["contact_center:delete:queue:admin"]}},"patch":{"tags":["Queues"],"summary":"Update a queue template","description":"Update a Contact Center queue template.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_queue:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:update:queue:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"updateQueueTemplate","parameters":[{"name":"queueTemplateId","in":"path","description":"The queue template's unique identifier.","required":true,"schema":{"maxLength":36,"minLength":1,"type":"string","example":"UdfmrJHUQWy12qoLPASXAa"}},{"name":"queue_template_identifier_type","in":"query","description":"How the path parameter is interpreted. `id` treats it as a system-generated unique identifier. `name` treats it as the resource name.\nWhen using `name`, the resource name must be URL-encoded per RFC 3986.","required":false,"schema":{"type":"string","example":"id","default":"id","enum":["id","name"]}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"queue_template_name":{"maxLength":150,"type":"string","description":"The queue template's name.","example":"Voice Queue Template"},"queue_template_description":{"maxLength":255,"type":"string","description":"The queue template's description.","example":"Standard template for voice queues with default settings"},"queue_template_status":{"type":"string","description":"The queue template's status. `active` templates can be used, `inactive` templates are disabled.","example":"active","enum":["active","inactive"]}},"description":"Request body for updating a Contact Center queue template."}}}},"responses":{"204":{"description":"Queue template updated successfully."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `1214` <br>\n Queue template is not enabled: {accountId}. <br>\n**Error Code:** `1241` <br>\n Queue template status is invalid: {status}. Valid values: active, inactive. <br>\n**Error Code:** `1242` <br>\n Queue template name already exists: {templateName}. <br>\n**Error Code:** `1245` <br>\n More than one matching queue template found. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1213` <br>\n Queue template does not exist: {queueTemplateId}. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_queue:write:admin","contact_center:update:queue:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_queue:write:admin"],"x-granular-scopes":["contact_center:update:queue:admin"]}}},"/contact_center/queues":{"get":{"tags":["Queues"],"summary":"List queues","description":"Get information about all available queues. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_queue:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:list_queues:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"listQueues","parameters":[{"name":"channel_type","in":"query","description":"The task queue's channel types.","required":false,"deprecated":true,"schema":{"type":"string","example":"voice","enum":["voice","chat","sms","video","in_app_chat","messaging"]}},{"name":"channel","in":"query","description":"The Contact Center queue's channel.","required":false,"schema":{"type":"string","example":"voice","enum":["voice","video","messaging","email"]}},{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of items returned per page.","required":false,"schema":{"maximum":300,"type":"integer","format":"int32","example":30,"default":30}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \nQueues list returned.","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"type":"string","description":"Use the next page token to paginate through large result sets. A next page token returns whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":300,"type":"integer","description":"The number of records returned within a single API call.","example":30,"default":30},"total_records":{"type":"integer","description":"The total number of all the records available across pages.","example":1},"queues":{"type":"array","description":"Information about the task queues.","items":{"type":"object","properties":{"queue_id":{"type":"string","description":"The task queue's ID.","example":"zeYjXoDOS_eV1QmTpj63PQ","deprecated":true},"cc_queue_id":{"type":"string","description":"The Contact Center queue's ID.","example":"xqJE_cgERLyAJHYYL5LLeg"},"queue_name":{"type":"string","description":"The task queue's name.","example":"queue_661c6e4b-89fc-4b0d-9978-c7394725462"},"agents_count":{"type":"integer","description":"The number of assigned agents.","example":1},"supervisors_count":{"type":"integer","description":"The number of assigned supervisors.","example":1},"channel_types":{"type":"array","description":"The task queue's channel types.","deprecated":true,"items":{"type":"string","example":"voice","deprecated":true,"enum":["voice","chat","sms","video","in_app_chat","messaging"]}},"channel":{"type":"string","description":"The Contact Center queue's channel.","example":"voice","enum":["voice","video","messaging","email"]},"modified_by":{"type":"string","description":"The ID of user who last modified the asset.","example":"IGTRVt3gQ2i-WjoUIjeZxw"},"last_modified_time":{"type":"string","description":"The date and time when the asset was last modified.","format":"date-time","example":"2022-02-15T09:27:15Z"}}}}}}}}},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_queue:read:admin","contact_center:read:list_queues:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_queue:read:admin"],"x-granular-scopes":["contact_center:read:list_queues:admin"]}},"post":{"tags":["Queues"],"summary":"Create a queue","description":"Create an agent [queue](https://support.zoom.us/hc/en-us/articles/4423986595085) to determine which agents calls are routed to. Queues also link to an existing routing profile to determine how calls are routed. \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_queue:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:write:queue:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"queueCreate","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"queue_name":{"maxLength":150,"type":"string","description":"The task queue's name.","example":"queue_661c6e4b-89fc-4b0d-9978-c7394725462"},"queue_description":{"maxLength":256,"type":"string","description":"The task queue's description.","example":"This is a task queue."},"channel_types":{"maxItems":1,"type":"array","description":"The task queue's channel types.","deprecated":true,"items":{"type":"string","example":"voice","deprecated":true,"enum":["voice","chat","sms","video","in_app_chat","messaging","work_item"]}},"channel":{"type":"string","description":"The Contact Center queue's channel.","example":"voice","enum":["voice","video","messaging","email","work_item"]}}}}}},"responses":{"201":{"description":"**HTTP Status Code:** `201`   \n \nQueue created.","content":{"application/json":{"schema":{"type":"object","properties":{"queue_id":{"type":"string","description":"The task queue's ID.","example":"zeYjXoDOS_eV1QmTpj63PQ","deprecated":true},"cc_queue_id":{"type":"string","description":"The Contact Center queue's ID.","example":"zeYjXoDOS_eV1QmTpj63PQ"},"queue_name":{"type":"string","description":"The task queue's name.","example":"queue_661c6e4b-89fc-4b0d-9978-c7394725462"},"queue_description":{"type":"string","description":"The task queue's description.","example":"This is a task queue."},"channel_types":{"maxItems":5,"type":"array","description":"The task queue's channel types.","deprecated":true,"items":{"type":"string","example":"voice","deprecated":true,"enum":["voice","chat","sms","video","in_app_chat","messaging","work_item"]}},"channel":{"type":"string","description":"The Contact Center queue's channel.","example":"voice","enum":["voice","video","messaging","email","work_item"]}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `1205` <br>\n Invalid channel type. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_queue:write:admin","contact_center:write:queue:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_queue:write:admin"],"x-granular-scopes":["contact_center:write:queue:admin"]}}},"/contact_center/queues/batch":{"post":{"tags":["Queues"],"summary":"Batch create queues with a template","description":"Create bulk of contact center queues with templateId.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_queue:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:write:queue:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"Batchcreatequeueswithatemplate","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"template_id":{"type":"string","description":"The template ID","example":"urxORBoRRDCtvCT7xE5K9g"},"queues":{"maxItems":10,"type":"array","description":"List of queues need to be created.","items":{"required":["queue_description","queue_name"],"type":"object","properties":{"queue_name":{"type":"string","description":"The queue name.","example":"voice queue 600"},"queue_description":{"type":"string","description":"The queue description.","example":"test voice queue 600"}}}}}}}}},"responses":{"201":{"description":"List of queues created.","content":{"application/json":{"schema":{"maxItems":50,"type":"array","items":{"title":"root","required":["cc_queue_id","channel","queue_description","queue_name"],"type":"object","properties":{"cc_queue_id":{"type":"string","description":"The Contact Center queue's ID.","example":"GaMccDOOTvqV_bfmWqRVxA"},"queue_name":{"type":"string","description":"The task queue's name.","example":"voice queue 200"},"queue_description":{"type":"string","description":"The task queue's description.","example":"test voice queue 200"},"channel":{"type":"string","description":"The Contact Center queue's channel.","example":"voice"}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `1213` <br>\n Queue template does not exist: {templateId}. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_queue:write:admin","contact_center:write:queue:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_queue:write:admin"],"x-granular-scopes":["contact_center:write:queue:admin"]}},"delete":{"tags":["Queues"],"summary":"Batch delete queues","description":"Delete Contact Center queues in bulk.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_queue:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:delete:queue:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"Batchdeletequeues","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"cc_queue_ids":{"maxItems":10,"type":"array","description":"IDs of the queues to be deleted.","items":{"type":"string","description":"ID of the queue to be deleted.","example":"0HlBusg3QpqHGlGnaHJgOw"}}}}}}},"responses":{"204":{"description":"Queues deleted."},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1201` <br>\n Queue does not exist: {quueId}. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_queue:write:admin","contact_center:delete:queue:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_queue:write:admin"],"x-granular-scopes":["contact_center:delete:queue:admin"]}}},"/contact_center/queues/{queueId}":{"get":{"tags":["Queues"],"summary":"Get a queue","description":"Get information about a queue.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_queue:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:queue:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"getAQueue","parameters":[{"name":"queueId","in":"path","description":"Currently supports two different IDs, the task queue's ID and Contact Center queue's ID. The task queue's ID will be completely deprecated in the future. Change to the Contact Center queue ID as soon as possible.","required":true,"schema":{"type":"string","example":"zeYjXoDOS_eV1QmTpj63PQ"}},{"name":"queue_identifier_type","in":"query","description":"How the path parameter is interpreted. `id` treats it as a system-generated unique identifier. `name` treats it as the resource name.\nWhen using `name`, the resource name must be URL-encoded per RFC 3986.","required":false,"schema":{"type":"string","example":"id","default":"id","enum":["id","name"]}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \nQueue returned.","content":{"application/json":{"schema":{"type":"object","properties":{"queue_id":{"type":"string","description":"The task queue's ID.","example":"zeYjXoDOS_eV1QmTpj63PQ","deprecated":true},"cc_queue_id":{"type":"string","description":"The Contact Center queue's ID.","example":"xqJE_cgERLyAJHYYL5LLeg"},"queue_name":{"type":"string","description":"The task queue's name.","example":"queue_661c6e4b-89fc-4b0d-9978-c7394725462"},"queue_description":{"type":"string","description":"The task queue's description.","example":"This is a task queue."},"dispositions_count":{"type":"integer","description":"The number of dispositions.","example":1},"disposition_sets_count":{"type":"integer","description":"The number of disposition sets.","example":1},"channel_types":{"type":"array","description":"The task queue's channel types.","deprecated":true,"items":{"type":"string","example":"voice","deprecated":true,"enum":["voice","chat","sms","video","in_app_chat","messaging","work_item"]}},"channel":{"type":"string","description":"The Contact Center queue's channel.","example":"voice","enum":["voice","video","messaging","email","work_item"]},"max_wait_time":{"type":"integer","description":"The task queue's maximum wait time, in seconds.","example":50},"wrap_up_time":{"type":"integer","description":"The task queue's wrap up time, in seconds.","example":50},"max_engagement_in_queue":{"maximum":3000,"minimum":0,"type":"integer","description":"The task queue's maximum engagement in queue value.","example":50},"short_abandon":{"type":"object","properties":{"enable":{"type":"boolean","description":"Whether the **Enable short abandon** setting is enabled.","example":false},"threshold":{"maximum":15,"minimum":1,"type":"integer","description":"The task queue's short abandon threshold, in seconds.","example":5}},"description":"Information about the task queue's [**Short Abandon**](https://support.zoom.us/hc/en-us/articles/4469989300493-Changing-queue-settings#:~:text=for%20this%20queue.-,Short%20Abandon,-(only%20available%20if) settings. This setting is only available if the queue's channel type is a Zoom Room, voice, or video."},"distribution_type":{"type":"integer","description":"Distribute incoming engagements.","example":1,"enum":[0,1,2,3,4,5,6,7]},"distribution_duration_in_seconds":{"type":"integer","description":"The notify duration for each queue user, in seconds.","example":30},"direct_transfer_waiting_experience":{"type":"boolean","description":"Whether to apply the queue's waiting experience to calls directly transferring to this queue. **Channels** voice.","example":true},"connecting_media_id":{"type":"string","description":"**Deprecated** See `queue_waiting_experience` object.\n\nMedia ID to use while users are being connected.\n\nChannel type: voice.","example":"connectingAudioMp3","deprecated":true},"connecting_media_filename":{"type":"string","description":"**Deprecated** See `queue_waiting_experience` object.\n\nFile name of the media in use while consumers are being connected.\nChannel type: voice.","example":"Connecting Audio","deprecated":true},"transferring_media_id":{"type":"string","description":"**Deprecated** See `queue_waiting_experience` object.\n\nMedia ID to use while users are being transferred.\nChannel type: voice.","example":"transferringAudioMp3","deprecated":true},"transferring_media_filename":{"type":"string","description":"**Deprecated** See `queue_waiting_experience` object.\n\nFile name of the media to use while users are being transferred.\nChannel type: voice.","example":"Transferring Audio","deprecated":true},"holding_media_id":{"type":"string","description":"**Deprecated** See `queue_waiting_experience` object.\n\nMedia ID to use while users are on hold.\nChannel type: voice.","example":"holdingAudioMp3","deprecated":true},"holding_media_filename":{"type":"string","description":"**Deprecated** See `queue_waiting_experience` object.\n\nFile name of the media to use while users are on hold.\nChannel type: voice.","example":"Holding Audio","deprecated":true},"waiting_room_name":{"type":"string","description":"Name of the user's waiting room.\nChannel type - video.","example":"User Waiting Room"},"waiting_room_id":{"type":"string","description":"ID of the waiting room for users.\nChannel type - video.","example":"vPtSZOzBSLWMiorssYWTZw"},"message_accept":{"type":"string","description":"Option to accept a message manually or automatically.\nChannel types - chat, SMS.","example":"manual","enum":["manual","auto"]},"wrap_up_expiration":{"type":"boolean","description":"Auto-close engagements at the end of wrap-up duration.\nChannel type - voice, video.","example":true},"overflow_type":{"type":"integer","description":"Type of overflow.\n\n0 - Reply goodbye message, then disconnect. 1 - Route to queue. 2 - Leave email. 3 - Route to flow.","example":0,"enum":[0,1,2,3]},"overflow_to_goodbye_message":{"type":"boolean","description":"Reply goodbye message, then disconnect.","example":true},"overflow_to_goodbye_message_asset_id":{"type":"string","description":"Reply goodbye message. Use asset instead of system default audio.","example":"9gp4iyqUR_qq8tYpWw1EKg"},"overflow_to_queue_id":{"type":"string","description":"The queue ID to receive the overflow.","example":"m8IhNvUyTUmx7Jm8h5ZvLQ","deprecated":true},"overflow_to_cc_queue_id":{"type":"string","description":"The Contact Center queue ID to receive the overflow.\n\n Only one of these overflow fields can be updated each time, either `overflow_to_goodbye_message`, `overflow_to_cc_queue_id`, `overflow_to_flow_id`, or `overflow_to_inbox_id`. Updating an overflow field will clear out the other overflow fields.","example":"m8IhNvUyTUmx7Jm8h5ZvLQ"},"overflow_to_flow_id":{"type":"string","description":"The flow ID to receive the overflow.","example":"psjHGHrHQbaX8Zk7ldc81Q"},"overflow_to_inbox_id":{"type":"string","description":"The voicemail inbox ID to receive the overflow.","example":"cMH8RJA0QsyJBCWIFbWfBQ"},"auto_close_message":{"type":"string","description":"Auto-closed message to users for web chats.","example":"This chat has been auto-closed due to inactivity.","deprecated":true},"auto_close_message_enabled":{"type":"boolean","description":"Send an auto-closed message for web chats.\nChannel type - chat.","example":true},"auto_close_timeout":{"type":"integer","description":"How long, in minutes, before the chat is auto-closed.","example":10},"auto_close_alert_message":{"type":"string","description":"An alert message to web-chat users before auto-closing.","example":"Chat will auto-close soon if you don't reply","deprecated":true},"auto_close_alert_message_enabled":{"type":"boolean","description":"Send an alert message before auto-closing web chats.\nChannel type - chat.","example":true},"auto_close_alert_message_time":{"type":"integer","description":"How long, in minutes, before a warning is sent to the user.","example":10},"recording_storage_location":{"type":"string","description":"Determine where to store the recording.\n- us - United States\n- au - Australia\n- br - Brazil\n- ca - Canada\n- de - Germany\n- jp - Japan\n- sg - Singapore\n\nSupported channel types - voice, video.","example":"us","enum":["us","au","br","ca","de","jp","sg"]},"service_level_threshold_in_seconds":{"maximum":600,"minimum":1,"type":"integer","description":"Agents' first message speed for all engagements.","example":15},"service_level_exclude_short_abandoned_calls":{"type":"boolean","description":"Choose to include short abandoned calls in service level metrics.\nChannel types - voice, video.","example":true},"service_level_exclude_long_abandoned_calls":{"type":"boolean","description":"Choose to include long abandoned calls in service level metrics.\nChannel types - voice, video.","example":true},"service_level_exclude_abandoned_quit_engagements":{"type":"boolean","description":"Choose to include quit engagements in service level metrics.\nChannel types - chat, in_app_chat, sms","example":true},"service_level_target_in_percentage":{"maximum":100,"minimum":0,"type":"integer","description":"The service-level target as the benchmark to refer to in reports.","example":80},"agent_routing_profile_id":{"type":"string","description":"The queue's agent routing profile ID.","example":"fgjdkhgfieryt7465435kjhdkhg"},"agent_routing_profile_name":{"type":"string","description":"The queue's agent routing profile name.","example":"My agent routing profile"},"consumer_routing_profile_id":{"type":"string","description":"The queue's consumer routing profile ID.","example":"fgjdkhgfieryt7465435kjhdkhg"},"consumer_routing_profile_name":{"type":"string","description":"The queue's consumer routing profile name.","example":"My Consumer Routing Profile"},"caller_ids":{"type":"array","description":"The queue's caller ID list. Only for voice queues. When a voice queue is configured with caller ID(s), the list will populate with phone numbers.","items":{"type":"string","description":"Caller ID number, in E.164 format.","example":"+14155552671"}},"teams":{"type":"array","description":"Teams assigned to the Contact Center queue.","items":{"type":"object","properties":{"team_id":{"type":"string","description":"The team's unique identifier.","example":"qeYjXoDO3_eV1QmTpj63Pz"},"team_name":{"type":"string","description":"The team's name.","example":"Sales Team"}}}},"engagement_acceptance":{"type":"object","properties":{"acceptance_type":{"type":"string","description":"Methods to accept an engagement.","example":"manual","enum":["auto","manual"]},"enable_agent_alert_tone":{"type":"boolean","description":"Whether to enable playing an alert tone to the agent.","example":true},"enable_agent_whisper_announcement":{"type":"boolean","description":"Whether to enable playing an announcement to the agent.","example":false},"agent_whisper_announcement_asset_id":{"type":"string","description":"The agent whisper announcement's audio asset ID.","example":"9gp4iyqUR_qq8tYpWw1EKg"},"enable_agent_greeting":{"type":"boolean","description":"Whether to enable playing a default agent greeting.","example":false},"agent_greeting_asset_id":{"type":"string","description":"The agent greeting's audio asset ID.","example":"9gp4iyqUR_qq8tYpWw1EKg"},"greeting_filename":{"type":"string","description":"The agent greeting audio's file name.","example":"greeting.mp3"},"whisper_filename":{"type":"string","description":"The agent whisper announcement audio's file name.","example":"whisper.mp3"}},"description":"Queue engagement acceptance configurations."},"inbound_launch_url_info":{"type":"object","properties":{"config":{"type":"array","description":"Configurations of launching URL and methods to launch.","items":{"type":"object","properties":{"launch_trigger":{"type":"string","description":"Methods to launch URL.","example":"ringing","enum":["ringing","answered","ended"]},"launch_url":{"type":"string","description":"URL to be launched.","example":"https://www.example.com"}}}},"enable_launch_url":{"type":"boolean","description":"Whether to enable inbound launch URL section.","example":true}},"description":"Inbound launch URL configurations."},"outbound_launch_url_info":{"type":"object","properties":{"config":{"type":"array","description":"Configurations of launching URL and methods to launch.","items":{"type":"object","properties":{"launch_trigger":{"type":"string","description":"Methods to launch URL.","example":"connected","enum":["initiated","connected","ended"]},"url":{"type":"string","description":"URL to be launched.","example":"https://www.example.com"}}}},"enable_launch_url":{"type":"boolean","description":"Whether to enable outbound launch URL section.","example":true}},"description":"Outbound launch URL configurations."},"queue_waiting_experience":{"type":"object","properties":{"default_connecting_music_file_id":{"type":"string","description":"Default connecting music file ID.","example":"feca393267648418947gswurw70b4e43"},"default_connecting_music_name":{"type":"string","description":"Default connecting music file name.","example":"Hold the Phone_Mastered"},"default_connecting_music_url":{"type":"string","description":"Default connecting music file URL.","example":"https://device.s3.example.com/default_wait/Hold_the_Phone_Mastered.mp3"},"connecting_music_asset_id":{"type":"string","description":"Connecting music audio ID.","example":"dORBRSTxTN6B0vLJ37Kvnw"},"connecting_music_filename":{"type":"string","description":"Connecting music audio file name.","example":"Connecting Tone"},"connecting_music_url":{"type":"string","description":"Connecting music audio file URL.","example":"https://example.com/connecting.mp3"},"default_transfer_music_url":{"type":"string","description":"Default transferring music file URL.","example":"https://example.com/gocci/ringtone_music.wav"},"transfer_music_asset_id":{"type":"string","description":"Transferring music audio asset ID.","example":"dORBRSTxTN6B0vLJ37Kvnw"},"transfer_music_filename":{"type":"string","description":"Transferring music audio file name.","example":"Transferring Tone"},"transfer_music_url":{"type":"string","description":"Transferring music audio file URL.","example":"https://example.com/transferring.mp3"},"default_hold_music_file_id":{"type":"string","description":"Default holding music file ID.","example":"feca3932676484heud123568970b4e42"},"default_hold_music_name":{"type":"string","description":"Default holding music file name.","example":"Calming Hold_Mastered"},"default_hold_music_url":{"type":"string","description":"Default holding music file URL.","example":"https://example.com/default_wait/Calming_Hold_Mastered.mp3"},"holding_music_asset_id":{"type":"string","description":"Holding music audio asset ID.","example":"dORBRSTxTN6B0vLJ37Kvnw"},"holding_music_filename":{"type":"string","description":"Holding music audio file name.","example":"Holding Tone"},"holding_music_url":{"type":"string","description":"Holding music audio file URL.","example":"https://example.com/holding.mp3"}},"description":"Queue configured waiting experience."},"inbound_dispositions":{"type":"object","properties":{"enable_disposition":{"type":"boolean","description":"Enable inbound disposition.","example":true},"queue_disposition_type":{"type":"integer","description":"Type of inbound disposition.\n0 - Mandatory, 1 - Optional.","example":0},"dispositions":{"type":"array","description":"Inbound bounded dispositions.","items":{"type":"object","properties":{"disposition_id":{"type":"string","description":"The disposition's ID.","example":"2UiwcOPiS8y1XiQMKYFRfw"},"disposition_name":{"type":"string","description":"The disposition's name.","example":"test disposition 10"}}}},"disposition_sets":{"type":"array","description":"Inbound bounded disposition sets.","items":{"type":"object","properties":{"disposition_set_id":{"type":"string","description":"The disposition set's ID.","example":"Q5cXMppKQgm0W_bV72Wrgw"},"disposition_set_name":{"type":"string","description":"The disposition set's name.","example":"test disposition set 1"}}}},"default_disposition_id":{"type":"string","description":"Inbound default disposition ID.","example":"2UiwcOPiS8y1XiQMKYFRfw"},"default_disposition_name":{"type":"string","description":"Inbound default disposition name.","example":"test disposition 10"}},"description":"Queue configured inbound dispositions and disposition sets."},"outbound_dispositions":{"type":"object","properties":{"enable_disposition":{"type":"boolean","description":"Whether to enable outbound disposition.","example":true},"queue_disposition_type":{"type":"integer","description":"Type of outbound disposition.\n0 - Mandatory, 1 - Optional.","example":0},"dispositions":{"type":"array","description":"Outbound bounded dispositions.","items":{"type":"object","properties":{"disposition_id":{"type":"string","description":"The disposition's ID.","example":"2UiwcOPiS8y1XiQMKYFRfw"},"disposition_name":{"type":"string","description":"The disposition's name.","example":"test disposition 10"}}}},"disposition_sets":{"type":"array","description":"Outbound bounded disposition sets.","items":{"type":"object","properties":{"disposition_set_id":{"type":"string","description":"The disposition set's ID.","example":"Q5cXMppKQgm0W_bV72Wrgw"},"disposition_set_name":{"type":"string","description":"The disposition set's name.","example":"test disposition set 1"}}}},"default_disposition_id":{"type":"string","description":"Outbound default disposition ID.","example":"2UiwcOPiS8y1XiQMKYFRfw"},"default_disposition_name":{"type":"string","description":"Outbound default disposition name.","example":"test disposition 10"}},"description":"Queue configured outbound dispositions and disposition sets."},"wrap_up_after_transfer":{"type":"boolean","description":"Whether to enable wrap up transfer.","example":false},"engagement_distribution":{"type":"string","description":"Method of engagement distribution.","example":"simultaneous","enum":["longest_idle","sequential","rotating","simultaneous","most_available","manual","longest_ready","longest_idle_for_this_queue"]},"outbound_settings":{"type":"object","properties":{"enable_outbound_calls":{"type":"boolean","description":"Whether to enable outbound call.","example":true},"queue_caller_ids":{"type":"array","description":"The queue's outbound caller ID number list. A caller ID number is what your customers will see on their phone when agents and supervisors reach out to them. Assign numbers that users can update from the default caller ID when they call consumers.\n\nOnly for voice queues. When a voice queue is configured with caller ID(s), the list will populate with phone numbers.","items":{"type":"string","description":"Caller ID number, in E.164 format.","example":"+14155552671"}},"outbound_launch_url_info":{"type":"object","properties":{"enable_launch_url":{"type":"boolean","description":"Whether to enable outbound launch URL section.","example":true},"config":{"type":"array","items":{"type":"object","properties":{"launch_trigger":{"type":"string","description":"Methods to launch URL.","example":"connected","enum":["initiated","connected","ended"]},"url":{"type":"string","description":"URL to be launched.","example":"https://www.example.com"}}}}}},"outbound_labels":{"type":"object","properties":{"outbound_call_duration_lower_threshold":{"type":"integer","description":"Minimum talking duration for brief outbound engagements, in seconds.","example":19},"outbound_call_duration_upper_threshold":{"type":"integer","description":"Maximum talking duration for brief outbound engagements, inseconds.","example":300}},"description":"Set up the talking duration for brief outbound engagements, labeled in reports as **short calls**, which also sets the duration for long calls and hang-up calls.\n\nShort calls - Select minimum and maximum talking duration of short calls using the `outbound_call_duration_lower_threshold` and `outbound_call_duration_upper_threshold` values.\nLong calls - Over 2 minutes.\nHang-up calls - Under 10 seconds.\n"},"outbound_transferring_media_id":{"type":"string","description":"Outbound transferring media asset ID.","example":"transferringAudioMp3"},"outbound_holding_media_id":{"type":"string","description":"Outbound holding media asset ID.","example":"holdingAudioMp3"},"outbound_notes_asset_id":{"type":"string","description":"Outbound notes audio asset ID.","example":"notesAsset123"},"outbound_disposition_required":{"type":"boolean","description":"Whether an outbound disposition is required.","example":true},"outbound_default_disposition_id":{"type":"string","description":"Outbound default disposition ID.","example":"2UiwcOPiS8y1XiQMKYFRfw"},"outbound_wrap_up_time":{"type":"integer","description":"Outbound wrap up time, in seconds.","example":60},"outbound_wrap_up_expiration":{"type":"boolean","description":"Auto-close outbound engagements at the end of wrap-up duration.","example":true},"outbound_wrap_up_after_transfer":{"type":"boolean","description":"Whether to enable wrap up after outbound transfer.","example":false}},"description":"Queue configurations for outbound calls."},"scheduled_callback_settings":{"type":"object","properties":{"enable_scheduled_callback":{"type":"boolean","description":"Whether to enable scheduled callback.","example":true},"consumer_inquiry_option":{"maxLength":100,"type":"string","description":"The unique keyword that consumers can choose to identify this queue.","example":"hello 100"},"greeting_message":{"type":"object","properties":{"custom_media_asset_id":{"type":"string","description":"Audio asset ID for custom media.","example":"9gp4iyqUR_qq8tYpWw1EKg"},"language_code":{"type":"string","description":"The default message's language.","example":"English (US)"},"voice_id":{"type":"string","description":"The TTS service's voice ID to generate audio for the greeting message.","example":"Joanna","enum":["Danielle","Gregory","Ivy","Joanna","Joey","Justin","Kendra","Kevin","Kimberly","Matthew","Ruth","Salli","Stephen"]},"message_text":{"maxLength":500,"type":"string","description":"Greeting message free text.","example":"You will be connected to the next available agent in a short moment."}},"description":"The greeting message."}},"description":"Queue configurations for callback and greeting message."}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `1244` <br>\n More than one matching queue found. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1201` <br>\n Queue does not exist: $queueId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_queue:read:admin","contact_center:read:queue:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_queue:read:admin"],"x-granular-scopes":["contact_center:read:queue:admin"]}},"delete":{"tags":["Queues"],"summary":"Delete a queue","description":"Delete a specified queue. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_queue:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:delete:queue:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"queueDelete","parameters":[{"name":"queueId","in":"path","description":"Currently supports two different IDs, the task queue's ID and Contact Center queue's ID. The task queue's ID will be completely deprecated in the future. Change to the Contact Center queue ID as soon as possible.","required":true,"schema":{"type":"string","example":"zeYjXoDOS_eV1QmTpj63PQ"}},{"name":"queue_identifier_type","in":"query","description":"How the path parameter is interpreted. `id` treats it as a system-generated unique identifier. `name` treats it as the resource name.\nWhen using `name`, the resource name must be URL-encoded per RFC 3986.","required":false,"schema":{"type":"string","example":"id","default":"id","enum":["id","name"]}}],"responses":{"204":{"description":"**HTTP Status Code:** `204`   \n \nQueue deleted."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `1244` <br>\n More than one matching queue found. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1201` <br>\n Queue does not exist: $queueId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rest/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_queue:write:admin","contact_center:delete:queue:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_queue:write:admin"],"x-granular-scopes":["contact_center:delete:queue:admin"]}},"patch":{"tags":["Queues"],"summary":"Update a queue","description":"Update a queue's settings.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_queue:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:update:queue:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"queueUpdate","parameters":[{"name":"queueId","in":"path","description":"Currently supports two different IDs, the old task queue's ID and the new Contact Center queue's ID. Since the task queue ID will be deprecated in the future, change to the Contact Center queue's ID as soon as possible.","required":true,"schema":{"type":"string","example":"zeYjXoDOS_eV1QmTpj63PQ"}},{"name":"queue_identifier_type","in":"query","description":"How the path parameter is interpreted. `id` treats it as a system-generated unique identifier. `name` treats it as the resource name.\nWhen using `name`, the resource name must be URL-encoded per RFC 3986.","required":false,"schema":{"type":"string","example":"id","default":"id","enum":["id","name"]}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"queue_name":{"maxLength":150,"type":"string","description":"The Contact Center queue name.","example":"Voice - Customer Support"},"queue_description":{"maxLength":256,"type":"string","description":"The Contact Center queue description.","example":"Agents assigned to this queue handle Customer Support voice calls."},"max_wait_time":{"maximum":86400,"minimum":10,"type":"integer","description":"The task queue's maximum wait time, in seconds.","example":50},"wrap_up_time":{"maximum":300,"minimum":0,"type":"integer","description":"The task queue's wrap up time, in seconds.","example":50},"max_engagement_in_queue":{"maximum":5000,"minimum":0,"type":"integer","description":"The task queue's maximum engagement in queue.","example":50},"short_abandon":{"type":"object","properties":{"enable":{"type":"boolean","description":"Whether to enable the **Short Abandon** setting.","example":false},"threshold":{"maximum":15,"minimum":1,"type":"integer","description":"The task queue's **Short Abandon** threshold, in seconds.","example":5}},"description":"Information about the task queue's [**Short Abandon**](https://support.zoom.us/hc/en-us/articles/4469989300493-Changing-queue-settings) settings. **Channels** voice, video."},"channel_types":{"maxItems":1,"type":"array","description":"The task queue's channel types.","deprecated":true,"items":{"type":"string","example":"voice","deprecated":true,"enum":["voice","chat","sms","video","in_app_chat","messaging","work_item"]}},"channel":{"type":"string","description":"The Contact Center queue's channel.","example":"voice","enum":["voice","video","messaging","email","work_item"]},"distribution_type":{"type":"integer","description":"Distribute incoming engagements.\n**Allowed** \n* 0 - Longest Idle. This value is only supported if the channel types contain voice or video.\n* 1 - Sequential. This value is only supported if the channel types contain voice or video.\n* 2 - Rotating. This value is only supported if the channel types contain voice or video.\n* 3 - Simultaneous. This value is only supported if the channel types contain voice or video.\n* 4 - Most Available. This value is only supported if the channel is **messaging**.\n* 5 - Manual. This value is only supported if the channel types contain video.\n* 6 - Longest idle while ready. This value is only supported if the channel types contain voice or video.\n* 7 - Longest idle for this queue. This value is only supported if the channel types contain voice or video.","example":1,"enum":[0,1,2,3,4,5,6,7]},"distribution_duration_in_seconds":{"maximum":300,"minimum":10,"type":"integer","description":"The notify duration for each queue user, in seconds. The default on new queues is 30 seconds.","example":30},"connecting_media_id":{"type":"string","description":"Media ID to use while users are being connected. **Channels** voice.","example":"connectingAudioMp3","default":"Passing an empty string will set this option to the default media."},"transferring_media_id":{"type":"string","description":"Media ID to use while users are being transferred. **Channels** voice.","example":"transferringAudioMp3","default":"Passing an empty string will set this option to the default media."},"holding_media_id":{"type":"string","description":"Media ID to use while users are on hold. **Channels** voice.","example":"holdingAudioMp3","default":"Passing an empty string will set this option to the default media."},"waiting_room_id":{"type":"string","description":"The users' waiting room ID. **Channels** video.","example":"vPtSZOzBSLWMiorssYWTZw"},"message_accept":{"type":"string","description":"Option to accept a message manually or automatically. **Channels** messaging.","example":"manual","enum":["manual","auto"]},"wrap_up_expiration":{"type":"boolean","description":"Auto-close engagements at the end of wrap-up duration. **Channels** voice, video.","example":true},"wrap_up_after_transfer":{"type":"boolean","description":"Add wrap-up time after transferring an engagement.","example":true},"overflow_to_goodbye_message":{"type":"boolean","description":"Reply goodbye message, then disconnect.\n\nOnly one of these overflow fields can be updated each time, `overflow_to_goodbye_message`, `overflow_to_queue_id`, `overflow_to_flow_id`, or `overflow_to_inbox_id`. Updating an overflow field will clear out the other overflow fields.","example":true},"overflow_to_queue_id":{"type":"string","description":"The queue ID to receive the overflow.\n\nOnly one of these overflow fields can be updated each time, `overflow_to_goodbye_message`, `overflow_to_queue_id`, `overflow_to_flow_id`, or `overflow_to_inbox_id`. Updating an overflow field will clear out the other overflow fields.","example":"m8IhNvUyTUmx7Jm8h5ZvLQ","deprecated":true},"overflow_to_cc_queue_id":{"type":"string","description":"The Contact Center queue ID to receive the overflow.\n\nOnly one of these overflow fields can be updated each time, `overflow_to_goodbye_message`, `overflow_to_cc_queue_id`, `overflow_to_flow_id`, or `overflow_to_inbox_id`. Updating an overflow field will clear out the other overflow fields.","example":"m8IhNvUyTUmx7Jm8h5ZvLQ"},"overflow_to_flow_id":{"type":"string","description":"The flow ID to receive the overflow.\nGet the flow ID from [**List Flows API**](/docs/api/contact-center/#tag/flows/get/contact_center/flows).\n\nOnly one of these overflow fields can be updated each time, `overflow_to_goodbye_message`, `overflow_to_queue_id`, `overflow_to_flow_id`, or `overflow_to_inbox_id`. Updating an overflow field will clear out the other overflow fields.","example":"psjHGHrHQbaX8Zk7ldc81Q"},"overflow_to_inbox_id":{"type":"string","description":"The voicemail inbox ID to receive the overflow.\nGet the inbox ID from [**List Inboxes API**](/docs/api/contact-center/#tag/inboxes/get/contact_center/inboxes).\n\nOnly one of these overflow fields can be updated each time, `overflow_to_goodbye_message`, `overflow_to_queue_id`, `overflow_to_flow_id`, or `overflow_to_inbox_id`. Updating an overflow field will clear out the other overflow fields. **Channels:** voice","example":"cMH8RJA0QsyJBCWIFbWfBQ"},"overflow_to_goodbye_message_asset_id":{"type":"string","description":"Reply goodbye message choose from an asset.\nAsset ID refer to Asset Library OpenAPI.\n* [**Create Asset API**](/docs/api/contact-center/#tag/asset-library/post/contact_center/asset_library/assets)\n* [**List Assets API**](/docs/api/contact-center/#tag/asset-library/get/contact_center/asset_library/assets)","example":"dORBRSTxTN6B0vLJ37Kvnw"},"auto_close_message":{"type":"string","description":"Auto-closed message to web-chat users.","example":"This chat has been auto-closed due to inactivity."},"auto_close_message_enabled":{"type":"boolean","description":"Send an auto-closed message for web chats. **Channels** messaging.","example":true},"auto_close_timeout":{"maximum":1800,"minimum":2,"type":"integer","description":"How long, in minutes, before the chat is auto-closed.","example":10},"auto_close_alert_message":{"type":"string","description":"An alert message to web-chat users before auto-closing.","example":"Chat will auto-close soon if you don't reply"},"auto_close_alert_message_enabled":{"type":"boolean","description":"Send an alert message before auto-closing web chats. **Channels** messaging.","example":true},"auto_close_alert_message_time":{"type":"integer","description":"How long, in minutes, before a warning is sent to the user. Must be less than or equal to `auto_close_timeout`.","example":10},"recording_storage_location":{"type":"string","description":"Determine where to store the recording.\n- us - United States\n- au - Australia\n- br - Brazil\n- ca - Canada\n- de - Germany\n- jp - Japan\n- sg - Singapore\n\n**Channels** voice, video.","example":"us","enum":["us","au","br","ca","de","jp","sg"]},"service_level_threshold_in_seconds":{"maximum":600,"minimum":1,"type":"integer","description":"First message speed by agents for all engagements.","example":15},"service_level_exclude_short_abandoned_calls":{"type":"boolean","description":"Whether to exclude short abandoned calls from service level metrics. **Channels** voice, video.","example":true},"service_level_exclude_long_abandoned_calls":{"type":"boolean","description":"Whether to exclude long abandoned calls from service level metrics. **Channels** voice, video.","example":true},"service_level_exclude_abandoned_quit_engagements":{"type":"boolean","description":"Whether to exclude quit engagements from service level metrics. **Channels** messaging.","example":true},"service_level_exclude_overflow_engagements":{"type":"boolean","description":"Whether to exclude overflow engagements from service level metrics. **Channels** email.","example":true},"service_level_target_in_percentage":{"maximum":100,"minimum":0,"type":"integer","description":"The service-level target as the benchmark to refer to in reports.","example":80},"agent_routing_profile_id":{"type":"string","description":"The queue's agent routing profile ID. If this is empty, the agent routing profile will be removed.","example":"fgjdkhgfieryt7465435kjhdkhg"},"agent_routing_settings":{"type":"object","properties":{"allow_agent_select_skill_for_transfer":{"type":"boolean","description":"Agent routing to allow agent to specify skills during the transfer. This requires the routing profile enable 'Route engagement to last engaged agent first'.","example":true},"maximum_look_back_period":{"maximum":45,"minimum":1,"type":"integer","description":"The timeframe for searching previous engagements with the consumer to determine the last agent, in minutes. **Channels** voice, video.","example":30},"last_engaged_agent_data_from_queue_ids":{"type":"array","description":"Last engaged agent data from the queue.\n\nSelect queues that will be evaluated to determine the last engaged agent, based on maximum look-back period.\n\nDefault to `All queues` if no select queue ID.\n\nTo get the queue ID, use [**List Queues API**](/docs/api/contact-center/#tag/queues/get/contact_center/queues). **Channels** voice, video.","items":{"type":"string","description":"The queue ID.","example":"BxTw_zCQTVO_kGOJh6-vkg"}}},"description":"A routing profile to route the engagement to queue users, based on who has the corresponding skills."},"consumer_routing_profile_id":{"type":"string","description":"The queue's consumer routing profile ID.","example":"fgjdkhgfieryt7465435kjhdkhg"},"engagement_acceptance":{"type":"object","properties":{"acceptance_type":{"type":"string","description":"How to accept an engagement.","example":"manual","enum":["manual","auto"]},"enable_agent_alert_tone":{"type":"boolean","description":"Whether to play an alert tone to the agent.\nCan only enable 'enable_agent_alert_tone' or 'enable_agent_whisper_announcement'. This setting is for engagement acceptance type set as `auto`.","example":true},"enable_agent_whisper_announcement":{"type":"boolean","description":"Whether to play an announcement to the agent.\nCan only enable 'enable_agent_alert_tone' or 'enable_agent_whisper_announcement'. This setting is for engagement acceptance type set as `auto`.","example":true},"agent_whisper_announcement_asset_id":{"type":"string","description":"Play a whisper announcement, chosen from the [**List Assets API**](/docs/api/contact-center/#tag/asset-library/get/contact_center/asset_library/assets), to the agent.\n\nRequired when 'enable_agent_whisper_announcement' is `true`.","example":"dORBRSTxTN6B0vLJ37Kvnw"},"enable_agent_greeting":{"type":"boolean","description":"Whether to enable playing a default agent greeting. This setting is for engagements whose acceptance type is set as `auto`.","example":true},"agent_greeting_asset_id":{"type":"string","description":"Play a greeting message chosen from the asset library. To find the asset ID, use the [**List Assets API**](/docs/api/contact-center/#tag/asset-library/get/contact_center/asset_library/assets).\n\nRequired when 'enable_agent_greeting' is `true`.","example":"dORBRSTxTN6B0vLJ37Kvnw"}},"description":"Queue engagement acceptance configurations."},"inbound_launch_url_info":{"type":"object","properties":{"config":{"maxItems":3,"type":"array","description":"Configurations of launching URL and methods to launch.","items":{"type":"object","properties":{"launch_trigger":{"type":"string","description":"Methods to trigger the launch URL.","example":"ringing","enum":["ringing","answered","ended"]},"launch_url":{"type":"string","description":"URL to be launched. Enter a URL beginning with `https://`.","example":"https://www.example.com"}}}},"enable_launch_url":{"type":"boolean","description":"Whether to enable inbound launch URL section.","example":true}},"description":"Inbound launch URL configurations.\nThe URL link launches for each engagement according to the selected trigger."},"notes_asset_id":{"type":"string","description":"Provide a template from the asset library for agents to follow when writing notes.\nTo find the asset ID, use the [**List Assets API**](/docs/api/contact-center/#tag/asset-library/get/contact_center/asset_library/assets).","example":"dORBRSTxTN6B0vLJ37Kvnw"},"disposition_required":{"type":"boolean","description":"Whether a queue disposition is required.\n* `true` - mandatory\n* `false` - optional","example":true},"default_disposition_id":{"type":"string","description":"When a queue disposition is required. Must assign a default disposition.","example":"dORBRSTxTN6B0vLJ37Kvnw"},"outbound_settings":{"type":"object","properties":{"enable_outbound_calls":{"type":"boolean","description":"Whether to enable outbound call.","example":true},"queue_caller_ids":{"maxItems":20,"type":"array","description":"What customers see on their phone when agents and supervisors reach out to them. Assign numbers that users can update from the default caller ID when they call consumers.\nEach value may be either the phone number ID or the phone number in E.164 format such as +17083362211. The response from GET a queue always echoes the canonical phone number ID.\nGet a caller ID from [Get A Queue API](/docs/api/contact-center/#tag/queues/get/contact_center/queues/{queueId}).\n\n","items":{"type":"string","description":"What customers see on their phone when agents and supervisors reach out to them. Assign numbers that users can update from the default caller ID when they call consumers.\nGet a caller ID from [Get A Queue API](/docs/api/contact-center/#tag/queues/get/contact_center/queues/{queueId}).","example":"jJ2QCIFaS9eLqNi9vF3WPg"}},"outbound_launch_url_info":{"type":"object","properties":{"config":{"maxItems":3,"type":"array","description":"Configurations for launching a URL and methods to launch.","items":{"type":"object","properties":{"launch_trigger":{"type":"string","description":"Methods to launch a URL.","example":"connected","enum":["initiated","connected","ended"]},"url":{"type":"string","description":"URL to be launched. Enter a URL beginning with `https://`.","example":"https://www.example.com"}}}},"enable_launch_url":{"type":"boolean","description":"Whether to enable the outbound launch URL section.","example":true}},"description":"Outbound launch URL configurations."},"outbound_labels":{"type":"object","properties":{"outbound_call_duration_lower_threshold":{"type":"integer","description":"Minimum talking duration for brief outbound engagements, in seconds.","example":3},"outbound_call_duration_upper_threshold":{"type":"integer","description":"Maximum talking duration for brief outbound engagements, in seconds.","example":19}},"description":"The talking duration for brief outbound engagements, labeled in reports as short calls. This also sets the duration for long calls and hang-up calls."},"outbound_transferring_media_id":{"type":"string","description":"Media, chosen from the asset library, to use while users are being transferred. To find the asset ID, use the [**List Assets API**](/docs/api/contact-center/#tag/asset-library/get/contact_center/asset_library/assets). **Channels:** voice","example":"transferringAudioMp3","default":"Passing an empty string will set this option to the default media."},"outbound_holding_media_id":{"type":"string","description":"Media ID, chosen from the asset library, to use while users are on hold. To find the asset ID, use the [**List Assets API**](/docs/api/contact-center/#tag/asset-library/get/contact_center/asset_library/assets). **Channels:** voice","example":"holdingAudioMp3","default":"Passing an empty string will set this option to the default media."},"outbound_notes_asset_id":{"type":"string","description":"Provide a template, chosen from the asset library, for agents to follow when writing notes. To find the asset ID, use the [**List Assets API**](/docs/api/contact-center/#tag/asset-library/get/contact_center/asset_library/assets). **Channels:** voice, video, messaging","example":"dORBRSTxTN6B0vLJ37Kvnw"},"outbound_disposition_required":{"type":"boolean","description":"Whether a queue disposition is required.\n* `true` - mandatory\n* `false` - optional","example":true},"outbound_default_disposition_id":{"type":"string","description":"When a queue disposition is required. Must assign a default disposition.","example":"dORBRSTxTN6B0vLJ37Kvnw"},"outbound_wrap_up_time":{"maximum":3600,"minimum":0,"type":"integer","description":"The task queue's wrap up time, in seconds.","example":50},"outbound_wrap_up_expiration":{"type":"boolean","description":"Auto-close engagements at the end of wrap-up duration. **Channels** voice, video.","example":true},"outbound_wrap_up_after_transfer":{"type":"boolean","description":"Agents can wrap up when transferring internally or when a supervisor takes over from them. **Channels** voice, video.","example":true}},"description":"Queue configurations for outbound settings."},"scheduled_callback_settings":{"type":"object","properties":{"enable_scheduled_callback":{"type":"boolean","description":"Whether to enable scheduled callbacks.\nWhen 'enable_scheduled_callback' is `false`, the other settings under 'scheduled_callback_settings' will not take effect.","example":false},"consumer_inquiry_option":{"maxLength":100,"type":"string","description":"The unique keyword that consumers can choose to identify this queue. This keyword displays to consumers as an inquiry option when they schedule callbacks.","example":"Tech Support 1"},"greeting_message":{"type":"object","properties":{"custom_media_asset_id":{"type":"string","description":"The audio asset ID for a greeting message's custom media.","example":"9gp4iyqUR_qq8tYpWw1EKg"},"language_code":{"type":"string","description":"The default message's language (IETF language tag).","example":"en-US","enum":["zh-CN","zh-TW","yue-CN","cmn-CN","da-DK","nl-NL","en-AU","en-NZ","en-GB","en-US","fr-CA","fr-FR","de-DE","it-IT","ja-JP","ko-KR","pl-PL","pt-BR","pt-PT","ro-RO","ru-RU","es-ES","es-MX","es-US","sv-SE","tr-TR"]},"voice_id":{"type":"string","description":"The TTS service's voice ID to generate audio for the greeting message.","example":"Joanna","enum":["Danielle","Gregory","Ivy","Joanna","Joey","Justin","Kendra","Kevin","Kimberly","Matthew","Ruth","Salli","Stephen"]},"message_text":{"maxLength":500,"type":"string","description":"Greeting message free text.","example":"You will be connected to the next available agent in a short moment."}},"description":"Message to play when consumers receive the callback. Choose customized media from `asset_library` and set 'custom_media_asset_id'. Alternately, set the 'message_text', 'language_code', and 'voice_id' together, then will play the message according to language and voice."}},"description":"Queue configurations for the scheduled callback."},"video_callback_settings":{"type":"object","properties":{"enable_video_callback":{"type":"boolean","description":"Whether to enable video callbacks.","example":true},"time_to_offer_callback":{"maximum":40,"minimum":5,"type":"integer","description":"Time to offer callback to consumers, in minutes. Must be in 5-minute intervals.","example":10},"callback_url_expiration":{"maximum":5,"minimum":2,"type":"integer","description":"Callback URL expiration time, in minutes.","example":3},"enable_resend_callback_url":{"type":"boolean","description":"Whether to enable resending the callback URL.","example":true},"resend_callback_url_time":{"type":"string","description":"**Deprecated** use `resend_callback_url_time_in_seconds` instead.\n\nTime interval for resending the callback URL, in seconds.\n\nIf both this and the `resend_callback_url_time_in_seconds` field are submitted, then `resend_callback_url_time_in_seconds` field takes precedence.","example":"60","deprecated":true,"enum":["60","90","120"]},"resend_callback_url_time_in_seconds":{"maximum":120,"minimum":60,"type":"integer","description":"Time interval for resending the callback URL, in seconds. Valid values are 60, 90, or 120.\n\nIf both this and the deprecated `resend_callback_url_time` field are submitted, then this field takes precedence.","example":60,"enum":[60,90,120]},"enable_mobile_notification":{"type":"boolean","description":"Whether to enable mobile notifications for callbacks.","example":true},"callback_timeout":{"maximum":20160,"minimum":60,"type":"integer","description":"Callback timeout, in minutes. Maximum is 14 days.","example":1440},"enable_callback_cancel_message":{"type":"boolean","description":"Whether to enable callback cancellation email messages.","example":true},"callback_cancel_email_subject":{"maxLength":60,"type":"string","description":"Email subject for callback cancellation.","example":"Your callback has been cancelled"},"callback_cancel_email_body":{"maxLength":1000,"type":"string","description":"Email body for callback cancellation.","example":"We regret to inform you that your scheduled callback has been cancelled."},"enable_callback_cancel_sms_message":{"type":"boolean","description":"Whether to enable callback cancellation SMS messages.","example":true},"callback_cancel_sms_text":{"maxLength":140,"type":"string","description":"SMS text for callback cancellation.","example":"Your callback has been cancelled."},"enable_callback_offter_time":{"type":"boolean","description":"**Deprecated.** Use `enable_callback_offer_time` instead. \n\nWhether to enable specific callback offer times. When `true`, `callback_offer_time` is required.","example":true,"deprecated":true},"enable_callback_offer_time":{"type":"boolean","description":"Whether to enable specific callback offer times. When `true`, `callback_offer_time` is required.","example":true},"callback_offer_time":{"maxItems":50,"type":"array","description":"Specific days and times when callbacks can be offered. Required when `enable_callback_offter_time` is `true`.","items":{"type":"object","properties":{"callback_offer_day":{"type":"string","description":"Day of the week.","example":"Mon","enum":["Mon","Tue","Wed","Thu","Fri","Sat","Sun"]},"callback_offer_start_time":{"type":"string","description":"Start time in `HH:mm` format.","example":"09:00"},"callback_offer_end_time":{"type":"string","description":"End time in `HH:mm` format.","example":"17:00"}}}},"enable_callback_return_time":{"type":"boolean","description":"Whether to enable specific callback return times. When `true`, `callback_return_timezone_id` and `callback_return_day` are required.","example":true},"callback_return_timezone_id":{"type":"string","description":"Timezone ID for callback return times. Required when `enable_callback_return_time` is `true`.","example":"America/Los_Angeles"},"callback_return_day":{"maxItems":50,"type":"array","description":"Specific days and times when consumers can return callbacks. Required when `enable_callback_return_time` is `true`.","items":{"type":"object","properties":{"callback_return_day":{"type":"string","description":"Day of the week.","example":"Mon","enum":["Mon","Tue","Wed","Thu","Fri","Sat","Sun"]},"callback_return_start_time":{"type":"string","description":"Start time in `HH:mm` format.","example":"09:00"},"callback_return_end_time":{"type":"string","description":"End time in `HH:mm` format.","example":"17:00"}}}}},"description":"Video callback settings. **Channels** video."},"direct_transfer_waiting_experience":{"type":"boolean","description":"Whether to apply the queue's waiting experience to calls directly transferring to this queue. **Channels:** voice.","example":true}}}}}},"responses":{"204":{"description":"**HTTP Status Code:** `204`   \n \nQueue updated."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `1205` <br>\n Queue channel type is invalid: {value}. <br>\n**Error Code:** `1206` <br>\n `video_callback_settings` can only be configured for video queues. <br>\n**Error Code:** `1220` <br>\n Invalid engagement acceptance type. <br>\n**Error Code:** `1221` <br>\n Cannot enable both `agent_alert_tone` and `agent_whisper_announcement`. <br>\n**Error Code:** `1222` <br>\n `agent_whisper_announcement_asset_id` is required when `enable_agent_whisper_announcement` is true. <br>\n**Error Code:** `1223` <br>\n `agent_greeting_asset_id` is required when `enable_agent_greeting` is true. <br>\n**Error Code:** `1225` <br>\n Invalid launch URL trigger specified. <br>\n**Error Code:** `1233` <br>\n Launch URL must start with `https://`. <br>\n**Error Code:** `1234` <br>\n Launch URL config is required when launch URL is enabled. <br>\n**Error Code:** `1235` <br>\n `default_disposition_id` is required when `disposition_required` is true. <br>\n**Error Code:** `1236` <br>\n `outbound_default_disposition_id` is required when `outbound_disposition_required` is true. <br>\n**Error Code:** `1240` <br>\n Agent routing profile is required. <br>\n**Error Code:** `1241` <br>\n **Last Called Agent** must be enabled in the agent routing profile. <br>\n**Error Code:** `1206` <br>\n Auto-close warning time must be less than or equal to the auto-close time. <br>\n**Error Code:** `1237` <br>\n Outbound launch URL config is required when launch URL is enabled. <br>\n**Error Code:** `1238` <br>\n Invalid outbound launch URL trigger specified. <br>\n**Error Code:** `1239` <br>\n Outbound launch URL must start with `https://`. <br>\n**Error Code:** `1250` <br>\n `time_to_offer_callback` must be in 5-minute intervals (5, 10, 15, 20, 25, 30, 35, 40). <br>\n**Error Code:** `1251` <br>\n `callback_offer_time` is required when `enable_callback_offer_time` is true. <br>\n**Error Code:** `1252` <br>\n `callback_return_timezone_id` is required when `enable_callback_return_time` is true. <br>\n**Error Code:** `1253` <br>\n `callback_return_day` is required when `enable_callback_return_time` is true. <br>\n**Error Code:** `1244` <br>\n More than one matching queue found. <br>\n**Error Code:** `1019` <br>\n `direct_transfer_waiting_experience` is not enabled for this account. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1201` <br>\n Queue does not exist: {queueId}. <br>\n**Error Code:** `1210` <br>\n Agent routing profile does not exist. <br>\n**Error Code:** `1900` <br>\n Consumer routing profile not found. <br>\n**Error Code:** `2301` <br>\n Asset not found. <br>\n**Error Code:** `2401` <br>\n Disposition not found: {dispositionId}. <br>\n**Error Code:** `2405` <br>\n Disposition is not assigned to queue. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_queue:write:admin","contact_center:update:queue:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_queue:write:admin"],"x-granular-scopes":["contact_center:update:queue:admin"]}}},"/contact_center/queues/{queueId}/agents":{"get":{"tags":["Queues"],"summary":"List queue agents","description":"Retrieve the list of Contact Center users assigned to a queue, including their agent persona assignments for that queue.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_queue:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:list_queue_agents:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"getQueueAgents","parameters":[{"name":"queueId","in":"path","description":"Currently supports two different IDs, the task queue's ID and Contact Center queue's ID. The task queue's ID will be completely deprecated in the future. Change to the Contact Center queue ID as soon as possible.","required":true,"schema":{"type":"string","example":"zeYjXoDOS_eV1QmTpj63PQ"}},{"name":"queue_identifier_type","in":"query","description":"How the path parameter is interpreted. `id` treats it as a system-generated unique identifier. `name` treats it as the resource name.\nWhen using `name`, the resource name must be URL-encoded per RFC 3986.","required":false,"schema":{"type":"string","example":"id","default":"id","enum":["id","name"]}},{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of records returned in a single API call.","required":false,"schema":{"maximum":300,"type":"integer","format":"int32","example":30,"default":30}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \nQueue agents list returned.","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"maxLength":100,"type":"string","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":100,"minimum":1,"type":"integer","description":"The number of records returned within a single API call.","example":30,"default":30},"total_records":{"minimum":0,"type":"integer","description":"The total number of all records available across pages.","example":10},"agents":{"type":"array","description":"Information about the agents.","items":{"type":"object","properties":{"user_id":{"maxLength":36,"type":"string","description":"The Meetings user identifier.","example":"IGTRVt3gQ2i-WjoUIjeZxw"},"cc_user_id":{"maxLength":36,"type":"string","description":"The Contact Center user identifier.","example":"hKuMAiDdRlSwMkBxR5we7g"},"display_name":{"type":"string","description":"The user's display name.","example":"Jane Doe"},"user_email":{"type":"string","description":"The user's email address.","format":"email","example":"jchill@example.com"},"role_id":{"maxLength":36,"type":"string","description":"The user's Contact Center role identifier.","example":"0TFVsJqNS82CwkQJLqj1zA"},"role_name":{"maxLength":36,"type":"string","description":"The user's Contact Center role name.","example":"Admin"},"status_id":{"type":"string","description":"The user's availability status ID.","example":"1"},"status_name":{"type":"string","description":"The user's [availability status](https://support.zoom.us/hc/en-us/articles/4470584918541-Setting-availability-status). \n* Offline \n* Ready \n* Not Ready \n* Occupied \n* A custom user status, such as **Lunch**.","example":"Offline","enum":["Offline","Ready","Not Ready","Occupied"]},"user_access":{"type":"string","description":"The user's access status. \n* `active` - The user's role permissions allow them to access the Contact Center. \n* `inactive` - The user cannot access the Contact Center.","example":"active","enum":["active","inactive"]},"opt_in_out_status":{"type":"integer","description":"Opt out status.\n`0` - Opted in by agent himself or supervisor.\n`1` - Opted out by supervisor or admin.\n`2` - Opted out by agent himself.","example":0,"enum":[0,1,2]},"teams":{"maxItems":20,"type":"array","description":"The teams the user is assigned to.","items":{"type":"object","properties":{"team_id":{"type":"string","description":"The ID of the team.","example":"qlU902FoTD-dFi9QnCdZhw"},"team_name":{"type":"string","description":"The display name of the team.","example":"Support Team"}}}}},"description":"Information about the task queue agent."}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `1244` <br>\n More than one matching queue found. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1201` <br>\n Queue does not exist: $queueId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_queue:read:admin","contact_center:read:list_queue_agents:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_queue:read:admin"],"x-granular-scopes":["contact_center:read:list_queue_agents:admin"]}},"post":{"tags":["Queues"],"summary":"Assign queue agents","description":"Assign users to a Contact Center queue as agent persona.\n\nThe API response will contain only those users confirmed to have been assigned to the queue, and ignores any unrecognized user ID or users already assigned to the queue.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_queue:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:write:queue_agent:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"assignQueueAgents","parameters":[{"name":"queueId","in":"path","description":"The queue identifier. Use either the task queue ID or Contact Center queue ID.","required":true,"schema":{"type":"string","example":"zeYjXoDOS_eV1QmTpj63PQ"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"user_ids":{"maxItems":30,"uniqueItems":true,"type":"array","description":"The user identifiers. The values can be a mix of email addresses, Meetings user IDs, or Contact Center user IDs.","items":{"type":"string","example":"ukAAkZKfROKMSw1bj_RDFQ"}}}}}}},"responses":{"201":{"description":"**HTTP Status Code:** `201`   \n \nSuccessfully assigned queue agents. Can be empty.","content":{"application/json":{"schema":{"type":"object","properties":{"agents":{"type":"array","description":"Information about the agents.","items":{"type":"object","properties":{"user_id":{"maxLength":36,"type":"string","description":"The Meetings user identifier.","example":"IGTRVt3gQ2i-WjoUIjeZxw"},"cc_user_id":{"maxLength":36,"type":"string","description":"The Contact Center user identifier.","example":"hKuMAiDdRlSwMkBxR5we7g"},"display_name":{"type":"string","description":"The user's display name.","example":"Jane Doe"},"user_email":{"type":"string","description":"The user's email address.","format":"email","example":"jchill@example.com"},"role_id":{"maxLength":36,"type":"string","description":"The user's Contact Center role identifier.","example":"0TFVsJqNS82CwkQJLqj1zA"},"role_name":{"maxLength":36,"type":"string","description":"The user's Contact Center role name.","example":"Admin"},"status_id":{"type":"string","description":"The user's availability status ID.","example":"1"},"status_name":{"type":"string","description":"The user's [availability status](https://support.zoom.us/hc/en-us/articles/4470584918541-Setting-availability-status). \n* Offline \n* Ready \n* Not Ready \n* Occupied \n* A custom user status, such as Lunch.","example":"Offline","enum":["Offline","Ready","Not Ready","Occupied"]},"user_access":{"type":"string","description":"The user's access status. \n* `active` - The user's role permissions allow them to access the Contact Center. \n* `inactive` - The user cannot access the Contact Center.","example":"active","enum":["active","inactive"]},"opt_in_out_status":{"type":"integer","description":"Opt out status.\n`0` - Opted in by agent himself or supervisor.\n`1` - Opted out by supervisor or admin.\n`2` - Opted out by agent himself.","example":0,"enum":[0,1,2]}},"description":"Information about the task queue agent."}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `300` <br>\n Invalid field. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1201` <br>\n Queue does not exist: {queueId}. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_queue:write:admin","contact_center:write:queue_agent:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_queue:write:admin"],"x-granular-scopes":["contact_center:write:queue_agent:admin"]}}},"/contact_center/queues/{queueId}/agents/{userId}":{"delete":{"tags":["Queues"],"summary":"Unassign a queue agent","description":"Remove an agent from a Contact Center queue. The specified user will be unassigned from the queue and will no longer receive engagements routed through it. The user must be currently assigned as an agent to the queue.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_queue:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:delete:queue_agent:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"deleteQueueAgent","parameters":[{"name":"queueId","in":"path","description":"The queue identifier. Use either the task queue ID or Contact Center queue ID.","required":true,"schema":{"type":"string","example":"zeYjXoDOS_eV1QmTpj63PQ"}},{"name":"userId","in":"path","description":"The user identifier. This can be the Meetings user ID `user_id`, the Contact Center user ID `cc_user_id`, an email address, or [the 'me' value](/docs/api/using-zoom-apis/#the-me-keyword) to refer to the user associated with the access token.","required":true,"schema":{"type":"string","example":"IGTRVt3gQ2i-WjoUIjeZxw"}}],"responses":{"204":{"description":"**HTTP Status Code:** `204`   \n \nQueue agent removed."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `300` <br>\n Validation failed. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1201` <br>\n Queue does not exist: {queueId}. <br>\n**Error Code:** `1001` <br>\n User does not exist: {userId}. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_queue:write:admin","contact_center:delete:queue_agent:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_queue:write:admin"],"x-granular-scopes":["contact_center:delete:queue_agent:admin"]}},"patch":{"tags":["Queues"],"summary":"Update a queue agent's opt-in/opt-out status","description":"Updates the opt-in or opt-out status of an agent assigned to a Contact Center queue. Use this endpoint to control whether an agent receives engagements from the specified queue. Opting an agent out temporarily removes them from the queue's routing pool without removing their queue assignment.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_queue:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:update:queue_agent:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"updateQueueAgent","parameters":[{"name":"queueId","in":"path","description":"The queue identifier. Use either the task queue ID or Contact Center queue ID.","required":true,"schema":{"maxLength":36,"type":"string","example":"zeYjXoDOS_eV1QmTpj63PQ"}},{"name":"userId","in":"path","description":"The user identifier. This can be the Meetings user ID `user_id`, the Contact Center user ID `cc_user_id`, an email address, or [the 'me' value](/docs/api/using-zoom-apis/#the-me-keyword) to refer to the user associated with the access token.","required":true,"schema":{"type":"string","example":"IGTRVt3gQ2i-WjoUIjeZxw"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["opt_in_out_status"],"type":"object","properties":{"opt_in_out_status":{"maximum":2,"minimum":0,"type":"integer","description":"Opt in/out status.\n\n`0` -\tOpted in. The agent is opted in and available to receive engagements from this queue.\n`1` - \tOpted out by supervisor or admin. A supervisor or administrator has opted out this agent from receiving engagements from this queue.\n`2` - \tOpted out by agent. The agent has opted themselves out from receiving engagements from this queue.","format":"int32","example":0,"enum":[0,1,2]}}}}}},"responses":{"204":{"description":"**HTTP Status Code:** `204`   \n \nQueue agent updated."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `1010` <br>\n The agent must be in available state (Ready) to opt-in for the queue. <br>\n**Error Code:** `1011` <br>\n The agent is not allowed to opt in or out of their assigned queues. <br>\n**Error Code:** `300` <br>\n Invalid field. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1001` <br>\n User does not exist: {userId}. <br>\n**Error Code:** `1201` <br>\n Queue does not exist: {queueId}. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rest/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_queue:write:admin","contact_center:update:queue_agent:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_queue:write:admin"],"x-granular-scopes":["contact_center:update:queue_agent:admin"]}}},"/contact_center/queues/{queueId}/dispositions":{"get":{"tags":["Queues"],"summary":"List queue dispositions","description":"Return a list of queue's [dispositions](https://support.zoom.us/hc/en-us/articles/4470153057549-Managing-dispositions). \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_queue:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:list_dispositions:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"getQueueDispositions","parameters":[{"name":"queueId","in":"path","description":"Currently supports two different IDs, the task queue's ID and Contact Center queue's ID. The task queue's ID will be completely deprecated in the future. Change to the Contact Center queue ID as soon as possible.","required":true,"schema":{"type":"string","example":"zeYjXoDOS_eV1QmTpj63PQ"}},{"name":"queue_identifier_type","in":"query","description":"How the path parameter is interpreted. `id` treats it as a system-generated unique identifier. `name` treats it as the resource name.\nWhen using `name`, the resource name must be URL-encoded per RFC 3986.","required":false,"schema":{"type":"string","example":"id","default":"id","enum":["id","name"]}},{"name":"assign_type","in":"query","description":"The assignment type. The default is `inbound`.","required":false,"schema":{"type":"string","example":"inbound","default":"inbound","enum":["inbound","outbound"]}},{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of records returned in a single API call.","required":false,"schema":{"maximum":300,"type":"integer","format":"int32","example":30,"default":30}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \nQueue dispositions list returned.","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"maxLength":100,"type":"string","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":100,"minimum":1,"type":"integer","description":"The number of records returned within a single API call.","example":30,"default":30},"total_records":{"minimum":0,"type":"integer","description":"The total number of all records available across pages.","example":10},"dispositions":{"type":"array","description":"Information about the task queue's dispositions.","items":{"type":"object","properties":{"disposition_id":{"type":"string","description":"The disposition's ID.","example":"W_VATTk_Q5aW6z5rZtBxAQ"},"disposition_name":{"type":"string","description":"The disposition's name.","example":"Inquiry"},"disposition_description":{"type":"string","description":"Information about the disposition.","example":"Inquiry dispositions."},"status":{"type":"string","description":"The disposition's status. \n* `inactive` &mdash; Deactivated. \n* `active` &mdash; Activated.","example":"inactive","enum":["inactive","active"]},"last_modified_time":{"type":"string","description":"The date and time when this data was last modified.","format":"date-time","example":"2022-02-15T09:27:15Z"},"modified_by":{"type":"string","description":"The ID of the user that last modified this data.","example":"IGTRVt3gQ2i-WjoUIjeZxw"},"queue_name":{"type":"string","description":"The Contact Center queue's name.","example":"default voice queue"},"cc_queue_id":{"type":"string","description":"The Contact Center queue's ID.","example":"11Fx7UtNQaaWBM9XBCFX2Q"},"assign_type":{"type":"string","description":"The disposition's assignment type.","example":"inbound","default":"inbound","enum":["inbound","outbound"]}},"description":"Information about the task queue disposition."}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `1244` <br>\n More than one matching queue found. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1201` <br>\n Queue does not exist: $queueId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rest/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_queue:read:admin","contact_center:read:list_dispositions:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_queue:read:admin"],"x-granular-scopes":["contact_center:read:list_dispositions:admin"]}},"post":{"tags":["Queues"],"summary":"Assign queue dispositions","description":"Add dispositions to a queue. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_queue:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:write:queue disposition:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"assignQueueDispositions","parameters":[{"name":"queueId","in":"path","description":"Currently supports two different IDs, the task queue's ID and Contact Center queue's ID. The task queue's ID will be completely deprecated in the future. Change to the Contact Center queue ID as soon as possible.","required":true,"schema":{"type":"string","example":"zeYjXoDOS_eV1QmTpj63PQ"}},{"name":"queue_identifier_type","in":"query","description":"How the path parameter is interpreted. `id` treats it as a system-generated unique identifier. `name` treats it as the resource name.\nWhen using `name`, the resource name must be URL-encoded per RFC 3986.","required":false,"schema":{"type":"string","example":"id","default":"id","enum":["id","name"]}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"disposition_ids":{"maxItems":30,"type":"array","description":"The dispositions to assign to the queue. This request supports a maximum of 30 dispositions per call.","items":{"type":"string","example":"sgdfghr_2454y5hdfgsfsgsdg"}},"assign_type":{"type":"string","description":"The assignment type. The default is `inbound`.","example":"inbound","default":"inbound","enum":["inbound","outbound"]}}}}}},"responses":{"201":{"description":"**HTTP Status Code:** `201`   \n \nQueue dispositions assigned.","content":{"application/json":{"schema":{"type":"object","properties":{"dispositions":{"type":"array","description":"Information about the dispositions","items":{"type":"object","properties":{"disposition_id":{"type":"string","description":"The disposition's ID.","example":"W_VATTk_Q5aW6z5rZtBxAQ"},"disposition_name":{"type":"string","description":"The disposition's name.","example":"Inquiry"},"disposition_description":{"type":"string","description":"Information about the disposition.","example":"Inquiry dispositions."},"status":{"type":"string","description":"The disposition's status. \n* `inactive` &mdash; Deactivated. \n* `active` &mdash; Activated.","example":"inactive","enum":["inactive","active"]},"last_modified_time":{"type":"string","description":"The date and time when this data was last modified.","format":"date-time","example":"2022-02-15T09:27:15Z"},"modified_by":{"type":"string","description":"The ID of the user that last modified this data.","example":"IGTRVt3gQ2i-WjoUIjeZxw"},"queue_name":{"type":"string","description":"The Contact Center queue's name.","example":"default voice queue"},"cc_queue_id":{"type":"string","description":"The Contact Center queue's ID.","example":"11Fx7UtNQaaWBM9XBCFX2Q"},"assign_type":{"type":"string","description":"The disposition's assignment type.","example":"inbound","default":"inbound","enum":["inbound","outbound"]}},"description":"Information about the task queue disposition."}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `300` <br>\n Validation failed. <br>\n**Error Code:** `1244` <br>\n More than one matching queue found. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1201` <br>\n Queue does not exist: $queueId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rest/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_queue:write:admin","contact_center:write:queue disposition:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_queue:write:admin"],"x-granular-scopes":["contact_center:write:queue disposition:admin"]}}},"/contact_center/queues/{queueId}/dispositions/sets":{"get":{"tags":["Queues"],"summary":"List queue disposition sets","description":"Return a list of queue's disposition sets(https://support.zoom.us/hc/en-us/articles/4470153057549-Managing-dispositions). \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_queue:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:list_disposition_sets:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"getQueueDispositionSets","parameters":[{"name":"queueId","in":"path","description":"Currently supports two different IDs, the task queue's ID and Contact Center queue's ID. The task queue's ID will be completely deprecated in the future. Change to the Contact Center queue ID as soon as possible.","required":true,"schema":{"type":"string","example":"zeYjXoDOS_eV1QmTpj63PQ"}},{"name":"queue_identifier_type","in":"query","description":"How the path parameter is interpreted. `id` treats it as a system-generated unique identifier. `name` treats it as the resource name.\nWhen using `name`, the resource name must be URL-encoded per RFC 3986.","required":false,"schema":{"type":"string","example":"id","default":"id","enum":["id","name"]}},{"name":"assign_type","in":"query","description":"The assignment type. The default is `inbound`.","required":false,"schema":{"type":"string","example":"inbound","default":"inbound","enum":["inbound","outbound"]}},{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of records returned in a single API call.","required":false,"schema":{"maximum":300,"type":"integer","format":"int32","example":30,"default":30}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \nQueue disposition sets list returned.","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"maxLength":100,"type":"string","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":100,"minimum":1,"type":"integer","description":"The number of records returned within a single API call.","example":30,"default":30},"total_records":{"minimum":0,"type":"integer","description":"The total number of all records available across pages.","example":10},"disposition_sets":{"type":"array","description":"Information about the task queue's disposition sets.","items":{"type":"object","properties":{"disposition_set_id":{"type":"string","description":"The disposition set's ID.","example":"W_VATTk_Q5aW6z5rZtBxAQ"},"disposition_set_name":{"type":"string","description":"The disposition set's name.","example":"Inquiry"},"disposition_set_description":{"type":"string","description":"The information about the disposition set.","example":"Inquiry dispositions."},"status":{"type":"string","description":"The disposition set's status. \n* `inactive` &mdash; Deactivated. \n* `active` &mdash; Activated.","example":"inactive","enum":["inactive","active"]},"last_modified_time":{"type":"string","description":"The date and time when this data was last modified.","format":"date-time","example":"2022-02-15T09:27:15Z"},"modified_by":{"type":"string","description":"The ID of the user that last modified this data.","example":"IGTRVt3gQ2i-WjoUIjeZxw"},"queue_name":{"type":"string","description":"The Contact Center queue's name.","example":"default voice queue"},"cc_queue_id":{"type":"string","description":"The Contact Center queue's ID.","example":"11Fx7UtNQaaWBM9XBCFX2Q"},"assign_type":{"type":"string","description":"The disposition set's assignment type.","example":"inbound","default":"inbound","enum":["inbound","outbound"]}},"description":"Information about the task's queue disposition set."}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `1244` <br>\n More than one matching queue found. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1201` <br>\n Queue does not exist: $queueId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_queue:read:admin","contact_center:read:list_disposition_sets:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_queue:read:admin"],"x-granular-scopes":["contact_center:read:list_disposition_sets:admin"]}},"post":{"tags":["Queues"],"summary":"Assign queue disposition sets","description":"Add disposition sets to a queue. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_queue:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:write:queue_disposition_set:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"assignQueueDispositionSets","parameters":[{"name":"queueId","in":"path","description":"Currently supports two different IDs, the task queue's ID and Contact Center queue's ID. The task queue's ID will be completely deprecated in the future. Change to the Contact Center queue ID as soon as possible.","required":true,"schema":{"type":"string","example":"zeYjXoDOS_eV1QmTpj63PQ"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"disposition_set_ids":{"maxItems":30,"type":"array","description":"The IDs of the disposition sets to assign to the queue. This request supports a maximum of 30 dispositions per call.","items":{"type":"string","example":"sgdfghr_2454y5hdfgsfsgsdg"}},"assign_type":{"type":"string","description":"The assignment type. The default is `inbound`.","example":"inbound","default":"inbound","enum":["inbound","outbound"]}}}}}},"responses":{"201":{"description":"**HTTP Status Code:** `201`   \n \nQueue disposition sets assigned.","content":{"application/json":{"schema":{"type":"object","properties":{"disposition_sets":{"type":"array","description":"Information about the queue's disposition sets.","items":{"type":"object","properties":{"disposition_set_id":{"type":"string","description":"The disposition set's ID.","example":"W_VATTk_Q5aW6z5rZtBxAQ"},"disposition_set_name":{"type":"string","description":"The disposition set's name.","example":"Inquiry"},"disposition_set_description":{"type":"string","description":"The information about the disposition set.","example":"Inquiry dispositions."},"status":{"type":"string","description":"The disposition set's status. \n* `inactive` &mdash; Deactivated. \n* `active` &mdash; Activated.","example":"inactive","enum":["inactive","active"]},"last_modified_time":{"type":"string","description":"The date and time when this data was last modified.","format":"date-time","example":"2022-02-15T09:27:15Z"},"modified_by":{"type":"string","description":"The ID of the user that last modified this data.","example":"IGTRVt3gQ2i-WjoUIjeZxw"},"queue_name":{"type":"string","description":"The Contact Center queue's name.","example":"default voice queue"},"cc_queue_id":{"type":"string","description":"The Contact Center queue's ID.","example":"11Fx7UtNQaaWBM9XBCFX2Q"},"assign_type":{"type":"string","description":"The disposition set's assignment type.","example":"inbound","default":"inbound","enum":["inbound","outbound"]}},"description":"Information about the task's queue disposition set."}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1201` <br>\n Queue does not exist: $queueId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_queue:write:admin","contact_center:write:queue_disposition_set:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_queue:write:admin"],"x-granular-scopes":["contact_center:write:queue_disposition_set:admin"]}}},"/contact_center/queues/{queueId}/dispositions/sets/{dispositionSetId}":{"delete":{"tags":["Queues"],"summary":"Unassign a queue disposition set","description":"Delete a disposition set from a queue. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_queue:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:delete:queue_disposition_set:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"deleteQueueDispositionSet","parameters":[{"name":"queueId","in":"path","description":"Currently supports two different IDs, the task queue's ID and Contact Center queue's ID. The task queue's ID will be completely deprecated in the future. Change to the Contact Center queue ID as soon as possible.","required":true,"schema":{"type":"string","example":"zeYjXoDOS_eV1QmTpj63PQ"}},{"name":"dispositionSetId","in":"path","description":"The queue disposition set's ID.","required":true,"schema":{"type":"string","example":"sgdfghr_2454y5hdfgsfsgsdg"}},{"name":"assign_type","in":"query","description":"The assignment type. The default is `inbound`.","required":false,"schema":{"type":"string","example":"inbound","default":"inbound","enum":["inbound","outbound"]}}],"responses":{"204":{"description":"**HTTP Status Code:** `204`   \n \nQueue disposition set deleted."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1201` <br>\n Queue disposition set does not exist: $dispositionSetId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_queue:write:admin","contact_center:delete:queue_disposition_set:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_queue:write:admin"],"x-granular-scopes":["contact_center:delete:queue_disposition_set:admin"]}}},"/contact_center/queues/{queueId}/dispositions/{dispositionId}":{"delete":{"tags":["Queues"],"summary":"Unassign a queue disposition","description":"Delete a disposition from a queue.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_queue:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:delete:queue_disposition:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"deleteQueueDisposition","parameters":[{"name":"queueId","in":"path","description":"Currently supports two different IDs, the task queue's ID and Contact Center queue's ID. The task queue's ID will be completely deprecated in the future. Change to the Contact Center queue ID as soon as possible.","required":true,"schema":{"type":"string","example":"zeYjXoDOS_eV1QmTpj63PQ"}},{"name":"dispositionId","in":"path","description":"The queue disposition's ID.","required":true,"schema":{"type":"string","example":"p985PidGR5K72vAoTDJocA"}},{"name":"queue_identifier_type","in":"query","description":"How the `queueId` path parameter is interpreted. `id` treats it as a system-generated unique identifier. `name` treats it as the resource name.\nWhen using `name`, the resource name must be URL-encoded per RFC 3986.","required":false,"schema":{"type":"string","example":"id","default":"id","enum":["id","name"]}},{"name":"disposition_identifier_type","in":"query","description":"How the `dispositionId` path parameter is interpreted. `id` treats it as a system-generated unique identifier. `name` treats it as the resource name.\nWhen using `name`, the resource name must be URL-encoded per RFC 3986.","required":false,"schema":{"type":"string","example":"id","default":"id","enum":["id","name"]}},{"name":"assign_type","in":"query","description":"The assignment type. The default is `inbound`.","required":false,"schema":{"type":"string","example":"inbound","default":"inbound","enum":["inbound","outbound"]}}],"responses":{"204":{"description":"**HTTP Status Code:** `204`   \n \nQueue disposition deleted."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `1244` <br>\n More than one matching queue found. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1201` <br>\n Queue disposition does not exist: $dispositionId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_queue:write:admin","contact_center:delete:queue_disposition:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_queue:write:admin"],"x-granular-scopes":["contact_center:delete:queue_disposition:admin"]}}},"/contact_center/queues/{queueId}/interrupt":{"get":{"tags":["Queues"],"summary":"Get a queue's interrupt settings","description":"Retrieve the interrupt settings for a specific queue, including audio interrupts and notify interrupts. If set up, returns detailed information about custom audio configurations.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_queue:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:queue:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"getQueueInterruptSettings","parameters":[{"name":"queueId","in":"path","description":"The queue's unique identifier.","required":true,"schema":{"type":"string","example":"zeYjXoDOS_eV1QmTpj63PQ"}},{"name":"is_enable_api_control","in":"query","description":"When set, filters audio interrupts by API control status. Only applicable when the feature flag **Enable audio interrupt status control using OpenAPI** is enabled.","required":false,"schema":{"type":"boolean","example":true}},{"name":"bucket_id","in":"query","description":"The waiting experience bucket's unique identifier. When provided, returns interrupt settings for the specified bucket instead of the queue-level settings.","required":false,"schema":{"type":"string","example":"zeYjXoDOS_eV1QmTpj63PQ"}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`\n\nQueue interrupt settings retrieved successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"bucket_id":{"type":"string","description":"The waiting experience bucket's unique identifier. Only present when the request includes a `bucket_id` parameter.","nullable":true,"example":"zeYjXoDOS_eV1QmTpj63PQ"},"audio_interrupts":{"type":"array","description":"List of audio messages to play during queue wait time.","items":{"type":"object","properties":{"audio_asset_id":{"type":"string","description":"The ID of the audio asset to play.","example":"asset_001"},"audio_filename":{"type":"string","description":"The audio asset's filename.","readOnly":true,"example":"welcome_message.mp3"},"audio_url":{"type":"string","description":"The URL to access the audio asset.","readOnly":true,"example":"https://www.example.com/audio/asset_001.mp3"},"play_after_seconds":{"minimum":0,"type":"integer","description":"Number of seconds to wait before playing this audio.","example":30},"is_loop":{"type":"boolean","description":"Whether to loop this audio message.","example":false},"loop_interval":{"minimum":1,"type":"integer","description":"Interval in seconds between loops. Required when `is_loop` is `true`.","nullable":true,"example":45},"disable_audio":{"type":"boolean","description":"Whether this audio interrupt is disabled.","example":false}},"description":"Audio interrupt configuration for playing messages during queue wait time."}},"notify_interrupts":{"type":"object","properties":{"play_after_seconds":{"minimum":0,"type":"integer","description":"Number of seconds to wait before playing the first notification.","example":15},"is_loop":{"type":"boolean","description":"Whether to repeat the notification periodically.","example":true},"loop_interval":{"minimum":1,"type":"integer","description":"Interval in seconds between notification repetitions. Required when `is_loop` is `true`.","nullable":true,"example":30},"notify_position_in_queue":{"type":"object","properties":{"custom_audio_type":{"type":"string","description":"The type of custom audio configuration.\n\n- `standard` - Single pre-recorded audio file that includes the complete message.\n- `advanced` - Multiple audio segments combined with dynamic variables.","example":"advanced","enum":["standard","advanced"]},"custom_audio":{"maxItems":7,"minItems":1,"type":"array","description":"The main custom audio prompts for position announcement.\n\n**STANDARD mode** - Exactly 1 audio file.\n**ADVANCED mode** - 1-7 audio segments.","items":{"type":"object","properties":{"order":{"maximum":7,"minimum":1,"type":"integer","description":"The playback order of this audio prompt in the sequence.","example":1},"audio_asset_id":{"type":"string","description":"The ID of the audio asset to play at this position.\n\n**Note** Provide either `audio_asset_id` or `audio_variable`, but not both.","nullable":true,"example":"piq_intro_001"},"audio_filename":{"type":"string","description":"The audio asset's filename. This is a read-only field populated by the system.","nullable":true,"readOnly":true,"example":"you_are_number.mp3"},"audio_variable":{"type":"string","description":"A dynamic variable to announce at this position.\n\n- `customer_position` - Announces the caller's position in the queue.\n- `wait_time` - Announces the estimated wait time.\n\n**Note** Provide either `audio_asset_id` or `audio_variable`, but not both.","nullable":true,"example":"customer_position","enum":["customer_position","wait_time"]}},"description":"A single custom audio prompt, which can be either an audio file or a dynamic variable."}},"over_limit_custom_audio":{"maxItems":1,"type":"array","description":"Custom audio to play when the caller's position exceeds the digit audio library limit.\n\nAlways uses STANDARD mode.","items":{"type":"object","properties":{"order":{"maximum":7,"minimum":1,"type":"integer","description":"The playback order of this audio prompt in the sequence.","example":1},"audio_asset_id":{"type":"string","description":"The ID of the audio asset to play at this position.\n\n**Note** Provide either `audio_asset_id` or `audio_variable`, but not both.","nullable":true,"example":"piq_intro_001"},"audio_filename":{"type":"string","description":"The audio asset's filename. This is a read-only field populated by the system.","nullable":true,"readOnly":true,"example":"you_are_number.mp3"},"audio_variable":{"type":"string","description":"A dynamic variable to announce at this position.\n\n- `customer_position` - Announces the caller's position in the queue.\n- `wait_time` - Announces the estimated wait time.\n\n**Note** Provide either `audio_asset_id` or `audio_variable`, but not both.","nullable":true,"example":"customer_position","enum":["customer_position","wait_time"]}},"description":"A single custom audio prompt, which can be either an audio file or a dynamic variable."}}},"description":"Position In Queue notification settings. Announces the caller's position in the queue."},"notify_estimated_wait_time":{"type":"object","properties":{"custom_audio_type":{"type":"string","description":"The type of custom audio configuration.\n\n- `standard` - Single pre-recorded audio file that includes the complete message.\n- `advanced` - Multiple audio segments combined with dynamic variables.","example":"advanced","enum":["standard","advanced"]},"custom_audio":{"maxItems":7,"minItems":1,"type":"array","description":"The main custom audio prompts for wait time announcement.\n\n**STANDARD mode** Exactly 1 audio file.\n**ADVANCED mode** 1-7 audio segments.","items":{"type":"object","properties":{"order":{"maximum":7,"minimum":1,"type":"integer","description":"The playback order of this audio prompt in the sequence.","example":1},"audio_asset_id":{"type":"string","description":"The ID of the audio asset to play at this position.\n\n**Note** Provide either `audio_asset_id` or `audio_variable`, but not both.","nullable":true,"example":"piq_intro_001"},"audio_filename":{"type":"string","description":"The filename of the audio asset. This is a read-only field populated by the system.","nullable":true,"readOnly":true,"example":"you_are_number.mp3"},"audio_variable":{"type":"string","description":"A dynamic variable to announce at this position.\n\n- `customer_position` - Announces the caller's position in the queue.\n- `wait_time` - Announces the estimated wait time.\n\n**Note** Provide either `audio_asset_id` or `audio_variable`, but not both.","nullable":true,"example":"customer_position","enum":["customer_position","wait_time"]}},"description":"A single custom audio prompt, which can be either an audio file or a dynamic variable."}},"over_limit_custom_audio":{"maxItems":1,"type":"array","description":"Custom audio to play when the estimated wait time exceeds the digit audio library limit.\n\nAlways uses STANDARD mode.","items":{"type":"object","properties":{"order":{"maximum":7,"minimum":1,"type":"integer","description":"The playback order of this audio prompt in the sequence.","example":1},"audio_asset_id":{"type":"string","description":"The ID of the audio asset to play at this position.\n\n**Note** Provide either `audio_asset_id` or `audio_variable`, but not both.","nullable":true,"example":"piq_intro_001"},"audio_filename":{"type":"string","description":"The audio asset's filename. This is a read-only field populated by the system.","nullable":true,"readOnly":true,"example":"you_are_number.mp3"},"audio_variable":{"type":"string","description":"A dynamic variable to announce at this position.\n\n- `customer_position` - Announces the caller's position in the queue.\n- `wait_time` - Announces the estimated wait time.\n\n**Note** Provide either `audio_asset_id` or `audio_variable`, but not both.","nullable":true,"example":"wait_time","enum":["customer_position","wait_time"]}},"description":"A single custom audio prompt, which can be either an audio file or a dynamic variable."}},"backup_custom_audio":{"maxItems":1,"type":"array","description":"Custom audio to play when the system cannot calculate an estimated wait time.\n\nAlways uses STANDARD mode.","items":{"type":"object","properties":{"order":{"maximum":7,"minimum":1,"type":"integer","description":"The playback order of this audio prompt in the sequence.","example":1},"audio_asset_id":{"type":"string","description":"The ID of the audio asset to play at this position.\n\n**Note** Provide either `audio_asset_id` or `audio_variable`, but not both.","nullable":true,"example":"piq_intro_001"},"audio_filename":{"type":"string","description":"The audio asset's filename. This is a read-only field populated by the system.","nullable":true,"readOnly":true,"example":"you_are_number.mp3"},"audio_variable":{"type":"string","description":"A dynamic variable to announce at this position.\n\n- `customer_position` - Announces the caller's position in the queue.\n- `wait_time` - Announces the estimated wait time.\n\n**Note** Provide either `audio_asset_id` or `audio_variable`, but not both.","nullable":true,"example":"wait_time","enum":["customer_position","wait_time"]}},"description":"A single custom audio prompt, which can be either an audio file or a dynamic variable."}}},"description":"Estimated wait time notification settings. Announces the estimated wait time to the caller."}},"description":"Notify interrupt settings for estimated wait time and position in queue announcements."}},"description":"Queue interrupt settings response containing audio and notify interrupt configurations."}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `1205` <br>\n Queue channel type is invalid. Only voice queues support interrupt settings. <br>\n**Error Code:** `2313` <br>\n Bucket option is not enabled for queue {queueId}. Enable bucket option before using bucket_id. <br>\n**Error Code:** `` <br>\n  <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  **HTTP Status Code:** `403`\n\nForbidden\n\nUser does not have permission to read queue settings. \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1201` <br>\n Queue does not exist: {queueId}. <br>\n**Error Code:** `2312` <br>\n The `bucket_id` {bucketId} does not exist or does not belong to queue {queueId}. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits]https://developers.zoom.us/docs/api/rate-limits/. \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_queue:read:admin","contact_center:read:queue:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_queue:read:admin"],"x-granular-scopes":["contact_center:read:queue:admin"]}},"patch":{"tags":["Queues"],"summary":"Update a queue's interrupt settings","description":"Update the interrupt settings for a voice queue.\n\nWhile consumers wait to connect, the queue can interrupt the hold media to announce estimated wait time, position in queue, audio messages, or menu options. Configure interrupts to occur within the max wait duration.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_queue:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:update:queue:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"updateQueueInterrupts","parameters":[{"name":"queueId","in":"path","description":"Contact Center voice queue's ID.","required":true,"schema":{"type":"string","example":"zeYjXoDOS_eV1QmTpj63PQ"}},{"name":"bucket_id","in":"query","description":"**Optional** Bucket ID is a unique identifier for a waiting experience time segment within a queue. It represents a specific time range that a consumer waits in a queue, allowing different interrupt settings like audio, notify, and menu interrupt, to be configured for each waiting phase. When `bucket_id` is not provided, the API continues to work at the queue level.\n\nRetrieve `bucket_id` through the **List Bucket** API `GET /v2/contact_center/queues/{queueId}/buckets`.","required":false,"schema":{"type":"string","example":"xN3VqT0pUUkctYk1SRXZQYQ"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"audio_interrupts":{"maxItems":50,"type":"array","description":"A list of audio interrupts to play during consumer wait in the queue.","items":{"required":["audio_asset_id","is_loop","play_after_seconds"],"type":"object","properties":{"audio_asset_id":{"type":"string","description":"ID of the audio asset choose to play as queue audio interrupt.","example":"dORBRSTxTN6B0vLJ37Kvnw"},"play_after_seconds":{"maximum":86400,"minimum":0,"type":"integer","description":"The number of seconds to wait for the first time to play the audio interrupt.","example":5},"is_loop":{"type":"boolean","description":"Whether the audio interrupt repeat to play.","example":false},"loop_interval":{"minimum":1,"type":"integer","description":"How long to wait between repeats.\n`loop_interval` must be at least 1 second when `is_loop` is `true`. Maximum value has no hard limit, but not exceed queue's maximum waiting time. As a best practice, stay within 5-300 seconds.\n","example":1},"disable_audio":{"type":"boolean","description":"Choose to disable this audio interrupt. \n\nWhen set to true, the audio interrupt will be disabled and filled with background music. \n\nDefaults to false (enabled) if not provided.","example":true}}}},"notify_interrupts":{"required":["is_loop","play_after_seconds"],"type":"object","properties":{"play_after_seconds":{"maximum":86400,"minimum":0,"type":"integer","description":"The number of seconds to wait before playing the first notification to notify consumer about their position and estimated waiting time in queue.","example":10},"is_loop":{"type":"boolean","description":"Whether the position and estimated wait time notifications repeat.","example":false},"loop_interval":{"minimum":1,"type":"integer","description":"How long to wait between repeats. `loop_interval` must be at least 1 second when `is_loop` is `true`.\n\nMaximum value has no hard limit, but not exceed queue's maximum waiting time. As a best practice, stay within 5-300 seconds.","example":1},"notify_position_in_queue":{"required":["custom_audio","custom_audio_type","over_limit_custom_audio"],"type":"object","properties":{"custom_audio_type":{"type":"string","description":"Select custom audio type.\n\n-'standard' - Choose an audio file. The audio prompt must include all words, numbers, and keypress digits as part of the message. Variables cannot be used with this option.\n-'advanced' -  With this option, the audio message can be split into multiple reusable audio parts. Variables are needed. Set up the digits library before using numbers with this option.","example":"advanced","default":"standard","enum":["standard","advanced"]},"custom_audio":{"maxItems":7,"minItems":1,"type":"array","description":"Set the custom audio settings for notifying a user of their queue position.\n\nCurrently, 'standard' mode supports a single audio message file. Specify using 'audio_asset_id' only.\n\n'advanced' mode supports up to 7 pre-recorded audio message files.\nCombine per-recorded audio file 'audio_asset_id' and dynamic variable 'audio_variable'. For each part, use 'audio_asset_id' or 'audio_variable'.\n\n**Advanced mode example**\n        {\n          \"order\": 1,\n          \"audio_asset_id\": \"asset_position_in_queue_prefix\"\n        },\n        {\n          \"order\": 2,\n          \"audio_variable\": \"customer_position\"\n        },\n        {\n          \"order\": 3,\n          \"audio_asset_id\": \"asset_position_in_queue_suffix\"\n        }","items":{"required":["order"],"type":"object","properties":{"audio_asset_id":{"type":"string","description":"ID of the audio asset choose to play for notifying a user of their queue position.\n\n**Note** Provide either `audio_asset_id` or `audio_variable`, but not both.","example":"dORBRSTxTN6B0vLJ37Kvnw"},"audio_variable":{"type":"string","description":"Dynamic variable for advanced mode only. Use `customer_position` to announce the caller's current position in the queue. The position is calculated in real-time.\n\n**Note** Provide either `audio_asset_id` or `audio_variable`, but not both.","example":"customer_position","default":"customer_position","enum":["customer_position"]},"order":{"maximum":7,"minimum":1,"type":"integer","description":"The playback sequence order for audio segments. Must be unique within the array.\n\n**Example**\n\n{\n          \"order\": 1,\n          \"audio_asset_id\": \"asset_position_in_queue_prefix\"\n        },\n        {\n          \"order\": 2,\n          \"audio_variable\": \"customer_position\"\n        },\n        {\n          \"order\": 3,\n          \"audio_asset_id\": \"asset_position_in_queue_suffix\"\n        }","example":1}}}},"over_limit_custom_audio":{"maxItems":1,"required":["audio_asset_id","order"],"type":"array","description":"Audio message to play when the caller's position exceeds the digit audio library limit, typically 60. Provides a fallback message for very long queues where specific position numbers cannot be announced.\n","items":{"type":"object","properties":{"order":{"maximum":7,"minimum":1,"type":"integer","description":"The playback sequence order for over-limit audio segments","example":1},"audio_asset_id":{"type":"string","description":"ID of the audio asset to play when the position exceeds the maximum limit.","example":"dORBRSTxTN6B0vLJ37Kvnw"}}}}},"description":"Notify the consumer of their position while waiting in queue."},"notify_estimated_wait_time":{"required":["backup_custom_audio","custom_audio","custom_audio_type","over_limit_custom_audio"],"type":"object","properties":{"custom_audio_type":{"type":"string","description":"Select custom audio type.\n\n-standard - Single pre-recorded audio file. The audio prompt must include all words and time values as part of the message. Variables cannot be used with this option.\n\n-advanced - Audio message split into multiple reusable parts, up to 7 segments. Combines pre-recorded audio files with dynamic variables. Requires digit audio library to be configured first.\n","example":"advanced","default":"standard","enum":["standard","advanced"]},"custom_audio":{"maxItems":7,"minItems":1,"type":"array","description":"Set the custom audio settings for notifying the consumer of their estimated wait time in the queue.\n\nCurrently, 'standard' mode supports a single audio message file. Specify using 'audio_asset_id' only.\n\nThe 'advanced' mode supports up to 7 pre-recorded audio message files.\n\nCombine per-recorded audio file 'audio_asset_id' and with dynamic variable 'audio_variable'. For each part, select 'audio_asset_id' or 'audio_variable'.\n\n**Advanced mode example**\n\n        {\n          \"order\": 1,\n          \"audio_asset_id\": \"asset_wait_time_prefix\"\n        },\n        {\n          \"order\": 2,\n          \"audio_variable\": \"wait_time\"\n        },\n        {\n          \"order\": 3,\n          \"audio_asset_id\": \"asset_wait_time_suffix\"\n        }\n\n\n\n","items":{"required":["order"],"type":"object","properties":{"audio_asset_id":{"type":"string","description":"ID of the audio asset choose to play to notify the consumer of their estimated wait time in the queue.","example":"dORBRSTxTN6B0vLJ37Kvnw"},"audio_variable":{"type":"string","description":"Dynamic variable for advanced mode only. Use `wait_time` to announce the estimated wait time, in minutes. The time is calculated in real time. **Note** Provide either `audio_asset_id` or `audio_variable`, but not both.","example":"wait_time","default":"wait_time","enum":["wait_time"]},"order":{"maximum":7,"minimum":1,"type":"integer","description":"The playback sequence order for audio segments. Must be unique within the array.","example":1}}}},"over_limit_custom_audio":{"maxItems":1,"type":"array","description":"Audio message to play when the estimated wait time exceeds the digit audio library limit, typically 60+ minutes. This provides a fallback message for very long wait times where specific durations can't be announced accurately.\n","items":{"required":["audio_asset_id","order"],"type":"object","properties":{"order":{"maximum":7,"minimum":1,"type":"integer","description":"The order to play the audio message when over limit, estimated wait time is more than 60 minutes.","example":1},"audio_asset_id":{"type":"string","description":"ID of the audio asset choose to play when the estimated wait time exceeds the maximum limit.","example":"dORBRSTxTN6B0vLJ37Kvnw"}}}},"backup_custom_audio":{"maxItems":1,"type":"array","description":"Fallback audio message to play when the system cannot calculate or provide estimated wait time.\n**Play times** \nEWT service is unavailable\nNo active agents are available\nInsufficient historical data for calculation\nSystem errors occur\nQueue is newly created without historical data\n","items":{"required":["audio_asset_id","order"],"type":"object","properties":{"order":{"maximum":7,"minimum":1,"type":"integer","description":"The order to play the audio message when system not able to provide an estimated wait time. ","example":1},"audio_asset_id":{"type":"string","description":"ID of the audio asset choose to play when system not able to provide an estimated wait time.","example":"dORBRSTxTN6B0vLJ37Kvnw"}}}}},"description":"Notify the consumer of their estimated wait time while waiting in the queue. The wait time is calculated by the routing engine based on current queue conditions, agent availability, and historical data."}},"description":"Notify the consumer of their position and estimated wait time while waiting in the queue."}}}}}},"responses":{"204":{"description":"**HTTP Status Code:** `204`   \n \nQueue interrupts updated."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `1205` <br>\n Queue channel type is invalid. <br>\n**Error Code:** `2304` <br>\n Asset '{assetId}' is not valid for this operation. Audio asset is required. <br>\n**Error Code:** `2311` <br>\n `disable_audio` cannot be set via API for this audio interrupt when `is_enable_api_control` is not enabled. <br>\n**Error Code:** `1254` <br>\n Bucket ID is invalid. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1201` <br>\n Queue does not exist: {queueId}. <br>\n**Error Code:** `2301` <br>\n Asset does not exist: {assetId}. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_queue:write:admin","contact_center:update:queue:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_queue:write:admin"],"x-granular-scopes":["contact_center:update:queue:admin"]}}},"/contact_center/queues/{queueId}/interrupt_menu":{"post":{"tags":["Queues"],"summary":"Assign a queue menu based interrupt","description":"Create a menu of options to offer to consumers during the queue waiting experience. Currently, the only support for queue channel type is voice.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_queue:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:update:queue:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"assignQueueMenuBasedInterrupt","parameters":[{"name":"queueId","in":"path","description":"Queue identifier.","required":true,"schema":{"type":"string","example":"zeYjXoDOS_eV1QmTpj63PQ"}},{"name":"bucket_id","in":"query","description":"**Optional** Bucket ID is a unique identifier for a waiting experience time segment within a queue. It represents a specific time range during which a consumer waits in a queue, allowing different interrupt settings like audio, notify and menu interrupt to be configured for each waiting phase. When `bucket_id` is not provided, the API continues to work at the queue level.\n\nRetrieve `bucket_id` through the **List Bucket** API.","required":false,"schema":{"type":"string","example":"xN3VqT0pUUkctYk1SRXZQYQ"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["menu_language_code","menu_options","play_interval","voice_id"],"type":"object","properties":{"menu_language_code":{"type":"string","description":"The menu language and voice applied to default messages for menu and callback prompts.","example":"en-US","enum":["zh-CN","zh-TW","yue-CN","cmn-CN","da-DK","nl-NL","en-AU","en-NZ","en-GB","en-US","fr-CA","fr-FR","de-DE","it-IT","ja-JP","ko-KR","pl-PL","pt-BR","pt-PT","ro-RO","ru-RU","es-ES","es-MX","es-US","sv-SE","tr-TR"]},"voice_id":{"type":"string","description":"The voice used to play the menu prompts.","example":"Joanna","enum":["Danielle","Gregory","Ivy","Joanna","Joey","Justin","Kendra","Kevin","Kimberly","Matthew","Ruth","Salli","Stephen"]},"accept_timeout":{"maximum":60,"minimum":0,"type":"integer","description":"Time to accept menu, at 5 second intervals. `0` means accept menu at any time.","example":10},"play_interval":{"type":"integer","description":"Time, in seconds, to offer menu sets when consumers will be offered the menu, as long as they're still waiting. When this time is less than their estimated wait time, they will be asked right away.\n\nMaximum time is less than the maximum wait duration.","example":60},"loop_play":{"type":"boolean","description":"Enable loop play based on loop interval time.","example":false},"loop_interval":{"maximum":2400,"minimum":0,"type":"integer","description":"Loop play interval, in seconds. Required when `loop_play` is `true`.","example":120},"menu_options":{"maxItems":12,"type":"array","description":"A list of menu options for keypresses and detail menu action.\nEach keypress can only be related to one action.","items":{"required":["keypress","menu_action"],"type":"object","properties":{"keypress":{"type":"string","description":"The keypress provided in the menu.","example":"1","enum":["1","2","3","4","5","6","7","8","9","0","*","#"]},"menu_action":{"type":"string","description":"The keypress action for selecting the menu.","example":"request_callback","enum":["request_callback","leave_voicemail","route_flow","repeat_menu"]},"play_message":{"maxLength":500,"type":"string","description":"The text message to play for the keypress.","example":"If you would like to leave a voicemail, press {{keyPress}}.\nDo not edit or remove symbols and text in {{}}, this will play and tell consumer the keypress for the menu action."},"play_message_custom_audio":{"required":["custom_audio","custom_audio_type"],"type":"object","properties":{"custom_audio_type":{"type":"string","description":"Select custom audio type.\n\n-'standard' - Choose an audio file. The audio prompt must include all words, numbers, and keypress digits as part of the message. Variables cannot be used with this option.\n-'advanced' -  With this option, the audio message can be split into multiple reusable audio parts. Variables are needed. Set up the digits library before using numbers with this option.","example":"standard","default":"standard","enum":["advanced","standard"]},"custom_audio":{"maxItems":7,"minItems":1,"type":"array","description":"Set the custom audio settings for the message will be played to the consumer before selecting a keypress.\n\nCurrently, 'standard' mode supports a single audio message file. Specify using 'audio_asset_id' only.\n\n'advanced' mode supports up to 7 pre-recorded audio message files.\nCombine per-recorded audio file 'audio_asset_id' and dynamic variable 'audio_variable', here the variable is for {{keypress}}. For each part, use 'audio_asset_id' or 'audio_variable'.\n\n**Advanced mode example**\n        {\n          \"order\": 1,\n          \"audio_asset_id\": \"asset_play_message_prefix\"\n        },\n        {\n          \"order\": 2,\n          \"audio_variable\": \"keypress\"\n        },\n        {\n          \"order\": 3,\n          \"audio_asset_id\":\"asset_play_message_suffix\"\n        }","items":{"required":["order"],"type":"object","properties":{"order":{"maximum":7,"minimum":1,"type":"integer","description":"The order to play audio.","example":1},"audio_asset_id":{"type":"string","description":"ID of the audio asset choose to play message to consumer\n\n**Note** Provide either `audio_asset_id` or `audio_variable`, but not both.","example":"-6y2_bOWTBixtxmNywboJg"},"audio_variable":{"type":"string","description":"Dynamic variable for advanced mode only. Use `keypress` to announce the keypress for consumer to chooes.\n\n**Note** Provide either `audio_asset_id` or `audio_variable`, but not both.","example":"keypress","default":"keypress","enum":["keypress"]}}}}},"description":"The prerecorded audio message to play for the keypress.\n\n**Note** Provide either 'play_message' or 'play_message_custom_audio'."},"route_to_flow_id":{"type":"string","description":"Select a voice flow to route when the chosen menu action is `route_flow`. \n\nGet the voice flow's ID from the [**List flows API**](/docs/api/contact-center/#tag/flows/get/contact_center/flows).","example":"c0SjVYqFTzOKs7wgAXM5cQ"},"voice_mail_inbox_id":{"type":"string","description":"Select a voice mail inbox when the chosen menu action is `leave_voicemail`.\n\nGet the voicemail inbox's ID from the [**List Inboxes API**](/docs/api/contact-center/#tag/inboxes/get/contact_center/inboxes).","example":"rdc5hgEDTKuEVI7nz0umDg"},"callback_settings":{"type":"object","properties":{"callback_number_type":{"type":"string","description":"Callback caller ID number type.","example":"queue_default_caller_id","enum":["flow_entry_id","account_default_caller_id","queue_default_caller_id"]},"callback_confirm_keypress":{"type":"string","description":"Callers use this key to confirm in response to message for a request callback.","example":"#","enum":["#","*"]},"accept_callback_timeout":{"maximum":60,"minimum":5,"type":"integer","description":"Time to accept callback menu, in seconds. Configured at 5 second intervals.","example":10},"enable_offer_phone_number":{"type":"boolean","description":"Allow callers to provide a different callback number.","example":false},"offer_number_message":{"maxLength":500,"type":"string","description":"The message to play to consumer asking for a call back phone number. Do not edit or remove symbols and text in {{}}. {{keyPress}} plays the keypress configured in 'callback_confirm_keypress' to the consumer.","example":"We'll call you back using the phone number {{current phone number}}. If you want to use a different number, enter it now and then press {{keyPress}}. Otherwise, please stay on the line or press {{keyPress}} now.","default":"We'll call you back using the phone number {{current phone number}}. If you want to use a different number, enter it now and then press {{keyPress}}. Otherwise, please stay on the line or press {{keyPress}} now."},"offer_number_message_custom_audio":{"required":["custom_audio","custom_audio_type"],"type":"object","properties":{"custom_audio_type":{"type":"string","description":"Select custom audio type.\n\n-'standard' - Choose an audio file. The audio prompt must include all words, numbers, and keypress digits as part of the message. Variables cannot be used with this option.\n-'advanced' -  With this option, the audio message can be split into multiple reusable audio parts. Variables are needed. Set up the digits library before using numbers with this option.","example":"standard","default":"standard","enum":["advanced","standard"]},"custom_audio":{"maxItems":7,"minItems":1,"type":"array","description":"Set the custom audio settings for the message will be played to the consumer before selecting a keypress.\n\nCurrently, 'standard' mode supports a single audio message file. Specify using 'audio_asset_id' only.\n\n'advanced' mode supports up to 7 pre-recorded audio message files.\nCombine per-recorded audio file 'audio_asset_id' and dynamic variable 'audio_variable', here the variable is for {{keypress}}. For each part, use 'audio_asset_id' or 'audio_variable'.\n\n**Advanced mode example**\n        {\n          \"order\": 1,\n          \"audio_asset_id\": \"asset_play_message_prefix\"\n        },\n        {\n          \"order\": 2,\n          \"audio_variable\": \"keypress\"\n        },\n        {\n          \"order\": 3,\n          \"audio_asset_id\":\"asset_play_message_suffix\"\n        }","items":{"required":["order"],"type":"object","properties":{"order":{"maximum":7,"minimum":1,"type":"integer","description":"The order to play audio.","example":1},"audio_asset_id":{"type":"string","description":"ID of the audio asset choose to play message to consumer\n\n**Note** Provide either `audio_asset_id` or `audio_variable`, but not both.","example":"-6y2_bOWTBixtxmNywboJg"},"audio_variable":{"type":"string","description":"Dynamic variable for advanced mode only. Use `keypress` to announce the keypress for consumer to chooes.\n\n**Note** Provide either `audio_asset_id` or `audio_variable`, but not both.","example":"keypress","default":"keypress","enum":["keypress"]}}}}},"description":"The prerecorded audio message to play to consumers asking for a call back phone number. \n\n**Note** Provide either 'offer_number_message' or 'offer_number_message_custom_audio'."},"callback_confirm_messsage":{"maxLength":500,"type":"string","description":"Deprecate. Message to the returning caller with callback set up. Do not edit or remove symbols and text in {{}}. {{keyPress}} plays the keypress configured in 'callback_confirm_keypress' to the consumer.","example":"Deprecate. Please use 'callback_confirm_message'","deprecated":true,"default":"Your request for callback is confirmed. We will use the phone number {{current phone number}} and extension {{extension number}} to call you back when it's your turn in the queue"},"callback_confirm_message":{"maxLength":500,"type":"string","description":"Message to the returning caller with callback set up. Do not edit or remove symbols and text in {{}}. {{keyPress}} plays the keypress configured in 'callback_confirm_keypress' to the consumer.","example":"Your request for callback is confirmed. We will use the phone number {{current phone number}} and extension {{extension number}} to call you back when it's your turn in the queue","default":"Your request for callback is confirmed. We will use the phone number {{current phone number}} and extension {{extension number}} to call you back when it's your turn in the queue"},"callback_confirm_message_custom_audio":{"required":["custom_audio","custom_audio_type"],"type":"object","properties":{"custom_audio_type":{"type":"string","description":"Select custom audio type.\n\n-'standard' - Choose an audio file. The audio prompt must include all words, numbers, and keypress digits as part of the message. Variables cannot be used with this option.\n-'advanced' -  With this option, the audio message can be split into multiple reusable audio parts. Variables are needed. Set up the digits library before using numbers with this option.","example":"standard","default":"standard","enum":["advanced","standard"]},"custom_audio":{"maxItems":7,"minItems":1,"type":"array","description":"Set the custom audio settings for the message will be played to the consumer before selecting a keypress.\n\nCurrently, 'standard' mode supports a single audio message file. Specify using 'audio_asset_id' only.\n\n'advanced' mode supports up to 7 pre-recorded audio message files.\nCombine per-recorded audio file 'audio_asset_id' and dynamic variable 'audio_variable', here the variable is for {{keypress}}. For each part, use 'audio_asset_id' or 'audio_variable'.\n\n**Advanced mode example**\n        {\n          \"order\": 1,\n          \"audio_asset_id\": \"asset_play_message_prefix\"\n        },\n        {\n          \"order\": 2,\n          \"audio_variable\": \"keypress\"\n        },\n        {\n          \"order\": 3,\n          \"audio_asset_id\":\"asset_play_message_suffix\"\n        }","items":{"required":["order"],"type":"object","properties":{"order":{"maximum":7,"minimum":1,"type":"integer","description":"The order to play audio.","example":1},"audio_asset_id":{"type":"string","description":"ID of the audio asset choose to play message to consumer\n\n**Note** Provide either `audio_asset_id` or `audio_variable`, but not both.","example":"-6y2_bOWTBixtxmNywboJg"},"audio_variable":{"type":"string","description":"Dynamic variable for advanced mode only. Use `keypress` to announce the keypress for consumer to chooes.\n\n**Note** Provide either `audio_asset_id` or `audio_variable`, but not both.","example":"keypress","default":"keypress","enum":["keypress"]}}}}},"description":"Play prerecorded audio message to the returning caller with callback set up. \n\n**Note** Provide either 'callback_confirm_message' or 'callback_confirm_message_custom_audio'."},"enable_offer_extension_number":{"type":"boolean","description":"Lets callers to add an extension to their callback phone number so that callers who don't have a direct line can still be reached directly.","example":false},"offer_extension_number_message":{"maxLength":500,"type":"string","description":"Message asking the caller to give a phone number extension. Do not edit or remove symbols and text in {{}}. The {{keyPress}} plays the keypress configured in 'callback_confirm_keypress' to the consumer.","example":"We'll call you back using the phone number {{current phone number}}. If you want to add an extension, enter it now and then press {{keyPress}}. Otherwise, please stay on the line or press {{keyPress}} now.","default":"We'll call you back using the phone number {{current phone number}}. If you want to add an extension, enter it now and then press {{keyPress}}. Otherwise, please stay on the line or press {{keyPress}} now."},"offer_extension_number_message_custom_audio":{"required":["custom_audio","custom_audio_type"],"type":"object","properties":{"custom_audio_type":{"type":"string","description":"Select custom audio type.\n\n-'standard' - Choose an audio file. The audio prompt must include all words, numbers, and keypress digits as part of the message. Variables cannot be used with this option.\n-'advanced' -  With this option, the audio message can be split into multiple reusable audio parts. Variables are needed. Set up the digits library before using numbers with this option.","example":"standard","default":"standard","enum":["advanced","standard"]},"custom_audio":{"maxItems":7,"minItems":1,"type":"array","description":"Set the custom audio settings for the message will be played to the consumer before selecting a keypress.\n\nCurrently, 'standard' mode supports a single audio message file. Specify using 'audio_asset_id' only.\n\n'advanced' mode supports up to 7 pre-recorded audio message files.\nCombine per-recorded audio file 'audio_asset_id' and dynamic variable 'audio_variable', here the variable is for {{keypress}}. For each part, use 'audio_asset_id' or 'audio_variable'.\n\n**Advanced mode example**\n        {\n          \"order\": 1,\n          \"audio_asset_id\": \"asset_play_message_prefix\"\n        },\n        {\n          \"order\": 2,\n          \"audio_variable\": \"keypress\"\n        },\n        {\n          \"order\": 3,\n          \"audio_asset_id\":\"asset_play_message_suffix\"\n        }","items":{"required":["order"],"type":"object","properties":{"order":{"maximum":7,"minimum":1,"type":"integer","description":"The order to play audio.","example":1},"audio_asset_id":{"type":"string","description":"ID of the audio asset choose to play message to consumer\n\n**Note** Provide either `audio_asset_id` or `audio_variable`, but not both.","example":"-6y2_bOWTBixtxmNywboJg"},"audio_variable":{"type":"string","description":"Dynamic variable for advanced mode only. Use `keypress` to announce the keypress for consumer to chooes.\n\n**Note** Provide either `audio_asset_id` or `audio_variable`, but not both.","example":"keypress","default":"keypress","enum":["keypress"]}}}}},"description":"Play prerecorded audio message asking the caller to give a phone number extension. \n\n**Note** Provide either 'offer_extension_number_message' or 'offer_extension_number_message_custom_audio'."},"confirm_extension_number_message":{"maxLength":500,"type":"string","description":"Message asking the caller to confirm the phone number extension. Do not edit or remove symbols and text in {{}}. The {{keyPress}} plays the keypress configured in 'callback_confirm_keypress' to the consumer.","example":"You entered the extension {{extension number}}. If this is correct, press {{keyPress}} to confirm. Otherwise, enter your extension number and then press {{keyPress}}.","default":"You entered the extension {{extension number}}. If this is correct, press {{keyPress}} to confirm. Otherwise, enter your extension number and then press {{keyPress}}."},"confirm_extension_number_message_custom_audio":{"required":["custom_audio","custom_audio_type"],"type":"object","properties":{"custom_audio_type":{"type":"string","description":"Select custom audio type.\n\n-'standard' - Choose an audio file. The audio prompt must include all words, numbers, and keypress digits as part of the message. Variables cannot be used with this option.\n-'advanced' -  With this option, the audio message can be split into multiple reusable audio parts. Variables are needed. Set up the digits library before using numbers with this option.","example":"standard","default":"standard","enum":["advanced","standard"]},"custom_audio":{"maxItems":7,"minItems":1,"type":"array","description":"Set the custom audio settings for the message will be played to the consumer before selecting a keypress.\n\nCurrently, 'standard' mode supports a single audio message file. Specify using 'audio_asset_id' only.\n\n'advanced' mode supports up to 7 pre-recorded audio message files.\nCombine per-recorded audio file 'audio_asset_id' and dynamic variable 'audio_variable', here the variable is for {{keypress}}. For each part, use 'audio_asset_id' or 'audio_variable'.\n\n**Advanced mode example**\n        {\n          \"order\": 1,\n          \"audio_asset_id\": \"asset_play_message_prefix\"\n        },\n        {\n          \"order\": 2,\n          \"audio_variable\": \"keypress\"\n        },\n        {\n          \"order\": 3,\n          \"audio_asset_id\":\"asset_play_message_suffix\"\n        }","items":{"required":["order"],"type":"object","properties":{"order":{"maximum":7,"minimum":1,"type":"integer","description":"The order to play audio.","example":1},"audio_asset_id":{"type":"string","description":"ID of the audio asset choose to play message to consumer\n\n**Note** Provide either `audio_asset_id` or `audio_variable`, but not both.","example":"-6y2_bOWTBixtxmNywboJg"},"audio_variable":{"type":"string","description":"Dynamic variable for advanced mode only. Use `keypress` to announce the keypress for consumer to chooes.\n\n**Note** Provide either `audio_asset_id` or `audio_variable`, but not both.","example":"keypress","default":"keypress","enum":["keypress"]}}}}},"description":"Play prerecorded audio message asking the caller to confirm the phone number extension. \n\n**Note** Provide either 'confirm_extension_number_message' or 'confirm_extension_number_message_custom_audio'."},"outbound_dial_option":{"type":"string","description":"Choose the outbound method for how callers are connected when they receive a callback.","example":"auto_greeting","enum":["auto_greeting","directly_connect"]},"outbound_dial_greeting_message":{"maxLength":500,"type":"string","description":"greeting message to callers before they are connected to an agent.","example":"Thanks for waiting in the queue. You will be connected to the next available agent shortly.","default":"Thanks for waiting in the queue. You will be connected to the next available agent shortly."},"outbound_dial_greeting_message_custom_audio":{"required":["custom_audio","custom_audio_type"],"type":"object","properties":{"custom_audio_type":{"type":"string","description":"Select custom audio type.\n\n-'standard' - Choose an audio file. The audio prompt must include all words, numbers, and keypress digits as part of the message. Variables cannot be used with this option.\n-'advanced' -  With this option, the audio message can be split into multiple reusable audio parts. Variables are needed. Set up the digits library before using numbers with this option.","example":"standard","default":"standard","enum":["advanced","standard"]},"custom_audio":{"maxItems":7,"minItems":1,"type":"array","description":"Set the custom audio settings for the message will be played to the consumer before selecting a keypress.\n\nCurrently, 'standard' mode supports a single audio message file. Specify using 'audio_asset_id' only.\n\n'advanced' mode supports up to 7 pre-recorded audio message files.\nCombine per-recorded audio file 'audio_asset_id' and dynamic variable 'audio_variable', here the variable is for {{keypress}}. For each part, use 'audio_asset_id' or 'audio_variable'.\n\n**Advanced mode example**\n        {\n          \"order\": 1,\n          \"audio_asset_id\": \"asset_play_message_prefix\"\n        },\n        {\n          \"order\": 2,\n          \"audio_variable\": \"keypress\"\n        },\n        {\n          \"order\": 3,\n          \"audio_asset_id\":\"asset_play_message_suffix\"\n        }","items":{"required":["order"],"type":"object","properties":{"order":{"maximum":7,"minimum":1,"type":"integer","description":"The order to play audio.","example":1},"audio_asset_id":{"type":"string","description":"ID of the audio asset choose to play message to consumer\n\n**Note** Provide either `audio_asset_id` or `audio_variable`, but not both.","example":"-6y2_bOWTBixtxmNywboJg"},"audio_variable":{"type":"string","description":"Dynamic variable for advanced mode only. Use `keypress` to announce the keypress for consumer to chooes.\n\n**Note** Provide either `audio_asset_id` or `audio_variable`, but not both.","example":"keypress","default":"keypress","enum":["keypress"]}}}}},"description":"Play prerecorded greeting message to callers before they are connected to an agent.\n\n**Note** Provider either 'outbound_dial_greeting_message' or 'outbound_dial_greeting_message_custom_audio'."},"callback_timeout":{"type":"integer","description":"Set the limit for how long callbacks will remain as tasks in the queue, in seconds.","example":10},"enable_callback_cancel_message":{"type":"boolean","description":" Send a message to consumers if callbacks are canceled.","example":false},"callback_cancel_message":{"maxLength":500,"type":"string","description":"Notification message about callback cancellation.","example":"Your callback has been canceled due to high call volumes. Please try calling again.","default":"Your callback has been canceled due to high call volumes. Please try calling again."},"callback_cancel_message_custom_audio":{"required":["custom_audio","custom_audio_type"],"type":"object","properties":{"custom_audio_type":{"type":"string","description":"Select custom audio type.\n\n-'standard' - Choose an audio file. The audio prompt must include all words, numbers, and keypress digits as part of the message. Variables cannot be used with this option.\n-'advanced' -  With this option, the audio message can be split into multiple reusable audio parts. Variables are needed. Set up the digits library before using numbers with this option.","example":"standard","default":"standard","enum":["advanced","standard"]},"custom_audio":{"maxItems":7,"minItems":1,"type":"array","description":"Set the custom audio settings for the message will be played to the consumer before selecting a keypress.\n\nCurrently, 'standard' mode supports a single audio message file. Specify using 'audio_asset_id' only.\n\n'advanced' mode supports up to 7 pre-recorded audio message files.\nCombine per-recorded audio file 'audio_asset_id' and dynamic variable 'audio_variable', here the variable is for {{keypress}}. For each part, use 'audio_asset_id' or 'audio_variable'.\n\n**Advanced mode example**\n        {\n          \"order\": 1,\n          \"audio_asset_id\": \"asset_play_message_prefix\"\n        },\n        {\n          \"order\": 2,\n          \"audio_variable\": \"keypress\"\n        },\n        {\n          \"order\": 3,\n          \"audio_asset_id\":\"asset_play_message_suffix\"\n        }","items":{"required":["order"],"type":"object","properties":{"order":{"maximum":7,"minimum":1,"type":"integer","description":"The order to play audio.","example":1},"audio_asset_id":{"type":"string","description":"ID of the audio asset choose to play message to consumer\n\n**Note** Provide either `audio_asset_id` or `audio_variable`, but not both.","example":"-6y2_bOWTBixtxmNywboJg"},"audio_variable":{"type":"string","description":"Dynamic variable for advanced mode only. Use `keypress` to announce the keypress for consumer to chooes.\n\n**Note** Provide either `audio_asset_id` or `audio_variable`, but not both.","example":"keypress","default":"keypress","enum":["keypress"]}}}}},"description":"Play prerecorded audio message about callback cancellation.\n\n**Note** Provide either 'callback_cancel_message' or 'callback_cancel_message_custom_audio'."},"callback_returning_message":{"maxLength":500,"type":"string","description":"Message to returning caller with callback setup. Do not edit or remove symbols and text in {{}}.The {{keyPress}} plays the keypress configured in 'callback_confirm_keypress' to the consumer.","example":"Hello again. You have a callback set up. Press {{keyPress}} to cancel your callback and wait on the line, or hang up to keep your callback request and end this call.","default":"Hello again. You have a callback set up. Press {{keyPress}} to cancel your callback and wait on the line, or hang up to keep your callback request and end this call."},"callback_returning_message_custom_audio":{"required":["custom_audio","custom_audio_type"],"type":"object","properties":{"custom_audio_type":{"type":"string","description":"Select custom audio type.\n\n-'standard' - Choose an audio file. The audio prompt must include all words, numbers, and keypress digits as part of the message. Variables cannot be used with this option.\n-'advanced' -  With this option, the audio message can be split into multiple reusable audio parts. Variables are needed. Set up the digits library before using numbers with this option.","example":"standard","default":"standard","enum":["advanced","standard"]},"custom_audio":{"maxItems":7,"minItems":1,"type":"array","description":"Set the custom audio settings for the message will be played to the consumer before selecting a keypress.\n\nCurrently, 'standard' mode supports a single audio message file. Specify using 'audio_asset_id' only.\n\n'advanced' mode supports up to 7 pre-recorded audio message files.\nCombine per-recorded audio file 'audio_asset_id' and dynamic variable 'audio_variable', here the variable is for {{keypress}}. For each part, use 'audio_asset_id' or 'audio_variable'.\n\n**Advanced mode example**\n        {\n          \"order\": 1,\n          \"audio_asset_id\": \"asset_play_message_prefix\"\n        },\n        {\n          \"order\": 2,\n          \"audio_variable\": \"keypress\"\n        },\n        {\n          \"order\": 3,\n          \"audio_asset_id\":\"asset_play_message_suffix\"\n        }","items":{"required":["order"],"type":"object","properties":{"order":{"maximum":7,"minimum":1,"type":"integer","description":"The order to play audio.","example":1},"audio_asset_id":{"type":"string","description":"ID of the audio asset choose to play message to consumer\n\n**Note** Provide either `audio_asset_id` or `audio_variable`, but not both.","example":"-6y2_bOWTBixtxmNywboJg"},"audio_variable":{"type":"string","description":"Dynamic variable for advanced mode only. Use `keypress` to announce the keypress for consumer to chooes.\n\n**Note** Provide either `audio_asset_id` or `audio_variable`, but not both.","example":"keypress","default":"keypress","enum":["keypress"]}}}}},"description":"Play prerecorded audio message to returning caller with callback setup. \n\n**Note** Provide either 'callback_returning_message' or 'callback_returning_message_custom_audio'."},"enable_callback_offer_time":{"type":"boolean","description":"Limit the times when callbacks will be offered to consumers.","example":false},"callback_offer_timezone_id":{"type":"string","description":"Set the [timezone](/docs/api/references/abbreviations/#timezones) when callbacks will be offered and returned to consumers. Required when `enable_callback_offer_time` is `true`.","example":"America/Los_Angeles"},"callback_offer_time":{"maxItems":50,"type":"array","description":"Set the day when callbacks will be offered and returned to consumers. Required when `enable_callback_offer_time` is `true`.","items":{"type":"object","properties":{"callback_offer_day":{"type":"string","description":"Set the day when callbacks will be offered to consumers.","example":"Mon","enum":["Mon","Tue","Wed","Thu","Fri","Sat","Sun"]},"callback_offer_start_time":{"type":"string","description":"Start time on the day when callbacks will be offered to consumers, between `00:00` and `23:59`.","example":"09:00"},"callback_offer_end_time":{"type":"string","description":"End time on the day when callbacks will be offered to consumers, between `00:00` and `23:59`.","example":"18:00"}}}},"enable_callback_return_time":{"type":"boolean","description":"Limit the times when callbacks will be returned to consumers.","example":false},"callback_return_timezone_id":{"type":"string","description":"Set the [timezone ID](/docs/api/references/abbreviations/#timezones) to limit the times when callbacks will be returned to consumers. Required when `enable_callback_return_time` is `true`.","example":"America/Los_Angeles"},"callback_return_day":{"maxItems":50,"type":"array","description":"The day when callbacks will be returned to consumers. Required when `enable_callback_return_time` is `true`.","items":{"type":"object","properties":{"callback_return_day":{"type":"string","description":"The day when callbacks will be returned to consumers.","example":"Mon","enum":["Mon","Tue","Wed","Thu","Fri","Sat","Sun"]},"callback_return_start_time":{"type":"string","description":"Set the start time range when callbacks will be returned to consumers, between `00:00` to `23:59`.","example":"09:00"},"callback_return_end_time":{"type":"string","description":"Set the end time range when callbacks will be returned to consumers, between `00:00` to `23:59`.","example":"18:00"}}}},"enable_advanced_callback_confirmation":{"type":"boolean","description":"Enable or disable advanced callback confirmation feature. The account needs to enable the feature OP flag.","example":false},"advanced_callback_confirmation":{"type":"object","properties":{"keypress_voice_message":{"type":"string","description":"The keypress provided in the menu for the leave a voice message action.","example":"1","default":"1","enum":["1","2","3","4","5","6","7","8","9","0","*"]},"advanced_callback_confirm_message":{"maxLength":500,"minLength":1,"type":"string","description":"Mesage to caller with callback request.  Do no edit or remove symbols or text in `{{}}`","example":"Your callback request is confirmed. We will use the phone number {{phoneNumber}} to call you back when it's your turn in the queue. To leave a voice message, press {{keyPress}}. Or hang up to end the call.","default":"Your callback request is confirmed. We will use the phone number {{phoneNumber}} to call you back when it's your turn in the queue. To leave a voice message, press {{keyPress}}. Or hang up to end the call."},"callback_voice_message_time_limit":{"maximum":5,"minimum":1,"type":"integer","description":"The voice message time limit, in minutes.","example":1,"default":1},"enable_voice_message_transcription":{"type":"boolean","description":"Allow agent to access voice message transcriptions from the Zoom client","example":false},"callback_voice_message_display_time":{"maximum":60,"minimum":5,"type":"integer","description":"Callback voice message is displayed to the agent for the set number of seconds before contacting the consumer. If the agent does not click **Confirm** to dial consumer after the timeout, the system will automatically dial the number.","example":5,"default":5},"advanced_callback_confirm_message_with_extension":{"maxLength":500,"minLength":0,"type":"string","description":"Message to caller with callback request, with extension entered. Do not edit or remove symbols or text in `{{}}`.","example":"Your request for callback is confirmed. We'll call you back at your {{current phone number}} and extension {{extension number}} when it's your turn in the queue. To leave a voice message, press {{keyPress}}, or hang up to end the call.","default":"Your request for callback is confirmed. We'll call you back at your {{current phone number}} and extension {{extension number}} when it's your turn in the queue. To leave a voice message, press {{keyPress}}, or hang up to end the call."},"greeting_message":{"maxLength":200,"minLength":0,"type":"string","description":"Greeting voice message to play. Do no edit or remove symbols or text in `{{}}`,","example":"Please record your voice message after the tone, press {{starKey}} to discard and end call, or press any digit key to save the recording.","default":"Please record your voice message after the tone, press {{starKey}} to discard and end call, or press any digit key to save the recording."},"end_message":{"maxLength":200,"minLength":0,"type":"string","description":"End call message to play.","example":"Good bye.","default":"Good bye."},"save_recording_message":{"maxLength":200,"minLength":0,"type":"string","description":"Customize the message to play for save recording message to play.","example":"Save recording message to play.","default":"Message saved"},"short_recording_message":{"maxLength":200,"minLength":0,"type":"string","description":"Customize the message to play for voice for short recording.","example":"Sorry, your recording is too short. Please try again.","default":"Sorry, your recording is too short. Please try again."},"keypress_listen_recording_message":{"maxLength":200,"minLength":0,"type":"string","description":"Customize the message for listen to voice message. The keypress is predefined as `1`. Do not edit or remove symbols or text in `{{}}`.","example":"Press {{keyPress}} to listen to the voice message.","default":"Press {{keyPress}} to listen to the voice message."},"keypress_save_recording_message":{"maxLength":200,"minLength":0,"type":"string","description":"Customize the message for save the voice message. The keypress is predefined as `2`. Do not edit or remove symbols or text in `{{}}`.","example":"Press {{keyPress}} to save the voice message and end the call.","default":"Press {{keyPress}} to save the voice message and end the call."},"keypress_re_recording_message":{"maxLength":200,"minLength":0,"type":"string","description":"Customize the message for re-record the voice message. The keypress is predefined as `3`. Do not edit or remove symbols or text in `{{}}`.","example":"Press {{keyPress}} to re-record your voice message.","default":"Press {{keyPress}} to re-record your voice message."}},"description":"when 'enable_advanced_callback_confirmation' set as `true`, required to set the advanced callback confirmation voice message recording under this section."}},"description":"Set call back settings for when the menu action is `request_callback`."}}}},"invalid_option_message_custom_audio":{"required":["custom_audio","custom_audio_type"],"type":"object","properties":{"custom_audio_type":{"type":"string","description":"Select custom audio type.\n\n-'standard' - Choose an audio file. The audio prompt must include all words, numbers, and keypress digits as part of the message. Variables cannot be used with this option.\n-'advanced' -  With this option, the audio message can be split into multiple reusable audio parts. Variables are needed. Set up the digits library before using numbers with this option.","example":"standard","default":"standard","enum":["advanced","standard"]},"custom_audio":{"maxItems":7,"minItems":1,"type":"array","description":"Set the custom audio settings for the message will be played to the consumer before selecting a keypress.\n\nCurrently, 'standard' mode supports a single audio message file. Specify using 'audio_asset_id' only.\n\n'advanced' mode supports up to 7 pre-recorded audio message files.\nCombine per-recorded audio file 'audio_asset_id' and dynamic variable 'audio_variable', here the variable is for {{keypress}}. For each part, use 'audio_asset_id' or 'audio_variable'.\n\n**Advanced mode example**\n        {\n          \"order\": 1,\n          \"audio_asset_id\": \"asset_play_message_prefix\"\n        },\n        {\n          \"order\": 2,\n          \"audio_variable\": \"keypress\"\n        },\n        {\n          \"order\": 3,\n          \"audio_asset_id\":\"asset_play_message_suffix\"\n        }","items":{"required":["order"],"type":"object","properties":{"order":{"maximum":7,"minimum":1,"type":"integer","description":"The order to play audio.","example":1},"audio_asset_id":{"type":"string","description":"ID of the audio asset choose to play message to consumer\n\n**Note** Provide either `audio_asset_id` or `audio_variable`, but not both.","example":"-6y2_bOWTBixtxmNywboJg"},"audio_variable":{"type":"string","description":"Dynamic variable for advanced mode only. Use `keypress` to announce the keypress for consumer to chooes.\n\n**Note** Provide either `audio_asset_id` or `audio_variable`, but not both.","example":"keypress","default":"keypress","enum":["keypress"]}}}}},"description":"Play prerecorded audio message to consumer when they press a phone key for invalid menu option."}},"description":"Information about the queue interruptMenu."}}}},"responses":{"201":{"description":"**HTTP Status Code:** `201`   \n \nQueue menu based interrupt assigned.","content":{"application/json":{"schema":{"type":"object","properties":{"queue_id":{"type":"string","description":"Contact Center queue identifier.","example":"zeYjXoDOS_eV1QmTpj63PQ"},"menu_language_code":{"type":"string","description":"The menu language and voice for default messages for menu and callback prompts.","example":"en-US","enum":["zh-CN","zh-TW","yue-CN","cmn-CN","da-DK","nl-NL","en-AU","en-NZ","en-GB","en-US","fr-CA","fr-FR","de-DE","it-IT","ja-JP","ko-KR","pl-PL","pt-BR","pt-PT","ro-RO","ru-RU","es-ES","es-MX","es-US","sv-SE","tr-TR"]},"voice_id":{"type":"string","description":"The voice used to play the menu prompts.","example":"Joanna","enum":["Danielle","Gregory","Ivy","Joanna","Joey","Justin","Kendra","Kevin","Kimberly","Matthew","Ruth","Salli","Stephen"]},"accept_timeout":{"maximum":60,"minimum":0,"type":"integer","description":"Time to accept menu, in 5 second intervals. `0` means accept the menu at any time.","example":10},"play_interval":{"type":"integer","description":"Time, in seconds, when consumers will be offered the menu, as long as they're still waiting. When this time is less than their estimated wait time, they will be offered the menu right away.\nMaximum time is less than the maximum wait duration.","example":60},"loop_play":{"type":"boolean","description":"Enable loop play based on loop interval time.","example":false},"loop_interval":{"maximum":2400,"minimum":0,"type":"integer","description":"Loop play interval, in seconds. Required when `loop_play` is `true`.","example":120},"menu_options":{"maxItems":12,"type":"array","description":"A list of menu options for keypresses and detail menu action. Each keypress can only relate to one action.","items":{"required":["keypress","menu_action"],"type":"object","properties":{"keypress":{"type":"string","description":"The keypress provided in the menu.","example":"1","enum":["1","2","3","4","5","6","7","8","9","0","*","#"]},"menu_action":{"type":"string","description":"The action for selecting the menu when pressing a key.","example":"request_callback","enum":["request_callback","leave_voicemail","route_flow","repeat_menu"]},"play_message":{"maxLength":500,"type":"string","description":"The keypress text message. This tells the consumer the menu action's keypress. Do not edit or remove symbols and text in `{{}}`.","example":"If you would like to leave a voicemail, press {{keyPress}}.Do not edit or remove symbols and text in {{}}, this will play and tell consumer the keypress for the menu action."},"play_message_custom_audio":{"type":"object","properties":{"custom_audio_type":{"type":"string","description":"Select custom audio type.\n\n-'standard' - Choose an audio file. The audio prompt must include all words, numbers, and keypress digits as part of the message. Variables cannot be used with this option.\n-'advanced' -  With this option, the audio message can be split into multiple reusable audio parts. Variables are needed. Set up the digits library before using numbers with this option.","example":"standard","default":"standard","enum":["advanced","standard"]},"custom_audio":{"maxItems":7,"minItems":1,"type":"array","description":"Set the custom audio settings for the message will be played to the consumer before selecting a keypress.\n\nCurrently, 'standard' mode supports a single audio message file. Specify using 'audio_asset_id' only.\n\n'advanced' mode supports up to 7 pre-recorded audio message files.\nCombine per-recorded audio file 'audio_asset_id' and dynamic variable 'audio_variable', here the variable is for {{keypress}}. For each part, use 'audio_asset_id' or 'audio_variable'.\n\n**Advanced mode example**\n        {\n          \"order\": 1,\n          \"audio_asset_id\": \"asset_play_message_prefix\"\n        },\n        {\n          \"order\": 2,\n          \"audio_variable\": \"keypress\"\n        },\n        {\n          \"order\": 3,\n          \"audio_asset_id\":\"asset_play_message_suffix\"\n        }","items":{"required":["order"],"type":"object","properties":{"order":{"maximum":7,"minimum":1,"type":"integer","description":"The order to play audio.","example":1},"audio_asset_id":{"type":"string","description":"ID of the audio asset choose to play message to consumer\n\n**Note** Provide either `audio_asset_id` or `audio_variable`, but not both.","example":"-6y2_bOWTBixtxmNywboJg"},"audio_variable":{"type":"string","description":"Dynamic variable for advanced mode only. Use `keypress` to announce the keypress for consumer to chooes.\n\n**Note** Provide either `audio_asset_id` or `audio_variable`, but not both.","example":"keypress","default":"keypress","enum":["keypress"]}}}}},"description":"The prerecorded audio message to play for the keypress.\n\n**Note** Provide either 'play_message' or 'play_message_custom_audio'."},"route_to_flow_id":{"type":"string","description":"Select a voice flow to route when the chosen menu action is `route_flow`. Get the voice flow's ID from [**List flows API**](/docs/api/contact-center/#tag/flows/get/contact_center/flows).","example":"c0SjVYqFTzOKs7wgAXM5cQ"},"voice_mail_inbox_id":{"type":"string","description":"Select a voice mail inbox when the chosen menu action is `leave_voicemail`.\n\nGet the voicemail inbox's ID from [**List Inboxes API**](/docs/api/contact-center/#tag/inboxes/get/contact_center/inboxes).","example":"rdc5hgEDTKuEVI7nz0umDg"},"callback_settings":{"type":"object","properties":{"callback_number_type":{"type":"string","description":"Callback caller ID number type.","example":"queue_default_caller_id","enum":["flow_entry_id","account_default_caller_id","queue_default_caller_id"]},"callback_confirm_keypress":{"type":"string","description":"Callers use this key to confirm in response to message for a request callback.","example":"#","enum":["#","*"]},"accept_callback_timeout":{"maximum":60,"minimum":5,"type":"integer","description":"Time to accept callback menu, in 5 second intervals.","example":10},"enable_offer_phone_number":{"type":"boolean","description":"Allow callers to provide a different callback number.","example":false},"offer_number_message":{"maxLength":500,"type":"string","description":"The message to play to ask the consumer to offer a callback phone number. Do not edit or remove symbols and text in {{}}. The {{keyPress}} will play the keypress configured in 'callback_confirm_keypress' to the consumer.","example":"We'll call you back using the phone number {{current phone number}}. If you want to use a different number, enter it now and then press {{keyPress}}. Otherwise, please stay on the line or press {{keyPress}} now.","default":"We'll call you back using the phone number {{current phone number}}. If you want to use a different number, enter it now and then press {{keyPress}}. Otherwise, please stay on the line or press {{keyPress}} now."},"offer_number_message_custom_audio":{"type":"object","properties":{"custom_audio_type":{"type":"string","description":"Select custom audio type.\n\n-'standard' - Choose an audio file. The audio prompt must include all words, numbers, and keypress digits as part of the message. Variables cannot be used with this option.\n-'advanced' -  With this option, the audio message can be split into multiple reusable audio parts. Variables are needed. Set up the digits library before using numbers with this option.","example":"standard","default":"standard","enum":["advanced","standard"]},"custom_audio":{"maxItems":7,"minItems":1,"type":"array","description":"Set the custom audio settings for the message will be played to the consumer before selecting a keypress.\n\nCurrently, 'standard' mode supports a single audio message file. Specify using 'audio_asset_id' only.\n\n'advanced' mode supports up to 7 pre-recorded audio message files.\nCombine per-recorded audio file 'audio_asset_id' and dynamic variable 'audio_variable', here the variable is for {{keypress}}. For each part, use 'audio_asset_id' or 'audio_variable'.\n\n**Advanced mode example**\n        {\n          \"order\": 1,\n          \"audio_asset_id\": \"asset_play_message_prefix\"\n        },\n        {\n          \"order\": 2,\n          \"audio_variable\": \"keypress\"\n        },\n        {\n          \"order\": 3,\n          \"audio_asset_id\":\"asset_play_message_suffix\"\n        }","items":{"required":["order"],"type":"object","properties":{"order":{"maximum":7,"minimum":1,"type":"integer","description":"The order to play audio.","example":1},"audio_asset_id":{"type":"string","description":"ID of the audio asset choose to play message to consumer\n\n**Note** Provide either `audio_asset_id` or `audio_variable`, but not both.","example":"-6y2_bOWTBixtxmNywboJg"},"audio_variable":{"type":"string","description":"Dynamic variable for advanced mode only. Use `keypress` to announce the keypress for consumer to chooes.\n\n**Note** Provide either `audio_asset_id` or `audio_variable`, but not both.","example":"keypress","default":"keypress","enum":["keypress"]}}}}},"description":"Play prerecorded audio message to consumer asking for a call back phone number. \n\n**Note** Provide either 'offer_number_message' or 'offer_number_message_custom_audio'."},"callback_confirm_messsage":{"maxLength":500,"type":"string","description":"Message to returning caller with callback set up. Do not edit or remove symbols and text in {{}}. The {{keyPress}} will play the keypress configured in 'callback_confirm_keypress' to the consumer.","example":"Deprecate, use 'callback_confirm_message' as replacement.\nYour request for callback is confirmed. We will use the phone number {{current phone number}} and extension {{extension number}} to call you back when it's your turn in the queue","deprecated":true,"default":"Your request for callback is confirmed. We will use the phone number {{current phone number}} and extension {{extension number}} to call you back when it's your turn in the queue"},"callback_confirm_message":{"maxLength":500,"type":"string","description":"Message to returning caller with callback set up. Do not edit or remove symbols and text in {{}}. The {{keyPress}} will play the keypress configured in 'callback_confirm_keypress' to the consumer.","example":"Your request for callback is confirmed. We will use the phone number {{current phone number}} and extension {{extension number}} to call you back when it's your turn in the queue","default":"Your request for callback is confirmed. We will use the phone number {{current phone number}} and extension {{extension number}} to call you back when it's your turn in the queue"},"callback_confirm_message_custom_audio":{"type":"object","properties":{"custom_audio_type":{"type":"string","description":"Select custom audio type.\n\n-'standard' - Choose an audio file. The audio prompt must include all words, numbers, and keypress digits as part of the message. Variables cannot be used with this option.\n-'advanced' -  With this option, the audio message can be split into multiple reusable audio parts. Variables are needed. Set up the digits library before using numbers with this option.","example":"standard","default":"standard","enum":["advanced","standard"]},"custom_audio":{"maxItems":7,"minItems":1,"type":"array","description":"Set the custom audio settings for the message will be played to the consumer before selecting a keypress.\n\nCurrently, 'standard' mode supports a single audio message file. Specify using 'audio_asset_id' only.\n\n'advanced' mode supports up to 7 pre-recorded audio message files.\nCombine per-recorded audio file 'audio_asset_id' and dynamic variable 'audio_variable', here the variable is for {{keypress}}. For each part, use 'audio_asset_id' or 'audio_variable'.\n\n**Advanced mode example**\n        {\n          \"order\": 1,\n          \"audio_asset_id\": \"asset_play_message_prefix\"\n        },\n        {\n          \"order\": 2,\n          \"audio_variable\": \"keypress\"\n        },\n        {\n          \"order\": 3,\n          \"audio_asset_id\":\"asset_play_message_suffix\"\n        }","items":{"required":["order"],"type":"object","properties":{"order":{"maximum":7,"minimum":1,"type":"integer","description":"The order to play audio.","example":1},"audio_asset_id":{"type":"string","description":"ID of the audio asset choose to play message to consumer\n\n**Note** Provide either `audio_asset_id` or `audio_variable`, but not both.","example":"-6y2_bOWTBixtxmNywboJg"},"audio_variable":{"type":"string","description":"Dynamic variable for advanced mode only. Use `keypress` to announce the keypress for consumer to chooes.\n\n**Note** Provide either `audio_asset_id` or `audio_variable`, but not both.","example":"keypress","default":"keypress","enum":["keypress"]}}}}},"description":"Play prerecorded audio message to the returning caller with callback set up. \n\n**Note** Provide either 'callback_confirm_message' or 'callback_confirm_message_custom_audio'."},"enable_offer_extension_number":{"type":"boolean","description":"Lets callers to add an extension to their callback phone number so that callers who don't have a direct line can still be reached directly.","example":false},"offer_extension_number_message":{"maxLength":500,"type":"string","description":"Message to ask the caller to offer a phone number extension. Do not edit or remove symbols and text in {{}}. The {{keyPress}} will play the keypress configured in 'callback_confirm_keypress' to the consumer.","example":"We'll call you back using the phone number {{current phone number}}. If you want to add an extension, enter it now and then press {{keyPress}}. Otherwise, please stay on the line or press {{keyPress}} now.","default":"We'll call you back using the phone number {{current phone number}}. If you want to add an extension, enter it now and then press {{keyPress}}. Otherwise, please stay on the line or press {{keyPress}} now."},"offer_extension_number_message_custom_audio":{"type":"object","properties":{"custom_audio_type":{"type":"string","description":"Select custom audio type.\n\n-'standard' - Choose an audio file. The audio prompt must include all words, numbers, and keypress digits as part of the message. Variables cannot be used with this option.\n-'advanced' -  With this option, the audio message can be split into multiple reusable audio parts. Variables are needed. Set up the digits library before using numbers with this option.","example":"standard","default":"standard","enum":["advanced","standard"]},"custom_audio":{"maxItems":7,"minItems":1,"type":"array","description":"Set the custom audio settings for the message will be played to the consumer before selecting a keypress.\n\nCurrently, 'standard' mode supports a single audio message file. Specify using 'audio_asset_id' only.\n\n'advanced' mode supports up to 7 pre-recorded audio message files.\nCombine per-recorded audio file 'audio_asset_id' and dynamic variable 'audio_variable', here the variable is for {{keypress}}. For each part, use 'audio_asset_id' or 'audio_variable'.\n\n**Advanced mode example**\n        {\n          \"order\": 1,\n          \"audio_asset_id\": \"asset_play_message_prefix\"\n        },\n        {\n          \"order\": 2,\n          \"audio_variable\": \"keypress\"\n        },\n        {\n          \"order\": 3,\n          \"audio_asset_id\":\"asset_play_message_suffix\"\n        }","items":{"required":["order"],"type":"object","properties":{"order":{"maximum":7,"minimum":1,"type":"integer","description":"The order to play audio.","example":1},"audio_asset_id":{"type":"string","description":"ID of the audio asset choose to play message to consumer\n\n**Note** Provide either `audio_asset_id` or `audio_variable`, but not both.","example":"-6y2_bOWTBixtxmNywboJg"},"audio_variable":{"type":"string","description":"Dynamic variable for advanced mode only. Use `keypress` to announce the keypress for consumer to chooes.\n\n**Note** Provide either `audio_asset_id` or `audio_variable`, but not both.","example":"keypress","default":"keypress","enum":["keypress"]}}}}},"description":"Play prerecorded message asking the caller to give a phone number extension. \n\n**Note** Provide either 'offer_extension_number_message' or 'offer_extension_number_message_custom_audio'."},"confirm_extension_number_message":{"maxLength":500,"type":"string","description":"Message to ask the caller to confirm the phone number extension. Do not edit or remove symbols and text in {{}}. The {{keyPress}} will play the keypress configured in 'callback_confirm_keypress' to the consumer.","example":"You entered the extension {{extension number}}. If this is correct, press {{keyPress}} to confirm. Otherwise, enter your extension number and then press {{keyPress}}.","default":"You entered the extension {{extension number}}. If this is correct, press {{keyPress}} to confirm. Otherwise, enter your extension number and then press {{keyPress}}."},"confirm_extension_number_message_custom_audio":{"type":"object","properties":{"custom_audio_type":{"type":"string","description":"Select custom audio type.\n\n-'standard' - Choose an audio file. The audio prompt must include all words, numbers, and keypress digits as part of the message. Variables cannot be used with this option.\n-'advanced' -  With this option, the audio message can be split into multiple reusable audio parts. Variables are needed. Set up the digits library before using numbers with this option.","example":"standard","default":"standard","enum":["advanced","standard"]},"custom_audio":{"maxItems":7,"minItems":1,"type":"array","description":"Set the custom audio settings for the message will be played to the consumer before selecting a keypress.\n\nCurrently, 'standard' mode supports a single audio message file. Specify using 'audio_asset_id' only.\n\n'advanced' mode supports up to 7 pre-recorded audio message files.\nCombine per-recorded audio file 'audio_asset_id' and dynamic variable 'audio_variable', here the variable is for {{keypress}}. For each part, use 'audio_asset_id' or 'audio_variable'.\n\n**Advanced mode example**\n        {\n          \"order\": 1,\n          \"audio_asset_id\": \"asset_play_message_prefix\"\n        },\n        {\n          \"order\": 2,\n          \"audio_variable\": \"keypress\"\n        },\n        {\n          \"order\": 3,\n          \"audio_asset_id\":\"asset_play_message_suffix\"\n        }","items":{"required":["order"],"type":"object","properties":{"order":{"maximum":7,"minimum":1,"type":"integer","description":"The order to play audio.","example":1},"audio_asset_id":{"type":"string","description":"ID of the audio asset choose to play message to consumer\n\n**Note** Provide either `audio_asset_id` or `audio_variable`, but not both.","example":"-6y2_bOWTBixtxmNywboJg"},"audio_variable":{"type":"string","description":"Dynamic variable for advanced mode only. Use `keypress` to announce the keypress for consumer to chooes.\n\n**Note** Provide either `audio_asset_id` or `audio_variable`, but not both.","example":"keypress","default":"keypress","enum":["keypress"]}}}}},"description":"Play prerecorded audio message asking the caller to confirm the phone number extension. \n\n**Note** Provide either 'confirm_extension_number_message' or 'confirm_extension_number_message_custom_audio'."},"outbound_dial_option":{"type":"string","description":"Choose the outbound method for how callers are connected when they receive a callback.","example":"auto_greeting","enum":["auto_greeting","directly_connect"]},"outbound_dial_greeting_message":{"maxLength":500,"type":"string","description":"Greeting message sent to callers before they are connected to agent.","example":"Thanks for waiting in the queue. You will be connected to the next available agent in a short moment.","default":"Thanks for waiting in the queue. You will be connected to the next available agent in a short moment"},"outbound_dial_greeting_message_custom_audio":{"type":"object","properties":{"custom_audio_type":{"type":"string","description":"Select custom audio type.\n\n-'standard' - Choose an audio file. The audio prompt must include all words, numbers, and keypress digits as part of the message. Variables cannot be used with this option.\n-'advanced' -  With this option, the audio message can be split into multiple reusable audio parts. Variables are needed. Set up the digits library before using numbers with this option.","example":"standard","default":"standard","enum":["advanced","standard"]},"custom_audio":{"maxItems":7,"minItems":1,"type":"array","description":"Set the custom audio settings for the message will be played to the consumer before selecting a keypress.\n\nCurrently, 'standard' mode supports a single audio message file. Specify using 'audio_asset_id' only.\n\n'advanced' mode supports up to 7 pre-recorded audio message files.\nCombine per-recorded audio file 'audio_asset_id' and dynamic variable 'audio_variable', here the variable is for {{keypress}}. For each part, use 'audio_asset_id' or 'audio_variable'.\n\n**Advanced mode example**\n        {\n          \"order\": 1,\n          \"audio_asset_id\": \"asset_play_message_prefix\"\n        },\n        {\n          \"order\": 2,\n          \"audio_variable\": \"keypress\"\n        },\n        {\n          \"order\": 3,\n          \"audio_asset_id\":\"asset_play_message_suffix\"\n        }","items":{"required":["order"],"type":"object","properties":{"order":{"maximum":7,"minimum":1,"type":"integer","description":"The order to play audio.","example":1},"audio_asset_id":{"type":"string","description":"ID of the audio asset choose to play message to consumer\n\n**Note** Provide either `audio_asset_id` or `audio_variable`, but not both.","example":"-6y2_bOWTBixtxmNywboJg"},"audio_variable":{"type":"string","description":"Dynamic variable for advanced mode only. Use `keypress` to announce the keypress for consumer to chooes.\n\n**Note** Provide either `audio_asset_id` or `audio_variable`, but not both.","example":"keypress","default":"keypress","enum":["keypress"]}}}}},"description":"Play prerecorded greeting message to callers before they are connected to an agent.\n\n**Note** Provider either 'outbound_dial_greeting_message' or 'outbound_dial_greeting_message_custom_audio'."},"callback_timeout":{"type":"integer","description":"How long callbacks will remain as tasks in the queue, in seconds","example":10},"enable_callback_cancel_message":{"type":"boolean","description":"The message sent to consumers if callbacks are canceled.","example":false},"callback_cancel_message":{"maxLength":500,"type":"string","description":"Message sent to notify of callback cancellation.","example":"Your callback has been canceled due to high call volumes. Please try calling again.","default":"Your callback has been canceled due to high call volumes. Please try calling again."},"callback_cancel_message_custom_audio":{"type":"object","properties":{"custom_audio_type":{"type":"string","description":"Select custom audio type.\n\n-'standard' - Choose an audio file. The audio prompt must include all words, numbers, and keypress digits as part of the message. Variables cannot be used with this option.\n-'advanced' -  With this option, the audio message can be split into multiple reusable audio parts. Variables are needed. Set up the digits library before using numbers with this option.","example":"standard","default":"standard","enum":["advanced","standard"]},"custom_audio":{"maxItems":7,"minItems":1,"type":"array","description":"Set the custom audio settings for the message will be played to the consumer before selecting a keypress.\n\nCurrently, 'standard' mode supports a single audio message file. Specify using 'audio_asset_id' only.\n\n'advanced' mode supports up to 7 pre-recorded audio message files.\nCombine per-recorded audio file 'audio_asset_id' and dynamic variable 'audio_variable', here the variable is for {{keypress}}. For each part, use 'audio_asset_id' or 'audio_variable'.\n\n**Advanced mode example**\n        {\n          \"order\": 1,\n          \"audio_asset_id\": \"asset_play_message_prefix\"\n        },\n        {\n          \"order\": 2,\n          \"audio_variable\": \"keypress\"\n        },\n        {\n          \"order\": 3,\n          \"audio_asset_id\":\"asset_play_message_suffix\"\n        }","items":{"required":["order"],"type":"object","properties":{"order":{"maximum":7,"minimum":1,"type":"integer","description":"The order to play audio.","example":1},"audio_asset_id":{"type":"string","description":"ID of the audio asset choose to play message to consumer\n\n**Note** Provide either `audio_asset_id` or `audio_variable`, but not both.","example":"-6y2_bOWTBixtxmNywboJg"},"audio_variable":{"type":"string","description":"Dynamic variable for advanced mode only. Use `keypress` to announce the keypress for consumer to chooes.\n\n**Note** Provide either `audio_asset_id` or `audio_variable`, but not both.","example":"keypress","default":"keypress","enum":["keypress"]}}}}},"description":"Play prerecorded audio message about callback cancellation.\n\n**Note** Provide either 'callback_cancel_message' or 'callback_cancel_message_custom_audio'."},"callback_returning_message":{"maxLength":500,"type":"string","description":"Message with callback setup sent to returning callers. Do not edit or remove symbols and text in {{}}. The {{keyPress}} will play to consumer the keypress configured in 'callback_confirm_keypress'.","example":"Hello again. You have a callback set up. Press {{keyPress}} to cancel your callback and wait on the line. Or you can hang up to keep your callback request and end this call.","default":"Hello again. You have a callback set up. Press {{keyPress}} to cancel your callback and wait on the line. Or you can hang up to keep your callback request and end this call."},"callback_returning_message_custom_audio":{"type":"object","properties":{"custom_audio_type":{"type":"string","description":"Select custom audio type.\n\n-'standard' - Choose an audio file. The audio prompt must include all words, numbers, and keypress digits as part of the message. Variables cannot be used with this option.\n-'advanced' -  With this option, the audio message can be split into multiple reusable audio parts. Variables are needed. Set up the digits library before using numbers with this option.","example":"standard","default":"standard","enum":["advanced","standard"]},"custom_audio":{"maxItems":7,"minItems":1,"type":"array","description":"Set the custom audio settings for the message will be played to the consumer before selecting a keypress.\n\nCurrently, 'standard' mode supports a single audio message file. Specify using 'audio_asset_id' only.\n\n'advanced' mode supports up to 7 pre-recorded audio message files.\nCombine per-recorded audio file 'audio_asset_id' and dynamic variable 'audio_variable', here the variable is for {{keypress}}. For each part, use 'audio_asset_id' or 'audio_variable'.\n\n**Advanced mode example**\n        {\n          \"order\": 1,\n          \"audio_asset_id\": \"asset_play_message_prefix\"\n        },\n        {\n          \"order\": 2,\n          \"audio_variable\": \"keypress\"\n        },\n        {\n          \"order\": 3,\n          \"audio_asset_id\":\"asset_play_message_suffix\"\n        }","items":{"required":["order"],"type":"object","properties":{"order":{"maximum":7,"minimum":1,"type":"integer","description":"The order to play audio.","example":1},"audio_asset_id":{"type":"string","description":"ID of the audio asset choose to play message to consumer\n\n**Note** Provide either `audio_asset_id` or `audio_variable`, but not both.","example":"-6y2_bOWTBixtxmNywboJg"},"audio_variable":{"type":"string","description":"Dynamic variable for advanced mode only. Use `keypress` to announce the keypress for consumer to chooes.\n\n**Note** Provide either `audio_asset_id` or `audio_variable`, but not both.","example":"keypress","default":"keypress","enum":["keypress"]}}}}},"description":"Play prerecorded audio message to returning caller with callback setup. \n\n**Note** Provide either 'callback_returning_message' or 'callback_returning_message_custom_audio'."},"enable_callback_offer_time":{"type":"boolean","description":"Limit the times when callbacks will be offered to consumers.","example":false},"callback_offer_timezone_id":{"type":"string","description":"Set the [timezone](/docs/api/references/abbreviations/#timezones) when callbacks will be offered and returned to consumers. Required when `enable_callback_offer_time` is `true`.","example":"America/Los_Angeles"},"callback_offer_time":{"maxItems":50,"type":"array","description":"Set the day when callbacks will be offered and returned to consumers. Required when `enable_callback_offer_time` is `true`.","items":{"type":"object","properties":{"callback_offer_day":{"type":"string","description":"The day callbacks will be offered to consumers.","example":"Mon","enum":["Mon","Tue","Wed","Thu","Fri","Sat","Sun"]},"callback_offer_start_time":{"type":"string","description":"Start time on the day that callbacks are offered to consumers, between `00:00` and `23:59`.","example":"09:00"},"callback_offer_end_time":{"type":"string","description":"End time on the day that callback offer to consumers, between `00:00` and `23:59`.","example":"18:00"}}}},"enable_callback_return_time":{"type":"boolean","description":"Limit the times when callbacks will be returned to consumers.","example":false},"callback_return_timezone_id":{"type":"string","description":"Set the [timezoneID](/docs/api/references/abbreviations/#timezones) to limit the times when callbacks will be returned to consumers. Required when `enable_callback_return_time` is `true`.","example":"America/Los_Angeles"},"callback_return_day":{"maxItems":50,"type":"array","description":"The day when callbacks will be returned to consumers. Required when `enable_callback_return_time` is `true`.","items":{"type":"object","properties":{"callback_return_day":{"type":"string","description":"The day when callbacks will be returned to consumers. ","example":"Mon","enum":["Mon","Tue","Wed","Thu","Fri","Sat","Sun"]},"callback_return_start_time":{"type":"string","description":"The time range's start time when callbacks will be returned to consumers, between `00:00` and `23:59`.","example":"09:00"},"callback_return_end_time":{"type":"string","description":"The time range's end time when callbacks will be returned to consumers, between `00:00` and `23:59`.","example":"18:00"}}}}},"description":"Set call back settings when menu action choose as `request_callback`."}}}},"invalid_option_message_custom_audio":{"type":"object","properties":{"custom_audio_type":{"type":"string","description":"Select custom audio type.\n\n-'standard' - Choose an audio file. The audio prompt must include all words, numbers, and keypress digits as part of the message. Variables cannot be used with this option.\n-'advanced' -  With this option, the audio message can be split into multiple reusable audio parts. Variables are needed. Set up the digits library before using numbers with this option.","example":"standard","default":"standard","enum":["advanced","standard"]},"custom_audio":{"maxItems":7,"minItems":1,"type":"array","description":"Set the custom audio settings for the message will be played to the consumer before selecting a keypress.\n\nCurrently, 'standard' mode supports a single audio message file. Specify using 'audio_asset_id' only.\n\n'advanced' mode supports up to 7 pre-recorded audio message files.\nCombine per-recorded audio file 'audio_asset_id' and dynamic variable 'audio_variable', here the variable is for {{keypress}}. For each part, use 'audio_asset_id' or 'audio_variable'.\n\n**Advanced mode example**\n        {\n          \"order\": 1,\n          \"audio_asset_id\": \"asset_play_message_prefix\"\n        },\n        {\n          \"order\": 2,\n          \"audio_variable\": \"keypress\"\n        },\n        {\n          \"order\": 3,\n          \"audio_asset_id\":\"asset_play_message_suffix\"\n        }","items":{"required":["order"],"type":"object","properties":{"order":{"maximum":7,"minimum":1,"type":"integer","description":"The order to play audio.","example":1},"audio_asset_id":{"type":"string","description":"ID of the audio asset choose to play message to consumer\n\n**Note** Provide either `audio_asset_id` or `audio_variable`, but not both.","example":"-6y2_bOWTBixtxmNywboJg"},"audio_variable":{"type":"string","description":"Dynamic variable for advanced mode only. Use `keypress` to announce the keypress for consumer to chooes.\n\n**Note** Provide either `audio_asset_id` or `audio_variable`, but not both.","example":"keypress","default":"keypress","enum":["keypress"]}}}}},"description":"Play prerecorded audio message to consumer when they press a phone key for an invalid menu option."}},"description":"Information about the queue interruptMenu."}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `1205` <br>\n Queue channel type is invalid. <br>\n**Error Code:** `1254` <br>\n Bucket ID is invalid. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  Not found. \n\n **Error Code:** `1201` <br>\n Queue does not exist: {queueId}. <br>\n**Error Code:** `3001` <br>\n Inbox does not exist: {voice_mail_inbox_id}. <br>\n**Error Code:** `3201` <br>\n Flow does not exist: {route_to_flow_id}. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_queue:write:admin","contact_center:update:queue:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_queue:write:admin"],"x-granular-scopes":["contact_center:update:queue:admin"]}},"delete":{"tags":["Queues"],"summary":"Delete a queue's interrupt menu configuration","description":"Deletes the interrupt menu configuration for a specific queue. This removes all menu-based interrupt settings including menu options, callback settings, voice prompts, and timing configurations.\n\nThis operation only works for voice queues. Other channel types will return an error.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_queue:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:delete:queue:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"deleteQueueInterruptMenu","parameters":[{"name":"queueId","in":"path","description":"Contact Center queue identifier.","required":true,"schema":{"maxLength":50,"type":"string","example":"zeYjXoDOS_eV1QmTpj63PQ"}},{"name":"bucket_id","in":"query","description":"**Optional** Bucket ID is a unique identifier for a waiting experience time segment within a queue. It represents a specific time range that a consumer waits in a queue, allowing different interrupt settings like audio, notify, and menu interrupt, to be configured for each waiting phase. When `bucket_id` is not provided, the API continues to work at the queue level.\n\nRetrieve the `bucket_id` through the **List Bucket API** - GET /v2/contact_center/queues/{queueId}/buckets.","required":false,"schema":{"type":"string","example":"xN3VqT0pUUkctYk1SRXZQYQ"}}],"responses":{"204":{"description":"**HTTP Status Code:** `204`   \n \n Interrupt menu deleted successfully. No content is returned.\n\n"},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `1205` <br>\n Queue channel type is invalid. <br>\n**Error Code:** `1254` <br>\n Bucket ID is invalid. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1201` <br>\n Queue not found. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_queue:write:admin","contact_center:delete:queue:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_queue:write:admin"],"x-granular-scopes":["contact_center:delete:queue:admin"]}}},"/contact_center/queues/{queueId}/operating_hours":{"get":{"tags":["Queues"],"summary":"Get a queue's operating hours","description":"Get information about a queue's operating hours. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_queue:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:queue_operating_hours:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"getAQueueOperatingHours","parameters":[{"name":"queueId","in":"path","description":"The task queue's ID. Currently supports two different IDs, the task queue's ID and Contact Center queue's ID. \n\n**NOTE** The task queue's ID will be completely **deprecated** in the future. Change to the Contact Center queue ID as soon as possible.","required":true,"schema":{"type":"string","example":"zeYjXoDOS_eV1QmTpj63PQ"}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \nOperating hours returned.","content":{"application/json":{"schema":{"required":["account_default_business_hour","business_hour_id","business_hour_name"],"type":"object","properties":{"business_hour_id":{"type":"string","description":"The business hours' ID.","example":"66ZjSQ7YTOescnINN_4vog"},"business_hour_name":{"type":"string","description":"The business hours' name.","example":"Default Business hours"},"closure_set_id":{"type":"string","description":"The closure's ID.","example":"Ixo-Na0bRfCyQ4q2lAryDw"},"closure_set_name":{"type":"string","description":"The closure's name.","example":"Default Closure"},"account_default_business_hour":{"type":"boolean","description":"Whether the queue's business hour is the account default business hour.","example":true},"account_default_closure_set":{"type":"boolean","description":"Whether the queue's closure set is the account default.","example":true},"operating_hours_overflow_enabled":{"type":"boolean","description":"Specify consumer handling when the queue is unavailable.","example":true},"overflow_to_default_goodbye_message":{"type":"boolean","description":"Reply system default goodbye message, then disconnect.","example":true},"overflow_to_goodbye_message_asset_id":{"type":"string","description":"Reply goodbye message choose from an asset","example":"dORBRSTxTN6B0vLJ37Kvnw"},"overflow_to_goodbye_message_asset_name":{"type":"string","description":"Reply goodbye message choose from an asset name","example":"message"},"overflow_to_queue_id":{"type":"string","description":"The queue ID to receive the overflow. \n","example":"m8IhNvUyTUmx7Jm8h5ZvLQ"},"overflow_to_queue_name":{"type":"string","description":"The name of queue to receive the overflow. \n","example":"voice_queue1"},"overflow_to_flow_id":{"type":"string","description":"The flow ID to receive the overflow.","example":"psjHGHrHQbaX8Zk7ldc81Q"},"overflow_to_flow_name":{"type":"string","description":"The name of flow to receive the overflow.","example":"voice_flow"},"overflow_to_inbox_id":{"type":"string","description":"The voicemail inbox ID to receive the overflow.","example":"cMH8RJA0QsyJBCWIFbWfBQ"},"overflow_to_inbox_name":{"type":"string","description":"The name voicemail inbox to receive the overflow.","example":"voice_mail_1"}}}}}},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1201` <br>\n Queue does not exist: $queueId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_queue:read:admin","contact_center:read:queue_operating_hours:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_queue:read:admin"],"x-granular-scopes":["contact_center:read:queue_operating_hours:admin"]}},"patch":{"tags":["Queues"],"summary":"Update a queue's operating hours","description":"Update a queue's operating hours. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_queue:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:patch:queue_operating_hours:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"QueueOperatingHoursUpdate","parameters":[{"name":"queueId","in":"path","description":"Currently supports two different IDs, the task queue's ID and Contact Center queue's ID. \n\n**NOTE** The task queue's ID will be completely **deprecated** in the future. Change to the Contact Center queue ID as soon as possible.","required":true,"schema":{"type":"string","example":"zeYjXoDOS_eV1QmTpj63PQ"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"account_default_business_hour":{"type":"boolean","description":"Whether to use the account's default business hours. When the account's default business hours change, the business hours used by the queue also change.","example":true},"operating_hours_business_hour_id":{"type":"string","description":"The business hours' ID.","example":"66ZjSQ7YTOescnINN_4vog"},"account_default_closure_set":{"type":"boolean","description":"Whether to use the account's default closure set. When the account's default closure set changes, the closure set used by the queue also changes.","example":true},"operating_hours_closure_set_id":{"type":"string","description":"The closure set's ID.","example":"Ixo-Na0bRfCyQ4q2lAryDw"},"operating_hours_overflow_enabled":{"type":"boolean","description":"Specify consumer handling when the queue is unavailable.","example":true},"overflow_to_default_goodbye_message":{"type":"boolean","description":"Reply goodbye message, then disconnect.\nOnly one of these overflow fields can be updated each time - `overflow_to_default_goodbye_message`, `overflow_to_goodbye_message_asset_id`, `overflow_to_queue_id`, `overflow_to_flow_id`, or `overflow_to_inbox_id`. Updating an overflow field will clear out the other overflow fields.","example":true},"overflow_to_goodbye_message_asset_id":{"type":"string","description":"Reply goodbye message choose from an asset.","example":"dORBRSTxTN6B0vLJ37Kvnw"},"overflow_to_queue_id":{"type":"string","description":"The queue ID to receive the overflow.\n\nOnly one of these overflow fields can be updated each time - `overflow_to_default_goodbye_message`, `overflow_to_goodbye_message_asset_id`, `overflow_to_queue_id`, `overflow_to_flow_id`, or `overflow_to_inbox_id`. Updating an overflow field will clear out the other overflow fields.","example":"m8IhNvUyTUmx7Jm8h5ZvLQ"},"overflow_to_flow_id":{"type":"string","description":"The flow ID to receive the overflow.\n\nOnly one of these overflow fields can be updated each time - `overflow_to_default_goodbye_message`, `overflow_to_goodbye_message_asset_id`, `overflow_to_queue_id`, `overflow_to_flow_id`, or `overflow_to_inbox_id`. Updating an overflow field will clear out the other overflow fields.","example":"psjHGHrHQbaX8Zk7ldc81Q"},"overflow_to_inbox_id":{"type":"string","description":"The voicemail inbox ID to receive the overflow.\n\nOnly one of these overflow fields can be updated each time - `overflow_to_default_goodbye_message`, `overflow_to_goodbye_message_asset_id`, `overflow_to_queue_id`, `overflow_to_flow_id`, or `overflow_to_inbox_id`. Updating an overflow field will clear out the other overflow fields.","example":"cMH8RJA0QsyJBCWIFbWfBQ"}}}}}},"responses":{"204":{"description":"**HTTP Status Code:** `204`   \n \nOperating hours updated."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1201` <br>\n Queue does not exist: $queueId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_queue:write:admin","contact_center:patch:queue_operating_hours:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_queue:write:admin"],"x-granular-scopes":["contact_center:patch:queue_operating_hours:admin"]}}},"/contact_center/queues/{queueId}/recordings":{"get":{"tags":["Queues"],"summary":"List queue recordings","description":"Return a list of all recordings in a queue. \n\n**Note** Use recording-related APIs to manipulate data whose recording was created after July 18, 2022. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_recording:read:admin`,`contact_center_recording:read`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:list_recordings:admin`,`contact_center:read:list_recordings`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"listQueueRecordings","parameters":[{"name":"queueId","in":"path","description":"Currently supports two different IDs, the task queue's ID and Contact Center queue's ID. The task queue's ID will be completely deprecated in the future. Change to the Contact Center queue ID as soon as possible.","required":true,"schema":{"type":"string","example":"1Bgv2rs7Tqaq5hFM95UjWw"}},{"name":"channel_type","in":"query","description":"The recording's channel type. \n* `voice` - Voice recording. \n* `video` - Video recording.","required":false,"deprecated":true,"schema":{"type":"string","example":"voice","enum":["voice","video"]}},{"name":"channel","in":"query","description":"The recording's channel type. \n* `voice` - Voice recording. \n* `video` - Video recording.\n\n If channel is used as an input parameter, the deprecated parameter `channnel_type` will not be processed.","required":false,"schema":{"type":"string","example":"voice","enum":["voice","video"]}},{"name":"from","in":"query","description":"The start time and date in ISO 8601 format, either `yyyy-MM-dd'T'HH:mm:ss'Z'` or `yyyy-MM-dd'T'HH:mm:ss'TZD'`. The defined date range should be a month, as the response only includes one month's worth of data. If unspecified, this parameter returns data from the past 30 days.","required":false,"schema":{"type":"string","format":"string","example":"2023-01-01T00:00:00-08:00"}},{"name":"to","in":"query","description":"**Required** only when the `from` parameter is specified. The end time and date in ISO 8601 format, either `yyyy-MM-dd'T'HH:mm:ss'Z'` or `yyyy-MM-dd'T'HH:mm:ss'TZD'`, the same format as the `from` parameter.","required":false,"schema":{"type":"string","format":"string","example":"2023-01-01T01:00:00-08:00"}},{"name":"exemption","in":"query","description":"Whether the recording is exempted from data retention.\n- true - Return recordings with data retention exemption.\n- false - Return recordings without data retention exemption.\n- null - Return recordings both with and without data retention exemption.","required":false,"schema":{"type":"string","example":"true","enum":["true","false"]}},{"name":"queue_identifier_type","in":"query","description":"How the path parameter is interpreted. `id` treats it as a system-generated unique identifier. `name` treats it as the resource name.\nWhen using `name`, the resource name must be URL-encoded per RFC 3986.","required":false,"schema":{"type":"string","example":"id","default":"id","enum":["id","name"]}},{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of records returned in a single API call.","required":false,"schema":{"maximum":300,"type":"integer","format":"int32","example":30,"default":30}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \nQueue recordings returned.","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"maxLength":100,"type":"string","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":300,"type":"integer","description":"The number of records returned in a single API call.","example":30,"default":30},"from":{"type":"string","description":"The start time and date in ISO 8601 format, either `yyyy-MM-dd'T'HH:mm:ss'Z'` or `yyyy-MM-dd'T'HH:mm:ss'TZD'`. The defined date range should be a month, as the response only includes one month's worth of data. If unspecified, this parameter returns data from the past 30 days.","format":"string","example":"2023-01-01T00:00:00-08:00"},"to":{"type":"string","description":"**Required** only when the `from` parameter is specified. The end time and date in ISO 8601 format, either `yyyy-MM-dd'T'HH:mm:ss'Z'` or `yyyy-MM-dd'T'HH:mm:ss'TZD'`, the same format as the `from` parameter.","format":"string","example":"2023-01-01T01:00:00-08:00"},"recordings":{"type":"array","description":"Information about the recordings.","items":{"type":"object","properties":{"recording_id":{"type":"string","description":"The recording's unique ID.","example":"ghyetrjj_sdfsdgfkdjfl111"},"queue_id":{"type":"string","description":"The queue's unique ID.","example":"ghyetrjj_2342353rsgfkdjfl","deprecated":true},"cc_queue_id":{"type":"string","description":"The Contact Center queue's ID.","example":"smyko04pSCWt9zLI0nn3AQ"},"queue_name":{"type":"string","description":"The queue's name.","example":"voice"},"recording_duration":{"type":"integer","description":"The recording's duration, in seconds.","example":150},"download_url":{"type":"string","description":"The URL to download the recording. For security purposes, you **must** provide an OAuth access token in the Authorization header to download the recording file using this URL. Example:\n\n```curl --request GET \\\n  --url {download_url} \\\n  --header 'authorization: Bearer {access_token} \\\n  --header 'content-type: application/json'\n```","example":"https://example.com/contact_center/recording/download/01bdb222-9984-4f41-8141-2f760cb398aa?type=voice"},"transcript_url":{"type":"string","description":"The URL to download the recording transcript. For security purposes, you **must** provide an OAuth access token in the authorization header to download the recording transcript file using this URL. Example:\n```curl --request GET \n  --url {transcript_url} \n  --header 'authorization: Bearer {access_token}' \n  --header 'content-type: application/json'\n```","example":"https://example.com/contact_center/recording/transcripts/download/4Q0ILNMfTA2nJolNxhg0Rw?type=voice"},"playback_url":{"type":"string","description":"The URL to play the recording. For security purposes, you **must** provide an OAuth access token in the authorization header to play the recording file using this URL. Example:\n```curl --request GET \n  --url {playback_url} \n  --header 'authorization: Bearer {access_token}' \n  --header 'content-type: application/json'\n```","example":"https://example.com/contact_center/recording/playback/4Q0ILNMfTA2nJolNxhg0Rw?type=voice"},"recording_start_time":{"type":"string","description":"The date and time when the recording's start time in ISO 8601 format, either yyyy-MM-dd'T'HH:mm:ss'Z' or yyyy-MM-dd'T'HH:mm:ss'TZD'.","format":"date-time","example":"2023-01-01T08:00:00Z"},"recording_end_time":{"type":"string","description":"The date and time when the recording's end time in ISO 8601 format, either yyyy-MM-dd'T'HH:mm:ss'Z' or yyyy-MM-dd'T'HH:mm:ss'TZD'.","format":"date-time","example":"2023-01-01T09:00:00Z"},"user_id":{"type":"string","description":"The user's ID.","example":"IGTRVt3gQ2i-WjoUIjeZxw"},"display_name":{"type":"string","description":"The user's name.","example":"Jill"},"user_email":{"type":"string","description":"The user's email.","example":"jcill@example.com"},"recording_type":{"type":"string","description":"The recording's type. \n* `on_demand` - Manually trigger recording. \n* `automatic` - Automatically trigger recording.","example":"automatic","enum":["on_demand","automatic"]},"channel_type":{"type":"string","description":"The recording's channel type. \n* `voice` - Voice recording. \n* `video` - Video recording.","example":"voice","deprecated":true,"enum":["voice","video"]},"channel":{"type":"string","description":"The recording's channel type. \n* `voice` - Voice recording. \n* `video` - Video recording.","example":"voice","enum":["voice","video"]},"direction":{"type":"string","description":"The recording's call direction. \n* `inbound` - Call in. \n* `outbound` - Call out.","example":"outbound","enum":["inbound","outbound"]},"owner_id":{"type":"string","description":"The recording's owner ID, either the queue ID or user ID.","example":"auiketrjj_2342353fsewkdjfl"},"owner_name":{"type":"string","description":"The recording's owner name, either the queue name or user name.","example":"voice"},"owner_type":{"type":"string","description":"The recording's owner type. \n* `user` - This recording belongs to an user. \n* `queue` - This recording belongs to a queue.","example":"queue","enum":["user","queue"]},"engagement_id":{"type":"string","description":"The engagement event's unique ID.","example":"3XilEfOvQEKRIWMWhX1jDg"},"flow_name":{"type":"string","description":"The recording's flow name.","example":"voice"},"flow_id":{"type":"string","description":"The recording's flow ID.","example":"fsdfsd4oippe0ffewcbhjk"},"consumer_name":{"type":"string","description":"The customer's name.\n* **Note** This field will be abolished, and the `consumer_name` in `consumers` will be used uniformly.","example":"Jill","deprecated":true},"consumer_number":{"type":"string","description":"The customer's phone number.\n* **Note** This field will be abolished, and the `consumer_number` in `consumers` will be used uniformly.","example":"+12058945728","deprecated":true},"consumers":{"type":"array","description":"Information about the recording consumers.","items":{"type":"object","properties":{"consumer_name":{"type":"string","description":"The customer's name.","example":"Jill"},"consumer_number":{"type":"string","description":"The customer's phone number.","example":"+12058945728"}},"description":"Information about the recording consumer."}},"exemption":{"type":"boolean","description":"Whether the recording is exempted from data retention.","example":true},"team_id":{"type":"string","description":"The team's ID.","example":"edlbknHGRjq35Y5WYxb7_A"},"conference_participant":{"type":"array","description":"Information about the recording conference participants.","items":{"type":"object","properties":{"user_id":{"type":"string","description":"The participant's user ID.","example":"HljBAYkdSzqk_eXkXyEV7g"},"user_name":{"type":"string","description":"The participant's username.","example":"Jill Doe"},"queue_id":{"type":"string","description":"The participant's queue ID.","example":"y5yK894sT4ixNaO__FO_Jg"},"queue_name":{"type":"string","description":"The participant's queue name.","example":"Jill Doe's queue"},"team_id":{"type":"string","description":"The participant's team ID.","example":"edlbknHGRjq35Y5WYxb7_A"},"team_name":{"type":"string","description":"The participant's team name.","example":"Jill Doe's team"},"contact_id":{"type":"string","description":"The participant's contact ID.","example":"edlbknHGRjq35Y5WYxb7_A"},"contact_name":{"type":"string","description":"The participant's contact name.","example":"Jill Doe"},"contact_number":{"type":"string","description":"The participant's contact number.","example":"+12058945728"},"participant_type":{"type":"string","description":"The participant's type.","example":"agent","enum":["agent","customer","supervisor","outbound"]}},"description":"Information about the recording conference participants."}},"segment_type":{"type":"string","description":"Whether the recording is an inbound recording or a conference recording.","example":"conference","enum":["inbound","conference"]},"reason_details":{"maxLength":120,"type":"string","description":"The recording's data retention exemption reason details.","example":"Compliance review."},"team_name":{"type":"string","description":"The team's name.","example":"Jill Doe's team"}},"description":"Information about the recording."}}}}}}},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1204` <br>\n Queue does not exist: $queueId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_recording:read:admin","contact_center_recording:read","contact_center:read:list_recordings:admin","contact_center:read:list_recordings"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_recording:read:admin","contact_center_recording:read"],"x-granular-scopes":["contact_center:read:list_recordings:admin","contact_center:read:list_recordings"]}},"delete":{"tags":["Queues"],"summary":"Delete queue recordings","description":"Delete all recordings in a queue. \n\n**Note** Use recording-related APIs to manipulate data whose recording creation time is after 2022-07-18. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_recording:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:delete:recording:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"deleteQueueRecordings","parameters":[{"name":"queueId","in":"path","description":"Currently supports two different IDs, the task queue's ID and Contact Center queue's ID. The task queue's ID will be completely deprecated in the future. Change to the Contact Center queue ID as soon as possible.","required":true,"schema":{"type":"string","example":"1Bgv2rs7Tqaq5hFM95UjWw"}},{"name":"delete_all_recordings","in":"query","description":"Whether to delete all recordings in this queue. \n* `true` - Delete all recordings in this queue","required":false,"schema":{"type":"boolean","example":true,"default":true,"enum":[true]}}],"responses":{"204":{"description":"**HTTP Status Code:** `204`   \n \nQueue recordings deleted."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1201` <br>\n Queue does not exist: $queueId <br>\n**Error Code:** `2803` <br>\n Queue recordings does not exist: $queueId. <br>\n"},"409":{"description":"**HTTP Status Code:** `409` <br>\n Conflict  \n\n **Error Code:** `2820` <br>\n You cannot delete this recording because it is exempt from retention policy due to legal hold. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_recording:write:admin","contact_center:delete:recording:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_recording:write:admin"],"x-granular-scopes":["contact_center:delete:recording:admin"]}}},"/contact_center/queues/{queueId}/scheduled_callbacks/attendees/{attendeeId}":{"delete":{"tags":["Queues"],"summary":"Delete an attendee from a scheduled callback event","description":"Remove an attendee from an event slot on a scheduled callback. If the attendee is the last remaining participant in that event, the entire event is deleted.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_queue:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:delete:queue:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `HEAVY`","operationId":"Deleteascheduledcallbackforanattendee","parameters":[{"name":"queueId","in":"path","description":"Contact Center queue identifier.","required":true,"schema":{"maxLength":50,"type":"string","example":"zeYjXoDOS_eV1QmTpj63PQ"}},{"name":"attendeeId","in":"path","description":"Attendee identifier.","required":true,"schema":{"maxLength":50,"type":"string","example":"zeYjXoDOS_eV1QmTpj63PQ"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"cancelation_reason":{"maxLength":300,"type":"string","description":"Reason for cancelation.","example":"I'm feeling unwell and need to rest."}},"description":"Booking cancelation object."}}}},"responses":{"204":{"description":"**HTTP Status Code:** `204`   \n \nScheduled callback for attendee canceled."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  Bad Request. \n\n **Error Code:** `1503` <br>\n Scheduler is not set up. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  Unauthorized. \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  Forbidden. \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  Not found. \n\n **Error Code:** `1201` <br>\n Queue does not exist: {queueId}. <br>\n**Error Code:** `1504` <br>\n Attendee not found. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_queue:write:admin","contact_center:delete:queue:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_queue:write:admin"],"x-granular-scopes":["contact_center:delete:queue:admin"]}}},"/contact_center/queues/{queueId}/scheduled_callbacks/events":{"post":{"tags":["Queues"],"summary":"Schedule a callback on a queue","description":"Schedule a callback on a queue.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_queue:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:write:queue:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `HEAVY`","operationId":"Scheduleacallbackonaqueue","parameters":[{"name":"queueId","in":"path","description":"Queue identifier.","required":true,"schema":{"type":"string","example":"zeYjXoDOS_eV1QmTpj63PQ"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["attendees","start_time"],"type":"object","properties":{"start_time":{"maxLength":25,"type":"string","description":"The `start_time` of the slot selected. Should match the `start_time` of the selected slot returned by the [Available slots API](/docs/api/contact-center/#tag/queues/GET/contact_center/queues/{queueId}/scheduled_callbacks/supportive_slots).","format":"date-time","example":"2025-06-18T15:00:00Z"},"attendees":{"maxItems":1,"minItems":1,"type":"array","description":"An array of attendees.","items":{"required":["email","first_name","last_name","phone_number"],"type":"object","properties":{"first_name":{"maxLength":50,"type":"string","description":"The attendee's first name.","example":"Jill"},"last_name":{"maxLength":50,"type":"string","description":"The attendee's last name.","example":"Chill"},"email":{"maxLength":254,"type":"string","description":"The attendee's email address.","format":"email","example":"jchill@example.com"},"phone_number":{"maxLength":30,"type":"string","description":"The attendee's phone number, in E.164 format.","example":"+1 555-555-5555"}},"description":"The attendee's personal information."}}},"description":"Booking object."}}}},"responses":{"201":{"description":"**HTTP Status Code:** `201`   Callback Scheduled","content":{"application/json":{"schema":{"type":"object","properties":{"attendees":{"maxItems":1,"minItems":1,"type":"array","description":"An array of attendees.","items":{"type":"object","properties":{"first_name":{"type":"string","description":"The attendee's first name.","example":"Jill"},"last_name":{"type":"string","description":"The attendee's last name.","example":"Chill"},"email":{"type":"string","description":"The attendee's email address.","example":"jchill@example.com"},"phone_number":{"type":"string","description":"The attendee's phone number, in E.164 format.","example":"+1 555-555-5555"},"attendee_id":{"type":"string","description":"The attendee's ID.","example":"zeYjXoDOS_eV1QmTpj63PQ"}},"description":"The attendee's personal information."}}},"description":"Booking response."}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  Bad request. \n\n **Error Code:** `300` <br>\n Invalid `dateTime` format. <br>\n**Error Code:** `300` <br>\n Must be a well-formed email address. <br>\n**Error Code:** `620003` <br>\n Invalid phone number. <br>\n**Error Code:** `400` <br>\n Requested slot in the past. <br>\n**Error Code:** `400` <br>\n Requested slot does not exist. <br>\n**Error Code:** `400` <br>\n Requested duration changed. <br>\n**Error Code:** `55008` <br>\n Duplicated booking request. <br>\n**Error Code:** `1503` <br>\n Scheduler is not set up. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  Unauthorized. \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  Forbidden. \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  Not found. \n\n **Error Code:** `1201` <br>\n Queue does not exist: {queueId}. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_queue:write:admin","contact_center:write:queue:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_queue:write:admin"],"x-granular-scopes":["contact_center:write:queue:admin"]}}},"/contact_center/queues/{queueId}/scheduled_callbacks/supportive_slots":{"get":{"tags":["Queues"],"summary":"List a queue's scheduled callbacks availability","description":"List scheduled callbacks booking slots for a scheduler set up under a queue.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_queue:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:queue:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"Listqueuescheduledcallbacksavailability","parameters":[{"name":"queueId","in":"path","description":"Queue identifier.","required":true,"schema":{"maxLength":50,"type":"string","example":"zeYjXoDOS_eV1QmTpj63PQ"}},{"name":"from","in":"query","description":"Lower time boundary for booking spots. If `min_time` and `max_time` are not provided a 7 day time range starting from the current day will be returned.","required":false,"schema":{"maxLength":25,"type":"string","format":"date-time","example":"2025-06-18T15:00:00Z"}},{"name":"to","in":"query","description":"Upper time boundary for booking spots. If `min_time` and `max_time` are not provided a 7 day time range starting from the current day will be returned.","required":false,"schema":{"maxLength":25,"type":"string","format":"date-time","example":"2025-06-18T15:00:00Z"}},{"name":"timezone","in":"query","description":"[TZDB identifier](/docs/api/references/abbreviations/#timezones) time zone, which arranges the booking slots into days. If not provided, the scheduler's time zone will be used.","required":false,"schema":{"maxLength":50,"type":"string","example":"America/Los_Angeles"}}],"responses":{"200":{"description":"Return a list of booking spots.","content":{"application/json":{"schema":{"type":"object","properties":{"timezone":{"maxLength":50,"type":"string","description":"Time zone used to allocate booking spots to days.","example":"America/Los_Angeles"},"slot_duration":{"type":"integer","description":"Duration for every booking spot, in minutes.","example":15},"booking_days":{"type":"array","description":"List of days that contain booking spots.","items":{"type":"object","properties":{"slot_date":{"maxLength":25,"type":"string","description":"Date of the day.","format":"date","example":"2025-06-19"},"slots":{"type":"array","description":"List of spots.","items":{"type":"object","properties":{"available_count":{"type":"integer","description":"Number of booking spots available for the specific time slot.","example":2},"start_time":{"maxLength":25,"type":"string","description":"The booking slot's start time.","format":"date-time","example":"2025-06-18T15:00:00Z"},"availability_status":{"maxLength":25,"type":"string","description":"Whether the time slot is available to book.","example":"available","enum":["available","unavailable"]}},"description":"Spots object."}}},"description":"Day object."}}},"description":"Response."}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  Bad request. \n\n **Error Code:** `300` <br>\n `min_time` must come before `max_time`. <br>\n**Error Code:** `300` <br>\n Time range cannot exceed 45 days. <br>\n**Error Code:** `300 ` <br>\n Invalid `dateTime` format. <br>\n**Error Code:** `300` <br>\n Invalid time zone format. <br>\n**Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `1503` <br>\n Scheduler is not set up. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  Unauthorized. \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  Forbidden. \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  Not found \n\n **Error Code:** `1201` <br>\n Queue does not exist: {queueId}. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_queue:read:admin","contact_center:read:queue:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_queue:read:admin"],"x-granular-scopes":["contact_center:read:queue:admin"]}}},"/contact_center/queues/{queueId}/supervisors":{"get":{"tags":["Queues"],"summary":"List queue supervisors","description":"Retrieve the list of a queue's assigned Contact Center users with supervisor persona assignment to the Contact Center queue.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_queue:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:delete:queue_supervisor:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"getQueueSupervisors","parameters":[{"name":"queueId","in":"path","description":"Currently supports two different IDs, the task queue's ID and Contact Center queue's ID. The task queue's ID will be completely deprecated in the future. Change to the Contact Center queue ID as soon as possible.","required":true,"schema":{"type":"string","example":"zeYjXoDOS_eV1QmTpj63PQ"}},{"name":"queue_identifier_type","in":"query","description":"How the path parameter is interpreted. `id` treats it as a system-generated unique identifier. `name` treats it as the resource name.\nWhen using `name`, the resource name must be URL-encoded per RFC 3986.","required":false,"schema":{"type":"string","example":"id","default":"id","enum":["id","name"]}},{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of records returned within a single API call.","required":false,"schema":{"maximum":100,"type":"integer","format":"int32","example":30,"default":30}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \nQueue supervisors list returned.","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"maxLength":100,"type":"string","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":100,"minimum":1,"type":"integer","description":"The number of records returned within a single API call.","example":30,"default":30},"total_records":{"minimum":0,"type":"integer","description":"The total number of all records available across pages.","example":10},"supervisors":{"type":"array","description":"Information about the supervisors.","items":{"type":"object","properties":{"user_id":{"maxLength":36,"type":"string","description":"The Meetings user identifier.","example":"IGTRVt3gQ2i-WjoUIjeZxw"},"display_name":{"type":"string","description":"The user's display name.","example":"Jane Doe"},"user_email":{"type":"string","description":"The user's email address.","format":"email","example":"jchill@example.com"},"role_id":{"maxLength":36,"type":"string","description":"The user's Contact Center role identifier.","example":"0TFVsJqNS82CwkQJLqj1zA"},"role_name":{"maxLength":36,"type":"string","description":"The user's Contact Center role name.","example":"Admin"},"status_id":{"type":"string","description":"The user's availability status ID.","example":"1"},"status_name":{"type":"string","description":"The user's [availability status](https://support.zoom.us/hc/en-us/articles/4470584918541-Setting-availability-status). \n* Offline \n* Ready \n* Not Ready \n* Occupied \n* A custom user status, such as **Lunch**.","example":"Offline","enum":["Offline","Ready","Not Ready","Occupied"]},"user_access":{"type":"string","description":"The user's access status. \n* `active` - The user's role permissions allow them to access the Contact Center. \n* `inactive` - The user cannot access the Contact Center.","example":"active","enum":["active","inactive"]},"teams":{"maxItems":20,"type":"array","description":"The teams the user is assigned to.","items":{"type":"object","properties":{"team_id":{"type":"string","description":"The ID of the team.","example":"qlU902FoTD-dFi9QnCdZhw"},"team_name":{"type":"string","description":"The display name of the team.","example":"Support Team"}}}},"cc_user_id":{"maxLength":36,"type":"string","description":"The Contact Center user identifier.","example":"hKuMAiDdRlSwMkBxR5we7g"}},"description":"Information about the task queue supervisor."}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `1244` <br>\n More than one matching queue found. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1201` <br>\n Queue does not exist: $queueId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_queue:read:admin","contact_center:delete:queue_supervisor:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_queue:read:admin"],"x-granular-scopes":["contact_center:delete:queue_supervisor:admin"]}},"post":{"tags":["Queues"],"summary":"Assign queue supervisors","description":"Assign users to a Contact Center queue as supervisor persona.\n\nThe API response will contain only those users confirmed to have been assigned to the queue, and ignores any unrecognized user ID and users already assigned to the queue.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_queue:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:delete:queue_supervisor:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"assignQueueSupervisors","parameters":[{"name":"queueId","in":"path","description":"The queue identifier. Use either the task queue ID or Contact Center queue ID.","required":true,"schema":{"type":"string","example":"zeYjXoDOS_eV1QmTpj63PQ"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"user_ids":{"maxItems":30,"uniqueItems":true,"type":"array","description":"The user identifiers. The values can be a mix of email addresses, Meetings user IDs, or Contact Center user IDs.","items":{"type":"string","example":"ukAAkZKfROKMSw1bj_RDFQ"}}}}}}},"responses":{"201":{"description":"**HTTP Status Code:** `201`   \n \nQueue supervisors assigned. Can be empty.","content":{"application/json":{"schema":{"type":"object","properties":{"supervisors":{"type":"array","description":"Information about the supervisors.","items":{"type":"object","properties":{"user_id":{"maxLength":36,"type":"string","description":"The Meetings user identifier.","example":"IGTRVt3gQ2i-WjoUIjeZxw"},"cc_user_id":{"maxLength":36,"type":"string","description":"The Contact Center user identifier.","example":"hKuMAiDdRlSwMkBxR5we7g"},"display_name":{"type":"string","description":"The user's display name.","example":"Jane Doe"},"user_email":{"type":"string","description":"The user's email address.","format":"email","example":"jchill@example.com"},"role_id":{"maxLength":36,"type":"string","description":"The user's Contact Center role identifier.","example":"0TFVsJqNS82CwkQJLqj1zA"},"role_name":{"maxLength":36,"type":"string","description":"The user's Contact Center role name.","example":"Admin"},"status_id":{"type":"string","description":"The user's availability status ID.","example":"1"},"status_name":{"type":"string","description":"The user's [availability status](https://support.zoom.us/hc/en-us/articles/4470584918541-Setting-availability-status). \n* Offline \n* Ready \n* Not Ready \n* Occupied \n* A custom user status, such as &quot;Lunch&quot;.","example":"Offline","enum":["Offline","Ready","Not Ready","Occupied"]},"user_access":{"type":"string","description":"The user's access status. \n* `active` - The user's role permissions allow them to access the Contact Center. \n* `inactive` - The user cannot access the Contact Center.","example":"active","enum":["active","inactive"]}},"description":"Information about the task queue supervisor."}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `300` <br>\n Invalid field. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1201` <br>\n Queue does not exist: {queueId}. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_queue:write:admin","contact_center:delete:queue_supervisor:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_queue:write:admin"],"x-granular-scopes":["contact_center:delete:queue_supervisor:admin"]}}},"/contact_center/queues/{queueId}/supervisors/{userId}":{"delete":{"tags":["Queues"],"summary":"Unassign a queue supervisor","description":"Remove a supervisor from a Contact Center queue. The specified user will be unassigned from the queue and will no longer have supervisory access to engagements routed through it. The user must be currently assigned as a supervisor to the queue.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_queue:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:delete:queue_supervisor:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"deleteQueueSupervisor","parameters":[{"name":"queueId","in":"path","description":"The queue identifier. Use either the task queue ID or Contact Center queue ID.","required":true,"schema":{"type":"string","example":"zeYjXoDOS_eV1QmTpj63PQ"}},{"name":"userId","in":"path","description":"The user identifier. This can be the Meetings user ID `user_id`, the Contact Center user ID `cc_user_id`, an email address, or [the 'me' value](/docs/api/using-zoom-apis/#the-me-keyword) to refer to the user associated with the access token.","required":true,"schema":{"type":"string","example":"IGTRVt3gQ2i-WjoUIjeZxw"}}],"responses":{"204":{"description":"**HTTP Status Code:** `204`   \n \nQueue supervisor removed."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `300` <br>\n Validation failed. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1201` <br>\n Queue does not exist: {0}. <br>\n**Error Code:** `1001` <br>\n User does not exist: {0}. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_queue:write:admin","contact_center:delete:queue_supervisor:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_queue:write:admin"],"x-granular-scopes":["contact_center:delete:queue_supervisor:admin"]}}},"/contact_center/queues/{queueId}/teams":{"post":{"tags":["Queues"],"summary":"Assign queue teams","description":"Add teams to a queue.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_queue:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:write:queue_team:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"assignQueueTeams","parameters":[{"name":"queueId","in":"path","description":"Currently supports two different IDs, the task queue's ID and Contact Center queue's ID.\n\n**Note** The task queue's ID will be completely deprecated in the future. Change to the Contact Center queue ID as soon as possible.","required":true,"schema":{"type":"string","example":"zeYjXoDOS_eV1QmTpj63PQ"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["team_ids"],"type":"object","properties":{"team_ids":{"maxItems":10,"type":"array","description":"The team's ID to assign to the queue, up to a maximum of 10 teams per call.","items":{"type":"string","example":"ukAAkZKfROKMSw1bj_RDFQ"}}}}}}},"responses":{"201":{"description":"**HTTP Status Code:** `201`   \n \nQueue teams assigned.","content":{"application/json":{"schema":{"type":"object","properties":{"teams":{"type":"array","description":"Information about the successful assigned teams.","items":{"type":"object","properties":{"team_id":{"type":"string","description":"The team's ID.","example":"2mDPBg3vSYC_l6crQgeCkA"},"team_name":{"type":"string","description":"The team's name.","example":"Example team"}},"description":"Information about the assigned queue teams."}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `1215` <br>\n Teams feature is not enabled. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1201` <br>\n Queue does not exist: $queueId. <br>\n**Error Code:** `1216` <br>\n Teams does not exist. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_queue:write:admin","contact_center:write:queue_team:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_queue:write:admin"],"x-granular-scopes":["contact_center:write:queue_team:admin"]}},"delete":{"tags":["Queues"],"summary":"Unassign queue teams","description":"Remove teams from a queue.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_queue:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:delete:queue_team:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"batchDeleteQueueTeams","parameters":[{"name":"queueId","in":"path","description":"The queue identifier. Use either the task queue ID or Contact Center queue ID.","required":true,"schema":{"type":"string","example":"zeYjXoDOS_eV1QmTpj63PQ"}}],"requestBody":{"description":"Unassign multiple teams in a queue. ","content":{"application/json":{"schema":{"required":["team_ids"],"type":"object","properties":{"team_ids":{"maxItems":10,"minItems":1,"uniqueItems":true,"type":"array","description":"The team's ID to unassign from the queue.","items":{"type":"string","description":"The team's ID.","example":"ukAAkZKfROKMSw1bj_RDFQ"}}}}}}},"responses":{"204":{"description":"**HTTP Status Code:** `204`   \n \nQueue teams removed."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `1215` <br>\n Teams feature is not enabled. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1201` <br>\n Queue does not exist: $queueId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_queue:write:admin","contact_center:delete:queue_team:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_queue:write:admin"],"x-granular-scopes":["contact_center:delete:queue_team:admin"]}}},"/contact_center/queues/{queueId}/teams/{teamId}":{"delete":{"tags":["Queues"],"summary":"Unassign a queue team","description":"Remove a team from a queue.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_queue:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:delete:queue_team:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"deleteQueueTeam","parameters":[{"name":"queueId","in":"path","description":"Currently supports two different IDs, the old task queue's ID and the new Contact Center queue's ID. **Note** The task queue ID will be deprecated in the future. Change to the Contact Center queue's ID as soon as possible.","required":true,"schema":{"type":"string","example":"zeYjXoDOS_eV1QmTpj63PQ"}},{"name":"teamId","in":"path","description":"The team's ID.","required":true,"schema":{"type":"string","example":"2mDPBg3vSYC_l6crQgeCkA"}}],"responses":{"204":{"description":"**HTTP Status Code:** `204`   \n \nQueue team removed."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `1215` <br>\n Teams feature is not enabled. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1201` <br>\n Queue does not exist: $queueId. <br>\n**Error Code:** `1216` <br>\n Team does not exist: $teamId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_queue:write:admin","contact_center:delete:queue_team:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_queue:write:admin"],"x-granular-scopes":["contact_center:delete:queue_team:admin"]}}},"/contact_center/{engagementId}/rtms_app/status":{"put":{"tags":["RTMS"],"summary":"Update engagement Real-Time Media Streams (RTMS) app status","description":"Update the RTMS status for a specific engagement. Contact Center allows changing status [start, pause, resume, stop] for RTMS at the engagement level.\n\n**Prerequisites:**\n* The app has a media scope assigned in the Zoom Marketplace.\n* The app has an OpenAPI scope assigned in the Zoom Marketplace.\n* The app has queues assigned in the Contact Center web portal.\n* The engagement must be in progress.\n\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_rtms:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:update:engagement_rtms_app_status`,`contact_center:update:engagement_rtms_app_status:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"engagementRTMSStatusUpdate","parameters":[{"name":"engagementId","in":"path","description":"The unique identifier for the engagement to be updated.","required":true,"schema":{"type":"string","example":"LjjdDBo5SkGneP8qY4SvuQ"}}],"requestBody":{"description":"The engagement's RTMS status.","content":{"application/json":{"schema":{"type":"object","properties":{"action":{"type":"string","description":"The engagement's RTMS app status.\n* `start` - Start an RTMS app.\n* `stop` - Stop an ongoing RTMS app.\n* `pause` - Pause an ongoing RTMS app.\n* `resume` - Resume a paused RTMS app.","example":"start","enum":["start","stop","pause","resume"]},"settings":{"required":["client_id"],"type":"object","properties":{"client_id":{"maxLength":36,"type":"string","description":"The unique identifier of the authorized app configured in MP.","example":"a_Zu0X_FVBUycmEi9ms5hg"}},"description":"Engagement's RTMS app settings."}},"description":"Engagement's RTMS app status."}}}},"responses":{"204":{"description":"**HTTP Status Code:** `204` Engagement's RTMS app status updated."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `4100` <br>\n Engagement {engagementId} is not yet ready for streaming. <br>\n**Error Code:** `4101` <br>\n Action {action} not valid for {engagementId}. Streaming is already in the requested state. <br>\n**Error Code:** `4102` <br>\n Action {action} is invalid. Engagement is in {state}. <br>\n**Error Code:** `4103` <br>\n Invalid app {clientId} for engagement {engagementId}. <br>\n**Error Code:** `4105` <br>\n Invalid streaming command. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `4106` <br>\n The current engagement does not support the RTMS app feature. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `2901` <br>\n Engagement does not exist: {engagementId}. <br>\n**Error Code:** `20006` <br>\n Account not found. <br>\n**Error Code:** `4109` <br>\n The system could not find the session for the engagement. <br>\n"},"409":{"description":"**HTTP Status Code:** `409` <br>\n Conflict  \n\n **Error Code:** `4111` <br>\n There was a problem processing this request. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "},"500":{"description":"**HTTP Status Code:** `500` <br>\n Internal Server Error  \n\n **Error Code:** `4107` <br>\n There was a problem processing this request. <br>\n"}},"security":[{"openapi_oauth":["contact_center_rtms:write:admin","contact_center:update:engagement_rtms_app_status","contact_center:update:engagement_rtms_app_status:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_rtms:write:admin"],"x-granular-scopes":["contact_center:update:engagement_rtms_app_status","contact_center:update:engagement_rtms_app_status:admin"]}}},"/contact_center/engagements/{engagementId}/recordings":{"get":{"tags":["Recordings"],"summary":"List engagement recordings","description":"Return a list of all of an engagement's recordings. \n\n**Note:** Use recording-related APIs to manipulate data whose recording was created after July 18, 2022. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_recording:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:list_recordings:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"listEngagementRecordings","parameters":[{"name":"engagementId","in":"path","description":"The engagement event's unique ID.","required":true,"schema":{"type":"string","example":"Xh79Eq6gQhy8I1vM-r8P-w"}},{"name":"channel_type","in":"query","description":"The recording's channel type. \n* `voice` - Voice recording. \n* `video` - Video recording.","required":false,"deprecated":true,"schema":{"type":"string","example":"voice","enum":["voice","video"]}},{"name":"channel","in":"query","description":"The recording's channel type. \n* `voice` - Voice recording \n* `video` - Video recording\n\n If channel is used as an input parameter, the deprecated parameter `channnel_type` will not be processed.","required":false,"schema":{"type":"string","example":"voice","enum":["voice","video"]}},{"name":"from","in":"query","description":"The start time and date in ISO 8601 format, either `yyyy-MM-dd'T'HH:mm:ss'Z'` or `yyyy-MM-dd'T'HH:mm:ss'TZD'`. The defined date range should be a month, as the response only includes one month's worth of data. If unspecified, this parameter returns data from the past 30 days.","required":false,"schema":{"type":"string","format":"string","example":"2023-01-01T00:00:00-08:00"}},{"name":"to","in":"query","description":"**Required** only when the `from` parameter is specified. The end time and date in ISO 8601 format, either `yyyy-MM-dd'T'HH:mm:ss'Z'` or `yyyy-MM-dd'T'HH:mm:ss'TZD'`, the same format as the `from` parameter.","required":false,"schema":{"type":"string","format":"string","example":"2023-01-01T01:00:00-08:00"}},{"name":"exemption","in":"query","description":"Whether the recording is exempted from data retention.\n- true - Return recordings with data retention exemption.\n- false - Return recordings without data retention exemption.\n- null - Return recordings both with and without data retention exemption.","required":false,"schema":{"type":"string","example":"true","enum":["true","false"]}},{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of items returned per page.","required":false,"schema":{"maximum":300,"type":"integer","format":"int32","example":30,"default":30}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \nEngagement recordings returned.","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"maxLength":100,"type":"string","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":300,"minimum":1,"type":"integer","description":"The number of records returned within a single API call.","example":30,"default":30},"from":{"type":"string","description":"The start time and date in ISO 8601 format, either `yyyy-MM-dd'T'HH:mm:ss'Z'` or `yyyy-MM-dd'T'HH:mm:ss'TZD'`. The defined date range should be a month, as the response only includes one month's worth of data. If unspecified, this parameter returns data from the past 30 days.","format":"string","example":"2023-01-01T00:00:00-08:00"},"to":{"type":"string","description":"**Required** only when the `from` parameter is specified. The end time and date in ISO 8601 format, either `yyyy-MM-dd'T'HH:mm:ss'Z'` or `yyyy-MM-dd'T'HH:mm:ss'TZD'`, the same format as the `from` parameter.","format":"string","example":"2023-01-01T01:00:00-08:00"},"recordings":{"type":"array","description":"Information about the recordings.","items":{"type":"object","properties":{"recording_id":{"type":"string","description":"The recording's unique ID.","example":"ghyetrjj_sdfsdgfkdjfl111"},"queue_id":{"type":"string","description":"The queue's unique ID.","example":"ghyetrjj_2342353rsgfkdjfl","deprecated":true},"cc_queue_id":{"type":"string","description":"The Contact Center queue's ID.","example":"smyko04pSCWt9zLI0nn3AQ"},"queue_name":{"type":"string","description":"The queue's name.","example":"voice"},"recording_duration":{"type":"integer","description":"The recording's duration in seconds.","example":150},"download_url":{"type":"string","description":"The URL to download the recording. For security purposes, you **must** provide an OAuth access token in the Authorization header to download the recording file using this URL. Example:\n ```\ncurl --request GET \\ \n --url {download_url} \\ \n --header 'authorization: Bearer {access_token}' \\ \n --header 'content-type: application/json'\n```\nNote: The URL may be a redirect. In that case, use `curl --location` to follow redirects or use another tool, like Postman.","example":"https://example.com/contact_center/recording/download/01bdb222-9984-4f41-8141-2f760cb398aa?type=voice"},"transcript_url":{"type":"string","description":"The URL to download the recording transcript. For security purposes, you **must** provide an OAuth access token in the authorization header to download the recording transcript file using this URL. Example:\n ```\ncurl --request GET \\ \n --url {transcript_url} \\ \n --header 'authorization: Bearer {access_token}' \\ \n --header 'content-type: application/json'\n```\nNote: The URL may be a redirect. In that case, use `curl --location` to follow redirects or use another tool, like Postman.","example":"https://example.com/contact_center/recording/transcripts/download/4Q0ILNMfTA2nJolNxhg0Rw?type=voice"},"playback_url":{"type":"string","description":"The URL to play the recording. For security purposes, you **must** provide an OAuth access token in the authorization header to play the recording file using this URL. Example:\n```\ncurl --request GET \\ \n --url {playback_url} \\ \n --header 'authorization: Bearer {access_token}' \\ \n --header 'content-type: application/json'\n```\nNote: The URL may be a redirect. In that case, use `curl --location` to follow redirects or use another tool, like Postman.","example":"https://example.com/contact_center/recording/playback/4Q0ILNMfTA2nJolNxhg0Rw?type=voice"},"recording_start_time":{"type":"string","description":"The date and time when the recording's start time in ISO 8601 format, either `yyyy-MM-dd'T'HH:mm:ss'Z'` or `yyyy-MM-dd'T'HH:mm:ss'TZD'`.","format":"date-time","example":"2023-01-01T08:00:00Z"},"recording_end_time":{"type":"string","description":"The date and time when the recording's end time in ISO 8601 format, either `yyyy-MM-dd'T'HH:mm:ss'Z'` or `yyyy-MM-dd'T'HH:mm:ss'TZD'`.","format":"date-time","example":"2023-01-01T09:00:00Z"},"user_id":{"type":"string","description":"The user's ID.","example":"IGTRVt3gQ2i-WjoUIjeZxw"},"display_name":{"type":"string","description":"The user's name.","example":"Jill"},"user_email":{"type":"string","description":"The user's email.","example":"jchill@example.com"},"recording_type":{"type":"string","description":"The recording's type. \n* `on_demand` - Manually trigger recording. \n* `automatic` - Automatically trigger recording.","example":"automatic","enum":["on_demand","automatic"]},"channel_type":{"type":"string","description":"The recording's channel type. \n* `voice` - Voice recording. \n* `video` - Video recording.","example":"voice","deprecated":true,"enum":["voice","video"]},"channel":{"type":"string","description":"The recording's channel type. \n* `voice` - Voice recording. \n* `video` - Video recording.","example":"voice","enum":["voice","video"]},"direction":{"type":"string","description":"The recording's call direction. \n* `inbound` - Call in. \n* `outbound` - Call out.","example":"outbound","enum":["inbound","outbound"]},"owner_id":{"type":"string","description":"The recording's owner ID, either the queue ID or user ID.","example":"auiketrjj_2342353fsewkdjfl"},"owner_name":{"type":"string","description":"The recording's owner name, either the queue name or user name.","example":"voice"},"owner_type":{"type":"string","description":"The recording's owner type. \n* `user` - This recording belongs to an userl \n* `queue` - This recording belongs to a queue.","example":"queue","enum":["user","queue"]},"engagement_id":{"type":"string","description":"The engagement event's unique ID.","example":"3XilEfOvQEKRIWMWhX1jDg"},"flow_name":{"type":"string","description":"The recording's flow name.","example":"voice"},"flow_id":{"type":"string","description":"The recording's flow ID.","example":"fsdfsd4oippe0ffewcbhjk"},"consumer_name":{"type":"string","description":"The customer's name.\n* **Note** This field will be deprecated, and the `consumer_name` in `consumers` will be used uniformly.","example":"Jill","deprecated":true},"consumer_number":{"type":"string","description":"The customer's phone number.\n* **Note** This field will be deprecated, and the `consumer_number` in `consumers` will be used uniformly.","example":"+12058945728","deprecated":true},"consumers":{"type":"array","description":"Information about the recording consumers.","items":{"type":"object","properties":{"consumer_name":{"type":"string","description":"The customer's name.","example":"Jill"},"consumer_number":{"type":"string","description":"The customer's phone number.","example":"+12058945728"}},"description":"Information about the recording consumer."}},"exemption":{"type":"boolean","description":"To specify whether the recording is exempted from data retention.","example":true},"team_id":{"type":"string","description":"The team's ID.","example":"edlbknHGRjq35Y5WYxb7_A"},"conference_participant":{"type":"array","description":"Information about the recording conference participants.","items":{"type":"object","properties":{"user_id":{"type":"string","description":"The participant's user ID.","example":"HljBAYkdSzqk_eXkXyEV7g"},"user_name":{"type":"string","description":"The participant's username.","example":"Jill Doe"},"queue_id":{"type":"string","description":"The participant's queue ID.","example":"y5yK894sT4ixNaO__FO_Jg"},"queue_name":{"type":"string","description":"The participant's queue name.","example":"Jill Doe's queue"},"team_id":{"type":"string","description":"The participant's team ID.","example":"edlbknHGRjq35Y5WYxb7_A"},"team_name":{"type":"string","description":"The participant's team name.","example":"Jill Doe's team"},"contact_id":{"type":"string","description":"The participant's contact ID.","example":"edlbknHGRjq35Y5WYxb7_A"},"contact_name":{"type":"string","description":"The participant's contact name.","example":"Jill Doe"},"contact_number":{"type":"string","description":"The participant's contact number.","example":"+12058945728"},"participant_type":{"type":"string","description":"The participant's type.","example":"agent","enum":["agent","customer","supervisor","outbound"]}},"description":"Information about the recording conference participants."}},"segment_type":{"type":"string","description":"Whether the recording is an inbound recording or a conference recording.","example":"conference","enum":["inbound","conference"]},"reason_details":{"maxLength":120,"type":"string","description":"The recording's data retention exemption reason details.","example":"Compliance review."},"team_name":{"type":"string","description":"The team's name.","example":"Jill Doe's team"}},"description":"Information about the recording."}}}}}}},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `2805` <br>\n Engagement recordings does not exist or you do not have the corresponding operation authority: $engagementId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_recording:read:admin","contact_center:read:list_recordings:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_recording:read:admin"],"x-granular-scopes":["contact_center:read:list_recordings:admin"]}},"delete":{"tags":["Recordings"],"summary":"Delete engagement recordings","description":"Delete all recordings in a given engagement.  \n\n**Note**: Use recording-related APIs to manipulate data whose recording creation time is after 2022-07-18. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_recording:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:delete:recording:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"deleteEngagementRecordings","parameters":[{"name":"engagementId","in":"path","description":"The engagement's ID.","required":true,"schema":{"type":"string","example":"Xh79Eq6gQhy8I1vM-r8P-w"}},{"name":"delete_all_recordings","in":"query","description":"Whether to delete all recordings in this engagement. \n* `true` &mdash; Delete all recordings in this engagement","required":false,"schema":{"type":"boolean","example":true,"default":true,"enum":[true]}}],"responses":{"204":{"description":"**HTTP Status Code:** `204`   \n \nEngagement recordings deleted."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `2805` <br>\n Engagement recordings does not exist: $engagementId. <br>\n"},"409":{"description":"**HTTP Status Code:** `409` <br>\n Conflict  \n\n **Error Code:** `2820` <br>\n You cannot delete this recording because it is exempt from retention policy due to legal hold. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_recording:write:admin","contact_center:delete:recording:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_recording:write:admin"],"x-granular-scopes":["contact_center:delete:recording:admin"]}}},"/contact_center/recordings":{"get":{"tags":["Recordings"],"summary":"List recordings","description":"Return a list of available recordings. \n\n**Note** Use recording-related APIs to manipulate data whose recording was created after July 18, 2022. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_recording:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:list_recordings:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"listRecordings","parameters":[{"name":"query_date_type","in":"query","description":"Query date type. \n* `recording_start_time` - The recording's start time.\n* `recording_end_time` - The recording's end time.","required":false,"schema":{"type":"string","example":"recording_start_time","default":"recording_start_time"}},{"name":"from","in":"query","description":"The start time and date in ISO 8601 format, either yyyy-MM-dd'T'HH:mm:ss'Z' or yyyy-MM-dd'T'HH:mm:ss'TZD'. The defined date range should be a month, as the response only includes one month's worth of data. If unspecified, this parameter returns data from the past 30 days.","required":false,"schema":{"type":"string","format":"string","example":"2023-01-01T00:00:00-08:00"}},{"name":"to","in":"query","description":"**Required** only when the `from` parameter is specified. The end time and date in ISO 8601 format, either yyyy-MM-dd'T'HH:mm:ss'Z' or yyyy-MM-dd'T'HH:mm:ss'TZD', the same format as the `from` parameter.","required":false,"schema":{"type":"string","format":"string","example":"2023-01-01T01:00:00-08:00"}},{"name":"recording_type","in":"query","description":"The recording's type. \n* `on_demand` - Manually trigger recording. \n* `automatic` - Automatically trigger recording.","required":false,"schema":{"type":"string","example":"automatic","enum":["on_demand","automatic"]}},{"name":"owner_type","in":"query","description":"The recording's owner type. \n* `user` - This recording belongs to a user. \n* `queue` - This recording belongs to a queue.","required":false,"schema":{"type":"string","example":"queue","enum":["user","queue"]}},{"name":"channel_type","in":"query","description":"The recording's channel type. \n* `voice` - Voice recording. \n* `video` - Video recording.","required":false,"deprecated":true,"schema":{"type":"string","example":"voice","enum":["voice","video"]}},{"name":"channel","in":"query","description":"The recording's channel type. \n* `voice` - Voice recording. \n* `video` - Video recording.\n\n If channel is used as an input parameter, the deprecated parameter `channnel_type` will not be processed.","required":false,"schema":{"type":"string","example":"voice","enum":["voice","video"]}},{"name":"exemption","in":"query","description":"Whether the recording is exempted from data retention.\n- true - Return recordings with data retention exemption.\n- false - Return recordings without data retention exemption.\n- null - Return recordings both with and without data retention exemption.","required":false,"schema":{"type":"string","example":"true","enum":["true","false"]}},{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of items returned per page.","required":false,"schema":{"maximum":300,"type":"integer","format":"int32","example":30,"default":30}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \nRecordings returned","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"maxLength":100,"type":"string","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":300,"minimum":1,"type":"integer","description":"The number of records returned within a single API call.","example":30,"default":30},"from":{"type":"string","description":"The start time and date in ISO 8601 format, either `yyyy-MM-dd'T'HH:mm:ss'Z'` or `yyyy-MM-dd'T'HH:mm:ss'TZD'`. The defined date range should be a month, as the response only includes one month's worth of data. If unspecified, this parameter returns data from the past 30 days.","format":"string","example":"2023-01-01T00:00:00-08:00"},"to":{"type":"string","description":"**Required** only when the `from` parameter is specified. The end time and date in ISO 8601 format, either `yyyy-MM-dd'T'HH:mm:ss'Z'` or `yyyy-MM-dd'T'HH:mm:ss'TZD'`, the same format as the `from` parameter.","format":"string","example":"2023-01-01T01:00:00-08:00"},"recordings":{"type":"array","description":"Information about the recordings.","items":{"type":"object","properties":{"recording_id":{"type":"string","description":"The recording's unique ID.","example":"ghyetrjj_sdfsdgfkdjfl111"},"queue_id":{"type":"string","description":"The queue's unique ID.","example":"ghyetrjj_2342353rsgfkdjfl","deprecated":true},"cc_queue_id":{"type":"string","description":"The Contact Center queue's ID.","example":"smyko04pSCWt9zLI0nn3AQ"},"queue_name":{"type":"string","description":"The queue's name.","example":"voice"},"recording_duration":{"type":"integer","description":"The recording's duration in seconds.","example":150},"download_url":{"type":"string","description":"The URL to download the recording. For security purposes, you **must** provide an OAuth access token in the Authorization header to download the recording file using this URL. Example:\n ```\ncurl --request GET \\ \n --url {download_url} \\ \n --header 'authorization: Bearer {access_token}' \\ \n --header 'content-type: application/json'\n```\nNote: The URL may be a redirect. In that case, use `curl --location` to follow redirects or use another tool, like Postman.","example":"https://example.com/contact_center/recording/download/01bdb222-9984-4f41-8141-2f760cb398aa?type=voice"},"transcript_url":{"type":"string","description":"The URL to download the recording transcript. For security purposes, you **must** provide an OAuth access token in the authorization header to download the recording transcript file using this URL. Example:\n ```\ncurl --request GET \\ \n --url {transcript_url} \\ \n --header 'authorization: Bearer {access_token}' \\ \n --header 'content-type: application/json'\n```\nNote: The URL may be a redirect. In that case, use `curl --location` to follow redirects or use another tool, like Postman.","example":"https://example.com/contact_center/recording/transcripts/download/4Q0ILNMfTA2nJolNxhg0Rw?type=voice"},"playback_url":{"type":"string","description":"The URL to play the recording. For security purposes, you **must** provide an OAuth access token in the authorization header to play the recording file using this URL. Example:\n```\ncurl --request GET \\ \n --url {playback_url} \\ \n --header 'authorization: Bearer {access_token}' \\ \n --header 'content-type: application/json'\n```\nNote: The URL may be a redirect. In that case, use `curl --location` to follow redirects or use another tool, like Postman.","example":"https://example.com/contact_center/recording/playback/4Q0ILNMfTA2nJolNxhg0Rw?type=voice"},"recording_start_time":{"type":"string","description":"The date and time when the recording's start time in ISO 8601 format, either `yyyy-MM-dd'T'HH:mm:ss'Z'` or `yyyy-MM-dd'T'HH:mm:ss'TZD'`.","format":"date-time","example":"2023-01-01T08:00:00Z"},"recording_end_time":{"type":"string","description":"The date and time when the recording's end time in ISO 8601 format, either `yyyy-MM-dd'T'HH:mm:ss'Z'` or `yyyy-MM-dd'T'HH:mm:ss'TZD'`.","format":"date-time","example":"2023-01-01T09:00:00Z"},"user_id":{"type":"string","description":"The user's ID.","example":"IGTRVt3gQ2i-WjoUIjeZxw"},"display_name":{"type":"string","description":"The user's name.","example":"Tom"},"user_email":{"type":"string","description":"The user's email.","example":"xxxx@example.com"},"recording_type":{"type":"string","description":"The recording's type. \n* `on_demand` - Manually trigger recording. \n* `automatic` - Automatically trigger recording.","example":"automatic","enum":["on_demand","automatic"]},"channel_type":{"type":"string","description":"The recording's channel type. \n* `voice` - Voice recording. \n* `video` - Video recording.","example":"voice","deprecated":true,"enum":["voice","video"]},"channel":{"type":"string","description":"The recording's channel type. \n* `voice` - Voice recording. \n* `video` - Video recording.","example":"voice","enum":["voice","video"]},"direction":{"type":"string","description":"The recording's call direction. \n* `inbound` - Call in. \n* `outbound` - Call out.","example":"outbound","enum":["inbound","outbound"]},"owner_id":{"type":"string","description":"The recording's owner ID, either the queue ID or user ID.","example":"auiketrjj_2342353fsewkdjfl"},"owner_name":{"type":"string","description":"The recording's owner name, either thequeue name or user name.","example":"voice"},"owner_type":{"type":"string","description":"The recording's owner type. \n* `user` - This recording belongs to a user. \n* `queue` - This recording belongs to a queue.","example":"queue","enum":["user","queue"]},"engagement_id":{"type":"string","description":"The engagement event's unique ID.","example":"3XilEfOvQEKRIWMWhX1jDg"},"flow_name":{"type":"string","description":"The recording's flow name.","example":"voice"},"flow_id":{"type":"string","description":"The recording's flow ID.","example":"fsdfsd4oippe0ffewcbhjk"},"consumer_name":{"type":"string","description":"The customer's name.\n* **Note** This field will be abolished, and the `consumer_name` in `consumers` will be used uniformly.","example":"Jill","deprecated":true},"consumer_number":{"type":"string","description":"The customer's phone number.\n* **Note** This field will be abolished, and the `consumer_number` in `consumers` will be used uniformly.","example":"+12058945728","deprecated":true},"consumers":{"type":"array","description":"Information about the recording consumers.","items":{"type":"object","properties":{"consumer_name":{"type":"string","description":"The customer's name.","example":"Jill"},"consumer_number":{"type":"string","description":"The customer's phone number.","example":"+12058945728"}},"description":"Information about the recording consumer."}},"exemption":{"type":"boolean","description":"Whether the recording is exempted from data retention.","example":true},"team_id":{"type":"string","description":"The team's ID.","example":"edlbknHGRjq35Y5WYxb7_A"},"conference_participant":{"type":"array","description":"Information about the recording conference participants.","items":{"type":"object","properties":{"user_id":{"type":"string","description":"The participant's user ID.","example":"HljBAYkdSzqk_eXkXyEV7g"},"user_name":{"type":"string","description":"The participant's username.","example":"Jill Doe"},"queue_id":{"type":"string","description":"The participant's queue ID.","example":"y5yK894sT4ixNaO__FO_Jg"},"queue_name":{"type":"string","description":"The participant's queue name.","example":"Jill Doe's queue"},"team_id":{"type":"string","description":"The participant's team ID.","example":"edlbknHGRjq35Y5WYxb7_A"},"team_name":{"type":"string","description":"The participant's team name.","example":"Jill Doe's team"},"contact_id":{"type":"string","description":"The participant's contact ID.","example":"edlbknHGRjq35Y5WYxb7_A"},"contact_name":{"type":"string","description":"The participant's contact name.","example":"Jill Doe"},"contact_number":{"type":"string","description":"The participant's contact number.","example":"+12058945728"},"participant_type":{"type":"string","description":"The participant's type.","example":"agent","enum":["agent","customer","supervisor","outbound"]}},"description":"Information about the recording conference participants."}},"segment_type":{"type":"string","description":"Whether the recording is an inbound recording or a conference recording.","example":"conference","enum":["inbound","conference"]},"reason_details":{"maxLength":120,"type":"string","description":"The recording's data retention exemption reason details.","example":"Compliance review."},"team_name":{"type":"string","description":"The team's name.","example":"Jill Doe's team"}},"description":"Information about the recording."}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `300` <br>\n Validation failed. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_recording:read:admin","contact_center:read:list_recordings:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_recording:read:admin"],"x-granular-scopes":["contact_center:read:list_recordings:admin"]}}},"/contact_center/recordings/{recordingId}":{"delete":{"tags":["Recordings"],"summary":"Delete a recording","description":"Delete a selected recording. \n\n**Note**: Use recording-related APIs to manipulate data whose recording creation time is after 2022-07-18. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_recording:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:delete:recording:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"deleteRecording","parameters":[{"name":"recordingId","in":"path","description":"The recording's ID.","required":true,"schema":{"type":"string","example":"ghyetrjj_2342353rsgfkdjfl"}}],"responses":{"204":{"description":"**HTTP Status Code:** `204`   \n \nRecording deleted."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `2801` <br>\n Recording does not exist: $recordingId. <br>\n"},"409":{"description":"**HTTP Status Code:** `409` <br>\n Conflict  \n\n **Error Code:** `2820` <br>\n You cannot delete this recording because it is exempt from retention policy due to legal hold. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_recording:write:admin","contact_center:delete:recording:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_recording:write:admin"],"x-granular-scopes":["contact_center:delete:recording:admin"]}}},"/contact_center/regions":{"get":{"tags":["Regions"],"summary":"List regions","description":"Get information about all available regions.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_region:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:list_regions:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"ListRegions","parameters":[{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of items returned per page.","required":false,"schema":{"maximum":300,"type":"integer","format":"int32","example":30,"default":30}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`    Region list returned.","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"type":"string","description":"Use the next page token to paginate through large result sets. A next page token returns whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":300,"type":"integer","description":"The number of records returned within a single API call.","example":30,"default":30},"total_records":{"type":"integer","description":"The total number of all the records available across pages.","example":1},"regions":{"maxItems":300,"type":"array","description":"Information about the regions.","items":{"type":"object","properties":{"region_id":{"type":"string","description":"The region's ID.","example":"36c8dc7c-695f-11ed-a081-0a514d46f86b"},"region_name":{"type":"string","description":"The region's name.","example":"Main Region"},"is_main_region":{"type":"boolean","description":"Whether this region is the main region.","example":true},"sip_zone_id":{"type":"string","description":"The region SIP zone's ID.","example":"AfgzMEweSQ6tqzC8jhYJ2A"},"sip_zone_name":{"type":"string","description":"The region SIP zone's name.","example":"zccsipzone"},"users_count":{"type":"integer","description":"The number of users assigned to region.","example":20},"last_modified_time":{"type":"string","description":"The date and time when the asset was last modified.","format":"date-time","example":"2022-02-15T09:27:15Z"}}}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_region:read:admin","contact_center:read:list_regions:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_region:read:admin"],"x-granular-scopes":["contact_center:read:list_regions:admin"]}},"post":{"tags":["Regions"],"summary":"Create a region","description":"Create a new region.  \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_region:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:write:region:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"CreateARegion","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"region_name":{"type":"string","description":"The region's name.","example":"Customer region"},"sip_zone_id":{"type":"string","description":"The region SIP zone's ID.","example":"AfgzMEweSQ6tqzC8jhYJ2A"}}}}}},"responses":{"200":{"description":"**HTTP Status Code:** `201`    Region created.","content":{"application/json":{"schema":{"type":"object","properties":{"region_name":{"type":"string","description":"The region's name.","example":"Customer region"},"region_id":{"type":"string","description":"The region's ID.","example":"6c8dc7c-695f-11ed-a081-0a514d46f86b"},"sip_zone_id":{"type":"string","description":"The region SIP zone's ID.","example":"AfgzMEweSQ6tqzC8jhYJ2A"}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_region:write:admin","contact_center:write:region:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_region:write:admin"],"x-granular-scopes":["contact_center:write:region:admin"]}}},"/contact_center/regions/{regionId}":{"get":{"tags":["Regions"],"summary":"Get a region","description":"Get information about a region.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_region:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:region:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"GetARegion","parameters":[{"name":"regionId","in":"path","description":"The region ID.","required":true,"schema":{"type":"string","example":"6c8dc7c-695f-11ed-a081-0a514d46f86b"}},{"name":"region_identifier_type","in":"query","description":"How the path parameter is interpreted. `id` treats it as a system-generated unique identifier. `name` treats it as the resource name.\nWhen using `name`, the resource name must be URL-encoded per RFC 3986.","required":false,"schema":{"type":"string","example":"id","default":"id","enum":["id","name"]}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`    Region returned.","content":{"application/json":{"schema":{"type":"object","properties":{"region_id":{"type":"string","description":"The region's ID.","example":"36c8dc7c-695f-11ed-a081-0a514d46f86b"},"region_name":{"type":"string","description":"The region's name.","example":"Main Region"},"sip_zone_id":{"type":"string","description":"The region SIP zone's ID.","example":"AfgzMEweSQ6tqzC8jhYJ2A"},"sip_zone_name":{"type":"string","description":"The region SIP zone's ID.","example":"zccsipzone"},"is_main_region":{"type":"boolean","description":"Whether this region is the main region.","example":true}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `3807` <br>\n More than one matching region found. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n "},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_region:read:admin","contact_center:read:region:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_region:read:admin"],"x-granular-scopes":["contact_center:read:region:admin"]}},"delete":{"tags":["Regions"],"summary":"Delete a region","description":"Delete a site and move its members to another region.   \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_region:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:delete:region:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"DeleteARegion","parameters":[{"name":"regionId","in":"path","description":"The region ID.","required":true,"schema":{"type":"string","example":"6c8dc7c-695f-11ed-a081-0a514d46f86b"}},{"name":"region_identifier_type","in":"query","description":"How the path parameter is interpreted. `id` treats it as a system-generated unique identifier. `name` treats it as the resource name. When using `name`, the resource name must be URL-encoded per RFC 3986.","required":false,"schema":{"type":"string","example":"id","default":"id","enum":["id","name"]}},{"name":"move_to_region_id","in":"query","description":"ID of the region to move users to.","required":true,"schema":{"type":"string","example":"5dJBFbVESne5rjbVT4LqkA"}}],"responses":{"204":{"description":"**HTTP Status Code:** `204`    Region deleted."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `3802` <br>\n The main region cannot be deleted. <br>\n**Error Code:** `3803` <br>\n The `regionId` and `move_to_region_id` can't be the same. <br>\n**Error Code:** `3806` <br>\n The `move_to_region_id`'s region has a misconfigured SIP zone country. <br>\n**Error Code:** `3807` <br>\n More than one matching region found. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `3801` <br>\n Region does not exist: {regionId}. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_region:write:admin","contact_center:delete:region:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_region:write:admin"],"x-granular-scopes":["contact_center:delete:region:admin"]}},"patch":{"tags":["Regions"],"summary":"Update a region","description":"Update information for a region.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_region:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:udpate:region:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"UpdateARegion","parameters":[{"name":"regionId","in":"path","description":"The region's ID.","required":true,"schema":{"type":"string","example":"6c8dc7c-695f-11ed-a081-0a514d46f86b"}},{"name":"region_identifier_type","in":"query","description":"How the path parameter is interpreted. `id` treats it as a system-generated unique identifier. `name` treats it as the resource name.\nWhen using `name`, the resource name must be URL-encoded per RFC 3986.","required":false,"schema":{"type":"string","example":"id","default":"id","enum":["id","name"]}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"region_name":{"type":"string","description":"The region's name.","example":"Customer region"},"sip_zone_id":{"type":"string","description":"The region SIP zone's ID.","example":"AfgzMEweSQ6tqzC8jhYJ2A"}}}}}},"responses":{"204":{"description":"**HTTP Status Code:** `204`    Region updated."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `3807` <br>\n More than one matching region found. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n "},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_region:write:admin","contact_center:udpate:region:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_region:write:admin"],"x-granular-scopes":["contact_center:udpate:region:admin"]}}},"/contact_center/regions/{regionId}/users":{"get":{"tags":["Regions"],"summary":"List a region's users","description":"Retrieve the list of a region's assigned Contact Center users.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_region:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:list_region_users:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"ListRegion'sUsers","parameters":[{"name":"regionId","in":"path","description":"The region's ID.","required":true,"schema":{"type":"string","example":"8f71O6rWT8KFUGQmJIFAdQ"}},{"name":"region_identifier_type","in":"query","description":"How the path parameter is interpreted. `id` treats it as a system-generated unique identifier. `name` treats it as the resource name.\nWhen using `name`, the resource name must be URL-encoded per RFC 3986.","required":false,"schema":{"type":"string","example":"id","default":"id","enum":["id","name"]}},{"name":"role_id","in":"query","description":"The role ID. This filters users returned to only those with this Contact Center role.","required":false,"schema":{"type":"string","example":"zeYjXoDOS_eV1QmTpj63PQ"}},{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of records returned within a single API call.","required":false,"schema":{"maximum":100,"type":"integer","format":"int32","example":10,"default":10}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \nThe region's Contact Center users.","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"maxLength":100,"type":"string","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":100,"minimum":1,"type":"integer","description":"The number of records returned within a single API call.","example":10,"default":10},"total_records":{"minimum":0,"type":"integer","description":"The total number of all records available across pages.","example":10},"users":{"maxItems":100,"type":"array","description":"Contact Center users assigned to the region.","items":{"type":"object","properties":{"user_id":{"maxLength":36,"type":"string","description":"The Meetings user identifier.","example":"IGTRVt3gQ2i-WjoUIjeZxw"},"cc_user_id":{"maxLength":36,"type":"string","description":"The Contact Center user identifier.","example":"hKuMAiDdRlSwMkBxR5we7g"},"display_name":{"type":"string","description":"The user's display name.","example":"Jane Doe"},"user_email":{"type":"string","description":"The user's email address.","format":"email","example":"jchill@example.com"},"role_id":{"maxLength":36,"type":"string","description":"The user's Contact Center role identifier.","example":"0TFVsJqNS82CwkQJLqj1zA"},"role_name":{"maxLength":36,"type":"string","description":"The user's Contact Center role name.","example":"Admin"}},"description":"A Contact Center user assigned to the region."}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `400` <br>\n Region is not enabled for this account: $accountId. <br>\n**Error Code:** `3807` <br>\n More than one matching region found. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1017` <br>\n Region does not exist: $regionId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rest/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_region:read:admin","contact_center:read:list_region_users:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_region:read:admin"],"x-granular-scopes":["contact_center:read:list_region_users:admin"]}},"post":{"tags":["Regions"],"summary":"Assign users to a region","description":"Assign users to a region.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_region:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:write:region_user:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"AssignUsersToARegion","parameters":[{"name":"regionId","in":"path","description":"The region's ID.","required":true,"schema":{"type":"string","example":"_mgt2VRsRy6SWvgI7O0sZQ"}},{"name":"region_identifier_type","in":"query","description":"How the path parameter is interpreted. `id` treats it as a system-generated unique identifier. `name` treats it as the resource name.\nWhen using `name`, the resource name must be URL-encoded per RFC 3986.","required":false,"schema":{"type":"string","example":"id","default":"id","enum":["id","name"]}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"user_ids":{"maxItems":20,"type":"array","description":"The user identifiers. The values can be a mix of email addresses, Meetings user IDs, or Contact Center user IDs.","items":{"type":"string","example":"IGTRVt3gQ2i-WjoUIjeZxw"}}}}}}},"responses":{"201":{"description":"**HTTP Status Code:** `201`  \n  Users assigned."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `400` <br>\n Region is not enabled for this account: $accountId. <br>\n**Error Code:** `3807` <br>\n More than one matching region found. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1017` <br>\n Region does not exist: $regionId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_region:write:admin","contact_center:write:region_user:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_region:write:admin"],"x-granular-scopes":["contact_center:write:region_user:admin"]}}},"/contact_center/analytics/agents/leg_metrics":{"get":{"tags":["Reports V1 (Legacy)"],"summary":"List agent leg reports","description":"Generate a list of agent's leg reports.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_report:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:agent_report:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `HEAVY`","operationId":"listAgentLegMetric","parameters":[{"name":"from","in":"query","description":"The start time and date in `yyyy-MM-dd`, `yyyy-MM-dd'T'HH:mm:ss'Z'`, or `yyyy-MM-dd'T'HH:mm:ss±HH:mm` format. The date range must not exceed one month. If not specified, returns data from the past 24 hours.\n\n**Note:** When using the `yyyy-MM-dd'T'HH:mm:ss'Z'` format, the `'Z'` is treated as a literal character, not as a UTC indicator. The `timezone` parameter is used to interpret the time.","required":false,"schema":{"type":"string","example":"2021-12-10T00:00:00Z"}},{"name":"to","in":"query","description":"**Required** only when `from` is specified. The end time and date in the same format as `from`: `yyyy-MM-dd`, `yyyy-MM-dd'T'HH:mm:ss'Z'`, or `yyyy-MM-dd'T'HH:mm:ss±HH:mm`.","required":false,"schema":{"type":"string","example":"2021-12-10T00:15:00Z"}},{"name":"timezone","in":"query","description":"The [timezone ID](/docs/api/references/abbreviations/#timezones) for interpreting dates and displaying results. Defaults to `UTC`.\n\n**Behavior by date format**\n- `yyyy-MM-dd` - Time range is interpreted as 00:00:00 to 23:59:59 in the specified timezone.\n- `yyyy-MM-dd'T'HH:mm:ss'Z'` - The `'Z'` is treated as a literal character, so the time is interpreted in the specified timezone, not UTC.\n- `yyyy-MM-dd'T'HH:mm:ss±HH:mm` - The timezone offset in the timestamp is used. The `timezone` parameter only affects result display.","required":false,"schema":{"type":"string","example":"America/Los_Angeles"}},{"name":"engagement_id","in":"query","description":"The engagement's ID.","required":false,"schema":{"type":"string","example":"3XilEfOvQEKRIWMWhX1jDg"}},{"name":"user_id","in":"query","description":"The agent's ID.","required":false,"schema":{"type":"string","example":"ukAAkZKfROKMSw1bj_RDFQ"}},{"name":"display_name","in":"query","description":"The agent's name.","required":false,"schema":{"type":"string","example":"joe.chill"}},{"name":"user_email","in":"query","description":"The agent's email.","required":false,"schema":{"type":"string","example":"joe.chill@example.com"}},{"name":"cc_queue_id","in":"query","description":"The queue's ID.","required":false,"schema":{"type":"string","example":"zeYjXoDOS_eV1QmTpj63PQ"}},{"name":"channel","in":"query","description":"The task's channel. \nProvide only a single channel. \n","required":true,"schema":{"type":"string","example":"messaging","enum":["voice","video","messaging","email"]}},{"name":"channel_source","in":"query","description":"The channel's source. \n* `in_app_chat` - Only applies to messaging channel.  \n* `web_chat` - Only applies to messaging channel. \n* `sms` - Only applies to messaging channel. \n* `facebook_messenger` - Only applies to messaging channel. \n* `whatsapp` - Only applies to messaging channel. \n* `instagram` - Only applies to messaging channel. ","required":false,"schema":{"type":"string","example":"in_app_chat","enum":["in_app_chat","web_chat","sms","facebook_messenger","whatsapp","instagram"]}},{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of items returned per page.","required":false,"schema":{"maximum":100,"type":"integer","format":"int32","example":10,"default":10}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`\nAgent's leg reports list returned.","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"maxLength":100,"type":"string","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":100,"minimum":1,"type":"integer","description":"The number of records returned within a single API call.","example":10,"default":10},"total_records":{"minimum":0,"type":"integer","description":"The total number of all the records available across pages.","example":10},"timezone":{"type":"string","description":"The call's [timezone ID](/docs/api/references/abbreviations/#timezones). The default is `UTC`.","example":"America/Los_Angeles"},"from":{"type":"string","description":"The start time and date. Format is either `yyyy-MM-dd'T'HH:mm:ss'Z'` or `yyyy-MM-dd'T'HH:mm:ss±HH:mm`, matching the input format when a timezone offset was provided.","example":"2021-12-10T00:00:00Z"},"to":{"type":"string","description":"The end time and date. Format is either `yyyy-MM-dd'T'HH:mm:ss'Z'` or `yyyy-MM-dd'T'HH:mm:ss±HH:mm`, matching the input format when a timezone offset was provided.","example":"2021-12-10T00:15:00Z"},"users":{"type":"array","description":"Information about the agent's leg reports.","items":{"type":"object","properties":{"user_id":{"type":"string","description":"The agent's ID.","example":"ukAAkZKfROKMSw1bj_RDFQ"},"display_name":{"type":"string","description":"The agent's name.","example":"joe.chill"},"user_email":{"type":"string","description":"The agent's email.","example":"joe.chill@example.com"},"leg_metrics":{"type":"array","description":"Details about the leg reports of the current agent.","items":{"type":"object","properties":{"channel":{"type":"string","description":"The task's channel. ","example":"messaging","enum":["voice","video","messaging","email"]},"channel_source":{"type":"string","description":"The channel's source.","example":"in_app_chat","enum":["in_app_chat","web_chat","sms","facebook_messenger","whatsapp","instagram"]},"engagement_id":{"type":"string","description":"The engagement's ID","example":"reRAiabVQSqpXxJVDbsy2Q"},"cc_queue_id":{"type":"string","description":"The Contact Center queue's ID.","example":"Ql3qxUWXSHes4PmcOmzyOg"},"queue_name":{"type":"string","description":"The queue's name.","example":"agentQueue"},"agent_offered":{"type":"integer","description":"The number of calls are offered to current agent.","example":1},"refused_engagement":{"type":"boolean","description":"The indicator to determine if an agent missed or declined an agent offer.","example":false},"handled_engagement":{"type":"boolean","description":"The indicator to determine if an agent handled an agent offer.","example":true},"handle_duration":{"type":"number","description":"The amount of time an agent spent actively working an engagement, in seconds.","example":90},"agent_first_response_duration":{"type":"number","description":"The amount of time it takes for an agent working a messaging channel to send the first message to a customer, in seconds.","example":1},"ring_duration":{"type":"number","description":"The amount of time it takes for an agent to answer the engagement, in seconds.","example":8},"conversation_duration":{"type":"number","description":"The amount of time an agent spent in active conversation with an engagement for any channel, in seconds.","example":80},"hold_count":{"type":"integer","description":"The number of times that the agent places a consumer on hold.","example":0},"hold_duration":{"type":"number","description":"The total amount of time that the agent placed a consumer on hold, in seconds.","example":0},"warm_conference":{"type":"integer","description":"The number of warm conferences triggered by the agent.","example":1},"warm_conference_duration":{"type":"number","description":"The amount of time an agent spent in conversation with another agent while the engagement was on hold, in seconds.","example":10},"conference_count":{"type":"integer","description":"The number of conferences the agent entered.","example":1},"conference_duration":{"type":"number","description":"The amount of time spent on conferences, including multiple confernces, in seconds.","example":10},"warm_transfer_initiated":{"type":"integer","description":"The number of engagements an agent answered and then warm transferred with another participant with or without fully transferring the engagement.","example":1},"warm_transfer_completed":{"type":"integer","description":"The number of engagements an agent answered and then warm transferred with another participant and then fully transferred the engagements.","example":1},"warm_transfer_duration":{"type":"number","description":"The amount of time spent on warm transfers, in seconds.","example":30},"direct_transfer":{"type":"boolean","description":"The indicator to determine if an agent initiated a direct transfer.","example":false},"transferred_initiated":{"type":"integer","description":"The number of transfers an agent initiated, including warm and direct transfers for voice and video channels, and all transfers for messaging and email channels with no distinction between warm and direct transfers.","example":1},"transferred_completed":{"type":"integer","description":"The number of transfers an agent completed, including warm and direct transfers for voice and video channels, and all transfers for messaging and email channels with no distinction between warm and direct transfers.","example":1},"wrap_up_duration":{"type":"number","description":"The amount of time agents spent completing engagement wrap-up, in seconds.","example":10},"disposition_id":{"type":"string","description":"The disposition's ID.","example":"TaAGy_e7QgyPPAyDwGkl3Q"},"disposition_name":{"type":"string","description":"The disposition's name.","example":"disposition1"},"agent_start_time":{"type":"string","description":"The agent leg start time. Format is either `yyyy-MM-dd'T'HH:mm:ss'Z'` or `yyyy-MM-dd'T'HH:mm:ss±HH:mm`, matching the input format when a timezone offset was provided.","example":"2020-02-11T05:39:50Z"},"agent_end_time":{"type":"string","description":"The agent leg end time. Format is either `yyyy-MM-dd'T'HH:mm:ss'Z'` or `yyyy-MM-dd'T'HH:mm:ss±HH:mm`, matching the input format when a timezone offset was provided.","example":"2020-02-11T05:39:56Z"}}}}}}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `300` <br>\n The time and date must be in `yyyy-mm-dd` format, or ISO 8601 format, either `yyyy-MM-dd'T'HH:mm:ss'Z'` or `yyyy-MM-dd'T'HH:mm:ss'TZD'`. <br>\n**Error Code:** `300` <br>\n The requested report exceeds the 1-month limit. <br>\n**Error Code:** `300` <br>\n Timezone does not exist: {timezone}. <br>\n**Error Code:** `300` <br>\n Only provide report in recent 6 months. <br>\n**Error Code:** `300` <br>\n Invalid field. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1001` <br>\n User does not exist: {userId}. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_report:read:admin","contact_center:read:agent_report:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_report:read:admin"],"x-granular-scopes":["contact_center:read:agent_report:admin"]}}},"/contact_center/analytics/agents/status_history":{"get":{"tags":["Reports V1 (Legacy)"],"summary":"List agent's status history reports","description":"Generate a list of an agent's status history reports. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_report:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:agent_status_report:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `HEAVY`","operationId":"listAgentStatusHistory","parameters":[{"name":"timezone","in":"query","description":"The report data's timezone. The default is `UTC`.\n\n**Important** \n* When using `from` or `to` with a timezone offset format like `yyyy-MM-dd'T'HH:mm:ss±HH:mm`, this `timezone` parameter is **ignored** and the offset from the date value is used instead.\n* When using the `'Z'` format, `yyyy-MM-dd'T'HH:mm:ss'Z'`, the `'Z'` is treated as a **literal character**, not as a UTC indicator. The time is interpreted in this `timezone`. For example, `2024-12-21T10:00:00Z` with `timezone=America/Los_Angeles` means 10:00 AM Los Angeles time, not 10:00 AM UTC.\n\n**Examples**\n* `America/Los_Angeles`\n* `Asia/Shanghai`\n* `Europe/London`\n* `UTC`","required":false,"schema":{"type":"string","example":"Asia/Shanghai"}},{"name":"from","in":"query","description":"The start date and time.\n\n**Accepted formats**\n\n| Format | Example | Description |\n|--------|---------|-------------|\n| `yyyy-MM-dd` | `2024-12-21` | Date only. Time defaults to `00:00:00`. |\n| `yyyy-MM-dd'T'HH:mm:ss'Z'` | `2024-12-21T10:00:00Z` | Date with time. The `'Z'` is a literal character. |\n| `yyyy-MM-dd'T'HH:mm:ss±HH:mm` | `2024-12-21T10:00:00-08:00` | ISO 8601 with timezone offset. |\n\n**Important:** The `'Z'` in `yyyy-MM-dd'T'HH:mm:ss'Z'` is a **literal character**, not a UTC indicator. The time is interpreted using the `timezone` parameter. For example, `2024-12-21T10:00:00Z` with `timezone=America/Los_Angeles` means 10:00 AM Los Angeles time.\n\n**Constraints:**\n* Maximum date range (`from` to `to`): 1 month\n* Maximum lookback: 6 months\n* If not specified: Returns data from the last 24 hours","required":false,"schema":{"type":"string","example":"2021-12-10"}},{"name":"to","in":"query","description":"**Required** when the `from` parameter is specified.\n\nThe end date and time.\n\n**Accepted formats**\n\n| Format | Example | Description |\n|--------|---------|-------------|\n| `yyyy-MM-dd` | `2024-12-21` | Date only. Time defaults to `23:59:59`. |\n| `yyyy-MM-dd'T'HH:mm:ss'Z'` | `2024-12-21T23:59:59Z` | Date with time. The `'Z'` is a literal character. |\n| `yyyy-MM-dd'T'HH:mm:ss±HH:mm` | `2024-12-21T23:59:59-08:00` | ISO 8601 with timezone offset. |\n\n**Important:** The `'Z'` in `yyyy-MM-dd'T'HH:mm:ss'Z'` is a **literal character**, not a UTC indicator. The time is interpreted using the `timezone` parameter.\n\n**Constraints:**\n* Maximum date range: 1 month\n* If not specified: Returns data from the last 24 hours","required":false,"schema":{"type":"string","example":"2021-12-10"}},{"name":"queue_id","in":"query","description":"The queue's ID.","required":false,"deprecated":true,"schema":{"type":"string","example":"zeYjXoDOS_eV1QmTpj63PQ"}},{"name":"cc_queue_id","in":"query","description":"The Contact Center queue's ID.","required":false,"schema":{"type":"string","example":"dghrxHN4SkS6N4wsrYBjp"}},{"name":"user_id","in":"query","description":"The agent's ID.","required":false,"schema":{"type":"string","example":"ukAAkZKfROKMSw1bj_RDFQ"}},{"name":"status_id","in":"query","description":"The status's ID.","required":false,"schema":{"type":"string","example":"0"}},{"name":"sub_status_id","in":"query","description":"The sub status's ID.","required":false,"schema":{"type":"string","example":"101"}},{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of records returned within a single API call.","required":false,"schema":{"maximum":100,"type":"integer","format":"int32","example":10,"default":10}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \n Agent's status history reports list returned.","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"maxLength":100,"type":"string","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":100,"minimum":1,"type":"integer","description":"The number of records returned within a single API call.","example":10,"default":10},"total_records":{"minimum":0,"type":"integer","description":"The total number of all records available across pages.","example":10},"timezone":{"type":"string","description":"The timezone used for the query. When the request used `yyyy-MM-dd'T'HH:mm:ss±HH:mm` format, this reflects the offset from the input. Otherwise, it reflects the `timezone` parameter value or the default `UTC`.","example":"America/Los_Angeles"},"from":{"type":"string","description":"The start date and time of the returned data. Format is either `yyyy-MM-dd'T'HH:mm:ss'Z'` or `yyyy-MM-dd'T'HH:mm:ss±HH:mm`, matching the input format when timezone offset was provided.","format":"date-time","example":"2021-12-10T00:00:00Z"},"to":{"type":"string","description":"The end date and time of the returned data. Format matches the `from` field.","format":"date-time","example":"2021-12-10T00:15:00Z"},"statuses":{"type":"array","description":"Information about the agent's status history reports.","items":{"type":"object","properties":{"user_id":{"type":"string","description":"The agent's ID.","example":"ukAAkZKfROKMSw1bj_RDFQ"},"display_name":{"type":"string","description":"The agent's name.","example":"Jilly"},"status_id":{"type":"string","description":"The status's ID.","example":"1"},"occupied_queue_id":{"type":"string","description":"The queue's ID when the agent status is occupied.","example":"ZysV5vnQ_iVKRjfLf-sjg","deprecated":true},"occupied_queue_name":{"type":"string","description":"The queue's name when the agent status is occupied.","example":"voice-queue","deprecated":true},"occupied_engagement_id":{"type":"string","description":"The engagement's ID when the agent status is occupied.","example":"0xGQzpwS-2aR2KZEHRbPw","deprecated":true},"occupied_engagements":{"type":"array","description":"The engagements that the agent has while in the occupied status","items":{"type":"object","properties":{"engagement_id":{"type":"string","description":"The engagement's ID.","example":"zeYjXoDOS_eV1QmTpj63PQ"},"cc_queue_id":{"type":"string","description":"The queue's ID.","example":"beGjiO3_TK2rxi5fh2Zv7A"},"queue_name":{"type":"string","description":"The queue's name.","example":"Demo"}},"description":"One of engagements that the agent has while in the occupied status."}},"status_name":{"type":"string","description":"The status's name. Well-known values: \n* Offline \n* Ready \n* Not Ready \n* Occupied","example":"Not Ready"},"sub_status_id":{"type":"string","description":"The sub status's ID.","example":"101"},"sub_status_name":{"type":"string","description":"The sub status's name. Well-known values include: \n* Inbound \n* Transferring in \n* Wrapping up \n* Holding \n* Transferring out \n* Taking Over \n* Monitoring \n* Barging \n* Whispering \n* Outbound \n* Ringing \n* Idle \n\nAccounts can also configure custom sub-status names such as &quot;Break&quot;, &quot;Meal&quot;, or &quot;Training&quot;.","example":"Inbound"},"start_time":{"type":"string","description":"The date and time when the status started. Format is either `yyyy-MM-dd'T'HH:mm:ss'Z'` or `yyyy-MM-dd'T'HH:mm:ss±HH:mm`, matching the input format when a timezone offset was provided.","example":"2022-07-20T14:00:00-08:00"},"end_time":{"type":"string","description":"The date and time when the status ended. Format is either `yyyy-MM-dd'T'HH:mm:ss'Z'` or `yyyy-MM-dd'T'HH:mm:ss±HH:mm`, matching the input format when a timezone offset was provided.","example":"2022-07-20T14:15:00-08:00"},"duration":{"type":"integer","description":"The agent's status-changed duration, in seconds.","format":"int64","example":1}},"description":"Information about the agent status report."}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `300` <br>\n The time and date must be in yyyy-mm-dd or ISO 8601 format (yyyy-MM-dd'T'HH:mm:ss'Z' or yyyy-MM-dd'T'HH:mm:ss'TZD'). <br>\n**Error Code:** `300` <br>\n The requested report exceeds the 1-month limit. <br>\n**Error Code:** `300` <br>\n Timezone does not exist: {timezone}. <br>\n**Error Code:** `300` <br>\n Only provide report in recent 6 months. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1201` <br>\n Queue does not exist: $queueId. <br>\n**Error Code:** `1001` <br>\n User does not exist: $userId. <br>\n**Error Code:** `1101` <br>\n Status does not exist: $statusId. <br>\n**Error Code:** `1102` <br>\n Sub status does not exist: $subStatusId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_report:read:admin","contact_center:read:agent_status_report:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_report:read:admin"],"x-granular-scopes":["contact_center:read:agent_status_report:admin"]}}},"/contact_center/analytics/agents/time_sheets":{"get":{"tags":["Reports V1 (Legacy)"],"summary":"List agent's time sheet reports","description":"Generate a list of an agent's time sheet reports. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_report:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:agent_report:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `HEAVY`","operationId":"listAgentTimeSheet","parameters":[{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token returns whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of items returned per page.","required":false,"schema":{"maximum":100,"type":"integer","format":"int32","example":10,"default":10}},{"name":"timezone","in":"query","description":"The call's timezone. The default is **UTC**.","required":false,"schema":{"type":"string","example":"Asia/Shanghai"}},{"name":"from","in":"query","description":"The start time and date in **yyyy-mm-dd** or **yyyy-MM-dd'T'HH:mm:ss'Z'** format. The defined date range should be a month, as the response only includes one month's worth of data. If no start date is specified, return data from the past 24 hours.","required":false,"schema":{"type":"string","format":"date","example":"2021-12-10"}},{"name":"to","in":"query","description":"**Required** only when the `from` parameters is specified. The end time and date in **yyyy-mm-dd** or **yyyy-MM-dd'T'HH:mm:ss'Z'** format, the same format as the `from` parameter.","required":false,"schema":{"type":"string","format":"date","example":"2021-12-10"}},{"name":"queue_id","in":"query","description":"The queue's ID.","required":false,"schema":{"type":"string","example":"zeYjXoDOS_eV1QmTpj63PQ"}},{"name":"user_id","in":"query","description":"The agent's ID.","required":false,"schema":{"type":"string","example":"ukAAkZKfROKMSw1bj_RDFQ"}},{"name":"interval","in":"query","description":"The historical queue report's interval.","required":false,"schema":{"type":"string","example":"1_month","enum":["15_minutes","30_minutes","1_hour","1_day","1_week","1_month"]}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \n Agent's time sheet reports list returned.","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"type":"string","description":"Use the next-page token to paginate through large result sets. A next-page token returns whenever the set of available results exceeds the current page size.","example":"jA5csQv1W1oXuYZLspNIZzMOXqTD9r9Rje2"},"page_size":{"maximum":100,"type":"integer","description":"The number of records returned within a single API call.","example":1,"default":10},"total_records":{"type":"integer","description":"The total number of all the records available across pages.","example":1},"timezone":{"type":"string","description":"The call's [timezone ID](https://developers.zoom.us/docs/api/rest/other-references/abbreviation-lists/#timezones). The default is **UTC**.","example":"America/Los_Angeles"},"from":{"type":"string","description":"The start time and date in **yyyy-MM-dd'T'HH:mm:ss'Z'** format. The defined date range should be a month, as the response only includes one month's worth of data. If no start date is specified, return data from the past 24 hours.","format":"date-time","example":"2021-12-10T00:00:00Z"},"to":{"type":"string","description":"**Required** only when the `from` parameter is specified. The end time and date in **yyyy-MM-dd'T'HH:mm:ss'Z'** format, the same format as the `from` parameter.","format":"date-time","example":"2021-12-10T00:15:00Z"},"agents":{"type":"array","description":"Information about the agent's time sheet reports.","items":{"type":"object","properties":{"user_id":{"type":"string","description":"The agent's ID.","example":"ukAAkZKfROKMSw1bj_RDFQ"},"display_name":{"type":"string","description":"The agent's name.","example":"Jilly"},"ready_duration":{"type":"integer","description":"The total ready status time, in seconds.","format":"int64","example":3600},"ready_percentage":{"type":"integer","description":"The percentage of ready status.","format":"int32","example":85},"not_ready_duration":{"type":"integer","description":"The total not-ready status time, in seconds.","format":"int64","example":3600},"not_ready_percentage":{"type":"integer","description":"The percentage of not ready status.","format":"int32","example":85},"occupied_duration":{"type":"integer","description":"The total occupied-status time, in seconds.","format":"int64","example":3600},"occupied_percentage":{"type":"integer","description":"The occupied-status percentage.","format":"int32","example":85},"online_duration":{"type":"integer","description":"The total online-status time, in seconds.","format":"int64","example":3600},"offline_duration":{"type":"integer","description":"The total offline-status time, in seconds.","format":"int64","example":3600},"inbound_average_voice_call_talking_duration":{"type":"integer","description":"The average voice call duration, in seconds.","format":"int64","example":3600},"average_video_call_talking_duration":{"type":"integer","description":"The average video call duration, in seconds.","format":"int64","example":3600},"average_wrap_up_duration":{"type":"integer","description":"The average wrap-up call duration, in seconds.","format":"int64","example":3600},"start_time_interval":{"type":"string","description":"The current interval's start date and time in ISO 8601 format, either yyyy-MM-dd'T'HH:mm:ss'Z' or yyyy-MM-dd'T'HH:mm:ss`TZD`.","example":"2022-07-20T14:00:00-08:00"},"end_time_interval":{"type":"string","description":"The current interval's end date and time in ISO 8601 format, either yyyy-MM-dd'T'HH:mm:ss'Z' or yyyy-MM-dd'T'HH:mm:ss`TZD`.","example":"2022-07-20T14:15:00-08:00"},"total_outbound_voice_call":{"type":"integer","description":"The total number of outbound voice calls.","format":"int64","example":3},"total_outbound_voice_call_duration":{"type":"number","description":"The total outbound voice calls duration, in seconds.","format":"double","example":50},"total_inbound_voice_call":{"type":"integer","description":"The total number of inbound voice calls.","format":"int64","example":3},"total_inbound_voice_call_duration":{"type":"number","description":"The total inbound voice calls duration, in seconds.","format":"double","example":78}},"description":"Information about the agent's time sheet reports."}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found \n\n **Error Code:** `1201` <br>\n Queue does not exist: $queueId. <br>\n**Error Code:** `1001` <br>\n User does not exist: $userId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_report:read:admin","contact_center:read:agent_report:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_report:read:admin"],"x-granular-scopes":["contact_center:read:agent_report:admin"]}}},"/contact_center/analytics/historical/details/metrics":{"get":{"tags":["Reports V1 (Legacy)"],"summary":"List historical detail reports","description":"Retrieve historical engagement details.\n\nThe maximum lookback time is 6 months.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_report:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:engagement_report:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `HEAVY`","operationId":"listHistoricalDetailMetric","parameters":[{"name":"timezone","in":"query","description":"The report data's timezone. The default is `UTC`.\n\n**Important** \n* When using `from` or `to` with a timezone offset format like `yyyy-MM-dd'T'HH:mm:ss±HH:mm`, this `timezone` parameter is **ignored** and the offset from the date value is used instead.\n* When using the `'Z'` format like `yyyy-MM-dd'T'HH:mm:ss'Z'`, the `'Z'` is treated as a **literal character**, not as a UTC indicator. The time is interpreted in this `timezone`. For example, `2024-12-21T10:00:00Z` with `timezone=America/Los_Angeles` means 10:00 AM Los Angeles time, not 10:00 AM UTC.\n\n**Examples**\n* `America/Los_Angeles`\n* `Asia/Shanghai`\n* `Europe/London`\n* `UTC`","required":false,"schema":{"type":"string","example":"America/Los_Angeles"}},{"name":"from","in":"query","description":"The start date and time. \n\n**Accepted formats**\n\n| Format | Example | Description |\n|--------|---------|-------------|\n| `yyyy-MM-dd` | `2024-12-21` | Date only. Time defaults to `00:00:00`. |\n| `yyyy-MM-dd'T'HH:mm:ss'Z'` | `2024-12-21T10:00:00Z` | Date with time. The `'Z'` is a literal character. |\n| `yyyy-MM-dd'T'HH:mm:ss±HH:mm` | `2024-12-21T10:00:00-08:00` | ISO 8601 with timezone offset. |\n\n**Important:** The `'Z'` in `yyyy-MM-dd'T'HH:mm:ss'Z'` is a **literal character**, not a UTC indicator. The time is interpreted using the `timezone` parameter. For example, `2024-12-21T10:00:00Z` with `timezone=America/Los_Angeles` means 10:00 AM Los Angeles time.\n\n**Timezone offset examples (TZD)**\n* `-08:00` — Pacific Standard Time (PST)\n* `-07:00` — Pacific Daylight Time (PDT)\n* `+00:00` — UTC\n* `+05:30` — India Standard Time (IST)\n* `+09:00` — Japan Standard Time (JST)\n\nMust use the same format as the `to` parameter.\n\n**Constraints**\n* Maximum date range `from` to `to` - 1 month\n* Maximum lookback - 6 months\n* If not specified - Returns data from the last 24 hours","required":false,"schema":{"type":"string","example":"2024-12-21T10:00:00-08:00"}},{"name":"to","in":"query","description":"**Required** when the `from` parameter is specified.\n\nThe end date and time. \n\n**Accepted formats**\n\n| Format | Example | Description |\n|--------|---------|-------------|\n| `yyyy-MM-dd` | `2024-12-21` | Date only. Time defaults to `23:59:59`. |\n| `yyyy-MM-dd'T'HH:mm:ss'Z'` | `2024-12-21T18:00:00Z` | Date with time. The `'Z'` is a literal character. |\n| `yyyy-MM-dd'T'HH:mm:ss±HH:mm` | `2024-12-21T18:00:00-08:00` | ISO 8601 with timezone offset. |\n\n**Important:** The `'Z'` in `yyyy-MM-dd'T'HH:mm:ss'Z'` is a **literal character**, not a UTC indicator. The time is interpreted using the `timezone` parameter.\n\n**Timezone offset examples (TZD):**\n* `-08:00` — Pacific Standard Time (PST)\n* `-07:00` — Pacific Daylight Time (PDT)\n* `+00:00` — UTC\n* `+05:30` — India Standard Time (IST)\n* `+09:00` — Japan Standard Time (JST)\n\nMust use the same format as the `from` parameter.\n\n**Constraints:**\n* Maximum date range: 1 month\n* If not specified: Returns data from the last 24 hours","required":false,"schema":{"type":"string","example":"2024-12-21T18:00:00-08:00"}},{"name":"queue_ids","in":"query","description":"Currently supports two different IDs, the task queue's ID and Contact Center queue's ID. The task queue's ID will be completely deprecated in the future. Change to the Contact Center queue ID as soon as possible.","required":false,"deprecated":true,"schema":{"type":"array","items":{"type":"string","example":"Ql3qxUWXSHes4PmcOmzyOg"}}},{"name":"cc_queue_ids","in":"query","description":"A comma-separated list of Contact Center queue IDs to query, up to 20 queue IDs.","required":false,"schema":{"type":"array","items":{"type":"string","example":"Ql3qxUWXSHes4PmcOmzyOg"}}},{"name":"user_id","in":"query","description":"The agent's ID.","required":false,"schema":{"type":"string","example":"ukAAkZKfROKMSw1bj_RDFQ"}},{"name":"consumer_number","in":"query","description":"The consumer's phone number.","required":false,"schema":{"type":"string","example":"+12059300920"}},{"name":"consumer_id","in":"query","description":"The consumer ID for video, chat, email, or SMS engagements.","required":false,"schema":{"type":"string","example":"zeYjXoDOS_eV1QmTpj63PQ"}},{"name":"direction","in":"query","description":"The engagement's direction. \n\n Voice, SMS : \n* `inbound` \n* `outbound` \n\n Chat, Video: \n* `inbound`","required":false,"schema":{"type":"string","example":"inbound","enum":["inbound","outbound"]}},{"name":"results","in":"query","description":"The engagement's results. \n\n**Voice** \n* `completed` \n* `short_abandoned` \n* `long_abandoned` \n* `hold_abandoned` \n* `overflowed_to_inbox` \n* `overflowed_to_disconnect` \n* `long_calls` \n* `short_calls` \n* `hang_up_calls`  \n\n**Video** \n* `completed` \n* `short_abandoned` \n* `long_abandoned` \n\n**Chat, SMS** \n* `completed` \n* `auto_closed`","required":false,"schema":{"type":"array","items":{"type":"string","example":"completed"}}},{"name":"channel_types","in":"query","description":"The channel's type. It provides only a single channel type.","required":false,"deprecated":true,"schema":{"type":"array","items":{"type":"string","example":"voice","enum":["voice","video","chat","sms"]}}},{"name":"channel","in":"query","description":"The task's channel. \n* `voice` \n* `video` \n* `messaging` \n* `email` \n\nIt provides only a single channel. \n\nIf channel is used as an input parameter, the deprecated parameter `channel_types` is not processed.","required":true,"schema":{"type":"string","example":"messaging","enum":["voice","video","messaging","email"]}},{"name":"channel_sources","in":"query","description":"The channel's source. \n* `in_app_chat` - Only applies to messaging channel.  \n* `web_chat` - Only applies to messaging channel. \n* `sms` - Only applies to messaging channel. \n* `facebook_messenger` - Only applies to messaging channel. \n* `whatsapp` - Only applies to messaging channel. \n* `email_address` - Only applies to email channel. \n\nIt provides multiple `channel_sources`.","required":false,"schema":{"type":"array","items":{"type":"string","example":"web_chat,in_app_chat","enum":["web_chat","in_app_chat","sms","facebook_messenger","whatsapp","email_address"]}}},{"name":"queue_wait_type","in":"query","description":"The queue's wait type. This field is applicable to voice channel.","required":false,"schema":{"type":"string","example":"live_waiting","enum":["live_waiting","callback"]}},{"name":"required_skill_ids","in":"query","description":"The required skill's ID. This field is applicable to voice channel.","required":false,"schema":{"type":"array","items":{"type":"string","example":"Ql3qxUWXSHes4PmcOmzyOg"}}},{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of items returned per page.","required":false,"schema":{"maximum":100,"type":"integer","format":"int32","example":10,"default":10}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \n Historical detail reports list returned.","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"maxLength":100,"type":"string","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":100,"minimum":1,"type":"integer","description":"The number of records returned within a single API call.","example":10,"default":10},"total_records":{"minimum":0,"type":"integer","description":"The total number of all the records available across pages.","example":10},"timezone":{"type":"string","description":"The timezone used for the query. When the request used `yyyy-MM-dd'T'HH:mm:ss±HH:mm` format, this reflects the offset from the input. Otherwise, it reflects the `timezone` parameter value or the default `UTC`.","example":"America/Los_Angeles"},"from":{"type":"string","description":"The returned data's start date and time. Format: `yyyy-MM-dd'T'HH:mm:ss'Z'` or `yyyy-MM-dd'T'HH:mm:ss±HH:mm`, matching the input format when timezone offset was provided.","format":"date-time","example":"2021-12-10T00:00:00Z"},"to":{"type":"string","description":"The returned data's end date and time. Format matches the `from` field.","format":"date-time","example":"2021-12-10T00:15:00Z"},"details":{"type":"array","description":"The information about the historical detail reports.","items":{"type":"object","properties":{"engagement_id":{"type":"string","description":"The engagement's ID","example":"3XilEfOvQEKRIWMWhX1jDg"},"channels":{"type":"array","description":"The task's channels","items":{"type":"object","properties":{"channel":{"type":"string","description":"The task's channel.","example":"messaging","enum":["voice","video","messaging","email"]},"channel_source":{"type":"string","description":"The channel's source. \n* `in_app_chat` - Only applies to messaging channel.  \n* `web_chat` - Only applies to messaging channel. \n* `sms` - Only applies to messaging channel.\n* `facebook_messenger` - Only applies to messaging channel.\n* `whatsapp` - Only applies to messaging channel.\n* `email_address` - Only applies to email channel.","example":"in_app_chat","enum":["web_chat","in_app_chat","sms","facebook_messenger","whatsapp","email_address"]}}}},"direction":{"type":"string","description":"The engagement's direction.","example":"inbound","enum":["inbound","outbound"]},"consumer_number":{"type":"string","description":"The consumer's phone number.","example":"+12059300920"},"consumer_id":{"type":"string","description":"The consumer's ID, for video and chat and email.","example":"zeYjXoDOS_eV1QmTpj63PQ"},"consumer_name":{"type":"string","description":"The consumer's name, for video and chat and email.","example":"Tester"},"consumer_country_name":{"type":"string","description":"The consumer's number [country name](/docs/api/references/abbreviations/#countries), for voice and SMS.","example":"United States of America"},"consumer_country_code":{"type":"string","description":"The consumer's number [country name](/docs/api/references/abbreviations/#countries), for voice and SMS.","example":"US"},"start_time":{"type":"string","description":"The engagement's starting date and time. Format is `yyyy-MM-dd'T'HH:mm:ss'Z'` or `yyyy-MM-dd'T'HH:mm:ss±HH:mm`, matching the input format when timezone offset was provided.","format":"date-time","example":"2020-02-11T05:39:50Z"},"results":{"type":"string","description":"The engagement's result.","example":"completed","enum":["completed","contained","short_abandoned","long_abandoned","hold_abandoned","overflowed","overflowed_to_inbox","overflowed_to_disconnect","long_calls","short_calls","hang_up_calls","auto_closed","abandon_quit","callback_abandoned_by_consumer"]},"total_duration":{"type":"integer","description":"The engagement's maximum agent duration, in seconds.","format":"int64","example":10},"ivr_duration":{"type":"integer","description":"The engagement's IVR duration, in seconds.","format":"int64","example":5},"waiting_duration":{"type":"integer","description":"The engagement's waiting duration, in seconds.","format":"int64","example":10},"talking_duration":{"type":"integer","description":"The engagement's talking duration, in seconds.","format":"int64","example":20},"hold_duration":{"type":"integer","description":"The engagement's hold duration, in seconds.","format":"int64","example":20},"wrap_up_duration":{"type":"integer","description":"The engagement's wrap-up duration, in seconds.","format":"int64","example":10},"disposition_id":{"type":"string","description":"The disposition's ID.","example":"W_VATTk_Q5aW6z5rZtBxAQ"},"disposition_name":{"type":"string","description":"The disposition's name.","example":"Inquiry"},"flows":{"type":"array","description":"Information about the engagement's flows.","items":{"type":"object","properties":{"flow_id":{"type":"string","description":"The flow's ID.","example":"zeYjXoDOS_eV1QmTpj63PQ"},"flow_name":{"type":"string","description":"The flow's name.","example":"Demo"},"flow_version":{"type":"string","description":"The flow's version.","example":"5"}},"description":"Information about the flow."}},"queues":{"type":"array","description":"Information about the engagement's queues.","items":{"type":"object","properties":{"queue_id":{"type":"string","description":"The queue's ID.","example":"d95avl1eRJ-H162PZUJ-qg","deprecated":true},"cc_queue_id":{"type":"string","description":"The Contact Center queue's ID.","example":"d95avl1eRJ-H162PZUJ-qg"},"queue_name":{"type":"string","description":"The queue's name.","example":"agentQueue"}},"description":"Information about the queue."}},"agents":{"type":"array","description":"Information about the engagement's agents.","items":{"type":"object","properties":{"user_id":{"type":"string","description":"The agent's ID.","example":"ukAAkZKfROKMSw1bj_RDFQ"},"display_name":{"type":"string","description":"The agent's name.","example":"Jilly"}},"description":"Information about the queue."}},"total_flow_duration":{"type":"integer","description":"The total time of engagement's flows, in seconds.","format":"int64","example":10},"queue_wait_type":{"type":"string","description":"The queue's wait type. Applicable to voice channels.","example":"live_waiting","enum":["live_waiting","callback"]},"last_widget_name":{"type":"string","description":"The last widget's name.","example":"PhoneEnQueue RouteTo"},"agent_first_message_speed":{"type":"integer","description":"The engagement's initial response time, in seconds.","format":"int64","example":0},"dialed_numbers":{"type":"array","description":"The dialed numbers. Applicable to voice, video, and SMS channels.","items":{"type":"string","example":"+12059300920"}},"callback_waiting_duration":{"type":"integer","description":"The callback waiting duration, in seconds. Applicable to voice channels.","format":"int64","example":0},"callback_pending_duration":{"type":"integer","description":"The callback pending duration, in seconds. Applicable to voice channels.","format":"int64","example":0},"handling_duration":{"type":"integer","description":"The handling duration, in seconds. Applicable to voice channels.","format":"int64","example":0},"ring_duration":{"type":"integer","description":"The ring duration, in seconds. Applicable to voice and video channels.","format":"int64","example":0},"required_skills":{"type":"array","description":"The required skill names. Applicable to voice channels.","items":{"type":"object","properties":{"skill_id":{"type":"string","description":"The skill's ID.","example":"saaHWgVMGQU69soco456oNA"},"skill_name":{"type":"string","description":"The skill's name.","example":"French"},"minimum_proficiency_level":{"type":"integer","description":"The skill category's minimum proficiency level.","example":1}},"description":"Information about the required skill."}},"optional_skills":{"type":"array","description":"The optional skill names. Applicable to voice channels.","items":{"type":"object","properties":{"skill_id":{"type":"string","description":"The skill's ID.","example":"saaHWgVMGQU69soco456oNA"},"skill_name":{"type":"string","description":"The skill's name.","example":"French"},"matched":{"type":"boolean","description":"Whether the skill is matched.","example":false}},"description":"Information about the optional skill."}},"agent_skills":{"type":"array","description":"The agent skill names. Applicable to voice channels.","items":{"type":"object","properties":{"skill_id":{"type":"string","description":"The skill's ID.","example":"saaHWgVMGQU69soco456oNA"},"skill_name":{"type":"string","description":"The skill's name.","example":"French"},"proficiency_level":{"type":"integer","description":"The skill category's proficiency level.","example":1}},"description":"Information about the required skill."}}},"description":"The information about the historical detail report."}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `300` <br>\n `yyyy-mm-dd` or ISO 8601 format, either  `yyyy-MM-dd'T'HH:mm:ss'Z' or yyyy-MM-dd'T'HH:mm:ss'TZD'. <br>\n**Error Code:** `300` <br>\n The requested report exceeds the 1-month limit. <br>\n**Error Code:** `300` <br>\n Timezone does not exist: {timezone}. <br>\n**Error Code:** `300` <br>\n Only provide report in recent 6 months. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1201` <br>\n Queue does not exist: $queueId. <br>\n**Error Code:** `1001` <br>\n User does not exist: $userId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_report:read:admin","contact_center:read:engagement_report:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_report:read:admin"],"x-granular-scopes":["contact_center:read:engagement_report:admin"]}}},"/contact_center/analytics/historical/queues/agents/metrics":{"get":{"tags":["Reports V1 (Legacy)"],"summary":"List historical agent reports by queue","description":"Generate detailed historical reports of agents from a specific queue.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_report:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:agent_report:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `HEAVY`","operationId":"listQueueAgentsMetrics","parameters":[{"name":"timezone","in":"query","description":"The report data's timezone. The default is `UTC`.\n\n**Important:** \n* When using `from` or `to` with a timezone offset format like `yyyy-MM-dd'T'HH:mm:ss±HH:mm`, this `timezone` parameter is **ignored** and the offset from the date value is used instead.\n* When using the `'Z'` format, `yyyy-MM-dd'T'HH:mm:ss'Z'`, the `'Z'` is treated as a **literal character**, not as a UTC indicator. The time is interpreted in this `timezone`. For example, `2024-12-21T10:00:00Z` with `timezone=America/Los_Angeles` means 10:00 AM Los Angeles time, not 10:00 AM UTC.\n\nExamples:\n* `America/Los_Angeles`\n* `Asia/Shanghai`\n* `Europe/London`\n* `UTC`","required":false,"schema":{"type":"string","example":"UTC"}},{"name":"from","in":"query","description":"The start date and time.\n\n**Accepted formats**\n\n| Format | Example | Description |\n|--------|---------|-------------|\n| `yyyy-MM-dd` | `2024-12-21` | Date only. Time defaults to `00:00:00`. |\n| `yyyy-MM-dd'T'HH:mm:ss'Z'` | `2024-12-21T10:00:00Z` | Date with time. The `'Z'` is a literal character. |\n| `yyyy-MM-dd'T'HH:mm:ss±HH:mm` | `2024-12-21T10:00:00-08:00` | ISO 8601 with timezone offset. |\n\n**Important** The `'Z'` in `yyyy-MM-dd'T'HH:mm:ss'Z'` is a **literal character**, not a UTC indicator. The time is interpreted using the `timezone` parameter. For example, `2024-12-21T10:00:00Z` with `timezone=America/Los_Angeles` means 10:00 AM Los Angeles time.\n\n**Constraints**\n* Maximum date range `from` to `to` - 1 month\n* Maximum lookback - 6 months\n* If not specified - Returns data from the last 24 hours","required":false,"schema":{"type":"string","example":"2021-12-10T00:00:00Z"}},{"name":"to","in":"query","description":"**Required** when the `from` parameter is specified.\n\nThe end date and time. Accepted formats:\n\n| Format | Example | Description |\n|--------|---------|-------------|\n| `yyyy-MM-dd` | `2024-12-21` | Date only. Time defaults to `23:59:59`. |\n| `yyyy-MM-dd'T'HH:mm:ss'Z'` | `2024-12-21T23:59:59Z` | Date with time. The `'Z'` is a literal character. |\n| `yyyy-MM-dd'T'HH:mm:ss±HH:mm` | `2024-12-21T23:59:59-08:00` | ISO 8601 with timezone offset. |\n\n**Important:** The `'Z'` in `yyyy-MM-dd'T'HH:mm:ss'Z'` is a **literal character**, not a UTC indicator. The time is interpreted using the `timezone` parameter.\n\n**Constraints:**\n* Maximum date range: 1 month\n* If not specified: Returns data from the last 24 hours","required":false,"schema":{"type":"string","example":"2021-12-10T00:15:00Z"}},{"name":"cc_queue_id","in":"query","description":"A Contact Center queue ID to query.","required":true,"schema":{"type":"string","example":"W_VATTk_Q5aW6z5rZtBxAQ"}},{"name":"channel","in":"query","description":"The task's channel. Provides only a single channel.","required":false,"schema":{"type":"string","example":"voice","enum":["voice"]}},{"name":"interval","in":"query","description":"The historical queue report's interval.","required":false,"schema":{"type":"string","example":"1_month","enum":["15_minutes","30_minutes","1_hour","1_day","1_week","1_month"]}},{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of items returned per page.","required":false,"schema":{"maximum":100,"type":"integer","format":"int32","example":10,"default":10}}],"responses":{"200":{"description":"HTTP Status Code: 200\n\nHistorical queue's agents report list returned.","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"maxLength":100,"type":"string","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":100,"minimum":1,"type":"integer","description":"The number of records returned within a single API call.","example":10,"default":10},"total_records":{"minimum":0,"type":"integer","description":"The total number of all the records available across pages.","example":10},"timezone":{"type":"string","description":"The timezone used for the query. When the request used `yyyy-MM-dd'T'HH:mm:ss±HH:mm` format, this reflects the offset from the input. Otherwise, it reflects the `timezone` parameter value or the default `UTC`.","example":"America/Los_Angeles"},"from":{"type":"string","description":"The returned data's start date and time. Format is either `yyyy-MM-dd'T'HH:mm:ss'Z'` or `yyyy-MM-dd'T'HH:mm:ss±HH:mm`, matching the input format when timezone offset was provided.","example":"2021-12-10T00:00:00Z"},"to":{"type":"string","description":"The returned data's end date and time. Format matches the `from` field.","example":"2021-12-10T00:15:00Z"},"agents":{"type":"array","description":"Information about the queue's agents.","items":{"type":"object","properties":{"user_id":{"type":"string","description":"The agent's ID.","example":"ukAAkZKfROKMSw1bj_RDFQ"},"display_name":{"type":"string","description":"The agent's name.","example":"Jilly"},"voice":{"type":"object","properties":{"offers_total":{"type":"integer","description":"Offers happen every time an agent is presented with a call. An engagement can have multiple offers.","example":5},"offers_acd":{"type":"integer","description":"Offers ACD metric indicates presented to the agent via the queue distribution.","example":4},"offers_non_acd":{"type":"integer","description":"Offers Non-ACD that are presented to the agent bypassing the queue, or manually assign the engagement to a queue agent.","example":1},"offers_answered":{"type":"integer","description":"The number of engagements assigned to the agent that were answered.","example":5},"offers_answered_acd_inbound":{"type":"integer","description":"The number of inbound engagements assigned to the agent that were answered.","example":2},"offers_missed":{"type":"integer","description":"The number of engagements assigned to the agent that went unanswered, including cases where the agent timed out or the customer abandoned.","example":0},"offers_declined":{"type":"integer","description":"The number of inbound engagements declined by the associated member. In other words, they clicked the option to decline the engagement in the inbound call notification.","example":4},"total_transferred_in":{"type":"integer","description":"Transferred in metric indicates how many calls were routed to the queue because of the transfer. Transferred in = Transferred in to Queue + Transferred in to Agent.","example":1},"total_transferred_out":{"type":"integer","description":"How many of the calls answered by the agent were transferred out by the agent (instead of being completed by the agent or being abandoned while on hold).","example":1},"hold_hang_up":{"type":"integer","description":"Hold Hang Up that are presented how many engagements were hanged up by the consumer while on hold with the agent.","example":1},"upgraded_to_video_call":{"type":"integer","description":"How many voice calls were upgraded to video by the agent.","example":2},"total_inbound_handling_duration":{"type":"number","description":"Total inbound handling duration. Handling duration = talking duration (hold duration included) + wrap-up Duration","example":55},"average_inbound_handling_duration":{"type":"number","description":"Average inbound handling duration. Handling duration = talking duration (hold duration included) + wrap-up Duration.","example":21},"longest_inbound_handling_duration":{"type":"number","description":"Maximum inbound handling duration. Handling duration = talking duration (hold duration included) + wrap-up Duration.","example":25},"average_inbound_answer_duration":{"type":"number","description":"The average time that consumers spent talking to an agent. Talking duration includes talking time and hold duration.","example":25},"total_inbound_answer_duration":{"type":"number","description":"The total time that consumers spent talking to an agent. Talking duration includes talking time and hold duration.","example":45},"longest_inbound_answer_duration":{"type":"number","description":"The maximum amount of time it takes for an agent to answer the inbound engagement. It is from the system assigning the call to the agent and before the agent answers.","example":25},"total_inbound_ring_duration":{"type":"number","description":"The total amount of time it takes for an agent to answer the inbound engagement. It is from the system assigning the call to the agent and before the agent answers ","example":15},"average_inbound_ring_duration":{"type":"number","description":"The average amount of time it takes for an agent to answer the inbound engagement. It is from the system assigning the call to the agent and before the agent answers ","example":20},"longest_inbound_ring_duration":{"type":"number","description":"The maximum amount of time it takes for an agent to answer the inbound engagement. It is from the system assigning the call to the agent and before the agent answers.","example":35},"total_inbound_hold_duration":{"type":"number","description":"The total amount of time that a consumer was placed on hold during the inbound engagement.","example":10},"average_inbound_hold_duration":{"type":"number","description":"The average amount of time that a consumer was placed on hold during the inbound engagement.","example":11},"longest_inbound_hold_duration":{"type":"number","description":"The maximum amount of time that a consumer was placed on hold during the inbound engagement.","example":12},"total_inbound_wrap_up_duration":{"type":"number","description":"The total amount of time that an agent spent in the wrap-up period.","example":16},"average_inbound_wrap_up_duration":{"type":"number","description":"The average amount of time that an agent spent in the wrap-up period.","example":12},"longest_inbound_wrap_up_duration":{"type":"number","description":"The maximum amount of time that an agent spent in the wrap-up period.","example":14},"total_outbound":{"type":"integer","description":"How many outbound calls did the agent participate in (callbacks are not considered outbound calls).","example":2},"short_outbound":{"type":"integer","description":"How many of the agent's outbound calls had a duration short than the long call threshold for the queue.","example":5},"long_outbound":{"type":"integer","description":"How many of the agent's outbound calls had a duration longer than the long call threshold for the queue.","example":6},"hangup_outbound":{"type":"integer","description":"How many of the agent's outbound calls had a duration shorter than the hang-up threshold for the queue.","example":7},"total_outbound_ring_duration":{"type":"number","description":"The total amount of time that agents wait for their outbound engagement to be answered.","example":32},"average_outbound_ring_duration":{"type":"number","description":"The average amount of time that agents wait for their outbound engagement to be answered.","example":27},"longest_outbound_ring_duration":{"type":"number","description":"The maximum amount of time that agents wait for their outbound engagement to be answered.","example":15},"total_outbound_handling_duration":{"type":"number","description":"The total outbound handling duration. Handling duration = talking duration (hold duration included) + wrap-up Duration.","example":23},"average_outbound_handling_duration":{"type":"number","description":"Average outbound handling duration. Handling duration = talking duration (hold duration included) + wrap-up Duration.","example":24},"longest_outbound_handling_duration":{"type":"number","description":"The maximum outbound handling duration. Handling duration = talking duration (hold duration included) + wrap-up Duration.","example":31},"total_outbound_answer_duration":{"type":"number","description":"The total time that consumers spent talking to an agent. Talking duration includes talking time and hold duration.","example":23},"average_outbound_answer_duration":{"type":"number","description":"The average time that consumers spent talking to an agent. Talking duration includes talking time and hold duration.","example":18},"longest_outbound_answer_duration":{"type":"number","description":"The maximum time that consumers spent talking to an agent. Talking duration includes talking time and hold duration.","example":19},"total_outbound_wrap_up_duration":{"type":"number","description":"The total amount of time that an agent spent in the wrap-up period.","example":25},"average_outbound_wrap_up_duration":{"type":"number","description":"The average amount of time that an agent spent in the wrap-up period.","example":21},"longest_outbound_wrap_up_duration":{"type":"number","description":"The maximum amount of time that an agent spent in the wrap-up period.","example":34},"total_outbound_hold_duration":{"type":"number","description":"The total amount of time that a consumer was placed on hold during the outbound engagement.","example":23},"average_outbound_hold_duration":{"type":"number","description":"The average amount of time that a consumer was placed on hold during the outbound engagement.","example":27},"longest_outbound_hold_duration":{"type":"number","description":"The maximum amount of time that a consumer was placed on hold during the outbound engagement.","example":13}},"description":"Metrics for voice channel engagements. Includes offer counts, handling durations, ring durations, hold durations, wrap-up durations, and outbound call metrics."}},"description":"Information about the queue report."}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `300` <br>\n The time and date must be in `yyyy-mm-dd` format, or ISO 8601 format, either `yyyy-MM-dd'T'HH:mm:ss'Z'` or `yyyy-MM-dd'T'HH:mm:ss'TZD'`. <br>\n**Error Code:** `300` <br>\n The requested report exceeds the 1-month limit. <br>\n**Error Code:** `300` <br>\n Timezone does not exist: {timezone}. <br>\n**Error Code:** `300` <br>\n Only provide report in recent 6 months. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1201` <br>\n Queue does not exist: {queueId}. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_report:read:admin","contact_center:read:agent_report:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_report:read:admin"],"x-granular-scopes":["contact_center:read:agent_report:admin"]}}},"/contact_center/analytics/historical/queues/metrics":{"get":{"tags":["Reports V1 (Legacy)"],"summary":"List historical queue reports","description":"Generate a list of historical queue reports. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_report:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:queue_report:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `HEAVY`","operationId":"listHistoricalQueueMetric","parameters":[{"name":"timezone","in":"query","description":"The report data's timezone for. The default is `UTC`.\n\n**Important** \n* When using `from` or `to` with a timezone offset format like `yyyy-MM-dd'T'HH:mm:ss±HH:mm`, this `timezone` parameter is **ignored** and the offset from the date value is used instead.\n* When using the `'Z'` format (`yyyy-MM-dd'T'HH:mm:ss'Z'`), the `'Z'` is treated as a **literal character**, not as a UTC indicator. The time is interpreted in this `timezone`. For example, `2024-12-21T10:00:00Z` with `timezone=America/Los_Angeles` means 10:00 AM Los Angeles time, not 10:00 AM UTC.\n\nExamples:\n* `America/Los_Angeles`\n* `Asia/Shanghai`\n* `Europe/London`\n* `UTC`","required":false,"schema":{"type":"string","example":"Asia/Shanghai"}},{"name":"from","in":"query","description":"The start date and time.\n\n**Accepted formats**\n\n| Format | Example | Description |\n|--------|---------|-------------|\n| `yyyy-MM-dd` | `2024-12-21` | Date only. Time defaults to `00:00:00`. |\n| `yyyy-MM-dd'T'HH:mm:ss'Z'` | `2024-12-21T10:00:00Z` | Date with time. The `'Z'` is a literal character. |\n| `yyyy-MM-dd'T'HH:mm:ss±HH:mm` | `2024-12-21T10:00:00-08:00` | ISO 8601 with timezone offset. |\n\n**Important:** The `'Z'` in `yyyy-MM-dd'T'HH:mm:ss'Z'` is a **literal character**, not a UTC indicator. The time is interpreted using the `timezone` parameter. For example, `2024-12-21T10:00:00Z` with `timezone=America/Los_Angeles` means 10:00 AM Los Angeles time.\n\n**Constraints:**\n* Maximum date range (`from` to `to`): 1 month\n* Maximum lookback: 6 months\n* If not specified: Returns data from the last 24 hours","required":false,"schema":{"type":"string","example":"2021-12-10"}},{"name":"to","in":"query","description":"**Required** when the `from` parameter is specified.\n\nThe end date and time.\n\n**Accepted formats**\n\n| Format | Example | Description |\n|--------|---------|-------------|\n| `yyyy-MM-dd` | `2024-12-21` | Date only. Time defaults to `23:59:59`. |\n| `yyyy-MM-dd'T'HH:mm:ss'Z'` | `2024-12-21T23:59:59Z` | Date with time. The `'Z'` is a literal character. |\n| `yyyy-MM-dd'T'HH:mm:ss±HH:mm` | `2024-12-21T23:59:59-08:00` | ISO 8601 with timezone offset. |\n\n**Important:** The `'Z'` in `yyyy-MM-dd'T'HH:mm:ss'Z'` is a **literal character**, not a UTC indicator. The time is interpreted using the `timezone` parameter.\n\n**Constraints:**\n* Maximum date range: 1 month\n* If not specified: Returns data from the last 24 hours","required":false,"schema":{"type":"string","example":"2021-12-10"}},{"name":"queue_ids","in":"query","description":"A comma-separated list of queue IDs to query, up to 20 queue IDs.","required":false,"deprecated":true,"schema":{"type":"array","items":{"type":"string","example":"Ql3qxUWXSHes4PmcOmzyOg"}}},{"name":"cc_queue_ids","in":"query","description":"A comma-separated list of Contact Center queue IDs to query, up to 20 queue IDs.","required":false,"schema":{"type":"array","items":{"type":"string","example":"Ql3qxUWXSHes4PmcOmzyOg"}}},{"name":"channel_types","in":"query","description":"The channel's type. Provide only a single channel type.","required":false,"deprecated":true,"schema":{"type":"array","items":{"type":"string","example":"voice","enum":["voice","video","chat","sms"]}}},{"name":"channel","in":"query","description":"The task's channel.\n\nProvide only a single channel. \n\nIf channel is used as an input parameter, the deprecated parameter `channel_types` will not be processed.","required":true,"schema":{"type":"string","example":"messaging","enum":["voice","video","messaging","email"]}},{"name":"channel_sources","in":"query","description":"The channel's source. \n* `in_app_chat` - Only applies to messaging channel.  \n* `web_chat` - Only applies to messaging channel. \n* `sms` - Only applies to messaging channel. \n* `facebook_messenger` - Only applies to messaging channel. \n* `whatsapp` - Only applies to messaging channel. \n* `email_address` - Only applies to email channel. \n\nProvide multiple channel_sources","required":false,"schema":{"type":"array","items":{"type":"string","example":"web_chat,in_app_chat","enum":["web_chat","in_app_chat","sms","facebook_messenger","whatsapp","email_address"]}}},{"name":"interval","in":"query","description":"The historical queue report's interval.","required":false,"schema":{"type":"string","example":"1_month","enum":["15_minutes","30_minutes","1_hour","1_day","1_week","1_month"]}},{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of items returned per page.","required":false,"schema":{"maximum":100,"type":"integer","format":"int32","example":10,"default":10}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \n Historical queue reports list returned.","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"maxLength":100,"type":"string","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":100,"minimum":1,"type":"integer","description":"The number of records returned within a single API call.","example":10,"default":10},"total_records":{"minimum":0,"type":"integer","description":"The total number of all the records available across pages.","example":10},"timezone":{"type":"string","description":"The call's [timezone ID](/docs/api/references/abbreviations/#timezones). The default is **UTC**.","example":"America/Los_Angeles"},"from":{"type":"string","description":"The returned data's start date and time. Format is either `yyyy-MM-dd'T'HH:mm:ss'Z'` or `yyyy-MM-dd'T'HH:mm:ss±HH:mm`, matching the input format when timezone offset was provided.","format":"date-time","example":"2021-12-10T00:00:00Z"},"to":{"type":"string","description":"The returned data's end date and time. Format matches the `from` field.","format":"date-time","example":"2021-12-10T00:15:00Z"},"queues":{"type":"array","description":"Information about the queue reports.","items":{"type":"object","properties":{"queue_id":{"type":"string","description":"The queue's ID.","example":"Ql3qxUWXSHes4PmcOmzyOg","deprecated":true},"cc_queue_id":{"type":"string","description":"The Contact Center queue's ID.","example":"Ql3qxUWXSHes4PmcOmzyOg"},"queue_name":{"type":"string","description":"The queue's name.","example":"agentQueue"},"total_inbound":{"type":"integer","description":"The total number of incoming voice or video calls, chats, or SMS engagements.","format":"int64","example":1},"total_completed":{"type":"integer","description":"The total number of completed voice or video calls, chats, or SMS engagements.","format":"int64","example":1},"total_transferred_in":{"type":"integer","description":"The total number of transferred-in calls.","format":"int64","example":1},"total_transferred_out":{"type":"integer","description":"The total number of transferred-out calls.","format":"int64","example":1},"voice":{"type":"object","properties":{"service_level":{"type":"number","description":"The queue's service level.","format":"double","example":0.85},"short_abandoned":{"type":"integer","description":"The total number of short-duration abandoned voice calls, where the talking duration is less than the user-specified threshold value.","format":"int64","example":1},"long_abandoned":{"type":"integer","description":"The total number of long-duration abandoned voice calls, where the talking duration is greater than the user-specified threshold value.","format":"int64","example":1},"hold_abandoned":{"type":"integer","description":"The total number of on-hold abandoned voice calls, where the agent placed the call on hold and then the customer abandoned the call.","format":"int64","example":1},"total_missed":{"type":"integer","description":"The total number of missed voice calls.","format":"int64","example":1},"total_overflowed":{"type":"integer","description":"The total number of overflowed voice calls.","format":"int64","example":1},"upgraded_to_video_call":{"type":"integer","description":"The total number of upgrade-to-video voice calls.","format":"int64","example":1},"inbound_average_waiting_duration":{"type":"number","description":"The average waiting voice call or SMS engagement, in seconds.","format":"double","example":11.8},"inbound_shortest_waiting_duration":{"type":"number","description":"The shortest waiting voice call or SMS engagement, in seconds.","format":"double","example":11.8},"inbound_longest_waiting_duration":{"type":"number","description":"The longest waiting voice call or SMS engagement, in seconds.","format":"double","example":11.8},"inbound_average_talking_duration":{"type":"number","description":"The average voice call duration, in seconds.","format":"double","example":11.8},"inbound_longest_talking_duration":{"type":"number","description":"The longest voice call duration, in seconds.","format":"double","example":11.8},"inbound_shortest_talking_duration":{"type":"number","description":"The shortest voice call duration, in seconds.","format":"double","example":11.8},"inbound_average_wrap_up_duration":{"type":"number","description":"The average wrap-up voice call, in seconds.","format":"double","example":11.8},"inbound_longest_wrap_up_duration":{"type":"number","description":"The longest wrap-up voice call, in seconds.","format":"double","example":11.8},"inbound_shortest_wrap_up_duration":{"type":"number","description":"The shortest wrap-up voice call, in seconds.","format":"double","example":11.8},"total_outbound":{"type":"integer","description":"The total number of outbound voice calls.","format":"int64","example":1},"hangup_outbound":{"type":"integer","description":"The total number of hang-up outbound calls, where the talking duration is less than the threshold value specified for hang-up calls.","format":"int64","example":1},"short_outbound":{"type":"integer","description":"The total number of short outbound calls, where the talking duration is between the threshold values specified for hang-up calls and long outbound calls.","format":"int64","example":1},"long_outbound":{"type":"integer","description":"The total number of long outbound calls, where the talking duration is greater than the threshold value specified for long outbound calls.","format":"int64","example":1},"start_time_interval":{"type":"string","description":"The current interval's start date and time in ISO 8601 format, either yyyy-MM-dd'T'HH:mm:ss'Z' or yyyy-MM-dd'T'HH:mm:ss`TZD`. Returned for voice channels with a provided interval.","example":"2022-07-20T14:00:00-08:00"},"end_time_interval":{"type":"string","description":"The current interval's end date and time in ISO 8601 format, either yyyy-MM-dd'T'HH:mm:ss'Z' or yyyy-MM-dd'T'HH:mm:ss`TZD`. Returned for voice channels with a provided interval.","example":"2022-07-20T14:15:00-08:00"},"total_answered_users":{"type":"integer","description":"The total number of agent-answered voice calls. Returned for voice channels with a provided interval.","format":"int64","example":3},"total_answer_duration":{"type":"number","description":"The total voice call duration, in seconds. Returned for voice channels with a provided interval.","format":"double","example":50},"total_hold_duration":{"type":"number","description":"The total voice call hold duration, in seconds. Returned for voice channels with a provided interval.","format":"double","example":3},"total_wrap_up_duration":{"type":"number","description":"The total wrap-up voice call duration, in seconds. Returned for voice channels with a provided interval.","format":"double","example":78},"total_queue_wait_duration":{"type":"number","description":"The total voice-call queue wait duration, in seconds. Returned for voice channels with a provided interval.","format":"double","example":56},"total_abandoned_duration":{"type":"number","description":"The total duration of abandoned voice calls, in seconds. Returned for voice channels with a provided interval.","format":"double","example":8},"total_outbound_answer_duration":{"type":"number","description":"The total outbound voice call duration, in seconds. It returns for voice channels with a provided interval.","format":"double","example":8},"total_outbound_hold_duration":{"type":"number","description":"The total outbound voice call hold duration, in seconds. It returns for voice channels with a provided interval.","format":"double","example":8},"total_outbound_wrap_up_duration":{"type":"number","description":"The total outbound wrap-up voice call duration, in seconds. It returns for voice channels with a provided interval.","format":"double","example":78},"average_outbound_answer_duration":{"type":"number","description":"The average outbound voice call duration, in seconds. It returns for voice channels with a provided interval.","format":"double","example":8},"average_outbound_hold_duration":{"type":"number","description":"The average outbound voice call hold duration, in seconds. It returns for voice channels with a provided interval.","format":"double","example":8},"average_outbound_wrap_up_duration":{"type":"number","description":"The average outbound wrap-up voice call duration, in seconds. It returns for voice channels with a provided interval.","format":"double","example":78}},"description":"Information about the voice metrics."},"sms":{"type":"object","properties":{"start_time_interval":{"type":"string","description":"The current interval's start date and time in ISO 8601 format, either yyyy-MM-dd'T'HH:mm:ss'Z' or yyyy-MM-dd'T'HH:mm:ss`TZD`.","example":"2022-07-20T14:00:00-08:00"},"end_time_interval":{"type":"string","description":"The current interval's end date and time in ISO 8601 format, either yyyy-MM-dd'T'HH:mm:ss'Z' or yyyy-MM-dd'T'HH:mm:ss`TZD`.","example":"2022-07-20T14:15:00-08:00"},"total_sent":{"type":"integer","description":"The total number of sent messages.","format":"int64","example":1},"average_sent":{"type":"number","description":"The average sent SMS messages.","format":"double","example":0.85},"total_auto_closed":{"type":"integer","description":"The total number of auto-closed SMS engagements.","format":"int64","example":1},"total_released":{"type":"integer","description":"The total number of released SMS engagements.","format":"int64","example":1},"total_abandoned":{"type":"integer","description":"The total number of abandoned quit SMS engagements.","format":"int64","example":1},"total_overflowed":{"type":"integer","description":"The total number of overflowed SMS engagements.","format":"int64","example":1},"upgraded_to_voice_call":{"type":"integer","description":"The total number of upgrade-to-voice SMS engagements.","format":"int64","example":1},"upgraded_to_video_call":{"type":"integer","description":"The total number of upgrade-to-video SMS engagements.","format":"int64","example":1},"inbound_average_waiting_duration":{"type":"number","description":"The average waiting voice call or SMS engagement, in seconds.","format":"double","example":11.8},"inbound_shortest_waiting_duration":{"type":"number","description":"The shortest waiting voice call or SMS engagement, in seconds.","format":"double","example":11.8},"inbound_longest_waiting_duration":{"type":"number","description":"The longest waiting voice call or SMS engagement, in seconds.","format":"double","example":11.8},"inbound_average_messaging_duration":{"type":"number","description":"The average SMS engagement duration, in seconds.","format":"double","example":11.8},"inbound_longest_messaging_duration":{"type":"number","description":"The longest SMS engagement duration, in seconds.","format":"double","example":11.8},"inbound_shortest_messaging_duration":{"type":"number","description":"The shortest SMS engagement duration, in seconds.","format":"double","example":11.8},"average_agent_first_message_speed":{"type":"number","description":"The average agent first message speed, in seconds.","format":"double","example":11.8},"shortest_agent_first_message_speed":{"type":"number","description":"The shortest agent first message speed, in seconds.","format":"double","example":11.8},"longest_agent_first_message_speed":{"type":"number","description":"The longest agent first message speed, in seconds.","format":"double","example":11.8},"total_outbound":{"type":"integer","description":"The total number of outbound SMS engagements.","format":"int64","example":1},"total_outbound_answer_duration":{"type":"number","description":"The total SMS outbound duration, in seconds.","format":"double","example":8},"total_outbound_wrap_up_duration":{"type":"number","description":"The total SMS outbound wrap-up duration, in seconds.","format":"double","example":78},"average_outbound_answer_duration":{"type":"number","description":"The average SMS outbound duration, in seconds.","format":"double","example":8},"average_outbound_wrap_up_duration":{"type":"number","description":"The average SMS outbound wrap-up duration, in seconds.","format":"double","example":78}},"description":"Information about the SMS metrics.","deprecated":true},"chat":{"type":"object","properties":{"start_time_interval":{"type":"string","description":"The current interval's start date and time in ISO 8601 format, either yyyy-MM-dd'T'HH:mm:ss'Z' or yyyy-MM-dd'T'HH:mm:ss`TZD`.","example":"2022-07-20T14:00:00-08:00"},"end_time_interval":{"type":"string","description":"The current interval's end date and time in ISO 8601 format, either yyyy-MM-dd'T'HH:mm:ss'Z' or yyyy-MM-dd'T'HH:mm:ss`TZD`.","example":"2022-07-20T14:15:00-08:00"},"service_level":{"type":"number","description":"The queue's service level.","format":"double","example":0.85},"total_sent":{"type":"integer","description":"The total number of sent chats.","format":"int64","example":1},"average_sent":{"type":"number","description":"The average sent chats.","format":"double","example":0.85},"total_abandoned":{"type":"integer","description":"The total number of abandoned chats.","format":"int64","example":1},"total_auto_closed":{"type":"integer","description":"The total number of auto-closed chats.","format":"int64","example":1},"total_released":{"type":"integer","description":"The total number of released chats.","format":"int64","example":1},"upgraded_to_voice_call":{"type":"integer","description":"The total number of upgrade-to-voice chats.","format":"int64","example":1},"upgraded_to_video_call":{"type":"integer","description":"The total number of upgrade-to-video chats.","format":"int64","example":1},"average_waiting_duration":{"type":"number","description":"The average waiting video call or chat duration, in seconds.","format":"double","example":11.8},"shortest_waiting_duration":{"type":"number","description":"The shortest waiting video call or chat duration, in seconds.","format":"double","example":11.8},"longest_waiting_duration":{"type":"number","description":"The longest waiting video call or chat duration, in seconds.","format":"double","example":11.8},"average_messaging_duration":{"type":"number","description":"The average chat duration, in seconds.","format":"double","example":11.8},"longest_messaging_duration":{"type":"number","description":"The longest chat duration, in seconds.","format":"double","example":11.8},"shortest_messaging_duration":{"type":"number","description":"The shortest chat duration, in seconds.","format":"double","example":11.8},"average_agent_first_message_speed":{"type":"number","description":"The average agent first message speed, in seconds.","format":"double","example":11.8},"shortest_agent_first_message_speed":{"type":"number","description":"The shortest agent first message speed, in seconds.","format":"double","example":11.8},"longest_agent_first_message_speed":{"type":"number","description":"The longest agent first message speed, in seconds.","format":"double","example":11.8}},"description":"Information about the chat metrics.","deprecated":true},"video":{"type":"object","properties":{"start_time_interval":{"type":"string","description":"The current interval's start date and time in ISO 8601 format, either yyyy-MM-dd'T'HH:mm:ss'Z' or yyyy-MM-dd'T'HH:mm:ss`TZD`.","example":"2022-07-20T14:00:00-08:00"},"end_time_interval":{"type":"string","description":"The current interval's end date and time in ISO 8601 format, either yyyy-MM-dd'T'HH:mm:ss'Z' or yyyy-MM-dd'T'HH:mm:ss`TZD`.","example":"2022-07-20T14:15:00-08:00"},"service_level":{"type":"number","description":"The queue's service level.","format":"double","example":0.85},"short_abandoned":{"type":"integer","description":"The total number of short-duration abandoned video calls, where the talking duration is less than the user-specified threshold value.","format":"int64","example":1},"long_abandoned":{"type":"integer","description":"The total number of long-duration abandoned video calls, where the talking duration is greater than the user-specified threshold value.","format":"int64","example":1},"hold_abandoned":{"type":"integer","description":"The total number of on-hold abandoned video calls, where the agent placed the call on hold and then the customer abandoned the call.","format":"int64","example":1},"total_missed":{"type":"integer","description":"The total number of missed video calls.","format":"int64","example":1},"total_overflowed":{"type":"integer","description":"The total number of overflowed video calls.","format":"int64","example":1},"average_waiting_duration":{"type":"number","description":"The average waiting video call or chat duration, in seconds.","format":"double","example":11.8},"shortest_waiting_duration":{"type":"number","description":"The shortest waiting video call or chat duration, in seconds.","format":"double","example":11.8},"longest_waiting_duration":{"type":"number","description":"The longest waiting video call or chat duration, in seconds.","format":"double","example":11.8},"average_talking_duration":{"type":"number","description":"The average video call duration, in seconds.","format":"double","example":11.8},"longest_talking_duration":{"type":"number","description":"The longest video call duration, in seconds.","format":"double","example":11.8},"shortest_talking_duration":{"type":"number","description":"The shortest video call duration, in seconds.","format":"double","example":11.8},"average_wrap_up_duration":{"type":"number","description":"The longest wrap-up video call, in seconds.","format":"double","example":11.8},"longest_wrap_up_duration":{"type":"number","description":"The longest wrap-up video call, in seconds.","format":"double","example":11.8},"shortest_wrap_up_duration":{"type":"number","description":"The shortest wrap-up video call, in seconds.","format":"double","example":11.8}},"description":"Information about the video metrics."},"messaging":{"type":"object","properties":{"channel_sources":{"type":"array","description":"The channel's source. \n* `in_app_chat` - Only applies to messaging channel.  \n* `web_chat` - Only applies to messaging channel. \n* `sms` - Only applies to messaging channel.\n* `facebook_messenger` - Only applies to messaging channel.\n* `whatsapp` - Only applies to messaging channel.","items":{"type":"string","example":"web_chat,in_app_chat","enum":["web_chat","in_app_chat","sms","facebook_messenger","whatsapp"]}},"start_time_interval":{"type":"string","description":"The current interval's start date and time in ISO 8601 format, either yyyy-MM-dd'T'HH:mm:ss'Z' or yyyy-MM-dd'T'HH:mm:ss`TZD`.","example":"2022-07-20T14:00:00-08:00"},"end_time_interval":{"type":"string","description":"The current interval's end date and time in ISO 8601 format, either yyyy-MM-dd'T'HH:mm:ss'Z' or yyyy-MM-dd'T'HH:mm:ss`TZD`.","example":"2022-07-20T14:15:00-08:00"},"service_level":{"type":"number","description":"The queue's service level.","format":"double","example":0.85},"total_sent":{"type":"integer","description":"The total number of sent messages.","format":"int64","example":1},"average_sent":{"type":"number","description":"The average sent messaging(web_chat/in_app_chat/sms) messages.","format":"double","example":0.85},"total_auto_closed":{"type":"integer","description":"The total number of auto-closed messaging(web_chat/in_app_chat/sms) engagements.","format":"int64","example":1},"total_released":{"type":"integer","description":"The total number of released messaging(web_chat/in_app_chat/sms) engagements.","format":"int64","example":1},"total_abandoned":{"type":"integer","description":"The total number of abandoned quit messaging(web_chat/in_app_chat/sms) engagements.","format":"int64","example":1},"total_overflowed":{"type":"integer","description":"The total number of overflowed messaging(web_chat/in_app_chat/sms) engagements.","format":"int64","example":1},"upgraded_to_voice_call":{"type":"integer","description":"The total number of upgrade-to-voice messaging(web_chat/in_app_chat/sms) engagements.","format":"int64","example":1},"upgraded_to_video_call":{"type":"integer","description":"The total number of upgrade-to-video messaging(web_chat/in_app_chat/sms) engagements.","format":"int64","example":1},"inbound_average_waiting_duration":{"type":"number","description":"The average waiting voice call or messaging(web_chat/in_app_chat/sms) engagement, in seconds.","format":"double","example":11.8},"inbound_shortest_waiting_duration":{"type":"number","description":"The shortest waiting voice call or messaging(web_chat/in_app_chat/sms) engagement, in seconds.","format":"double","example":11.8},"inbound_longest_waiting_duration":{"type":"number","description":"The longest waiting voice call or messaging(web_chat/in_app_chat/sms) engagement, in seconds.","format":"double","example":11.8},"inbound_average_messaging_duration":{"type":"number","description":"The average messaging(web_chat/in_app_chat/sms) engagement duration, in seconds.","format":"double","example":11.8},"inbound_longest_messaging_duration":{"type":"number","description":"The longest messaging(web_chat/in_app_chat/sms) engagement duration, in seconds.","format":"double","example":11.8},"inbound_shortest_messaging_duration":{"type":"number","description":"The shortest messaging(web_chat/in_app_chat/sms) engagement duration, in seconds.","format":"double","example":11.8},"average_agent_first_message_speed":{"type":"number","description":"The average agent first message speed, in seconds.","format":"double","example":11.8},"shortest_agent_first_message_speed":{"type":"number","description":"The shortest agent first message speed, in seconds.","format":"double","example":11.8},"longest_agent_first_message_speed":{"type":"number","description":"The longest agent first message speed, in seconds.","format":"double","example":11.8},"total_outbound":{"type":"integer","description":"The total number of outbound messaging(sms) engagements.","format":"int64","example":1},"total_outbound_answer_duration":{"type":"number","description":"The total messaging(sms) outbound duration, in seconds.","format":"double","example":8},"total_outbound_wrap_up_duration":{"type":"number","description":"The total messaging(sms) outbound wrap-up duration, in seconds.","format":"double","example":78},"average_outbound_answer_duration":{"type":"number","description":"The average messaging(sms) outbound duration, in seconds.","format":"double","example":8},"average_outbound_wrap_up_duration":{"type":"number","description":"The average messaging(sms) outbound wrap-up duration, in seconds.","format":"double","example":78}},"description":"The information about the messaging(web_chat/in_app_chat/sms) metrics."},"email":{"type":"object","properties":{"channel_sources":{"type":"array","description":"The channel's source. \n* `email_address` - Only applies to email channel.","items":{"type":"string","example":"email_address","enum":["email_address"]}},"start_time_interval":{"type":"string","description":"The current interval's start date and time in ISO 8601 format, either `yyyy-MM-dd'T'HH:mm:ss'Z'` or `yyyy-MM-dd'T'HH:mm:ss'TZD'`.","example":"2022-07-20T14:00:00-08:00"},"end_time_interval":{"type":"string","description":"The current interval's end date and time in ISO 8601 format, either `yyyy-MM-dd'T'HH:mm:ss'Z'` or `yyyy-MM-dd'T'HH:mm:ss'TZD'`.","example":"2022-07-20T14:15:00-08:00"},"service_level":{"type":"number","description":"The queue's service level.","format":"double","example":0.85},"total_overflowed":{"type":"integer","description":"The total number of overflowed email (`email_address`) engagements.","format":"int64","example":1},"total_auto_closed":{"type":"integer","description":"The total number of auto-closed email (`email_address`) engagements.","format":"int64","example":1},"total_offered":{"type":"integer","description":"The total number of offered email (`email_address`) engagements.","format":"int64","example":1},"total_released":{"type":"integer","description":"The total number of released email (`email_address`) engagements.","format":"int64","example":1},"total_offers":{"type":"integer","description":"The total number of offers email (`email_address`) engagements.","format":"int64","example":1},"total_offers_acd":{"type":"integer","description":"The total number of offers ACD email (`email_address`) engagements.","format":"int64","example":1},"total_offers_non_acd":{"type":"integer","description":"The total number of offers non-ACD email (`email_address`) engagements.","format":"int64","example":1},"total_offers_answered":{"type":"integer","description":"The total number of offers answered email (`email_address`) engagements.","format":"int64","example":1},"total_offers_missed":{"type":"integer","description":"The total number of offers missed email (`email_address`) engagements.","format":"int64","example":1},"total_offers_declined":{"type":"integer","description":"The total number of offers declined email (`email_address`) engagements.","format":"int64","example":1},"total_handled":{"type":"integer","description":"The total number of handled email (`email_address`) engagements.","format":"int64","example":1},"total_transferred_out_within_queue":{"type":"integer","description":"The total number of transferred-out within queue email (`email_address`) engagements.","format":"int64","example":1},"total_transferred_out_of_queue":{"type":"integer","description":"The total number of transferred-out of queue email (`email_address`) engagements.","format":"int64","example":1},"total_transferred_in_to_agent":{"type":"integer","description":"The total number of transferred-in to agent email (`email_address`) engagements.","format":"int64","example":1},"total_transferred_in_to_queue":{"type":"integer","description":"The total number of transferred-in to queue email (`email_address`) engagements.","format":"int64","example":1},"inbound_average_waiting_duration":{"type":"number","description":"The average waiting email (`email_address`) engagement, in seconds.","format":"double","example":11.8},"inbound_shortest_waiting_duration":{"type":"number","description":"The shortest waiting email (`email_address`) engagement, in seconds.","format":"double","example":11.8},"inbound_longest_waiting_duration":{"type":"number","description":"The longest waiting email (`email_address`) engagement, in seconds.","format":"double","example":11.8},"inbound_average_messaging_duration":{"type":"number","description":"The average email (`email_address`) engagement duration, in seconds.","format":"double","example":11.8},"inbound_longest_messaging_duration":{"type":"number","description":"The longest email (`email_address`) engagement duration, in seconds.","format":"double","example":11.8},"inbound_shortest_messaging_duration":{"type":"number","description":"The shortest email (`email_address`) engagement duration, in seconds.","format":"double","example":11.8},"inbound_total_messaging_duration":{"type":"number","description":"The total email (`email_address`) engagement duration, in seconds.","format":"double","example":11.8},"inbound_average_agent_first_reply_duration":{"type":"number","description":"The average reply duration of the first agent in email (`email_address`) engagement, in seconds.","format":"double","example":11.8},"inbound_longest_agent_first_reply_duration":{"type":"number","description":"The longest reply duration of the first agent in email (`email_address`) engagement, in seconds.","format":"double","example":11.8},"inbound_shortest_agent_first_reply_duration":{"type":"number","description":"The shortest reply duration of the first agent in email (`email_address`) engagement, in seconds.","format":"double","example":11.8},"inbound_average_agent_reply_duration":{"type":"number","description":"The average reply duration of email (`email_address`) engagement agents, excluding the response duration of the first agent, in seconds.","format":"double","example":11.8},"inbound_longest_agent_reply_duration":{"type":"number","description":"The longest reply duration of email (`email_address`) engagement agents, excluding the response duration of the first agent, in seconds.","format":"double","example":11.8},"inbound_shortest_agent_reply_duration":{"type":"number","description":"The shortest reply duration of email (`email_address`) engagement agents, excluding the response duration of the first agent, in seconds.","format":"double","example":11.8},"inbound_average_inactive_duration":{"type":"number","description":"The average inactive duration in email (`email_address`) engagement, excluding the response duration of the first agent, in seconds.","format":"double","example":11.8},"inbound_longest_inactive_duration":{"type":"number","description":"The longest inactive duration in email (`email_address`) engagement, excluding the response duration of the first agent, in seconds.","format":"double","example":11.8},"inbound_shortest_inactive_duration":{"type":"number","description":"The shortest inactive duration in email (`email_address`) engagement, excluding the response duration of the first agent, in seconds.","format":"double","example":11.8},"inbound_total_inactive_duration":{"type":"number","description":"The total inactive duration in email (`email_address`) engagement, excluding the response duration of the first agent, in seconds.","format":"double","example":11.8},"total_outbound":{"type":"integer","description":"The total number of outbound email engagements.","format":"int64","example":1},"outbound_messages_sent":{"type":"integer","description":"The total number of outbound emails sent by the agent during outbound email engagements.","format":"int64","example":1},"outbound_average_active_duration":{"type":"number","description":"The average active duration in outbound email (`email_address`) engagement, in seconds.","format":"double","example":11.8},"outbound_longest_active_duration":{"type":"number","description":"The longest active duration in outbound email (`email_address`) engagement, in seconds.","format":"double","example":11.8},"outbound_total_active_duration":{"type":"number","description":"The total active duration in outbound email (`email_address`) engagement, in seconds.","format":"double","example":11.8},"outbound_average_inactive_duration":{"type":"number","description":"The average inactive duration in outbound email (`email_address`) engagement, in seconds.","format":"double","example":11.8},"outbound_longest_inactive_duration":{"type":"number","description":"The longest inactive duration in outbound email (`email_address`) engagement, in seconds.","format":"double","example":11.8},"outbound_total_inactive_duration":{"type":"number","description":"The total inactive duration in outbound email (`email_address`) engagement, in seconds.","format":"double","example":11.8}},"description":"The information about the email (`email_address`) metrics."}}}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `300` <br>\n The requested report exceeds the 1-month limit. <br>\n**Error Code:** `300` <br>\n Timezone does not exist: {timezone}. <br>\n**Error Code:** `300` <br>\n Only provide report in recent 6 months. <br>\n**Error Code:** `300` <br>\n The time and date must be in yyyy-mm-dd or ISO 8601 format (yyyy-MM-dd'T'HH:mm:ss'Z' or yyyy-MM-dd'T'HH:mm:ss'TZD'). <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1201` <br>\n Queue does not exist: $queueId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_report:read:admin","contact_center:read:queue_report:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_report:read:admin"],"x-granular-scopes":["contact_center:read:queue_report:admin"]}}},"/contact_center/analytics/historical/queues/{queueId}/agents/metrics":{"get":{"tags":["Reports V1 (Legacy)"],"summary":"List historical queue's agents reports","description":"Generate a list of a historical queue's agent reports.  \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_report:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:agent_report:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `HEAVY`","operationId":"listQueueAgentMetric","parameters":[{"name":"queueId","in":"path","description":"Supports both the routing queue ID and the Contact Center queue ID.","required":true,"schema":{"type":"string","example":"W_VATTk_Q5aW6z5rZtBxAQ"}},{"name":"timezone","in":"query","description":"The report data's timezone. The default is `UTC`.\n\n**Important** \n* When using `from` or `to` with a timezone offset format such as `yyyy-MM-dd'T'HH:mm:ss±HH:mm`, this `timezone` parameter is **ignored** and the offset from the date value is used instead.\n* When using the `'Z'` format, such as `yyyy-MM-dd'T'HH:mm:ss'Z'`, the `'Z'` is treated as a literal character, not as a UTC indicator. The time is interpreted in this `timezone`. For example, `2024-12-21T10:00:00Z` with `timezone=America/Los_Angeles` means 10:00 AM Los Angeles time, not 10:00 AM UTC.\n\n**Examples**\n* `America/Los_Angeles`\n* `Asia/Shanghai`\n* `Europe/London`\n* `UTC`","required":false,"schema":{"type":"string","example":"Asia/Shanghai"}},{"name":"from","in":"query","description":"The start date and time. Accepted formats:\n\n| Format | Example | Description |\n|--------|---------|-------------|\n| `yyyy-MM-dd` | `2024-12-21` | Date only. Time defaults to `00:00:00`. |\n| `yyyy-MM-dd'T'HH:mm:ss'Z'` | `2024-12-21T10:00:00Z` | Date with time. The `'Z'` is a literal character. |\n| `yyyy-MM-dd'T'HH:mm:ss±HH:mm` | `2024-12-21T10:00:00-08:00` | ISO 8601 with timezone offset. |\n\n**Important:** The `'Z'` in `yyyy-MM-dd'T'HH:mm:ss'Z'` is a **literal character**, not a UTC indicator. The time is interpreted using the `timezone` parameter. For example, `2024-12-21T10:00:00Z` with `timezone=America/Los_Angeles` means 10:00 AM Los Angeles time.\n\n**Constraints**\n* Maximum date range `from` to `to` - 1 month\n* Maximum lookback - 6 months\n* If not specified - Returns data from the last 24 hours","required":false,"schema":{"type":"string","example":"2021-12-10"}},{"name":"to","in":"query","description":"**Required** when the `from` parameter is specified.\n\nThe end date and time. \n\n**Accepted formats**\n\n| Format | Example | Description |\n|--------|---------|-------------|\n| `yyyy-MM-dd` | `2024-12-21` | Date only. Time defaults to `23:59:59`. |\n| `yyyy-MM-dd'T'HH:mm:ss'Z'` | `2024-12-21T23:59:59Z` | Date with time. The `'Z'` is a literal character. |\n| `yyyy-MM-dd'T'HH:mm:ss±HH:mm` | `2024-12-21T23:59:59-08:00` | ISO 8601 with timezone offset. |\n\n**Important:** The `'Z'` in `yyyy-MM-dd'T'HH:mm:ss'Z'` is a **literal character**, not a UTC indicator. The time is interpreted using the `timezone` parameter.\n\n**Constraints:**\n* Maximum date range: 1 month\n* If not specified: Returns data from the last 24 hours","required":false,"schema":{"type":"string","example":"2021-12-10"}},{"name":"channel_types","in":"query","description":"The channel's type. Provide only a single channel type.","required":false,"deprecated":true,"schema":{"type":"array","items":{"type":"string","example":"voice","enum":["voice","video","chat","sms"]}}},{"name":"channel","in":"query","description":"The task's channel. \n* `voice` (deprecated)\n* `video` \n* `messaging` \n* `email` \n\nProvides only a single channel. \n\nIf channel is used as an input parameter, the deprecated parameter `channel_types` will not be processed.","required":true,"schema":{"type":"string","example":"messaging","enum":["voice","video","messaging","email"]}},{"name":"channel_sources","in":"query","description":"The channel's source. \n* `in_app_chat` - Only applies to messaging channel.  \n* `web_chat` - Only applies to messaging channel. \n* `sms` - Only applies to messaging channel. \n* `facebook_messenger` - Only applies to messaging channel. \n* `whatsapp` - Only applies to messaging channel. \n* `email_address` - Only applies to email channel. \n\nProvide multiple channel_sources","required":false,"schema":{"type":"array","items":{"type":"string","example":"web_chat,in_app_chat","enum":["web_chat","in_app_chat","sms","facebook_messenger","whatsapp","email_address"]}}},{"name":"interval","in":"query","description":"The historical queue report's interval.","required":false,"schema":{"type":"string","example":"1_month","enum":["15_minutes","30_minutes","1_hour","1_day","1_week","1_month"]}},{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of items returned per page.","required":false,"schema":{"maximum":100,"type":"integer","format":"int32","example":10,"default":10}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \n Historical queue's agents report list returned.","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"maxLength":100,"type":"string","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":100,"minimum":1,"type":"integer","description":"The number of records returned within a single API call.","example":10,"default":10},"total_records":{"minimum":0,"type":"integer","description":"The total number of all the records available across pages.","example":10},"timezone":{"type":"string","description":"The timezone used for the query. When the request uses `yyyy-MM-dd'T'HH:mm:ss±HH:mm` format, this reflects the offset from the input. Otherwise, it reflects the `timezone` parameter value or the default `UTC`.","example":"America/Los_Angeles"},"from":{"type":"string","description":"The start date and time of the returned data. Format: `yyyy-MM-dd'T'HH:mm:ss'Z'` or `yyyy-MM-dd'T'HH:mm:ss±HH:mm`, matching the input format when the timezone offset was provided.","format":"date-time","example":"2021-12-10T00:00:00Z"},"to":{"type":"string","description":"The end date and time of the returned data. Format matches the `from` field.","format":"date-time","example":"2021-12-10T00:15:00Z"},"agents":{"type":"array","description":"Information about the queue's agents.","items":{"type":"object","properties":{"user_id":{"type":"string","description":"The agent's ID.","example":"ukAAkZKfROKMSw1bj_RDFQ"},"display_name":{"type":"string","description":"The agent's name.","example":"Jilly"},"total_inbound":{"type":"integer","description":"The total number of incoming voice calls, video calls, chats, or SMS engagements.","format":"int64","example":1},"total_completed":{"type":"integer","description":"The total number of completed voice calls, video calls, chats, or SMS engagements.","format":"int64","example":1},"total_transferred_in":{"type":"integer","description":"The total number of transferred-in voice calls, video calls, chats, or SMS engagements.","format":"int64","example":1},"total_transferred_out":{"type":"integer","description":"The total number of transferred-out voice calls, video calls, chats, or SMS engagements.","format":"int64","example":1},"voice":{"type":"object","properties":{"upgraded_to_video_call":{"type":"integer","description":"The total number of voice calls, chats or SMS engagements that are upgraded to video calls.","format":"int64","example":1},"total_declined":{"type":"integer","description":"The total number of declined voice calls.","format":"int64","example":1},"total_missed":{"type":"integer","description":"The total number of missed voice calls.","format":"int64","example":1},"inbound_average_talking_duration":{"type":"number","description":"The average voice call duration, in seconds.","format":"double","example":11.8},"inbound_longest_talking_duration":{"type":"number","description":"The longest voice call duration, in seconds.","format":"double","example":11.8},"inbound_shortest_talking_duration":{"type":"number","description":"The shortest voice call duration, in seconds.","format":"double","example":11.8},"inbound_average_wrap_up_duration":{"type":"number","description":"The average wrap-up voice or video call, in seconds.","format":"double","example":11.8},"inbound_longest_wrap_up_duration":{"type":"number","description":"The longest wrap-up voice or video call, in seconds.","format":"double","example":11.8},"inbound_shortest_wrap_up_duration":{"type":"number","description":"The shortest wrap-up voice or video call, in seconds.","format":"double","example":11.8},"total_outbound":{"type":"integer","description":"The total number of outbound voice calls, video calls, chats, or SMS engagements.","format":"int64","example":1},"hangup_outbound":{"type":"integer","description":"The total number of hang-up outbound calls, where the talking duration is less than the threshold value specified for hang-up calls.","format":"int64","example":1},"short_outbound":{"type":"integer","description":"The total number of short outbound calls, where the talking duration is between the threshold values specified for hang-up calls and long outbound calls.","format":"int64","example":1},"long_outbound":{"type":"integer","description":"The total number of long outbound calls, where the talking duration is greater than the threshold value specified for long outbound calls.","format":"int64","example":1},"start_time_interval":{"type":"string","description":"The current interval's start date and time. Format is either `yyyy-MM-dd'T'HH:mm:ss'Z'` or `yyyy-MM-dd'T'HH:mm:ss±HH:mm`, matching the input format when timezone offset was provided. Returned for voice channels with a provided interval.","example":"2022-07-20T14:00:00-08:00"},"end_time_interval":{"type":"string","description":"The current interval's end date and time. Format is either `yyyy-MM-dd'T'HH:mm:ss'Z'` or `yyyy-MM-dd'T'HH:mm:ss±HH:mm`, matching the input format when timezone offset was provided. Returned for voice channels with a provided interval.","example":"2022-07-20T14:15:00-08:00"},"total_answered_users":{"type":"integer","description":"The total number of agent-answered calls. Returned for voice channels with a provided interval.","format":"int64","example":3},"total_answer_duration":{"type":"number","description":"The total call duration, in seconds. Returned for voice channels with a provided interval.","format":"double","example":50},"total_hold_duration":{"type":"number","description":"The total call hold duration, in seconds. Returned for voice channels with a provided interval.","format":"double","example":3},"total_wrap_up_duration":{"type":"number","description":"The total wrap-up call duration, in seconds. Returned for voice channels with a provided interval.","format":"double","example":78},"total_queue_wait_duration":{"type":"number","description":"The total queue wait duration, in seconds. Returned for voice channels with a provided interval.","format":"double","example":56},"total_abandoned_duration":{"type":"number","description":"The total duration of abandoned calls, in seconds. Returned for voice channels with a provided interval.","format":"double","example":8},"total_outbound_answer_duration":{"type":"number","description":"The total outbound voice call duration, in seconds. It returns for voice channels with a provided interval.","format":"double","example":8},"total_outbound_hold_duration":{"type":"number","description":"The total outbound voice call hold duration, in seconds. It returns for voice channels with a provided interval.","format":"double","example":8},"total_outbound_wrap_up_duration":{"type":"number","description":"The total outbound wrap-up voice call duration, in seconds. It returns for voice channels with a provided interval.","format":"double","example":78},"average_outbound_answer_duration":{"type":"number","description":"The average outbound voice call duration, in seconds. It returns for voice channels with a provided interval.","format":"double","example":8},"average_outbound_hold_duration":{"type":"number","description":"The average outbound voice call hold duration, in seconds. It returns for voice channels with a provided interval.","format":"double","example":8},"average_outbound_wrap_up_duration":{"type":"number","description":"The average outbound wrap-up voice call duration, in seconds. It returns for voice channels with a provided interval.","format":"double","example":78}},"description":"Metrics for voice channel engagements. Includes call durations, abandoned calls, outbound calls, and interval data when an interval parameter is provided.","deprecated":true},"video":{"type":"object","properties":{"total_declined":{"type":"integer","description":"The total number of declined video calls.","format":"int64","example":1},"total_missed":{"type":"integer","description":"The total number of missed video calls.","format":"int64","example":1},"average_talking_duration":{"type":"number","description":"The average video call duration, in seconds.","format":"double","example":11.8},"longest_talking_duration":{"type":"number","description":"The longest video call duration, in seconds.","format":"double","example":11.8},"shortest_talking_duration":{"type":"number","description":"The shortest video call duration, in seconds.","format":"double","example":11.8},"average_wrap_up_duration":{"type":"number","description":"The average wrap-up video call, in seconds.","format":"double","example":11.8},"longest_wrap_up_duration":{"type":"number","description":"The longest wrap-up video call, in seconds.","format":"double","example":11.8},"shortest_wrap_up_duration":{"type":"number","description":"The shortest wrap-up video call, in seconds.","format":"double","example":11.8}},"description":"Metrics for video channel engagements. Includes call durations, abandoned calls, service level, and interval data when an interval parameter is provided."},"chat":{"type":"object","properties":{"total_sent":{"type":"integer","description":"The total number of sent chat messages.","format":"int64","example":1},"average_sent":{"type":"number","description":"The average number of sent chat messages.","format":"double","example":11.8},"total_abandoned":{"type":"integer","description":"The total number of abandoned chat messages.","format":"int64","example":1},"total_auto_closed":{"type":"integer","description":"The total number of auto-closed chat messages.","format":"int64","example":1},"total_released":{"type":"integer","description":"The total number of released chat messages.","format":"int64","example":1},"total_overflowed":{"type":"integer","description":"The total number of overflowed chat messages.","format":"int64","example":1},"upgraded_to_voice_call":{"type":"integer","description":"The total number of chats that are upgraded to voice calls.","format":"int64","example":1},"upgraded_to_video_call":{"type":"integer","description":"The total number of chats that are upgraded to video calls.","format":"int64","example":1},"average_messaging_duration":{"type":"number","description":"The average chat duration, in seconds.","format":"double","example":11.8},"longest_messaging_duration":{"type":"number","description":"The longest chat duration, in seconds.","format":"double","example":11.8},"shortest_messaging_duration":{"type":"number","description":"The shortest chat duration, in seconds.","format":"double","example":11.8},"average_waiting_duration":{"type":"number","description":"The average chat waiting duration, in seconds.","format":"double","example":11.8},"shortest_waiting_duration":{"type":"number","description":"The shortest chat waiting duration, in seconds.","format":"double","example":11.8},"longest_waiting_duration":{"type":"number","description":"The longest chat waiting duration, in seconds.","format":"double","example":11.8},"average_agent_first_message_speed":{"type":"number","description":"The shortest agent first chat message speed, in seconds.","format":"double","example":11.8},"shortest_agent_first_message_speed":{"type":"number","description":"The shortest agent first chat message speed, in seconds.","format":"double","example":11.8},"longest_agent_first_message_speed":{"type":"number","description":"The longest agent first chat message speed, in seconds.","format":"double","example":11.8}},"description":"Metrics for chat channel engagements. Use the `messaging` channel with `channel_sources=web_chat,in_app_chat` instead.","deprecated":true},"sms":{"type":"object","properties":{"total_sent":{"type":"integer","description":"The total number of sent SMS messages.","format":"int64","example":1},"average_sent":{"type":"number","description":"The average number of sent SMS messages.","format":"double","example":11.8},"total_abandoned":{"type":"integer","description":"The total number of abandoned SMS messages.","format":"int64","example":1},"total_auto_closed":{"type":"integer","description":"The total number of auto-closed SMS messages.","format":"int64","example":1},"total_released":{"type":"integer","description":"The total number of released SMS messages.","format":"int64","example":1},"total_overflowed":{"type":"integer","description":"The total number of overflowed SMS messages.","format":"int64","example":1},"upgraded_to_voice_call":{"type":"integer","description":"The total number of SMS engagements that are upgraded to voice calls.","format":"int64","example":1},"upgraded_to_video_call":{"type":"integer","description":"The total number of SMS engagements that are upgraded to video calls.","format":"int64","example":1},"inbound_average_messaging_duration":{"type":"number","description":"The average sms messaging duration, in seconds.","format":"double","example":11.8},"inbound_longest_messaging_duration":{"type":"number","description":"The longest sms messaging duration, in seconds.","format":"double","example":11.8},"inbound_shortest_messaging_duration":{"type":"number","description":"The shortest sms messaging duration, in seconds.","format":"double","example":11.8},"inbound_average_waiting_duration":{"type":"number","description":"The average sms waiting duration, in seconds.","format":"double","example":11.8},"inbound_shortest_waiting_duration":{"type":"number","description":"The shortest sms waiting duration, in seconds.","format":"double","example":11.8},"inbound_longest_waiting_duration":{"type":"number","description":"The longest sms waiting duration, in seconds.","format":"double","example":11.8},"average_agent_first_message_speed":{"type":"number","description":"The shortest agent first sms message speed, in seconds.","format":"double","example":11.8},"shortest_agent_first_message_speed":{"type":"number","description":"The shortest agent first sms message speed, in seconds.","format":"double","example":11.8},"longest_agent_first_message_speed":{"type":"number","description":"The longest agent first sms message speed, in seconds.","format":"double","example":11.8},"total_outbound":{"type":"integer","description":"The total number of outbound sms engagements.","format":"int64","example":1},"total_outbound_answer_duration":{"type":"number","description":"The total SMS outbound duration, in seconds.","format":"double","example":8},"total_outbound_wrap_up_duration":{"type":"number","description":"The total SMS outbound wrap-up duration, in seconds.","format":"double","example":78},"average_outbound_answer_duration":{"type":"number","description":"The average SMS outbound duration, in seconds.","format":"double","example":8},"average_outbound_wrap_up_duration":{"type":"number","description":"The average SMS outbound wrap-up duration, in seconds.","format":"double","example":78}},"description":"Metrics for SMS channel engagements. Use the `messaging` channel with `channel_sources=sms` instead.","deprecated":true},"messaging":{"type":"object","properties":{"channel_sources":{"type":"array","description":"The channel's source. \n* `in_app_chat` - Only applies to messaging channel.  \n* `web_chat` - Only applies to messaging channel. \n* `sms` - Only applies to messaging channel.\n* `facebook_messenger` - Only applies to messaging channel.\n* `whatsapp` - Only applies to messaging channel.","items":{"type":"string","example":"web_chat,in_app_chat","enum":["web_chat","in_app_chat","sms","facebook_messenger","whatsapp"]}},"total_sent":{"type":"integer","description":"The total number of sent messaging messages, including `web_chat`, `in_app_chat`, and `sms` .","format":"int64","example":1},"average_sent":{"type":"number","description":"The average number of sent messaging messages, including `web_chat`, `in_app_chat`, and `sms` .","format":"double","example":11.8},"total_abandoned":{"type":"integer","description":"The total number of abandoned messaging messages, including `web_chat`, `in_app_chat`, and `sms` .","format":"int64","example":1},"total_auto_closed":{"type":"integer","description":"The total number of auto-closed messaging messages, including `web_chat`, `in_app_chat`, and `sms` .","format":"int64","example":1},"total_released":{"type":"integer","description":"The total number of released messaging messages, including `web_chat`, `in_app_chat`, and `sms` .","format":"int64","example":1},"total_overflowed":{"type":"integer","description":"The total number of overflowed messaging messages, including `web_chat`, `in_app_chat`, and `sms` .","format":"int64","example":1},"upgraded_to_voice_call":{"type":"integer","description":"The total number of messaging engagements that are upgraded to voice calls, including `web_chat`, `in_app_chat`, and `sms` .","format":"int64","example":1},"upgraded_to_video_call":{"type":"integer","description":"The total number of messaging engagements that are upgraded to video calls, including `web_chat`, `in_app_chat`, and `sms` .","format":"int64","example":1},"inbound_average_messaging_duration":{"type":"number","description":"The average messaging(web_chat/in_app_chat/sms) message duration, in seconds, including `web_chat`, `in_app_chat`, and `sms` .","format":"double","example":11.8},"inbound_longest_messaging_duration":{"type":"number","description":"The longest messaging(web_chat/in_app_chat/sms) message duration, in seconds, including `web_chat`, `in_app_chat`, and `sms` .","format":"double","example":11.8},"inbound_shortest_messaging_duration":{"type":"number","description":"The shortest messaging(web_chat/in_app_chat/sms) message duration, in seconds, including `web_chat`, `in_app_chat`, and `sms` .","format":"double","example":11.8},"inbound_average_waiting_duration":{"type":"number","description":"The average messaging waiting duration in seconds, including `web_chat`, `in_app_chat`, and `sms` .","format":"double","example":11.8},"inbound_shortest_waiting_duration":{"type":"number","description":"The shortest messaging waiting duration in seconds, including `web_chat`, `in_app_chat`, and `sms` .","format":"double","example":11.8},"inbound_longest_waiting_duration":{"type":"number","description":"The longest messaging waiting duration in seconds, including `web_chat`, `in_app_chat`, and `sms` .","format":"double","example":11.8},"average_agent_first_message_speed":{"type":"number","description":"The shortest agent of the first messaging message's speed in seconds, including `web_chat`, `in_app_chat`, and `sms` .","format":"double","example":11.8},"shortest_agent_first_message_speed":{"type":"number","description":"The shortest agent of the first messaging message's speed, in seconds, including `web_chat`, `in_app_chat`, and `sms` .","format":"double","example":11.8},"longest_agent_first_message_speed":{"type":"number","description":"The longest agent of the first messaging message's speed, in seconds, including `web_chat`, `in_app_chat`, and `sms` .","format":"double","example":11.8},"total_outbound":{"type":"integer","description":"The total number of outbound SMS messaging engagements.","format":"int64","example":1},"total_outbound_answer_duration":{"type":"number","description":"The total outbound SMS messaging duration, in seconds.","format":"double","example":8},"total_outbound_wrap_up_duration":{"type":"number","description":"The total outbound SMS messaging wrap-up duration, in seconds.","format":"double","example":78},"average_outbound_answer_duration":{"type":"number","description":"The average outbound SMS messaging duration, in seconds.","format":"double","example":8},"average_outbound_wrap_up_duration":{"type":"number","description":"The average outbound SMS messaging wrap-up duration, in seconds.","format":"double","example":78}},"description":"Metrics for messaging channel engagements, including web chat, in-app chat, SMS, Facebook Messenger, and WhatsApp. Includes message counts, durations, agent response times, and interval data when an interval parameter is provided."},"email":{"type":"object","properties":{"channel_sources":{"type":"array","description":"The channel's source. \n* `email_address` - Only applies to email channel.","items":{"type":"string","example":"email_address","enum":["email_address"]}},"total_offers":{"type":"integer","description":"The total number of offers' email (`email_address`) engagements.","format":"int64","example":1},"total_offers_acd":{"type":"integer","description":"The total number of offers ACD email (`email_address`) engagements.","format":"int64","example":1},"total_offers_non_acd":{"type":"integer","description":"The total number of offers non-ACD email (`email_address`) engagements.","format":"int64","example":1},"total_offers_answered":{"type":"integer","description":"The total number of offers-answered email (`email_address`) engagements.","format":"int64","example":1},"total_offers_missed":{"type":"integer","description":"The total number of offers-missed email (`email_address`) engagements.","format":"int64","example":1},"total_offers_declined":{"type":"integer","description":"The total number of offers-declined email (`email_address`) engagements.","format":"int64","example":1},"total_auto_closed":{"type":"integer","description":"The total number of auto-closed email (`email_address`) engagements.","format":"int64","example":1},"total_transferred_out_within_queue":{"type":"integer","description":"The total number of transferred-out-within-queue email (`email_address`) engagements.","format":"int64","example":1},"total_transferred_out_of_queue":{"type":"integer","description":"The total number of transferred-out-of-queue email (`email_address`) engagements.","format":"int64","example":1},"total_transferred_in_within_queue":{"type":"integer","description":"The total number of transferred-in-within-queue email (`email_address`) engagements.","format":"int64","example":1},"total_transferred_in_outside_queue":{"type":"integer","description":"The total number of transferred-in-out-of-queue email (`email_address`) engagements.","format":"int64","example":1},"inbound_average_messaging_duration":{"type":"number","description":"The average email (`email_address`) engagement duration, in seconds.","format":"double","example":11.8},"inbound_longest_messaging_duration":{"type":"number","description":"The longest email (`email_address`) engagement duration, in seconds.","format":"double","example":11.8},"inbound_shortest_messaging_duration":{"type":"number","description":"The shortest email (`email_address`) engagement duration, in seconds.","format":"double","example":11.8},"inbound_average_agent_first_reply_duration":{"type":"number","description":"The average reply duration of the first-agent-in email (`email_address`) engagement, in seconds.","format":"double","example":11.8},"inbound_longest_agent_first_reply_duration":{"type":"number","description":"The longest reply duration of the first agent in email (`email_address`) engagement, in seconds.","format":"double","example":11.8},"inbound_shortest_agent_first_reply_duration":{"type":"number","description":"The shortest reply duration of the first agent in email (`email_address`) engagement, in seconds.","format":"double","example":11.8},"inbound_average_agent_reply_duration":{"type":"number","description":"The average reply duration of email (`email_address`) engagement agents, excluding the response duration of the first agent, in seconds.","format":"double","example":11.8},"inbound_longest_agent_reply_duration":{"type":"number","description":"The longest reply duration of email (`email_address`) engagement agents, excluding the response duration of the first agent, in seconds.","format":"double","example":11.8},"inbound_shortest_agent_reply_duration":{"type":"number","description":"The shortest reply duration of email (`email_address`) engagement agents, excluding the response duration of the first agent, in seconds.","format":"double","example":11.8},"inbound_average_inactive_duration":{"type":"number","description":"The average inactive duration in email (`email_address`) engagement, excluding the response duration of the first agent, in seconds.","format":"double","example":11.8},"inbound_longest_inactive_duration":{"type":"number","description":"The longest inactive duration in email (`email_address`) engagement, excluding the response duration of the first agent, in seconds.","format":"double","example":11.8},"inbound_shortest_inactive_duration":{"type":"number","description":"The shortest inactive duration in email (`email_address`) engagement, excluding the response duration of the first agent, in seconds.","format":"double","example":11.8}},"description":"Metrics for email channel engagements. Includes offer counts, transfer counts, reply durations, inactive durations, and interval data when an interval parameter is provided."}},"description":"Information about the queue report."}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `300` <br>\n The time and date must be in yyyy-mm-dd. or ISO 8601 format (yyyy-MM-dd'T'HH:mm:ss'Z' or yyyy-MM-dd'T'HH:mm:ss'TZD'). <br>\n**Error Code:** `300` <br>\n The requested report exceeds the 1-month limit. <br>\n**Error Code:** `300` <br>\n Timezone does not exist: {timezone}. <br>\n**Error Code:** `300` <br>\n Only provide report in recent 6 months. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1201` <br>\n Queue does not exist: $queueId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_report:read:admin","contact_center:read:agent_report:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_report:read:admin"],"x-granular-scopes":["contact_center:read:agent_report:admin"]}}},"/contact_center/analytics/dataset/historical/agent_performance":{"get":{"tags":["Reports V2 (CX Analytics)"],"summary":"List historical agent performance dataset data","description":"Generate a list of agent performance dataset raw data.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_report:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:dataset_agent_performance:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `HEAVY`","operationId":"Listhistoricalagentperformancedatasetdata","parameters":[{"name":"from","in":"query","description":"Use the `start_time_from` field.\n\n The start time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format to pull all agents that started after this date and time.\n\n The response only includes one month's worth of data. If there is no specified start date, the API returns data from the past 24 hours.","required":false,"schema":{"type":"string","example":"2021-12-10T00:00:00Z","deprecated":true}},{"name":"to","in":"query","description":"Use the `start_time_to` field. Required only when specifying the `from` parameter. \n\nThe end time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format, same as the `from` parameter. \n\nPulls all agents that started in the given `from` and `to` time periods.","required":false,"schema":{"type":"string","example":"2021-12-10T00:15:00Z","deprecated":true}},{"name":"start_time_from","in":"query","description":"The start time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format to pull all agents that started after this date and time.\n\n The response only includes one month's worth of data. If there is no specified start date, the API returns data from the past 24 hours. This field is the same as the `from` field.\n\n**The `from` field will be obsolete later, so start using this field instead.**\n","required":false,"schema":{"type":"string","example":"2021-12-10T00:00:00Z"}},{"name":"start_time_to","in":"query","description":"Required only when specifying a `start_time_from` parameter.\n\nThe end time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format, same as the `start_time_from` parameter.\n\nPulls all agents that started in the given `start_time_from` and `start_time_to` time periods.\n\nThis field is the same as the `to` field. **The `to` field will be obsolete later, so start using this field instead.**\n","required":false,"schema":{"type":"string","example":"2021-12-10T00:15:00Z"}},{"name":"end_time_from","in":"query","description":"The end time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format to pull all agents that ended after this date and time. \n\nThe response only includes one month's worth of data. If there is no specified start date, the API returns data from the past 24 hours.\n","required":false,"schema":{"type":"string","example":"2021-12-10T00:00:00Z"}},{"name":"end_time_to","in":"query","description":"Required only when specifying an `end_time_from` parameter.\n\nThe end time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format, same as the `end_time_from` parameter.\n\nReturns all agents that ended within the specified `end_time_from` and `end_time_to` time range.","required":false,"schema":{"type":"string","example":"2021-12-10T00:15:00Z"}},{"name":"sort_order","in":"query","description":"Define the order that records are returned based on the start time or end time field. \n\nIf you use `from/to` or `start_time_from/start_time_to`, the records are sorted by their start time. \n\nIf you use `end_time_from/end_time_to`, the records will be sorted by their end time.\n* asc - Sort records in ascending order.\n* desc - Sort records in descending order.","required":false,"schema":{"type":"string","example":"desc","default":"desc","enum":["asc","desc"]}},{"name":"timezone","in":"query","description":"The [timezone ID](/docs/api/references/abbreviations/#timezones) to query the start time and end time in the query.\n. The default is `UTC`.","required":false,"schema":{"type":"string","example":"America/Los_Angeles"}},{"name":"engagement_id","in":"query","description":"The engagement's ID array.","required":false,"schema":{"type":"array","example":["bgdiH2SPQXmiD30nUiA4uA"],"items":{"type":"string"}}},{"name":"agent_leg_id","in":"query","description":"The agent's leg ID array.","required":false,"schema":{"type":"array","example":["ZWR01A4AF5E1ED183F1BEE02C2F29EE723F"],"items":{"type":"string"}}},{"name":"direction","in":"query","description":"The engagement's direction.","required":false,"schema":{"type":"string","example":"inbound","enum":["inbound","outbound"]}},{"name":"queue_id","in":"query","description":"The queue's specific ID.","required":false,"schema":{"type":"array","example":["FRDFsxkcQeCnhR5eMBdOHw"],"items":{"type":"string"}}},{"name":"user_id","in":"query","description":"The ID of the agent who is set up on the agent profile.","required":false,"schema":{"type":"array","example":["FRDFsxkcQeCnhR5eMBdOHw"],"items":{"type":"string"}}},{"name":"team_id","in":"query","description":"The specific team's ID.","required":false,"schema":{"type":"array","example":["FRDFsxkcQeCnhR5eMBdOHw"],"items":{"type":"string"}}},{"name":"channel","in":"query","description":"The channel that the engagement contains.\n* `voice`\n* `video`\n* `messaging`\n* `email`\n* `work_item`","required":false,"schema":{"type":"array","example":["messaging"],"items":{"type":"string"},"enum":["voice","video","messaging","email","work_item"]}},{"name":"channel_source","in":"query","description":"The source that the engagement contains.\n* `voice` - Only applies to voice channel. \n* `in_app_video` - Only applies to video channel.\n* `kiosk_video` - Only applies to video channel. \n* `web_video` - Only applies to video channel. \n* `in_app_chat` - Only applies to messaging channel.\n* `in_video_chat` - Only applies to messaging channel.\n* `web_chat` - Only applies to messaging channel.\n* `sms` - Only applies to messaging channel.\n* `facebook_messenger` - Only applies to messaging channel.\n* `instagram` - Only applies to messaging channel.\n* `team_chat` - Only applies to messaging channel.\n* `whats_app` - Only applies to messaging channel.\n* `email_domain` - Only applies to email channel.\n* `api` - Only applies to work_item channel.","required":false,"schema":{"type":"array","example":["in_app_chat"],"items":{"type":"string"},"enum":["voice","in_app_video","kiosk_video","web_video","in_app_chat","in_video_chat","web_chat","sms","facebook_messenger","instagram","team_chat","whats_app","email_domain","api"]}},{"name":"origin_method","in":"query","description":"How an engagement was assigned to the agent.","required":false,"schema":{"type":"string","example":"outbound","enum":["outbound","callback","scheduled_callback","callback_retry","conference","transfer_to_agent","transfer_to_queue","warm_transfer_to_agent","warm_transfer_to_queue","direct_transfer_to_agent","direct_transfer_to_queue","route_to_queue","route_to_agents","switch_to_voice","switch_to_video","invite_agent","takeover","outbound_progressive_dial","outbound_preview_dial","outbound_third_party_dial"]}},{"name":"switch_method","in":"query","description":"What an agent uses to perform a channel switch, including the origin and destination channels.","required":false,"schema":{"type":"string","example":"switch_voice_to_video","enum":["switch_messaging_to_voice","switch_messaging_to_video","switch_voice_to_video","switch_work_item_to_voice","switch_work_item_to_video"]}},{"name":"page_size","in":"query","description":"The number of records returned within a single API call.","required":false,"schema":{"maximum":100,"type":"integer","format":"int32","example":30,"default":30}},{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}}],"responses":{"200":{"description":"Agent performance dataset raw data response.","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"maxLength":100,"type":"string","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":100,"minimum":1,"type":"integer","description":"The number of records returned within a single API call.","example":30,"default":30},"total_records":{"minimum":0,"type":"integer","description":"The total number of all records available across pages.","example":10},"timezone":{"type":"string","description":"The [timezone ID](/docs/api/references/abbreviations/#timezones) to query the start time and end time in the query.\n. The default is `UTC`.","example":"America/Los_Angeles"},"from":{"type":"string","description":"The start time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format to pull all agents that started after this date and time. \n\nThe response only includes one month's worth of data. If there is no specified start date, the API returns data from the past 24 hours.","example":"2021-12-10T00:00:00Z"},"to":{"type":"string","description":"Required only when specifying the `from` parameter.\n\nThe end time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format, same as the `from` parameter. \n\nPulls all agents that started in the given `from` and `to` time periods.","example":"2021-12-10T00:00:00Z"},"users":{"type":"array","items":{"type":"object","properties":{"engagement_id":{"type":"string","description":"The engagement's ID.","example":"reRAiabVQSqpXxJVDbsy2Q"},"start_time":{"type":"string","description":"The agent date and time when the engagement started, in ISO 8601 format, either `yyyy-MM-dd'T'HH:mm:ss'Z'` or `yyyy-MM-dd'T'HH:mm:ss'TZD'`. `start_time` will be the time according to the timezone indicated by the user. If no timezone is provided, `start_time` will be in UTC.","example":"2021-12-10T00:00:00Z"},"end_time":{"type":"string","description":"The agent date and time when the engagement ended, in ISO 8601 format, either `yyyy-MM-dd'T'HH:mm:ss'Z'` or `yyyy-MM-dd'T'HH:mm:ss'TZD'`. `start_time` will be the time according to the timezone indicated by the user. If no timezone is provided, `end_time` will be in UTC.","example":"2021-12-10T00:00:00Z"},"direction":{"type":"string","description":"The engagement's direction.","example":"inbound","enum":["inbound","outbound"]},"user_id":{"type":"string","description":"The ID of the agent who is set up on the agent profile.","example":"reRAiabVQSqpXxJVDbsy2Q"},"user_name":{"type":"string","description":"The name of the agent who is set up on the agent profile.","example":"user_name_example"},"channel":{"type":"string","description":"The channel that the engagement contains.","example":"voice","enum":["voice","video","messaging","email","work_item"]},"channel_source":{"type":"string","description":"The source that the engagement contains.\n* `voice` - Only applies to voice channel. \n* `in_app_video` - Only applies to video channel.\n* `kiosk_video` - Only applies to video channel. \n* `web_video` - Only applies to video channel. \n* `in_app_chat` - Only applies to messaging channel.\n* `in_video_chat` - Only applies to messaging channel.\n* `web_chat` - Only applies to messaging channel.\n* `sms` - Only applies to messaging channel.\n* `facebook_messenger` - Only applies to messaging channel.\n* `instagram` - Only applies to messaging channel.\n* `team_chat` - Only applies to messaging channel.\n* `whats_app` - Only applies to messaging channel.\n* `email_domain` - Only applies to email channel.\n* `api` - Only applies to work_item channel.","example":"voice","enum":["voice","in_app_video","kiosk_video","web_video","in_app_chat","in_video_chat","web_chat","sms","facebook_messenger","instagram","team_chat","whats_app","email_domain","api"]},"queue_id":{"type":"string","description":"The queue's specific ID.","example":"FRDFsxkcQeCnhR5eMBdOHw"},"queue_name":{"type":"string","description":"The queue's specific name.","example":"jack_queue"},"team_id":{"type":"string","description":"The team's specific ID.","example":"FRDFsxkcQeCnhR5eMBdOHw"},"team_name":{"type":"string","description":"The team's specific name.","example":"jack_team"},"handled_count":{"type":"integer","description":"The number of inbound - including callback - and outbound engagements handled by the queue.","example":1},"handle_duration":{"type":"number","description":"The amount of time agents spent handling engagements, in milliseconds.","example":123},"direct_transfer_count":{"type":"integer","description":"The number of direct transfers initiated.","example":1},"warm_transfer_initiated_count":{"type":"integer","description":"The number of voice or video engagements an agent answered and then warm transferred with another participant with or without fully transferring the engagement.","example":1},"warm_transfer_completed_count":{"type":"integer","description":"The number of voice or video engagements an agent answered and then warm transferred with another participant and then fully transferred the engagements.","example":1},"transfer_initiated_count":{"type":"integer","description":"The number of transfers an agent initiated, including warm and direct transfers for voice and video channels, and all transfers for messaging and email channels with no distinction between warm and direct.","example":1},"transfer_completed_count":{"type":"integer","description":"The number of transfers an agent completed, including warm and direct transfers for voice and video channels, and all transfers for messaging and email channels with no distinction between warm and direct.","example":1},"warm_conference_count":{"type":"integer","description":"The number of warm conferences initiated.","example":1},"agent_offered_count":{"type":"integer","description":"The total number of engagements offered to an agent.","example":1},"agent_refused_count":{"type":"integer","description":"A number of times an agent missed or declined an engagement.","example":2},"agent_missed_count":{"type":"integer","description":"The total number of agent refused engagements the agent missed.","example":3},"ring_disconnect_count":{"type":"integer","description":"The count of all engagements that have been routed to a rung an agent, but the connection to this specific agent is not completed.","example":1},"agent_declined_count":{"type":"integer","description":"The total number of agent refused engagements that the agent declined.","example":1},"agent_message_sent_count":{"type":"integer","description":"A count of all messages sent by an agent for a unique engagement ID.","example":1},"hold_count":{"type":"integer","description":"The number of times that a consumer was placed on hold.","example":1},"conversation_duration":{"type":"number","description":"The amount of time an agent spent in conversation with an engagement and at least one additional agent, in milliseconds.","example":123},"perview_duration":{"type":"number","description":"The amount of time an agent spent previewing an engagement, in milliseconds.","example":123},"conference_duration":{"type":"number","description":"The amount of time an agent spent in conversation with an engagement and at least one additional agent, in milliseconds.","example":123},"conference_count":{"type":"integer","description":"The number of conferences that occurred.","example":1},"hold_duration":{"type":"number","description":"The amount of time that a consumer was placed on hold, in milliseconds. NOTE: A call may have multiple hold times.","example":123},"wrap_up_duration":{"type":"number","description":"The amount of time agents spent completing engagement wrap-up, in milliseconds.","example":123},"inbound_handled_count":{"type":"integer","description":"The number of inbound engagements offered to and answered by an agent.","example":1},"outbound_handle_duration":{"type":"number","description":"The amount of time an agent spent handling an outbound engagement, in milliseconds.","example":123},"warm_conference_duraton":{"type":"number","description":"The amount of time spent on warm conferences, in milliseconds.","example":123},"warm_transfer_duration":{"type":"number","description":"The amount of time spent on warm transfers, in milliseconds.","example":123},"ring_duration":{"type":"number","description":"The amount of time between when an engagement is assigned to an agent and the agent answered, missed, or declined the engagement, in milliseconds.","example":123},"agent_first_response_duration":{"type":"number","description":"The amount of time it takes for an agent working a messaging channel to send the first message to a customer, in milliseconds.","example":123},"dial_duration":{"type":"number","description":"The amount of time spent dialing the customer, in milliseconds.","example":123},"inbound_conversation_duration":{"type":"number","description":"The amount of time that an agent spent on an inbound engagement in communication with the consumer, in milliseconds.","example":123},"inbound_handle_duration":{"type":"number","description":"The amount of time an agent spent handling an inbound engagement, in milliseconds.","example":123},"outbound_handled_count":{"type":"integer","description":"The number of outbound engagements offered to and answered by an agent.","example":1},"outbound_conversation_duration":{"type":"number","description":"The amount of time that an agent spent on an outbound engagement communicating with a consumer, in milliseconds.","example":123},"third_party_dialer_wait_duration":{"type":"number","description":"The amount of time an agent waited after being connected before the consumer joined the call. This metric only applies to third-party dialer scenarios.","example":123},"channel_switch_count":{"type":"number","description":"The number of channel switches successfully completed by an agent.","example":1},"dnis_to":{"type":"string","description":"The original number that was dialed for an engagement.","example":"+12095551212"},"origin_method":{"type":"string","description":"How an engagement was assigned to the agent.","example":"outbound","enum":["outbound","callback","scheduled_callback","callback_retry","conference","transfer_to_agent","transfer_to_queue","warm_transfer_to_agent","warm_transfer_to_queue","direct_transfer_to_agent","direct_transfer_to_queue","route_to_queue","route_to_agents","switch_to_voice","switch_to_video","invite_agent","takeover","outbound_progressive_dial","outbound_preview_dial","outbound_third_party_dial"]},"agent_leg_id":{"type":"string","description":"The unique identifier generated for each agent leg.","example":"ZWR01A4AF5E1ED183F1BEE02C2F29EE723F"},"parked_count":{"type":"integer","description":"The number of times that an engagement was parked.","example":1},"switch_method":{"type":"string","description":"What an agent uses to perform a channel switch, including the origin and destination channels.","example":"switch_voice_to_video","enum":["switch_messaging_to_voice","switch_messaging_to_video","switch_voice_to_video","switch_work_item_to_voice","switch_work_item_to_video"]},"ani_from":{"type":"string","description":"The phone number that an engagement originated from.","example":"+19135551212"},"focus_duration":{"type":"number","description":"The amount of time an agent spent actively clicked into an engagement or speaking via the voice or video channel with a consumer, in milliseconds.","example":123}}}},"start_time_from":{"type":"string","description":"The start time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format to pull all agents that started after this date and time. \n\nThe response only includes one month's worth of data. If there is no specified start date, the API returns data from the past 24 hours.","example":"2021-12-10T00:00:00Z"},"start_time_to":{"type":"string","description":"Required only when specifying the `start_time_from` parameter.\n\nThe start time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format, same as the `start_time_from` parameter. \n\nPulls all agents that started in the given `start_time_from` and `start_time_to` time periods.","example":"2021-12-10T00:00:00Z"},"end_time_to":{"type":"string","description":"Required only when specifying the `end_time_from` parameter.\n\nThe end time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format, same as the `end_time_from` parameter. \n\nPulls all agents that ended in the given `end_time_from` and `end_time_to` time periods.","example":"2021-12-10T00:00:00Z"},"end_time_from":{"type":"string","description":"The end time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format to pull all agents that ended after this date and time. \n\nThe response only includes one month's worth of data. If there is no specified end date, the API returns data from the past 24 hours.","example":"2021-12-10T00:00:00Z"}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n "},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_report:read:admin","contact_center:read:dataset_agent_performance:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_report:read:admin"],"x-granular-scopes":["contact_center:read:dataset_agent_performance:admin"]}}},"/contact_center/analytics/dataset/historical/agent_timecard":{"get":{"tags":["Reports V2 (CX Analytics)"],"summary":"List historical agent timecard dataset data","description":"Generate a list of agent timecard dataset raw data.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_report:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:dataset_agent_timecard:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `HEAVY`","operationId":"Listhistoricalagenttimecarddatasetdata","parameters":[{"name":"from","in":"query","description":"Use the `start_time_from` field. The start time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format to pull the agent status for all agents that started after this date and time. \n\nThe response only includes one month's worth of data. If there is no specified start date, the API returns data from the past 24 hours.","required":false,"schema":{"type":"string","example":"2021-12-10T00:00:00Z","deprecated":true}},{"name":"to","in":"query","description":"Use the `start_time_to` field. Required only when specifying the `from` parameter.\n\nThe end time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format, the same format as the `from` parameter.\n\nPulls the agent status for all agents that started in the given `from` and `to` time periods.","required":false,"schema":{"type":"string","example":"2021-12-10T00:15:00Z","deprecated":true}},{"name":"start_time_from","in":"query","description":"The start time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format to pull the agent status for all agents that started after this date and time. \n\nThe response only includes one month's worth of data. If there is no specified start date, the API returns data from the past 24 hours.\n\nThis field is the same as the `from` field. **The `from` field will be obsolete later. Start using this field instead.** ","required":false,"schema":{"type":"string","example":"2021-12-10T00:00:00Z"}},{"name":"start_time_to","in":"query","description":"Required only when specifying the `start_time_from` parameter.\n\nThe end time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format, same as the `start_time_from` parameter.\n\nPulls the agent status for all agents that started in the given `start_time_from` and `start_time_to` time periods.\n\nThis field is the same as the `to` field. **The `to` field will be obsolete later. Start using this field instead.** ","required":false,"schema":{"type":"string","example":"2021-12-10T00:15:00Z"}},{"name":"end_time_from","in":"query","description":"The end time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format to pull the agent status for all agents that ended after this date and time. \n\nThe response only includes one month's worth of data. If there is no specified start date, the API returns data from the past 24 hours. ","required":false,"schema":{"type":"string","example":"2021-12-10T00:00:00Z"}},{"name":"end_time_to","in":"query","description":"Required only when specifying the `end_time_from` parameter.\n\nThe end time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format, same as the `end_time_from` parameter.\n\nPulls the agent status for all agents that ended in the given `end_time_from` and `end_time_to` time periods. ","required":false,"schema":{"type":"string","example":"2021-12-10T00:15:00Z"}},{"name":"timezone","in":"query","description":"The [timezone ID](/docs/api/references/abbreviations/#timezones) to use for the start time and end time in the query. The default is `UTC`.","required":false,"schema":{"type":"string","example":"America/Los_Angeles"}},{"name":"sort_order","in":"query","description":"Define the order in which records are returned based on the start time or end time field. \n\nIf you use `from' or 'to` or `start_time_from' or 'start_time_to`, the records will be sorted by their start time. \n\nIf you use `end_time_from' or 'end_time_to`, the records will be sorted by their end time.\n* asc - Sort records in ascending order.\n* desc - Sort records in descending order.","required":false,"schema":{"type":"string","example":"desc","default":"desc","enum":["asc","desc"]}},{"name":"user_id","in":"query","description":"The ID of the agent set up on the agent profile.","required":false,"schema":{"type":"array","example":["FRDFsxkcQeCnhR5eMBdOHw"],"items":{"type":"string"}}},{"name":"team_id","in":"query","description":"The team's specific ID.","required":false,"schema":{"type":"array","example":["FRDFsxkcQeCnhR5eMBdOHw"],"items":{"type":"string"}}},{"name":"agent_countries","in":"query","description":"Two-letter country [ID](/docs/api/references/abbreviations/#countries).","required":false,"schema":{"type":"array","example":["US"],"items":{"type":"string"}}},{"name":"page_size","in":"query","description":"The number of items returned per page.","required":false,"schema":{"maximum":100,"type":"integer","format":"int32","example":30,"default":30}},{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token returns whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}}],"responses":{"200":{"description":"Agent timecard dataset raw data response.","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"maxLength":100,"type":"string","description":"Use the next page token to paginate through large result sets. A next page token returns whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":100,"minimum":1,"type":"integer","description":"The number of records returned within a single API call.","example":30,"default":30},"total_records":{"minimum":0,"type":"integer","description":"The total number of all the records available across pages.","example":10},"timezone":{"type":"string","description":"The [timezone ID](/docs/api/references/abbreviations/#timezones) to use for the start time and end time in the query. The default is `UTC`.","example":"America/Los_Angeles"},"from":{"type":"string","description":"The start time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format to pull the agent status for all agents that started after this date and time. \n\nThe response only includes one month's worth of data. If there is no specified start date, the API returns data from the past 24 hours.","example":"2021-12-10T00:00:00Z"},"to":{"type":"string","description":"Required only when specifying the `from` parameter.\n\nThe end time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format, same as the `from` parameter.\n\nPulls the agent status for all agents that started in the given `from` and `to` time periods.","example":"2021-12-10T00:00:00Z"},"users":{"type":"array","items":{"type":"object","properties":{"work_session_id":{"type":"string","description":"The unique identifier of an agent's work session.","example":"reRAiabVQSqpXxJVDbsy2Q"},"start_time":{"type":"string","description":"The start timestamp of an agent's work session.","example":"2021-12-10T00:00:00Z"},"end_time":{"type":"string","description":"The end timestamp of an agent's work session.","example":"2021-12-10T00:00:00Z"},"user_id":{"type":"string","description":"The ID of the agent set up on the agent profile.","example":"reRAiabVQSqpXxJVDbsy2Q"},"user_name":{"type":"string","description":"The first and last name of the agent set up on the agent profile.","example":"agent_name_example"},"user_status":{"type":"string","description":"The status of an agent during a work session.","example":"not_ready"},"user_sub_status":{"type":"string","description":"The sub status of the agent who was in **Ready**, **Not Ready**, or **Occupied** status.","example":"launch time"},"team":{"type":"object","properties":{"team_id":{"type":"string","description":"The team's specific ID on the Zoom platform that allows for viewing reports as a group of agents.","example":"team_id_example"},"team_name":{"type":"string","description":"The specific name of a team on the Zoom platform that allows for viewing reports as a group of agents.","example":"team_name_example"}},"description":"All teams related during the work session."},"ready_duration":{"type":"number","description":"The time an agent spent in **Ready** status during an agent work session, in milliseconds.","example":123},"occupied_duration":{"type":"number","description":"The time an agent spent in **Occupied** status during an agent work session, in milliseconds.","example":234},"not_ready_duration":{"type":"number","description":"The time an agent spent in **Not Ready** status during an agent work session, in milliseconds.","example":123},"work_session_duration":{"type":"number","description":"The time between the start and end of an agents unique work session, in milliseconds.","example":123},"work_session_start_time":{"type":"string","description":"The work session's start time.","example":"2025-12-10T00:00:00Z"},"work_session_end_time":{"type":"string","description":"The work session's end time.","example":"2025-12-12T00:00:00Z"},"client_type":{"type":"string","description":"The type of client application.","example":"client","enum":["client","pwa","crm","web","mobile"]},"agent_country":{"type":"string","description":"Two-letter country [ID](/docs/api/references/abbreviations/#countries).","example":"US"},"ip_address":{"type":"string","description":"The agent's IP address.","example":"192.168.3.4"}}}},"start_time_from":{"type":"string","description":"The start time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format to pull the agent status for all agents that started after this date and time. \n\nThe response only includes one month's worth of data. If there is no specified start date, the API returns data from the past 24 hours.","example":"2021-12-10T00:00:00Z"},"start_time_to":{"type":"string","description":"Required only when specifying the `start_time_from` parameter.\n\nThe start time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format, same as the `start_time_from` parameter.\n\nPulls the agent status for all agents that started in the given `start_time_from` and `start_time_to` time periods.","example":"2021-12-10T00:00:00Z"},"end_time_to":{"type":"string","description":"Required only when specifying the `end_time_from` parameter.\n\nThe end time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format, the same format as the `end_time_from` parameter.\nPulls the agent status for all agents that ended in the given `end_time_from` and `end_time_to` time periods.","example":"2021-12-10T00:00:00Z"},"end_time_from":{"type":"string","description":"The end time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format to pull the agent status for all agents that ended after this date and time. \n\nThe response only includes one month's worth of data. If there is no specified end date, the API returns data from the past 24 hours.","example":"2021-12-10T00:00:00Z"}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n "},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_report:read:admin","contact_center:read:dataset_agent_timecard:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_report:read:admin"],"x-granular-scopes":["contact_center:read:dataset_agent_timecard:admin"]}}},"/contact_center/analytics/dataset/historical/custom_reports/{reportId}/widgets/{widgetId}":{"get":{"tags":["Reports V2 (CX Analytics)"],"summary":"List historical custom report tabular data","description":"Generate a list of tabular data based on the custom report after enabling the API in the CX Analytics.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_report:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:custom_report:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `HEAVY`","operationId":"Listhistoricalcustomreporttabulardata","parameters":[{"name":"reportId","in":"path","description":"The CX Analytics report ID.","required":true,"schema":{"type":"string","example":"GcyNb1T9Tq6lyo4b-ebCNg"}},{"name":"widgetId","in":"path","description":"The tabular widget ID of the CX Analytics report.","required":true,"schema":{"type":"string","example":"AtkB6sHxSjyslNMWL0-8IA"}},{"name":"timezone","in":"query","description":"The call's timezone. The default is UTC.","required":false,"schema":{"type":"string","example":"Asia/Shanghai","default":"UTC"}},{"name":"from","in":"query","description":"The start time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format. \n\n**Note** The overall time range needs to be less than 6 months. If there is no specified start date or end date, the API returns data from the past 30 days.","required":false,"schema":{"type":"string","format":"date-time","example":"2025-12-10T00:00:00Z"}},{"name":"to","in":"query","description":"The end time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format. \n\n**Note** The overall time range needs to be less than 6 months. If there is no specified start date or end date, the API returns data from the past 30 days.","required":false,"schema":{"type":"string","format":"date-time","example":"2025-12-10T00:00:00Z"}},{"name":"page","in":"query","description":"The page number. The default is `1`.","required":false,"schema":{"minimum":1,"type":"integer","example":1,"default":1}},{"name":"page_size","in":"query","description":"The number of records returned in a single API call.","required":false,"schema":{"maximum":300,"type":"integer","format":"int32","example":30,"default":30}}],"responses":{"200":{"description":"Historical custom report tabular data list returned.","content":{"application/json":{"schema":{"type":"object","properties":{"widget_id":{"type":"string","description":"The tabular widget ID of the CX Analytics report.","example":"AtkB6sHxSjyslNMWL0-8IA"},"report_id":{"type":"string","description":"The CX Analytics report ID.","example":"GcyNb1T9Tq6lyo4b-ebCNg"},"timezone":{"type":"string","description":"The call's timezone.","example":"Asia/Shanghai"},"from":{"type":"string","description":"The start time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format.\n\n**Note** The overall time range needs to be less than 6 months.","format":"date-time","example":"2025-12-10T00:00:00Z"},"to":{"type":"string","description":"The end time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format. \n\n**Note** The overall time range needs to be less than 6 months.","format":"date-time","example":"2025-12-10T00:00:00Z"},"page":{"type":"integer","description":"The page number.","example":1},"page_size":{"maximum":300,"type":"integer","description":"The number of records returned in a single API call.","example":30,"default":30},"total_records":{"minimum":0,"type":"integer","description":"The total number of all records available across pages.","example":10},"data":{"type":"array","additionalProperties":true,"description":"The data in the tabular widget format configured on the CX Analytics historical report.","items":{"type":"object","properties":{"field_name":{"type":"string","description":"The field names are dynamic, and could be `user`, `queue`, `team`, or others, depending on the current historical report format. \n\nEnable the API access on the tabular widget. The field names are specified on the API response preview page.","example":"dynamic value"}},"description":"The data format depends on the user-configured tabular widget on the CX Analytics historical report."}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  Input parameter format validation failed. \n\n "},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  The specified widget is not found. \n\n "},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_report:read:admin","contact_center:read:custom_report:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_report:read:admin"],"x-granular-scopes":["contact_center:read:custom_report:admin"]}}},"/contact_center/analytics/dataset/historical/custom_reports/{reportId}/widgets/{widgetId}/schema":{"get":{"tags":["Reports V2 (CX Analytics)"],"summary":"Get historical custom report tabular schema","description":"Generate the schema information for a tabular based on the custom report after enabling API in the CX Analytics.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_report:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:custom_report:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"getHistoricalCustomReportTabularSchema","parameters":[{"name":"reportId","in":"path","description":"The CX Analytics report ID.","required":true,"schema":{"type":"string","example":"GcyNb1T9Tq6lyo4b-ebCNg"}},{"name":"widgetId","in":"path","description":"The CX Analytics report's tabular widget ID.","required":true,"schema":{"type":"string","example":"AtkB6sHxSjyslNMWL0-8IA"}}],"responses":{"200":{"description":"Historical custom report tabular schema returned.","content":{"application/json":{"schema":{"required":["report_id","schema","widget_id"],"type":"object","properties":{"widget_id":{"type":"string","description":"The CX Analytics report's tabular widget ID.","example":"AtkB6sHxSjyslNMWL0-8IA"},"report_id":{"type":"string","description":"The CX Analytics report ID.","example":"GcyNb1T9Tq6lyo4b-ebCNg"},"schema":{"type":"array","description":"The schema for the tabular widget format configured on the CX Analytics historical report.","items":{"required":["field_name","field_type"],"type":"object","properties":{"field_name":{"type":"string","description":"Field name generated by the platform based on report configuration.","example":"queue"},"field_type":{"type":"string","description":"Field type. The 'id_name' is an object type, which contains two string fields `id` and `name`.","example":"id_name","enum":["string","array","object","number","integer","id_name"]},"description":{"type":"string","description":"A brief description of the field.","example":"The specific name of a queue on the Zoom platform."}},"description":"Format information for each field."}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  Input parameter format validation failed. \n\n "},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  The specified widget was not found. \n\n "},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_report:read:admin","contact_center:read:custom_report:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_report:read:admin"],"x-granular-scopes":["contact_center:read:custom_report:admin"]}}},"/contact_center/analytics/dataset/historical/disposition":{"get":{"tags":["Reports V2 (CX Analytics)"],"summary":"List historical disposition dataset data","description":"View the historical disposition data for finished engagements in the Contact Center to conduct disposal data analysis, such as displaying the disposition data through dashboards or reports. Filter the results with the provided input parameters. The input filters are conjunctive.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_report:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:dataset_disposition:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `HEAVY`","operationId":"Listhistoricaldispositiondatasetdata","parameters":[{"name":"engagement_ids","in":"query","description":"The engagement's ID array.","required":false,"schema":{"type":"array","example":["bgdiH2SPQXmiD30nUiA4uA"],"items":{"type":"string"}}},{"name":"user_ids","in":"query","description":"The agent ID list.","required":false,"schema":{"type":"array","example":["SVoAlV1URdOVhEZrodKHQw"],"items":{"type":"string"}}},{"name":"queue_ids","in":"query","description":"The queue ID list.","required":false,"schema":{"type":"array","example":["FRDFsxkcQeCnhR5eMBdOHw"],"items":{"type":"string"}}},{"name":"team_ids","in":"query","description":"The agent team's specific ID list.","required":false,"schema":{"type":"array","example":["agent team1"],"items":{"type":"string"}}},{"name":"channels","in":"query","description":"The names of the channels on the Zoom platform.\n- `voice`\n- `video`\n- `messaging`\n- `email`","required":false,"schema":{"type":"array","example":["video"],"items":{"type":"string","enum":["voice","video","messaging","email"]}}},{"name":"direction","in":"query","description":"The engagement's direction.\n- `inbound`\n- `outbound`","required":false,"schema":{"type":"string","example":"outbound","enum":["inbound","outbound"]}},{"name":"disposition_types","in":"query","description":"The disposition's type.\n- `single`\n- `multi_level`","required":false,"schema":{"type":"array","example":["single"],"items":{"type":"string","enum":["single","multi-level"]}}},{"name":"disposition_sources","in":"query","description":"The disposition's source.\n- `default`\n- `agent`","required":false,"schema":{"type":"array","example":["default"],"items":{"type":"string","enum":["default","agent"]}}},{"name":"from","in":"query","description":"Filter results to dispositions that started after this date and time. The expected format is `yyyy-MM-dd'T'HH:mm:ss'Z'`. The response only includes one month's worth of data. If there is no specified start date, the API returns data from the past 24 hours.","required":false,"schema":{"type":"string","format":"date-time","example":"2025-05-21T19:17:00Z"}},{"name":"to","in":"query","description":"Required only when the `from` parameter is specified. Filter results to dispositions that started in the given `from` and `to` time periods. The expected format is `yyyy-MM-dd'T'HH:mm:ss'Z'`.","required":false,"schema":{"type":"string","format":"date-time","example":"2025-05-21T19:17:00Z"}},{"name":"timezone","in":"query","description":"The [timezone ID](/docs/api/references/abbreviations/#timezones) to use for the start time and end time in the query. The default is UTC.","required":false,"schema":{"type":"string","example":"UTC","default":"UTC"}},{"name":"sort_order","in":"query","description":"Defines the order that records are returned based on the start time field. If you use `from' or 'to`, the records are sorted by their start time. \n* asc - Sort records in ascending order.\n* desc - Sort records in descending order.","required":false,"schema":{"type":"string","example":"desc","default":"desc","enum":["asc","desc"]}},{"name":"page_size","in":"query","description":"The number of items returned per page.","required":false,"schema":{"maximum":100,"type":"integer","format":"int32","example":30,"default":30}},{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}}],"responses":{"200":{"description":"View the historical disposition data that is finished engament in Contact Center response.","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"maxLength":100,"type":"string","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":100,"minimum":1,"type":"integer","description":"The number of records returned within a single API call.","example":30,"default":30},"total_records":{"minimum":0,"type":"integer","description":"The total number of all the records available across pages.","example":10},"timezone":{"type":"string","description":"The [timezone ID](/docs/api/references/abbreviations/#timezones) to use for the start time and end time in the query. The default is `UTC`.","example":"UTC"},"from":{"type":"string","description":"Filter results to dispositions that started after this date and time. The expected format is `yyyy-MM-dd'T'HH:mm:ss'Z'`.The response only includes one month's worth of data. If there is no specified start date, the API returns data from the past 24 hours.","format":"date-time","example":"2025-05-26T16:30:08Z"},"to":{"type":"string","description":"Required only when the `from` parameter is specified. Filter results to dispositions that started in the given `from` and `to` time periods. The expected format is `yyyy-MM-dd'T'HH:mm:ss'Z'`.","format":"date-time","example":"2025-07-26T16:30:08Z"},"historical_dispositions":{"type":"array","description":"dispositions","items":{"type":"object","properties":{"disposition_name":{"type":"string","description":"The disposition's name.","example":"My Disposition"},"tier1_disposition_name":{"type":"string","description":"The disposition's tier1 name.","example":"Disposition tier1 name"},"tier2_disposition_name":{"type":"string","description":"The disposition's tier2 name.","example":"Disposition tier2 name"},"tier3_disposition_name":{"type":"string","description":"The disposition's tier3 name.","example":"Disposition tier3 name"},"tier4_disposition_name":{"type":"string","description":"The disposition's tier4 name.","example":"Disposition tier4 name"},"account_id":{"type":"string","description":"The account's ID.","example":"QxgttRd_QearwLDiZBcnAw"},"parent_account_id":{"type":"string","description":"The parent account's ID.","example":"0csc9RR7TR-k-bByzRGoyg"},"user_id":{"type":"string","description":"The agent's ID.","example":"SVoAlV1URdOVhEZrodKHQw"},"user_name":{"type":"string","description":"The agent's name.","example":"Jane Smith"},"disposition_type":{"type":"string","description":"The disposition's type.\n- `single`\n- `multi-level`","example":"single","enum":["single","multi_level"]},"disposition_source":{"type":"string","description":"The disposition's source.\n- `default`\n\n- `agent`","example":"agent","enum":["default","agent"]},"channel":{"type":"string","description":"The names of the channels on the Contact Center.\n- `voice`\n- `video`\n- `messaging`\n- `email`","example":"voice","enum":["voice","video","messaging","email"]},"channel_source":{"type":"string","description":"The channel's source.\n- `voice`\n- `web_video`\n- `in_app_video`\n- `kiosk_video`\n- `web_chat`\n- `in_app_chat`\n- `in_dideo_chat`\n- `sms`\n- `facebook_messenger`\n- `instagram`\n- `team_chat`\n- `whatsapp`\n- `email_address`\n- `email_web_form`","example":"voice","enum":["voice","web_video","in_app_video","kiosk_video","web_chat","in_app_chat","team_chat","sms","facebook_messenger","instagram","whatsapp","email"]},"team_id":{"type":"string","description":"The team's ID.","example":"MhHgsufKS5axWxVWHbghmQ"},"team_name":{"type":"string","description":"The team's name.","example":"My Team"},"queue_id":{"type":"string","description":"The queue's ID.","example":"3e8E2PnWTcC9FrKNaDuOeA"},"queue_name":{"type":"string","description":"The queue's name.","example":"My Queue"},"engagement_id":{"type":"string","description":"The disposition's engagement ID.","example":"XYV29VsfROOGUS_BbSXFpQ"},"direction":{"type":"string","description":"The engagement's direction.\n- `inbound`\n- `outbound`","example":"inbound","enum":["inbound","outbound"]}}}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n "},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_report:read:admin","contact_center:read:dataset_disposition:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_report:read:admin"],"x-granular-scopes":["contact_center:read:dataset_disposition:admin"]}}},"/contact_center/analytics/dataset/historical/engagement":{"get":{"tags":["Reports V2 (CX Analytics)"],"summary":"List historical engagement dataset data","description":"Generate a list of engagement dataset raw data.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_report:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:dataset_engagement:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `HEAVY`","operationId":"Listengagementdatasetdata","parameters":[{"name":"from","in":"query","description":"Use the `start_time_from` field. The start time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format to pull the engagements that started after this date and time. \n\nThe response only includes one month's worth of data. If there is no specified start date, the API returns data from the past 24 hours.","required":false,"schema":{"type":"string","example":"2021-12-10T00:00:00Z","deprecated":true}},{"name":"to","in":"query","description":"Use the `start_time_to` field. Required only when the `from` parameter is specified. \n\nThe end time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format, the same format as the `from` parameter.\nPulls the engagements that started in the given `from` and `to` time periods.","required":false,"schema":{"type":"string","example":"2021-12-10T00:15:00Z","deprecated":true}},{"name":"start_time_from","in":"query","description":"The start time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format to pull the engagements that started after this date and time. \n\nThe response only includes one month's worth of data. If there is no specified start date, the API returns data from the past 24 hours.\n\nThis field is the same as the `from` field. **The `from` field will be obsolete later. Start usinghis field instead.** ","required":false,"schema":{"type":"string","example":"2021-12-10T00:00:00Z"}},{"name":"start_time_to","in":"query","description":"Required only when specifying the `start_time_from` parameter.\n\nThe end time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format, same as the `start_time_from` parameter.\n\nPulls the engagements that started in the given `start_time_from` and `start_time_to` time periods.\n\nThis field is the same as the `to` field. **The `to` field will be obsolete later. Start using this field instead.** ","required":false,"schema":{"type":"string","example":"2021-12-10T00:15:00Z"}},{"name":"end_time_from","in":"query","description":"The end time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format to pull the engagements that ended after this date and time. \n\nThe response only includes one month's worth of data. If there is no specified start date, the API returns data from the past 24 hours. ","required":false,"schema":{"type":"string","example":"2021-12-10T00:00:00Z"}},{"name":"end_time_to","in":"query","description":"Required only when specifying the `end_time_from` parameter.\n\nThe end time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format, the same format as the `end_time_from` parameter.\n\nPulls the engagements that ended in the given `end_time_from` and `end_time_to` time periods. ","required":false,"schema":{"type":"string","example":"2021-12-10T00:15:00Z"}},{"name":"timezone","in":"query","description":"The [timezone ID](/docs/api/references/abbreviations/#timezones) to use for the start time and end time in the query.\n. The default is `UTC`.","required":false,"schema":{"type":"string","example":"America/Los_Angeles"}},{"name":"sort_order","in":"query","description":"Define the order in which records are returned based on the start time or end time field. \n\nIf you use `from' or 'to` or `start_time_from' or 'start_time_to`, the records will be sorted by their start time. \n\nIf you use `end_time_from' or 'end_time_to`, the records will be sorted by their end time.\n\n* asc - Sort records in ascending order.\n* desc - Sort records in descending order.","required":false,"schema":{"type":"string","example":"desc","default":"desc","enum":["asc","desc"]}},{"name":"engagement_id","in":"query","description":"The engagement's ID array.","required":false,"schema":{"type":"array","example":["bgdiH2SPQXmiD30nUiA4uA"],"items":{"type":"string"}}},{"name":"direction","in":"query","description":"The engagement's direction.","required":false,"schema":{"type":"string","example":"inbound","enum":["inbound","outbound"]}},{"name":"enter_channel","in":"query","description":"The channel that the engagement was in when it entered the Contact Center.\n* `voice`\n* `video`\n* `messaging`\n* `email`\n* `work_item`","required":false,"schema":{"type":"array","example":["messaging"],"items":{"type":"string"},"enum":["voice","video","messaging","email","work_item"]}},{"name":"enter_channel_source","in":"query","description":"The source that the engagement was in when it entered Contact Center.\n* `voice` - Only applies to voice channel. \n* `in_app_video` - Only applies to video channel.\n* `kiosk_video` - Only applies to video channel. \n* `web_video` - Only applies to video channel. \n* `in_app_chat` - Only applies to messaging channel.\n* `in_video_chat` - Only applies to messaging channel.\n* `web_chat` - Only applies to messaging channel.\n* `sms` - Only applies to messaging channel.\n* `facebook_messenger` - Only applies to messaging channel.\n* `instagram` - Only applies to messaging channel.\n* `team_chat` - Only applies to messaging channel.\n* `whats_app` - Only applies to messaging channel.\n* `email_domain` - Only applies to email channel.\n* `api` - Only applies to work_item channel.","required":false,"schema":{"type":"array","example":["in_app_chat"],"items":{"type":"string"},"enum":["voice","in_app_video","kiosk_video","web_video","in_app_chat","in_video_chat","web_chat","sms","facebook_messenger","instagram","team_chat","whats_app","email_domain","api"]}},{"name":"caller_id","in":"query","description":"The caller's phone number.","required":false,"schema":{"type":"string","example":"+12762580117"}},{"name":"dnis","in":"query","description":"The original number that was dialed for an engagement.","required":false,"schema":{"type":"string","example":"+12762580117"}},{"name":"ani","in":"query","description":"The phone number that an engagement originated from.","required":false,"schema":{"type":"string","example":"+12762580117"}},{"name":"queue_id","in":"query","description":"A queue's specific ID.","required":false,"schema":{"type":"array","example":["FRDFsxkcQeCnhR5eMBdOHw"],"items":{"type":"string"}}},{"name":"user_id","in":"query","description":"The ID of the agent who is set up on the agent profile.","required":false,"schema":{"type":"array","example":["FRDFsxkcQeCnhR5eMBdOHw"],"items":{"type":"string"}}},{"name":"team_id","in":"query","description":"A team's specific ID.","required":false,"schema":{"type":"array","example":["FRDFsxkcQeCnhR5eMBdOHw"],"items":{"type":"string"}}},{"name":"channel","in":"query","description":"The channel that the engagement contains.","required":false,"schema":{"type":"array","example":["messaging"],"items":{"type":"string"},"enum":["voice","video","messaging","email","work_item"]}},{"name":"channel_source","in":"query","description":"The source that the engagement contains.\n\n* `voice` - Only applies to voice channel. \n* `in_app_video` - Only applies to video channel.\n* `kiosk_video` - Only applies to video channel. \n* `web_video` - Only applies to video channel. \n* `in_app_chat` - Only applies to messaging channel.\n* `in_video_chat` - Only applies to messaging channel.\n* `web_chat` - Only applies to messaging channel.\n* `sms` - Only applies to messaging channel.\n* `facebook_messenger` - Only applies to messaging channel.\n* `instagram` - Only applies to messaging channel.\n* `team_chat` - Only applies to messaging channel.\n* `whats_app` - Only applies to messaging channel.\n* `email_domain` - Only applies to email channel.\n* `api` - Only applies to work_item channel.","required":false,"schema":{"type":"array","example":["in_app_chat"],"items":{"type":"string"},"enum":["voice","in_app_video","kiosk_video","web_video","in_app_chat","in_video_chat","web_chat","sms","facebook_messenger","instagram","team_chat","whats_app","email_domain","api"]}},{"name":"page_size","in":"query","description":"The number of records returned within a single API call.","required":false,"schema":{"maximum":100,"type":"integer","format":"int32","example":30,"default":30}},{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}}],"responses":{"200":{"description":"Engagement dataset raw data response.","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"maxLength":100,"type":"string","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":100,"minimum":1,"type":"integer","description":"The number of records returned within a single API call.","example":30,"default":30},"total_records":{"minimum":0,"type":"integer","description":"The total number of all records available across pages.","example":10},"timezone":{"type":"string","description":"The [timezone ID](/docs/api/references/abbreviations/#timezones) to use for the start time and end time in the query.\n. The default is `UTC`.","example":"America/Los_Angeles"},"from":{"type":"string","description":"The start time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format to pull the engagements that started after this date and time. \n\nThe response only includes one month's worth of data. If there is no specified start date, the API returns data from the past 24 hours.","example":"2021-12-10T00:00:00Z"},"to":{"type":"string","description":"Required only when specifying the `from` parameter. \n\nThe end time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format, same as the `from` parameter.\n\nPulls the engagements that started in the given `from` and `to` time periods.","example":"2021-12-10T00:00:00Z"},"start_time_from":{"type":"string","description":"The start time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format to pull the engagements that started after this date and time. \n\nThe response only includes one month's worth of data. If there is no specified start date, the API returns data from the past 24 hours.","example":"2021-12-10T00:00:00Z"},"start_time_to":{"type":"string","description":"Required only when the `start_time_from` parameter. \n\nThe start time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format, same as the `start_time_from` parameter.\n\nPulls the engagements that started in the given `start_time_from` and `start_time_to` time periods.","example":"2021-12-10T00:00:00Z"},"end_time_from":{"type":"string","description":"The end time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format to pull the engagements that ended after this date and time. \n\nThe response only includes one month's worth of data. If there is no specified end date, the API returns data from the past 24 hours.","example":"2021-12-10T00:00:00Z"},"end_time_to":{"type":"string","description":"Required only when the `end_time_from` parameter. \n\nThe end time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format, same as the `end_time_from` parameter.\n\nPulls the engagements that ended in the given `end_time_from` and `end_time_to` time periods.","example":"2021-12-10T00:00:00Z"},"engagements":{"type":"array","description":"Information about the engagement.","items":{"type":"object","properties":{"engagement_id":{"type":"string","description":"The engagement's ID.","example":"reRAiabVQSqpXxJVDbsy2Q"},"direction":{"type":"string","description":"The engagement's direction.","example":"inbound","enum":["inbound","outbound"]},"start_time":{"type":"string","description":"The date and time when the engagement started, in ISO 8601 format, either `yyyy-MM-dd'T'HH:mm:ss'Z'` or `yyyy-MM-dd'T'HH:mm:ss'TZD'`. `start_time` will be the time according to the timezone indicated by the user. If no timezone is provided, `start_time` will be in UTC.","example":"2021-12-10T00:00:00Z"},"end_time":{"type":"string","description":"The date and time when the engagement ended, in ISO 8601 format, either `yyyy-MM-dd'T'HH:mm:ss'Z'` or `yyyy-MM-dd'T'HH:mm:ss'TZD'`. `start_time` will be the time according to the timezone indicated by the user. If no timezone is provided, `start_time` will be in UTC.","example":"2021-12-10T00:00:00Z"},"enter_channel":{"type":"string","description":"The channel that the engagement was in when it entered Contact Center.","example":"messaging","enum":["voice","video","messaging","email","work_item"]},"enter_channel_source":{"type":"string","description":"The source that the engagement was in when it entered Contact Center.\n* `voice` - Only applies to voice channel. \n* `in_app_video` - Only applies to video channel.\n* `kiosk_video` - Only applies to video channel. \n* `web_video` - Only applies to video channel. \n* `in_app_chat` - Only applies to messaging channel.\n* `in_video_chat` - Only applies to messaging channel.\n* `web_chat` - Only applies to messaging channel.\n* `sms` - Only applies to messaging channel.\n* `facebook_messenger` - Only applies to messaging channel.\n* `instagram` - Only applies to messaging channel.\n* `team_chat` - Only applies to messaging channel.\n* `whats_app` - Only applies to messaging channel.\n* `email_domain` - Only applies to email channel.\n* `api` - Only applies to work_item channel.","example":"in_app_chat","enum":["voice","in_app_video","kiosk_video","web_video","in_app_chat","in_video_chat","web_chat","sms","facebook_messenger","instagram","team_chat","whats_app","email_domain","api"]},"channels":{"type":"array","description":"The all engagement related channel.","items":{"type":"object","properties":{"channel":{"type":"string","description":"The channel that the engagement contains.","example":"voice","enum":["voice","video","messaging","email","work_item"]},"channel_source":{"type":"string","description":"The source that the engagement contains.\n* `voice` - Only applies to voice channel. \n* `in_app_video` - Only applies to video channel.\n* `kiosk_video` - Only applies to video channel. \n* `web_video` - Only applies to video channel. \n* `in_app_chat` - Only applies to messaging channel.\n* `in_video_chat` - Only applies to messaging channel.\n* `web_chat` - Only applies to messaging channel.\n* `sms` - Only applies to messaging channel.\n* `facebook_messenger` - Only applies to messaging channel.\n* `instagram` - Only applies to messaging channel.\n* `team_chat` - Only applies to messaging channel.\n* `whats_app` - Only applies to messaging channel.\n* `email_domain` - Only applies to email channel.\n* `api` - Only applies to work_item channel.","example":"voice","enum":["voice","in_app_video","kiosk_video","web_video","in_app_chat","in_video_chat","web_chat","sms","facebook_messenger","instagram","team_chat","whats_app","email_domain","api"]}}}},"caller_id":{"type":"string","description":"The caller's phone number.","example":"+12765551212"},"dnis":{"type":"string","description":"The original number dialed for an engagement.","example":"+12765551212"},"ani":{"type":"string","description":"The phone number that an engagement originated from.","example":"+12055551212"},"consumer":{"type":"object","properties":{"consumer_email":{"type":"string","description":"The consumer's email address.","example":"jack@example.com"},"consumer_name":{"type":"string","description":"The consumer's name.","example":"jack"}},"description":"The consumer information."},"queues":{"type":"array","description":"All queues related to the engagement.","items":{"type":"object","properties":{"queue_id":{"type":"string","description":"A queue's specific ID.","example":"FRDFsxkcQeCnhR5eMBdOHw"},"queue_name":{"type":"string","description":"A queue's specific name.","example":"jack_queue"}}}},"users":{"type":"array","description":"All agents related to the engagement.","items":{"type":"object","properties":{"user_id":{"type":"string","description":"The ID of the agent who is set up on the agent profile.","example":"FRDFsxkcQeCnhR5eMBdOHw"},"user_name":{"type":"string","description":"The first and last name of the agent who is set up on the agent profile.","example":"jack_agent"}}}},"teams":{"type":"array","description":"All teams related to the engagement.","items":{"type":"object","properties":{"team_id":{"type":"string","description":"A team's specific ID.","example":"FRDFsxkcQeCnhR5eMBdOHw"},"team_name":{"type":"string","description":"A team's specific name.","example":"jack_team"}}}},"duration":{"type":"number","description":"The engagement's duration, in milliseconds.","example":35678},"handle_duration":{"type":"number","description":"The amount of time agents spent handling engagements, in milliseconds.","example":17922},"conversation_duration":{"type":"number","description":"The amount of time that agents spent on engagements communicating with a consumer, in milliseconds.","example":16901},"hold_count":{"type":"integer","description":"The number of times that a consumer was placed on hold.","example":3},"hold_duration":{"type":"number","description":"The amount of time that a consumer was placed on hold. **NOTE:** A call may have multiple hold times.","example":169},"warm_transfer_initiated_count":{"type":"integer","description":"The number of voice or video engagements an agent answered and then warm transferred with another participant with or without fully transferring the engagement.","example":1},"warm_transfer_completed_count":{"type":"integer","description":"The number of voice or video engagements an agent answered and then warm transferred with another participant and then fully transferred the engagements.","example":1},"warm_transfer_duration":{"type":"number","description":"The amount of time an agent spent in conversation with another agent while the engagement was on hold, in milliseconds.","example":1453},"direct_transfer_count":{"type":"integer","description":"The number of direct transfers initiated.","example":2},"transfer_initiated_count":{"type":"integer","description":"The number of transfers an agent initiated, including warm and direct transfers for voice and video channels, and all transfers for messaging and email channel, withno distinction between warm and direct.","example":1},"transfer_completed_count":{"type":"integer","description":"The number of transfers an agent completed, including warm and direct transfers for voice and video channels, and all transfers for messaging and email channels, with no distinction between warm and direct.","example":1},"warm_conference_count":{"type":"integer","description":"The number of warm conferences initiated.","example":1},"warm_conference_duration":{"type":"number","description":"The amount of time an agent spent in conversation with another agent while the engagement was on hold, in milliseconds.","example":283764},"conference_count":{"type":"integer","description":"The number of conferences that occurred.","example":1},"conference_duration":{"type":"number","description":"The amount of time an agent spent in conversation with an engagement and at least one additional agent, in milliseconds.","example":283764},"wrap_up_duration":{"type":"number","description":"The amount of time agents spent completing engagement wrap-up, in milliseconds.","example":143561},"abandoned_count":{"type":"integer","description":"The number of times an end user abandoned an engagement before connecting with an agent.","example":0},"aiea_usage":{"type":"string","description":"Whether Agentic AI Expert Assist was involved in the engagement. This only applies to Agentic AI Expert Assist.\n**Note** Data is available only when the feature is enabled and properly licensed.","example":"used","enum":["used","not_used","used_interacted","used_no_interaction"]},"focus_duration":{"type":"number","description":"The amount of time by engagement where an agent spent time actively clicked into an engagement or speaking via the voice channel with a consumer, in milliseconds.","example":123}}}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n "},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_report:read:admin","contact_center:read:dataset_engagement:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_report:read:admin"],"x-granular-scopes":["contact_center:read:dataset_engagement:admin"]}}},"/contact_center/analytics/dataset/historical/engagement_timelines":{"get":{"tags":["Reports V2 (CX Analytics)"],"summary":"List historical engagement timelines","description":"Retrieve engagement timelines, including entities and segments, for engagements in a time range. Data is available after engagements have completed processing, not immediately after the engagements end. This API may return an empty or partial response while the data is persisting.\n\nRetry this request for up to 1 minute to get timeline details, if querying shortly after an [`engagement_ended` webhook event](/docs/api/contact-center/events/#tag/contact_center/postcontact_center.engagement_ended). Consider using a backoff between retries to avoid rate limiting.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_report:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:engagement_timeline:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `HEAVY`","operationId":"listHistoricalEngagementTimelines","parameters":[{"name":"start_time_from","in":"query","description":"The start time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format to pull all engagements that started after this date and time. The response only includes one month's worth of data. If there is no specified start date, the API returns data from the past 24 hours.","required":false,"schema":{"type":"string","example":"2021-12-10T00:00:00Z"}},{"name":"start_time_to","in":"query","description":"Required only when specifying a `start_time_from` parameter. The end time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format, same as the `start_time_from` parameter. Pulls all engagements that started in the given `start_time_from` and `start_time_to` time periods.","required":false,"schema":{"type":"string","example":"2021-12-10T00:15:00Z"}},{"name":"end_time_from","in":"query","description":"The end time and date, in `yyyy-MM-dd'T'HH:mm:ss'Z'` format, to pull all engagements that ended after this date and time. The response only includes one month's worth of data. If there is no specified end date, the API returns data from the past 24 hours.","required":false,"schema":{"type":"string","example":"2021-12-10T00:00:00Z"}},{"name":"end_time_to","in":"query","description":"Required only when specifying an `end_time_from` parameter. The end time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format, same as the `end_time_from` parameter. Pulls all engagements that ended in the given `end_time_from` and `end_time_to` time periods.","required":false,"schema":{"type":"string","example":"2021-12-10T00:15:00Z"}},{"name":"sort_order","in":"query","description":"Define the order that records are returned based on the start time or end time field. If you use `start_time_from` or `start_time_to`, the records are sorted by their start time. If you use `end_time_from` or `end_time_to`, the records are sorted by their end time. When sort values - either start time or end time - are equal, records are ordered by engagement ID as a tiebreaker.\n* asc - Sort records in ascending order.\n* desc - Sort records in descending order.","required":false,"schema":{"type":"string","example":"desc","default":"desc","enum":["asc","desc"]}},{"name":"timezone","in":"query","description":"The [timezone ID](/docs/api/references/abbreviations/#timezones) to query the start time and end time. The default is `UTC`.","required":false,"schema":{"type":"string","example":"America/Los_Angeles"}},{"name":"channels","in":"query","description":"The channels that the engagement contains.","required":false,"schema":{"type":"array","example":["messaging"],"items":{"type":"string","enum":["voice","video","messaging","email","work_item"]}}},{"name":"channel_sources","in":"query","description":"The sources that the engagement contains.\n\n* `voice` - Only applies to voice channel. \n* `in_app_video` - Only applies to video channel. \n* `kiosk_video` - Only applies to video channel. \n* `web_video` - Only applies to video channel. \n* `in_app_chat` - Only applies to messaging channel. \n* `in_video_chat` - Only applies to messaging channel. \n* `web_chat` - Only applies to messaging channel. \n* `sms` - Only applies to messaging channel. \n* `facebook_messenger` - Only applies to messaging channel. \n* `instagram` - Only applies to messaging channel. \n* `team_chat` - Only applies to messaging channel. \n* `whats_app` - Only applies to messaging channel. \n* `email_domain` - Only applies to email channel. \n* `api` - Only applies to work_item channel.","required":false,"schema":{"type":"array","example":["in_app_chat"],"items":{"type":"string","enum":["voice","web_video","in_app_video","kiosk_video","web_chat","in_app_chat","team_chat","sms","facebook_messenger","instagram","whatsapp","email_address","api"]}}},{"name":"page_size","in":"query","description":"The number of records returned within a single API call.","required":false,"schema":{"maximum":100,"type":"integer","format":"int32","example":30,"default":30}},{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`  \n \nTimeline information returned.","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"maxLength":100,"type":"string","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":100,"minimum":1,"type":"integer","description":"The number of records returned within a single API call.","example":30,"default":30},"total_records":{"minimum":0,"type":"integer","description":"The total number of all records available across pages.","example":10},"timezone":{"type":"string","description":"The [timezone ID](/docs/api/references/abbreviations/#timezones) used for the request. The default is UTC.","example":"America/Los_Angeles"},"start_time_from":{"type":"string","description":"The start time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format to pull all engagements that started after this date and time.","example":"2021-12-10T00:00:00Z"},"start_time_to":{"type":"string","description":"Required only when specifying the `start_time_from` parameter. The end time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format, same as the `start_time_from` parameter.","example":"2021-12-10T00:15:00Z"},"end_time_from":{"type":"string","description":"The end time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format to pull all engagements that ended after this date and time.","example":"2021-12-10T00:00:00Z"},"end_time_to":{"type":"string","description":"Required only when specifying the `end_time_from` parameter. The end time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format, same as the `end_time_from` parameter.","example":"2021-12-10T00:15:00Z"},"engagement_timelines":{"type":"array","description":"List of engagement timeline objects. One item per engagement. Each includes `engagement_id` and its entity timelines.","items":{"required":["engagement_id"],"type":"object","properties":{"engagement_id":{"type":"string","description":"The engagement's ID.","example":"W_VATTk_Q5aW6z5rZtBxAQ"},"channels":{"type":"array","description":"The channel and source pairs that this engagement involves. Possible channels: `voice`, `video`, `messaging`, `email`, `work_item`. Each item pairs one channel with its source.","items":{"type":"object","properties":{"channel":{"type":"string","description":"The channel for this entry.","example":"video","enum":["voice","video","messaging","email","work_item"]},"channel_source":{"type":"string","description":"The source for this entry. The following values are possible:\n* `voice` - Only applies to the voice channel.\n* `in_app_video` - Only applies to the video channel.\n* `kiosk_video` - Only applies to the video channel.\n* `web_video` - Only applies to the video channel.\n* `in_app_chat` - Only applies to the messaging channel.\n* `web_chat` - Only applies to the messaging channel.\n* `team_chat` - Only applies to the messaging channel.\n* `sms` - Only applies to the messaging channel.\n* `facebook_messenger` - Only applies to the messaging channel.\n* `instagram` - Only applies to the messaging channel.\n* `whatsapp` - Only applies to the messaging channel.\n* `email_address` - Only applies to the email channel.\n* `api` - Only applies to the work_item channel.","example":"web_video","enum":["voice","web_video","in_app_video","kiosk_video","web_chat","in_app_chat","team_chat","sms","facebook_messenger","instagram","whatsapp","email_address","api"]}}}},"disconnect_info":{"type":"string","description":"The party that initiated the end of this engagement. Omitted when the disconnect party cannot be determined.\n* `agent` — The agent ended the engagement.\n* `customer` — The customer ended the engagement.\n* `system` — The system ended the engagement. Common causes include inactivity timeouts, queue overflow, or SLA breaches.","nullable":true,"example":"agent","enum":["agent","customer","system"]},"entity_timelines":{"type":"array","description":"One entry per entity, each containing the entity information and its ordered timeline segments. Empty when no data.","items":{"type":"object","properties":{"entity":{"type":"object","properties":{"entity_id":{"type":"string","description":"The entity's unique identifier.","example":"agent-leg-abc123"},"entity_type":{"type":"string","description":"The entity type.","example":"Agent","enum":["Queue","Consumer","Agent","Supervisor","Flow","Campaign","Virtual Agent"]},"entity_descriptive_name":{"type":"string","description":"The entity's human-readable name.","example":"John Doe"},"channel":{"type":"string","description":"The channel that the task contains.","example":"voice","enum":["voice","video","messaging","email","work_item"]},"channel_source":{"type":"string","description":"The source that the task contains.\n* `voice` - Only applies to voice channel.\n* `in_app_video` - Only applies to video channel.\n* `kiosk_video` - Only applies to video channel.\n* `web_video` - Only applies to video channel.\n* `in_app_chat` - Only applies to messaging channel.\n* `web_chat` - Only applies to messaging channel.\n* `team_chat` - Only applies to messaging channel.\n* `sms` - Only applies to messaging channel.\n* `facebook_messenger` - Only applies to messaging channel.\n* `instagram` - Only applies to messaging channel.\n* `whatsapp` - Only applies to messaging channel.\n* `email_address` - Only applies to email channel.\n* `api` - Only applies to work_item channel.","example":"in_app_chat","enum":["voice","web_video","in_app_video","kiosk_video","web_chat","in_app_chat","team_chat","sms","facebook_messenger","instagram","whatsapp","email_address","api"]},"matched_skills_and_intents":{"type":"array","description":"Agent only. Skills and intents that led to matching this agent. Each item has type 'skill' or 'intent' with its category and name. Omitted or empty for non-agent entities.","items":{"required":["category","name","type"],"type":"object","properties":{"type":{"type":"string","description":"Whether this criterion is a skill or an intent.","example":"skill","enum":["skill","intent"]},"category":{"type":"string","description":"The category name. When `type` is `skill`, this is the skill category. When `type` is `intent`, this is the intent category.","example":"Language"},"name":{"type":"string","description":"The skill name or intent name.","example":"Billing"},"min_proficiency":{"maximum":10,"minimum":1,"type":"integer","description":"The minimum proficiency level required for the skill to match this agent. Only present when `type` is `skill`. A value between 1 and 10. Omitted when the routing record does not carry a proficiency threshold, such as older engagements or intent-based routing.","nullable":true,"example":5}}}}},"description":"Information about the entity."},"segments":{"type":"array","description":"This entity's ordered list of time segments.","items":{"type":"object","properties":{"segment_type":{"type":"string","description":"Segment type code in `snake_case`.","example":"agent_conversation_segment","enum":["customer_interact_segment","customer_ring_segment","in_flow_segment","queue_waiting_segment","queue_park_segment","queue_callback_waiting_segment","agent_ring_segment","dial_customer_segment","agent_outbound_preview_dial_segment","agent_hold_segment","agent_conversation_segment","agent_warm_transfer_segment","agent_warm_conference_segment","agent_conference_segment","agent_wrap_up_segment","supervisor_listen_segment","supervisor_whisper_segment","supervisor_view_segment","supervisor_barge_segment","supervisor_monitor_segment","campaign_dial_segment","zva_virtual_agent_conversation_segment","zva_consumer_interact_segment"]},"start_time":{"type":"string","description":"The date and time when the segment started, in ISO 8601 format, either `yyyy-MM-dd'T'HH:mm:ss'Z'` or `yyyy-MM-dd'T'HH:mm:ss'TZD'`. The time is according to the timezone indicated by the request. If no timezone is provided, `start_time` will be in UTC.","example":"2021-12-10T00:00:00Z"},"end_time":{"type":"string","description":"The date and time when the segment ended, in ISO 8601 format, either `yyyy-MM-dd'T'HH:mm:ss'Z'` or `yyyy-MM-dd'T'HH:mm:ss'TZD'`. The time is according to the timezone indicated by the request. If no timezone is provided, `end_time` will be in UTC.","example":"2021-12-10T00:00:00Z"},"end_reason":{"type":"string","description":"Event name that ended the segment.","example":"agent.hangup"}}}}}}}}}}},"description":"Information about the engagement timeline."}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n**Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n**Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_report:read:admin","contact_center:read:engagement_timeline:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_report:read:admin"],"x-granular-scopes":["contact_center:read:engagement_timeline:admin"]}}},"/contact_center/analytics/dataset/historical/expert_assist":{"get":{"tags":["Reports V2 (CX Analytics)"],"summary":"List historical expert assist dataset data","description":"Display expert assist dataset key metrics on the adoption of AI expert assist and its impact on key engagement measures. This data is available only after an engagement has ended and includes only those engagements where AI expert assist data is present.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_report:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:dataset_expert_assist:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `HEAVY`","operationId":"Listexpertassistdatasetdata","parameters":[{"name":"from","in":"query","description":"Use the `start_time_from` field. The start time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format to pull the engagements that started after this date and time. \n\nThe response only includes one month's worth of data. If there is no specified start date, the API returns data from the past 24 hours.","required":false,"schema":{"type":"string","example":"2021-12-10T00:00:00Z","deprecated":true}},{"name":"to","in":"query","description":"Please use the `start_time_to` field. Required only when the `from` parameter is specified. \n\nThe end time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format, the same format as the `from` parameter.\n\nPulls the engagements that started in the given `from` and `to` time periods.","required":false,"schema":{"type":"string","example":"2021-12-10T00:15:00Z","deprecated":true}},{"name":"start_time_from","in":"query","description":"The start time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format to pull the engagements that started after this date and time. \n\nThe response only includes one month's worth of data. If there is no specified start date, the API returns data from the past 24 hours.\n\nThis field is the same as the `from` field. The `from` field will be obsolete later; this field should be used preferentially.","required":false,"schema":{"type":"string","example":"2021-12-10T00:00:00Z"}},{"name":"start_time_to","in":"query","description":"Required only when specifying the `start_time_from` parameter.\n\nThe end time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format, the same format as the `start_time_from` parameter. \n\nPulls the engagements that started in the given `start_time_from` and `start_time_to` time periods.\n\nThis field is the same as the `to` field. The `to` field will be obsolete later; this field should be used preferentially. ","required":false,"schema":{"type":"string","example":"2021-12-10T00:15:00Z"}},{"name":"end_time_from","in":"query","description":"The end time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format to pull the engagements that ended after this date and time. \n\nThe response only includes one month's worth of data. If there is no specified start date, the API returns data from the past 24 hours. ","required":false,"schema":{"type":"string","example":"2021-12-10T00:00:00Z"}},{"name":"end_time_to","in":"query","description":"Required only when specifying the `end_time_from` parameter.\n\nThe end time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format, the same format as the `end_time_from` parameter. \n\nPulls the engagements that ended in the given `end_time_from` and `end_time_to` time periods. ","required":false,"schema":{"type":"string","example":"2021-12-10T00:15:00Z"}},{"name":"timezone","in":"query","description":"The [timezone ID](/docs/api/references/abbreviations/#timezones) to use for the start time and end time in the query.\n. The default is `UTC`.","required":false,"schema":{"type":"string","example":"America/Los_Angeles"}},{"name":"sort_order","in":"query","description":"Defines the order that records are returned based on the start time or end time field. \n\nIf you use `from' or 'to` or `start_time_from' or 'start_time_to`, the records are sorted by their start time. \n\nIf you use `end_time_from' or 'end_time_to`, the records are sorted by their end time.\n\n* asc - Sort records in ascending order.\n* desc - Sort records in descending order.","required":false,"schema":{"type":"string","example":"desc","default":"desc","enum":["asc","desc"]}},{"name":"engagement_id","in":"query","description":"The engagement's ID array.","required":false,"schema":{"type":"array","example":["bgdiH2SPQXmiD30nUiA4uA"],"items":{"type":"string"}}},{"name":"direction","in":"query","description":"The engagement's direction.","required":false,"schema":{"type":"string","example":"inbound","enum":["inbound","outbound"]}},{"name":"queue_id","in":"query","description":"A queue's specific ID.","required":false,"schema":{"type":"array","example":["FRDFsxkcQeCnhR5eMBdOHw"],"items":{"type":"string"}}},{"name":"user_id","in":"query","description":"The ID of the agent, as defined in the agent profile, who participated in the engagement for its duration.","required":false,"schema":{"type":"array","example":["FRDFsxkcQeCnhR5eMBdOHw"],"items":{"type":"string"}}},{"name":"team_id","in":"query","description":"The specific ID of a team on the Zoom platform that allows for viewing reports as a group of agents. This filter field is combined with `user_id` using a logical AND.","required":false,"schema":{"type":"array","example":["FRDFsxkcQeCnhR5eMBdOHw"],"items":{"type":"string"}}},{"name":"channel","in":"query","description":"The channel contained by the engagement.","required":false,"schema":{"type":"array","example":["messaging"],"items":{"type":"string"},"enum":["voice","video","messaging","email"]}},{"name":"channel_source","in":"query","description":"The source contained by the engagement.\n* `voice` - Only applies to voice channel. \n* `in_app_video` - Only applies to video channel.\n* `kiosk_video` - Only applies to video channel. \n* `web_video` - Only applies to video channel. \n* `in_app_chat` - Only applies to messaging channel.\n* `in_video_chat` - Only applies to messaging channel.\n* `web_chat` - Only applies to messaging channel.\n* `sms` - Only applies to messaging channel.\n* `facebook_messenger` - Only applies to messaging channel.\n* `instagram` - Only applies to messaging channel.\n* `team_chat` - Only applies to messaging channel.\n* `whats_app` - Only applies to messaging channel.\n* `email_domain` - Only applies to email channel.","required":false,"schema":{"type":"array","example":["in_app_chat"],"items":{"type":"string"},"enum":["voice","in_app_video","kiosk_video","web_video","in_app_chat","in_video_chat","web_chat","sms","facebook_messenger","instagram","team_chat","whats_app","email_domain"]}},{"name":"expert_assist_instance_id","in":"query","description":"The expert assist instance's specific ID.","required":false,"schema":{"type":"array","example":["3Y548oThR-GCyKeYeNg6TA"],"items":{"type":"string"}}},{"name":"expert_assist_status","in":"query","description":"The engagement status of using the expert assist function.","required":false,"schema":{"type":"string","example":"initiated","enum":["Unknown","initiated","available","no_available"]}},{"name":"expert_assist_feature","in":"query","description":"The expert assist function used by engagement.","required":false,"schema":{"type":"array","example":["ea_info_retrieval"],"items":{"type":"string"},"enum":["Unknown","ea_info_retrieval","ea_knowledge_base","ea_next_best_action"]}},{"name":"info_retrieval_group_id","in":"query","description":"The group for information retrieval used by the engagement.","required":false,"schema":{"type":"array","example":["ZjYmKi3MQ0GL-Gbmsva6ZA"],"items":{"type":"string"}}},{"name":"knowledge_base_id","in":"query","description":"The knowledge base used in the engagement.","required":false,"schema":{"type":"array","example":["5wCLuHRTTuq-WvlaE6eecA"],"items":{"type":"string"}}},{"name":"next_best_action_id","in":"query","description":"The use of next best action in the engagement.","required":false,"schema":{"type":"array","example":["eyR03uJ3REyCaxlHeLnhnw"],"items":{"type":"string"}}},{"name":"page_size","in":"query","description":"The number of items returned per page.","required":false,"schema":{"maximum":300,"type":"integer","format":"int32","example":30,"default":30}},{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}}],"responses":{"200":{"description":"The expert assist dataset raw data response.","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"maxLength":100,"type":"string","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":300,"minimum":1,"type":"integer","description":"The number of records returned within a single API call.","example":30,"default":30},"total_records":{"minimum":0,"type":"integer","description":"The total number of all the records available across pages.","example":10},"timezone":{"type":"string","description":"The [timezone ID](/docs/api/references/abbreviations/#timezones) to use for the start time and end time in the query.\n. The default is `UTC`.","example":"America/Los_Angeles"},"from":{"type":"string","description":"The start time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format to pull the engagements that started after this date and time. \n\nThe response only includes one month's worth of data. If there is no specified start date, the API returns data from the past 24 hours.","example":"2021-12-10T00:00:00Z"},"to":{"type":"string","description":"Required only when specifying the `from` parameter.\n\nThe end time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format, same as the `from` parameter.\n\nPulls the engagements that started in the given `from` and `to` time periods.","example":"2021-12-10T00:00:00Z"},"start_time_from":{"type":"string","description":"The start time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format to pull the engagements that started after this date and time. \n\nThe response only includes one month's worth of data. If there is no specified start date, the API returns data from the past 24 hours.","example":"2021-12-10T00:00:00Z"},"start_time_to":{"type":"string","description":"Required only when specifying the `start_time_from` parameter.\n\nThe start time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format, same as the `start_time_from` parameter.\n\nPulls the engagements that started in the given `start_time_from` and `start_time_to` time periods.","example":"2021-12-10T00:00:00Z"},"end_time_from":{"type":"string","description":"The end time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format to pull the engagements that ended after this date and time. \n\nThe response only includes one month's worth of data. If there is no specified end date, the API returns data from the past 24 hours.","example":"2021-12-10T00:00:00Z"},"end_time_to":{"type":"string","description":"Required only when specifying the `end_time_from` parameter.\n\nThe end time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format, same as the `end_time_from` parameter.\n\nPulls the engagements that ended in the given `end_time_from` and `end_time_to` time periods.","example":"2021-12-10T00:00:00Z"},"engagements":{"type":"array","description":"The information about the engagement.","items":{"type":"object","properties":{"engagement_id":{"type":"string","description":"The engagement's ID.","example":"reRAiabVQSqpXxJVDbsy2Q"},"direction":{"type":"string","description":"The engagement's direction.","example":"inbound","enum":["inbound","outbound"]},"start_time":{"type":"string","description":"The date and time when the engagement started, in ISO 8601 format, either `yyyy-MM-dd'T'HH:mm:ss'Z'` or `yyyy-MM-dd'T'HH:mm:ss'TZD'`. `start_time` will be the time according to the timezone indicated by the user. If no timezone is provided, `start_time` will be in UTC.","example":"2021-12-10T00:00:00Z"},"end_time":{"type":"string","description":"The date and time when the engagement ended, in ISO 8601 format, either `yyyy-MM-dd'T'HH:mm:ss'Z'` or `yyyy-MM-dd'T'HH:mm:ss'TZD'`. `start_time` will be the time according to the timezone indicated by the user. If no timezone is provided, `start_time` will be in UTC.","example":"2021-12-10T00:00:00Z"},"channels":{"type":"array","description":"The all engagement related channel.","items":{"type":"object","properties":{"channel":{"type":"string","description":"The channel contained in the engagement.","example":"voice","enum":["voice","video","messaging","email"]},"channel_source":{"type":"string","description":"The source contained in the engagement.\n* `voice` - Only applies to voice channel. \n* `in_app_video` - Only applies to video channel.\n* `kiosk_video` - Only applies to video channel. \n* `web_video` - Only applies to video channel. \n* `in_app_chat` - Only applies to messaging channel.\n* `in_video_chat` - Only applies to messaging channel.\n* `web_chat` - Only applies to messaging channel.\n* `sms` - Only applies to messaging channel.\n* `facebook_messenger` - Only applies to messaging channel.\n* `instagram` - Only applies to messaging channel.\n* `team_chat` - Only applies to messaging channel.\n* `whats_app` - Only applies to messaging channel.\n* `email_domain` - Only applies to email channel.","example":"voice","enum":["voice","in_app_video","kiosk_video","web_video","in_app_chat","in_video_chat","web_chat","sms","facebook_messenger","instagram","team_chat","whats_app","email_domain"]}}}},"queues":{"type":"array","description":"All queues related to the engagement.","items":{"type":"object","properties":{"queue_id":{"type":"string","description":"A queue's specific ID.","example":"FRDFsxkcQeCnhR5eMBdOHw"},"queue_name":{"type":"string","description":"A queue's specific name.","example":"jack_queue"}}}},"users":{"type":"array","description":"All agents related to the engagement.","items":{"type":"object","properties":{"user_id":{"type":"string","description":"The ID of the agent on the agent profile.","example":"FRDFsxkcQeCnhR5eMBdOHw"},"user_name":{"type":"string","description":"The first and last name of the agent on the agent profile.","example":"jack_agent"}}}},"teams":{"type":"array","description":"All teams related to the engagement.","items":{"type":"object","properties":{"team_id":{"type":"string","description":"A team's specific ID.","example":"FRDFsxkcQeCnhR5eMBdOHw"},"team_name":{"type":"string","description":"A team's specific name.","example":"jack_team"}}}},"handle_duration":{"type":"number","description":"The amount of time agents spent handling engagements, in milliseconds.","example":17922},"wrap_up_duration":{"type":"number","description":"The amount of time agents spent completing engagement wrap-up, in milliseconds.","example":143561},"expert_assist_status":{"type":"string","description":"The engagement status of using the expert assist function.","example":"initiated","enum":["Unknown","initiated","available","no_available"]},"expert_assist_instance":{"type":"array","description":"All expert assist instances related to the engagement.","items":{"type":"object","properties":{"expert_assist_instance_id":{"type":"string","description":"An expert assist instance's specific ID.","example":"Y548oThR-GCyKeYeNg6TA\n"},"expert_assist_instance_name":{"type":"string","description":"An expert assist instance's name.","example":"order_list"}}}},"info_retrieval_group":{"type":"array","description":"All expert assist information retrievals related to the engagement.","items":{"type":"object","properties":{"info_retrieval_group_id":{"type":"string","description":"An expert assist information retrieval's specific ID.","example":"Uu9pM0LRRl24RM3aNxDScA"},"info_retrieval_group_name":{"type":"string","description":"An expert assist information retrieval's name.","example":"order_groups"}}}},"knowledge_base":{"type":"array","description":"All expert assist knowledge bases related to the engagement.","items":{"type":"object","properties":{"knowledge_base_id":{"type":"string","description":"An expert assist knowledge base's specific ID.","example":"1d4HuAFFSkGz7vmhU1wVGA"},"knowledge_base_name":{"type":"string","description":"An expert assist knowledge base's name.","example":"know_base"}}}},"next_best_action":{"type":"array","description":"All expert assist next best actions related to the engagement.","items":{"type":"object","properties":{"next_best_action_id":{"type":"string","description":"An expert assist next best action's specific ID.","example":"04vm4K5zR_qnXeXhdvfcCA"},"next_best_action_name":{"type":"string","description":"An expert assist next best action's name.","example":"recommend"}}}},"expert_assist_feature":{"type":"array","description":"The expert assist functions used by engagement.","items":{"type":"string","description":"The expert assist function used by engagement.","example":"ea_info_retrieval","enum":["Unknown","ea_info_retrieval","ea_knowledge_base","ea_next_best_action"]}}}}}}}}}},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_report:read:admin","contact_center:read:dataset_expert_assist:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_report:read:admin"],"x-granular-scopes":["contact_center:read:dataset_expert_assist:admin"]}}},"/contact_center/analytics/dataset/historical/flow_performance":{"get":{"tags":["Reports V2 (CX Analytics)"],"summary":"List historical flow performance dataset data","description":"Generate a list of flow performance dataset raw data.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_report:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:dataset_flow_performance:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `HEAVY`","operationId":"Listhistoricalflowperformancedatasetdata","parameters":[{"name":"from","in":"query","description":"Use the `enter_time_from` field, and the start time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format to pull the flows that started after this date and time. \n\nThe response includes only one month's worth of data. If there is no specified start date, the API returns data from the past 24 hours.","required":false,"schema":{"type":"string","example":"2021-12-10T00:00:00Z","deprecated":true}},{"name":"to","in":"query","description":"Use the `enter_time_to` field. Required only when the `from` parameter is specified. \n\nThe end time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format, the same format as the `from` parameter.\n\nPulls the flows that started in the given `from` and `to` time periods.","required":false,"schema":{"type":"string","example":"2021-12-10T00:15:00Z","deprecated":true}},{"name":"enter_time_from","in":"query","description":"The enter time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format to pull the flows that entered after this date and time. \n\nThe response only includes one month's worth of data. If there is no specified start date, the API returns data from the past 24 hours. This field is the same as the `from` field. The `from` field will be obsolete later; this field should be used preferentially. ","required":false,"schema":{"type":"string","example":"2021-12-10T00:00:00Z"}},{"name":"enter_time_to","in":"query","description":"Required only when specifying the `enter_time_from` parameter.\n\nThe enter time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format, same as the `enter_time_from` parameter.\n\nPulls the flows that entered in the given `enter_time_from` and `enter_time_to` time periods.\n\nThis field is the same as the `to` field. **The `to` field will be obsolete laterl Start using this field instead. ","required":false,"schema":{"type":"string","example":"2021-12-10T00:15:00Z"}},{"name":"exit_time_from","in":"query","description":"The exit time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format to pull the flows that exited after this date and time. \n\nThe response only includes one month's worth of data. If there is no specified start date, the API returns data from the past 24 hours. ","required":false,"schema":{"type":"string","example":"2021-12-10T00:00:00Z"}},{"name":"exit_time_to","in":"query","description":"Required only when specifying the `exit_time_from` parameter.\n\nThe exit time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format, same as the `exit_time_from` parameter.\n\nPulls the flows that exited in the given `exit_time_from` and `exit_time_to` time periods. ","required":false,"schema":{"type":"string","example":"2021-12-10T00:15:00Z"}},{"name":"timezone","in":"query","description":"The source that the engagement was in when it entered the Contact Center.\n* `voice` - Only applies to the voice channel. \n* `in_app_video` - Only applies to the video channel.\n* `kiosk_video` - Only applies to the video channel. \n* `web_video` - Only applies to the video channel. \n* `in_app_chat` - Only applies to the messaging channel.\n* `in_video_chat` - Only applies to the messaging channel.\n* `web_chat` - Only applies to the messaging channel.\n* `sms` - Only applies to the essaging channel.\n* `facebook_messenger` - Only applies to the messaging channel.\n* `instagram` - Only applies to the messaging channel.\n* `team_chat` - Only applies to the messaging channel.\n* `whats_app` - Only applies to the messaging channel.\n* `email_domain` - Only applies to the email channel.\n* `api` - Only applies to the work_item channel.","required":false,"schema":{"type":"string","example":"America/Los_Angeles"}},{"name":"sort_order","in":"query","description":"Defines the order that records are returned based on the start time or end time field.\n\n If you use `from/to` or `enter_time_from/enter_time_to`, the records will be sorted by their enter time.\n\n If you use `exit_time_from/exit_time_to`, the records will be sorted by their exit time.\n* asc - Sort records in ascending order.\n* desc - Sort records in descending order.","required":false,"schema":{"type":"string","example":"desc","default":"desc","enum":["asc","desc"]}},{"name":"engagement_id","in":"query","description":"The engagement's ID array.","required":false,"schema":{"type":"array","example":["bgdiH2SPQXmiD30nUiA4uA"],"items":{"type":"string"}}},{"name":"flow_execution_id","in":"query","description":"The unique identifier generated for each flow execution.","required":false,"schema":{"type":"array","example":["vz7qBi2GQ2GaHGUA0jmzmg"],"items":{"type":"string"}}},{"name":"flow_id","in":"query","description":"The ID of a flow on the Zoom platform.","required":false,"schema":{"type":"array","example":["reRAiabVQSqpXxJVDbsy2Q"],"items":{"type":"string"}}},{"name":"enter_channel","in":"query","description":"The channel that the engagement was in when it entered the Contact Center.","required":false,"schema":{"type":"array","example":["messaging"],"items":{"type":"string"},"enum":["voice","video","messaging","email","work_item"]}},{"name":"enter_channel_source","in":"query","description":"The source that the engagement was in when it entered the Contact Center.\n* `voice` - Only applies to voice channel. \n* `in_app_video` - Only applies to video channel.\n* `kiosk_video` - Only applies to video channel. \n* `web_video` - Only applies to video channel. \n* `in_app_chat` - Only applies to messaging channel.\n* `in_video_chat` - Only applies to messaging channel.\n* `web_chat` - Only applies to messaging channel.\n* `sms` - Only applies to messaging channel.\n* `facebook_messenger` - Only applies to messaging channel.\n* `instagram` - Only applies to messaging channel.\n* `team_chat` - Only applies to messaging channel.\n* `whats_app` - Only applies to messaging channel.\n* `email_domain` - Only applies to email channel.\n* `api` - Only applies to work_item channel.","required":false,"schema":{"type":"array","example":["in_app_chat"],"items":{"type":"string"},"enum":["voice","in_app_video","kiosk_video","web_video","in_app_chat","in_video_chat","web_chat","sms","facebook_messenger","instagram","team_chat","whats_app","email_domain","api"]}},{"name":"entry_point","in":"query","description":"The entry point where the engagement entered the flow.","required":false,"schema":{"type":"string","example":"+12345678"}},{"name":"page_size","in":"query","description":"The number of records returned within a single API call.","required":false,"schema":{"maximum":100,"type":"integer","format":"int32","example":30,"default":30}},{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}}],"responses":{"200":{"description":"Flow performance dataset raw data response.","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"maxLength":100,"type":"string","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":100,"minimum":1,"type":"integer","description":"The number of records returned within a single API call.","example":30,"default":30},"total_records":{"minimum":0,"type":"integer","description":"The total number of all records available across pages.","example":10},"from":{"type":"string","description":"The start time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format to pull the flows that started after this date and time. \n\nThe response only includes one month's worth of data. If there is no specified start date, the API returns data from the past 24 hours.","example":"2021-12-10T00:00:00Z"},"to":{"type":"string","description":"Required only when the `from` parameter is specified. The end time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format, the same format as the `from` parameter.\n\nPulls the flows that started in the given `from` and `to` time periods.","example":"2021-12-10T00:00:00Z"},"enter_time_from":{"type":"string","description":"The enter time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format to pull the flows that entered after this date and time. \n\nThe response only includes one month's worth of data. If there is no specified enter date, the API returns data from the past 24 hours.","example":"2021-12-10T00:00:00Z"},"enter_time_to":{"type":"string","description":"Required only when specifying the `enter_time_from` parameter.\n\nThe enter time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format, same as the `enter_time_from` parameter.\n\nPulls the flows that entered in the given `enter_time_from` and `enter_time_to` time periods.","example":"2021-12-10T00:00:00Z"},"exit_time_from":{"type":"string","description":"The exit time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format to pull the engagements that exited after this date and time. \n\nThe response only includes one month's worth of data. If there is no specified exit date, the API returns data from the past 24 hours.","example":"2021-12-10T00:00:00Z"},"exit_time_to":{"type":"string","description":"The exit time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format to pull the flows that exited after this date and time. \n\nThe response only includes one month's worth of data. If there is no specified exit date, the API returns data from the past 24 hours.","example":"2021-12-10T00:00:00Z"},"timezone":{"type":"string","description":"The [timezone ID](/docs/api/references/abbreviations/#timezones) to use for the start time and end time in the query. The default is `UTC`.","example":"America/Los_Angeles"},"flows":{"type":"array","items":{"type":"object","properties":{"flow_id":{"type":"string","description":"The specific ID of a flow on the Zoom platform.","example":"reRAiabVQSqpXxJVDbsy2Q"},"flow_name":{"type":"string","description":"The specific name of a flow on the Zoom platform.","example":"flow_example_name"},"flow_version":{"type":"string","description":"The flow version that was used when an engagement entered it.","example":"2"},"flow_enter_time":{"type":"string","description":"The timestamp when an engagement entered the flow.","example":"2021-12-10T00:15:00Z"},"flow_exit_time":{"type":"string","description":"The timestamp when an engagement exited the flow.","example":"2021-12-10T00:15:00Z"},"enter_channel":{"type":"string","description":"The channel that an engagement was in when it entered the flow.","example":"messaging","enum":["voice","video","messaging","email","work_item"]},"enter_channel_source":{"type":"string","description":"The source that an engagement was in when it entered the flow.\n\n* `voice` - Only applies to the voice channel. \n* `in_app_video` - Only applies to the video channel.\n* `kiosk_video` - Only applies to the video channel. \n* `web_video` - Only applies to the video channel. \n* `in_app_chat` - Only applies to the messaging channel.\n* `in_video_chat` - Only applies to the messaging channel.\n* `web_chat` - Only applies to the messaging channel.\n* `sms` - Only applies to the messaging channel.\n* `facebook_messenger` - Only applies to the messaging channel.\n* `instagram` - Only applies to the messaging channel.\n* `team_chat` - Only applies to the messaging channel.\n* `whats_app` - Only applies to the messaging channel.\n* `email_domain` - Only applies to the email channel.\n* `api` - Only applies to the work_item channel.","example":"in_app_chat","enum":["voice","in_app_video","kiosk_video","web_video","in_app_chat","in_video_chat","web_chat","sms","facebook_messenger","instagram","team_chat","whats_app","email_domain","api"]},"entry_point":{"type":"string","description":"The entry point where the engagement entered the flow.","example":"+12345678"},"engagement_id":{"type":"string","description":"The engagement's unique identifier.","example":"reRAiabVQSqpXxJVDbsy2Q"},"flow_offered_count":{"type":"integer","description":"The total number of engagements that were offered to a flow.","example":1},"flow_upgraded_count":{"type":"integer","description":"The number of times an engagement was upgraded within the flow, such as voice upgraded to video.","example":1},"offerred_to_queue_count":{"type":"integer","description":"Whether the engagement was assigned to a queue within the flow.","example":1},"handled_by_queue_count":{"type":"integer","description":"Whether the engagement was handled by a queue within the flow.","example":1},"handled_by_first_offered_queue_count":{"type":"integer","description":"The number of engagements that entered the flow and were handled by the first assigned queue.","example":1},"offered_to_agent_count":{"type":"integer","description":"Whether the engagement was assigned to an agent within the flow.","example":2},"handled_by_agent_count":{"type":"integer","description":"Whether the engagement was handled by an agent within the flow.","example":1},"handled_by_first_offered_agent_count":{"type":"integer","description":"The number of engagements that entered the flow and were handled by the first assigned agent.","example":3},"flow_duration":{"type":"number","description":"The amount of time an engagement took from entering the Contact Center until it reached the first widget in the flow, in milliseconds.","example":123},"first_widget_duration":{"type":"number","description":"The amount of time an engagement took from entering the Contact Center until it reached the first widget in the flow, in milliseconds.","example":123},"first_offered_queue_duration":{"type":"number","description":"The amount of time an engagement took from entering the Contact Center until it was assigned to the first queue.","example":123},"duration_to_first_handled_queue":{"type":"number","description":"The amount of time from when engagements entered the flow until they were handled by the first assigned queue, in milliseconds.","example":213},"duration_to_first_offered_agent":{"type":"number","description":"The amount of time from when engagements entered the flow until they were assigned with an agent, in milliseconds.","example":123},"duration_to_first_handled_agent":{"type":"number","description":"The amount of time from when engagements entered the flow until they were handled by the first assigned agent, in milliseconds.","example":123},"destination":{"type":"string","description":"The name of the last widget the engagement reached before exiting the flow.","example":"Route to Sales Queue"},"dnis_to":{"type":"string","description":"The original number that was dialed for an engagement.","example":"+12095551212"},"ani_from":{"type":"string","description":"The phone number that an engagement originated from.","example":"+19135551212"},"flow_widget_path":{"type":"string","description":"The path of flow widgets that an engagement went through.","example":"Start,SendMedia,SetVariables,SendMedia,RouteTo"},"flow_execution_id":{"type":"string","description":"The unique identifier generated for each flow execution.","example":"ZBTRulkDRTaZUeH2nlxDeg"}}}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n "},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_report:read:admin","contact_center:read:dataset_flow_performance:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_report:read:admin"],"x-granular-scopes":["contact_center:read:dataset_flow_performance:admin"]}}},"/contact_center/analytics/dataset/historical/outbound_dialer_performance":{"get":{"tags":["Reports V2 (CX Analytics)"],"summary":"List historical outbound dialer performance dataset data","description":"Generate a list of outbound dialer performance dataset raw data.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_report:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:dataset_outbound_dialer_performance:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `HEAVY`","operationId":"Listhistoricaloutbounddialerperformancedatasetdata","parameters":[{"name":"from","in":"query","description":"Use the `start_time_from` field. The start time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format to pull the outbound dialer engagements that started after this date and time. \n\nThe response only includes one month's worth of data. If there is no specified start date, the API returns data from the past 24 hours.","required":false,"schema":{"type":"string","example":"2021-12-10T00:00:00Z","deprecated":true}},{"name":"to","in":"query","description":"Use the `start_time_to` field. Required only when the `from` parameter is specified. \n\nThe end time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format, the same format as the `from` parameter.\n\nPulls the outbound dialer engagements that started in the given `from` and `to` time periods.","required":false,"schema":{"type":"string","example":"2021-12-10T00:15:00Z","deprecated":true}},{"name":"start_time_from","in":"query","description":"The start time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format to pull the outbound dialer engagements that started after this date and time. \n\nThe response only includes one month's worth of data. If there is no specified start date, the API returns data from the past 24 hours.\n\nThis field is the same as the `from` field. **The `from` field will be obsolete later. Start using this field instead.** ","required":false,"schema":{"type":"string","example":"2021-12-10T00:00:00Z"}},{"name":"start_time_to","in":"query","description":"Required only when specifying the `start_time_from` parameter.\n\nThe end time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format, same as the `start_time_from` parameter.\n\nPulls the outbound dialer engagements that started in the given `start_time_from` and `start_time_to` time periods.\n\nThis field is the same as the `to` field. **The `to` field will be obsolete later. Start using this field instead.** ","required":false,"schema":{"type":"string","example":"2021-12-10T00:15:00Z"}},{"name":"end_time_from","in":"query","description":"The end time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format to pull the outbound dialer engagements that ended after this date and time. \n\nThe response only includes one month's worth of data. If there is no specified start date, the API returns data from the past 24 hours. ","required":false,"schema":{"type":"string","example":"2021-12-10T00:00:00Z"}},{"name":"end_time_to","in":"query","description":"Required only when specifying the `end_time_from` parameter.\n\nThe end time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format, same as the `end_time_from` parameter.\n\nPulls the outbound dialer engagements that ended in the given `end_time_from` and `end_time_to` time periods. ","required":false,"schema":{"type":"string","example":"2021-12-10T00:15:00Z"}},{"name":"timezone","in":"query","description":"The [Timezone ID](/docs/api/references/abbreviations/#timezones) to use for the start time and end time in the query.\n. The default is `UTC`.","required":false,"schema":{"type":"string","example":"America/Los_Angeles"}},{"name":"sort_order","in":"query","description":"Define the order in which records are returned based on the start time or end time field.\n\n If you use `from` or `to` or `start_time_from` or `start_time_to`, the records will be sorted by their start time.\n\n If you use `end_time_from` or `end_time_to`, the records will be sorted by their end time.\n* asc - Sort records in ascending order.\n* desc - Sort records in descending order.","required":false,"schema":{"type":"string","example":"desc","default":"desc","enum":["asc","desc"]}},{"name":"engagement_id","in":"query","description":"The engagement's ID array.","required":false,"schema":{"type":"array","example":["bgdiH2SPQXmiD30nUiA4uA"],"items":{"type":"string"}}},{"name":"campaign_id","in":"query","description":"The ID array of a campaign created on the Zoom platform.","required":false,"schema":{"type":"array","example":["bgdiH2SPQXmiD30nUiA4uA"],"items":{"type":"string"}}},{"name":"contact_list_id","in":"query","description":"The ID array of the contact list which the engagements have been loaded into.","required":false,"schema":{"type":"array","example":["bgdiH2SPQXmiD30nUiA4uA"],"items":{"type":"string"}}},{"name":"dialer_method","in":"query","description":"The method used.","required":false,"schema":{"type":"string","example":"progressive","enum":["progressive","preview"]}},{"name":"caller_id_number","in":"query","description":"The caller ID number that is displayed when engagements are attempted.","required":false,"schema":{"type":"string","example":"+1234567890"}},{"name":"consumer_number","in":"query","description":"The customer phone number that was attempted.","required":false,"schema":{"type":"string","example":"+1234567890"}},{"name":"page_size","in":"query","description":"The number of records returned within a single API call.","required":false,"schema":{"maximum":100,"type":"integer","format":"int32","example":30,"default":30}},{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}}],"responses":{"200":{"description":"The outbound dialer performance dataset raw data response.","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"maxLength":100,"type":"string","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":100,"minimum":1,"type":"integer","description":"The number of records returned within a single API call.","example":30,"default":30},"total_records":{"minimum":0,"type":"integer","description":"The total number of all records available across pages.","example":10},"timezone":{"type":"string","description":"The [timezone ID](/docs/api/references/abbreviations/#timezones) to use for the start time and end time in the query.\n. The default is `UTC`.","example":"America/Los_Angeles"},"from":{"type":"string","description":"The start time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format to pull the outbound dialer engagements that started after this date and time. \n\nThe response only includes one month's worth of data. If there is no specified start date, the API returns data from the past 24 hours.","example":"2021-12-10T00:00:00Z"},"to":{"type":"string","description":"Required only when specifying the `from` parameter.\n\nThe end time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format, the same format as the `from` parameter.\n\nPulls the outbound dialer engagements that started in the given `from` and `to` time periods.","example":"2021-12-10T00:00:00Z"},"engagements":{"type":"array","description":"Information about the engagement.","items":{"type":"object","properties":{"engagement_id":{"type":"string","description":"The engagement's ID.","example":"reRAiabVQSqpXxJVDbsy2Q"},"start_time":{"type":"string","description":"The engagement date and time when the engagement started, in ISO 8601 format, either `yyyy-MM-dd'T'HH:mm:ss'Z'` or `yyyy-MM-dd'T'HH:mm:ss'TZD'`. `start_time` will be the time according to the timezone indicated by the user. If no timezone is provided, `start_time` will be in UTC.","example":"2021-12-10T00:00:00Z"},"end_time":{"type":"string","description":"The date and time when the engagement ended, in ISO 8601 format, either `yyyy-MM-dd'T'HH:mm:ss'Z'` or `yyyy-MM-dd'T'HH:mm:ss'TZD'`. `start_time` will be the time according to the timezone indicated by the user. If no timezone is provided, `start_time` will be in UTC.","example":"2021-12-10T00:00:00Z"},"campaign":{"type":"object","properties":{"campaign_id":{"type":"string","description":"The ID of a campaign created on the Zoom platform.","example":"reRAiabVQSqpXxJVDbsy2Q"},"campaign_name":{"type":"string","description":"The name of a campaign created on the Zoom platform.","example":"campaign_example"}},"description":"All campaignd created on the Zoom platform."},"contact_list":{"type":"object","properties":{"contact_list_id":{"type":"string","description":"The ID of the contact list that the engagements have been loaded into.","example":"reRAiabVQSqpXxJVDbsy2Q"},"contact_list_name":{"type":"string","description":"The name of the contact list that the engagements have been loaded into.","example":"John's Contacts"}},"description":"All contact list that the engagements have been loaded into."},"contact":{"type":"object","properties":{"contact_id":{"type":"string","description":"The ID of the contact that the engagements are linked to.","example":"reRAiabVQSqpXxJVDbsy2Q"},"contact_name":{"type":"string","description":"The name of the contact that the engagements are linked to.","example":"Jane Doe"}},"description":"All contact that the engagements are linked to."},"dialer_method":{"type":"string","description":"The method used, such as `preview` or `progressive`.","example":"progressive","enum":["progressive","preview"]},"dnc_flag":{"type":"boolean","description":"Whether the prospective engagement has been flagged for a DNC list. This would be `true` or `false`.","example":true},"caller_id_number":{"type":"string","description":"The caller ID number that is displayed when engagements are attempted from.","example":"+1234567890"},"consumer_number":{"type":"string","description":"The customer phone number that was attempted.","example":"+1234567890"},"calls_answered_count":{"type":"integer","description":"The number of engagements answered.","example":1},"calls_failed_count":{"type":"integer","description":"The number of engagements failed.","example":0},"calls_with_amd_count":{"type":"integer","description":"The number of engagements with AMD.","example":0},"calls_blocked_count":{"type":"integer","description":"The number of engagements blocked.","example":0},"contacts_connected_count":{"type":"integer","description":"The number of engagements connected to the consumer.","example":1},"dnc_count":{"type":"integer","description":"The number of phone numbers that appear on the do not call list.","example":0},"engagement_duration":{"type":"number","description":"The total duration of the engagement. From when the engagement starts ringing until it is hung up, in milliseconds.","example":10000},"response_duration":{"type":"number","description":"The amount of time the dialer takes to connect an agent to a live call after the customer answers the phone, in milliseconds.","example":1000},"calls_skipped_count":{"type":"integer","description":"The number of engagements skipped due to being outside callable hours.","example":0}}}},"start_time_from":{"type":"string","description":"The start time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format to pull the outbound dialer engagements that started after this date and time. \n\nThe response only includes one month's worth of data. If there is no specified start date, the API returns data from the past 24 hours.","example":"2021-12-10T00:00:00Z"},"start_time_to":{"type":"string","description":"Required only when specifying the `start_time_from` parameter.\n\nThe start time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format, same as the `start_time_from` parameter.\n\nPulls the outbound dialer engagements that started in the given `start_time_from` and `start_time_to` time periods.","example":"2021-12-10T00:00:00Z"},"end_time_to":{"type":"string","description":"Required only when specifying the `end_time_from` parameter.\n\nThe end time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format, same as the `end_time_from` parameter.\n\nPulls the outbound dialer engagements that ended in the given `end_time_from` and `end_time_to` time periods.","example":"2021-12-10T00:00:00Z"},"end_time_from":{"type":"string","description":"The end time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format to pull the outbound dialer engagements that ended after this date and time. \n\nThe response only includes one month's worth of data. If there is no specified end date, the API returns data from the past 24 hours.","example":"2021-12-10T00:00:00Z"}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n "},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_report:read:admin","contact_center:read:dataset_outbound_dialer_performance:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_report:read:admin"],"x-granular-scopes":["contact_center:read:dataset_outbound_dialer_performance:admin"]}}},"/contact_center/analytics/dataset/historical/queue_performance":{"get":{"tags":["Reports V2 (CX Analytics)"],"summary":"List historical queue performance dataset data","description":"Generate a list of queue performance dataset raw data.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_report:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:dataset_queue_performance:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `HEAVY`","operationId":"Listhistoricalqueueperformancedatasetdata","parameters":[{"name":"from","in":"query","description":"Use the `enter_time_from` field. The start time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format to pull the queues that started after this date and time. \n\nThe response only includes one month's worth of data. If there is no specified start date, the API returns data from the past 24 hours.","required":false,"schema":{"type":"string","example":"2021-12-10T00:00:00Z","deprecated":true}},{"name":"to","in":"query","description":"Use the `enter_time_to` field. Required only when the `from` parameter is specified. \n\nThe end time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format, the same format as the `from` parameter.\n\nPulls the queues that started in the given `from` and `to` time periods.","required":false,"schema":{"type":"string","example":"2021-12-10T00:15:00Z","deprecated":true}},{"name":"enter_time_from","in":"query","description":"The enter time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format to pull the queues that entered after this date and time. \n\nThe response only includes one month's worth of data. If there is no specified start date, the API returns data from the past 24 hours. This field is the same as the `from` field. The `from` field will be obsolete later; this field should be used preferentially. ","required":false,"schema":{"type":"string","example":"2021-12-10T00:00:00Z"}},{"name":"enter_time_to","in":"query","description":"Required only when specifying the `enter_time_from` parameter.\n\nThe enter time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format, same as the `enter_time_from` parameter.\n\nPulls the queues that entered in the given `enter_time_from` and `enter_time_to` time periods.\n\nThis field is the same as the `to` field. **The `to` field will be obsolete later. Start using this field instead.**","required":false,"schema":{"type":"string","example":"2021-12-10T00:15:00Z"}},{"name":"exit_time_from","in":"query","description":"The exit time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format to pull the queues that exited after this date and time. \n\nThe response only includes one month's worth of data. If there is no specified start date, the API returns data from the past 24 hours. ","required":false,"schema":{"type":"string","example":"2021-12-10T00:00:00Z"}},{"name":"exit_time_to","in":"query","description":"Required only when specifying the `exit_time_from` parameter.\n\nThe exit time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format, same as the `exit_time_from` parameter.\n\nPulls the queues that exited in the given `exit_time_from` and `exit_time_to` time periods. ","required":false,"schema":{"type":"string","example":"2021-12-10T00:15:00Z"}},{"name":"timezone","in":"query","description":"The [timezone ID](/docs/api/references/abbreviations/#timezones) to use for the start time and end time in the query.\n The default is `UTC`.","required":false,"schema":{"type":"string","example":"America/Los_Angeles"}},{"name":"sort_order","in":"query","description":"The order that records are returned based on the enter time or exit time field.\n\n If you use `from' or 'to`, or `enter_time_from' or 'enter_time_to`, the records will be sorted by their enter time.\n\n If you use `exit_time_from' or 'exit_time_to`, the records will be sorted by their exit time.\n\n* asc - Sort records in ascending order.\n* desc - Sort records in descending order.","required":false,"schema":{"type":"string","example":"desc","default":"desc","enum":["asc","desc"]}},{"name":"engagement_id","in":"query","description":"The queue task's engagement ID array.","required":false,"schema":{"type":"array","example":["bgdiH2SPQXmiD30nUiA4uA"],"items":{"type":"string"}}},{"name":"direction","in":"query","description":"The queue task direction.","required":false,"schema":{"type":"string","example":"inbound","enum":["inbound","outbound"]}},{"name":"queue_id","in":"query","description":"A queue's specific ID.","required":false,"schema":{"type":"array","example":["FRDFsxkcQeCnhR5eMBdOHw"],"items":{"type":"string"}}},{"name":"channel","in":"query","description":"The channel that the queue task enters.","required":false,"schema":{"type":"array","example":["messaging"],"items":{"type":"string"},"enum":["voice","video","messaging","email","work_item"]}},{"name":"channel_source","in":"query","description":"The source that the queue task enters.\n\n* `voice` - Only applies to voice channel. \n* `in_app_video` - Only applies to video channel.\n* `kiosk_video` - Only applies to video channel. \n* `web_video` - Only applies to video channel. \n* `in_app_chat` - Only applies to messaging channel.\n* `in_video_chat` - Only applies to messaging channel.\n* `web_chat` - Only applies to messaging channel.\n* `sms` - Only applies to messaging channel.\n* `facebook_messenger` - Only applies to messaging channel.\n* `instagram` - Only applies to messaging channel.\n* `team_chat` - Only applies to messaging channel.\n* `whats_app` - Only applies to messaging channel.\n* `email_domain` - Only applies to email channel.\n* `api` - Only applies to work_item channel.","required":false,"schema":{"type":"array","example":["in_app_chat"],"items":{"type":"string"},"enum":["voice","in_app_video","kiosk_video","web_video","in_app_chat","in_video_chat","web_chat","sms","facebook_messenger","instagram","team_chat","whats_app","email_domain","api"]}},{"name":"origin_method","in":"query","description":"How the engagement was routed to the queue.","required":false,"schema":{"type":"array","example":["take_over"],"items":{"type":"string"},"enum":["take_over","hand_over","callback","scheduled_callback","callback_retry","outbound","conference","release","warm_transfer_to_agent","warm_transfer_to_queue","direct_transfer_to_agent","direct_transfer_to_queue","transfer_to_agent","transfer_to_queue","route_to_queue","route_to_agent","outbound_progressive_dial","outbound_preview_dial","outbound_third_party_dial","park"]}},{"name":"enter_queue_id","in":"query","description":"The unique identifier generated for each queue entry record of an engagement.","required":false,"schema":{"type":"array","example":["ZWT70A1CE9D236F8E85DF9F80726A8DCEC5"],"items":{"type":"string"}}},{"name":"page_size","in":"query","description":"The number of records returned within a single API call.","required":false,"schema":{"maximum":100,"type":"integer","format":"int32","example":30,"default":30}},{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}}],"responses":{"200":{"description":"Queue performance dataset raw data response.","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"maxLength":100,"type":"string","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":100,"minimum":1,"type":"integer","description":"The number of records returned within a single API call.","example":30,"default":30},"total_records":{"minimum":0,"type":"integer","description":"The total number of all records available across pages.","example":10},"timezone":{"type":"string","description":"The [timezone ID](/docs/api/references/abbreviations/#timezones) to use for the start time and end time in the query. The default is `UTC`.","example":"America/Los_Angeles"},"from":{"type":"string","description":"The start time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format to pull the queues that started after this date and time. \n\nThe response only includes one month's worth of data. If there is no specified start date, the API returns data from the past 24 hours.","example":"2021-12-10T00:00:00Z"},"to":{"type":"string","description":"Required only when the `from` parameter is specified. The end time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format, same as the `from` parameter.\n\nPulls the queues that started in the given `from` and `to` time periods.","example":"2021-12-10T00:00:00Z"},"enter_time_from":{"type":"string","description":"The enter time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format to pull the queues that entered after this date and time. \n\nThe response only includes one month's worth of data. If there is no specified enter date, the API returns data from the past 24 hours.","example":"2021-12-10T00:00:00Z"},"enter_time_to":{"type":"string","description":"Required only when specifying the `enter_time_from` parameter. \n\nThe enter time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format, the same format as the `enter_time_from` parameter.\n\nPulls the queues that entered in the given `enter_time_from` and `enter_time_to` time periods.","example":"2021-12-10T00:00:00Z"},"exit_time_from":{"type":"string","description":"The exit time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format to pull the queues that exited after this date and time. \n\nThe response only includes one month's worth of data. If there is no specified exit date, the API returns data from the past 24 hours.","example":"2021-12-10T00:00:00Z"},"exit_time_to":{"type":"string","description":"Required only when specifying the `exit_time_from` parameter. The exit time and date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format, the same format as the `exit_time_from` parameter.\n\nPulls the queues that exited in the given `exit_time_from` and `exit_time_to` time periods.","example":"2021-12-10T00:00:00Z"},"queues":{"type":"array","items":{"type":"object","properties":{"engagement_id":{"type":"string","description":"The engagement's ID.","example":"reRAiabVQSqpXxJVDbsy2Q"},"enter_time":{"type":"string","description":"The timestamp when an engagement entered the queue.","example":"2021-12-10T00:00:00Z"},"exit_time":{"type":"string","description":"The timestamp when an engagement exited the queue.","example":"2021-12-10T10:30:00Z"},"queue_id":{"type":"string","description":"A queue's specific ID.","example":"reRAiabVQSqpXxJVDbsy2Q"},"queue_name":{"type":"string","description":"A queue's  specific name.","example":"queue_example_name"},"enter_channel":{"type":"string","description":"The channel that the queue task enters.","example":"messaging","enum":["voice","video","messaging","email","work_item"]},"enter_channel_source":{"type":"string","description":"The source that the queue task enters.\n\n* `voice` - Only applies to the voice channel. \n* `in_app_video` - Only applies to the video channel.\n* `kiosk_video` - Only applies to the video channel. \n* `web_video` - Only applies to the video channel. \n* `in_app_chat` - Only applies to the messaging channel.\n* `in_video_chat` - Only applies to the messaging channel.\n* `web_chat` - Only applies to the messaging channel.\n* `sms` - Only applies to the messaging channel.\n* `facebook_messenger` - Only applies to the messaging channel.\n* `instagram` - Only applies to the messaging channel.\n* `team_chat` - Only applies to the messaging channel.\n* `whats_app` - Only applies to the messaging channel.\n* `email_domain` - Only applies to the email channel.\n* `api` - Only applies to the work_item channel.","example":"in_app_chat","enum":["voice","in_app_video","kiosk_video","web_video","in_app_chat","in_video_chat","web_chat","sms","facebook_messenger","instagram","team_chat","whats_app","email_domain","api"]},"origin_method":{"type":"string","description":"How the engagement was routed to the queue.","example":"take_over","enum":["take_over","hand_over","callback","scheduled_callback","callback_retry","outbound","conference","release","warm_transfer_to_agent","warm_transfer_to_queue","direct_transfer_to_agent","direct_transfer_to_queue","transfer_to_agent","transfer_to_queue","route_to_queue","route_to_agent","outbound_progressive_dial","outbound_preview_dial","outbound_third_party_dial","park"]},"direction":{"type":"string","description":"The queue task direction.","example":"inbound","enum":["inbound","outbound"]},"queue_offered_count":{"type":"integer","description":"The number of engagements routed into the queue for agents to answer.","example":1},"abandoned_count":{"type":"integer","description":"The number of times an end user abandoned an engagement before connecting with an agent. Also the sum of Short Abandons and Long Abandons.","example":1},"short_abandons_count":{"type":"integer","description":"The number of engagements that were abandoned before the threshold defined for the queue.","example":0},"long_abandons_count":{"type":"integer","description":"The number of engagements that were abandoned after the threshold defined for the queue.","example":1},"overflow_count":{"type":"integer","description":"The number of engagements that entered and left a queue without being answered. This occurs because the capacity of available agent resources in queue was exceeded.","example":1},"inbound_handled_count":{"type":"integer","description":"The number of inbound engagements offered to and answered by an agent.","example":2},"in_queue_wait_duration":{"type":"number","description":"The amount of time the consumer spent waiting live - not in callback - in the queue before the engagement was answered, overflowed, or abandoned, in milliseconds.","example":123},"abandon_duration":{"type":"number","description":"The amount of time a customer waited in a specific queue before abandoning the engagement. Only applies to the queue where the abandonment actually occurred, in milliseconds.","example":123},"speed_of_answer_duration":{"type":"number","description":"The amount of time an engagement waited in the queue before an agent answered, in milliseconds.\n\n**NOTE** This metric does not include engagements that agents did not answer.","example":123},"inbound_handle_duration":{"type":"number","description":"The amount of time agents spent handling inbound engagements, in milliseconds.","example":123},"inbound_conversation_duration":{"type":"number","description":"The amount of time that an agent spent on an inbound engagement in communication with the consumer, in milliseconds.","example":123},"inbound_wrap_up_duration":{"type":"number","description":"The amount of time an agent spent completing inbound engagement wrap-up, in milliseconds.","example":123},"outbound_count":{"type":"integer","description":"The number of outbound engagements that entered a queue, regardless of a successful connection.","example":1},"outbound_handled_count":{"type":"integer","description":"The number of outbound engagements handled by agents, regardless of successful connection or not.","example":1},"outbound_connected_count":{"type":"integer","description":"The number of outbound engagements that resulted in a successful connection between a customer and an agent.","example":1},"outbound_dial_duration":{"type":"number","description":"The amount of time spent dialing the customer, in milliseconds.","example":123},"outbound_handle_duration":{"type":"number","description":"The amount of time agents spent handling outbound engagements. This also includes the time dialing a customer, in milliseconds.","example":123},"outbound_conversation_duration":{"type":"number","description":"The amount of time that an agent spent on an outbound engagement communicating with a consumer, in milliseconds.","example":123},"outbound_wrap_up_duration":{"type":"number","description":"The amount of time an agent spent completing outbound engagement wrap-up, in milliseconds.","example":123},"callback_registered_count":{"type":"integer","description":"The number of engagements that entered the queue and requested a callback, or scheduled a callback via the dedicated web page.","example":1},"callback_abandoned_count":{"type":"integer","description":"The number of callbacks where an agent was already connected, but not successfully connected to the consumer.","example":1},"callback_canceled_count":{"type":"integer","description":"The number of callbacks which consumers choose to cancel and instead wait in the queue.","example":1},"callback_timeout_count":{"type":"integer","description":"The number of callbacks placed but did not speak to an agent before the callback expired.","example":1},"callback_handled_count":{"type":"integer","description":"The number of callbacks accepted by available agents.","example":1},"callback_wait_duration":{"type":"number","description":"The amount of time from a callback being registered until either the agent calls back, the callback expires, or the callback is canceled, in milliseconds.","example":123},"callback_pending_duration":{"type":"number","description":"The amount of time from when the agent called back until the customer answered the call, customer did not answer or the agent hung up, in milliseconds.","example":123},"callback_handle_duration":{"type":"number","description":"The amount of time agents spent handling callbacks, in milliseconds.","example":123},"callback_conversation_duration":{"type":"number","description":"The amount of time that an agent spent on an engagement communicating with a consumer, in milliseconds.","example":123},"callback_wrap_up_duration":{"type":"number","description":"The amount of time agents spent completing after call work, in milliseconds.","example":123},"handle_count":{"type":"integer","description":"The number of inbound (including callback) and outbound engagements handled by the queue.","example":1},"hold_count":{"type":"integer","description":"The number of times that a consumer was placed on hold. ","example":1},"warm_transfer_initiated_count":{"type":"integer","description":"The number of voice or video engagements an agent answered and then warm transferred with another participant with or without fully transferring the engagement.","example":1},"warm_transfer_completed_count":{"type":"integer","description":"The number of voice or video engagements an agent answered and then warm transferred with another participant and then fully transferred the engagements.","example":1},"direct_transfer_count":{"type":"integer","description":"The number of direct transfers initiated.","example":2},"transfer_initiated_count":{"type":"integer","description":"The number of transfers an agent initiated, including warm and direct transfers for voice and video channels, and all transfers for messaging and email channels (no distinction between warm and direct).","example":1},"transfer_completed_count":{"type":"integer","description":"The number of transfers an agent completed, including warm and direct transfers for voice and video channels, and all transfers for messaging and email channels (no distinction between warm and direct).","example":1},"warm_conference_count":{"type":"integer","description":"The number of warm conferences initiated.","example":1},"conference_count":{"type":"integer","description":"The number of conferences that occurred.","example":1},"auto_close_disconnect_count":{"type":"integer","description":"The count of messaging and email engagements that are auto closed by the system after not receiving a response from the consumer after a defined period of time.","example":1},"handle_duration":{"type":"number","description":"The amount of time agents spent handling engagements, in milliseconds.","example":17922},"conversation_duration":{"type":"number","description":"The amount of time that agents spent on engagements communicating with a consumer, in milliseconds.","example":16901},"wrap_up_duration":{"type":"number","description":"The amount of time agents spent completing engagement wrap-up, in milliseconds.","example":143561},"hold_duration":{"type":"number","description":"The amount of time that a consumer was placed on hold, in milliseconds. **NOTE** A call may have multiple hold times.","example":169},"conference_duration":{"type":"number","description":"The amount of time an agent spent in conversation with an engagement and at least one additional agent, in milliseconds.","example":283764},"warm_transfer_duration":{"type":"number","description":"The amount of time an agent spent in conversation with another agent while the engagement was on hold, in milliseconds.","example":1453},"warm_conference_duration":{"type":"number","description":"The amount of time an agent spent in conversation with another agent while the engagement was on hold, in milliseconds.","example":283764},"dnis_to":{"type":"string","description":"The original number that was dialed for an engagement.","example":"+12095551212"},"ani_from":{"type":"string","description":"The phone number that an engagement originated from.","example":"+19135551212"},"parked_count":{"type":"integer","description":"The number of times that an engagement was parked.","example":1},"parked_duration":{"type":"number","description":"The amount of time that an engagement is in parked status, in milliseconds.","example":123},"enter_queue_id":{"type":"string","description":"The unique identifier generated for each queue entry record of an engagement.","example":"ZWT70A1CE9D236F8E85DF9F80726A8DCEC5"},"focus_duration":{"type":"number","description":"The amount of time per queue spent actively clicked into an engagement or speaking via the voice channel with a consumer, in milliseconds.","example":123},"queue_offer_canceled_count":{"type":"integer","description":"The number of engagements that were offered to a queue but were canceled before being accepted by any agent, excluding abandoned, overflow, and callback outcomes.","example":1},"outbound_canceled_count":{"type":"integer","description":"The number of outbound engagements that were initiated but canceled before being accepted by any agent, including cases caused by system timeout or customer hangup.","example":1}}}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n "},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_report:read:admin","contact_center:read:dataset_queue_performance:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_report:read:admin"],"x-granular-scopes":["contact_center:read:dataset_queue_performance:admin"]}}},"/contact_center/analytics/log/historical/engagement":{"get":{"tags":["Reports V2 (CX Analytics)"],"summary":"List historical engagement log data","description":"Retrieve a list of all historical engagement log data. The log captures all details of closed engagements, including a timeline and key events, providing a clear record for tracking and analysis.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_report:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:engagement_log:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `HEAVY`","operationId":"Listhistoricalengagementlogs","parameters":[{"name":"timezone","in":"query","description":"The [timezone ID](/docs/api/references/abbreviations/#timezones) to use for the start time and end time in the query.\nThe default is UTC.","required":false,"schema":{"type":"string","example":"UTC"}},{"name":"start_time_from","in":"query","description":"The start time to pull the engagement logs that began after this date and time.\n\nThe response only includes one month's worth of data. If there is no specified start date, the API returns data from the past 24 hours. ","required":false,"schema":{"type":"string","format":"date-time","example":"2025-05-21T19:17:00Z"}},{"name":"start_time_to","in":"query","description":"Required only when specifying the `start_time_from` parameter.\n\nPulls the engagement logs that started in the given `start_time_from` and `start_time_to` time periods. ","required":false,"schema":{"type":"string","format":"date-time","example":"2025-05-26T11:22:22Z"}},{"name":"end_time_from","in":"query","description":"The engagement end time to pull the engagement logs that ended after this date and time. The response only includes one month's worth of data. If there is no specified start date, the API returns data from the past 24 hours. ","required":false,"schema":{"type":"string","format":"date-time","example":"2025-05-25T19:17:45Z"}},{"name":"end_time_to","in":"query","description":"Required only when specifying the `end_time_from` parameter.\n\nPulls the engagement logs that started in the given `end_time_from` and `end_time_to` time periods. ","required":false,"schema":{"type":"string","format":"date-time","example":"2025-05-30T06:08:42Z"}},{"name":"sort_order","in":"query","description":"The order that records are returned based on the start time or end time field. If you use `start_time_from` or `start_time_to`, the records will be sorted by their start time. If you use `end_time_from` or `end_time_to`, the records will be sorted by their end time.\n\n* asc - Sort records in ascending order.\n* desc - Sort records in descending order.","required":false,"schema":{"type":"string","example":"desc","default":"desc","enum":["asc","desc"]}},{"name":"engagement_id","in":"query","description":"The engagement's ID.","required":false,"schema":{"type":"string","example":"PWHDRE7Downvsdf"}},{"name":"direction","in":"query","description":"The engagement's direction.","required":false,"schema":{"type":"string","example":"outbound","enum":["inbound","outbound"]}},{"name":"channels","in":"query","description":"The name of the channels on the Zoom platform.","required":false,"schema":{"type":"array","example":["video"],"items":{"type":"string","enum":["voice","video","messaging","email","work_item"]}}},{"name":"channel_sources","in":"query","description":"The name of sources on the Zoom platform that specifically relate to a channel.\n* `voice` - voice\n* `web_video` - web video\n* `in_app_video` - in-app video\n* `kiosk_video` - kiosk video\n* `web_chat` - web chat\n* `in_app_chat` - in-app chat\n* `team_chat` - Zoom team chat\n* `sms` - SMS\n* `facebook_messenger` - Facebook messenger\n* `instagram` - Instagram\n* `whatsapp` - Whatsapp\n* `email_address` - email\n* `api` - Work Item API","required":false,"schema":{"type":"array","example":["web_video"],"items":{"type":"string","enum":["voice","web_video","in_app_video","kiosk_video","web_chat","in_app_chat","team_chat","sms","facebook_messenger","instagram","whatsapp","email_address","api"]}}},{"name":"consumer_name","in":"query","description":"The consumer name or consumer email or consumer phone number. This is a fuzzy search filter.","required":false,"schema":{"type":"string","example":"Bruce Lee"}},{"name":"queue_ids","in":"query","description":"A queue's specific ID list.","required":false,"schema":{"type":"array","example":["_dkUfugn8eDFkRohArKqQ"],"items":{"type":"string"}}},{"name":"user_ids","in":"query","description":"The ID list of the agents who are set up on the agents' profile.","required":false,"schema":{"type":"array","example":["i5iDfUroHKU&*FH"],"items":{"type":"string"}}},{"name":"team_ids","in":"query","description":"The team's specific ID list.","required":false,"schema":{"type":"array","example":["agent team1"],"items":{"type":"string"}}},{"name":"flow_ids","in":"query","description":"The flows' specific ID list.","required":false,"schema":{"type":"array","example":["sd8erwgdsUNB_3Vw"],"items":{"type":"string"}}},{"name":"blocked","in":"query","description":"Is blocked.","required":false,"schema":{"type":"boolean","example":false}},{"name":"event_names","in":"query","description":"The events' name list.","required":false,"schema":{"type":"array","example":["engagement.start"],"items":{"type":"string"}}},{"name":"caller_id","in":"query","description":"The caller's phone number.","required":false,"schema":{"type":"string","example":"+19135551212"}},{"name":"ani_from","in":"query","description":"The phone number that an engagement originated from.","required":false,"schema":{"type":"string","example":"+19135551212"}},{"name":"dnis_to","in":"query","description":"The original number that was dialed for an engagement.","required":false,"schema":{"type":"string","example":"+12095551212"}},{"name":"aiea_used","in":"query","description":"Whether Agentic AI Expert Assist was involved in the engagement. The value can be `used`, `notUsed`, `used_interacted`, or `used_no_interaction`.","required":false,"schema":{"type":"string","example":"used","enum":["used","not_used","used_interacted","used_no_interaction"]}},{"name":"page_size","in":"query","description":"The number of records returned within a single API call.","required":false,"schema":{"maximum":100,"type":"integer","format":"int32","example":30,"default":30}},{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}}],"responses":{"200":{"description":"Generate a list of historical engagement logs data.","content":{"application/json":{"schema":{"type":"object","properties":{"timezone":{"type":"string","description":"The [timezone ID](/docs/api/references/abbreviations/#timezones) to use for the start time and end time in the query.\nThe default is **UTC**.","example":"UTC"},"engagement_logs":{"type":"array","description":"The engagement log list.","items":{"type":"object","properties":{"engagement_id":{"type":"string","description":"The engagement's specific ID.","example":"t0VAFD7FDkdfwHxlN40_w"},"direction":{"type":"string","description":"The engagement's direction.\n* inbound\n* outbound","example":"inbound","enum":["inbound","outbound"]},"channels":{"type":"array","description":"The channels on the Zoom platform such as voice, video, digital, and messaging.","items":{"type":"object","properties":{"channel":{"type":"string","description":"The name of the channels on the Zoom platform.","example":"video","enum":["voice","video","messaging","email","work_item"]},"channel_source":{"type":"string","description":"The name of sources on the Zoom platform that specifically relate to a channel.\n* `voice` - Only applies to voice channel.\n* `in_app_video` - Only applies to video channel.\n* `kiosk_video` - Only applies to video channel.\n* `web_video` - Only applies to video channel.\n* `in_app_chat` - Only applies to messaging channel.\n* `in_video_chat` - Only applies to messaging channel.\n* `web_chat` - Only applies to messaging channel.\n* `sms` - Only applies to messaging channel.\n* `facebook_messenger` - Only applies to messaging channel.\n* `instagram` - Only applies to messaging channel.\n* `team_chat` - Only applies to messaging channel.\n* `whatsapp` - Only applies to messaging channel.\n* `email_address` - Only applies to email channel.\n* `api` - Only applies to work_item channel.","example":"web_video","enum":["voice","web_video","in_app_video","kiosk_video","web_chat","in_app_chat","team_chat","sms","facebook_messenger","instagram","whatsapp","email_address","api"]}},"description":"The channels on the Zoom platform such as voice, video, digital, and messaging."}},"enter_channel":{"type":"object","properties":{"channel":{"type":"string","description":"The channel that the engagement was in when it entered the Zoom Contact Center.","example":"voice","enum":["voice","video","messaging","email","work_item"]},"channel_source":{"type":"string","description":"The name of enter sources on the Zoom platform that specifically relate to a channel.\n* `voice` - voice\n* `web_video` - web video\n* `in_app_video` - in-app video\n* `kiosk_video` - kiosk video\n* `web_chat` - web chat\n* `in_app_chat` - in-app chat\n* `team_chat` - Zoom team chat\n* `sms` - SMS\n* `facebook_messenger` - Facebook messenger\n* `instagram` - Instagram\n* `whatsapp` - Whatsapp\n* `email_address` - email\n* `api` - Work Item API","example":"voice","enum":["voice","web_video","in_app_video","kiosk_video","web_chat","in_app_chat","team_chat","sms","facebook_messenger","instagram","whatsapp","email_address","api"]}},"description":"The channel that the engagement was in when it entered the Contact Center."},"start_time":{"type":"string","description":"The engagement start time.","format":"date-time","example":"2025-05-26T16:30:08Z"},"end_time":{"type":"string","description":"The engagement end time.","format":"date-time","example":"2025-05-26T16:32:18Z"},"consumer":{"type":"object","properties":{"consumer_name":{"type":"string","description":"The consumer name.","example":"Jill Chill"},"consumer_email":{"type":"string","description":"The consumer email.","example":"jchill@example.com"},"consumer_number":{"type":"string","description":"The consumer number.","example":"+12095551212"}},"description":"The consumer's information."},"queues":{"type":"array","description":"All queues related to the engagement.","items":{"type":"object","properties":{"queue_id":{"type":"string","description":"A queue's specific ID.","example":"_dkUfugn8eDFkRohArKqQ"},"queue_name":{"type":"string","description":"A queue's specific name.","example":"my_queue"}},"description":"The queue related to the engagement."}},"users":{"type":"array","description":"All agents related to the engagement.","items":{"type":"object","properties":{"user_id":{"type":"string","description":"The ID of the agent who is set up on the agent profile.","example":"i5iDfUroHKU&*FH"},"user_name":{"type":"string","description":"The first and last name of the agent who is set up on the agent profile.","example":"kevin_agent"}},"description":"The agent related to the engagement."}},"teams":{"type":"array","description":"All teams related to the engagement.","items":{"type":"object","properties":{"team_id":{"type":"string","description":"A team's specific ID.","example":"wdhgyuYD74wUF"},"team_name":{"type":"string","description":"A team's name.","example":"agent team1"}},"description":"The team related to the engagement."}},"flows":{"type":"array","description":"All flows related to the engagement.","items":{"type":"object","properties":{"flow_id":{"type":"string","description":"A flow's specific ID.","example":"CBDH87436Hdjse"},"flow_name":{"type":"string","description":"A flow's name.","example":"flow1"}},"description":"The flow related to the engagement."}},"events":{"type":"array","description":"All events related to the engagement","items":{"type":"object","properties":{"event_id":{"type":"string","description":"A event's specific ID.","example":"rF61SnVrQjyLE2Je7a40uw"},"event_name":{"type":"string","description":"A event's name.","example":"engagement.start"}}}},"caller_id":{"type":"string","description":"The caller's phone number.","example":"+19135551212"},"ani_from":{"type":"string","description":"The phone number that an engagement originated from.","example":"+19135551212"},"dnis_to":{"type":"string","description":"The original number that was dialed for an engagement.","example":"+12095551212"},"duration":{"type":"number","description":"The engagement's duration, in milliseconds.","example":38000},"hold_count":{"type":"integer","description":"The number of times that a consumer was placed on hold.","example":3},"hold_duration":{"type":"number","description":"The amount of time that a consumer was placed on hold, in milliseconds. **NOTE** A call may have multiple hold times.","example":10000},"warm_transfer_initiated_count":{"type":"integer","description":"The number of voice or video engagements an agent answered and then warm transferred with another participant with or without fully transferring the engagement.","example":1},"warm_transfer_completed_count":{"type":"integer","description":"The number of voice or video engagements an agent answered and then warm transferred with another participant and then fully transferred the engagements.","example":1},"warm_transfer_duration":{"type":"number","description":"The amount of time an agent spent in conversation with another agent while the engagement was on hold, in **milliseconds**.","example":147000},"direct_transfer_count":{"type":"integer","description":"The number of direct transfers.","example":0},"transfer_initiated_count":{"type":"integer","description":"The number of direct transfers initiated.","example":0},"transfer_completed_count":{"type":"integer","description":"The number of direct transfers completed.","example":0},"warm_conference_count":{"type":"integer","description":"The number of warm conferences initiated.","example":0},"warm_conference_duration":{"type":"number","description":"The amount of time an agent spent in conversation with an engagement and at least one additional agent, in **milliseconds**.","example":10000},"conference_count":{"type":"integer","description":"The number of conferences that occurred.","example":3},"blocked":{"type":"boolean","description":"Is blocked.","example":false},"conference_duration":{"type":"number","description":"The amount of time an agent spent in conversation with an engagement and at least one additional agent, in milliseconds.","example":54000},"voicemail_count":{"type":"integer","description":"The number of voicemail.","example":3},"dispositions":{"type":"array","description":"The dispositions.","items":{"type":"object","properties":{"disposition_id":{"type":"string","description":"A disposition's specific ID.","example":"sUEMfweg34GFE"},"disposition_name":{"type":"string","description":"A disposition's name.","example":"kv"}},"description":"The disposition related to the engagement."}},"notes":{"type":"array","description":"The notes.","items":{"type":"object","properties":{"note_id":{"type":"string","description":"A note's specific ID.","example":"sdfwe67gaDDG"},"note_content":{"type":"string","description":"This note's content.","example":"content info"},"user_id":{"type":"string","description":"An agent's specific ID.","example":"CBVD4fwdfw3DF"}},"description":"The note related to the engagement."}},"transcript_url":{"type":"string","description":"The transcript URL, in `/v2/contact_center/engagements/transcripts/download/{engagementId}` format.","example":"/v2/contact_center/engagements/transcripts/download/t0VAFD7FDkdfwHxlN40_w"},"survey_id":{"type":"string","description":"The survey specfic ID.","example":"sghewyDF73FDE"},"aiea_used":{"type":"string","description":"Whether Agentic AI Expert Assist was involved in the engagement. This only applies to Agentic AI Expert Assist.\n\n**NOTE** Data is available only when the feature is enabled and properly licensed.","example":"not_used","enum":["used","not_used","used_interacted","used_no_interaction"]},"focus_duration":{"type":"number","description":"The amount of time by engagement where an agent spent time actively clicked into an engagement or speaking via the voice channel with a consumer, in milliseconds.","example":10000}},"description":"The engagement log detail."}},"page_size":{"maximum":100,"minimum":1,"type":"integer","description":"The number of records returned within a single API call.","example":30,"default":30},"total_records":{"minimum":0,"type":"integer","description":"The total number of all records available across pages.","example":10},"next_page_token":{"maxLength":100,"type":"string","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n "},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_report:read:admin","contact_center:read:engagement_log:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_report:read:admin"],"x-granular-scopes":["contact_center:read:engagement_log:admin"]}}},"/contact_center/analytics/log/historical/journey":{"get":{"tags":["Reports V2 (CX Analytics)"],"summary":"List historical Zoom Phone to Contact Center call journey data","description":"View the complete customer journey of a call across both Contact Center and Zoom Phone.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_report:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:call_journey_log:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `HEAVY`","operationId":"ListhistoricalZoomphonetozcccalljourneydata","parameters":[{"name":"timezone","in":"query","description":"The [timezone ID](/docs/api/references/abbreviations/#timezones) to use for the start time and end time in the query. The default is UTC.","required":false,"schema":{"type":"string","example":"UTC"}},{"name":"from","in":"query","description":"The start time to pull the engagement logs that started after this date and time. The response only includes one month's worth of data. If there is no specified start date, the API returns data from the past 24 hours.","required":false,"schema":{"pattern":"YYYY-MM-DDTHH:MM:SSZ","type":"string","format":"date-time","example":"2025-05-21T19:17:00Z"}},{"name":"to","in":"query","description":"Required only when the `from` parameter is specified. \nPulls the engagement logs that started in the given `from` and `to` time periods.","required":false,"schema":{"pattern":"YYYY-MM-DDTHH:MM:SSZ","type":"string","format":"date-time","example":"2025-05-26T11:22:22Z"}},{"name":"global_engagement_id","in":"query","description":"The global engagement ID.","required":false,"schema":{"type":"string","example":"PWHDRE7Downvsdf"}},{"name":"direction","in":"query","description":"The engagement's direction. \n* `inbound` \n* `outbound` \n* `internal`","required":false,"schema":{"type":"string","example":"outbound","enum":["outbound","inbound","internal"]}},{"name":"channels","in":"query","description":"The name of the channels on the Zoom platform.\n* voice\n* video\n* messaging\n* email","required":false,"schema":{"type":"array","example":["video"],"items":{"type":"string","enum":["voice","video","messaging","email"]}}},{"name":"channel_sources","in":"query","description":"The name of sources on the Zoom platform that specifically relate to a channel.\n* `voice` - voice\n* `web_video` - web video\n* `in_app_video` - in-app video\n* `kiosk_video` - kiosk video\n* `web_chat` - web chat(web)\n* `in_app_chat` - in-app chat\n* `team_chat` - Zoom team chat\n* `sms` - SMS\n* `facebook_messenger` - Facebook messenger\n* `instagram` - Instagram\n* `whatsapp` - Whatsapp\n* `email_address` - email","required":false,"schema":{"type":"array","example":["web_video"],"items":{"type":"string","enum":["voice","web_video","in_app_video","kiosk_video","web_chat","in_app_chat","team_chat","sms","facebook_messenger","instagram","whatsapp","email_address"]}}},{"name":"queue_ids","in":"query","description":"A queue's specific ID list.","required":false,"schema":{"type":"array","example":["_dkUfugn8eDFkRohArKqQ"],"items":{"type":"string"}}},{"name":"user_ids","in":"query","description":"The ID list of the agents who are set up on the agents profile.","required":false,"schema":{"type":"array","example":["i5iDfUroHKU&*FH"],"items":{"type":"string"}}},{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of records returned within a single API call.","required":false,"schema":{"maximum":100,"type":"integer","format":"int32","example":30,"default":30}}],"responses":{"200":{"description":"Generate a list of historical Zoom Phone to Contact Center call journey data.","content":{"application/json":{"schema":{"type":"object","properties":{"journeys":{"type":"array","description":"All Zoom Phone and Contact Center call journeys. ","items":{"type":"object","properties":{"global_engagement_id":{"type":"string","description":"The global engagement ID.","example":"7512200802025393153"},"direction":{"type":"string","description":"The engagement's direction. \n* `inbound` \n* `outbound` \n* `internal`","example":"inbound","enum":["inbound","outbound","internal"]},"channels":{"type":"array","description":"All channels on the Zoom platform such as voice, video, or digital.","example":["voice"],"items":{"type":"object","properties":{"channel":{"type":"string","description":"The name of the channels on the Zoom platform.\n* voice\n* video\n* messaging\n* email","example":"voice","enum":["voice","video","messaging","email"]},"channel_source":{"type":"string","description":"The name of sources on the Zoom platform that specifically relate to a channel.\n- `voice` - Only applies to voice channel.\n- `in_app_video` - Only applies to video channel.\n- `kiosk_video` - Only applies to video channel.\n- `web_video` - Only applies to video channel.\n- `in_app_chat` - Only applies to messaging channel.\n- `in_video_chat` - Only applies to messaging channel.\n- `web_chat` - Only applies to messaging channel.\n- `sms` - Only applies to messaging channel.\n- `facebook_messenger` - Only applies to messaging channel.\n- `instagram` - Only applies to messaging channel.\n- `team_chat` - Only applies to messaging channel.\n- `whatsapp` - Only applies to messaging channel.\n- `email_address` - Only applies to email channel.","example":"voice","enum":["voice","web_video","in_app_video","kiosk_video","web_chat","in_app_chat","team_chat","sms","facebook_messenger","instagram","whatsapp","email_address"]}},"description":"The channel related to this engagement."}},"ani_from":{"type":"string","description":"The phone number that an engagement originated from.","example":"+19135551212"},"dnis_to":{"type":"string","description":"The original number that was dialed for an engagement.","example":"+12095551212"},"start_time":{"pattern":"YYYY-MM-DDTHH:MM:SSZ","type":"string","description":"The engagement's start time.","format":"date-time","example":"2025-05-26T16:32:18Z"},"consumer":{"type":"object","properties":{"consumer_number":{"type":"string","description":"The consumer's number.","example":"+19135551212"}},"description":"The consumer's information."},"queues":{"type":"array","description":"All queues related to the engagement.","example":[{"queue_id":"sfgwHE&gEFHE","queue_name":"callen-voice-queue"}],"items":{"type":"object","properties":{"queue_id":{"type":"string","description":"A queue's specific ID.","example":"_dkUfugn8eDFkRohArKqQ"},"queue_name":{"type":"string","description":"A queue's specific name.","example":"my_queue"}},"description":"The queue related to the engagement."}},"users":{"type":"array","description":"All agents related to the engagement.","example":[{"user_id":"sdFHEYF&G*E","user_name":"callen huang-agent"}],"items":{"type":"object","properties":{"user_id":{"type":"string","description":"The ID of the agent who is set up on the agent profile.","example":"i5iDfUroHKU&*FH"},"user_name":{"type":"string","description":"The first and last name of the agent who is set up on the agent profile.","example":"kevin_agent"}},"description":"The agent related to the engagement."}},"teams":{"type":"array","description":"All teams related to the engagement.","example":[{"team_id":"sdFHEYF&G*E","team_name":"finlay-child"}],"items":{"type":"object","properties":{"team_id":{"type":"string","description":"A team's specific ID.","example":"wdhgyuYD74wUF"},"team_name":{"type":"string","description":"A team's name.","example":"agent team1"}},"description":"The team related to the engagement."}},"call_queues":{"type":"array","description":"A list of **Call Queue** information. In Zoom Phone, this represents a group of phone users or common-area phones configured to handle incoming calls using defined distribution strategies such as simultaneous or round robin.\n\nWhen integrated with Contact Center, a call queue can be designated as a routing target for Contact Center voice flows, enabling Contact Center interactions to be processed through your Phone call queue infrastructure.","items":{"type":"object","properties":{"extension_name":{"type":"string","description":"The Zoom Phone call queue name.","example":"test call queue"},"phone_number":{"type":"string","description":"The Zoom Phone number.","example":"+12097481234"},"extension_number":{"type":"string","description":"The Zoom Phone extension number, such as 32784.","example":"7623"}},"description":"The Zoom Phone call queue information."}},"zoom_phone_users":{"type":"array","description":"A list of **Zoom Phone User** information, representing an individual extension-enabled user.\n    In integrated Zoom Contact Center scenarios, phone users can act as contact-center agents or recipients—either receiving calls directly transferred from Zoom Contact Center or functioning as members of call queues or auto receptionist routes.","items":{"type":"object","properties":{"extension_name":{"type":"string","description":"The Zoom Phone user name.","example":"testSite"},"phone_number":{"type":"string","description":"The Zoom Phone number.","example":"+12095551212"},"extension_number":{"type":"string","description":"The Zoom Phone short number.","example":"7623"}},"description":"The Zoom phone user information."}},"shared_line_groups":{"type":"array","description":"A list of **Shared Line Group** information. This allows multiple phone users or common-area phones to share a phone number and voicemail inbox. Zoom Phone admins can apply business hours and routing rules to these groups.\n    When used with Zoom Contact Center, shared line groups can be selected as voice-flow targets—calls reaching the shared number are processed by any group member.","items":{"type":"object","properties":{"extension_name":{"type":"string","description":"The Zoom Phone share line group name.","example":"test slg"},"phone_number":{"type":"string","description":"The Zoom Phone number.","example":"+12095551212"},"extension_number":{"type":"string","description":"The Zoom Phone extension number.","example":"7623"}},"description":"The Zoom Phone shared line group information."}},"auto_receptionists":{"type":"array","description":"A list of **Auto Receptionist** information. It answers incoming calls with a greeting or IVR menu and routes them to destinations such as phone users, call queues, common areas, voicemail, or an IVR system.\n\nWith Contact Center integration, auto receptionists often serve as entry points into Contact Center voice flows, directing callers into Contact Center handling.","items":{"type":"object","properties":{"extension_name":{"type":"string","description":"The Zoom Phone auto receptionist.","example":"test-ar"},"phone_number":{"type":"string","description":"The Zoom Phone number.","example":"+12095551212"},"extension_number":{"type":"string","description":"The Zoom Phone extension number.","example":"7623"}},"description":"The Zoom Phone auto receptionist information."}},"common_areas":{"type":"array","description":"A list of **Common Areas** information, it typically deployed in shared office spaces like lobbies or conference rooms.\n    These devices can be members of call queues, shared line groups, or receive calls via auto receptionist.\n    In Zoom Contact Center enabled environments, common-area extensions may also serve as caller IDs or routing targets within Contact Center flows.","items":{"type":"object","properties":{"extension_name":{"type":"string","description":"The common area name.","example":"test common area"},"phone_number":{"type":"string","description":"The Zoom Phone number.","example":"+12095551212"},"extension_number":{"type":"string","description":"The Zoom Phone extension number.","example":"7623"}},"description":"The Zoom Phone common area information."}},"zoom_rooms":{"type":"array","description":"A list of **Zoom Room** information. Each represents a Zoom Room or standards-based SIP/H.323 room, like Cisco/Polycom, licensed for Zoom Phone.\n\nThese rooms can make and receive phone calls using Zoom Phone services. When integrated with Contact Center, Zoom Rooms can be used as call destinations, entry points, or agent endpoints within Contact Center voice flows.","items":{"type":"object","properties":{"extension_name":{"type":"string","description":"The Zoom Room name.","example":"my room"},"phone_number":{"type":"string","description":"The Zoom Phone number.","example":"+12095551212"},"extension_number":{"type":"string","description":"The Zoom Phone extension number.","example":"7623"}},"description":"The Zoom room information."}},"inter_ops":{"type":"array","description":"A list of **Interoperability Operation** information, representing standards-based SIP/H.323 room systems (e.g., Cisco Room, Polycom Room)\n    integrated with Zoom through the Conference Room Connector.\n    These devices are equipped with Zoom Phone calling capabilities, allowing them to make and receive phone calls.\n    In Contact Center scenarios, interop rooms may serve as voice-flow targets or conferencing endpoints, enabling seamless integration of third-party hardware into Contact Center workflows.\n","items":{"type":"object","properties":{"extension_name":{"type":"string","description":"The Cisco/Polycom room name.","example":"Cisco room0101"},"phone_number":{"type":"string","description":"The Zoom Phone number.","example":"+12097481234"},"extension_number":{"type":"string","description":"The Zoom Phone extension number.","example":"26701"}},"description":"The Cisco/Polycom room information."}}},"description":"The Zoom Phone and Contact Center call journey information."}},"timezone":{"type":"string","description":"The [timezone ID](/docs/api/references/abbreviations/#timezones) to use for the start time and end time in the query. The default is UTC.","example":"UTC"},"page_size":{"maximum":100,"minimum":1,"type":"integer","description":"The number of records returned within a single API call.","example":30,"default":30},"total_records":{"minimum":0,"type":"integer","description":"The total number of all records available across pages.","example":10},"next_page_token":{"maxLength":100,"type":"string","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n "},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_report:read:admin","contact_center:read:call_journey_log:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_report:read:admin"],"x-granular-scopes":["contact_center:read:call_journey_log:admin"]}}},"/contact_center/reports/operation_logs":{"get":{"tags":["Reports V2 (CX Analytics)"],"summary":"List operation logs","description":"Retrieve the Zoom Contact Center management system operation logs report. \n\nThe Zoom Contact Center management system operation logs report lets account owners and admins view monthly Zoom Contact Center related admin operation details.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_operation_logs:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:operation_logs:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `HEAVY`","operationId":"listOperationLogs","parameters":[{"name":"from","in":"query","description":"The start time and date in `yyyy-MM-dd` format. The date range defined by the `from` and `to` parameters should be a month, as the response only includes one month's worth of data at once. If unspecified, returns data within the past 24 hours.","required":false,"schema":{"type":"string","format":"date","example":"2024-04-01"}},{"name":"to","in":"query","description":"**Required** when specifying the `from` parameter. \nThe start time and date in `yyyy-MM-dd` format. The date range defined by the `from` and `to` parameters should be a month, as the response only includes one month's worth of data at once. If unspecified, returns data within the past 24 hours.","required":false,"schema":{"type":"string","format":"date","example":"2024-04-30"}},{"name":"category","in":"query","description":"Filter the response by the category of the action performed. By default, the value of this field is `all`, and the response includes a log of all operations for the defined period. To only include responses for a specific category type, provide a value for the category from [this table](/docs/api/rest/contact-center-api/contact-center-operation-categories/).","required":false,"schema":{"type":"string","example":"Engagement"}},{"name":"action","in":"query","description":"Filter responses according to the type of operation performed. The value of this field is `all`, and the response includes a log of all operations for the defined period.","required":false,"schema":{"type":"string","example":"Add","enum":["Add","Delete","Update","Operate","Move","Download","Recover","Import","Export","Unmask","Subscribe","Agree","Generate","Enable","Disable","Publish","Unpublish","Opt-Out","SyncData","Initizate","Submit","Restore","Listen","Edit","REST API - Add","REST API - Delete","REST API - Update","Manually Redact","Migrate"]}},{"name":"keyword","in":"query","description":"Filter responses according to `objectName` and operator. The default value is empty, which queries all data.","required":false,"schema":{"type":"string","example":"test_over_flow"}},{"name":"agent_region_id","in":"query","description":"The agent's region ID.","required":false,"schema":{"type":"string","example":"test_region_id"}},{"name":"agent_region_name","in":"query","description":"The agtent's region name.","required":false,"schema":{"type":"string","example":"test_region_name"}},{"name":"team_id","in":"query","description":"Unique identifier for the agent's team.","required":false,"schema":{"type":"string","example":"test_team_id"}},{"name":"team_name","in":"query","description":"Name of the agent's team.","required":false,"schema":{"type":"string","example":"test_team_name"}},{"name":"sort_order","in":"query","description":"Controls the order that records are returned based on the selected time.","required":false,"schema":{"type":"string","example":"desc","enum":["asc","desc"]}},{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of records returned in a single API call.","required":false,"schema":{"maximum":300,"type":"integer","format":"int32","example":30,"default":30}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \nInbox messages returned.","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"maxLength":100,"type":"string","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":300,"type":"integer","description":"The number of records returned in a single API call.","example":30,"default":30},"total_records":{"minimum":0,"type":"integer","description":"The total number of all records available across pages.","example":10},"operation_logs":{"type":"array","description":"The array of operation log objects.","items":{"type":"object","properties":{"time":{"type":"string","description":"The time when the operation was performed.","format":"date-time","example":"2024-04-25T07:51:30Z"},"operator":{"type":"string","description":"The user who performed the operation.","example":"test@zoomtest.us"},"category":{"type":"string","description":"The operation's category type.","example":"Account"},"object_name":{"type":"string","description":"The operation's object name.","example":"test user"},"operation_log_id":{"type":"string","description":"The operation's unique identifier.","example":"VD8z8Q4UT4yGWhpiGdk5bw"},"action":{"type":"string","description":"The operation's action type.","example":"Create"},"operation_detail":{"type":"string","description":"The operation details.","example":"Add Flows: [inbox-voicemail]"},"agent_region_id":{"type":"string","description":"Region ID of the Agent.","example":"test_region_id"},"agent_region_name":{"type":"string","description":"Region name of the Agent.","example":"test_region_name"},"team_id":{"type":"string","description":"Unique identifier for the agent's team.","example":"test_team_id"},"team_name":{"type":"string","description":"Name of the agent's team.","example":"test_team_name"},"object_id":{"type":"string","description":"The operation's object ID.","example":"rMTX7iq2RGy6ELcm91bcLA"}}}},"highest_watermark":{"type":"string","description":"The latest time among the returned records within the query window.","format":"date-time","example":"2024-04-25T07:51:30Z"}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `300` <br>\n Invalid field. <br>\n**Error Code:** `6002` <br>\n The query time from cannot be greater than to. <br>\n**Error Code:** `6003` <br>\n The time range of the query from and to exceeds one month. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n**Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rest/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_operation_logs:read:admin","contact_center:read:operation_logs:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_operation_logs:read:admin"],"x-granular-scopes":["contact_center:read:operation_logs:admin"]}}},"/contact_center/roles":{"get":{"tags":["Roles"],"summary":"List roles","description":"Use this API to return a list of roles. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_role:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:list_roles:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"listRoles","parameters":[{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token returns whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of items returned per page.","required":false,"schema":{"maximum":300,"type":"integer","format":"int32","example":30,"default":30}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \nRole list returned.","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"type":"string","description":"The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":300,"type":"integer","description":"The number of records returned within a single API call.","example":30,"default":30},"total_records":{"type":"integer","description":"The total number of all the records available across pages.","example":1},"roles":{"type":"array","description":"Information about user roles.","items":{"type":"object","properties":{"role_id":{"type":"string","description":"The role's ID.","example":"-7uu_aUQRL-zXybozrSBWw"},"role_name":{"type":"string","description":"The role's name.","example":"Agent"},"role_description":{"type":"string","description":"The role's description.","example":"Agent role."},"total_users":{"type":"integer","description":"Number of users with the role.","example":3},"modified_by":{"type":"string","description":"The ID of the user who last modified the role.","example":"IGTRVt3gQ2i-WjoUIjeZxw"},"last_modified_time":{"type":"string","description":"The date and time at which the role was last modified.","format":"date-time","example":"2022-03-03T05:07:46Z"}}}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_role:read:admin","contact_center:read:list_roles:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_role:read:admin"],"x-granular-scopes":["contact_center:read:list_roles:admin"]}},"post":{"tags":["Roles"],"summary":"Create a role","description":"Create a new [role](https://support.zoom.us/hc/en-us/articles/4471054202253-Using-role-management). Admins can use the role management feature to control access to features and settings in the Zoom web portal. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_role:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:write:role:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"createRole","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"role_name":{"type":"string","description":"The user role's name.","example":"Agent"},"role_description":{"type":"string","description":"The role's description.","example":"Agent role."},"privileges":{"maxItems":300,"type":"array","description":"Any one or more of [these privileges](/docs/api/references/contact-center-privileges/) assigned to the role.","items":{"type":"string","example":"UserManagement:Read"}}}}}}},"responses":{"201":{"description":"**HTTP Status Code:** `201`   \n \nRole created.","content":{"application/json":{"schema":{"type":"object","properties":{"role_id":{"type":"string","description":"The role's ID.","example":"zeYjXoDOS_eV1QmTpj63PQ"},"role_name":{"type":"string","description":"The role's name.","example":"Agent"},"role_description":{"type":"string","description":"The role's description.","example":"Agent role."},"privileges":{"type":"object","properties":{"analytics_settings":{"maxItems":200,"type":"array","items":{"type":"string","example":"RptWallboard:Read"}},"administration_settings":{"maxItems":200,"type":"array","items":{"type":"string","example":"UserManagement:Read"}},"general_settings":{"maxItems":200,"type":"array","items":{"type":"string","example":"OutboundVoiceCall"}}},"description":"Any one or more of [these privileges](/docs/api/references/contact-center-privileges/) assigned to the role."}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `2203` <br>\n The role name already exists. Please change to a new one. <br>\n**Error Code:** `300` <br>\n Validation failed. <br>\n**Error Code:** `2207` <br>\n Invalid role privileges: $privileges. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_role:write:admin","contact_center:write:role:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_role:write:admin"],"x-granular-scopes":["contact_center:write:role:admin"]}}},"/contact_center/roles/duplicate":{"post":{"tags":["Roles"],"summary":"Duplicate a role","description":"Duplicate the role specified by the original role name and assign it a new name. All settings, permissions, and configurations of the original role will be copied to the new role.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_role:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:write:role:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"Duplicatearole","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"original_role_name":{"type":"string","description":"The name of the role to duplicate.","example":"Agent"},"new_role_name":{"type":"string","description":"The new, duplicated role's name.","example":"Agent_Copy"}}}}}},"responses":{"201":{"description":"**HTTP Status Code:** `201`    Role created.","content":{"application/json":{"schema":{"type":"object","properties":{"role_id":{"type":"string","description":"The role's ID.","example":"zeYjXoDOS_eV1QmTpj63PQ"},"role_name":{"type":"string","description":"The role's name.","example":"Agent_Copy"},"role_description":{"type":"string","description":"The role's description.","example":"Agent role copy."}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `2203` <br>\n The role name already exists. Please change to a new one. <br>\n**Error Code:** `300` <br>\n Validation failed. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_role:write:admin","contact_center:write:role:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_role:write:admin"],"x-granular-scopes":["contact_center:write:role:admin"]}}},"/contact_center/roles/{roleId}":{"get":{"tags":["Roles"],"summary":"Get a role","description":"Get information about a role. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_role:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:role:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"getRole","parameters":[{"name":"roleId","in":"path","description":"The role's ID.","required":true,"schema":{"type":"string","example":"zeYjXoDOS_eV1QmTpj63PQ"}},{"name":"role_identifier_type","in":"query","description":"How the path parameter is interpreted. `id` treats it as a system-generated unique identifier. `name` treats it as the resource name.\nWhen using `name`, the resource name must be URL-encoded per RFC 3986.","required":false,"schema":{"type":"string","example":"id","default":"id","enum":["id","name"]}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \nRole returned.","content":{"application/json":{"schema":{"type":"object","properties":{"role_id":{"type":"string","description":"The role's ID.","example":"zeYjXoDOS_eV1QmTpj63PQ"},"role_name":{"type":"string","description":"The role's name.","example":"Agent"},"role_description":{"type":"string","description":"The role's description.","example":"Agent role."},"total_users":{"type":"integer","description":"The number of users with the role.","example":3},"modified_by":{"type":"string","description":"The ID of the user who last modified the role.","example":"IGTRVt3gQ2i-WjoUIjeZxw"},"last_modified_time":{"type":"string","description":"The date and time when the role was last modified.","format":"date-time","example":"2022-03-03T05:07:46Z"},"privileges":{"type":"object","properties":{"analytics_settings":{"type":"array","items":{"type":"string","description":"[These permissions](https://support.zoom.com/hc/en/article?id=zm_kb&sysparm_article=KB0061941#h_01FWHA20K7CF310WJB29QXMNKC) control access to various analytics and reporting features, including real-time analytics, historical reports, and user activity tracking.\n| Privileges | Description |\n| :------ | :------ |\n| `RptMyAgents:Read` | Allow user to view the status of agents. |\n| `RptQueueAnalytics:Read` | Allow user to view real-time charts. |\n| `RptQueueAnalyticsOverview:Read` | Allow user to view overview data for all channels. |\n| `RptActiveChannelEngagements:Read` | Allow user to view active engagements for each channel. |\n| `RptWallboard:Read` | Allow user to view wallboards. |\n| `RptWallboard:Edit` | Allow user to add new wallboard views, duplicate existing ones and edit them. |\n| `RptWallboardShare:Edit` | Allow user to share the wallboard views they create. |\n| `RptAgentReport:Read` | Allow user to view agent’s timesheets. |\n| `RptAgentReportOverview:Read` | Allow user to view overview data for all channels. |\n| `RptAgentReportExport:Edit` | Allow user to export agent time sheet data. |\n| `RptQueueChartReport:Read` | Allow user to view historical queue charts. |\n| `RptQueueChartReportOverView:Read` | Allow user to view overview data for all channels. |\n| `RptQueueChartReportExport:Edit` | Allow user to export queue chart data. |\n| `RptQueueDetailReport:Read` | Allow user to view historical queue details. |\n| `RptQueueDetailReportExport:Edit` | Allow user to export queue detail data. |\n| `RptQueueIntervalReport:Read` | Allow user to view the interval report. |\n| `RptQueueIntervalReportExport:Edit` | Allow user to export interval report data |\n| `RptFlowChartReport:Read` | Allow user to view the flow chart report. |\n| `RptFlowChartReportExport:Edit` | Allow user to export flow chart data. |\n| `RptFlowDetailReport:Read` | Allow user to view the flow detail report. |\n| `RptFlowDetailReportExport:Edit` | Allow user to export flow detail data. |\n| `RptSurvey:Read` | Allow user to view the consumer engagement surveys report. |\n| `RptSurveyExport:Edit` | Allow user to export engagement survey results. |\n| `RptSubscriptions:Read` | Allow user to create or view subscriptions. |\n| `RptCustomReports:Read` | Allow user to view existing reports (including default reports). |\n| `RptCustomReports:Edit` | Allow user to create and duplicate reports. |\n| `RptCustomReportsShare:Edit` | Allow user to share default and custom reports with your organization. |\n| `RptCustomReportsExport:Edit` | Allow user to export default and custom reports. |\n| `RptCustomReportsSchedule:Edit` | Allow user to schedule default and custom reports. |\n| `RptLogs:Read` | Allow user to view the logs. |\n| `RptLogsExport:Edit` | Allow user to export logs. |\n| `RptLogsErasePII:Edit` | Allow user to erase personal information in the engagement log. |\n| `RptDashboards:Read` |  Allow user to view existing dashboards (including default dashboards). |\n| `RptDashboards:Edit` | Allow user to create and duplicate dashboards. |\n| `RptDashboardsShare:Edit` | Allow user to share custom dashboards. |\n| `RptContactCenter:Read` | Allow user to view the contact center usage report. |\n| `RptContactCenterExport:Edit` | Allow user to export contact center usage report data. |\n| `RptContactCenterOperationLog:Read` | Allow user to view the contact center operation log. |\n| `RptContactCenterOperationLogExport:Edit` | Allow user to export operation log data. |","example":"RptWallboard:Read"}},"administration_settings":{"type":"array","items":{"type":"string","description":"[These permissions](https://support.zoom.com/hc/en/article?id=zm_kb&sysparm_article=KB0061941#h_01GMEG7MDSBBXS4NSBME5617YX) control access to user and team management, as well as queue management, log management, etc.\n| Permission Name | Description |\n| --- | --- |\n| UserManagement:Read, UserManagement:Edit | Allow user to view and manage users. |\n| TeamManagement:Read, TeamManagement:Edit | Allow user to view and manage teams. |\n| RoleManagement:Read, RoleManagement:Edit | Allow user to view and manage roles. |\n| SkillManagement:Read, SkillManagement:Edit | Allow user to view and manage skills. |\n| InboxManagement:Read, InboxManagement:Edit | Allow user to view and manage inboxes. |\n| QueueManagement:Read, QueueManagement:Edit | Allow user to view and manage queues. |\n| NumberManagement:Read, NumberManagement:Edit | Allow user to view and manage numbers. |\n| RoutingProfileManagement:Read, RoutingProfileManagement:Edit | Allow user to view and manage routing profiles. |\n| DispositionManagement:Read, DispositionManagement:Edit | Allow user to view and manage dispositions. |\n| WaitingRoomManagement:Read, WaitingRoomManagement:Edit | Allow user to view and manage waiting rooms. |\n| FlowManagement:Read, FlowManagement:Edit | Allow user to view and manage flows in flow editor. |\n| PreferenceManagement:Read, PreferenceManagement:Edit | Allow user to view and manage account preferences. |\n| AddressBookManagement:Read, AddressBookManagement:Edit | Allow user to view and manage address books. |\n| AddressCustomFieldManagement:Read, AddressCustomFieldManagement:Edit | Allow user to view and manage address book custom fields. |\n| CampaignManagement:Read, CampaignManagement:Edit | Allow user to view and manage web campaigns. |\n| IntegrationManagement:Read, IntegrationManagement:Edit | Allow user to view and manage integrations. |\n| RoutingEngineManagement:Read, RoutingEngineManagement:Edit | Allow user to view Routing Engine console. |\n| LogManagement:Read | Allow user to view and manage logs. |\n| EngagementLogManagement:Read | Allow user to view the engagement log. |\n| EngagementLogExport:Edit | Allow user to export engagement log data. |\n| EngagementLogErasePII:Edit | Allow user to erase personal information in the engagement log. |\n| VoiceCallLogManagement:Read | Allow user to view the voice calls log. |\n| VoiceCallLogExport:Edit | Allow user to export voice calls log data. |\n| SMSLogManagement:Read | Allow user to view the SMS log. |\n| SMSLogExport:Edit | Allow user to export SMS log data. |\n| RecordingsLogManagement:Read | Allow user to view the recordings log. |\n| RecordingsLogExport:Edit | Allow user to export recordings log data. |\n| VariablesLogManagement:Read | Allow user to view the variables log. |\n| VariablesLogExport:Edit | Allow user to export variables log data. |\n| VariablesLogDelete:Edit | Allow user to permanently delete engagement variables. |\n| VoiceRecordingAccess:Read | Allow user to view list of Cobrowse recordings. |\n| RecordingPlay:Edit | Allow user to play voice, video and messaging Cobrowse recordings. |\n| VoiceRecordingDownload:Edit | Allow user to download voice, video and messaging Cobrowse recordings. |\n| VoiceRecordingDelete:Edit | Allow user to delete voice, video and messaging Cobrowse recordings. |\n| VoiceDataRetentionExemption:Edit | Allow user to manage data retention exemption for recordings. |","example":"VecUser:Read"}},"general_settings":{"type":"array","items":{"type":"string","description":"[These permissions](https://support.zoom.com/hc/en/article?id=zm_kb&sysparm_article=KB0061941#h_01FWHA20K7CF310WJB29QXMNKC) control access to start various types of outbound engagements, engagement features, client customization features, etc.\n| Permission Name | Description |\n| --- | --- |\n| OutboundVoiceCall | Allow user to start a new outbound voice engagement to consumer(s). |\n| OutboundVideoCall | Allow user to start a new outbound video engagement to consumer(s). |\n| OutboundSMS | Allow user to start a new outbound messaging engagement to consumer(s). |\n| OutboundEmail | Allow user to start a new outbound email engagement to consumer(s). |\n| QueueOptInOut | Allow user to opt in or out of their assigned queues. |\n| OtherUserQueueOpt | Allow user to opt other users in or out of their assigned queues. |\n| ChangeUserStatus | Allow user to change the Ready/Not Ready status of other users. |\n| ContactManagement | Allow user to add or edit contacts information in the client. |\n| VoicemailManagement | Allow user to view and manage the voicemails. |\n| VoicemailPlay | Allow user to play voicemails. |\n| VoicemailDownload | Allow user to download voicemails. |\n| VoicemailAssign | Allow user to assign voicemail to others. |\n| VoicemailDelete | Allow user to delete voicemails. |\n| OwnCallRecordingView | Allow user to view and play their own voice, video and messaging Cobrowse recordings. |\n| MessagingTranscript | Allow user to access the list of messaging transcript. |\n| MessagingTranscriptDelete | Allow user to delete messaging transcript. |\n| MessagingTranscriptDownload | Allow user to download messaging transcript. |\n| EmailTranscript | Allow user to access the list of email transcript. |\n| EmailTranscriptDelete | Allow user to delete email transcript. |\n| EmailTranscriptDownload | Allow user to download email transcript. |\n| ConsumerHistory | Allow user to view consumer history under profile in the client. |\n| EngagementNote | Allow user to add or edit notes while in an engagement. |\n| FileShare | Allow user to send and receive files in messaging and email engagements. |\n| EngagementUpgrade | Allow user to upgrade engagements to voice or video calls. |\n| ChatToVoiceUpgrade | Allow user to upgrade engagements to voice from Chat(web). |\n| FacebookToVoiceUpgrade | Allow user to upgrade engagements to voice from Facebook Messenger. |\n| SMSToVoiceUpgrade | Allow user to upgrade engagements to voice from SMS. |\n| WhatsAppToVoiceUpgrade | Allow user to upgrade engagements to voice from WhatsApp. |\n| InstagramToVoiceUpgrade | Allow user to upgrade engagements to voice from Instagram. |\n| TeamChatToVoiceUpgrade | Allow user to upgrade engagements to voice from Zoom Team Chat. |\n| ChatToVideoUpgrade | Allow user to upgrade engagements to video from Chat(web). |\n| FacebookToVideoUpgrade | Allow user to upgrade engagements to video from Facebook Messenger. |\n| SMSToVideoUpgrade | Allow user to upgrade engagements to video from SMS. |\n| VoiceToVideoUpgrade | Allow user to upgrade engagements to video from Voice. |\n| WhatsAppToVideoUpgrade | Allow user to upgrade engagements to video from WhatsApp. |\n| InstagramToVideoUpgrade | Allow user to upgrade engagements to video from Instagram. |\n| TeamChatToVideoUpgrade | Allow user to upgrade engagements to video from Zoom Team Chat. |\n| VideoOnHold | Allow user to put video on hold. |\n| EngagementTransfer | Allow user to transfer engagements to queues, flows and/or agents. |\n| CobrowseSession | Allow user to start Cobrowse sessions during voice and web chat engagements. |\n| WaitingRoomVideoDropIn | Allow user to talk with consumers on video while they’re in the waiting room. |\n| WaitingRoomVideoChat | Allow user to chat with consumers on engagements while they wait. |\n| EngagementListen | Allow user to listen in on engagements assigned to other agents. |\n| EngagementWhisper | Allow user to whisper into engagements assigned to other agents. |\n| EngagementBarge | Allow user to barge in on engagements assigned to other agents. |\n| EngagementTakeover | Allow user to take over engagements assigned to other agents. |\n| ActiveEngagements | Allow user to view and use Open engagements in the client. |\n| ScheduledEngagements | Allow user to view and use Scheduled engagements in the client. |\n| CompletedEngagements | Allow user to view and use Closed engagements in the client. |\n| TeamTab | Allow user to view and use the Teams tab in the client. |\n| AddressBookTab | Allow user to view and use the Address book tab in the client. |\n| InboxTab | Allow user to view and use the Inbox tab in the client. |\n| AnalyticsTab | Allow user to view and use the Analytics tab in the client. |","example":"outbound-voice-call"}}},"description":"Privileges assigned to the role. Can be one or more of [these permissions](/docs/api/references/contact-center-privileges/)."}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `2210` <br>\n More than one matching role found. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `2201` <br>\n Role does not exist. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_role:read:admin","contact_center:read:role:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_role:read:admin"],"x-granular-scopes":["contact_center:read:role:admin"]}},"delete":{"tags":["Roles"],"summary":"Delete a role","description":"Delete a role. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_role:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:delete:role:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"deleteRole","parameters":[{"name":"roleId","in":"path","description":"The role's ID.","required":true,"schema":{"type":"string","example":"zeYjXoDOS_eV1QmTpj63PQ"}},{"name":"role_identifier_type","in":"query","description":"How the path parameter is interpreted. `id` treats it as a system-generated unique identifier. `name` treats it as the resource name.\nWhen using `name`, the resource name must be URL-encoded per RFC 3986.","required":false,"schema":{"type":"string","example":"id","default":"id","enum":["id","name"]}},{"name":"transfer_role_id","in":"query","description":"The transfer role's ID. If you deleted the role, you will need to reassign the users associated to this role to a different role.","required":true,"schema":{"type":"string","example":"YjXzeo_S2DeV1QTrpA65Ms"}}],"responses":{"204":{"description":"**HTTP Status Code:** `204`   \n \nRole deleted."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `2102` <br>\n Transfer role ID cannot be empty. <br>\n**Error Code:** `2210` <br>\n More than one matching role found. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `2201` <br>\n Role does not exist. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_role:write:admin","contact_center:delete:role:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_role:write:admin"],"x-granular-scopes":["contact_center:delete:role:admin"]}},"patch":{"tags":["Roles"],"summary":"Update a role","description":"Update a role. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_role:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:update:role:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"updateRole","parameters":[{"name":"roleId","in":"path","description":"The role's ID.","required":true,"schema":{"type":"string","example":"zeYjXoDOS_eV1QmTpj63PQ"}},{"name":"role_identifier_type","in":"query","description":"How the path parameter is interpreted. `id` treats it as a system-generated unique identifier. `name` treats it as the resource name.\n\nWhen using `name`, the resource name must be URL-encoded per RFC 3986.","required":false,"schema":{"type":"string","example":"id","default":"id","enum":["id","name"]}}],"requestBody":{"description":"Role","content":{"application/json":{"schema":{"type":"object","properties":{"role_name":{"type":"string","description":"The role's name.","example":"Agent"},"role_description":{"type":"string","description":"The role's description. **Note:** The Admin, Agent, and Supervisor roles do not support modification.","example":"Agent role."},"privileges":{"maxItems":300,"type":"array","description":"One or more of [these privileges](/docs/api/references/contact-center-privileges/) assigned to the role.","items":{"type":"string","example":"UserManagement:Read"}}}}}}},"responses":{"204":{"description":"**HTTP Status Code:** `204`   \n \nRole updated."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `2203` <br>\n The role name already exists. Please change to a new one. <br>\n**Error Code:** `2204` <br>\n Administrator|Supervisor|Agent role name cannot be updated. <br>\n**Error Code:** `2207` <br>\n Invalid role privileges: $privileges. <br>\n**Error Code:** `2210` <br>\n More than one matching role found. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `2201` <br>\n Role does not exist. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_role:write:admin","contact_center:update:role:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_role:write:admin"],"x-granular-scopes":["contact_center:update:role:admin"]}}},"/contact_center/roles/{roleId}/privileges":{"delete":{"tags":["Roles"],"summary":"Delete role privileges","description":"Removes the specified privileges from a role when given a valid role ID and privilege list.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_role:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:delete:role:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"Deleteroleprivileges","parameters":[{"name":"roleId","in":"path","description":"The role's ID.","required":true,"schema":{"type":"string","example":"zeYjXoDOS_eV1QmTpj63PQ"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"privileges":{"maxItems":300,"type":"array","description":"Privileges assigned to the role. Can be one or more of [these privileges](https://developers.zoom.us/docs/api/references/contact-center-privileges/).","items":{"type":"string","example":"UserManagement:Read"}}}}}}},"responses":{"204":{"description":"**HTTP Status Code:** `204`    Role privileges deleted."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `2207` <br>\n Invalid role privileges: $privileges. <br>\n**Error Code:** `300` <br>\n Validation failed. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `2201` <br>\n Role does not exist. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_role:write:admin","contact_center:delete:role:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_role:write:admin"],"x-granular-scopes":["contact_center:delete:role:admin"]}}},"/contact_center/roles/{roleId}/users":{"get":{"tags":["Roles"],"summary":"List users of a role","description":"Retrieve a list of users assigned to a Contact Center role.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_role:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:list_role_users:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"getRoleUsers","parameters":[{"name":"roleId","in":"path","description":"The role's ID.","required":true,"schema":{"type":"string","example":"zeYjXoDOS_eV1QmTpj63PQ"}},{"name":"role_identifier_type","in":"query","description":"How the path parameter is interpreted.\n`id` treats it as a system-generated unique identifier.\n`name` treats it as the resource name.\n\nWhen using `name`, the resource name must be URL-encoded per RFC 3986.","required":false,"schema":{"type":"string","example":"id","default":"id","enum":["id","name"]}},{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of records returned in a single API call.","required":false,"schema":{"maximum":300,"type":"integer","format":"int32","example":30,"default":30}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`\nRole users list returned.","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"maxLength":100,"type":"string","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":300,"type":"integer","description":"The number of records returned in a single API call.","example":30,"default":30},"total_records":{"minimum":0,"type":"integer","description":"The total number of all records available across pages.","example":10},"users":{"type":"array","description":"Information about the role's assigned users.","items":{"type":"object","properties":{"user_id":{"maxLength":36,"type":"string","description":"The Meetings user identifier.","example":"IGTRVt3gQ2i-WjoUIjeZxw"},"cc_user_id":{"maxLength":36,"type":"string","description":"The Contact Center user identifier.","example":"hKuMAiDdRlSwMkBxR5we7g"},"display_name":{"type":"string","description":"The user's display name.","example":"Jane Doe"},"user_email":{"type":"string","description":"The user's email address.","format":"email","example":"jchill@example.com"}}}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `2210` <br>\n More than one matching role found. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `2201` <br>\n Role does not exist: {roleId}. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_role:read:admin","contact_center:read:list_role_users:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_role:read:admin"],"x-granular-scopes":["contact_center:read:list_role_users:admin"]}},"post":{"tags":["Roles"],"summary":"Assign a role","description":"Use this API to assign users to a role. Roles have unique privileges that assigned users have access to. For example, an Administrator or Agent role. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_role:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:write:role_user:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"assignRoleUsers","parameters":[{"name":"roleId","in":"path","description":"The role's ID.","required":true,"schema":{"type":"string","example":"zeYjXoDOS_eV1QmTpj63PQ"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"user_ids":{"maxItems":30,"uniqueItems":true,"type":"array","description":"The user identifiers. The values can be a mix of email addresses, Meetings user IDs, or Contact Center user IDs.","items":{"type":"string","example":"ukAAkZKfROKMSw1bj_RDFQ"}}}}}}},"responses":{"201":{"description":"**HTTP Status Code:** `201`   \n \nRole assigned to user.","content":{"application/json":{"schema":{"type":"object","properties":{"users":{"maxItems":100,"type":"array","description":"Information about the users.","items":{"type":"object","properties":{"user_id":{"maxLength":36,"type":"string","description":"The Meetings user identifier.","example":"IGTRVt3gQ2i-WjoUIjeZxw"},"cc_user_id":{"maxLength":36,"type":"string","description":"The Contact Center user identifier.","example":"hKuMAiDdRlSwMkBxR5we7g"},"display_name":{"type":"string","description":"The user's display name.","example":"Jane Doe"},"user_email":{"type":"string","description":"The user's email address.","format":"email","example":"jchill@example.com"}}}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `300` <br>\n Validation failed. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `2201` <br>\n Role does not exist: {roleId}. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_role:write:admin","contact_center:write:role_user:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_role:write:admin"],"x-granular-scopes":["contact_center:write:role_user:admin"]}}},"/contact_center/roles/{roleId}/users/{userId}":{"delete":{"tags":["Roles"],"summary":"Unassign a user from a role","description":"Remove a specific user from a Contact Center role. This operation removes the role-user assignment, meaning the user will no longer have the permissions and privileges associated with this role. The user must currently be assigned to the specified role. Both the role and user must exist in the account.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_role:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:delete:role_user:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"deleteRoleUser","parameters":[{"name":"roleId","in":"path","description":"The role's ID.","required":true,"schema":{"type":"string","example":"zeYjXoDOS_eV1QmTpj63PQ"}},{"name":"userId","in":"path","description":"The user identifier. This can be the Meetings user ID `user_id`, the Contact Center user ID `cc_user_id`, an email address, or [the 'me' value](/docs/api/using-zoom-apis/#the-me-keyword) to refer to the user associated with the access token.","required":true,"schema":{"type":"string","example":"aFjYXoDE1_eB2zmSpj6R61"}}],"responses":{"204":{"description":"**HTTP Status Code:** `204`\n\n The user was successfully removed from the role."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `300` <br>\n The request is invalid or malformed. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `2201` <br>\n Role does not exist: {roleId}. <br>\n**Error Code:** `1001` <br>\n User does not exist: {userId}. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_role:write:admin","contact_center:delete:role_user:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_role:write:admin"],"x-granular-scopes":["contact_center:delete:role_user:admin"]}}},"/contact_center/agent_routing_profiles":{"get":{"tags":["Routing Profiles"],"summary":"List agent routing profiles","description":"Returns a list of agent routing profiles.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_routing_profile:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:agent_routing_profile:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"Listagentroutingprofiles","parameters":[{"name":"agent_routing_profile_name","in":"query","description":"The agent routing profile's name. Support fuzzy search. This parameter requires encoding.","required":false,"schema":{"type":"string","example":"agent_routing_profile_name"}},{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of items returned per page.","required":false,"schema":{"maximum":300,"type":"integer","format":"int32","example":30,"default":30}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`    Agent routing profile list returned.","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"maxLength":100,"type":"string","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":100,"minimum":1,"type":"integer","description":"The number of records returned within a single API call.","example":30,"default":30},"total_records":{"minimum":0,"type":"integer","description":"The total number of all the records available across pages.","example":10},"agent_routing_profiles":{"maxItems":100,"minItems":0,"type":"array","description":"Information about the agent routing profiles.","items":{"type":"object","properties":{"agent_routing_profile_id":{"type":"string","description":"The agent routing profile's ID.","example":"pkOWR9aiR1WLvyDJCBi06A"},"agent_routing_profile_name":{"type":"string","description":"The agent routing profile's name.","example":"My agent routing profile"},"agent_routing_profile_description":{"type":"string","description":"The agent routing profile's decription.","example":"This is the agent routing profile's description."},"wait_time_agent_in_seconds":{"type":"integer","description":"Wait time for matched agent availability, in seconds. Set the minimum time before making an agent who matches the profile available for the queue.","example":10},"priorities":{"maxItems":20,"type":"array","description":"The proficiency priority. The higher priority skill category - with proficiency based skills - takes precedence over those with lower priority. When comparing agents and all else is equal, the agents with the higher proficiency in the higher prioritized skill category should be considered for assignment.","items":{"required":["category_type"],"type":"object","properties":{"priority_id":{"type":"string","description":"The priority's ID.","example":"jyuhjknkjgfkjhh9453fjdlg"},"priority_order":{"maximum":20,"minimum":1,"type":"integer","description":"**Note** This field's values are ordered and unique.  This is the proficiency priority. The higher priority skill category - proficiency based skills - will take precedence over those with lower priority. When comparing agents and all else is equal, the agents with the higher proficiency in the higher prioritized skill category should be considered for assignment.","example":1},"category_type":{"type":"string","description":"The category's type. \n\n* `skill` - Skill category \n* `intent` - Intent group","example":"skill","enum":["skill","intent"]},"skill_category_id":{"type":"string","description":"The skill category's ID.","example":"skill_category_id"},"intent_group_id":{"type":"string","description":"The intent group's ID.","example":"intent_group_id"},"skill_category_name":{"type":"string","description":"The skill category's name.","example":"skill_category_name"},"intent_group_name":{"type":"string","description":"The intent group's name.","example":"intent_group_name"},"skill_type":{"type":"string","description":"The skill's type. Only applied when `category_type` is `skill`. \n\n* `text` - A text-based skill, such as a geographic location. Skills in this category do not have assigned skill levels. \n* `proficiency` - A proficiency-based skill, such as a second language. Skills in this category have assigned proficiency levels.","example":"proficiency","enum":["text","proficiency"]},"minimum_proficiency_level":{"type":"integer","description":"The skill's minimum proficiency level. \n\n**Note** Only applies to skill proficiency based skill categories. If minimum proficiency is set, agents must have a proficiency equal to or greater than the minimum proficiency value set.","example":2},"skill_category_required":{"type":"boolean","description":"If a skill category is required, agents must have the corresponding skill or they will not be considered for assignment.","example":true},"intent_group_required":{"type":"boolean","description":"If an intent group is required, agents must have the corresponding intent or they will not be considered for assignment.","example":false},"default_skill_id":{"type":"string","description":"The default skill's ID. If customer doesn't input any skill, agents must have the default skill.","example":"sRrl8f3IKQp_LByU08Ibi6g"},"default_skill_name":{"type":"string","description":"The default skill's name. If customer doesn't input any skill, agents must have the default skill.","example":"default_skill__name"},"time_step":{"type":"integer","description":"The time steps are using to divide queue wait time into intervals, in seconds. Each interval starts from the last time step to the current `time_step`. `-1` means the interval after the last time step. If there are two time steps, such as `10`, `-1`, it divides the queue wait time into two intervals: 0-10 seconds, and after 10 seconds. It's only applied to accounts that have the **Progressive Relaxation Routing Profile** feature enabled.","example":10},"backup_skills":{"maxItems":3,"minItems":0,"type":"array","description":"If customer's input skill or default skill doesn't match, agents with backup skills will be assigned to the engagement. It's only applied to accounts that have the **Agent Routing Profile Enhancement** feature enabled.","items":{"required":["backup_skill_id"],"type":"object","properties":{"backup_skill_id":{"type":"string","description":"The backup skill's ID","example":"sk_OpAInMSpGwbwzkbGz6sQ"},"backup_skill_name":{"type":"string","description":"The backup skill's name","example":"backup_skill_name"},"minimum_proficiency_level":{"type":"integer","description":"The skill's minimum proficiency level. **Note** Only applies to skill proficiency based skill categories. If minimum proficiency is set, agents must have a proficiency equal to or greater than the minimum proficiency value set. Only used when `category_type` is `skill`.","example":3}}}}},"description":"The routing profile's priority."}},"time_steps":{"type":"array","description":"Divide the queue wait time into intervals, in seconds. Each interval starst from last time step to current `time_step`. `-1` means the interval after the last time step. If the `time_step`s are [10, -1], it divides the queue wait time into two intervals: 0-10 seconds, after 10 seconds. It's only applied to accounts that have the **Progressive Relaxation Routing Profile** feature enabled.","items":{"type":"integer","description":"The time step, in seconds.","example":10}},"ignore_transferring_skills":{"type":"boolean","description":"When transferred or in overflow, the routing system decides whether to ignore the skills in this routing profile.","example":false,"default":false}}}}}}}}},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_routing_profile:read:admin","contact_center:read:agent_routing_profile:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_routing_profile:read:admin"],"x-granular-scopes":["contact_center:read:agent_routing_profile:admin"]}},"post":{"tags":["Routing Profiles"],"summary":"Create an agent routing profile","description":"Create an agent routing profile.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_routing_profile:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:write:agent_routing_profile:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"Createanagentroutingprofile","requestBody":{"content":{"application/json":{"schema":{"required":["agent_routing_profile_name"],"type":"object","properties":{"agent_routing_profile_name":{"type":"string","description":"The agent routing profile's name.","example":"My agent routing profile"},"agent_routing_profile_description":{"type":"string","description":"The agent routing profile's description.","example":"This is the agent routing profile's description."},"wait_time_agent_in_seconds":{"type":"integer","description":"Wait time for matched agent availability, in seconds. Set the minimum time before making an agent who matches the profile available for the queue.","example":10,"default":3},"priorities":{"maxItems":20,"minItems":0,"type":"array","description":"The proficiency priority. The higher priority skill category - with proficiency based skills - takes precedence over those with lower priority. When comparing agents and all else is equal, the agents with the higher proficiency in the higher prioritized skill category should be considered for assignment.","items":{"required":["category_type"],"type":"object","properties":{"category_type":{"type":"string","description":"The category's type. \n\n* `skill` - Skill category \n* `intent` - Intent group","example":"skill","enum":["skill","intent"]},"skill_category_id":{"type":"string","description":"The skill category's ID. Required when `category_type` is `skill`.","example":"skill_category_id"},"intent_group_id":{"type":"string","description":"The intent group's ID. Required when `category_type` is `intent`.","example":"intent_group_id"},"minimum_proficiency_level":{"type":"integer","description":"The skill's minimum proficiency level. **Note** Only applies to skill proficiency based skill categories. If minimum proficiency is set, agents must have a proficiency equal to or greater than the minimum proficiency value set. Only used when `category_type` is `skill`.","example":2,"default":0},"skill_category_required":{"type":"boolean","description":"If a category is required, agents must have the corresponding skill or they will not be considered for assignment. Required when `category_type` is `skill`.","example":true},"intent_group_required":{"type":"boolean","description":"If an intent group is required, agents must have the corresponding intent or they will not be considered for assignment. Required when `category_type` is `intent`.","example":false},"default_skill_id":{"type":"string","description":"If customer doesn't input any skill, agents must have the default skill.","example":"sRrl8f3IKQp_LByU08Ibi6g"},"time_step":{"type":"integer","description":"Divides the queue wait time into intervals, in seconds. Each interval starts from the last time step to the current `time_step`. `-1` means the interval after the last time step. If there are two time steps `10`, `-1`, it divides the queue wait time into two intervals: 0-10 seconds, and after 10 seconds. It's only applied to accounts that have the **Progressive Relaxation Routing Profile** feature enabled.","example":10},"backup_skills":{"maxItems":3,"minItems":0,"type":"array","description":"If customer's input skill or default skill doesn't match, agents with backup skills will be assigned to the engagement. Only applied to accounts that have the **Agent Routing Profile Enhancement** feature enabled.","items":{"required":["backup_skill_id"],"type":"object","properties":{"backup_skill_id":{"type":"string","description":"The backup skill's ID","example":"sk_OpAInMSpGwbwzkbGz6sQ"},"minimum_proficiency_level":{"type":"integer","description":"The skill's minimum proficiency level. **Note** Only applies to skill proficiency based skill categories. If minimum proficiency is set, agents must have a proficiency equal to or greater than the minimum proficiency value set. Only used when `category_type` is `skill`.","example":3}}}}},"description":"The routing profile's priority."}},"time_steps":{"maxItems":50,"type":"array","description":"The time steps are using to divide queue wait time into intervals, in seconds. Each interval will start from last time step to current `time_step`. `-1` means the interval after the last time step. If the `time_steps` are [10, -1], it will divide queue wait time into two intervals: 0-10 seconds, and after 10 seconds. It's only applied to account with the `Progressive Relaxation Routing Profile` feature enabled.","items":{"type":"integer","description":"The time step, in seconds.","example":10}},"ignore_transferring_skills":{"type":"boolean","description":"When transferred or in overflow, the routing system decides whether to ignore the skills in this routing profile.","example":false,"default":false}}}}}},"responses":{"201":{"description":"**HTTP Status Code:** `201`    Agent routing profile created.","content":{"application/json":{"schema":{"type":"object","properties":{"agent_routing_profile_id":{"type":"string","description":"The agent routing profile's ID.","example":"pkOWR9aiR1WLvyDJCBi06A"},"agent_routing_profile_name":{"type":"string","description":"The agent routing profile's name.","example":"My agent routing profile"},"agent_routing_profile_description":{"type":"string","description":"The agent routing profile's decription.","example":"This is the agent routing profile's description."},"wait_time_agent_in_seconds":{"type":"integer","description":"Wait time for matched agent availability, in seconds. Set the minimum time before making an agent who matches the profile available for the queue.","example":10},"priorities":{"maxItems":20,"type":"array","description":"The proficiency priority. The higher priority skill category - with proficiency based skills - takes precedence over those with lower priority. When comparing agents and all else is equal, the agents with the higher proficiency in the higher prioritized skill category should be considered for assignment.","items":{"required":["category_type"],"type":"object","properties":{"priority_id":{"type":"string","description":"The priority's ID.","example":"jyuhjknkjgfkjhh9453fjdlg"},"priority_order":{"maximum":20,"minimum":1,"type":"integer","description":"**Note** This field's values are ordered and unique.  This is the proficiency priority. The higher priority skill category - proficiency based skills - will take precedence over those with lower priority. When comparing agents and all else is equal, the agents with the higher proficiency in the higher prioritized skill category should be considered for assignment.","example":1},"category_type":{"type":"string","description":"The category's type. \n\n* `skill` - Skill category \n* `intent` - Intent group","example":"skill","enum":["skill","intent"]},"skill_category_id":{"type":"string","description":"The skill category's ID.","example":"skill_category_id"},"intent_group_id":{"type":"string","description":"The intent group's ID.","example":"intent_group_id"},"skill_category_name":{"type":"string","description":"The skill category's name.","example":"skill_category_name"},"intent_group_name":{"type":"string","description":"The intent group's name.","example":"intent_group_name"},"skill_type":{"type":"string","description":"The skill's type. Only applied when `category_type` is `skill`. \n\n* `text` - A text-based skill, such as a geographic location. Skills in this category do not have assigned skill levels. \n* `proficiency` - A proficiency-based skill, such as a second language. Skills in this category have assigned proficiency levels.","example":"proficiency","enum":["text","proficiency"]},"minimum_proficiency_level":{"type":"integer","description":"The skill's minimum proficiency level. \n\n**Note** Only applies to skill proficiency based skill categories. If minimum proficiency is set, agents must have a proficiency equal to or greater than the minimum proficiency value set.","example":2},"skill_category_required":{"type":"boolean","description":"If a skill category is required, agents must have the corresponding skill or they will not be considered for assignment.","example":true},"intent_group_required":{"type":"boolean","description":"If an intent group is required, agents must have the corresponding intent or they will not be considered for assignment.","example":false},"default_skill_id":{"type":"string","description":"The default skill's ID. If customer doesn't input any skill, agents must have the default skill.","example":"sRrl8f3IKQp_LByU08Ibi6g"},"default_skill_name":{"type":"string","description":"The default skill's name. If customer doesn't input any skill, agents must have the default skill.","example":"default_skill__name"},"time_step":{"type":"integer","description":"The time steps are using to divide queue wait time into intervals, in seconds. Each interval starts from the last time step to the current `time_step`. `-1` means the interval after the last time step. If there are two time steps, such as `10`, `-1`, it divides the queue wait time into two intervals: 0-10 seconds, and after 10 seconds. It's only applied to accounts that have the **Progressive Relaxation Routing Profile** feature enabled.","example":10},"backup_skills":{"maxItems":3,"minItems":0,"type":"array","description":"If customer's input skill or default skill doesn't match, agents with backup skills will be assigned to the engagement. It's only applied to accounts that have the **Agent Routing Profile Enhancement** feature enabled.","items":{"required":["backup_skill_id"],"type":"object","properties":{"backup_skill_id":{"type":"string","description":"The backup skill's ID","example":"sk_OpAInMSpGwbwzkbGz6sQ"},"backup_skill_name":{"type":"string","description":"The backup skill's name","example":"backup_skill_name"},"minimum_proficiency_level":{"type":"integer","description":"The skill's minimum proficiency level. **Note** Only applies to skill proficiency based skill categories. If minimum proficiency is set, agents must have a proficiency equal to or greater than the minimum proficiency value set. Only used when `category_type` is `skill`.","example":3}}}}},"description":"The routing profile's priority."}},"time_steps":{"maxItems":50,"type":"array","description":"The time steps are using to divide queue wait time into intervals, in seconds. Each interval starts from the last time step to the current `time_step`. `-1` means the interval after the last time step. If the `time_steps` are [10, -1], it divides the queue wait time into two intervals: 0-10 seconds, after 10 seconds. It's only applied to account with the `Progressive Relaxation Routing Profile` feature enabled.","items":{"type":"integer","description":"The time step, time unit: seconds.","example":10}},"ignore_transferring_skills":{"type":"boolean","description":"When transferred or in overflow, the routing system decides whether to ignore the skills in this routing profile.","example":false,"default":false}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `4004` <br>\n Category doesn't exist. <br>\n**Error Code:** `4005` <br>\n Number of priorities exceeds the maximum limit. <br>\n**Error Code:** `4006` <br>\n Category is duplicated in priorities. <br>\n**Error Code:** `300` <br>\n Missing required parameter. <br>\n"},"409":{"description":"**HTTP Status Code:** `409` <br>\n Conflict  Agent routing profile's name already exists. \n\n "},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_routing_profile:write:admin","contact_center:write:agent_routing_profile:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_routing_profile:write:admin"],"x-granular-scopes":["contact_center:write:agent_routing_profile:admin"]}}},"/contact_center/agent_routing_profiles/{agentRoutingProfileId}":{"get":{"tags":["Routing Profiles"],"summary":"Get an agent routing profile","description":"Retrieve the agent routing profile.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_routing_profile:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:agent_routing_profile:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"getAgentRoutingProfile","parameters":[{"name":"agentRoutingProfileId","in":"path","description":"The agent routing profile's ID.","required":true,"schema":{"type":"string","example":"opbnmoDlo_eV1QmTpj63ghj"}},{"name":"agent_routing_profile_identifier_type","in":"query","description":"How the path parameter is interpreted. `id` treats it as a system-generated unique identifier. `name` treats it as the resource name.\nWhen using `name`, the resource name must be URL-encoded per RFC 3986.","required":false,"schema":{"type":"string","example":"id","default":"id","enum":["id","name"]}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \nAgent routing profile returned.","content":{"application/json":{"schema":{"type":"object","properties":{"agent_routing_profile_id":{"type":"string","description":"The agent routing profile's ID.","example":"fgjdkhgfieryt7465435kjhdkhg"},"agent_routing_profile_name":{"type":"string","description":"The agent routing profile's name.","example":"My agent routing profile"},"agent_routing_profile_description":{"type":"string","description":"The agent routing profile's description.","example":"Example routing profile description."},"wait_time_agent_in_seconds":{"type":"integer","description":"Wait time for matched agent availability, in seconds. Set the minimum time before making an agent who matches the profile available for the queue.","example":10},"priorities":{"maxItems":20,"type":"array","description":"The proficiency priority. The higher priority skill category - with proficiency based skills - takes precedence over those with lower priority. When comparing agents and all else is equal, the agents with the higher proficiency in the higher prioritized skill category should be considered for assignment.","items":{"required":["category_type"],"type":"object","properties":{"priority_id":{"type":"string","description":"The priority's ID.","example":"jyuhjknkjgfkjhh9453fjdlg"},"priority_order":{"maximum":20,"minimum":1,"type":"integer","description":"**Note** This field's values are ordered and unique.  This is the proficiency priority. The higher priority skill category - proficiency based skills - will take precedence over those with lower priority. When comparing agents and all else is equal, the agents with the higher proficiency in the higher prioritized skill category should be considered for assignment.","example":1},"category_type":{"type":"string","description":"The category's type. \n\n* `skill` - Skill category \n* `intent` - Intent group","example":"skill","enum":["skill","intent"]},"skill_category_id":{"type":"string","description":"The skill category's ID.","example":"skill_category_id"},"intent_group_id":{"type":"string","description":"The intent group's ID.","example":"intent_group_id"},"skill_category_name":{"type":"string","description":"The skill category's name.","example":"skill_category_name"},"intent_group_name":{"type":"string","description":"The intent group's name.","example":"intent_group_name"},"skill_type":{"type":"string","description":"The skill's type. Only applied when `category_type` is `skill`. \n\n* `text` - A text-based skill, such as a geographic location. Skills in this category do not have assigned skill levels. \n* `proficiency` - A proficiency-based skill, such as a second language. Skills in this category have assigned proficiency levels.","example":"proficiency","enum":["text","proficiency"]},"minimum_proficiency_level":{"type":"integer","description":"The skill's minimum proficiency level. \n\n**Note** Only applies to skill proficiency based skill categories. If minimum proficiency is set, agents must have a proficiency equal to or greater than the minimum proficiency value set.","example":2},"skill_category_required":{"type":"boolean","description":"If a skill category is required, agents must have the corresponding skill or they will not be considered for assignment.","example":true},"intent_group_required":{"type":"boolean","description":"If an intent group is required, agents must have the corresponding intent or they will not be considered for assignment.","example":false},"default_skill_id":{"type":"string","description":"The default skill's ID. If customer doesn't input any skill, agents must have the default skill.","example":"sRrl8f3IKQp_LByU08Ibi6g"},"default_skill_name":{"type":"string","description":"The default skill's name. If customer doesn't input any skill, agents must have the default skill.","example":"default_skill__name"},"time_step":{"type":"integer","description":"The time steps are using to divide queue wait time into intervals, in seconds. Each interval starts from the last time step to the current `time_step`. `-1` means the interval after the last time step. If there are two time steps, such as `10`, `-1`, it divides the queue wait time into two intervals: 0-10 seconds, and after 10 seconds. It's only applied to accounts that have the **Progressive Relaxation Routing Profile** feature enabled.","example":10},"backup_skills":{"maxItems":3,"minItems":0,"type":"array","description":"If customer's input skill or default skill doesn't match, agents with backup skills will be assigned to the engagement. It's only applied to accounts that have the **Agent Routing Profile Enhancement** feature enabled.","items":{"required":["backup_skill_id"],"type":"object","properties":{"backup_skill_id":{"type":"string","description":"The backup skill's ID","example":"sk_OpAInMSpGwbwzkbGz6sQ"},"backup_skill_name":{"type":"string","description":"The backup skill's name","example":"backup_skill_name"},"minimum_proficiency_level":{"type":"integer","description":"The skill's minimum proficiency level. **Note** Only applies to skill proficiency based skill categories. If minimum proficiency is set, agents must have a proficiency equal to or greater than the minimum proficiency value set. Only used when `category_type` is `skill`.","example":3}}}}},"description":"The routing profile's priority."}},"time_steps":{"type":"array","description":"The time steps used to divide queue wait time into intervals, in seconds. Each interval starts from the last time step to current `time_step`. `-1` means the interval after the last time step. If the `time_step`s are [10, -1], it divides the queue wait time into two intervals: 0-10 seconds, after 10 seconds. It's only applied to accounts that have the **Progressive Relaxation Routing Profile** feature enabled.","items":{"type":"integer","description":"The time step, in seconds.","example":10}},"ignore_transferring_skills":{"type":"boolean","description":"When transferred or in overflow, the routing system decides whether to ignore the skills in this routing profile.","example":false,"default":false}},"description":"Information about the agent routing profile detail."}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `4007` <br>\n More than one matching agent routing profile found. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  Agent routing profile does not exist. \n\n "},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_routing_profile:read:admin","contact_center:read:agent_routing_profile:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_routing_profile:read:admin"],"x-granular-scopes":["contact_center:read:agent_routing_profile:admin"]}},"delete":{"tags":["Routing Profiles"],"summary":"Delete an agent routing profile","description":"Delete an agent routing profile.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_routing_profile:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:delete:agent_routing_profile:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"Deleteanagentroutingprofile","parameters":[{"name":"agentRoutingProfileId","in":"path","description":"The agent routing profile's ID.","required":true,"schema":{"type":"string","example":"pkOWR9aiR1WLvyDJCBi06A"}},{"name":"agent_routing_profile_identifier_type","in":"query","description":"How the path parameter is interpreted. `id` treats it as a system-generated unique identifier. `name` treats it as the resource name.\nWhen using `name`, the resource name must be URL-encoded per RFC 3986.","required":false,"schema":{"type":"string","example":"id","default":"id","enum":["id","name"]}}],"responses":{"204":{"description":"**HTTP Status Code:** `204`    Agent routing profile deleted."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `4007` <br>\n More than one matching agent routing profile found. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  Agent routing profileId doesn't exist. \n\n "},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_routing_profile:write:admin","contact_center:delete:agent_routing_profile:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_routing_profile:write:admin"],"x-granular-scopes":["contact_center:delete:agent_routing_profile:admin"]}},"patch":{"tags":["Routing Profiles"],"summary":"Update an agent routing profile's details","description":"Update an agent routing profile details.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_routing_profile:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:update:agent_routing_profile:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"Updateanagentroutingprofile'sdetails","parameters":[{"name":"agentRoutingProfileId","in":"path","description":"The agent routing profile's ID.","required":true,"schema":{"type":"string","example":"pkOWR9aiR1WLvyDJCBi06A"}},{"name":"agent_routing_profile_identifier_type","in":"query","description":"How the path parameter is interpreted. `id` treats it as a system-generated unique identifier. `name` treats it as the resource name.\nWhen using `name`, the resource name must be URL-encoded per RFC 3986.","required":false,"schema":{"type":"string","example":"id","default":"id","enum":["id","name"]}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"agent_routing_profile_name":{"type":"string","description":"The agent routing profile's name.","example":"My agent routing profile"},"agent_routing_profile_description":{"type":"string","description":"The agent routing profile's description.","example":"This is the agent routing profile's description."},"wait_time_agent_in_seconds":{"type":"integer","description":"Wait time for matched agent availability, in seconds. Set the minimum time before making an agent who matches the profile available for the queue.","example":10},"priorities":{"maxItems":20,"minItems":0,"type":"array","description":"The proficiency priority. The higher priority skill category - with proficiency based skills - takes precedence over those with lower priority. When comparing agents and all else is equal, the agents with the higher proficiency in the higher prioritized skill category should be considered for assignment.","items":{"required":["category_type"],"type":"object","properties":{"category_type":{"type":"string","description":"The category's type. \n\n* `skill` - Skill category \n* `intent` - Intent group","example":"skill","enum":["skill","intent"]},"skill_category_id":{"type":"string","description":"The skill category's ID. Required when `category_type` is `skill`.","example":"skill_category_id"},"intent_group_id":{"type":"string","description":"The intent group's ID. Required when `category_type` is `intent`.","example":"intent_group_id"},"minimum_proficiency_level":{"type":"integer","description":"The skill's minimum proficiency level. **Note** Only applies to skill proficiency based skill categories. If minimum proficiency is set, agents must have a proficiency equal to or greater than the minimum proficiency value set. Only used when `category_type` is `skill`.","example":2,"default":0},"skill_category_required":{"type":"boolean","description":"If a category is required, agents must have the corresponding skill or they will not be considered for assignment. Required when `category_type` is `skill`.","example":true},"intent_group_required":{"type":"boolean","description":"If an intent group is required, agents must have the corresponding intent or they will not be considered for assignment. Required when `category_type` is `intent`.","example":false},"default_skill_id":{"type":"string","description":"If customer doesn't input any skill, agents must have the default skill.","example":"sRrl8f3IKQp_LByU08Ibi6g"},"time_step":{"type":"integer","description":"Divides the queue wait time into intervals, in seconds. Each interval starts from the last time step to the current `time_step`. `-1` means the interval after the last time step. If there are two time steps `10`, `-1`, it divides the queue wait time into two intervals: 0-10 seconds, and after 10 seconds. It's only applied to accounts that have the **Progressive Relaxation Routing Profile** feature enabled.","example":10},"backup_skills":{"maxItems":3,"minItems":0,"type":"array","description":"If customer's input skill or default skill doesn't match, agents with backup skills will be assigned to the engagement. Only applied to accounts that have the **Agent Routing Profile Enhancement** feature enabled.","items":{"required":["backup_skill_id"],"type":"object","properties":{"backup_skill_id":{"type":"string","description":"The backup skill's ID","example":"sk_OpAInMSpGwbwzkbGz6sQ"},"minimum_proficiency_level":{"type":"integer","description":"The skill's minimum proficiency level. **Note** Only applies to skill proficiency based skill categories. If minimum proficiency is set, agents must have a proficiency equal to or greater than the minimum proficiency value set. Only used when `category_type` is `skill`.","example":3}}}}},"description":"The routing profile's priority."}},"time_steps":{"maxItems":50,"type":"array","description":"Divides the queue wait time into intervals, in seconds. Each interval starts from the last time step to the current `time_step`. `-1` means the interval after the last time step. If the `time_step`s are [10, -1], it divides the queue wait time into two intervals: 0-10 seconds, and after 10 seconds. It's only applied to accounts that have the **Progressive Relaxation Routing Profile** feature enabled.","items":{"type":"integer","description":"The time step, in seconds.","example":10}},"ignore_transferring_skills":{"type":"boolean","description":"When transferred or in overflow, the routing system decides whether to ignore the skills in this routing profile.","example":false,"default":false}}}}}},"responses":{"204":{"description":"**HTTP Status Code:** `204`    Agent routing profile's details updated"},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `4004` <br>\n Category doesn't exist. <br>\n**Error Code:** `4005` <br>\n Number of priorities exceeds maximum limit. <br>\n**Error Code:** `4006` <br>\n Category is duplicated in priorities. <br>\n**Error Code:** `300` <br>\n Missing required parameter. <br>\n**Error Code:** `4007` <br>\n More than one matching agent routing profile found. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  Agent routing profile doesn't exist. \n\n "},"409":{"description":"**HTTP Status Code:** `409` <br>\n Conflict  Agent routing profile's name already exists. \n\n "},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_routing_profile:write:admin","contact_center:update:agent_routing_profile:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_routing_profile:write:admin"],"x-granular-scopes":["contact_center:update:agent_routing_profile:admin"]}}},"/contact_center/consumer_routing_profiles":{"get":{"tags":["Routing Profiles"],"summary":"List consumer routing profiles","description":"Return a list of consumer routing profiles.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_routing_profile:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:consumer_routing_profile:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"Listconsumerroutingprofiles","parameters":[{"name":"consumer_routing_profile_name","in":"query","description":"The consumer routing profile's name. Supports fuzzy search. This parameter requires encoding.","required":false,"schema":{"type":"string","example":"consumer_routing_profile_name"}},{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of items returned per page.","required":false,"schema":{"maximum":300,"type":"integer","format":"int32","example":30,"default":30}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`    Consumer routing profile list returned.","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"maxLength":100,"type":"string","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":100,"minimum":1,"type":"integer","description":"The number of records returned within a single API call.","example":30,"default":30},"total_records":{"minimum":0,"type":"integer","description":"The total number of all the records available across pages.","example":10},"consumer_routing_profiles":{"maxItems":100,"minItems":0,"type":"array","description":"Information about the consumer routing profiles.","items":{"type":"object","properties":{"consumer_routing_profile_id":{"type":"string","description":"The consumer routing profile's ID.","example":"-6JPFRKERXymVrf_h2EISQ"},"consumer_routing_profile_name":{"type":"string","description":"The consumer routing profile's name.","example":"My consumer routing profile"},"consumer_routing_profile_description":{"type":"string","description":"The consumer routing profile's description.","example":"This is the consumer routing profile's description."},"top_priorities":{"maxItems":150,"minItems":0,"type":"array","description":"The consumers' top priority. Decide the consumer's position in the queue. The higher the consumer's priority, the earlier the consumer will be served.","items":{"required":["attribute_type"],"type":"object","properties":{"attribute_type":{"type":"string","description":"The attribute's type.\n\n* `address_book_contacts` - Address book contacts \n* `entrance_to_queue` - Entrance to queue \n* `new_customer` - New customer \n* `returning_customer` -  Returning customer \n* `release_to_queue` - Release to queue \n* `skills` - Skills \n* `address_book_variable` - Address book variable \n* `global_variable` - Global variable","example":"global_variable","enum":["address_book_contacts","entrance_to_queue","new_customer","returning_customer","release_to_queue","skills","address_book_variable","global_variable"]},"parameter":{"type":"object","properties":{"ids":{"maxItems":100,"minItems":0,"type":"array","description":"The related entity ID list for priority's attribute. \n`address_book_contacts`\nIDs - Address book contact ID list\n`release_to_queue`\nIDs - Queue ID list\n`skills`\nIDs - Skill ID list. Should under the same skill category.\n`address_book_variable`\nIDs - Address book ID list","items":{"type":"string","example":"mF8W-YRDRHCWyGMl4UNHWA"}},"enter_queue_start_time":{"type":"string","description":"The start time when the consumer enters the queue. Only used when `attribute_type` is `entrance_to_queue`.","example":"09:00 AM"},"enter_queue_end_time":{"type":"string","description":"The end time when the consumer enters the queue. Only used when `attribute_type` is `entrance_to_queue`.","example":"11:00 PM"},"enter_queue_timezone":{"type":"string","description":"The timezone when the consumer enters the queue. Only used when `attribute_type` is `entrance_to_queue`.","example":"America/New_York"},"max_returning_minutes":{"maximum":10080,"minimum":1,"type":"integer","description":"Maximum number of minutes from last participation to now. Only used when `attribute_type` is `returning_customer`.","example":60},"variable_id":{"type":"string","description":"The variable's ID. Only used when `attribute_type` is `global_variable` or `address_book_variable`.","example":"--FBpU8hSGqIPNUv4lXR4A"},"variable_values":{"type":"array","description":"The optional variable's values. If variable matches any of them, it will match the priority. Only used when `attribute_type` is `address_book_variable`.","items":{"type":"string","example":"vip"}},"operator":{"type":"string","description":"The operator between global variable and `compared_value`. Only used when `attribute_type` is `global_variable`.","example":"equal_to","enum":["equal_to","greater_than","less_than","contains"]},"compared_value":{"type":"string","description":"Compare the specified value to the variable's value. Only used when `attribute_type` is `global_variable`.","example":"1"}},"description":"The parameter for priority's attribute. Parameter is different for each `attribute_type`:\n1. `address_book_contacts`\n`parameter` = {\n  `ids`: [`contanct1_id`, `contact2_id`] // address book contact ID list\n}\n\n2. `entrance_to_queue`\n`parameter` = {\n  `enter_queue_start_time`: `09:00 AM`,\n  `enter_queue_end_time`: `11:00 PM`,\n  `enter_queue_timezone`: `America/New_York`\n}\n\n3. `new_customer`\n`parameter` = `null` \n\n4. `returning_customer`\n`parameter` = {\n  `max_returning_minutes`: `60`\n}\n\n5. `release_to_queue`\n`parameter` = {\n  `ids`: [`queue1_id`, `queue2_id`] // queue ID list\n}\n\n6. `skills`\n`parameter` = {\n  `ids`: [`skill1_id`, `skill2_id`] // skill ID list\n}\n\n7. `address_book_variable`\n`parameter` = {\n  `variable_id` = `address_book_variable_id`,\n  `ids` = [`address_book_id1`, `address_book_id2`] // address book ID list\n  `variable_values` = [`value1`, `value2`]\n}\n\n8. `global_variable`\n`parameter` = {\n  `variable_id` = `global_variable_id`,\n  `operator` = `equal_to`,\n  `compared_value` = `value`\n}"}},"description":"The routing profile's top priority."}},"accumulated_priorities":{"maxItems":150,"minItems":0,"type":"array","description":"The consumers' accumulated priority. Use ratings to serve consumers from the highest to lowest value, from 100 to 1, based on a consumer attribute. Consumers accumulate priority while waiting in the queue, after top priority consumers.","items":{"required":["attribute_type","incremental_rate"],"type":"object","properties":{"attribute_type":{"type":"string","description":"The attribute's type.\n\n* `address_book_contacts` - Address book contacts \n* `entrance_to_queue` - Entrance to queue \n* `new_customer` - New customer \n* `returning_customer` -  Returning customer \n* `release_to_queue` - Release to queue \n* `skills` - Skills \n* `address_book_variable` - Address book variable \n* `global_variable` - Global variable","example":"global_variable","enum":["address_book_contacts","entrance_to_queue","new_customer","returning_customer","release_to_queue","skills","address_book_variable","global_variable"]},"incremental_rate":{"maximum":100,"minimum":1,"type":"integer","description":"The rate that consumers accumulate priority while waiting in line. For example, consumer A and consumer B have the same top priority. If consumer A.wait_time \\* consumer A.`incremental_rate` > consumer B.wait_time \\* consumer B.`incremental_rate`, consumer A will be first serviced.","example":10},"parameter":{"type":"object","properties":{"ids":{"type":"array","description":"The related entity ID list for priority's attribute. \n`address_book_contacts`\nIDs - Address book contact ID list\n`release_to_queue`\nIDs - Queue ID list\n`skills`\nIDs - Skill ID list. Should under the same skill category.\n`address_book_variable`\nIDs - Address book ID list","items":{"type":"string","example":"mF8W-YRDRHCWyGMl4UNHWA"}},"enter_queue_start_time":{"type":"string","description":"The start time when the consumer enters the queue. Only used when `attribute_type` is `entrance_to_queue`.","example":"09:00 AM"},"enter_queue_end_time":{"type":"string","description":"The end time when the consumer enters the queue. Only used when `attribute_type` is `entrance_to_queue`.","example":"11:00 PM"},"enter_queue_timezone":{"type":"string","description":"The timezone when the consumer enters the queue.","example":"America/New_York"},"max_returning_minutes":{"maximum":10080,"minimum":1,"type":"integer","description":"Maximum number of minutes from last participation to now. Only used when `attribute_type` is `returning_customer`.","example":60},"variable_id":{"type":"string","description":"The variable's ID. Only used when `attribute_type` is `global_variable` or `address_book_variable`.","example":"--FBpU8hSGqIPNUv4lXR4A"},"variable_values":{"type":"array","description":"The optional variable's values. If variable matches any of them, it will match the priority. Only used when `attribute_type` is `address_book_variable`.","items":{"type":"string","example":"vip"}},"operator":{"type":"string","description":"The operator between global variable and `compared_value`. Only used when `attribute_type` is `global_variable`.","example":"equal_to","enum":["equal_to","greater_than","less_than","contains"]},"compared_value":{"type":"string","description":"Compare the specified value to the variable's value. Only used when `attribute_type` is `global_variable`.","example":"1"}},"description":"The parameter for priority's attribute. Parameter is different for each `attribute_type`:\n1. `address_book_contacts`\n`parameter` = {\n  `ids`: [`contanct1_id`, `contact2_id`] // address book contact ID list\n}\n\n2. `entrance_to_queue`\n`parameter` = {\n  `enter_queue_start_time`: `09:00 AM`,\n  `enter_queue_end_time`: `11:00 PM`,\n  `enter_queue_timezone`: `America/New_York`\n}\n\n3. `new_customer`\n`parameter` = `null` \n\n4. `returning_customer`\n`parameter` = {\n  `max_returning_minutes`: `60`\n}\n\n5. `release_to_queue`\n`parameter` = {\n  `ids`: [`queue1_id`, `queue2_id`] // queue ID list\n}\n\n6. `skills`\n`parameter` = {\n  `ids`: [`skill1_id`, `skill2_id`] // skill ID list\n}\n\n7. `address_book_variable`\n`parameter` = {\n  `variable_id` = `address_book_variable_id`,\n  `ids` = [`address_book_id1`, `address_book_id2`] // address book ID list\n  `variable_values` = [`value1`, `value2`]\n}\n\n8. `global_variable`\n`parameter` = {\n  `variable_id` = `global_variable_id`,\n  `operator` = `equal_to`,\n  `compared_value` = `value`\n}"}},"description":"The routing profile's accumulated priority."}}}}}}}}}},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_routing_profile:read:admin","contact_center:read:consumer_routing_profile:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_routing_profile:read:admin"],"x-granular-scopes":["contact_center:read:consumer_routing_profile:admin"]}},"post":{"tags":["Routing Profiles"],"summary":"Create a consumer routing profile","description":"Create a consumer routing profile.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_routing_profile:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:write:consumer_routing_profile:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"Createaconsumerroutingprofile","requestBody":{"content":{"application/json":{"schema":{"required":["consumer_routing_profile_name"],"type":"object","properties":{"consumer_routing_profile_name":{"type":"string","description":"The consumer routing profile's name.","example":"My consumer routing profile"},"consumer_routing_profile_description":{"type":"string","description":"The consumer routing profile's description.","example":"This is the consumer routing profile's description."},"top_priorities":{"maxItems":150,"minItems":0,"type":"array","description":"The consumers' top priority. Decide the consumer's position in the queue. The higher the consumer's priority, the earlier the consumer will be served.","items":{"required":["attribute_type"],"type":"object","properties":{"attribute_type":{"type":"string","description":"The attribute's type.\n\n* `address_book_contacts` - Address book contacts \n* `entrance_to_queue` - Entrance to queue \n* `new_customer` - New customer \n* `returning_customer` -  Returning customer \n* `release_to_queue` - Release to queue \n* `skills` - Skills \n* `address_book_variable` - Address book variable \n* `global_variable` - Global variable","example":"global_variable","enum":["address_book_contacts","entrance_to_queue","new_customer","returning_customer","release_to_queue","skills","address_book_variable","global_variable"]},"parameter":{"type":"object","properties":{"ids":{"maxItems":100,"minItems":0,"type":"array","description":"The related entity ID list for priority's attribute. \n`address_book_contacts`\nIDs - Address book contact ID list\n`release_to_queue`\nIDs - Queue ID list\n`skills`\nIDs - Skill ID list. Should under the same skill category.\n`address_book_variable`\nIDs - Address book ID list","items":{"type":"string","example":"mF8W-YRDRHCWyGMl4UNHWA"}},"enter_queue_start_time":{"type":"string","description":"The start time when the consumer enters the queue. Only used when `attribute_type` is `entrance_to_queue`.","example":"09:00 AM"},"enter_queue_end_time":{"type":"string","description":"The end time when the consumer enters the queue. Only used when `attribute_type` is `entrance_to_queue`.","example":"11:00 PM"},"enter_queue_timezone":{"type":"string","description":"The timezone when the consumer enters the queue. Only used when `attribute_type` is `entrance_to_queue`.","example":"America/New_York"},"max_returning_minutes":{"maximum":10080,"minimum":1,"type":"integer","description":"Maximum number of minutes from last participation to now. Only used when `attribute_type` is `returning_customer`.","example":60},"variable_id":{"type":"string","description":"The variable's ID. Only used when `attribute_type` is `global_variable` or `address_book_variable`.","example":"--FBpU8hSGqIPNUv4lXR4A"},"variable_values":{"type":"array","description":"The optional variable's values. If variable matches any of them, it will match the priority. Only used when `attribute_type` is `address_book_variable`.","items":{"type":"string","example":"vip"}},"operator":{"type":"string","description":"The operator between global variable and `compared_value`. Only used when `attribute_type` is `global_variable`.","example":"equal_to","enum":["equal_to","greater_than","less_than","contains"]},"compared_value":{"type":"string","description":"Compare the specified value to the variable's value. Only used when `attribute_type` is `global_variable`.","example":"1"}},"description":"The parameter for priority's attribute. Parameter is different for each `attribute_type`:\n1. `address_book_contacts`\n`parameter` = {\n  `ids`: [`contanct1_id`, `contact2_id`] // address book contact ID list\n}\n\n2. `entrance_to_queue`\n`parameter` = {\n  `enter_queue_start_time`: `09:00 AM`,\n  `enter_queue_end_time`: `11:00 PM`,\n  `enter_queue_timezone`: `America/New_York`\n}\n\n3. `new_customer`\n`parameter` = `null` \n\n4. `returning_customer`\n`parameter` = {\n  `max_returning_minutes`: `60`\n}\n\n5. `release_to_queue`\n`parameter` = {\n  `ids`: [`queue1_id`, `queue2_id`] // queue ID list\n}\n\n6. `skills`\n`parameter` = {\n  `ids`: [`skill1_id`, `skill2_id`] // skill ID list\n}\n\n7. `address_book_variable`\n`parameter` = {\n  `variable_id` = `address_book_variable_id`,\n  `ids` = [`address_book_id1`, `address_book_id2`] // address book ID list\n  `variable_values` = [`value1`, `value2`]\n}\n\n8. `global_variable`\n`parameter` = {\n  `variable_id` = `global_variable_id`,\n  `operator` = `equal_to`,\n  `compared_value` = `value`\n}"}},"description":"The routing profile's top priority."}},"accumulated_priorities":{"maxItems":150,"minItems":0,"type":"array","description":"The consumers' accumulated priority. Use ratings to serve consumers from the highest to lowest value, from 100 to 1, based on a consumer attribute. Consumers accumulate priority while waiting in the queue, after top priority consumers.","items":{"required":["attribute_type","incremental_rate"],"type":"object","properties":{"attribute_type":{"type":"string","description":"The attribute's type.\n\n* `address_book_contacts` - Address book contacts \n* `entrance_to_queue` - Entrance to queue \n* `new_customer` - New customer \n* `returning_customer` -  Returning customer \n* `release_to_queue` - Release to queue \n* `skills` - Skills \n* `address_book_variable` - Address book variable \n* `global_variable` - Global variable","example":"global_variable","enum":["address_book_contacts","entrance_to_queue","new_customer","returning_customer","release_to_queue","skills","address_book_variable","global_variable"]},"incremental_rate":{"maximum":100,"minimum":1,"type":"integer","description":"The rate that consumers accumulate priority while waiting in line. For example, consumer A and consumer B have the same top priority. If consumer A.wait_time \\* consumer A.`incremental_rate` > consumer B.wait_time \\* consumer B.`incremental_rate`, consumer A will be first serviced.","example":10},"parameter":{"type":"object","properties":{"ids":{"type":"array","description":"The related entity ID list for priority's attribute. \n`address_book_contacts`\nIDs - Address book contact ID list\n`release_to_queue`\nIDs - Queue ID list\n`skills`\nIDs - Skill ID list. Should under the same skill category.\n`address_book_variable`\nIDs - Address book ID list","items":{"type":"string","example":"mF8W-YRDRHCWyGMl4UNHWA"}},"enter_queue_start_time":{"type":"string","description":"The start time when the consumer enters the queue. Only used when `attribute_type` is `entrance_to_queue`.","example":"09:00 AM"},"enter_queue_end_time":{"type":"string","description":"The end time when the consumer enters the queue. Only used when `attribute_type` is `entrance_to_queue`.","example":"11:00 PM"},"enter_queue_timezone":{"type":"string","description":"The timezone when the consumer enters the queue.","example":"America/New_York"},"max_returning_minutes":{"maximum":10080,"minimum":1,"type":"integer","description":"Maximum number of minutes from last participation to now. Only used when `attribute_type` is `returning_customer`.","example":60},"variable_id":{"type":"string","description":"The variable's ID. Only used when `attribute_type` is `global_variable` or `address_book_variable`.","example":"--FBpU8hSGqIPNUv4lXR4A"},"variable_values":{"type":"array","description":"The optional variable's values. If variable matches any of them, it will match the priority. Only used when `attribute_type` is `address_book_variable`.","items":{"type":"string","example":"vip"}},"operator":{"type":"string","description":"The operator between global variable and `compared_value`. Only used when `attribute_type` is `global_variable`.","example":"equal_to","enum":["equal_to","greater_than","less_than","contains"]},"compared_value":{"type":"string","description":"Compare the specified value to the variable's value. Only used when `attribute_type` is `global_variable`.","example":"1"}},"description":"The parameter for priority's attribute. Parameter is different for each `attribute_type`:\n1. `address_book_contacts`\n`parameter` = {\n  `ids`: [`contanct1_id`, `contact2_id`] // address book contact ID list\n}\n\n2. `entrance_to_queue`\n`parameter` = {\n  `enter_queue_start_time`: `09:00 AM`,\n  `enter_queue_end_time`: `11:00 PM`,\n  `enter_queue_timezone`: `America/New_York`\n}\n\n3. `new_customer`\n`parameter` = `null` \n\n4. `returning_customer`\n`parameter` = {\n  `max_returning_minutes`: `60`\n}\n\n5. `release_to_queue`\n`parameter` = {\n  `ids`: [`queue1_id`, `queue2_id`] // queue ID list\n}\n\n6. `skills`\n`parameter` = {\n  `ids`: [`skill1_id`, `skill2_id`] // skill ID list\n}\n\n7. `address_book_variable`\n`parameter` = {\n  `variable_id` = `address_book_variable_id`,\n  `ids` = [`address_book_id1`, `address_book_id2`] // address book ID list\n  `variable_values` = [`value1`, `value2`]\n}\n\n8. `global_variable`\n`parameter` = {\n  `variable_id` = `global_variable_id`,\n  `operator` = `equal_to`,\n  `compared_value` = `value`\n}"}},"description":"The routing profile's accumulated priority."}}}}}}},"responses":{"201":{"description":"**HTTP Status Code:** `201`    Consumer routing profile created.","content":{"application/json":{"schema":{"type":"object","properties":{"consumer_routing_profile_id":{"type":"string","description":"The consumer routing profile's ID.","example":"-6JPFRKERXymVrf_h2EISQ"},"consumer_routing_profile_name":{"type":"string","description":"The consumer routing profile's name.","example":"My consumer routing profile"},"consumer_routing_profile_description":{"type":"string","description":"The consumer routing profile's description.","example":"This is the consumer routing profile's description."},"top_priorities":{"maxItems":150,"minItems":0,"type":"array","description":"The consumers' top priority. Decide the consumer's position in the queue. The higher the consumer's priority, the earlier the consumer will be served.","items":{"required":["attribute_type"],"type":"object","properties":{"attribute_type":{"type":"string","description":"The attribute's type.\n\n* `address_book_contacts` - Address book contacts \n* `entrance_to_queue` - Entrance to queue \n* `new_customer` - New customer \n* `returning_customer` -  Returning customer \n* `release_to_queue` - Release to queue \n* `skills` - Skills \n* `address_book_variable` - Address book variable \n* `global_variable` - Global variable","example":"global_variable","enum":["address_book_contacts","entrance_to_queue","new_customer","returning_customer","release_to_queue","skills","address_book_variable","global_variable"]},"parameter":{"type":"object","properties":{"ids":{"maxItems":100,"minItems":0,"type":"array","description":"The related entity ID list for priority's attribute. \n`address_book_contacts`\nIDs - Address book contact ID list\n`release_to_queue`\nIDs - Queue ID list\n`skills`\nIDs - Skill ID list. Should under the same skill category.\n`address_book_variable`\nIDs - Address book ID list","items":{"type":"string","example":"mF8W-YRDRHCWyGMl4UNHWA"}},"enter_queue_start_time":{"type":"string","description":"The start time when the consumer enters the queue. Only used when `attribute_type` is `entrance_to_queue`.","example":"09:00 AM"},"enter_queue_end_time":{"type":"string","description":"The end time when the consumer enters the queue. Only used when `attribute_type` is `entrance_to_queue`.","example":"11:00 PM"},"enter_queue_timezone":{"type":"string","description":"The timezone when the consumer enters the queue. Only used when `attribute_type` is `entrance_to_queue`.","example":"America/New_York"},"max_returning_minutes":{"maximum":10080,"minimum":1,"type":"integer","description":"Maximum number of minutes from last participation to now. Only used when `attribute_type` is `returning_customer`.","example":60},"variable_id":{"type":"string","description":"The variable's ID. Only used when `attribute_type` is `global_variable` or `address_book_variable`.","example":"--FBpU8hSGqIPNUv4lXR4A"},"variable_values":{"type":"array","description":"The optional variable's values. If variable matches any of them, it will match the priority. Only used when `attribute_type` is `address_book_variable`.","items":{"type":"string","example":"vip"}},"operator":{"type":"string","description":"The operator between global variable and `compared_value`. Only used when `attribute_type` is `global_variable`.","example":"equal_to","enum":["equal_to","greater_than","less_than","contains"]},"compared_value":{"type":"string","description":"Compare the specified value to the variable's value. Only used when `attribute_type` is `global_variable`.","example":"1"}},"description":"The parameter for priority's attribute. Parameter is different for each `attribute_type`:\n1. `address_book_contacts`\n`parameter` = {\n  `ids`: [`contanct1_id`, `contact2_id`] // address book contact ID list\n}\n\n2. `entrance_to_queue`\n`parameter` = {\n  `enter_queue_start_time`: `09:00 AM`,\n  `enter_queue_end_time`: `11:00 PM`,\n  `enter_queue_timezone`: `America/New_York`\n}\n\n3. `new_customer`\n`parameter` = `null` \n\n4. `returning_customer`\n`parameter` = {\n  `max_returning_minutes`: `60`\n}\n\n5. `release_to_queue`\n`parameter` = {\n  `ids`: [`queue1_id`, `queue2_id`] // queue ID list\n}\n\n6. `skills`\n`parameter` = {\n  `ids`: [`skill1_id`, `skill2_id`] // skill ID list\n}\n\n7. `address_book_variable`\n`parameter` = {\n  `variable_id` = `address_book_variable_id`,\n  `ids` = [`address_book_id1`, `address_book_id2`] // address book ID list\n  `variable_values` = [`value1`, `value2`]\n}\n\n8. `global_variable`\n`parameter` = {\n  `variable_id` = `global_variable_id`,\n  `operator` = `equal_to`,\n  `compared_value` = `value`\n}"}},"description":"The routing profile's top priority."}},"accumulated_priorities":{"maxItems":150,"minItems":0,"type":"array","description":"The consumers' accumulated priority. Use ratings to serve consumers from the highest to lowest value, from 100 to 1, based on a consumer attribute. Consumers accumulate priority while waiting in the queue, after top priority consumers.","items":{"required":["attribute_type","incremental_rate"],"type":"object","properties":{"attribute_type":{"type":"string","description":"The attribute's type.\n\n* `address_book_contacts` - Address book contacts \n* `entrance_to_queue` - Entrance to queue \n* `new_customer` - New customer \n* `returning_customer` -  Returning customer \n* `release_to_queue` - Release to queue \n* `skills` - Skills \n* `address_book_variable` - Address book variable \n* `global_variable` - Global variable","example":"global_variable","enum":["address_book_contacts","entrance_to_queue","new_customer","returning_customer","release_to_queue","skills","address_book_variable","global_variable"]},"incremental_rate":{"maximum":100,"minimum":1,"type":"integer","description":"The rate that consumers accumulate priority while waiting in line. For example, consumer A and consumer B have the same top priority. If consumer A.wait_time \\* consumer A.`incremental_rate` > consumer B.wait_time \\* consumer B.`incremental_rate`, consumer A will be first serviced.","example":10},"parameter":{"type":"object","properties":{"ids":{"type":"array","description":"The related entity ID list for priority's attribute. \n`address_book_contacts`\nIDs - Address book contact ID list\n`release_to_queue`\nIDs - Queue ID list\n`skills`\nIDs - Skill ID list. Should under the same skill category.\n`address_book_variable`\nIDs - Address book ID list","items":{"type":"string","example":"mF8W-YRDRHCWyGMl4UNHWA"}},"enter_queue_start_time":{"type":"string","description":"The start time when the consumer enters the queue. Only used when `attribute_type` is `entrance_to_queue`.","example":"09:00 AM"},"enter_queue_end_time":{"type":"string","description":"The end time when the consumer enters the queue. Only used when `attribute_type` is `entrance_to_queue`.","example":"11:00 PM"},"enter_queue_timezone":{"type":"string","description":"The timezone when the consumer enters the queue.","example":"America/New_York"},"max_returning_minutes":{"maximum":10080,"minimum":1,"type":"integer","description":"Maximum number of minutes from last participation to now. Only used when `attribute_type` is `returning_customer`.","example":60},"variable_id":{"type":"string","description":"The variable's ID. Only used when `attribute_type` is `global_variable` or `address_book_variable`.","example":"--FBpU8hSGqIPNUv4lXR4A"},"variable_values":{"type":"array","description":"The optional variable's values. If variable matches any of them, it will match the priority. Only used when `attribute_type` is `address_book_variable`.","items":{"type":"string","example":"vip"}},"operator":{"type":"string","description":"The operator between global variable and `compared_value`. Only used when `attribute_type` is `global_variable`.","example":"equal_to","enum":["equal_to","greater_than","less_than","contains"]},"compared_value":{"type":"string","description":"Compare the specified value to the variable's value. Only used when `attribute_type` is `global_variable`.","example":"1"}},"description":"The parameter for priority's attribute. Parameter is different for each `attribute_type`:\n1. `address_book_contacts`\n`parameter` = {\n  `ids`: [`contanct1_id`, `contact2_id`] // address book contact ID list\n}\n\n2. `entrance_to_queue`\n`parameter` = {\n  `enter_queue_start_time`: `09:00 AM`,\n  `enter_queue_end_time`: `11:00 PM`,\n  `enter_queue_timezone`: `America/New_York`\n}\n\n3. `new_customer`\n`parameter` = `null` \n\n4. `returning_customer`\n`parameter` = {\n  `max_returning_minutes`: `60`\n}\n\n5. `release_to_queue`\n`parameter` = {\n  `ids`: [`queue1_id`, `queue2_id`] // queue ID list\n}\n\n6. `skills`\n`parameter` = {\n  `ids`: [`skill1_id`, `skill2_id`] // skill ID list\n}\n\n7. `address_book_variable`\n`parameter` = {\n  `variable_id` = `address_book_variable_id`,\n  `ids` = [`address_book_id1`, `address_book_id2`] // address book ID list\n  `variable_values` = [`value1`, `value2`]\n}\n\n8. `global_variable`\n`parameter` = {\n  `variable_id` = `global_variable_id`,\n  `operator` = `equal_to`,\n  `compared_value` = `value`\n}"}},"description":"The routing profile's accumulated priority."}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `4010` <br>\n Number of priorities exceeds the maximum limit. <br>\n**Error Code:** `4011` <br>\n Consumer routing profile has duplicated priority attributes. <br>\n**Error Code:** `4012` <br>\n Consumer routing profile's related resource not found. <br>\n**Error Code:** `4013` <br>\n Invalid `compared_value` or operator in the consumer routing profile. <br>\n**Error Code:** `4014` <br>\n Duplicate variables in the consumer routing profile. <br>\n**Error Code:** `300` <br>\n Missing required parameter. <br>\n**Error Code:** `303` <br>\n Invalid parameter. <br>\n"},"409":{"description":"**HTTP Status Code:** `409` <br>\n Conflict  Consumer routing profile's name already exists. \n\n "},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_routing_profile:write:admin","contact_center:write:consumer_routing_profile:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_routing_profile:write:admin"],"x-granular-scopes":["contact_center:write:consumer_routing_profile:admin"]}}},"/contact_center/consumer_routing_profiles/{consumerRoutingProfileId}":{"get":{"tags":["Routing Profiles"],"summary":"Get a consumer routing profile","description":"Retrieve the consumer routing profile.  \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_routing_profile:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:consumer_routing_profile:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"Getaconsumerroutingprofile","parameters":[{"name":"consumerRoutingProfileId","in":"path","description":"The consumer routing profile's ID.","required":true,"schema":{"type":"string","example":"-6JPFRKERXymVrf_h2EISQ"}},{"name":"consumer_routing_profile_identifier_type","in":"query","description":"How the path parameter is interpreted. `id` treats it as a system-generated unique identifier. `name` treats it as the resource name.\nWhen using `name`, the resource name must be URL-encoded per RFC 3986.","required":false,"schema":{"type":"string","example":"id","default":"id","enum":["id","name"]}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`    Consumer routing profile returned.","content":{"application/json":{"schema":{"type":"object","properties":{"consumer_routing_profile_id":{"type":"string","description":"The consumer routing profile's ID.","example":"-6JPFRKERXymVrf_h2EISQ"},"consumer_routing_profile_name":{"type":"string","description":"The consumer routing profile's name.","example":"My consumer routing profile"},"consumer_routing_profile_description":{"type":"string","description":"The consumer routing profile's description.","example":"This is the consumer routing profile's description."},"top_priorities":{"maxItems":150,"minItems":0,"type":"array","description":"The consumers' top priority. Decide the consumer's position in the queue. The higher the consumer's priority, the earlier the consumer will be served.","items":{"required":["attribute_type"],"type":"object","properties":{"attribute_type":{"type":"string","description":"The attribute's type.\n\n* `address_book_contacts` - Address book contacts \n* `entrance_to_queue` - Entrance to queue \n* `new_customer` - New customer \n* `returning_customer` -  Returning customer \n* `release_to_queue` - Release to queue \n* `skills` - Skills \n* `address_book_variable` - Address book variable \n* `global_variable` - Global variable","example":"global_variable","enum":["address_book_contacts","entrance_to_queue","new_customer","returning_customer","release_to_queue","skills","address_book_variable","global_variable"]},"parameter":{"type":"object","properties":{"ids":{"maxItems":100,"minItems":0,"type":"array","description":"The related entity ID list for priority's attribute. \n`address_book_contacts`\nIDs - Address book contact ID list\n`release_to_queue`\nIDs - Queue ID list\n`skills`\nIDs - Skill ID list. Should under the same skill category.\n`address_book_variable`\nIDs - Address book ID list","items":{"type":"string","example":"mF8W-YRDRHCWyGMl4UNHWA"}},"enter_queue_start_time":{"type":"string","description":"The start time when the consumer enters the queue. Only used when `attribute_type` is `entrance_to_queue`.","example":"09:00 AM"},"enter_queue_end_time":{"type":"string","description":"The end time when the consumer enters the queue. Only used when `attribute_type` is `entrance_to_queue`.","example":"11:00 PM"},"enter_queue_timezone":{"type":"string","description":"The timezone when the consumer enters the queue. Only used when `attribute_type` is `entrance_to_queue`.","example":"America/New_York"},"max_returning_minutes":{"maximum":10080,"minimum":1,"type":"integer","description":"Maximum number of minutes from last participation to now. Only used when `attribute_type` is `returning_customer`.","example":60},"variable_id":{"type":"string","description":"The variable's ID. Only used when `attribute_type` is `global_variable` or `address_book_variable`.","example":"--FBpU8hSGqIPNUv4lXR4A"},"variable_values":{"type":"array","description":"The optional variable's values. If variable matches any of them, it will match the priority. Only used when `attribute_type` is `address_book_variable`.","items":{"type":"string","example":"vip"}},"operator":{"type":"string","description":"The operator between global variable and `compared_value`. Only used when `attribute_type` is `global_variable`.","example":"equal_to","enum":["equal_to","greater_than","less_than","contains"]},"compared_value":{"type":"string","description":"Compare the specified value to the variable's value. Only used when `attribute_type` is `global_variable`.","example":"1"}},"description":"The parameter for priority's attribute. Parameter is different for each `attribute_type`:\n1. `address_book_contacts`\n`parameter` = {\n  `ids`: [`contanct1_id`, `contact2_id`] // address book contact ID list\n}\n\n2. `entrance_to_queue`\n`parameter` = {\n  `enter_queue_start_time`: `09:00 AM`,\n  `enter_queue_end_time`: `11:00 PM`,\n  `enter_queue_timezone`: `America/New_York`\n}\n\n3. `new_customer`\n`parameter` = `null` \n\n4. `returning_customer`\n`parameter` = {\n  `max_returning_minutes`: `60`\n}\n\n5. `release_to_queue`\n`parameter` = {\n  `ids`: [`queue1_id`, `queue2_id`] // queue ID list\n}\n\n6. `skills`\n`parameter` = {\n  `ids`: [`skill1_id`, `skill2_id`] // skill ID list\n}\n\n7. `address_book_variable`\n`parameter` = {\n  `variable_id` = `address_book_variable_id`,\n  `ids` = [`address_book_id1`, `address_book_id2`] // address book ID list\n  `variable_values` = [`value1`, `value2`]\n}\n\n8. `global_variable`\n`parameter` = {\n  `variable_id` = `global_variable_id`,\n  `operator` = `equal_to`,\n  `compared_value` = `value`\n}"}},"description":"The routing profile's top priority."}},"accumulated_priorities":{"maxItems":150,"minItems":0,"type":"array","description":"The consumers' accumulated priority. Use ratings to serve consumers from the highest to lowest value, from 100 to 1, based on a consumer attribute. Consumers accumulate priority while waiting in the queue, after top priority consumers.","items":{"required":["attribute_type","incremental_rate"],"type":"object","properties":{"attribute_type":{"type":"string","description":"The attribute's type.\n\n* `address_book_contacts` - Address book contacts \n* `entrance_to_queue` - Entrance to queue \n* `new_customer` - New customer \n* `returning_customer` -  Returning customer \n* `release_to_queue` - Release to queue \n* `skills` - Skills \n* `address_book_variable` - Address book variable \n* `global_variable` - Global variable","example":"global_variable","enum":["address_book_contacts","entrance_to_queue","new_customer","returning_customer","release_to_queue","skills","address_book_variable","global_variable"]},"incremental_rate":{"maximum":100,"minimum":1,"type":"integer","description":"The rate that consumers accumulate priority while waiting in line. For example, consumer A and consumer B have the same top priority. If consumer A.wait_time \\* consumer A.`incremental_rate` > consumer B.wait_time \\* consumer B.`incremental_rate`, consumer A will be first serviced.","example":10},"parameter":{"type":"object","properties":{"ids":{"type":"array","description":"The related entity ID list for priority's attribute. \n`address_book_contacts`\nIDs - Address book contact ID list\n`release_to_queue`\nIDs - Queue ID list\n`skills`\nIDs - Skill ID list. Should under the same skill category.\n`address_book_variable`\nIDs - Address book ID list","items":{"type":"string","example":"mF8W-YRDRHCWyGMl4UNHWA"}},"enter_queue_start_time":{"type":"string","description":"The start time when the consumer enters the queue. Only used when `attribute_type` is `entrance_to_queue`.","example":"09:00 AM"},"enter_queue_end_time":{"type":"string","description":"The end time when the consumer enters the queue. Only used when `attribute_type` is `entrance_to_queue`.","example":"11:00 PM"},"enter_queue_timezone":{"type":"string","description":"The timezone when the consumer enters the queue.","example":"America/New_York"},"max_returning_minutes":{"maximum":10080,"minimum":1,"type":"integer","description":"Maximum number of minutes from last participation to now. Only used when `attribute_type` is `returning_customer`.","example":60},"variable_id":{"type":"string","description":"The variable's ID. Only used when `attribute_type` is `global_variable` or `address_book_variable`.","example":"--FBpU8hSGqIPNUv4lXR4A"},"variable_values":{"type":"array","description":"The optional variable's values. If variable matches any of them, it will match the priority. Only used when `attribute_type` is `address_book_variable`.","items":{"type":"string","example":"vip"}},"operator":{"type":"string","description":"The operator between global variable and `compared_value`. Only used when `attribute_type` is `global_variable`.","example":"equal_to","enum":["equal_to","greater_than","less_than","contains"]},"compared_value":{"type":"string","description":"Compare the specified value to the variable's value. Only used when `attribute_type` is `global_variable`.","example":"1"}},"description":"The parameter for priority's attribute. Parameter is different for each `attribute_type`:\n1. `address_book_contacts`\n`parameter` = {\n  `ids`: [`contanct1_id`, `contact2_id`] // address book contact ID list\n}\n\n2. `entrance_to_queue`\n`parameter` = {\n  `enter_queue_start_time`: `09:00 AM`,\n  `enter_queue_end_time`: `11:00 PM`,\n  `enter_queue_timezone`: `America/New_York`\n}\n\n3. `new_customer`\n`parameter` = `null` \n\n4. `returning_customer`\n`parameter` = {\n  `max_returning_minutes`: `60`\n}\n\n5. `release_to_queue`\n`parameter` = {\n  `ids`: [`queue1_id`, `queue2_id`] // queue ID list\n}\n\n6. `skills`\n`parameter` = {\n  `ids`: [`skill1_id`, `skill2_id`] // skill ID list\n}\n\n7. `address_book_variable`\n`parameter` = {\n  `variable_id` = `address_book_variable_id`,\n  `ids` = [`address_book_id1`, `address_book_id2`] // address book ID list\n  `variable_values` = [`value1`, `value2`]\n}\n\n8. `global_variable`\n`parameter` = {\n  `variable_id` = `global_variable_id`,\n  `operator` = `equal_to`,\n  `compared_value` = `value`\n}"}},"description":"The routing profile's accumulated priority."}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `4015` <br>\n More than one matching consumer routing profile found. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  Consumer routing profile does not exist. \n\n "},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n  You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_routing_profile:read:admin","contact_center:read:consumer_routing_profile:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_routing_profile:read:admin"],"x-granular-scopes":["contact_center:read:consumer_routing_profile:admin"]}},"delete":{"tags":["Routing Profiles"],"summary":"Delete a consumer routing profile","description":"Delete a consumer routing profile.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_routing_profile:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:delete:consumer_routing_profile:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"Deleteaconsumerroutingprofile","parameters":[{"name":"consumerRoutingProfileId","in":"path","description":"The consumer routing profile's ID.","required":true,"schema":{"type":"string","example":"consumerRoutingProfileId"}},{"name":"consumer_routing_profile_identifier_type","in":"query","description":"How the path parameter is interpreted. `id` treats it as a system-generated unique identifier. `name` treats it as the resource name.\nWhen using `name`, the resource name must be URL-encoded per RFC 3986.","required":false,"schema":{"type":"string","example":"id","default":"id","enum":["id","name"]}}],"responses":{"204":{"description":"**HTTP Status Code:** `204`    Consumer routing profile deleted."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `4015` <br>\n More than one matching consumer routing profile found. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  Consumer routing profileId doesn't exist. \n\n "},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_routing_profile:write:admin","contact_center:delete:consumer_routing_profile:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_routing_profile:write:admin"],"x-granular-scopes":["contact_center:delete:consumer_routing_profile:admin"]}},"patch":{"tags":["Routing Profiles"],"summary":"Update a consumer routing profile's details","description":"Update a consumer routing profile details.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_routing_profile:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:update:consumer_routing_profile:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"Updateaconsumerroutingprofile'sdetails","parameters":[{"name":"consumerRoutingProfileId","in":"path","description":"The consumer routing profile's ID.","required":true,"schema":{"type":"string","example":"-6JPFRKERXymVrf_h2EISQ"}},{"name":"consumer_routing_profile_identifier_type","in":"query","description":"How the path parameter is interpreted. `id` treats it as a system-generated unique identifier. `name` treats it as the resource name.\nWhen using `name`, the resource name must be URL-encoded per RFC 3986.","required":false,"schema":{"type":"string","example":"id","default":"id","enum":["id","name"]}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"consumer_routing_profile_name":{"type":"string","description":"The consumer routing profile's name.","example":"My consumer routing profile"},"consumer_routing_profile_description":{"type":"string","description":"The consumer routing profile's description.","example":"This is the consumer routing profile's description."},"top_priorities":{"maxItems":150,"minItems":0,"type":"array","description":"The consumers' top priority. Decide the consumer's position in the queue. The higher the consumer's priority, the earlier the consumer will be served.","items":{"required":["attribute_type"],"type":"object","properties":{"attribute_type":{"type":"string","description":"The attribute's type.\n\n* `address_book_contacts` - Address book contacts \n* `entrance_to_queue` - Entrance to queue \n* `new_customer` - New customer \n* `returning_customer` -  Returning customer \n* `release_to_queue` - Release to queue \n* `skills` - Skills \n* `address_book_variable` - Address book variable \n* `global_variable` - Global variable","example":"global_variable","enum":["address_book_contacts","entrance_to_queue","new_customer","returning_customer","release_to_queue","skills","address_book_variable","global_variable"]},"parameter":{"type":"object","properties":{"ids":{"maxItems":100,"minItems":0,"type":"array","description":"The related entity ID list for priority's attribute. \n`address_book_contacts`\nIDs - Address book contact ID list\n`release_to_queue`\nIDs - Queue ID list\n`skills`\nIDs - Skill ID list. Should under the same skill category.\n`address_book_variable`\nIDs - Address book ID list","items":{"type":"string","example":"mF8W-YRDRHCWyGMl4UNHWA"}},"enter_queue_start_time":{"type":"string","description":"The start time when the consumer enters the queue. Only used when `attribute_type` is `entrance_to_queue`.","example":"09:00 AM"},"enter_queue_end_time":{"type":"string","description":"The end time when the consumer enters the queue. Only used when `attribute_type` is `entrance_to_queue`.","example":"11:00 PM"},"enter_queue_timezone":{"type":"string","description":"The timezone when the consumer enters the queue. Only used when `attribute_type` is `entrance_to_queue`.","example":"America/New_York"},"max_returning_minutes":{"maximum":10080,"minimum":1,"type":"integer","description":"Maximum number of minutes from last participation to now. Only used when `attribute_type` is `returning_customer`.","example":60},"variable_id":{"type":"string","description":"The variable's ID. Only used when `attribute_type` is `global_variable` or `address_book_variable`.","example":"--FBpU8hSGqIPNUv4lXR4A"},"variable_values":{"type":"array","description":"The optional variable's values. If variable matches any of them, it will match the priority. Only used when `attribute_type` is `address_book_variable`.","items":{"type":"string","example":"vip"}},"operator":{"type":"string","description":"The operator between global variable and `compared_value`. Only used when `attribute_type` is `global_variable`.","example":"equal_to","enum":["equal_to","greater_than","less_than","contains"]},"compared_value":{"type":"string","description":"Compare the specified value to the variable's value. Only used when `attribute_type` is `global_variable`.","example":"1"}},"description":"The parameter for priority's attribute. Parameter is different for each `attribute_type`:\n1. `address_book_contacts`\n`parameter` = {\n  `ids`: [`contanct1_id`, `contact2_id`] // address book contact ID list\n}\n\n2. `entrance_to_queue`\n`parameter` = {\n  `enter_queue_start_time`: `09:00 AM`,\n  `enter_queue_end_time`: `11:00 PM`,\n  `enter_queue_timezone`: `America/New_York`\n}\n\n3. `new_customer`\n`parameter` = `null` \n\n4. `returning_customer`\n`parameter` = {\n  `max_returning_minutes`: `60`\n}\n\n5. `release_to_queue`\n`parameter` = {\n  `ids`: [`queue1_id`, `queue2_id`] // queue ID list\n}\n\n6. `skills`\n`parameter` = {\n  `ids`: [`skill1_id`, `skill2_id`] // skill ID list\n}\n\n7. `address_book_variable`\n`parameter` = {\n  `variable_id` = `address_book_variable_id`,\n  `ids` = [`address_book_id1`, `address_book_id2`] // address book ID list\n  `variable_values` = [`value1`, `value2`]\n}\n\n8. `global_variable`\n`parameter` = {\n  `variable_id` = `global_variable_id`,\n  `operator` = `equal_to`,\n  `compared_value` = `value`\n}"}},"description":"The routing profile's top priority."}},"accumulated_priorities":{"maxItems":150,"minItems":0,"type":"array","description":"The consumers' accumulated priority. Use ratings to serve consumers from the highest to lowest value, from 100 to 1, based on a consumer attribute. Consumers accumulate priority while waiting in the queue, after top priority consumers.","items":{"required":["attribute_type","incremental_rate"],"type":"object","properties":{"attribute_type":{"type":"string","description":"The attribute's type.\n\n* `address_book_contacts` - Address book contacts \n* `entrance_to_queue` - Entrance to queue \n* `new_customer` - New customer \n* `returning_customer` -  Returning customer \n* `release_to_queue` - Release to queue \n* `skills` - Skills \n* `address_book_variable` - Address book variable \n* `global_variable` - Global variable","example":"global_variable","enum":["address_book_contacts","entrance_to_queue","new_customer","returning_customer","release_to_queue","skills","address_book_variable","global_variable"]},"incremental_rate":{"maximum":100,"minimum":1,"type":"integer","description":"The rate that consumers accumulate priority while waiting in line. For example, consumer A and consumer B have the same top priority. If consumer A.wait_time \\* consumer A.`incremental_rate` > consumer B.wait_time \\* consumer B.`incremental_rate`, consumer A will be first serviced.","example":10},"parameter":{"type":"object","properties":{"ids":{"type":"array","description":"The related entity ID list for priority's attribute. \n`address_book_contacts`\nIDs - Address book contact ID list\n`release_to_queue`\nIDs - Queue ID list\n`skills`\nIDs - Skill ID list. Should under the same skill category.\n`address_book_variable`\nIDs - Address book ID list","items":{"type":"string","example":"mF8W-YRDRHCWyGMl4UNHWA"}},"enter_queue_start_time":{"type":"string","description":"The start time when the consumer enters the queue. Only used when `attribute_type` is `entrance_to_queue`.","example":"09:00 AM"},"enter_queue_end_time":{"type":"string","description":"The end time when the consumer enters the queue. Only used when `attribute_type` is `entrance_to_queue`.","example":"11:00 PM"},"enter_queue_timezone":{"type":"string","description":"The timezone when the consumer enters the queue.","example":"America/New_York"},"max_returning_minutes":{"maximum":10080,"minimum":1,"type":"integer","description":"Maximum number of minutes from last participation to now. Only used when `attribute_type` is `returning_customer`.","example":60},"variable_id":{"type":"string","description":"The variable's ID. Only used when `attribute_type` is `global_variable` or `address_book_variable`.","example":"--FBpU8hSGqIPNUv4lXR4A"},"variable_values":{"type":"array","description":"The optional variable's values. If variable matches any of them, it will match the priority. Only used when `attribute_type` is `address_book_variable`.","items":{"type":"string","example":"vip"}},"operator":{"type":"string","description":"The operator between global variable and `compared_value`. Only used when `attribute_type` is `global_variable`.","example":"equal_to","enum":["equal_to","greater_than","less_than","contains"]},"compared_value":{"type":"string","description":"Compare the specified value to the variable's value. Only used when `attribute_type` is `global_variable`.","example":"1"}},"description":"The parameter for priority's attribute. Parameter is different for each `attribute_type`:\n1. `address_book_contacts`\n`parameter` = {\n  `ids`: [`contanct1_id`, `contact2_id`] // address book contact ID list\n}\n\n2. `entrance_to_queue`\n`parameter` = {\n  `enter_queue_start_time`: `09:00 AM`,\n  `enter_queue_end_time`: `11:00 PM`,\n  `enter_queue_timezone`: `America/New_York`\n}\n\n3. `new_customer`\n`parameter` = `null` \n\n4. `returning_customer`\n`parameter` = {\n  `max_returning_minutes`: `60`\n}\n\n5. `release_to_queue`\n`parameter` = {\n  `ids`: [`queue1_id`, `queue2_id`] // queue ID list\n}\n\n6. `skills`\n`parameter` = {\n  `ids`: [`skill1_id`, `skill2_id`] // skill ID list\n}\n\n7. `address_book_variable`\n`parameter` = {\n  `variable_id` = `address_book_variable_id`,\n  `ids` = [`address_book_id1`, `address_book_id2`] // address book ID list\n  `variable_values` = [`value1`, `value2`]\n}\n\n8. `global_variable`\n`parameter` = {\n  `variable_id` = `global_variable_id`,\n  `operator` = `equal_to`,\n  `compared_value` = `value`\n}"}},"description":"The routing profile's accumulated priority."}}}}}}},"responses":{"204":{"description":"**HTTP Status Code:** `204`    Consumer routing profile's details updated."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `4010` <br>\n Number of priorities exceeds the maximum limit. <br>\n**Error Code:** `4011` <br>\n The consumer routing profile has duplicated priority attributes. <br>\n**Error Code:** `4012` <br>\n The consumer routing profile's related resource not found. <br>\n**Error Code:** `4013` <br>\n Invalid `compared_value` or operator in the consumer routing profile. <br>\n**Error Code:** `4014` <br>\n Duplicate variables in the consumer routing profile. <br>\n**Error Code:** `300` <br>\n Missing required parameter. <br>\n**Error Code:** `303` <br>\n Invalid parameter. <br>\n**Error Code:** `4015` <br>\n More than one matching consumer routing profile found. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  Consumer routing profile doesn't exist. \n\n "},"409":{"description":"**HTTP Status Code:** `409` <br>\n Conflict  Consumer routing profile's name already exists. \n\n "},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_routing_profile:write:admin","contact_center:update:consumer_routing_profile:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_routing_profile:write:admin"],"x-granular-scopes":["contact_center:update:consumer_routing_profile:admin"]}}},"/contact_center/skills":{"get":{"tags":["Skills"],"summary":"List skills","description":"Return a list of a skills or a skill category's assigned skills. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_skill:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:list_skills:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"listSkills","parameters":[{"name":"skill_category_id","in":"query","description":"The skill category's ID.","required":false,"schema":{"type":"string","example":"Mu_IEZZHQZGMY9avK74kwA"}},{"name":"skill_id","in":"query","description":"The skill's ID.","required":false,"schema":{"type":"string","example":"saaHWgVMGQU69soco456oNA"}},{"name":"skill_type","in":"query","description":"The skill category's type.","required":false,"schema":{"type":"string","description":"The skill category's type: \n* 'text' &mdash; A text-based skill, such as a geographic location. Skills in this category do not have assigned skill levels. \n* 'proficiency' &mdash; A proficiency-based skill, such as a second language. Skills in this type of category have assigned proficiency levels.","example":"text","enum":["text","proficiency"]}},{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of records returned in a single API call.","required":false,"schema":{"maximum":300,"type":"integer","format":"int32","example":30,"default":30}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \nSkills list returned.","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"maxLength":100,"type":"string","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":300,"type":"integer","description":"The number of records returned in a single API call.","example":30,"default":30},"total_records":{"minimum":0,"type":"integer","description":"The total number of all records available across pages.","example":10},"skills":{"type":"array","description":"Information about the skills.","items":{"type":"object","properties":{"skill_id":{"type":"string","description":"The skill's ID.","example":"saaHWgVMGQU69soco456oNA"},"skill_name":{"type":"string","description":"The skill's name.","example":"French"},"skill_type":{"type":"string","description":"The skill category's type: \n* 'text' &mdash; A text-based skill, such as a geographic location. Skills in this category do not have assigned skill levels. \n* 'proficiency' &mdash; A proficiency-based skill, such as a second language. Skills in this type of category have assigned proficiency levels.","example":"text","enum":["text","proficiency"]},"max_proficiency_level":{"type":"integer","description":"The skill category's maximum proficiency level, between `1` (low) and `5` (high). Use this value if the skill category's `type` value is `1` (a proficiency-based skill).","example":5,"enum":[1,2,3,4,5]},"skill_category_name":{"type":"string","description":"The skill category's name.","example":"Languages"},"skill_category_id":{"type":"string","description":"The skill's category ID.","example":"rvYVEioQQduHb5iHCj7-kg"},"total_users":{"type":"integer","description":"The total users of the skill","example":5},"modified_by":{"type":"string","description":"The ID of the user who last modified this data.","example":"IGTRVt3gQ2i-WjoUIjeZxw"},"last_modified_time":{"type":"string","description":"The date and time when this data was last modified.","format":"date-time","example":"2022-02-15T09:27:15Z"}},"description":"Information about the skill."}}}}}}},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_skill:read:admin","contact_center:read:list_skills:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_skill:read:admin"],"x-granular-scopes":["contact_center:read:list_skills:admin"]}},"post":{"tags":["Skills"],"summary":"Create a skill","description":"Create a [skill](https://support.zoom.us/hc/en-us/articles/4423986613261) for skill-based routing. Skills are agent traits that ensure they are the right person to handle a customer interaction. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_skill:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:write:skill:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"skillCreate","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"skill_category_id":{"type":"string","description":"The skill category ID to assign the skill to.","example":"OyQQjWiZQTaBX7RwSK6iRw"},"skill_name":{"type":"string","description":"The skill's name.","example":"French"}},"description":"Information about the new skill."}}}},"responses":{"201":{"description":"**HTTP Status Code:** `201`   \n \nSkills created.","content":{"application/json":{"schema":{"type":"object","properties":{"skill_id":{"type":"string","description":"The skill's ID.","example":"saaHWgVMGQU69soco456oNA"},"skill_name":{"type":"string","description":"The skill's name.","example":"French"},"skill_type":{"type":"string","description":"The skill category's type: \n* 'text' &mdash; A text-based skill, such as a geographic location. Skills in this category do not have assigned skill levels. \n* 'proficiency' &mdash; A proficiency-based skill, such as a second language. Skills in this type of category have assigned proficiency levels.","example":"text","enum":["text","proficiency"]},"max_proficiency_level":{"type":"integer","description":"The skill category's maximum proficiency level, between `1` (low) and `5` (high). Use this value if the skill category's `type` value is `1` (a proficiency-based skill).","example":5,"enum":[1,2,3,4,5]},"skill_category_name":{"type":"string","description":"The skill category's name.","example":"Languages"},"skill_category_id":{"type":"string","description":"The skill's category ID.","example":"rvYVEioQQduHb5iHCj7-kg"},"total_users":{"minimum":0,"type":"integer","description":"The total number of users of the skill.","example":5},"modified_by":{"type":"string","description":"The ID of the user that last modified this data.","example":"IGTRVt3gQ2i-WjoUIjeZxw"},"last_modified_time":{"type":"string","description":"The date and time when this data was last modified.","format":"date-time","example":"2022-02-15T09:27:15Z"}},"description":"Information about the skill."}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `1502` <br>\n Skill name already exists. You must select a different name. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1501` <br>\n Skill category does not exist: $skillCategoryId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_skill:write:admin","contact_center:write:skill:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_skill:write:admin"],"x-granular-scopes":["contact_center:write:skill:admin"]}}},"/contact_center/skills/categories":{"get":{"tags":["Skills"],"summary":"List skill categories","description":"List all available skill categories and their information. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_skill:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:list_skill_categories:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"listSkillCategory","parameters":[{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token returns whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of items returned per page.","required":false,"schema":{"maximum":300,"type":"integer","format":"int32","example":30,"default":30}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \nSkill categories list returned.","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"type":"string","description":"The next page token is used to paginate through large result sets. A next page token returns whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"H13iGyIFKCICxrYDlrppjJcDvN2jcBnRzD2"},"page_size":{"maximum":300,"type":"integer","description":"The number of records returned within a single API call.","example":1,"default":30},"skill_categories":{"type":"array","description":"Information about the skill categories.","items":{"type":"object","properties":{"skill_category_id":{"type":"string","description":"The skill category's ID.","example":"Mu_IEZZHQZGMY9avK74kwA"},"skill_category_name":{"type":"string","description":"The skill category's name.","example":"Languages"},"skill_category_description":{"type":"string","description":"The skill category's description.","example":"Medium proficiency."},"max_proficiency_level":{"type":"integer","description":"The skill category's maximum proficiency level, between `1` (low) and system configured highest level (high). This value only returns if the skill category's `type` value is `1`, a proficiency-based skill.","example":25},"total_agent_routing_profiles":{"type":"integer","description":"The total agent routing profiles.","example":5},"skill_type":{"type":"string","description":"The skill category's type: \n* 'text' &mdash; A text-based skill, such as a geographic location. Skills in this category do not have assigned skill levels. \n* 'proficiency' &mdash; A proficiency-based skill, such as a second language. Skills in this type of category have assigned proficiency levels.","example":"text","enum":["text","proficiency"]},"modified_by":{"type":"string","description":"The ID of the user who last modified the skill category.","example":"IGTRVt3gQ2i-WjoUIjeZxw"},"last_modified_time":{"type":"string","description":"The date and time when the skill category was last modified.","format":"date-time","example":"2022-02-15T09:27:15Z"}},"description":"Information about the available skill categories."}}},"description":"Information about the available skill categories."}}}},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_skill:read:admin","contact_center:read:list_skill_categories:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_skill:read:admin"],"x-granular-scopes":["contact_center:read:list_skill_categories:admin"]}},"post":{"tags":["Skills"],"summary":"Create a skill category","description":"Create a new skill category. Skill categories let you assign several similar skills to a category, such as language skills. You can then route French-speaking callers to contact center agents that have the highest proficiency with French. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_skill:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:write:skill_category:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"SkillCategoryCreate","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"max_proficiency_level":{"type":"integer","description":"The skill category's maximum proficiency level, between `1` (low) and system configured highest level (high). Use this value if the skill category's `type` value is `1` (a proficiency-based skill).","example":25},"skill_category_name":{"type":"string","description":"The skill category's name.","example":"Languages"},"skill_category_description":{"type":"string","description":"The skill category's description.","example":"Medium proficiency."},"skill_type":{"type":"string","description":"The skill category's type. \n* 'text' - A text-based skill, such as a geographic location. Skills in this category do not have assigned skill levels. \n* 'proficiency' - A proficiency-based skill, such as a second language. Skills in this type of category have assigned proficiency levels.","example":"text","enum":["text","proficiency"]}},"description":"Information about the new skill category."}}}},"responses":{"201":{"description":"**HTTP Status Code:** `201`   \n \nSkill category created.","content":{"application/json":{"schema":{"type":"object","properties":{"skill_category_id":{"type":"string","description":"The skill category's ID.","example":"Mu_IEZZHQZGMY9avK74kwA"},"skill_category_name":{"type":"string","description":"The skill category's name.","example":"Languages"},"skill_category_description":{"type":"string","description":"The skill category's description.","example":"Medium proficiency."},"skill_type":{"type":"string","description":"The skill category's type. \n* 'text' - A text-based skill, such as a geographic location. Skills in this category do not have assigned skill levels. \n* 'proficiency' - A proficiency-based skill, such as a second language. Skills in this type of category have assigned proficiency levels.","example":"text","enum":["text","proficiency"]},"max_proficiency_level":{"type":"integer","description":"The skill category's maximum proficiency level, between `1` (low) and system configured highest level (high). Use this value if the skill category's `type` value is `1`, for a proficiency-based skill.","example":25},"modified_by":{"type":"string","description":"The ID of the user who last modified the skill category.","example":"IGTRVt3gQ2i-WjoUIjeZxw"},"last_modified_time":{"type":"string","description":"The date and time when the skill category was last modified.","format":"date-time","example":"2022-02-15T09:27:15Z"}},"description":"Information about the created skill category."}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `1502` <br>\n The skill category highest proficiency level is `5`, and the lowest level is `1`. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_skill:write:admin","contact_center:write:skill_category:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_skill:write:admin"],"x-granular-scopes":["contact_center:write:skill_category:admin"]}}},"/contact_center/skills/categories/{skillCategoryId}":{"get":{"tags":["Skills"],"summary":"Get a skill category","description":"Return information about a specific skill category. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_skill:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:skill_category:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"getSkillCategory","parameters":[{"name":"skillCategoryId","in":"path","description":"The skill category's ID.","required":true,"schema":{"type":"string","example":"Mu_IEZZHQZGMY9avK74kwA"}},{"name":"skill_category_identifier_type","in":"query","description":"How the path parameter is interpreted. `id` treats it as a system-generated unique identifier. `name` treats it as the resource name.\n\nWhen using `name`, the resource name must be URL-encoded per RFC 3986.","required":false,"schema":{"type":"string","example":"id","default":"id","enum":["id","name"]}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \nSkill category returned.","content":{"application/json":{"schema":{"type":"object","properties":{"skill_category_id":{"type":"string","description":"The skill category's ID.","example":"Mu_IEZZHQZGMY9avK74kwA"},"skill_category_name":{"type":"string","description":"The skill category's name.","example":"Languages"},"skill_category_description":{"type":"string","description":"The skill category's description.","example":"Medium proficiency."},"max_proficiency_level":{"type":"integer","description":"The skill category's maximum proficiency level, between `1` (low) and system configured highest level (high). This value only returns if the skill category's `type` value is `1`, a proficiency-based skill.","example":25},"skill_type":{"type":"string","description":"The skill category's type.\n\n* 'text' - A text-based skill, such as a geographic location. Skills in this category do not have assigned skill levels. \n* 'proficiency' - A proficiency-based skill, such as a second language. Skills in this type of category have assigned proficiency levels.","example":"text","enum":["text","proficiency"]},"modified_by":{"type":"string","description":"The ID of the user that last modified this data.","example":"IGTRVt3gQ2i-WjoUIjeZxw"},"last_modified_time":{"type":"string","description":"The date and time when this data was last modified.","format":"date-time","example":"2022-02-15T09:27:15Z"}},"description":"Information about the skill category."}}}},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1501` <br>\n Skill category does not exist: $skillCategoryId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_skill:read:admin","contact_center:read:skill_category:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_skill:read:admin"],"x-granular-scopes":["contact_center:read:skill_category:admin"]}},"delete":{"tags":["Skills"],"summary":"Delete a skill category","description":"Delete an existing skill category. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_skill:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:delete:skill_category:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"SkillCategoryDelete","parameters":[{"name":"skillCategoryId","in":"path","description":"The skill category's ID.","required":true,"schema":{"type":"string","example":"Mu_IEZZHQZGMY9avK74kwA"}}],"responses":{"204":{"description":"**HTTP Status Code:** `204`   \n \nSkill category deleted."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1501` <br>\n Skill category does not exist: $skillCategoryId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rest/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_skill:write:admin","contact_center:delete:skill_category:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_skill:write:admin"],"x-granular-scopes":["contact_center:delete:skill_category:admin"]}},"patch":{"tags":["Skills"],"summary":"Update a skill category","description":"Update a skill category. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_skill:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:update:skill_category:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"SkillCategoryUpdate","parameters":[{"name":"skillCategoryId","in":"path","description":"The skill category's ID.","required":true,"schema":{"type":"string","example":"Mu_IEZZHQZGMY9avK74kwA"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"max_proficiency_level":{"type":"integer","description":"The skill category's maximum proficiency level, between `1` (low) and system configured highest level (high). Use this value if the skill category's `type` value is `1`, a proficiency-based skill.","example":25},"skill_category_name":{"type":"string","description":"The skill category's name.","example":"Languages"},"skill_category_description":{"type":"string","description":"The skill category's description.","example":"Medium proficiency."}},"description":"Information about the new skill category."}}}},"responses":{"204":{"description":"**HTTP Status Code:** `204`   \n \nSkill category updated."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `1502` <br>\n The skill category highest proficiency level is `5`, and the lowest level is `1`. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1501` <br>\n Skill category does not exist: $skillCategoryId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_skill:write:admin","contact_center:update:skill_category:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_skill:write:admin"],"x-granular-scopes":["contact_center:update:skill_category:admin"]}}},"/contact_center/skills/{skillId}":{"get":{"tags":["Skills"],"summary":"Get a skill","description":"Return a skill's information and its usage. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_skill:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:skill:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"getSkill","parameters":[{"name":"skillId","in":"path","description":"The skill's ID.","required":true,"schema":{"type":"string","example":"saaHWgVMGQU69soco456oNA"}},{"name":"skill_identifier_type","in":"query","description":"How the path parameter is interpreted. `id` treats it as a system-generated unique identifier. `name` treats it as the resource name.\n\nWhen using `name`, the resource name must be URL-encoded per RFC 3986.","required":false,"schema":{"type":"string","example":"id","default":"id","enum":["id","name"]}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \nSkill usage information returned.","content":{"application/json":{"schema":{"type":"object","properties":{"skill_id":{"type":"string","description":"The skill's ID.","example":"saaHWgVMGQU69soco456oNA"},"skill_name":{"type":"string","description":"The skill's name.","example":"French"},"skill_type":{"type":"string","description":"The skill category's type.\n\n* 'text' - A text-based skill, such as a geographic location. Skills in this category do not have assigned skill levels. \n* 'proficiency' - A proficiency-based skill, such as a second language. Skills in this type of category have assigned proficiency levels.","example":"text","enum":["text","proficiency"]},"max_proficiency_level":{"type":"integer","description":"The skill category's maximum proficiency level, between `1`, lowest, and `5`, highest. Use this value if the skill category's `type` value is `1`, a proficiency-based skill.","example":5,"enum":[1,2,3,4,5]},"skill_category_name":{"type":"string","description":"The skill category's name.","example":"Languages"},"skill_category_id":{"type":"string","description":"The skill's category ID.","example":"rvYVEioQQduHb5iHCj7-kg"},"total_users":{"type":"integer","description":"The total users of the skill","example":5},"modified_by":{"type":"string","description":"The ID of the user that last modified this data.","example":"IGTRVt3gQ2i-WjoUIjeZxw"},"last_modified_time":{"type":"string","description":"The date and time when this data was last modified.","format":"date-time","example":"2022-02-15T09:27:15Z"}},"description":"Information about the skill."}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `1408` <br>\n More than one matching skill found. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1401` <br>\n Skill does not exist: $skillId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_skill:read:admin","contact_center:read:skill:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_skill:read:admin"],"x-granular-scopes":["contact_center:read:skill:admin"]}},"delete":{"tags":["Skills"],"summary":"Delete a skill","description":"Delete a skill. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_skill:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:delete:skill:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"skillDelete","parameters":[{"name":"skillId","in":"path","description":"The skill's ID.","required":true,"schema":{"type":"string","example":"saaHWgVMGQU69soco456oNA"}},{"name":"skill_identifier_type","in":"query","description":"How the path parameter is interpreted. `id` treats it as a system-generated unique identifier. `name` treats it as the resource name.\nWhen using `name`, the resource name must be URL-encoded per RFC 3986.","required":false,"schema":{"type":"string","example":"id","default":"id","enum":["id","name"]}}],"responses":{"204":{"description":"**HTTP Status Code:** `204 `  \n \nSkill deleted."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `1408` <br>\n More than one matching skill found. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1401` <br>\n Skill does not exist: $skillId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_skill:write:admin","contact_center:delete:skill:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_skill:write:admin"],"x-granular-scopes":["contact_center:delete:skill:admin"]}},"patch":{"tags":["Skills"],"summary":"Update a skill","description":"Use this API to update a skill's name. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_skill:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:update:skill:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"skillNameUpdate","parameters":[{"name":"skillId","in":"path","description":"The skill's ID.","required":true,"schema":{"type":"string","example":"saaHWgVMGQU69soco456oNA"}},{"name":"skill_identifier_type","in":"query","description":"How the path parameter is interpreted. `id` treats it as a system-generated unique identifier. `name` treats it as the resource name.\n\nWhen using `name`, the resource name must be URL-encoded per RFC 3986.","required":false,"schema":{"type":"string","example":"id","default":"id","enum":["id","name"]}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"skill_name":{"type":"string","description":"The skill's new name.","example":"this is a skill name"}},"description":"Information about the updated skill."}}}},"responses":{"204":{"description":"**HTTP Status Code:** `204`   \n \nSkill updated."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `1408` <br>\n More than one matching skill found. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1401` <br>\n Skill does not exist: $skillId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n  You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_skill:write:admin","contact_center:update:skill:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_skill:write:admin"],"x-granular-scopes":["contact_center:update:skill:admin"]}}},"/contact_center/skills/{skillId}/users":{"get":{"tags":["Skills"],"summary":"List skill users","description":"Retrieve a list of users assigned to a skill.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_user:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:list_skill_users:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"listSkillUsers","parameters":[{"name":"skillId","in":"path","description":"The skill's ID.","required":true,"schema":{"type":"string","example":"saaHWgVMGQU69soco456oNA"}},{"name":"skill_identifier_type","in":"query","description":"How the path parameter is interpreted. `id` treats it as a system-generated unique identifier. `name` treats it as the resource name.\nWhen using `name`, the resource name must be URL-encoded per RFC 3986.","required":false,"schema":{"type":"string","example":"id","default":"id","enum":["id","name"]}},{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of records returned in a single API call.","required":false,"schema":{"maximum":300,"type":"integer","format":"int32","example":30,"default":30}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \nReturns a list of users assigned to a skill.","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"maxLength":100,"type":"string","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":300,"type":"integer","description":"The number of records returned in a single API call.","example":30,"default":30},"users":{"type":"array","description":"Information about the skill users.","items":{"type":"object","properties":{"user_id":{"maxLength":36,"type":"string","description":"The Meetings user identifier.","example":"IGTRVt3gQ2i-WjoUIjeZxw"},"cc_user_id":{"maxLength":36,"type":"string","description":"The Contact Center user identifier.","example":"hKuMAiDdRlSwMkBxR5we7g"},"display_name":{"type":"string","description":"The user's display name.","example":"Jane Doe"},"user_email":{"type":"string","description":"The user's email address.","format":"email","example":"jchill@example.com"}}}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `1408` <br>\n More than one matching skill found. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1401` <br>\n Skill does not exist: {skillId}. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_user:read:admin","contact_center:read:list_skill_users:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_user:read:admin"],"x-granular-scopes":["contact_center:read:list_skill_users:admin"]}}},"/contact_center/teams":{"get":{"tags":["Teams"],"summary":"List teams","description":"Retrieve a list of all teams with details, including supervisors and agents.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_team:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:team:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"listTeams","parameters":[{"name":"parent_team_id","in":"query","description":"The team's parent team ID.","required":false,"schema":{"type":"string","example":"CDl0Wx89Tx-2XBoYVz12DF"}},{"name":"team_name","in":"query","description":"The team's name.","required":false,"schema":{"type":"string","example":"Sales Team"}},{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of items returned per page.","required":false,"schema":{"maximum":300,"type":"integer","format":"int32","example":30,"default":30}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \n Team list returned.","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"maxLength":100,"type":"string","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":100,"minimum":1,"type":"integer","description":"The number of records returned within a single API call.","example":30,"default":30},"total_records":{"minimum":0,"type":"integer","description":"The total number of all the records available across pages.","example":10},"teams":{"type":"array","description":"Information about the teams.","items":{"type":"object","properties":{"team_id":{"type":"string","description":"The team's ID.","example":"2mDPBg3vSYC_l6crQgeCkA"},"team_name":{"type":"string","description":"The team's name.","example":"Sales Team"},"team_description":{"type":"string","description":"The team's description.","example":"This is online team"},"parent_team_id":{"type":"string","description":"The team's parent team ID.","example":"CDl0Wx89Tx-2XBoYVz12DF"},"parent_team_name":{"type":"string","description":"The team's parent team name.","example":"Online sale team"},"created_time":{"type":"string","description":"The team's creation date and time.","format":"date-time","example":"2025-09-09T07:21:57Z"},"modify_time":{"type":"string","description":"The team's last modified date and time.","format":"date-time","example":"2025-09-09T07:21:57Z"}}}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `4101` <br>\n This account does not have the Teams feature enabled. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n "},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests  For more information, see [rate limits](/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_team:read:admin","contact_center:read:team:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_team:read:admin"],"x-granular-scopes":["contact_center:read:team:admin"]}},"post":{"tags":["Teams"],"summary":"Create a team","description":"Create a new team.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_team:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:write:team:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"CreateTeam","requestBody":{"content":{"application/json":{"schema":{"required":["parent_team_id","team_name"],"type":"object","properties":{"team_name":{"type":"string","description":"The team's name.","example":"Online Team"},"team_description":{"type":"string","description":"The team's description.","example":"This is online team"},"parent_team_id":{"maxLength":36,"type":"string","description":"The team's parent team ID.","example":"CDl0Wx89Tx-2XBoYVz12DF"}}}}}},"responses":{"201":{"description":"**HTTP Status Code:** `201`    Successfully add new team.","content":{"application/json":{"schema":{"type":"object","properties":{"team_id":{"type":"string","description":"The team's ID.","example":"Ikl0Wx89Tx-2XBoYVz53BQ"},"team_name":{"type":"string","description":"The team's name.","example":"Online Team"},"team_description":{"type":"string","description":"The team's description.","example":"This is online team"},"parent_team_id":{"type":"string","description":"The team's parent team ID.","example":"CDl0Wx89Tx-2XBoYVz12DF"},"parent_team_name":{"type":"string","description":"The team's parent team name.","example":"Sales team"},"created_time":{"type":"string","description":"The date and time when this data was created.","format":"date-time","example":"2022-02-15T09:27:15Z"}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `4101` <br>\n This account does not have the Teams feature enabled. <br>\n**Error Code:** `4105` <br>\n The team name can not be duplicated. <br>\n**Error Code:** `4108` <br>\n Not support concurrent modification of hierarchy operations. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_team:write:admin","contact_center:write:team:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_team:write:admin"],"x-granular-scopes":["contact_center:write:team:admin"]}}},"/contact_center/teams/{teamId}":{"get":{"tags":["Teams"],"summary":"Get a team","description":"Get information about a team.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_team:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:team:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"getTeamDetail","parameters":[{"name":"teamId","in":"path","description":"The team's ID.","required":true,"schema":{"maxLength":36,"type":"string","example":"2mDPBg3vSYC_l6crQgeCkA"}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \nTeam detail returned.","content":{"application/json":{"schema":{"type":"object","properties":{"team_id":{"type":"string","description":"The team's ID.","example":"2mDPBg3vSYC_l6crQgeCkA"},"team_name":{"type":"string","description":"The team's name.","example":"Online team"},"parent_team_id":{"type":"string","description":"The team's parent team ID.","example":"CDl0Wx89Tx-2XBoYVz12DF"},"parent_team_name":{"type":"string","description":"The team's parent team name.","example":"Online sale team"},"team_description":{"type":"string","description":"The team's description.","example":"This is online team"},"created_time":{"type":"string","description":"The team's creation date and time.","format":"date-time","example":"2025-06-09T07:21:57Z"},"modify_time":{"type":"string","description":"The team's last modified date and time.","format":"date-time","example":"2025-06-09T07:21:57Z"}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `4101` <br>\n This account does not have the Teams feature enabled. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `4102` <br>\n Team does not exist. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_team:read:admin","contact_center:read:team:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_team:read:admin"],"x-granular-scopes":["contact_center:read:team:admin"]}},"delete":{"tags":["Teams"],"summary":"Delete a team","description":"Delete a specified team.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_team:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:delete:team:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `HEAVY`","operationId":"deleteTeam","parameters":[{"name":"teamId","in":"path","description":"The team's ID.","required":true,"schema":{"maxLength":36,"type":"string","example":"PZy04MG_Q7Gytg9k7CVU6w"}}],"responses":{"204":{"description":"Team deleted."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `4101` <br>\n This account does not have the Teams feature enabled. <br>\n**Error Code:** `4108` <br>\n This API does not support concurrent modification of hierarchy operations. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `4102` <br>\n Team does not exist. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_team:write:admin","contact_center:delete:team:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_team:write:admin"],"x-granular-scopes":["contact_center:delete:team:admin"]}},"patch":{"tags":["Teams"],"summary":"Update a team","description":"Update a team's details.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_team:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:update:team:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"Updateateam","parameters":[{"name":"teamId","in":"path","description":"The team's ID.","required":true,"schema":{"maxLength":36,"type":"string","example":"2mDPBg3vSYC_l6crQgeCkA"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["team_name"],"type":"object","properties":{"team_name":{"type":"string","description":"The team's name.","example":"Online Team"},"team_description":{"type":"string","description":"The team's description.","example":"This is online team"}}}}}},"responses":{"204":{"description":"Team updated."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `4101` <br>\n This account does not have the Teams feature enabled. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `4102` <br>\n Team does not exist. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_team:write:admin","contact_center:update:team:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_team:write:admin"],"x-granular-scopes":["contact_center:update:team:admin"]}}},"/contact_center/teams/{teamId}/agents":{"get":{"tags":["Teams"],"summary":"List team agents","description":"Retrieve a list of a team's assigned agents.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_team:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:team:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"listTeamAgents","parameters":[{"name":"teamId","in":"path","description":"The team ID.","required":true,"schema":{"maxLength":36,"type":"string","example":"2mDPBg3vSYC_l6crQgeCkA"}},{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of records returned in a single API call.","required":false,"schema":{"maximum":300,"type":"integer","format":"int32","example":30,"default":30}}],"responses":{"200":{"description":"Information about team agents.","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"maxLength":100,"type":"string","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":300,"minimum":1,"type":"integer","description":"The number of records returned in a single API call.","example":30,"default":30},"total_records":{"minimum":0,"type":"integer","description":"The total number of all records available across pages.","example":10},"agents":{"type":"array","description":"A list of agents assigned to the team.","items":{"type":"object","properties":{"user_id":{"maxLength":36,"type":"string","description":"The Meetings user identifier.","example":"IGTRVt3gQ2i-WjoUIjeZxw"},"user_display_name":{"type":"string","description":"The user's display name.","example":"Jane Doe"},"user_email":{"type":"string","description":"The user's email address.","format":"email","example":"jchill@example.com"},"cc_user_id":{"maxLength":36,"type":"string","description":"The Contact Center user identifier.","example":"hKuMAiDdRlSwMkBxR5we7g"}}}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `4101` <br>\n This account does not have the Teams feature enabled. <br>\n**Error Code:** `4106` <br>\n Unable to process team request. <br>\n**Error Code:** `4102` <br>\n The team does not exist. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n The access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n The user account is deactivated. <br>\n**Error Code:** `1022` <br>\n The user does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token lacks the required role privileges to perform this request. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_team:read:admin","contact_center:read:team:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_team:read:admin"],"x-granular-scopes":["contact_center:read:team:admin"]}},"post":{"tags":["Teams"],"summary":"Assign team agents","description":"Assign agents to a team. Assign one or more users as agents to the specified team. This API supports partial success - the response includes only the agents that were successfully assigned. Any user IDs that are invalid, unresolvable, or already assigned to the team will not appear in the response. To determine which users were not assigned, compare the returned agents list with the requested user IDs.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_team:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:write:team:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"assignTeamAgents","parameters":[{"name":"teamId","in":"path","description":"The team's ID.","required":true,"schema":{"maxLength":36,"type":"string","example":"PZy04MG_Q7Gytg9k7CVU6w"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"user_ids":{"maxItems":100,"uniqueItems":true,"type":"array","description":"The user identifiers. The values can be a mix of email addresses, Meetings user IDs, or Contact Center user IDs.","items":{"type":"string","example":"ukAAkZKfROKMSw1bj_RDFQ"}}}}}}},"responses":{"201":{"description":"Team agents assigned.","content":{"application/json":{"schema":{"type":"object","properties":{"agents":{"type":"array","description":"Information about the assigned agents.","items":{"type":"object","properties":{"user_id":{"maxLength":36,"type":"string","description":"The Meetings user identifier.","example":"IGTRVt3gQ2i-WjoUIjeZxw"},"cc_user_id":{"maxLength":36,"type":"string","description":"The Contact Center user identifier.","example":"hKuMAiDdRlSwMkBxR5we7g"},"user_display_name":{"type":"string","description":"The user's display name.","example":"Jane Doe"},"user_email":{"type":"string","description":"The user's email address.","format":"email","example":"jchill@example.com"},"assigned_time":{"type":"string","description":"The date and time when the agent was successfully assigned to the team.","format":"date-time","example":"2025-09-03T05:07:46Z"}}}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `4101` <br>\n This account does not have the Teams feature enabled. <br>\n**Error Code:** `4103` <br>\n The number of user IDs exceeds 100. <br>\n**Error Code:** `4102` <br>\n The team does not exist. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n The access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n The user account is deactivated. <br>\n**Error Code:** `1022` <br>\n The user does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token lacks the required role privileges to perform this request. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_team:write:admin","contact_center:write:team:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_team:write:admin"],"x-granular-scopes":["contact_center:write:team:admin"]}},"delete":{"tags":["Teams"],"summary":"Unassign team agents","description":"Unassign agents from a team.\n\nThe API is all-or-nothing.\nOn success - Returns HTTP 204 No Content - all supervisors unassigned\nOn failure - Throws an exception and returns an error response - no agents unassigned\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_team:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:delete:team:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"unassignTeamAgents","parameters":[{"name":"teamId","in":"path","description":"The team's ID.","required":true,"schema":{"type":"string","example":"PZy04MG_Q7Gytg9k7CVU6w"}},{"name":"user_ids","in":"query","description":"The value used to identify the user. The value can be an email address, a Meetings user ID, or a Contact Center user ID.","required":true,"schema":{"type":"string","example":"_avENaWhQniWMRqXpusIdw,_avENaWhQniWMRqXpusIdw"}}],"responses":{"204":{"description":"Team agents removed."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `4101` <br>\n This account does not have the Teams feature enabled. <br>\n**Error Code:** `4108` <br>\n Concurrent hierarchy modifications are not supported. <br>\n**Error Code:** `4102` <br>\n Team does not exist. <br>\n**Error Code:** `4106` <br>\n An error occurred while processing the team operation. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n The access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n The user account is deactivated. <br>\n**Error Code:** `1022` <br>\n The user does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token lacks the required role privileges to perform this request. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_team:write:admin","contact_center:delete:team:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_team:write:admin"],"x-granular-scopes":["contact_center:delete:team:admin"]}}},"/contact_center/teams/{teamId}/children":{"get":{"tags":["Teams"],"summary":"List a team's child teams","description":"Get a list of a team's child teams.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_team:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:team:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"getTeamChildTeams","parameters":[{"name":"teamId","in":"path","description":"The team's ID.","required":true,"schema":{"maxLength":36,"type":"string","example":"2mDPBg3vSYC_l6crQgeCkA"}},{"name":"max_level","in":"query","description":"Depth limit for traversal.","required":false,"schema":{"type":"integer","example":3}},{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of items returned per page.","required":false,"schema":{"maximum":300,"type":"integer","format":"int32","example":30,"default":30}}],"responses":{"200":{"description":"Team agents' information.","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"maxLength":100,"type":"string","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":100,"minimum":1,"type":"integer","description":"The number of records returned within a single API call.","example":30,"default":30},"total_records":{"minimum":0,"type":"integer","description":"The total number of all the records available across pages.","example":10},"level":{"type":"integer","description":"The current team's hierarchy level.","example":1},"child_teams":{"type":"array","description":"The team's child teams.","items":{"type":"object","properties":{"team_id":{"type":"string","description":"The team's ID.","example":"2mDPBg3vSYC_l6crQgeCkA"},"team_name":{"type":"string","description":"The team's name.","example":"Parent team"},"level":{"type":"integer","description":"The team's hierarchy level.","example":1},"parent_team_id":{"type":"string","description":"The team's parent team ID.","example":"CDl0Wx89Tx-2XBoYVz12DF"},"has_children":{"type":"boolean","description":"Whether the team has a child team.","example":true}}}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `4101` <br>\n This account does not have the Teams feature enabled. <br>\n**Error Code:** `4106` <br>\n Call team server error. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n "},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_team:read:admin","contact_center:read:team:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_team:read:admin"],"x-granular-scopes":["contact_center:read:team:admin"]}}},"/contact_center/teams/{teamId}/move":{"patch":{"tags":["Teams"],"summary":"Move a team","description":"Move a team's level.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_team:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:update:team:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `HEAVY`","operationId":"moveTeam","parameters":[{"name":"teamId","in":"path","description":"The team's ID.","required":true,"schema":{"type":"string","example":"2mDPBg3vSYC_l6crQgeCkA"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["parent_team_id"],"type":"object","properties":{"parent_team_id":{"maxLength":36,"type":"string","description":"The parent team's ID.","example":"CDl0Wx89Tx-2XBoYVz12DF"}}}}}},"responses":{"204":{"description":"Team moved."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `4101` <br>\n This account does not have the Teams feature enabled. <br>\n**Error Code:** `4108` <br>\n This API does not support concurrent modification of hierarchy operations. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `4102` <br>\n Team does not exist. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_team:write:admin","contact_center:update:team:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_team:write:admin"],"x-granular-scopes":["contact_center:update:team:admin"]}}},"/contact_center/teams/{teamId}/parents":{"get":{"tags":["Teams"],"summary":"List team's parent teams","description":"Get a list of a team's parent teams.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_team:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:team:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"getTeamParentTeams","parameters":[{"name":"teamId","in":"path","description":"The team's ID.","required":true,"schema":{"maxLength":36,"type":"string","example":"2mDPBg3vSYC_l6crQgeCkA"}}],"responses":{"200":{"description":"Team parent hierarchy returned.","content":{"application/json":{"schema":{"required":["level","team_id","team_name"],"type":"object","properties":{"team_id":{"type":"string","description":"The team's ID.","example":"2mDPBg3vSYC_l6crQgeCkA"},"team_name":{"type":"string","description":"The team's name.","example":"Test team"},"level":{"type":"integer","description":"The team's hierarchy level.","example":0},"parent_teams":{"type":"array","description":"The team's parent teams.","items":{"type":"object","properties":{"team_id":{"type":"string","description":"The team's ID.","example":"2mDPBg3vSYC_l6crQgeCkA"},"team_name":{"type":"string","description":"The team's name.","example":"Parent team"},"level":{"type":"integer","description":"The team's hierarchy level.","example":-1},"parent_team_id":{"type":"string","description":"The team's parent team ID.","example":"CDl0Wx89Tx-2XBoYVz12DF"}}}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `4101` <br>\n This account does not have the Teams feature enabled. <br>\n**Error Code:** `4106` <br>\n Call team server error. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `4102` <br>\n Team does not exist. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_team:read:admin","contact_center:read:team:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_team:read:admin"],"x-granular-scopes":["contact_center:read:team:admin"]}}},"/contact_center/teams/{teamId}/supervisors":{"get":{"tags":["Teams"],"summary":"List team supervisors","description":"Lists the supervisors assigned to a specific team.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_team:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:team:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"listTeamSupervisors","parameters":[{"name":"teamId","in":"path","description":"The team's ID.","required":true,"schema":{"maxLength":36,"type":"string","example":"2mDPBg3vSYC_l6crQgeCkA"}},{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of records returned in a single API call.","required":false,"schema":{"maximum":300,"type":"integer","format":"int32","example":30,"default":30}}],"responses":{"200":{"description":"Team supervisor's information.","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"maxLength":100,"type":"string","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":100,"minimum":1,"type":"integer","description":"The number of records returned within a single API call.","example":30,"default":30},"total_records":{"minimum":0,"type":"integer","description":"The total number of all records available across pages.","example":10},"supervisors":{"type":"array","description":"A list of supervisor objects containing user information.","items":{"type":"object","properties":{"user_id":{"maxLength":36,"type":"string","description":"The Meetings user identifier.","example":"IGTRVt3gQ2i-WjoUIjeZxw"},"user_display_name":{"type":"string","description":"The user's display name.","example":"Jane Doe"},"user_email":{"type":"string","description":"The user's email address.","format":"email","example":"jchill@example.com"},"cc_user_id":{"maxLength":36,"type":"string","description":"The Contact Center user identifier.","example":"hKuMAiDdRlSwMkBxR5we7g"}}}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `4101` <br>\n This account does not have the Teams feature enabled. <br>\n**Error Code:** `4102` <br>\n The team does not exist. <br>\n**Error Code:** `4106` <br>\n Unable to process team request. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n The access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n The user account is deactivated. <br>\n**Error Code:** `1022` <br>\n The user does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token lacks the required role privileges to perform this request. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_team:read:admin","contact_center:read:team:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_team:read:admin"],"x-granular-scopes":["contact_center:read:team:admin"]}},"post":{"tags":["Teams"],"summary":"Assign team supervisors","description":"Assign supervisors to a team. Assign one or more users as supervisors to the specified team. This API supports partial success - the response includes only the supervisors that were successfully assigned. Any user IDs that are invalid, unresolvable, or already assigned to the team will not appear in the response. To determine which users were not assigned, compare the returned supervisors list with the requested user IDs.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_team:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:write:team:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"assignTeamSupervisors","parameters":[{"name":"teamId","in":"path","description":"The team's ID.","required":true,"schema":{"maxLength":36,"type":"string","example":"PZy04MG_Q7Gytg9k7CVU6w"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["user_ids"],"type":"object","properties":{"user_ids":{"maxItems":100,"uniqueItems":true,"type":"array","description":"The user identifiers. The values can be a mix of email addresses, Meetings user IDs, or Contact Center user IDs.","items":{"type":"string","example":"ukAAkZKfROKMSw1bj_RDFQ"}}}}}}},"responses":{"201":{"description":"Successfully assigned team supervisors.","content":{"application/json":{"schema":{"type":"object","properties":{"supervisors":{"type":"array","description":"Information about the supervisors.","items":{"type":"object","properties":{"user_id":{"maxLength":36,"type":"string","description":"The Meetings user identifier.","example":"IGTRVt3gQ2i-WjoUIjeZxw"},"cc_user_id":{"maxLength":36,"type":"string","description":"The Contact Center user identifier.","example":"hKuMAiDdRlSwMkBxR5we7g"},"user_display_name":{"type":"string","description":"The user's display name.","example":"Jane Doe"},"user_email":{"type":"string","description":"The user's email address.","format":"email","example":"jchill@example.com"},"assigned_time":{"type":"string","description":"The timestamp when the supervisor was successfully assigned.","format":"date-time","example":"2025-09-03T05:07:46Z"}}}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `4101` <br>\n This account does not have the Teams feature enabled. <br>\n**Error Code:** `4103` <br>\n The number of user IDs exceeds the limit of 50. <br>\n**Error Code:** `4104` <br>\n The number of supervisors cannot exceed 50. <br>\n**Error Code:** `4102` <br>\n The team does not exist. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n The user account is deactivated. <br>\n**Error Code:** `1022` <br>\n The user does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token lacks the required role privileges to perform this request. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_team:write:admin","contact_center:write:team:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_team:write:admin"],"x-granular-scopes":["contact_center:write:team:admin"]}},"delete":{"tags":["Teams"],"summary":"Unassign team supervisors","description":"Unassign supervisors from a team.\n\nThe API is all-or-nothing.\nOn success - Returns HTTP 204 No Content - all supervisors unassigned\nOn failure - Throws an exception and returns an error response - no supervisors unassigned\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_team:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:delete:team:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"unassignTeamSupervisors","parameters":[{"name":"teamId","in":"path","description":"The team's ID.","required":true,"schema":{"type":"string","example":"PZy04MG_Q7Gytg9k7CVU6w"}},{"name":"user_ids","in":"query","description":"The value used to identify the user. The value can be an email address, a Meetings user ID, or a Contact Center user ID.","required":true,"schema":{"type":"string","example":"_avENaWhQniWMRqXpusIdw,_avENaWhQniWMRqXpusIdw"}}],"responses":{"204":{"description":"Team supervisors removed."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `4101` <br>\n This account does not have the Teams feature enabled. <br>\n**Error Code:** `4102` <br>\n Team does not exist. <br>\n**Error Code:** `4106` <br>\n An error occurred while processing the team operation. <br>\n**Error Code:** `4108` <br>\n Concurrent hierarchy modifications are not supported.\" <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n The access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n The user account is deactivated. <br>\n**Error Code:** `1022` <br>\n The user does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token lacks the required role privileges to perform this request. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_team:write:admin","contact_center:delete:team:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_team:write:admin"],"x-granular-scopes":["contact_center:delete:team:admin"]}}},"/contact_center/users":{"get":{"tags":["Users"],"summary":"List user profiles","description":"Returns a list of Contact Center users.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_user:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:list_users:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"users","parameters":[{"name":"search_key","in":"query","description":"The user's email address or username. This parameter requires encoding.","required":false,"schema":{"type":"string","example":"jchill@example.com"}},{"name":"user_access","in":"query","description":"The user's access status. \n\n* `active` - The user's role permissions allow them to access the Contact Center. \n* `inactive` - The user cannot access the Contact Center.","required":false,"schema":{"type":"string","example":"active","enum":["active","inactive"]}},{"name":"region_id","in":"query","description":"The Contact Center region identifier.","required":false,"schema":{"type":"string","example":"8f71O6rWT8KFUGQmJIFAdQ"}},{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of records returned in a single API call.","required":false,"schema":{"maximum":300,"type":"integer","format":"int32","example":30,"default":30}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \nUser list returned.","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"maxLength":100,"type":"string","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":300,"type":"integer","description":"The number of records returned in a single API call.","example":30,"default":30},"total_records":{"minimum":0,"type":"integer","description":"The total number of all records available across pages.","example":10},"users":{"maxItems":300,"type":"array","description":"Information about the users.","items":{"type":"object","properties":{"user_id":{"maxLength":36,"type":"string","description":"The Meetings user identifier.","example":"IGTRVt3gQ2i-WjoUIjeZxw"},"cc_user_id":{"maxLength":36,"type":"string","description":"The Contact Center user identifier.","example":"hKuMAiDdRlSwMkBxR5we7g"},"display_name":{"type":"string","description":"The user's display name.","example":"Jane Doe"},"user_email":{"type":"string","description":"The user's email address.","format":"email","example":"jchill@example.com"},"role_id":{"maxLength":36,"type":"string","description":"The user's Contact Center role identifier.","example":"0TFVsJqNS82CwkQJLqj1zA"},"role_name":{"maxLength":36,"type":"string","description":"The user's Contact Center role name.","example":"Admin"},"client_integration":{"type":"string","description":"The Contact Center client integration. \n* `Default` \n* `Salesforce` \n* `Zendesk` \n* `ServiceNow` \n* `Microsoft_Dynamics_365`","example":"Salesforce","enum":["Default","Salesforce","Zendesk","ServiceNow","Microsoft_Dynamics_365"]},"status_id":{"type":"string","description":"The user's status ID.","example":"2"},"status_name":{"type":"string","description":"The user's [availability status](https://support.zoom.us/hc/en-us/articles/4470584918541-Setting-availability-status). \n* Offline \n* Ready \n* Not Ready \n* Occupied \n* A custom user status, such as &quot;Lunch&quot; or &quot;Away until Monday&quot;","example":"Not Ready","enum":["Offline","Ready","Not Ready","Occupied"]},"sub_status_id":{"type":"string","description":"The user's reason ID when the user status is `Not Ready`.","example":"21"},"sub_status_name":{"type":"string","description":"The user's reason when the user status is `Not Ready`.\n\n To query a list of default and custom `Not Ready` reasons, call [List System Statuses](/docs/contact-center/apis/#operation/listSystemStatus) (filter by &quot;queue_opt_out_and_not_ready_status&quot; status_category)\n\n Default `Not Ready` reasons:\n * Break \n* End Shift \n* Forced \n* Meal \n* Meeting \n* Training \n","example":"Meal","enum":["Break","End Shift","Forced","Meal","Meeting","Training"]},"user_access":{"type":"string","description":"The user's access status.\n\n* `active` - The user's role permissions allow them to access the Contact Center. \n* `inactive` - The user cannot access the Contact Center.","example":"active","enum":["active","inactive"]},"modified_by":{"type":"string","description":"The ID of the user that last modified this data.","example":"IGTRVt3gQ2i-WjoUIjeZxw"},"last_modified_time":{"type":"string","description":"The date and time when this data was last modified.","format":"date-time","example":"2022-02-15T09:27:15Z"},"country_iso_code":{"type":"string","description":"The [ISO country code](/docs/api/rest/other-references/abbreviation-lists/#countries).","example":"US"},"region_id":{"type":"string","description":"The Contact Center region identifier.","example":"8f71O6rWT8KFUGQmJIFAdQ"},"region_name":{"type":"string","description":"The Contact Center region name.","example":"Main Region"},"channel_settings":{"type":"object","properties":{"multi_channel_engagements":{"type":"object","properties":{"enable":{"type":"boolean","description":"Whether to allow the user to receive voice or video engagements while handling messaging or email engagements.","example":true},"max_agent_load":{"maximum":100,"minimum":1,"type":"integer","description":"The percentage of the user's messaging capacity that determines availability for voice and video engagements. When `enable` is `true` and the user's current messaging workload is at or below this percentage of `concurrent_message_capacity`, they can receive voice and video engagements.","example":50},"email_max_agent_load":{"maximum":100,"minimum":1,"type":"integer","description":"The percentage of the user's email capacity that determines availability for voice and video engagements. When `enable` is `true` and the user's current email workload is at or below this percentage of `concurrent_email_capacity`, they can receive voice and video engagements.","example":50}},"description":"Information about the setting's multi-channel engagements."},"concurrent_message_capacity":{"maximum":20,"minimum":0,"type":"integer","description":"The maximum number of concurrent messaging engagements that can be assigned to a user.","example":4},"concurrent_email_capacity":{"maximum":20,"minimum":0,"type":"integer","description":"The maximum number of concurrent email engagements that can be assigned to a user.","example":4}},"description":"Information about the channel settings."},"package_name":{"type":"string","description":"The Contact Center plan to assign to the user. Concurrent or non-concurrent depends on the plan type purchased by the account.\n\n*`essentials` - Zoom Contact Center Essentials or Zoom Contact Center Concurrent Essentials Package.\n*`premium` - Zoom Contact Center Premium or Zoom Contact Center Concurrent Premium Package.\n*`elite` - Zoom Contact Center Elite or Zoom Contact Center Concurrent Elite Package.","example":"essentials","enum":["essentials","premium","elite"]},"add_ons_plan":{"type":"array","description":"This field is optional. The Contact Center plan to assign to the user. Concurrent or non-concurrent depends on the plan type purchased by the account.\n*`ai_expert_assist` - Contact Center AI Expert Assist or Contact Center AI Expert Assist Concurrent Package.\n*`zoom_contact_center_for_service_cloud_voice` - Contact Center for Salesforce Voice or Contact Center for Salesforce Voice Concurrent Package.","items":{"type":"string","example":"ai_expert_assist","enum":["ai_expert_assist"]}},"teams":{"maxItems":20,"type":"array","description":"The teams the user is assigned to.","items":{"type":"object","properties":{"team_id":{"type":"string","description":"The ID of the team.","example":"qlU902FoTD-dFi9QnCdZhw"},"team_name":{"type":"string","description":"The dislpay name of the team.","example":"Support Team"}}}},"billing_account_id":{"type":"string","description":"The ID of the Zoom Billing account to assign to the user.","example":"PEKovuAEQBu5dpeqmxwW1Q"},"billing_account_name":{"type":"string","description":"The name of the Zoom Billing account to assign to the user.","example":"main billing account"}}}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `300` <br>\n Invalid field: {fieldName} <br>\n**Error Code:** `302` <br>\n Invalid enum value: 'enabled' for the field: 'user_access'. The value must be one of: [active, inactive]. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n**Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rest/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_user:read:admin","contact_center:read:list_users:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_user:read:admin"],"x-granular-scopes":["contact_center:read:list_users:admin"]}},"post":{"tags":["Users"],"summary":"Create a user's profile","description":"Create a Contact Center user.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_user:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:write:user:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"createUser","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"user_id":{"maxLength":36,"type":"string","description":"The Meetings user identifier.","example":"IGTRVt3gQ2i-WjoUIjeZxw"},"user_email":{"type":"string","description":"The user's email address.","format":"email","example":"jchill@example.com"},"role_id":{"maxLength":36,"type":"string","description":"The user's Contact Center role identifier.","example":"0TFVsJqNS82CwkQJLqj1zA"},"country_iso_code":{"type":"string","description":"The [ISO country code](/docs/api/rest/other-references/abbreviation-lists/#countries).","example":"US"},"client_integration":{"type":"string","description":"The Contact Center client integration.","example":"Salesforce","enum":["Default","Salesforce","Zendesk","ServiceNow","Microsoft_Dynamics_365"]},"client_integration_name":{"type":"string","description":"The client integration connection name to be assigned to the user.","example":"integration-test"},"user_access":{"type":"string","description":"The user's Contact Center access status. \n\n* `active` - The user's role permissions allow them to access Contact Center. \n* `inactive` - The user cannot access Contact Center.","example":"active","enum":["active","inactive"]},"region_id":{"type":"string","description":"The Contact Center region identifier.","example":"8f71O6rWT8KFUGQmJIFAdQ"},"channel_settings":{"type":"object","properties":{"multi_channel_engagements":{"type":"object","properties":{"enable":{"type":"boolean","description":"Whether to allow the user to receive voice or video engagements while handling messaging or email engagements.","example":true},"max_agent_load":{"maximum":100,"minimum":1,"type":"integer","description":"The percentage of the user's messaging capacity that determines availability for voice and video engagements. When `enable` is `true` and the user's current messaging workload is at or below this percentage of `concurrent_message_capacity`, they can receive voice and video engagements.","example":50},"email_max_agent_load":{"maximum":100,"minimum":1,"type":"integer","description":"The percentage of the user's email capacity that determines availability for voice and video engagements. When `enable` is `true` and the user's current email workload is at or below this percentage of `concurrent_email_capacity`, they can receive voice and video engagements.","example":50}},"description":"Information about the setting's multi-channel engagements."},"concurrent_message_capacity":{"maximum":20,"minimum":0,"type":"integer","description":"The maximum number of concurrent messaging engagements that can be assigned to a user.","example":4},"concurrent_email_capacity":{"maximum":20,"minimum":0,"type":"integer","description":"The maximum number of concurrent email engagements that can be assigned to a user.","example":4}},"description":"Information about the channel settings."},"template_id":{"type":"string","description":"To retrieve the template ID, call the **List user templates** API. The template ID must correspond to a template with a status of `Active` and a type of `Add`.\nWhen using an `Add`-type template, omit all other fields in the request to apply the complete template configuration. If both individual field values and a template ID are provided, the individual field values take precedence over the template settings.","example":"OlK7lczzT_e7h6p1Q6wGdg"},"package_name":{"type":"string","description":"The Contact Center plan to assign to the user. Concurrent or non-concurrent depends on the plan type purchased by the account.\n\n*`essentials` - Zoom Contact Center Essentials or Zoom Contact Center Concurrent Essentials Package.\n*`premium` - Zoom Contact Center Premium or Zoom Contact Center Concurrent Premium Package.\n*`elite` - Zoom Contact Center Elite or Zoom Contact Center Concurrent Elite Package.","example":"essentials","enum":["essentials","premium","elite"]},"add_ons_plan":{"maxItems":2,"type":"array","description":"The Contact Center plan to assign to the user. Concurrent or non-concurrent depends on the plan type purchased by the account.\n*`ai_expert_assist` - Contact Center AI Expert Assist or Contact Center AI Expert Assist Concurrent Package.\n*`zoom_contact_center_for_service_cloud_voice` - Contact Center for Salesforce Voice or Contact Center for Salesforce Voice Concurrent Package.\n*`zoom_contact_center_for_epic` - Contact Center for Epic or Contact Center for Epic Concurrent Package.\n*`zoom_contact_center_unified_view_for_servicenow` - Contact Center Unified View for ServiceNow or Contact Center Unified View for ServiceNow Concurrent Package.","items":{"type":"string","description":"The Contact Center add-ons plan to assign to the user.","example":"ai_expert_assist","enum":["ai_expert_assist","zoom_contact_center_for_service_cloud_voice","zoom_contact_center_for_epic","zoom_contact_center_unified_view_for_servicenow","zoom_contact_center_for_service_cloud_voice","zoom_contact_center_for_epic","zoom_contact_center_unified_view_for_servicenow"]}},"emergency_calling":{"type":"boolean","description":"Allow users to contact emergency services through their device's native phone system or Zoom Phone.","example":true},"billing_account_id":{"type":"string","description":"The ID of the Zoom Billing account to assign to the user.","example":"PEKovuAEQBu5dpeqmxwW1Q"}}}}}},"responses":{"201":{"description":"**HTTP Status Code:** `201`   \n \nUser created.","content":{"application/json":{"schema":{"type":"object","properties":{"user_id":{"maxLength":36,"type":"string","description":"The Meetings user identifier.","example":"IGTRVt3gQ2i-WjoUIjeZxw"},"cc_user_id":{"maxLength":36,"type":"string","description":"The Contact Center user identifier.","example":"hKuMAiDdRlSwMkBxR5we7g"},"display_name":{"type":"string","description":"The user's display name.","example":"Jane Doe"},"user_email":{"type":"string","description":"The user's email address.","format":"email","example":"jchill@example.com"},"role_id":{"maxLength":36,"type":"string","description":"The user's Contact Center role identifier.","example":"0TFVsJqNS82CwkQJLqj1zA"},"role_name":{"maxLength":36,"type":"string","description":"The user's Contact Center role name.","example":"Admin"},"country_iso_code":{"type":"string","description":"The [ISO country code](/docs/api/rest/other-references/abbreviation-lists/#countries).","example":"US"},"client_integration":{"type":"string","description":"The Contact Center client integration. \n* `Default` \n* `Salesforce` \n* `Zendesk` \n* `ServiceNow` \n* `Microsoft_Dynamics_365`","example":"Salesforce","enum":["Default","Salesforce","Zendesk","ServiceNow","Microsoft_Dynamics_365"]},"client_integration_name":{"type":"string","description":"The client integration connection name to be assigned to the user.","example":"integration-test"},"status_id":{"type":"string","description":"The user's availability status ID.","example":"1"},"status_name":{"type":"string","description":"The user's [availability status](https://support.zoom.us/hc/en-us/articles/4470584918541-Setting-availability-status). \n* Offline \n* Ready \n* Not Ready \n* Occupied \n* A custom user status, such as `Lunch` or `Away until Monday`","example":"Offline","enum":["Offline","Ready","Not Ready","Occupied"]},"user_access":{"type":"string","description":"The user's access status. \n* `active` - The user's role permissions allow them to access the Contact Center. \n* `inactive` - The user cannot access the Contact Center.","example":"active","enum":["active","inactive"]},"region_id":{"type":"string","description":"The Contact Center region identifier.","example":"8f71O6rWT8KFUGQmJIFAdQ"},"region_name":{"type":"string","description":"The Contact Center region name.","example":"Main Region"},"channel_settings":{"type":"object","properties":{"multi_channel_engagements":{"type":"object","properties":{"enable":{"type":"boolean","description":"Whether to allow the user to receive voice or video engagements while handling messaging or email engagements.","example":true},"max_agent_load":{"maximum":100,"minimum":1,"type":"integer","description":"The percentage of the user's messaging capacity that determines availability for voice and video engagements. When `enable` is `true` and the user's current messaging workload is at or below this percentage of `concurrent_message_capacity`, they can receive voice and video engagements.","example":50},"email_max_agent_load":{"maximum":100,"minimum":1,"type":"integer","description":"The percentage of the user's email capacity that determines availability for voice and video engagements. When `enable` is `true` and the user's current email workload is at or below this percentage of `concurrent_email_capacity`, they can receive voice and video engagements.","example":50}},"description":"Information about the setting's multi-channel engagements."},"concurrent_message_capacity":{"maximum":20,"minimum":0,"type":"integer","description":"The maximum number of concurrent messaging engagements that can be assigned to a user.","example":4},"concurrent_email_capacity":{"maximum":20,"minimum":0,"type":"integer","description":"The maximum number of concurrent email engagements that can be assigned to a user.","example":4}},"description":"Information about the channel settings."},"package_name":{"type":"string","description":"The Contact Center plan to assign to the user. Concurrent or non-concurrent depends on the plan type purchased by the account.\n\n*`essentials` - Zoom Contact Center Essentials or Zoom Contact Center Concurrent Essentials Package.\n*`premium` - Zoom Contact Center Premium or Zoom Contact Center Concurrent Premium Package.\n*`elite` - Zoom Contact Center Elite or Zoom Contact Center Concurrent Elite Package.","example":"essentials","enum":["essentials","premium","elite"]},"add_ons_plan":{"maxItems":2,"type":"array","description":"The Contact Center plan to assign to the user. Concurrent or non-concurrent depends on the plan type purchased by the account.\n*`ai_expert_assist` - Contact Center AI Expert Assist or Contact Center AI Expert Assist Concurrent Package.\n*`zoom_contact_center_for_service_cloud_voice` - Contact Center for Salesforce Voice or Contact Center for Salesforce Voice Concurrent Package.\n*`zoom_contact_center_for_epic` - Contact Center for Epic or Contact Center for Epic Concurrent Package.\n*`zoom_contact_center_unified_view_for_servicenow` - Contact Center Unified View for ServiceNow or Contact Center Unified View for ServiceNow Concurrent Package.","items":{"type":"string","description":"The Contact Center add-ons plan to assign to the user.","example":"ai_expert_assist","enum":["ai_expert_assist","zoom_contact_center_for_service_cloud_voice","zoom_contact_center_for_epic","zoom_contact_center_unified_view_for_servicenow","zoom_contact_center_for_service_cloud_voice","zoom_contact_center_for_epic","zoom_contact_center_unified_view_for_servicenow"]}},"emergency_calling":{"type":"boolean","description":"Allow users to contact emergency services through their device's native phone system or Zoom Phone.","example":true},"billing_account_id":{"type":"string","description":"The ID of the Zoom Billing account.","example":"PEKovuAEQBu5dpeqmxwW1Q"},"billing_account_name":{"type":"string","description":"The name of the Zoom Billing account.","example":"multi billing account"}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `1003` <br>\n User creation failed. Try again later. <br>\n**Error Code:** `1004` <br>\n Invalid user ID or user email: $email. <br>\n**Error Code:** `1007` <br>\n User already exists: $email. <br>\n**Error Code:** `1009` <br>\n User ID or user email cannot be empty at the same time. <br>\n**Error Code:** `8003` <br>\n User template not found: $template_id. <br>\n**Error Code:** `8004` <br>\n User template type error: $template_id. <br>\n**Error Code:** `8005` <br>\n User template status error: $template_id. <br>\n**Error Code:** `290010` <br>\n The selected package or add-ons is not enough. <br>\n**Error Code:** `1701` <br>\n The account package does not exist: $zoom_contact_center_package. <br>\n**Error Code:** `1702` <br>\n The account addons package does not exist: $zoom_contact_center_addons_plan. <br>\n**Error Code:** `300` <br>\n Validation failed. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1006` <br>\n The account \"$client_integration\" client integration does not exist. Add it to the \"Integrations\" function module. <br>\n**Error Code:** `2201` <br>\n Role does not exist: $role_id. <br>\n**Error Code:** `2202` <br>\n Country ISO Code does not exist: $country_iso_code. <br>\n**Error Code:** `1017` <br>\n Region does not exist. <br>\n**Error Code:** `1020` <br>\n The account $client_integration client integration name does not exist. Add it to the **Integrations** function module. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_user:write:admin","contact_center:write:user:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_user:write:admin"],"x-granular-scopes":["contact_center:write:user:admin"]}},"delete":{"tags":["Users"],"summary":"Batch delete user profiles","description":"Batch delete Contact Center users. \n\n**Note** Either `user_ids` or `user_emails` needs to be provided. If both `user_ids` and `user_emails` are provided, only `user_ids` will be used, while `user_emails` will be ignored.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_user:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:delete:batch_users:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"batchDeleteUsers","parameters":[{"name":"user_ids","in":"query","description":"A comma-separated list of user identifiers of users to delete. The value can be an email address, a Meetings user ID, or a Contact Center user ID.","required":false,"schema":{"maxItems":20,"uniqueItems":true,"type":"array","items":{"type":"string","example":"IGTRVt3gQ2i-WjoUIjeZxw"}}},{"name":"user_emails","in":"query","description":"A comma-separated list of user emails of users to delete. **Deprecated** use `user_ids`.","required":false,"schema":{"maxItems":20,"uniqueItems":true,"type":"array","deprecated":true,"items":{"type":"string","example":"jdoe@example.com"}}}],"responses":{"204":{"description":"**HTTP Status Code:** `204`   \n \nUsers have been batch-deleted."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `1015` <br>\n User IDs or user emails cannot be empty at the same time. <br>\n**Error Code:** `1016` <br>\n Users supports a maximum of 20. <br>\n**Error Code:** `300` <br>\n Invalid user ids: [user_ids]. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1012` <br>\n User does not exist: [user_ids]. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_user:write:admin","contact_center:delete:batch_users:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_user:write:admin"],"x-granular-scopes":["contact_center:delete:batch_users:admin"]}},"patch":{"tags":["Users"],"summary":"Batch update user profiles","description":"Batch update Contact Center users.\n\n**Note** For each user object in the users array, you must provide either `user_id` or `user_email`. If both `user_id` and `user_email` are provided for the same user object, only `user_id` will be used, while `user_email` will be ignored.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_user:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:update:batch_users:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"BatchUpdateUsers","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"users":{"maxItems":20,"type":"array","description":"Information about the users, the maximum number of updated users is 20.","items":{"type":"object","properties":{"user_id":{"maxLength":36,"type":"string","description":"The email, Meetings user ID, or Contact Center ID used to identify the user. This value will not be modified.","example":"IGTRVt3gQ2i-WjoUIjeZxw"},"user_email":{"type":"string","description":"The user's email address.","format":"email","example":"jchill@example.com"},"client_integration":{"type":"string","description":"The Contact Center's client integration.","example":"Salesforce","enum":["Default","Salesforce","Zendesk","ServiceNow","Microsoft_Dynamics_365"]},"client_integration_name":{"type":"string","description":"The client integration connection name to be assigned to the user.","example":"integration-test"},"role_id":{"maxLength":36,"type":"string","description":"The user's Contact Center role identifier.","example":"0TFVsJqNS82CwkQJLqj1zA"},"status_id":{"type":"string","description":"The user's status ID.","example":"1","deprecated":true},"sub_status_id":{"type":"string","description":"The user's reason ID when the user status is `Not Ready`.","example":"21","deprecated":true},"user_access":{"type":"string","description":"The user's access status. \n* `active` - The user's role permissions allow them to access the Contact Center. \n* `inactive` - The user cannot access the Contact Center.","example":"active","enum":["active","inactive"]},"country_iso_code":{"type":"string","description":"The [ISO country code](/docs/api/rest/other-references/abbreviation-lists/#countries).","example":"US"},"template_id":{"type":"string","description":"To retrieve the template ID, call the **List User's Templates** API. The template ID must correspond to a template with a status of `Active` and a type of `Update`. If you provide this value, leave all other fields blank to apply the settings from the template. Only the settings from the template indicated as 'override' will be applied to the user. If you specify both individual values and a template in the request, the individual values take priority over the template settings.","example":"4pPgojTBRC69wEYSlDhffA"},"package_name":{"type":"string","description":"The Contact Center plan to assign to the user. Concurrent or non-concurrent depends on the plan type purchased by the account.\n\n*`essentials` - Zoom Contact Center Essentials or Zoom Contact Center Concurrent Essentials Package.\n*`premium` - Zoom Contact Center Premium or Zoom Contact Center Concurrent Premium Package.\n*`elite` - Zoom Contact Center Elite or Zoom Contact Center Concurrent Elite Package.","example":"essentials","enum":["essentials","premium","elite"]},"add_ons_plan":{"maxItems":2,"type":"array","description":"The Contact Center plan to assign to the user. Concurrent or non-concurrent depends on the plan type purchased by the account.\n*`ai_expert_assist` - Contact Center AI Expert Assist or Contact Center AI Expert Assist Concurrent Package.\n*`zoom_contact_center_for_service_cloud_voice` - Contact Center for Salesforce Voice or Contact Center for Salesforce Voice Concurrent Package.\n*`zoom_contact_center_for_epic` - Contact Center for Epic or Contact Center for Epic Concurrent Package.\n*`zoom_contact_center_unified_view_for_servicenow` - Contact Center Unified View for ServiceNow or Contact Center Unified View for ServiceNow Concurrent Package.","items":{"type":"string","description":"The Contact Center add-ons plan to assign to the user.","example":"ai_expert_assist","enum":["ai_expert_assist","zoom_contact_center_for_service_cloud_voice","zoom_contact_center_for_epic","zoom_contact_center_unified_view_for_servicenow"]}},"billing_account_id":{"type":"string","description":"The ID of the Zoom Billing account to assign to the user.","example":"shakhajdsdasdkhas"}}}}}}}}},"responses":{"204":{"description":"**HTTP Status Code:** `204`   \n \nUsers updated."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `8003` <br>\n User template not found: {templateId} <br>\n**Error Code:** `8004` <br>\n User template type error: {templateId} <br>\n**Error Code:** `8005` <br>\n User template status error: {templateId} <br>\n**Error Code:** `290010` <br>\n The selected package or add-ons is not enough. <br>\n**Error Code:** `1701` <br>\n The account package does not exist: $zoom_contact_center_package. <br>\n**Error Code:** `1702` <br>\n The account addons package does not exist: $zoom_contact_center_addons_plan. <br>\n**Error Code:** `1113` <br>\n The status must be 'Not Ready' when updating sub status. <br>\n**Error Code:** `2202` <br>\n Country ISO Code does not exist: {country_iso_code} <br>\n**Error Code:** `8006` <br>\n The Launch URL is invalid: {url} <br>\n**Error Code:** `300` <br>\n Invalid user email: {user_email}. <br>\n**Error Code:** `1012` <br>\n All users do not exist. <br>\n**Error Code:** `1009` <br>\n Either user_id or email is required. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1001` <br>\n User does not exist: {user_id}. <br>\n**Error Code:** `1101` <br>\n Status does not exist: {status_id}. <br>\n**Error Code:** `1102` <br>\n Sub status does not exist: {sub_status_id}. <br>\n**Error Code:** `2201` <br>\n Role does not exist: {roleId}. <br>\n**Error Code:** `1006` <br>\n The account {client_integration_name} client integration does not exist. Add it to the 'Integrations' function module. <br>\n**Error Code:** `1020` <br>\n The account {client_integration_name} client integration name does not exist. Add it to the 'Integrations' function module. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rest/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_user:write:admin","contact_center:update:batch_users:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_user:write:admin"],"x-granular-scopes":["contact_center:update:batch_users:admin"]}}},"/contact_center/users/batch":{"post":{"tags":["Users"],"summary":"Batch create user profiles","description":"Batch create Contact Center users.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_user:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:write:batch_users:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"BatchCreateUsers","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"users":{"maxItems":20,"type":"array","description":"Information about the users. The maximum number of created users is 20.","items":{"type":"object","properties":{"user_id":{"maxLength":36,"type":"string","description":"The Meetings user identifier.","example":"IGTRVt3gQ2i-WjoUIjeZxw"},"user_email":{"type":"string","description":"The user's email address.","format":"email","example":"jchill@example.com"},"role_id":{"maxLength":36,"type":"string","description":"The user's Contact Center role identifier.","example":"0TFVsJqNS82CwkQJLqj1zA"},"country_iso_code":{"type":"string","description":"The [ISO country code](/docs/api/rest/other-references/abbreviation-lists/#countries).","example":"US"},"client_integration":{"type":"string","description":"The Contact Center client integration.","example":"Salesforce","enum":["Default","Salesforce","Zendesk","ServiceNow","Microsoft_Dynamics_365"]},"client_integration_name":{"type":"string","description":"The client integration connection name to be assigned to the user.","example":"integration-test"},"user_access":{"type":"string","description":"The user's access status. \n* `active` - The user's role permissions allow them to access the Contact Center. \n* `inactive` - The user can't access the Contact Center.","example":"active","enum":["active","inactive"]},"channel_settings":{"type":"object","properties":{"multi_channel_engagements":{"type":"object","properties":{"enable":{"type":"boolean","description":"Whether to allow the user to receive voice or video engagements while handling messaging or email engagements.","example":true},"max_agent_load":{"maximum":100,"minimum":1,"type":"integer","description":"The percentage of the user's messaging capacity that determines availability for voice and video engagements. When `enable` is `true` and the user's current messaging workload is at or below this percentage of `concurrent_message_capacity`, they can receive voice and video engagements.","example":50},"email_max_agent_load":{"maximum":100,"minimum":1,"type":"integer","description":"The percentage of the user's email capacity that determines availability for voice and video engagements. When `enable` is `true` and the user's current email workload is at or below this percentage of `concurrent_email_capacity`, they can receive voice and video engagements.","example":50}},"description":"Information about the setting's multi-channel engagements."},"concurrent_message_capacity":{"maximum":20,"minimum":0,"type":"integer","description":"The maximum number of concurrent messaging engagements that can be assigned to a user.","example":4},"concurrent_email_capacity":{"maximum":20,"minimum":0,"type":"integer","description":"The maximum number of concurrent email engagements that can be assigned to a user.","example":4}},"description":"Information about the channel settings."},"template_id":{"type":"string","description":"To retrieve the template ID, call the **List user templates** API. The template ID must correspond to a template with a status of `Active` and a type of `Add`.\nWhen using an `Add`-type template, omit all other fields in the request to apply the complete template configuration. If both individual field values and a template ID are provided, the individual field values take precedence over the template settings.","example":"4pPgojTBRC69wEYSlDhffA"},"package_name":{"type":"string","description":"The Contact Center plan to assign to the user. Concurrent or non-concurrent depends on the plan type purchased by the account.\n\n*`essentials` - Zoom Contact Center Essentials or Zoom Contact Center Concurrent Essentials Package.\n*`premium` - Zoom Contact Center Premium or Zoom Contact Center Concurrent Premium Package.\n*`elite` - Zoom Contact Center Elite or Zoom Contact Center Concurrent Elite Package.","example":"essentials","enum":["essentials","premium","elite"]},"add_ons_plan":{"maxItems":2,"type":"array","description":"The Contact Center plan to assign to the user. Concurrent or non-concurrent depends on the plan type purchased by the account.\n*`ai_expert_assist` - Contact Center AI Expert Assist or Contact Center AI Expert Assist Concurrent Package.\n*`zoom_contact_center_for_service_cloud_voice` - Contact Center for Salesforce Voice or Contact Center for Salesforce Voice Concurrent Package.\n*`zoom_contact_center_for_epic` - Contact Center for Epic or Contact Center for Epic Concurrent Package.\n*`zoom_contact_center_unified_view_for_servicenow` - Contact Center Unified View for ServiceNow or Contact Center Unified View for ServiceNow Concurrent Package.","items":{"type":"string","description":"The Contact Center add-ons plan to assign to the user.","example":"ai_expert_assist","enum":["ai_expert_assist","zoom_contact_center_for_service_cloud_voice","zoom_contact_center_for_epic","zoom_contact_center_unified_view_for_servicenow","zoom_contact_center_for_service_cloud_voice","zoom_contact_center_for_epic","zoom_contact_center_unified_view_for_servicenow"]}},"billing_account_id":{"type":"string","description":"The ID of the Zoom Billing account to assign to the user.","example":"PEKovuAEQBu5dpeqmxwW1Q"}}}}}}}}},"responses":{"201":{"description":"**HTTP Status Code:** `201`   \n \nUsers created.","content":{"application/json":{"schema":{"type":"object","properties":{"users":{"maxItems":20,"type":"array","description":"Information about the users.","items":{"type":"object","properties":{"user_id":{"maxLength":36,"type":"string","description":"The Meetings user identifier.","example":"IGTRVt3gQ2i-WjoUIjeZxw"},"cc_user_id":{"maxLength":36,"type":"string","description":"The Contact Center user identifier.","example":"hKuMAiDdRlSwMkBxR5we7g"},"display_name":{"type":"string","description":"The user's display name.","example":"Jane Doe"},"user_email":{"type":"string","description":"The user's email address.","format":"email","example":"jchill@example.com"},"role_id":{"maxLength":36,"type":"string","description":"The user's Contact Center role identifier.","example":"0TFVsJqNS82CwkQJLqj1zA"},"role_name":{"maxLength":36,"type":"string","description":"The user's Contact Center role name.","example":"Admin"},"country_iso_code":{"type":"string","description":"The [ISO country code](/docs/api/rest/other-references/abbreviation-lists/#countries).","example":"US"},"client_integration":{"type":"string","description":"The Contact Center client integration. \n* `Default` \n* `Salesforce` \n* `Zendesk` \n* `ServiceNow` \n* `Microsoft_Dynamics_365`","example":"Salesforce","enum":["Default","Salesforce","Zendesk","ServiceNow","Microsoft_Dynamics_365"]},"client_integration_name":{"type":"string","description":"The client integration connection name to be assigned to the user.","example":"integration-test"},"status_id":{"type":"string","description":"The user's availability status ID.","example":"1"},"status_name":{"type":"string","description":"The user's [availability status](https://support.zoom.us/hc/en-us/articles/4470584918541-Setting-availability-status). \n* Offline \n* Ready \n* Not Ready \n* Occupied \n* A custom user status, such as &quot;Lunch&quot; or &quot;Away until Monday&quot;","example":"Offline","enum":["Offline","Ready","Not Ready","Occupied"]},"user_access":{"type":"string","description":"The user's access status. \n* `active` - The user's role permissions allow them to access the Contact Center. \n* `inactive` - The user cannot access the Contact Center.","example":"active","enum":["active","inactive"]},"channel_settings":{"type":"object","properties":{"multi_channel_engagements":{"type":"object","properties":{"enable":{"type":"boolean","description":"Whether to allow the user to receive voice or video engagements while handling messaging or email engagements.","example":true},"max_agent_load":{"maximum":100,"minimum":1,"type":"integer","description":"The percentage of the user's messaging capacity that determines availability for voice and video engagements. When `enable` is `true` and the user's current messaging workload is at or below this percentage of `concurrent_message_capacity`, they can receive voice and video engagements.","example":50},"email_max_agent_load":{"maximum":100,"minimum":1,"type":"integer","description":"The percentage of the user's email capacity that determines availability for voice and video engagements. When `enable` is `true` and the user's current email workload is at or below this percentage of `concurrent_email_capacity`, they can receive voice and video engagements.","example":50}},"description":"Information about the setting's multi-channel engagements."},"concurrent_message_capacity":{"maximum":20,"minimum":0,"type":"integer","description":"The maximum number of concurrent messaging engagements that can be assigned to a user.","example":4},"concurrent_email_capacity":{"maximum":20,"minimum":0,"type":"integer","description":"The maximum number of concurrent email engagements that can be assigned to a user.","example":4}},"description":"Information about the channel settings."},"package_name":{"type":"string","description":"The Contact Center plan to assign to the user. Concurrent or non-concurrent depends on the plan type purchased by the account.\n\n*`essentials` - Zoom Contact Center Essentials or Zoom Contact Center Concurrent Essentials Package.\n*`premium` - Zoom Contact Center Premium or Zoom Contact Center Concurrent Premium Package.\n*`elite` - Zoom Contact Center Elite or Zoom Contact Center Concurrent Elite Package.","example":"essentials","enum":["essentials","premium","elite"]},"add_ons_plan":{"maxItems":2,"type":"array","description":"The Contact Center plan to assign to the user. Concurrent or non-concurrent depends on the plan type purchased by the account.\n*`ai_expert_assist` - Contact Center AI Expert Assist or Contact Center AI Expert Assist Concurrent Package.\n*`zoom_contact_center_for_service_cloud_voice` - Contact Center for Salesforce Voice or Contact Center for Salesforce Voice Concurrent Package.\n*`zoom_contact_center_for_epic` - Contact Center for Epic or Contact Center for Epic Concurrent Package.\n*`zoom_contact_center_unified_view_for_servicenow` - Contact Center Unified View for ServiceNow or Contact Center Unified View for ServiceNow Concurrent Package.","items":{"type":"string","description":"The Contact Center add-ons plan to assign to the user.","example":"ai_expert_assist","enum":["ai_expert_assist","zoom_contact_center_for_service_cloud_voice","zoom_contact_center_for_epic","zoom_contact_center_unified_view_for_servicenow","zoom_contact_center_for_service_cloud_voice","zoom_contact_center_for_epic","zoom_contact_center_unified_view_for_servicenow"]}},"billing_account_id":{"type":"string","description":"The IDF of the Zoom Billing account to assign to the user.","example":"PEKovuAEQBu5dpeqmxwW1Q"},"billing_account_name":{"type":"string","description":"The name of the Zoom Billing account to assign to the user.","example":"main billing account"}}}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `8003` <br>\n User template not found: {template_id}. <br>\n**Error Code:** `8004` <br>\n User template type error: {template_id}. <br>\n**Error Code:** `8005` <br>\n User template status error: {template_id}. <br>\n**Error Code:** `290010` <br>\n The selected package or add-ons is not enough. <br>\n**Error Code:** `1701` <br>\n The account package does not exist: {package_name}.. <br>\n**Error Code:** `1702` <br>\n The account addons package does not exist: {add_ons_plan_name}. <br>\n**Error Code:** `300` <br>\n Validation failed. <br>\n**Error Code:** `1003` <br>\n User creation failed. Try again later. <br>\n**Error Code:** `1006` <br>\n The account {client_integration} client integration does not exist. <br>\n**Error Code:** `1007` <br>\n User already exists: {user_email}. <br>\n**Error Code:** `1009` <br>\n User ID or user email cannot be empty at the same time. <br>\n**Error Code:** `2202` <br>\n Country ISO Code does not exist: {country_iso_code}. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `2201` <br>\n Role does not exist: {role_id}. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_user:write:admin","contact_center:write:batch_users:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_user:write:admin"],"x-granular-scopes":["contact_center:write:batch_users:admin"]}}},"/contact_center/users/status":{"patch":{"tags":["Users"],"summary":"Batch update user status","description":"Batch update Contact Center users' statuses. \n\n**Note** Uses all-or-nothing validation - if any user fails validation, no updates are applied and all errors are returned. Only one batch request per account is allowed at a time. Concurrent requests receive a 429 error.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_user:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:write:batch_users:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"Batchupdateuserstatus","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"users":{"maxItems":20,"type":"array","description":"Information about the users, the maximum number of updated users is 20.","items":{"type":"object","properties":{"user_id":{"maxLength":36,"type":"string","description":"The email, Meetings user ID, or Contact Center ID used to identify the user. This value will not be modified.","example":"IGTRVt3gQ2i-WjoUIjeZxw"},"user_email":{"type":"string","description":"The user's email address.","format":"email","example":"jchill@example.com"},"status_id":{"type":"string","description":"The user's status ID.","example":"1"},"sub_status_id":{"type":"string","description":"The user's reason ID when the user status is `Not Ready`.","example":"21"}}}}}}}}},"responses":{"204":{"description":"**HTTP Status Code:** `204`    Users' statuses updated."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `301` <br>\n Validation failed. Includes errors array with per-user failures. <br>\n**Error Code:** `1009` <br>\n User ID or user email cannot be empty at the same time. <br>\n**Error Code:** `1113` <br>\n The status must be `Not Ready` when updating sub status. <br>\n**Error Code:** `1114` <br>\n The status does not allow updating to {status_name}. <br>\n**Error Code:** `1115` <br>\n The sub status does not allow updating to {sub_status_name}. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1012` <br>\n All users do not exist. <br>\n**Error Code:** `1001` <br>\n User does not exist: {user_id}. <br>\n**Error Code:** `1101` <br>\n Status does not exist: {status_id}. <br>\n**Error Code:** `1102` <br>\n Sub status does not exist: {sub_status_id}. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n**Error Code:** `4001` <br>\n User update failed. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_user:write:admin","contact_center:write:batch_users:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_user:write:admin"],"x-granular-scopes":["contact_center:write:batch_users:admin"]}}},"/contact_center/users/templates":{"get":{"tags":["Users"],"summary":"List user templates","description":"Return the user template list\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_user:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:user_templates:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"ListUserTemplates","parameters":[{"name":"template_type","in":"query","description":"The user's template type.\n* `add` - Create a user template.\n* `update` - Update a user template.","required":false,"schema":{"type":"string","example":"add","enum":["add","update"]}},{"name":"template_status","in":"query","description":"The user's template status.\n* `active` - The user template can be used.\n* `inactive` - The user template cannot be used.\n* `needs_attention` - The user template is missing required attributes and cannot be used.","required":false,"schema":{"type":"string","example":"active","enum":["active","inactive","needs_attention"]}},{"name":"template_name","in":"query","description":"Template name","required":false,"schema":{"type":"string","example":"add_template"}},{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of items returned per page.","required":false,"schema":{"type":"integer","example":30}}],"responses":{"200":{"description":"User Template list returned.","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"maxLength":100,"type":"string","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":300,"minimum":1,"type":"integer","description":"The number of records returned within a single API call.","example":30,"default":30},"total_records":{"minimum":0,"type":"integer","description":"The total number of all the records available across pages.","example":10},"user_templates":{"maxItems":100,"type":"array","description":" Information about the user template.","items":{"type":"object","properties":{"template_id":{"type":"string","description":"The template ID.","example":"OlK7lczzT_e7h6p1Q6wGdg"},"template_name":{"type":"string","description":"The template name.","example":"template_update"},"template_type":{"type":"string","description":"The user template type. \n* `update` - Update the user type template.\n* `add` - Create the user type template.\n\n\n\n","example":"update","enum":["add","update"]},"template_status":{"type":"string","description":"The user template status. \n* `active` - The user template can be used.\n* `inactive` - The user template cannot be used.\n* `needs_attention` - The user template is missing required attributes and cannot be used.","example":"active","enum":["active","inactive","needs_attention"]}}}}},"description":"Description"}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n "},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_user:read:admin","contact_center:read:user_templates:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_user:read:admin"],"x-granular-scopes":["contact_center:read:user_templates:admin"]}},"post":{"tags":["Users"],"summary":"Create a user template","description":"Create a user template.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_user_template:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:write:user_templates:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"createAUserTemplate","requestBody":{"content":{"application/json":{"schema":{"required":["package","role","selected_blocks","template_name","template_type"],"type":"object","properties":{"template_name":{"maxLength":100,"type":"string","description":"The user template's name.","example":"template name"},"template_description":{"maxLength":100,"type":"string","description":"The user template's description.","example":"user template."},"template_type":{"maxLength":10,"type":"string","description":"The user template's type.\n\n* `add`: It is used to create users.\n\n* `update`: It is used to update users.","example":"add","enum":["add","update"]},"selected_blocks":{"type":"array","description":"User template Select the settings you want to apply.\n\nIt is only used for `update` type templates.\n\nWe can choose which settings take effect when applying.\n\nFor `update` template, it is required.","items":{"maxLength":50,"type":"string","description":"The template's block name.","example":"role","enum":["role","package","team","client_integration","external_url","user_access","country_or_region","region","mobile_client","emergency_calling","assigned_queues","skills","engagement_capacity"]}},"role":{"maxLength":50,"type":"string","description":"The role's ID.\n\nFor `update` template, it is not required if it is not selected to be applied.","example":"27302393-4784-11ec-a3cd-122e3e29bb87"},"package":{"required":["package_name"],"type":"object","properties":{"package_name":{"maxLength":20,"type":"string","description":"The Contact Center plan to assign to the user.\n\nConcurrent or non-concurrent depends on the plan type purchased by the account.\n\n- `essentials` - Zoom Contact Center Essentials or Zoom Contact Center Concurrent Essentials Package.\n- `premium` - Zoom Contact Center Premium or Zoom Contact Center Concurrent Premium Package.\n- `elite` - Zoom Contact Center Elite or Zoom Contact Center Concurrent Elite Package.\n\nWhen updating the template, it is not required if it is not selected to be applied.","example":"essentials","enum":["essentials","premium","elite"]},"add_ons_plan":{"type":"array","description":"The Contact Center plan to assign to the user. Whether the plan is concurrent or non-concurrent depends on the plan type purchased by the account.\n\n*`ai_expert_assist` - Contact Center AI Expert Assist or Contact Center AI Expert Assist Concurrent package.\n*`zoom_contact_center_for_service_cloud_voice` - Contact Center for Salesforce Voice or Contact Center for Salesforce Voice Concurrent package.\n*`zoom_contact_center_for_epic` - Contact Center for Epic or Contact Center for Epic Concurrent package.\n*`zoom_contact_center_unified_view_for_servicenow` - Contact Center Unified View for ServiceNow or Contact Center Unified View for ServiceNow Concurrent Package.","items":{"type":"string","description":"The Contact Center add-ons plan to assign to the user.","example":"ai_expert_assist","enum":["ai_expert_assist","zoom_contact_center_for_service_cloud_voice","zoom_contact_center_for_epic","zoom_contact_center_unified_view_for_servicenow"]}},"billing_account_id":{"maxLength":50,"type":"string","description":"The ID of the Zoom Billing account to assign to the user.","example":"lsKovuAEQBu5dpeqmxwW1Q"}},"description":"The Contact Center plan to assign to the user.\n\nConcurrent or non-concurrent depends on the plan type purchased by the account.\n\n- `essentials` - Zoom Contact Center Essentials or Zoom Contact Center Concurrent Essentials Package.\n- `premium` - Zoom Contact Center Premium or Zoom Contact Center Concurrent Premium Package.\n- `elite` - Zoom Contact Center Elite or Zoom Contact Center Concurrent Elite Package.","example":"essentials"},"team":{"required":["team_id","team_supervisor"],"type":"object","properties":{"team_id":{"maxLength":50,"type":"string","description":"The team's ID.","example":"G3AfPPKrQZWEkgUCEzUvhA"},"team_supervisor":{"type":"boolean","description":"Set whether the user acts as an `agent` or `supervisor` in the team.","example":true}},"description":"Information about the team settings."},"client_integration":{"required":["client_integration_application"],"type":"object","properties":{"client_integration_application":{"maxLength":20,"type":"string","description":"The Contact Center's client integration application. \n\n* `Default` \n* `Salesforce` \n* `Zendesk` \n* `ServiceNow` \n* `Microsoft_Dynamics_365`","example":"Salesforce"},"client_integration_name":{"maxLength":100,"type":"string","description":"The client integration connection name to be assigned to the user.","example":"my integration"}},"description":"Information about the client integration settings."},"external_url":{"required":["enable_external_url","external_launch_url"],"type":"object","properties":{"enable_external_url":{"type":"boolean","description":"Whether to enable external url.","example":true},"external_launch_url":{"maxLength":500,"type":"string","description":"The external url.\n\nThese parameters can be used as command line arguments: \n`%N` - Full name \n`%F` - First name \n`%L` - Last name \n`%C` - Caller ID number \n`%E` - Caller ID number (in E.164 format)","example":"https://www.domain.com"}},"description":"Information about the external URL settings."},"user_access":{"type":"boolean","description":"The user's access status. \n\n* `true` - The user's role permissions allow them to access the Contact Center. \n* `false` - The user cannot access the Contact Center.","example":true},"country_or_region":{"maxLength":20,"type":"string","description":"The [ISO country code](/docs/api/rest/other-references/abbreviation-lists/#countries).","example":"US"},"region":{"maxLength":50,"type":"string","description":"The region's ID.","example":"BAAfPPKrQZWEkgUCEzUvhA"},"mobile_client":{"type":"boolean","description":"Whether to enable mobile client.","example":false},"emergency_calling":{"type":"boolean","description":"Whether to enable emergency calling.","example":true},"assigned_queues":{"type":"object","properties":{"agent_queue_ids":{"type":"array","description":"Assign user as agent queue ids.","items":{"maxLength":50,"type":"string","description":"The queue's ID.","example":"jUthl0VaRH6mcZepV4ITMA"}},"supervisor_queue_ids":{"type":"array","description":"Assign user as supervisor queue ids.","items":{"maxLength":50,"type":"string","description":"The queue's ID","example":"jUthl0VaRH6mcZepV4ITMA"}},"default_outbound_voice_queue_id":{"maxLength":50,"type":"string","description":"The default voice outbound queue's ID.","example":"jUthl0VaRH6mcZepV4ITMA"},"default_outbound_message_queue_id":{"maxLength":50,"type":"string","description":"The default message outbound queue's ID.","example":"jUthl0VaRH6mcZepV4ITMA"}},"description":"Information about the assigned queues settings."},"skills":{"type":"array","description":"Information about the skill settings.","items":{"required":["skill_id"],"type":"object","properties":{"skill_id":{"maxLength":50,"type":"string","description":"The skill's ID.","example":"s51M536ZjSgi8o_rzmgQBrA"},"proficiency_level":{"maximum":50,"minimum":0,"type":"integer","description":"The maximum proficiency level in a skill.","example":3}},"description":"The skill settings."}},"engagement_capacity":{"type":"object","properties":{"concurrent_email_capacity":{"maximum":100,"minimum":0,"type":"integer","description":"The maximum concurrent email engagements.","example":5},"concurrent_message_capacity":{"maximum":100,"minimum":0,"type":"integer","description":"The maximum concurrent messaging engagements.","example":6},"email_max_agent_load":{"maximum":100,"minimum":0,"type":"integer","description":"This agent will receive a new voice or video engagement only when their email load is at or below this percentage.","example":10},"message_max_agent_load":{"maximum":100,"minimum":0,"type":"integer","description":"This agent will receive a new voice or video engagement only when their messaging load is at or below this percentage.","example":10}},"description":"Information about the engagement capacity settings."}}}}}},"responses":{"201":{"description":"**HTTP Status Code:** `201` Template created.","content":{"application/json":{"schema":{"required":["template_id"],"type":"object","properties":{"template_id":{"maxLength":50,"type":"string","description":"The user template identifier.","example":"qmLKCot6QfSGwmPKFCgmCg"},"template_name":{"maxLength":100,"type":"string","description":"The user template's name.","example":"template name"},"template_description":{"maxLength":100,"type":"string","description":"The user template's description.","example":"user template."},"template_type":{"maxLength":10,"type":"string","description":"The user template's type.\n\n* `add`: It is used to create users.\n\n* `update`: It is used to update users.","example":"add","enum":["add","update"]},"template_status":{"maxLength":20,"type":"string","description":"The template's status.\n\n- `active` - Available templates\n\n- `inactive` - Unavailable template\n\n- `needs_attention` - Unavailable template with invalid required fields","example":"active","enum":["active","inactive","needs_attention"]},"selected_blocks":{"type":"array","description":"User template Select the settings you want to apply.\n\nIt is only used for `update` type templates.\n\nWe can choose which settings take effect when applying.\n\nFor `update` template, it is required.","items":{"maxLength":50,"type":"string","description":"The template's block name.","example":"role","enum":["role","package","team","client_integration","external_url","user_access","country_or_region","region","mobile_client","emergency_calling","assigned_queues","skills","engagement_capacity"]}},"role":{"maxLength":50,"type":"string","description":"The role's ID.\n\nFor `update` template, it is not required if it is not selected to be applied.","example":"27302393-4784-11ec-a3cd-122e3e29bb87"},"package":{"required":["package_name"],"type":"object","properties":{"package_name":{"maxLength":20,"type":"string","description":"The Contact Center plan to assign to the user.\n\nConcurrent or non-concurrent depends on the plan type purchased by the account.\n\n- `essentials` - Zoom Contact Center Essentials or Zoom Contact Center Concurrent Essentials Package.\n- `premium` - Zoom Contact Center Premium or Zoom Contact Center Concurrent Premium Package.\n- `elite` - Zoom Contact Center Elite or Zoom Contact Center Concurrent Elite Package.\n\nWhen updating the template, it is not required if it is not selected to be applied.","example":"essentials","enum":["essentials","premium","elite"]},"add_ons_plan":{"type":"array","description":"The Contact Center plan to assign to the user. Whether the plan is concurrent or non-concurrent depends on the plan type purchased by the account.\n\n*`ai_expert_assist` - Contact Center AI Expert Assist or Contact Center AI Expert Assist Concurrent package.\n*`zoom_contact_center_for_service_cloud_voice` - Contact Center for Salesforce Voice or Contact Center for Salesforce Voice Concurrent package.\n*`zoom_contact_center_for_epic` - Contact Center for Epic or Contact Center for Epic Concurrent package.\n*`zoom_contact_center_unified_view_for_servicenow` - Contact Center Unified View for ServiceNow or Contact Center Unified View for ServiceNow Concurrent Package.","items":{"type":"string","description":"The Contact Center add-ons plan to assign to the user.","example":"ai_expert_assist","enum":["ai_expert_assist","zoom_contact_center_for_service_cloud_voice","zoom_contact_center_for_epic","zoom_contact_center_unified_view_for_servicenow"]}},"billing_account_id":{"maxLength":50,"type":"string","description":"The ID of the Zoom Billing account to assign to the user.","example":"lsKovuAEQBu5dpeqmxwW1Q"}},"description":"The Contact Center plan to assign to the user.\n\nConcurrent or non-concurrent depends on the plan type purchased by the account.\n\n- `essentials` - Zoom Contact Center Essentials or Zoom Contact Center Concurrent Essentials Package.\n- `premium` - Zoom Contact Center Premium or Zoom Contact Center Concurrent Premium Package.\n- `elite` - Zoom Contact Center Elite or Zoom Contact Center Concurrent Elite Package.","example":"essentials"},"team":{"required":["team_id","team_supervisor"],"type":"object","properties":{"team_id":{"maxLength":50,"type":"string","description":"The team's ID.","example":"G3AfPPKrQZWEkgUCEzUvhA"},"team_supervisor":{"type":"boolean","description":"Set whether the user acts as an `agent` or `supervisor` in the team.","example":true}},"description":"Information about the team settings."},"client_integration":{"required":["client_integration_application"],"type":"object","properties":{"client_integration_application":{"maxLength":20,"type":"string","description":"The Contact Center's client integration application. \n\n* `Default` \n* `Salesforce` \n* `Zendesk` \n* `ServiceNow` \n* `Microsoft_Dynamics_365`","example":"Salesforce"},"client_integration_name":{"maxLength":100,"type":"string","description":"The client integration connection name to be assigned to the user.","example":"my integration"}},"description":"Information about the client integration settings."},"external_url":{"required":["enable_external_url","external_launch_url"],"type":"object","properties":{"enable_external_url":{"type":"boolean","description":"Whether to enable external url.","example":true},"external_launch_url":{"maxLength":500,"type":"string","description":"The external url.\n\nThese parameters can be used as command line arguments: \n`%N` - Full name \n`%F` - First name \n`%L` - Last name \n`%C` - Caller ID number \n`%E` - Caller ID number (in E.164 format)","example":"https://www.domain.com"}},"description":"Information about the external URL settings."},"user_access":{"type":"boolean","description":"The user's access status. \n\n* `true` - The user's role permissions allow them to access the Contact Center. \n* `false` - The user cannot access the Contact Center.","example":true},"country_or_region":{"maxLength":20,"type":"string","description":"The [ISO country code](/docs/api/rest/other-references/abbreviation-lists/#countries).","example":"US"},"region":{"maxLength":50,"type":"string","description":"The region's ID.","example":"BAAfPPKrQZWEkgUCEzUvhA"},"mobile_client":{"type":"boolean","description":"Whether to enable mobile client.","example":false},"emergency_calling":{"type":"boolean","description":"Whether to enable emergency calling.","example":true},"assigned_queues":{"type":"object","properties":{"agent_queue_ids":{"type":"array","description":"Assign user as agent queue ids.","items":{"maxLength":50,"type":"string","description":"The queue's ID.","example":"jUthl0VaRH6mcZepV4ITMA"}},"supervisor_queue_ids":{"type":"array","description":"Assign user as supervisor queue ids.","items":{"maxLength":50,"type":"string","description":"The queue's ID","example":"jUthl0VaRH6mcZepV4ITMA"}},"default_outbound_voice_queue_id":{"maxLength":50,"type":"string","description":"The default voice outbound queue's ID.","example":"jUthl0VaRH6mcZepV4ITMA"},"default_outbound_message_queue_id":{"maxLength":50,"type":"string","description":"The default message outbound queue's ID.","example":"jUthl0VaRH6mcZepV4ITMA"}},"description":"Information about the assigned queues settings."},"skills":{"type":"array","description":"Information about the skill settings.","items":{"required":["skill_id"],"type":"object","properties":{"skill_id":{"maxLength":50,"type":"string","description":"The skill's ID.","example":"s51M536ZjSgi8o_rzmgQBrA"},"proficiency_level":{"maximum":50,"minimum":0,"type":"integer","description":"The maximum proficiency level in a skill.","example":3}},"description":"The skill settings."}},"engagement_capacity":{"type":"object","properties":{"concurrent_email_capacity":{"maximum":100,"minimum":0,"type":"integer","description":"The maximum concurrent email engagements.","example":5},"concurrent_message_capacity":{"maximum":100,"minimum":0,"type":"integer","description":"The maximum concurrent messaging engagements.","example":6},"email_max_agent_load":{"maximum":100,"minimum":0,"type":"integer","description":"This agent will receive a new voice or video engagement only when their email load is at or below this percentage.","example":10},"message_max_agent_load":{"maximum":100,"minimum":0,"type":"integer","description":"This agent will receive a new voice or video engagement only when their messaging load is at or below this percentage.","example":10}},"description":"Information about the engagement capacity settings."},"modified_by":{"type":"string","description":"The ID of the user that last modified this data.","example":"IGTRVt3gQ2i-WjoUIjeZxw"},"last_modified_time":{"type":"string","description":"The date and time when this data was last modified.","format":"date-time","example":"2022-02-15T09:27:15Z"},"created_by":{"type":"string","description":"The ID of the user that created this data.","example":"IGTRVt3gQ2i"},"created_time":{"type":"string","description":"The date and time when this data was created.","format":"date-time","example":"2022-02-15T09:27:15Z"}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `640001` <br>\n The template name is duplicate. <br>\n**Error Code:** `640002` <br>\n Cannot switch the template to this status. <br>\n**Error Code:** `640003` <br>\n Template name is too long. <br>\n**Error Code:** `640004` <br>\n Template description is too long. <br>\n**Error Code:** `640005` <br>\n Template name is required. <br>\n**Error Code:** `640007` <br>\n Template type is required. <br>\n**Error Code:** `640011` <br>\n Too many templates. <br>\n**Error Code:** `640014` <br>\n Invalid template setting value. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_user_template:write:admin","contact_center:write:user_templates:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_user_template:write:admin"],"x-granular-scopes":["contact_center:write:user_templates:admin"]}}},"/contact_center/users/templates/{templateId}":{"get":{"tags":["Users"],"summary":"Get a user template","description":"Get a user template.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_user_template:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:user_templates:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"Getanusertemplate","parameters":[{"name":"templateId","in":"path","description":"The template's ID.","required":true,"schema":{"type":"string","example":"qmLKCot6QfSGwmPKFCgmCg"}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   User template returned.","content":{"application/json":{"schema":{"required":["template_id"],"type":"object","properties":{"template_id":{"maxLength":50,"type":"string","description":"The user template identifier.","example":"qmLKCot6QfSGwmPKFCgmCg"},"template_name":{"maxLength":100,"type":"string","description":"The user template's name.","example":"template name"},"template_description":{"maxLength":100,"type":"string","description":"The user template's description.","example":"user template."},"template_type":{"maxLength":10,"type":"string","description":"The user template's type.\n\n* `add` - Create users.\n\n* `update` - Update users.","example":"add","enum":["add","update"]},"template_status":{"maxLength":20,"type":"string","description":"The template's status.\n\n- `active` - Available templates\n\n- `inactive` - Unavailable template\n\n- `needs_attention` - Unavailable template with invalid required fields","example":"active","enum":["active","inactive","needs_attention"]},"selected_blocks":{"maxItems":30,"type":"array","description":"Select the user template settings to apply.\n\nOnly used for `update` type templates.\n\nChoose which settings take effect when applying.\n\n**Required** for `update` template.","items":{"maxLength":50,"type":"string","description":"The template's block name.","example":"role","enum":["role","package","team","client_integration","external_url","user_access","country_or_region","region","mobile_client","emergency_calling","assigned_queues","skills","engagement_capacity"]}},"role":{"maxLength":50,"type":"string","description":"The role's ID.\n\nNot required for `update` templates if it is not selected to be applied.","example":"27302393-4784-11ec-a3cd-122e3e29bb87"},"package":{"required":["package_name"],"type":"object","properties":{"package_name":{"maxLength":20,"type":"string","description":"The Contact Center plan to assign to the user.\n\nConcurrent or non-concurrent depends on the plan type purchased by the account.\n\n- `essentials` - Zoom Contact Center Essentials or Zoom Contact Center Concurrent Essentials Package.\n- `premium` - Zoom Contact Center Premium or Zoom Contact Center Concurrent Premium Package.\n- `elite` - Zoom Contact Center Elite or Zoom Contact Center Concurrent Elite Package.\n\nWhen updating the template, it is not required if it is not selected to be applied.","example":"essentials","enum":["essentials","premium","elite"]},"add_ons_plan":{"type":"array","description":"The Contact Center plan to assign to the user. Whether the plan is concurrent or non-concurrent depends on the plan type purchased by the account.\n\n*`ai_expert_assist` - Contact Center AI Expert Assist or Contact Center AI Expert Assist Concurrent package.\n*`zoom_contact_center_for_service_cloud_voice` - Contact Center for Salesforce Voice or Contact Center for Salesforce Voice Concurrent package.\n*`zoom_contact_center_for_epic` - Contact Center for Epic or Contact Center for Epic Concurrent package.\n*`zoom_contact_center_unified_view_for_servicenow` - Contact Center Unified View for ServiceNow or Contact Center Unified View for ServiceNow Concurrent Package.","items":{"type":"string","description":"The Contact Center add-ons plan to assign to the user.","example":"ai_expert_assist","enum":["ai_expert_assist","zoom_contact_center_for_service_cloud_voice","zoom_contact_center_for_epic","zoom_contact_center_unified_view_for_servicenow"]}},"billing_account_id":{"maxLength":50,"type":"string","description":"The ID of the Zoom Billing account to assign to the user.","example":"lsKovuAEQBu5dpeqmxwW1Q"}},"description":"The Contact Center plan to assign to the user.\n\nConcurrent or non-concurrent depends on the plan type purchased by the account.\n\n- `essentials` - Zoom Contact Center Essentials or Zoom Contact Center Concurrent Essentials Package.\n- `premium` - Zoom Contact Center Premium or Zoom Contact Center Concurrent Premium Package.\n- `elite` - Zoom Contact Center Elite or Zoom Contact Center Concurrent Elite Package.","example":"essentials"},"team":{"required":["team_id","team_supervisor"],"type":"object","properties":{"team_id":{"maxLength":50,"type":"string","description":"The team's ID.","example":"G3AfPPKrQZWEkgUCEzUvhA"},"team_supervisor":{"type":"boolean","description":"Whether the user acts as an `agent` or `supervisor` in the team.","example":true}},"description":"Information about the team settings."},"client_integration":{"required":["client_integration_application"],"type":"object","properties":{"client_integration_application":{"maxLength":20,"type":"string","description":"The Contact Center's client integration application.","example":"Salesforce"},"client_integration_name":{"maxLength":100,"type":"string","description":"The client integration connection name to be assigned to the user.","example":"my integration"}},"description":"Information about the client integration settings."},"external_url":{"required":["enable_external_url","external_launch_url"],"type":"object","properties":{"enable_external_url":{"type":"boolean","description":"Whether to enable external URLs.","example":true},"external_launch_url":{"maxLength":500,"type":"string","description":"The external URL.\n\nUse these parameters as command line arguments.\n`%N` - Full name \n`%F` - First name \n`%L` - Last name \n`%C` - Caller ID number \n`%E` - Caller ID number in E.164 format","example":"https://www.example.com"}},"description":"Information about the external URL settings."},"user_access":{"type":"boolean","description":"The user's access status. \n\n* `true` - The user's role permissions allow them to access the Contact Center. \n* `false` - The user cannot access the Contact Center.","example":true},"country_or_region":{"maxLength":20,"type":"string","description":"The [ISO country code](/docs/api/references/abbreviations/#countries).","example":"US"},"region":{"maxLength":50,"type":"string","description":"The region's ID.","example":"BAAfPPKrQZWEkgUCEzUvhA"},"mobile_client":{"type":"boolean","description":"Whether to enable mobile client.","example":false},"emergency_calling":{"type":"boolean","description":"Whether to enable emergency calling.","example":true},"assigned_queues":{"type":"object","properties":{"agent_queue_ids":{"maxItems":200,"type":"array","description":"Assign user as agent queue IDs.","items":{"maxLength":50,"type":"string","description":"The queue's ID.","example":"jUthl0VaRH6mcZepV4ITMA"}},"supervisor_queue_ids":{"maxItems":200,"type":"array","description":"Assign user as supervisor queue IDs.","items":{"maxLength":50,"type":"string","description":"The queue's ID.","example":"jUthl0VaRH6mcZepV4ITMA"}},"default_outbound_voice_queue_id":{"maxLength":50,"type":"string","description":"The default voice outbound queue's ID.","example":"jUthl0VaRH6mcZepV4ITMA"},"default_outbound_message_queue_id":{"maxLength":50,"type":"string","description":"The default message outbound queue's ID.","example":"jUthl0VaRH6mcZepV4ITMA"}},"description":"Information about the assigned queues settings."},"skills":{"maxItems":200,"type":"array","description":"Information about the skill settings.","items":{"required":["skill_id"],"type":"object","properties":{"skill_id":{"maxLength":50,"type":"string","description":"The skill's ID.","example":"s51M536ZjSgi8o_rzmgQBrA"},"proficiency_level":{"maximum":50,"minimum":0,"type":"integer","description":"The maximum proficiency level in a skill.","example":3}},"description":"The skill settings."}},"engagement_capacity":{"type":"object","properties":{"concurrent_email_capacity":{"maximum":100,"minimum":0,"type":"integer","description":"The maximum concurrent email engagements.","example":5},"concurrent_message_capacity":{"maximum":100,"minimum":0,"type":"integer","description":"The maximum concurrent messaging engagements.","example":6},"email_max_agent_load":{"maximum":100,"minimum":0,"type":"integer","description":"This agent receives a new voice or video engagement only when their email load is at or below this percentage.","example":10},"message_max_agent_load":{"maximum":100,"minimum":0,"type":"integer","description":"This agent receives a new voice or video engagement only when their messaging load is at or below this percentage.","example":10}},"description":"Information about the engagement capacity settings."},"modified_by":{"type":"string","description":"The ID of the user who last modified this data.","example":"IGTRVt3gQ2i-WjoUIjeZxw"},"last_modified_time":{"type":"string","description":"The date and time when this data was last modified.","format":"date-time","example":"2022-02-15T09:27:15Z"},"created_by":{"type":"string","description":"The ID of the user that created this data.","example":"IGTRVt3gQ2i"},"created_time":{"type":"string","description":"The date and time when this data was created.","format":"date-time","example":"2022-02-15T09:27:15Z"}}}}}},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `640000` <br>\n The user template not found. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_user_template:read:admin","contact_center:read:user_templates:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_user_template:read:admin"],"x-granular-scopes":["contact_center:read:user_templates:admin"]}},"delete":{"tags":["Users"],"summary":"Delete a user template","description":"Delete a user template.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_user_template:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:delete:user_templates:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"deleteAUserTemplate","parameters":[{"name":"templateId","in":"path","description":"The template's ID.","required":true,"schema":{"type":"string","example":"qmLKCot6QfSGwmPKFCgmCg"}},{"name":"user_template_identifier_type","in":"query","description":"How the path parameter is interpreted. `id` treats it as a system-generated unique identifier. `name` treats it as the resource name.\nWhen using `name`, the resource name must be URL-encoded per RFC 3986.","required":false,"schema":{"type":"string","example":"id","default":"id","enum":["id","name"]}}],"responses":{"204":{"description":"**HTTP Status Code:** `204` Template deleted."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `640015` <br>\n More than one matching user template found. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `640000` <br>\n The user template not found. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_user_template:write:admin","contact_center:delete:user_templates:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_user_template:write:admin"],"x-granular-scopes":["contact_center:delete:user_templates:admin"]}},"patch":{"tags":["Users"],"summary":"Update a user template","description":"Update a user template.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_user_template:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:update:user_templates:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"updateAUserTemplate","parameters":[{"name":"templateId","in":"path","description":"The template's ID.","required":true,"schema":{"type":"string","example":"qmLKCot6QfSGwmPKFCgmCg"}},{"name":"user_template_identifier_type","in":"query","description":"How the path parameter is interpreted. `id` treats it as a system-generated unique identifier. `name` treats it as the resource name.\nWhen using `name`, the resource name must be URL-encoded per RFC 3986.","required":false,"schema":{"type":"string","example":"id","default":"id","enum":["id","name"]}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"template_name":{"maxLength":100,"type":"string","description":"The user template's name.","example":"template name"},"template_description":{"maxLength":100,"type":"string","description":"The user template's description.","example":"user template."},"selected_blocks":{"type":"array","description":"Select the user template settings to apply.\n\nOnly used for `update` type templates.\n\nChoose which settings take effect when applying.\n\n**Required** for `update` template.","items":{"maxLength":50,"type":"string","description":"The template's block name.","example":"role","enum":["role","package","team","client_integration","external_url","user_access","country_or_region","region","mobile_client","emergency_calling","assigned_queues","skills","engagement_capacity","assigned_numbers","assigned_intents"]}},"role":{"maxLength":50,"type":"string","description":"The role's ID.\n\nNot required for `update` templates if it is not selected to be applied.","example":"27302393-4784-11ec-a3cd-122e3e29bb87"},"package":{"required":["package_name"],"type":"object","properties":{"package_name":{"maxLength":20,"type":"string","description":"The Contact Center plan to assign to the user.\n\nConcurrent or non-concurrent depends on the plan type purchased by the account.\n\n- `essentials` - Zoom Contact Center Essentials or Zoom Contact Center Concurrent Essentials Package.\n- `premium` - Zoom Contact Center Premium or Zoom Contact Center Concurrent Premium Package.\n- `elite` - Zoom Contact Center Elite or Zoom Contact Center Concurrent Elite Package.\n\nWhen updating the template, it is not required if it is not selected to be applied.","example":"essentials","enum":["essentials","premium","elite"]},"add_ons_plan":{"type":"array","description":"The Contact Center plan to assign to the user.\n\nConcurrent or non-concurrent depends on the plan type purchased by the account.\n\n- `ai_expert_assist` - Zoom Contact Center AI Expert Assist or Zoom Contact Center AI Expert Assist Concurrent Package.","items":{"maxLength":20,"type":"string","description":"The Contact Center add-ons plan to assign to the user.","example":"ai_expert_assist"}},"billing_account_id":{"maxLength":50,"type":"string","description":"The ID of the Zoom Billing account to assign to the user.","example":"lsKovuAEQBu5dpeqmxwW1Q"}},"description":"The Contact Center plan to assign to the user.\n\nConcurrent or non-concurrent depends on the plan type purchased by the account.\n\n- `essentials` - Zoom Contact Center Essentials or Zoom Contact Center Concurrent Essentials Package.\n- `premium` - Zoom Contact Center Premium or Zoom Contact Center Concurrent Premium Package.\n- `elite` - Zoom Contact Center Elite or Zoom Contact Center Concurrent Elite Package.","example":"essentials"},"team":{"required":["team_id","team_supervisor"],"type":"object","properties":{"team_id":{"maxLength":50,"type":"string","description":"The team's ID.","example":"G3AfPPKrQZWEkgUCEzUvhA"},"team_supervisor":{"type":"boolean","description":"Whether the user acts as an `agent` or `supervisor` in the team.","example":true}},"description":"Information about the team settings."},"client_integration":{"required":["client_integration_application"],"type":"object","properties":{"client_integration_application":{"maxLength":20,"type":"string","description":"The Contact Center's client integration application.","example":"Salesforce"},"client_integration_name":{"maxLength":100,"type":"string","description":"The client integration connection name to be assigned to the user.","example":"my integration"}},"description":"Information about the client integration settings."},"external_url":{"required":["enable_external_url","external_launch_url"],"type":"object","properties":{"enable_external_url":{"type":"boolean","description":"Whether to enable external URLs.","example":true},"external_launch_url":{"maxLength":500,"type":"string","description":"The external URL.\n\nUse these parameters as command line arguments.\n`%N` - Full name \n`%F` - First name \n`%L` - Last name \n`%C` - Caller ID number \n`%E` - Caller ID number in E.164 format","example":"https://www.example.com"}},"description":"Information about the external URL settings."},"user_access":{"type":"boolean","description":"The user's access status. \n\n* `true` - The user's role permissions allow them to access the Contact Center. \n* `false` - The user cannot access the Contact Center.","example":true},"country_or_region":{"maxLength":20,"type":"string","description":"The [ISO country code](/docs/api/references/abbreviations/#countries).","example":"US"},"region":{"maxLength":50,"type":"string","description":"The region's ID.","example":"BAAfPPKrQZWEkgUCEzUvhA"},"mobile_client":{"type":"boolean","description":"Whether to enable mobile client.","example":false},"emergency_calling":{"type":"boolean","description":"Whether to enable emergency calling.","example":true},"assigned_queues":{"type":"object","properties":{"agent_queue_ids":{"type":"array","description":"Assign user as agent queue IDs.","items":{"maxLength":50,"type":"string","description":"The queue's ID.","example":"jUthl0VaRH6mcZepV4ITMA"}},"supervisor_queue_ids":{"type":"array","description":"Assign user as supervisor queue IDs.","items":{"maxLength":50,"type":"string","description":"The queue's ID.","example":"jUthl0VaRH6mcZepV4ITMA"}},"default_outbound_voice_queue_id":{"maxLength":50,"type":"string","description":"The default voice outbound queue's ID.","example":"jUthl0VaRH6mcZepV4ITMA"},"default_outbound_message_queue_id":{"maxLength":50,"type":"string","description":"The default message outbound queue's ID.","example":"jUthl0VaRH6mcZepV4ITMA"}},"description":"Information about the assigned queues settings."},"skills":{"type":"array","description":"Information about the skill settings.","items":{"required":["skill_id"],"type":"object","properties":{"skill_id":{"maxLength":50,"type":"string","description":"The skill's ID.","example":"s51M536ZjSgi8o_rzmgQBrA"},"proficiency_level":{"maximum":50,"minimum":0,"type":"integer","description":"The maximum proficiency level in a skill.","example":3}},"description":"The skill settings."}},"engagement_capacity":{"type":"object","properties":{"concurrent_email_capacity":{"maximum":100,"minimum":0,"type":"integer","description":"The maximum concurrent email engagements.","example":5},"concurrent_message_capacity":{"maximum":100,"minimum":0,"type":"integer","description":"The maximum concurrent messaging engagements.","example":6},"email_max_agent_load":{"maximum":100,"minimum":0,"type":"integer","description":"This agent receives a new voice or video engagement only when their email load is at or below this percentage.","example":10},"message_max_agent_load":{"maximum":100,"minimum":0,"type":"integer","description":"This agent receives a new voice or video engagement only when their messaging load is at or below this percentage.","example":10}},"description":"Information about the engagement capacity settings."}}}}}},"responses":{"204":{"description":"**HTTP Status Code:** `204` Template updated."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `640001` <br>\n The template name is duplicate. <br>\n**Error Code:** `640002` <br>\n Cannot switch the template to this status. <br>\n**Error Code:** `640003` <br>\n Template name is too long. <br>\n**Error Code:** `640004` <br>\n Template description is too long. <br>\n**Error Code:** `640005` <br>\n Template name is required. <br>\n**Error Code:** `640007` <br>\n Template type is required. <br>\n**Error Code:** `640011` <br>\n Too many templates. <br>\n**Error Code:** `640014` <br>\n Invalid template setting value. <br>\n**Error Code:** `640015` <br>\n More than one matching user template found. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `640000` <br>\n The user template not found. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_user_template:write:admin","contact_center:update:user_templates:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_user_template:write:admin"],"x-granular-scopes":["contact_center:update:user_templates:admin"]}}},"/contact_center/users/{userId}":{"get":{"tags":["Users"],"summary":"Get a user's profile","description":"Retrieve a Contact Center user.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_user:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:user:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"getUser","parameters":[{"name":"userId","in":"path","description":"The user identifier. This can be the Meetings user ID `user_id`, the Contact Center user ID `cc_user_id`, an email address, or [the 'me' value](/docs/api/using-zoom-apis/#the-me-keyword) to refer to the user associated with the access token.\n","required":true,"schema":{"type":"string","example":"IGTRVt3gQ2i-WjoUIjeZxw"}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \nUser profile returned.","content":{"application/json":{"schema":{"type":"object","properties":{"user_id":{"maxLength":36,"type":"string","description":"The Meetings user identifier.","example":"IGTRVt3gQ2i-WjoUIjeZxw"},"display_name":{"type":"string","description":"The user's display name.","example":"Jane Doe"},"user_email":{"type":"string","description":"The user's email address.","format":"email","example":"jchill@example.com"},"role_id":{"maxLength":36,"type":"string","description":"The user's Contact Center role identifier.","example":"0TFVsJqNS82CwkQJLqj1zA"},"role_name":{"maxLength":36,"type":"string","description":"The user's Contact Center role name.","example":"Admin"},"client_integration":{"type":"string","description":"The contact center's client integration. ","example":"Salesforce","enum":["Default","Salesforce","Zendesk","ServiceNow","Microsoft_Dynamics_365"]},"client_integration_name":{"type":"string","description":"The client integration connection name to be assigned to the user.","example":"integration-test"},"status_id":{"type":"string","description":"The user's status ID.","example":"2"},"status_name":{"type":"string","description":"The user's [availability status](https://support.zoom.us/hc/en-us/articles/4470584918541-Setting-availability-status). \n* Offline (ID = `0`) \n* Ready (ID = `1`) \n* Not Ready (ID = `2`) \n* Occupied (ID = `3`) \n* A custom user status (ID = `4`), such as &quot;Lunch&quot; or &quot;Away until Monday&quot;","example":"Not Ready","enum":["Offline","Ready","Not Ready","Occupied"]},"sub_status_id":{"type":"string","description":"The user's reason ID when the user status is `Not Ready`.","example":"21"},"sub_status_name":{"type":"string","description":"The user's reason when the user status is `Not Ready`.\n\n To query a list of default and custom `Not Ready` reasons, call [List System Statuses](/docs/contact-center/apis/#operation/listSystemStatus) (filter by `queue_opt_out_and_not_ready_status` status_category)\n\n Default `Not Ready` reasons:\n * Break (ID = `20`) \n* Meal (ID = `21`) \n* Training (ID = `22`) \n* Meeting (ID = `23`) \n* End Shift (ID = `24`) \n* Forced (ID = `25`) \n","example":"Meal","enum":["Break","End Shift","Forced","Meal","Meeting","Training"]},"user_access":{"type":"string","description":"The user's access status.\n\n* `active` - The user's role permissions allow them to access the Contact Center. \n* `inactive` - The user cannot access the Contact Center.","example":"active","enum":["active","inactive"]},"country_iso_code":{"type":"string","description":"The [ISO country code](/docs/api/rest/other-references/abbreviation-lists/#countries).","example":"US"},"region_id":{"type":"string","description":"The Contact Center region identifier.","example":"8f71O6rWT8KFUGQmJIFAdQ"},"region_name":{"type":"string","description":"The Contact Center region name.","example":"Main Region"},"channel_settings":{"type":"object","properties":{"multi_channel_engagements":{"type":"object","properties":{"enable":{"type":"boolean","description":"Whether to allow the user to receive voice or video engagements while handling messaging or email engagements.","example":true},"max_agent_load":{"maximum":100,"minimum":1,"type":"integer","description":"The percentage of the user's messaging capacity that determines availability for voice and video engagements. When `enable` is `true` and the user's current messaging workload is at or below this percentage of `concurrent_message_capacity`, they can receive voice and video engagements.","example":50},"email_max_agent_load":{"maximum":100,"minimum":1,"type":"integer","description":"The percentage of the user's email capacity that determines availability for voice and video engagements. When `enable` is `true` and the user's current email workload is at or below this percentage of `concurrent_email_capacity`, they can receive voice and video engagements.","example":50}},"description":"Information about the setting's multi-channel engagements."},"concurrent_message_capacity":{"maximum":20,"minimum":0,"type":"integer","description":"The maximum number of concurrent messaging engagements that can be assigned to a user.","example":4},"concurrent_email_capacity":{"maximum":20,"minimum":0,"type":"integer","description":"The maximum number of concurrent email engagements that can be assigned to a user.","example":4}},"description":"Information about the channel settings."},"package_name":{"type":"string","description":"The Contact Center plan to assign to the user. Concurrent or non-concurrent depends on the plan type purchased by the account.\n\n*`essentials` - Zoom Contact Center Essentials or Zoom Contact Center Concurrent Essentials Package.\n*`premium` - Zoom Contact Center Premium or Zoom Contact Center Concurrent Premium Package.\n*`elite` - Zoom Contact Center Elite or Zoom Contact Center Concurrent Elite Package.","example":"essentials","enum":["essentials","premium","elite"]},"add_ons_plan":{"type":"array","description":"The Contact Center plan to assign to the user. Concurrent or non-concurrent depends on the plan type purchased by the account.\n*`ai_expert_assist` - Contact Center AI Expert Assist or Contact Center AI Expert Assist Concurrent Package.\n*`zoom_contact_center_for_service_cloud_voice` - Contact Center for Salesforce Voice or Contact Center for Salesforce Voice Concurrent Package.","items":{"type":"string","example":"ai_expert_assist","enum":["ai_expert_assist"]}},"teams":{"maxItems":20,"type":"array","description":"The teams the user is assigned to.","items":{"type":"object","properties":{"team_id":{"type":"string","description":"The team's ID.","example":"qlU902FoTD-dFi9QnCdZhw"},"team_name":{"type":"string","description":"The team's display name.","example":"Support Team"}}}},"cc_user_id":{"maxLength":36,"type":"string","description":"The Contact Center user identifier.","example":"hKuMAiDdRlSwMkBxR5we7g"},"emergency_calling":{"type":"boolean","description":"Allow users to contact emergency services through their device's native phone system or Zoom Phone.","example":true},"billing_account_id":{"type":"string","description":"The ID of the Zoom Billing account to assign to the user.","example":"PEKovuAEQBu5dpeqmxwW1Q"},"billing_account_name":{"type":"string","description":"The name of the Zoom Billing account to assign to the user.","example":"main billing account"}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `300` <br>\n Invalid user id. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1001` <br>\n User does not exist: {userId}. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_user:read:admin","contact_center:read:user:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_user:read:admin"],"x-granular-scopes":["contact_center:read:user:admin"]}},"delete":{"tags":["Users"],"summary":"Delete a user's profile","description":"Delete a Contact Center user.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_user:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:delete:user:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"userDelete","parameters":[{"name":"userId","in":"path","description":"The user identifier. This can be the Meetings user ID `user_id`, the Contact Center user ID `cc_user_id`, an email address, or [the 'me' value](/docs/api/using-zoom-apis/#the-me-keyword) to refer to the user associated with the access token.\n","required":true,"schema":{"type":"string","example":"IGTRVt3gQ2i-WjoUIjeZxw"}},{"name":"user_identifier_type","in":"query","description":"How the `userId` path parameter is interpreted. `id` treats it as a system-generated unique identifier. `email` treats it as the user email.\nWhen using `email`, the user email must be URL-encoded per RFC 3986.","required":false,"schema":{"type":"string","example":"id","default":"id","enum":["id","email"]}}],"responses":{"204":{"description":"**HTTP Status Code:** `204`   \n \nUser profile deleted."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `300` <br>\n Validation failed. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1001` <br>\n User does not exist: {userId}. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_user:write:admin","contact_center:delete:user:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_user:write:admin"],"x-granular-scopes":["contact_center:delete:user:admin"]}},"patch":{"tags":["Users"],"summary":"Update a user's profile","description":"Update a Contact Center user.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_user:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:update:user:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"updateUser","parameters":[{"name":"userId","in":"path","description":"The user identifier. This can be the Meetings user ID `user_id`, the Contact Center user ID `cc_user_id`, an email address, or [the 'me' value](/docs/api/using-zoom-apis/#the-me-keyword) to refer to the user associated with the access token.\n","required":true,"schema":{"type":"string","example":"IGTRVt3gQ2i-WjoUIjeZxw"}},{"name":"user_identifier_type","in":"query","description":"How the `userId` path parameter is interpreted. `id` treats it as a system-generated unique identifier. `email` treats it as the user email.\n\nWhen using `email`, the user email must be URL-encoded per RFC 3986.","required":false,"schema":{"type":"string","example":"id","default":"id","enum":["id","email"]}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"client_integration":{"type":"string","description":"The Contact Center client integration.","example":"Salesforce","enum":["Default","Salesforce","Zendesk","ServiceNow","Microsoft_Dynamics_365"]},"client_integration_name":{"type":"string","description":"The client integration connection name to be assigned to the user.","example":"integration-test"},"role_id":{"maxLength":36,"type":"string","description":"The user's Contact Center role identifier.","example":"0TFVsJqNS82CwkQJLqj1zA"},"status_id":{"type":"string","description":"The user's status ID. **Deprecated** Use the [Update a user's status](/docs/api/contact-center/#tag/users/patch/contact_center/users/{userId}/status) API instead.","example":"1","deprecated":true},"sub_status_id":{"type":"string","description":"The user's reason ID when the user status is `Not Ready`. **Deprecated** Use the [Update a user's status](/docs/api/contact-center/#tag/users/patch/contact_center/users/{userId}/status) API instead.","example":"21","deprecated":true},"user_access":{"type":"string","description":"The user's access status. \n* `active` &mdash; The user's role permissions allow them to access the Contact Center. \n* `inactive` - The user cannot access the Contact Center.","example":"active","enum":["active","inactive"]},"country_iso_code":{"type":"string","description":"The [ISO country code](/docs/api/rest/other-references/abbreviation-lists/#countries).","example":"US"},"region_id":{"type":"string","description":"The Contact Center region identifier.","example":"8f71O6rWT8KFUGQmJIFAdQ"},"channel_settings":{"type":"object","properties":{"multi_channel_engagements":{"type":"object","properties":{"enable":{"type":"boolean","description":"Whether to allow the user to receive voice or video engagements while handling messaging or email engagements.","example":true},"max_agent_load":{"maximum":100,"minimum":1,"type":"integer","description":"The percentage of the user's messaging capacity that determines availability for voice and video engagements. When `enable` is `true` and the user's current messaging workload is at or below this percentage of `concurrent_message_capacity`, they can receive voice and video engagements.","example":50},"email_max_agent_load":{"maximum":100,"minimum":1,"type":"integer","description":"The percentage of the user's email capacity that determines availability for voice and video engagements. When `enable` is `true` and the user's current email workload is at or below this percentage of `concurrent_email_capacity`, they can receive voice and video engagements.","example":50}},"description":"Information about the settings' multi-channel engagements."},"concurrent_message_capacity":{"maximum":20,"minimum":0,"type":"integer","description":"The maximum number of concurrent messaging engagements that can be assigned to a user.","example":4},"concurrent_email_capacity":{"maximum":20,"minimum":0,"type":"integer","description":"The maximum number of concurrent email engagements that can be assigned to a user.","example":4}},"description":"Information about the channel settings."},"template_id":{"type":"string","description":"To retrieve the template ID, call the **List User's Templates** API. The template ID must correspond to a template with a status of `Active` and a type of `Update`. If you provide this value, leave all other fields blank to apply the settings from the template. Only the settings from the template indicated as 'override' will be applied to the user. If you specify both individual values and a template in the request, the individual values take priority over the template settings.","example":"4pPgojTBRC69wEYSlDhffA"},"package_name":{"type":"string","description":"The Contact Center plan to assign to the user. Concurrent or non-concurrent depends on the plan type purchased by the account.\n\n*`essentials` - Zoom Contact Center Essentials or Zoom Contact Center Concurrent Essentials Package.\n*`premium` - Zoom Contact Center Premium or Zoom Contact Center Concurrent Premium Package.\n*`elite` - Zoom Contact Center Elite or Zoom Contact Center Concurrent Elite Package.","example":"essentials","enum":["essentials","premium","elite"]},"add_ons_plan":{"type":"array","description":"The Contact Center plan to assign to the user. Concurrent or non-concurrent depends on the plan type purchased by the account.\n*`ai_expert_assist` - Contact Center AI Expert Assist or Contact Center AI Expert Assist Concurrent Package.\n*`zoom_contact_center_for_service_cloud_voice` - Contact Center for Salesforce Voice or Contact Center for Salesforce Voice Concurrent Package.","items":{"type":"string","example":"ai_expert_assist","enum":["ai_expert_assist"]}},"emergency_calling":{"type":"boolean","description":"Allow users to contact emergency services through their device's native phone system or Zoom Phone.","example":true},"billing_account_id":{"type":"string","description":"The ID of the billing account.","example":"PEKovuAEQBu5dpeqmxwW1Q"}}}}}},"responses":{"204":{"description":"**HTTP Status Code:** `204` User profile updated."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `8003` <br>\n User template not found: {template_id}. <br>\n**Error Code:** `8004` <br>\n User template type error: {template_id}. <br>\n**Error Code:** `8005` <br>\n User template status error: {template_id}. <br>\n**Error Code:** `290010` <br>\n The selected package or add-ons is not enough. <br>\n**Error Code:** `1701` <br>\n The account package does not exist: {package_name}. <br>\n**Error Code:** `1702` <br>\n The account addons package does not exist: {add_ons_plan_name}. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `300` <br>\n Validation failed. <br>\n**Error Code:** `1001` <br>\n User does not exist: {userId}. <br>\n**Error Code:** `1101` <br>\n Status does not exist: {status_id}. <br>\n**Error Code:** `1102` <br>\n Sub status does not exist: {sub_status_id}. <br>\n**Error Code:** `1006` <br>\n The account {client_integration} client integration does not exist. Add it to the **Integrations** function module. <br>\n**Error Code:** `2201` <br>\n Role does not exist: {role_id}. <br>\n**Error Code:** `2202` <br>\n Country ISO code does not exist: {country_iso_code}. <br>\n**Error Code:** `1017` <br>\n Region does not exist. <br>\n**Error Code:** `1020` <br>\n The account {client_integration_name} client integration name does not exist. Add it to the \"Integrations\" function module. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_user:write:admin","contact_center:update:user:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_user:write:admin"],"x-granular-scopes":["contact_center:update:user:admin"]}}},"/contact_center/users/{userId}/opt_in_out_queues":{"patch":{"tags":["Users"],"summary":"Opt-in or opt-out a user's queues","description":"Change a Contact Center user's opt-in or opt-out status for queues assigned to the user. Opting out prevents the user from receiving engagements from that queue if they are an agent.\n\nIf `channel_type` is provided, queues are processed based on the `channel_type`. Otherwise, queues are processed based on `queue_ids`. The request is invalid if neither `channel_type` nor `queue_ids` are provided.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_queue:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:update:queue_agent:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"BatchOptInOrOutUserQueues","parameters":[{"name":"userId","in":"path","description":"The user identifier. This can be the Meetings user ID `user_id`, the Contact Center user ID `cc_user_id`, an email address, or [the 'me' value](/docs/api/using-zoom-apis/#the-me-keyword) to refer to the user associated with the access token.","required":true,"schema":{"type":"string","example":"IGTRVt3gQ2i-WjoUIjeZxw"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["opt_in_out_status"],"type":"object","properties":{"opt_in_out_status":{"type":"integer","description":"Opt-in or opt-out status. \n\n-`0` - Opt in\n-`1` - Opt out","example":0,"enum":[0,1]},"queue_ids":{"maxLength":100,"minLength":1,"type":"array","description":"The list of queues to opt in or out.","items":{"type":"string","description":"The queue's ID.","example":"IGTRVt3gQ2i-WjoUIjeZxw"}},"channel_type":{"type":"integer","description":"The channel of queues to opt in or out.\n\n-`0` - voice\n-`4` - video\n-`7` - messaging\n-`8` - email\n-`9` - work item","example":0,"enum":[0,4,7,8,9]}}}}}},"responses":{"204":{"description":"**HTTP Status Code:** `204`\n\nThe user's queues opt-in / opt-out status was successfully updated."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `1010` <br>\n The agent must be in an available state `Ready` to opt in to the queue. <br>\n**Error Code:** `1011` <br>\n The agent is not allowed to opt in or out of their assigned queues. <br>\n**Error Code:** `1019` <br>\n Feature OP flag is not enabled. <br>\n**Error Code:** `1205` <br>\n Queue channel type is invalid: $channel_type. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1001` <br>\n User does not exist: {userId}. <br>\n**Error Code:** `1202` <br>\n Queues do not exist: {queue_ids}. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_queue:write:admin","contact_center:update:queue_agent:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_queue:write:admin"],"x-granular-scopes":["contact_center:update:queue_agent:admin"]}}},"/contact_center/users/{userId}/queues":{"get":{"tags":["Users"],"summary":"List a user's queues","description":"List the Contact Center queues that a user is assigned to.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_user:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:list_user_queues:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"listUserQueues","parameters":[{"name":"userId","in":"path","description":"The user identifier. This can be the Meetings user ID `user_id`, the Contact Center user ID `cc_user_id`, an email address, or [the 'me' value](/docs/api/using-zoom-apis/#the-me-keyword) to refer to the user associated with the access token.\n","required":true,"schema":{"type":"string","example":"IGTRVt3gQ2i-WjoUIjeZxw"}},{"name":"channel","in":"query","description":"The Contact Center queue's channel.","required":false,"schema":{"type":"string","example":"voice","enum":["voice","video","messaging","email"]}},{"name":"user_assignment_type","in":"query","description":"User's Contact Center queue assignment types.\n* `agent` - assigned as an agent in the queue.\n* `supervisor` - assigned as a supervisor in the queue.\n* `any` - assigned as either an agent or a supervisor in the queue.\n* `both` - assigned as both an agent and a supervisor in the queue.","required":false,"schema":{"type":"string","example":"agent","default":"agent","enum":["agent","supervisor","any","both"]}},{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of records returned in a single API call.","required":false,"schema":{"maximum":300,"type":"integer","format":"int32","example":30,"default":30}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \nThe list of Contact Center queues that the user is assigned to.","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"maxLength":100,"type":"string","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":300,"type":"integer","description":"The number of records returned in a single API call.","example":30,"default":30},"total_records":{"minimum":0,"type":"integer","description":"The total number of all records available across pages.","example":10},"queues":{"maxItems":300,"type":"array","description":"Contact Center queues.","items":{"type":"object","properties":{"queue_id":{"maxLength":36,"type":"string","description":"The task queue's identifier. **Deprecated** - use the `cc_queue_id` field to reference the Contact Center queue.","example":"Ql3qxUWXSHes4PmcOmzyOg","deprecated":true},"cc_queue_id":{"maxLength":36,"type":"string","description":"The Contact Center queue identifier.","example":"a4lCNeq2SzKbgkcDVbjCZQ"},"queue_name":{"maxLength":150,"type":"string","description":"The Contact Center queue name.","example":"Voice - Customer Support"},"queue_description":{"maxLength":256,"type":"string","description":"The Contact Center queue description.","example":"Agents assigned to this queue handle Customer Support voice calls."},"channel":{"type":"string","description":"The Contact Center queue's channel.","example":"voice","enum":["voice","video","messaging","email"]},"user_assignment_type":{"type":"string","description":"The user's persona assignment type to the Contact Center queue. ","example":"agent","enum":["agent","supervisor","both"]},"caller_ids":{"type":"array","description":"The caller ID number that your customers will see on their phone when agents and supervisors reach out to them.","items":{"type":"string","description":"Phone number that customers will see on their phone. Phone number format E.164","example":"+18667202634"}},"teams":{"maxItems":20,"type":"array","description":"The teams the user is assigned to.","items":{"type":"object","properties":{"team_id":{"type":"string","description":"The unique identifier of the team.","example":"qlU902FoTD-dFi9QnCdZhw"},"team_name":{"type":"string","description":"The display name of the team.","example":"Support Team"}}}}}}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `300` <br>\n User assignment type is invalid: {user_assignment_type}. <br>\n**Error Code:** `1205` <br>\n Queue channel type is invalid: {channel}. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1001` <br>\n User does not exist: {userId}. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_user:read:admin","contact_center:read:list_user_queues:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_user:read:admin"],"x-granular-scopes":["contact_center:read:list_user_queues:admin"]}}},"/contact_center/users/{userId}/recordings":{"get":{"tags":["Users"],"summary":"List a user's recordings","description":"List a user's Contact Center recordings. \n\n**Note** Recordings are not available before July 18th, 2022.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_recording:read`,`contact_center_recording:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:list_recordings:admin`,`contact_center:read:list_recordings`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"listUserRecordings","parameters":[{"name":"userId","in":"path","description":"The user identifier. This can be the Meetings user ID `user_id`, the Contact Center user ID `cc_user_id`, an email address, or [the 'me' value](/docs/api/using-zoom-apis/#the-me-keyword) to refer to the user associated with the access token.","required":true,"schema":{"type":"string","example":"Rz06l1-PS0iSvSAVt1y-mw"}},{"name":"channel_type","in":"query","description":"The recording's channel type.\n\n* `voice` - Voice recording. \n* `video` - Video recording.","required":false,"deprecated":true,"schema":{"type":"string","example":"voice","enum":["voice","video"]}},{"name":"channel","in":"query","description":"The recording's channel type.\n\n* `voice` - Voice recording. \n* `video` - Video recording.\n\n If channel is used as an input parameter, the deprecated parameter `channnel_type` will not be processed.","required":false,"schema":{"type":"string","example":"voice","enum":["voice","video"]}},{"name":"from","in":"query","description":"The start time and date in ISO 8601 format, either yyyy-MM-dd'T'HH:mm:ss'Z' or yyyy-MM-dd'T'HH:mm:ss'TZD'. The defined date range should be a month, as the response only includes one month's worth of data. If unspecified, this parameter returns data from the past 30 days.","required":false,"schema":{"type":"string","format":"string","example":"2023-01-01T00:00:00-08:00"}},{"name":"to","in":"query","description":"**Required** only when the `from` parameter is specified. The end time and date in ISO 8601 format, either yyyy-MM-dd'T'HH:mm:ss'Z' or yyyy-MM-dd'T'HH:mm:ss'TZD', the same format as the `from` parameter.","required":false,"schema":{"type":"string","format":"string","example":"2023-01-01T01:00:00-08:00"}},{"name":"exemption","in":"query","description":"Whether the recording is exempted from data retention.\n- true - Return recordings with data retention exemption.\n- false - Return recordings without data retention exemption.\n- null - Return recordings both with and without data retention exemption.","required":false,"schema":{"type":"string","example":"true","enum":["true","false"]}},{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of records returned in a single API call.","required":false,"schema":{"maximum":300,"type":"integer","format":"int32","example":30,"default":30}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \nUser recordings returned.","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"maxLength":100,"type":"string","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":300,"type":"integer","description":"The number of records returned in a single API call.","example":30,"default":30},"from":{"type":"string","description":"The start time and date in ISO 8601 format, either yyyy-MM-dd'T'HH:mm:ss'Z' or yyyy-MM-dd'T'HH:mm:ss'TZD'. The defined date range should be a month, as the response only includes one month's worth of data. If unspecified, this parameter returns data from the past 30 days.","format":"string","example":"2023-01-01T00:00:00-08:00"},"to":{"type":"string","description":"**Required** only when the `from` parameter is specified. The end time and date in ISO 8601 format, either yyyy-MM-dd'T'HH:mm:ss'Z' or yyyy-MM-dd'T'HH:mm:ss'TZD', the same format as the `from` parameter.","format":"string","example":"2023-01-01T01:00:00-08:00"},"recordings":{"type":"array","description":"Information about the recordings.","items":{"type":"object","properties":{"recording_id":{"type":"string","description":"The recording's unique ID.","example":"ghyetrjj_sdfsdgfkdjfl111"},"queue_id":{"maxLength":36,"type":"string","description":"The task queue's identifier. **Deprecated** - use the `cc_queue_id` field to reference the Contact Center queue.","example":"Ql3qxUWXSHes4PmcOmzyOg","deprecated":true},"cc_queue_id":{"maxLength":36,"type":"string","description":"The Contact Center queue identifier.","example":"a4lCNeq2SzKbgkcDVbjCZQ"},"queue_name":{"maxLength":150,"type":"string","description":"The Contact Center queue name.","example":"Voice - Customer Support"},"recording_duration":{"type":"integer","description":"The recording's duration in seconds.","example":150},"download_url":{"type":"string","description":"The URL to download the recording. For security purposes, you **must** provide an OAuth access token in the Authorization header to download the recording file using this URL. **Example**\n\n```curl --request GET \\\n  --url {download_url} \\\n  --header 'authorization: Bearer {access_token} \\\n  --header 'content-type: application/json'\n```","example":"https://api.zoom.us/v2/contact_center/recording/download/01bdb222-9984-4f41-8141-2f760cb398aa?type=voice"},"transcript_url":{"type":"string","description":"The URL to download the recording transcript. For security purposes, you **must** provide an OAuth access token in the authorization header to download the recording transcript file using this URL. **Example**\n```curl --request GET \n  --url {transcript_url} \n  --header 'authorization: Bearer {access_token}' \n  --header 'content-type: application/json'\n```","example":"https://api.zoom.us/v2/contact_center/recording/transcripts/download/4Q0ILNMfTA2nJolNxhg0Rw?type=voice"},"playback_url":{"type":"string","description":"The URL to play the recording. For security purposes, you **must** provide an OAuth access token in the authorization header to play the recording file using this URL. **Example**\n```curl --request GET \n  --url {playback_url} \n  --header 'authorization: Bearer {access_token}' \n  --header 'content-type: application/json'\n```","example":"https://api.zoom.us/v2/contact_center/recording/playback/4Q0ILNMfTA2nJolNxhg0Rw?type=voice"},"recording_start_time":{"type":"string","description":"The date and time of the recording's start time in ISO 8601 format, either yyyy-MM-dd'T'HH:mm:ss'Z' or yyyy-MM-dd'T'HH:mm:ss'TZD'.","format":"date-time","example":"2023-01-01T08:00:00Z"},"recording_end_time":{"type":"string","description":"The date and time of the recording's end time in ISO 8601 format, either yyyy-MM-dd'T'HH:mm:ss'Z' or yyyy-MM-dd'T'HH:mm:ss'TZD'.","format":"date-time","example":"2023-01-01T09:00:00Z"},"user_id":{"maxLength":36,"type":"string","description":"The Meetings user identifier.","example":"IGTRVt3gQ2i-WjoUIjeZxw"},"display_name":{"type":"string","description":"The user's display name.","example":"Jane Doe"},"user_email":{"type":"string","description":"The user's email address.","format":"email","example":"jchill@example.com"},"recording_type":{"type":"string","description":"The recording's type.\n\n* `on_demand` - Manually trigger recording. \n* `automatic` - Automatically trigger recording.","example":"automatic","enum":["on_demand","automatic"]},"channel_type":{"type":"string","description":"The recording's channel type.\n\n* `voice` - Voice recording. \n* `video` - Video recording.","example":"voice","deprecated":true,"enum":["voice","video"]},"channel":{"type":"string","description":"The recording's channel type.\n\n* `voice` - Voice recording. \n* `video` - Video recording.","example":"voice","enum":["voice","video"]},"direction":{"type":"string","description":"The recording's call direction.\n\n* `inbound` - Call in. \n* `outbound` - Call out.","example":"outbound","enum":["inbound","outbound"]},"owner_id":{"type":"string","description":"The recording's owner ID, such as the queue ID or user ID.","example":"auiketrjj_2342353fsewkdjfl"},"owner_name":{"type":"string","description":"The recording's owner name, such as queue name or user name.","example":"voice"},"owner_type":{"type":"string","description":"The recording's owner type.\n\n* `user` - This recording belongs to an user. \n* `queue` - This recording belongs to a queue.","example":"queue","enum":["user","queue"]},"engagement_id":{"type":"string","description":"The engagement event's unique ID.","example":"3XilEfOvQEKRIWMWhX1jDg"},"flow_name":{"type":"string","description":"The recording's flow name.","example":"voice"},"flow_id":{"type":"string","description":"The recording's flow ID.","example":"fsdfsd4oippe0ffewcbhjk"},"consumer_name":{"type":"string","description":"**Deprecated** Use `consumer_name` in `consumers` object instead.\n\nThe consumer's name.","example":"Jane","deprecated":true},"consumer_number":{"type":"string","description":"**Deprecated** Use `consumer_name` in `consumers` object instead.\n\nThe consumer's phone number.","example":"+12058945728","deprecated":true},"consumers":{"type":"array","description":"Information about the recording consumers.","items":{"type":"object","properties":{"consumer_name":{"type":"string","description":"The customer's name.","example":"Steve Rogers"},"consumer_number":{"type":"string","description":"The customer's phone number.","example":"+13128945709"}},"description":"Information about the recording consumer."}},"exemption":{"type":"boolean","description":"Whether the recording is exempted from data retention.","example":true},"reason_details":{"maxLength":120,"type":"string","description":"The recording's data retention exemption reason details.","example":"Compliance review."},"segment_type":{"type":"string","description":"Whether the recording is an inbound recording or a conference recording.","example":"conference","enum":["inbound","conference"]},"team_id":{"type":"string","description":"The team's ID.","example":"edlbknHGRjq35Y5WYxb7_A"},"team_name":{"type":"string","description":"The team's name.","example":"Jane Doe's team"},"conference_participant":{"type":"array","description":"Information about the recording conference participants.","items":{"type":"object","properties":{"user_id":{"type":"string","description":"The participant's Contact Center user ID.","example":"HljBAYkdSzqk_eXkXyEV7g"},"user_name":{"type":"string","description":"The participant's username.","example":"Jill Chill"},"queue_id":{"type":"string","description":"The participant's Contact Center queue ID.","example":"y5yK894sT4ixNaO__FO_Jg"},"queue_name":{"maxLength":150,"type":"string","description":"The Contact Center queue name.","example":"Voice - Customer Support"},"team_id":{"type":"string","description":"The participant's team ID.","example":"edlbknHGRjq35Y5WYxb7_A"},"team_name":{"type":"string","description":"The participant's team name.","example":"Jill Chill's team"},"contact_id":{"type":"string","description":"The participant's contact ID.","example":"edlbknHGRjq35Y5WYxb7_A"},"contact_name":{"type":"string","description":"The participant's contact name.","example":"Jill Chill"},"contact_number":{"type":"string","description":"The participant's contact number.","example":"+12058945728"},"participant_type":{"type":"string","description":"The participant's type.","example":"agent","enum":["agent","customer","supervisor","outbound"]}},"description":"Information about the recording conference participants."}}},"description":"Information about the recording."}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `300` <br>\n Invalid user ID. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1001` <br>\n User does not exist: $userId <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_recording:read","contact_center_recording:read:admin","contact_center:read:list_recordings:admin","contact_center:read:list_recordings"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_recording:read","contact_center_recording:read:admin"],"x-granular-scopes":["contact_center:read:list_recordings:admin","contact_center:read:list_recordings"]}},"delete":{"tags":["Users"],"summary":"Delete a user's recordings","description":"Delete **all** of a user's Contact Center recordings.  \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_recording:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:delete:recording:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"deleteUserRecordings","parameters":[{"name":"userId","in":"path","description":"The user identifier. This can be the Meetings user ID `user_id`, the Contact Center user ID `cc_user_id`, an email address, or [the 'me' value](/docs/api/using-zoom-apis/#the-me-keyword) to refer to the user associated with the access token.","required":true,"schema":{"type":"string","example":"Rz06l1-PS0iSvSAVt1y-mw"}},{"name":"delete_all_recordings","in":"query","description":"Whether to delete all of this user's recordings.\n\n* `true` - Delete all of this user's recordings.","required":false,"schema":{"type":"boolean","example":true,"deprecated":true,"default":true}}],"responses":{"204":{"description":"**HTTP Status Code:** `204`   \n \nSuccessfully deleted the user's Contact Center recordings."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `300` <br>\n Invalid user ID. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `2804` <br>\n User recordings do not exist: $userId. <br>\n**Error Code:** `1001` <br>\n User does not exist: $userId. <br>\n"},"409":{"description":"**HTTP Status Code:** `409` <br>\n Conflict  \n\n **Error Code:** `2820` <br>\n You cannot delete this recording because it is exempt from retention policy due to legal hold. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_recording:write:admin","contact_center:delete:recording:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_recording:write:admin"],"x-granular-scopes":["contact_center:delete:recording:admin"]}}},"/contact_center/users/{userId}/skills":{"get":{"tags":["Users"],"summary":"List a user's skills","description":"Get a list of skills assigned to a given user. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_skill:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:list_user_skills:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"ListAUserSkills","parameters":[{"name":"userId","in":"path","description":"The user identifier. This can be the Meetings user ID `user_id`, the Contact Center user ID `cc_user_id`, an email address, or [the 'me' value](/docs/api/using-zoom-apis/#the-me-keyword) to refer to the user associated with the access token.","required":true,"schema":{"type":"string","example":"IGTRVt3gQ2i-WjoUIjeZxw"}},{"name":"skill_category_id","in":"query","description":"The skill category's ID.","required":false,"schema":{"type":"string","example":"Mu_IEZZHQZGMY9avK74kwA"}},{"name":"skill_type","in":"query","description":"The skill category's type.","required":false,"schema":{"type":"string","description":"The skill category's type.\n\n* 'text' - A text-based skill, such as a geographic location. Skills in this category do not have assigned skill levels. \n* 'proficiency' - A proficiency-based skill, such as a second language. Skills in this type of category have assigned proficiency levels.","example":"text","enum":["text","proficiency"]}},{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of records returned in a single API call.","required":false,"schema":{"maximum":300,"type":"integer","format":"int32","example":30,"default":30}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \nUser's assigned skills returned.","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"maxLength":100,"type":"string","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":300,"type":"integer","description":"The number of records returned in a single API call.","example":30,"default":30},"total_records":{"minimum":0,"type":"integer","description":"The total number of all records available across pages.","example":10},"skills":{"maxItems":300,"type":"array","description":"Information about the user's skills","items":{"type":"object","properties":{"skill_id":{"type":"string","description":"The skill's ID.","example":"s51M536ZjSgi8o_rzmgQBrA"},"skill_name":{"type":"string","description":"The skill's name.","example":"assign-skill6b6c864b-474a-4843-afed-81bd26b03952"},"skill_type":{"type":"string","description":"The skill's type.","example":"proficiency"},"max_proficiency_level":{"type":"integer","description":"The maximum proficiency level in a skill.","example":5},"user_proficiency_level":{"type":"integer","description":"A user's proficiency level in a skill.","example":3},"skill_category_id":{"type":"string","description":"The skill category's ID.","example":"s51M536ZjSgi8o_rzmgQBrA"},"skill_category_name":{"type":"string","description":"The skill category's name.","example":"Language"}}}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `300` <br>\n Invalid field. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1001` <br>\n User does not exist: {userId}. <br>\n**Error Code:** `1001` <br>\n User does not exist. <br>\n**Error Code:** `1501` <br>\n Skill category does not exist: {categoryId}. <br>\n**Error Code:** `1501` <br>\n Skill category does not exist. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rest/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_skill:read:admin","contact_center:read:list_user_skills:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_skill:read:admin"],"x-granular-scopes":["contact_center:read:list_user_skills:admin"]}},"post":{"tags":["Users"],"summary":"Assign a user's skills","description":"Assign [skills](https://support.zoom.us/hc/en-us/articles/4423986613261) to a user. Skills are user traits that ensure that a given agent is the best person to handle a given customer interaction. Proficiency ratings indicate the user's level of expertise or knowledge of that skill.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_skill:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:write:user_skill:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"assignSkills","parameters":[{"name":"userId","in":"path","description":"The user identifier. This can be the Meetings user ID `user_id`, the Contact Center user ID `cc_user_id`, an email address, or [the 'me' value](/docs/api/using-zoom-apis/#the-me-keyword) referring to the user associated with the access token.","required":true,"schema":{"type":"string","example":"IGTRVt3gQ2i-WjoUIjeZxw"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"skills":{"maxItems":20,"minItems":1,"type":"array","description":"Information about the skills.","items":{"type":"object","properties":{"skill_id":{"type":"string","description":"The skill ID.","example":"1"},"max_proficiency_level":{"type":"integer","description":"The skill's assigned proficiency level.","example":5}}}}}}}}},"responses":{"201":{"description":"**HTTP Status Code:** `201`   \n \nSkills are assigned to the Contact Center user."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `1405` <br>\n Skill assignment already exists: {skill_id}. <br>\n**Error Code:** `300` <br>\n Invalid user ID. <br>\n**Error Code:** `1407` <br>\n Invalid proficiency level for skill assignment: {skill_id}. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1401` <br>\n Skills do not exist: {skill_ids}. <br>\n**Error Code:** `1001` <br>\n User does not exist: {userId}. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rest/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_skill:write:admin","contact_center:write:user_skill:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_skill:write:admin"],"x-granular-scopes":["contact_center:write:user_skill:admin"]}}},"/contact_center/users/{userId}/skills/{skillId}":{"delete":{"tags":["Users"],"summary":"Unassign a user's skill","description":"Remove a skill from a Contact Center user.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_skill:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:delete:user_skill:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"deleteASkill","parameters":[{"name":"userId","in":"path","description":"The user identifier. This can be the Meetings user ID `user_id`, the Contact Center user ID `cc_user_id`, an email address, or [the 'me' value](/docs/api/using-zoom-apis/#the-me-keyword) to refer to the user associated with the access token.","required":true,"schema":{"type":"string","example":"IGTRVt3gQ2i-WjoUIjeZxw"}},{"name":"skillId","in":"path","description":"The skill's ID.","required":true,"schema":{"type":"string","example":"saaHWgVMGQU69soco456oNA"}},{"name":"user_identifier_type","in":"query","description":"How the `userId` path parameter is interpreted. `id` treats it as a system-generated unique identifier. `email` treats it as the user email.\nWhen using `email`, the user email must be URL-encoded per RFC 3986.","required":false,"schema":{"type":"string","example":"id","default":"id","enum":["id","email"]}},{"name":"skill_identifier_type","in":"query","description":"How the `skillId` path parameter is interpreted. `id` treats it as a system-generated unique identifier. `name` treats it as the resource name.\nWhen using `name`, the resource name must be URL-encoded per RFC 3986.","required":false,"schema":{"type":"string","example":"id","default":"id","enum":["id","name"]}}],"responses":{"204":{"description":"**HTTP Status Code:** `204 `  \n \nThe skill was removed from the user."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `300` <br>\n Invalid user ID. <br>\n**Error Code:** `1408` <br>\n More than one matching skill found. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1404` <br>\n Skill assignment not found: {skillId}. <br>\n**Error Code:** `1001` <br>\n User does not exist: {userId}. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rest/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_skill:write:admin","contact_center:delete:user_skill:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_skill:write:admin"],"x-granular-scopes":["contact_center:delete:user_skill:admin"]}}},"/contact_center/users/{userId}/status":{"patch":{"tags":["Users"],"summary":"Update a user's status","description":"Update a user's status.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_user:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:update:user:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"Updateauser'sstatus","parameters":[{"name":"userId","in":"path","description":"The user identifier. This can be the Meetings user ID `user_id`, the Contact Center user ID `cc_user_id`, an email address, or [the 'me' value](/docs/api/using-zoom-apis/#the-me-keyword) to refer to the user associated with the access token.","required":true,"schema":{"type":"string","example":"IGTRVt3gQ2i-WjoUIjeZxw"}},{"name":"user_identifier_type","in":"query","description":"How the `userId` path parameter is interpreted. `id` treats it as a system-generated unique identifier. `email` treats it as the user email.\nWhen using `email`, the user email must be URL-encoded per RFC 3986.","required":false,"schema":{"type":"string","example":"id","default":"id","enum":["id","email"]}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"status_id":{"type":"string","description":"The user's status ID.","example":"2"},"sub_status_id":{"type":"string","description":"The user's reason ID when the user status is `Not Ready`.","example":"21"}}}}}},"responses":{"204":{"description":"HTTP Status Code: 204 Contact Center user status updated."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `300` <br>\n The status must be \"Not Ready\" when updating sub status. <br>\n**Error Code:** `300` <br>\n The status does not allow updating to: {status_name}. <br>\n**Error Code:** `300` <br>\n {status_name} is disabled. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1001` <br>\n User does not exist: {userId}. <br>\n**Error Code:** `1101` <br>\n Status does not exist: {status_id}. <br>\n**Error Code:** `1102` <br>\n Sub status does not exist: {sub_status_id}. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_user:write:admin","contact_center:update:user:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_user:write:admin"],"x-granular-scopes":["contact_center:update:user:admin"]}}},"/contact_center/variable_logs":{"get":{"tags":["Variables"],"summary":"List variable logs","description":"Return a list of variable logs.\n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_variable_log:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:list_variable_logs:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `HEAVY`","operationId":"listVariableLogs","parameters":[{"name":"from","in":"query","description":"The start time and date in `yyyy-MM-dd`, `yyyy-MM-dd'T'HH:mm:ss'Z'`, or `yyyy-MM-dd'T'HH:mm:ss±HH:mm` format. The defined date range should be a month, as the response only includes one month's worth of data. If no start date is specified, return data from the past 24 hours.\n\n**Note** When using `yyyy-MM-dd'T'HH:mm:ss'Z'` format, the `'Z'` is treated as a **literal character**, not as a UTC indicator.","required":false,"schema":{"type":"string","example":"2021-12-10"}},{"name":"to","in":"query","description":"**Required** only when the `from` parameter is specified. The end time and date in `yyyy-MM-dd`, `yyyy-MM-dd'T'HH:mm:ss'Z'`, or `yyyy-MM-dd'T'HH:mm:ss±HH:mm` format, matching the format of the `from` parameter.","required":false,"schema":{"type":"string","example":"2021-12-10"}},{"name":"timezone","in":"query","description":"The timezone identifier.","required":false,"schema":{"type":"string","example":"America/Los_Angeles","default":"UTC"}},{"name":"group_type","in":"query","description":"The variable group's type.","required":false,"schema":{"type":"string","example":"system","enum":["system","custom"]}},{"name":"data_type","in":"query","description":"The variable data's type.","required":false,"schema":{"type":"string","example":"boolean","enum":["boolean","currency","date","email","number","percent","phone","string","time","url","json","array"]}},{"name":"engagement_id","in":"query","description":"The engagement's ID.","required":false,"schema":{"type":"string","example":"3XilEfOvQEKRIWMWhX1jDg"}},{"name":"flow_id","in":"query","description":"The flow's ID.","required":false,"schema":{"type":"string","example":"zeYjXoDOS_eV1QmTpj63PQ"}},{"name":"widget_name","in":"query","description":"The widget's name.","required":false,"schema":{"type":"string","example":"HttpCall1"}},{"name":"variable_name","in":"query","description":"The variable's name.","required":false,"schema":{"type":"string","example":"body"}},{"name":"variable_value","in":"query","description":"The variable's value.","required":false,"schema":{"type":"string","example":"demo"}},{"name":"sort_order","in":"query","description":"The order that records are returned based on the variable event time.","required":false,"schema":{"type":"string","example":"desc","default":"desc","enum":["desc","asc"]}},{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of records returned within a single API call.","required":false,"schema":{"maximum":100,"type":"integer","format":"int32","example":10,"default":10}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \nVariable logs returned.","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"maxLength":100,"type":"string","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":100,"minimum":1,"type":"integer","description":"The number of records returned within a single API call.","example":10,"default":10},"total_records":{"minimum":0,"type":"integer","description":"The total number of all records available across pages.","example":10},"highest_watermark":{"type":"string","description":"The latest time among the returned records.","format":"date-time","example":"2021-12-10T08:15:00Z"},"from":{"type":"string","description":"The start time and date in ISO 8601 format, either `yyyy-MM-dd'T'HH:mm:ss'Z'` or `yyyy-MM-dd'T'HH:mm:ss'TZD'`. The defined date range should be a month, as the response only includes one month's worth of data. If no start date is specified, return data from the past 24 hours.","format":"date-time","example":"2021-12-10T08:00:00Z"},"to":{"type":"string","description":"**Required** only when the `from` parameter is specified. The end time and date in ISO 8601 format, either `yyyy-MM-dd'T'HH:mm:ss'Z'` or `yyyy-MM-dd'T'HH:mm:ss'TZD'`, the same format as the `from` parameter.","format":"date-time","example":"2021-12-10T08:15:00Z"},"variable_logs":{"type":"array","description":"Information about the variable logs.","items":{"type":"object","properties":{"variable_log_id":{"type":"string","description":"The variable log's ID","example":"ebe83be-3579-4dc9-8e6e-67dd65a010fe"},"engagement_id":{"type":"string","description":"The engagement's ID","example":"3XilEfOvQEKRIWMWhX1jDg"},"flow_id":{"type":"string","description":"The flow's ID.","example":"zeYjXoDOS_eV1QmTpj63PQ"},"flow_name":{"type":"string","description":"The flow's name.","example":"Demo"},"widget_name":{"type":"string","description":"The widget's name.","example":"HttpCall1"},"variable_name":{"type":"string","description":"The variable's name.","example":"body"},"variable_value":{"type":"string","description":"The variable's value.","example":"demo"},"group_type":{"type":"string","description":"The variable group's type.","example":"system","enum":["system","custom"]},"data_type":{"type":"string","description":"The variable data's type.","example":"boolean","enum":["boolean","currency","date","email","number","percent","phone","string","time","url","json","array"]},"created_at":{"type":"string","description":"Creation time in `yyyy-MM-dd'T'HH:mm:ss±HH:mm` format, using the timezone derived from the input `from` parameter.","format":"date-time","example":"2023-01-01T08:00:00-08:00"}}}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `300` <br>\n The time and date must be in `yyyy-mm-dd` or ISO 8601 format, either `yyyy-MM-dd'T'HH:mm:ss'Z'` or `yyyy-MM-dd'T'HH:mm:ss'TZD'`. <br>\n**Error Code:** `300` <br>\n The requested report exceeds the 1-month limit. <br>\n**Error Code:** `300` <br>\n Timezone does not exist: {timezone}. <br>\n**Error Code:** `300` <br>\n Invalid field. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n**Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `2901` <br>\n Engagement does not exist: {engagement_id}. <br>\n**Error Code:** `3201` <br>\n Flow does not exist: {flow_id}. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_variable_log:read:admin","contact_center:read:list_variable_logs:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_variable_log:read:admin"],"x-granular-scopes":["contact_center:read:list_variable_logs:admin"]}}},"/contact_center/variable_logs/{variableLogId}":{"get":{"tags":["Variables"],"summary":"Get a variable log","description":"Get information about a variable log.\n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_variable_log:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:variable_log:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"getVariableLog","parameters":[{"name":"variableLogId","in":"path","description":"The variable log's ID.","required":true,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \nVariable log returned.","content":{"application/json":{"schema":{"type":"object","properties":{"variable_log_id":{"type":"string","description":"The variable log's ID","example":"ebe83be-3579-4dc9-8e6e-67dd65a010fe"},"engagement_id":{"type":"string","description":"The engagement's ID","example":"3XilEfOvQEKRIWMWhX1jDg"},"flow_id":{"type":"string","description":"The flow's ID.","example":"zeYjXoDOS_eV1QmTpj63PQ"},"flow_name":{"type":"string","description":"The flow's name.","example":"Demo"},"widget_name":{"type":"string","description":"The widget's name.","example":"HttpCall1"},"variable_name":{"type":"string","description":"The variable's name.","example":"body"},"variable_value":{"type":"string","description":"The variable's value.","example":"demo"},"group_type":{"type":"string","description":"The variable group's type. The type can be either system or custom.","example":"system","enum":["system","custom"]},"data_type":{"type":"string","description":"The variable data's type. May be `null` if the stored type cannot be mapped.","nullable":true,"example":"boolean","enum":["boolean","currency","date","email","number","percent","phone","string","url"]},"created_at":{"type":"string","description":"Creation time in `yyyy-MM-dd'T'HH:mm:ss+00:00` format (UTC).","format":"date-time","example":"2023-01-01T08:00:00Z"}}}}}},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `3301` <br>\n Variable log does not exist: $variableLogId <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_variable_log:read:admin","contact_center:read:variable_log:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_variable_log:read:admin"],"x-granular-scopes":["contact_center:read:variable_log:admin"]}},"delete":{"tags":["Variables"],"summary":"Delete a variable log","description":"Delete a variable log. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_variable_log:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:delete:variable_log:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"deleteVariableLog","parameters":[{"name":"variableLogId","in":"path","description":"The variable log's ID.","required":true,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}}],"responses":{"204":{"description":"**HTTP Status Code:** `204`   \n \nVariable log deleted."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `3301` <br>\n Variable log does not exist: $variableLogId <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_variable_log:write:admin","contact_center:delete:variable_log:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":["VecVariablesLogDelete:Edit"],"x-macro-scopes":["contact_center_variable_log:write:admin"],"x-granular-scopes":["contact_center:delete:variable_log:admin"]}}},"/contact_center/variables":{"get":{"tags":["Variables"],"summary":"List variables","description":"Returns a list of variables for a specific variable group. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_variable:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:list_variables:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"variables","parameters":[{"name":"variable_group_id","in":"query","description":"The variable's group ID.","required":true,"schema":{"type":"string","example":"35216bdf-e1d5-4a78-bf58-03cef264a643"}},{"name":"data_type","in":"query","description":"The data's type. \n* `string` \n* `number` \n* `boolean` \n* `date_time` \n* `currency` \n* `percentage` \n* `email` \n* `url` \n* `phone` - ([E.164 format](https://en.wikipedia.org/wiki/E.164))","required":false,"schema":{"type":"string","example":"boolean","enum":["string","number","boolean","date_time","currency","percentage","email","url","phone","json","array"]}},{"name":"variable_type","in":"query","description":"The variable's type. \n* `global_variable` \n* `address_book_variable`","required":false,"schema":{"type":"string","example":"global_variable","enum":["global_variable","address_book_variable"]}},{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token returns whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of items returned per page.","required":false,"schema":{"maximum":300,"type":"integer","format":"int32","example":30,"default":30}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \nVariables list returned","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"type":"string","description":"Use the next page token to paginate through large result sets. A next page token returns when the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":300,"type":"integer","description":"The number of records returned in a single API call.","example":30,"default":30},"total_records":{"type":"integer","description":"The total number of all the records available across pages.","example":1},"variables":{"type":"array","description":"Information about the variables.","items":{"type":"object","properties":{"variable_id":{"type":"string","description":"The variable's unique ID.","example":"W_VATTk_Q5aW6z5rZtBxAQ"},"variable_group_id":{"type":"string","description":"The variable group's ID.","example":"afececcd-0c9f-48de-9d19-0c84e8bdfeca"},"variable_name":{"type":"string","description":"The variable's name.","example":"variable demo name"},"default_value":{"type":"string","description":"The variable's default value.","example":"test_value"},"variable_type":{"type":"string","description":"The variable's type. \n* `global_variable` \n* `address_book_variable`","example":"address_book_variable","enum":["global_variable","address_book_variable"]},"data_type":{"type":"string","description":"The data's type. \n* `string` \n* `number` \n* `boolean` \n* `date_time` \n* `currency` \n* `percentage` \n* `email` \n* `url` \n* `phone`","example":"string","enum":["string","number","boolean","date_time","currency","percentage","email","url","phone","json","array"]},"variable_description":{"type":"string","description":"The variable's description.","example":"This is a variable description"},"mask_variable_data":{"type":"boolean","description":"Mask variable data, for sensitive information.","example":true,"default":false},"values":{"type":"array","description":"The variable's values.","items":{"type":"string","example":"test_value"}},"value_category":{"type":"string","description":"The variable value's category. Returned only if `variable_type:global_variable` \n* `undefined` - Each engagement starts without a pre-set value. \n* `default_value` - Each engagement starts with the default value. \n* `linked_value` - The value links across flows, and each engagement uses the latest value.","example":"default_value"},"used_in_address_book_count":{"type":"integer","description":"The number of times the address book used the variable.","example":3}},"description":"Information about the variable."}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_variable:read:admin","contact_center:read:list_variables:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_variable:read:admin"],"x-granular-scopes":["contact_center:read:list_variables:admin"]}},"post":{"tags":["Variables"],"summary":"Create a variable","description":"Create a new variable.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_variable:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:write:variable:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"createVariable","requestBody":{"content":{"application/json":{"schema":{"required":["data_type","variable_group_id","variable_name","variable_type"],"type":"object","properties":{"variable_group_id":{"type":"string","description":"The variable group's ID.","example":"afececcd-0c9f-48de-9d19-0c84e8bdfeca"},"variable_name":{"maxLength":30,"type":"string","description":"The variable's name.","example":"variable demo name"},"variable_description":{"maxLength":200,"type":"string","description":"The variable's description.","example":"This is a variable description."},"variable_type":{"type":"string","description":"The variable's type. \n* `global_variable` \n* `address_book_variable`","example":"address_book_variable","enum":["global_variable","address_book_variable"]},"address_book_ids":{"maxItems":20,"type":"array","description":"The address book IDs. Only valid when `variable_type` is `address_book_variable`, and cannot be empty.","items":{"type":"string","example":"X2e_jsLNRkCjI0sQg2kRQQ"}},"use_in_reporting":{"type":"boolean","description":"Whether to use in reporting. Only valid when `variable_type` is `global_variable`.","example":false,"default":false},"mask_variable_data":{"type":"boolean","description":"Mask variable data, for sensitive information. Only valid when `variable_type` is `global_variable` and the value of data_type is not `boolean`, `date_time`, or `percentage`.","example":false,"default":false},"use_as_routing_profile_parameters":{"type":"boolean","description":"Whether to use in the routing profile. Only valid when `variable_type` is `address_book_variable` and `data_type` is not `json` or `array`.\n* `true` - Values are used as routing profile parameters.\n* `false` - Not used as a value for routing configuration file parameters.","example":false,"default":false},"data_type":{"type":"string","description":"The data's type. `variable_type:address_book_variable` only applies to data types with `*`. \n* `string` `*` \n* `number` \n* `boolean` `*` \n* `date_time` -(unix timestamp)\n* `currency` \n* `percentage` \n* `email` \n* `url` \n* `phone` - ([E.164 format](https://en.wikipedia.org/wiki/E.164))","example":"number","enum":["string","number","boolean","date_time","currency","percentage","email","url","phone","json","array"]},"value_category":{"type":"string","description":" \n The variable value's category. Only valid when `variable_type` is `global_variable`.\n* `undefined` - Each engagement starts without a pre-set value. \n* `default_value` - Each engagement starts with the default value. \n* `linked_value` - The value links across flows, and each engagement uses the latest value.","example":"default_value"},"values":{"maximum":20,"maxItems":20,"type":"array","description":"The variable's values. Take only the first value in the array when `variable_type` is `global_variable`. \n* If `variable_type` is `global_variable`, each value's max length is 4096. \n* If `variable_type` is `address_book_variable`, each value's maximum length is 300.","items":{"maxLength":4096,"type":"string","example":"test-value"}},"linked_value_lock":{"type":"boolean","description":"The variable linked value's lock. Only valid when `value_category` is `linked_value`. \n* `true` - The variable can't be updated in a flow. It is the same for each engagement. \n* `false` - The variable value can be updated in a flow. Each engagement uses the latest value.","example":false,"default":false},"default_value":{"maxLength":512,"type":"string","description":"The variable's default value. Only used when `variable_type` is `address_book_variable` and `data_type` is `string`.","example":"test-value"},"use_in_external_url_parameters":{"type":"boolean","description":"Lets you use the parameter value in defining external URLs launched for each engagement. Only valid if `data_type` is not `json` or `array`.\n\n* global\n\n* address book","example":true},"client_show_in_client_profile_section":{"type":"boolean","description":"Whether this variable will be shown in the Zoom client's Profile section. Only valid if `data_type` is not `json` or `array`.\n\n* global","example":true},"client_show_in_client_engagement_section":{"type":"boolean","description":"Whether this variable will be shown in the Zoom client's Engagement section. Only valid if `data_type` is not `json` or `array`.\n\n* global","example":true},"client_show_in_inbound_call_notifications":{"type":"boolean","description":"Whether this variable will be shown as an inbound call notification on the Zoom client. Only valid if `data_type` is not `json` or `array`.\n\n* global\n\n* address book","example":true}},"description":"Information about the variable."}}}},"responses":{"201":{"description":"**HTTP Status Code:** `201`   \n \nVariable created.","content":{"application/json":{"schema":{"type":"object","properties":{"variable_id":{"type":"string","description":"The variable's unique ID.","example":"W_VATTk_Q5aW6z5rZtBxAQ"},"variable_group_id":{"type":"string","description":"The variable group's ID.","example":"afececcd-0c9f-48de-9d19-0c84e8bdfeca"},"variable_name":{"type":"string","description":"The variable's name.","example":"variable demo name"},"variable_description":{"type":"string","description":"The variable's description.","example":"This is a variable description"},"variable_type":{"type":"string","description":"The variable's type. \n* `global_variable` \n* `address_book_variable`","example":"global_variable","enum":["global_variable","address_book_variable"]},"address_books":{"maxItems":20,"type":"array","description":"The address book list. This field is only returned when `variable_type` is `address_book_variable`.","items":{"type":"object","properties":{"address_book_id":{"type":"string","description":"The address book's ID.","example":"X2e_jsLNRkCjI0sQg2kRQQ"},"address_book_name":{"type":"string","description":"The address book's name.","example":"Jill's address book"},"unit_id":{"type":"string","description":"The address book's unit ID.","example":"zeYjXoDOS_eV1QmTpj63PQ"},"unit_name":{"type":"string","description":"The address book unit's name.","example":"Address Book Unit"},"total_contacts":{"type":"integer","description":"The address book's total number of contacts.","example":3}}}},"use_in_reporting":{"type":"boolean","description":"Whether to use in reporting.","example":false,"default":false},"mask_variable_data":{"type":"boolean","description":"Mask variable data, for sensitive information.","example":true,"default":false},"use_as_routing_profile_parameters":{"type":"boolean","description":"Whether to use in the routing profile. \n* `true` - Values used as routing profile parameters.\n* `false` - Not used as a value for routing configuration file parameters.","example":false,"default":false},"data_type":{"type":"string","description":"The data's type. \n* `string` \n* `number` \n* `boolean` \n* `date_time` \n* `currency` \n* `percentage` \n* `email` \n* `url` \n* `phone`","example":"number","enum":["string","number","boolean","date_time","currency","percentage","email","url","phone","json","array"]},"value_category":{"type":"string","description":"The variable value's category. Returned only if `variable_type` is `global_variable`. \n* `undefined` - Each engagement starts without a pre-set value. \n* `default_value` - Each engagement starts with the default value. \n* `linked_value` - The value links across flows, and each engagement uses the latest value.","example":"default_value"},"values":{"maxItems":20,"type":"array","description":"The variable's values.","items":{"type":"string","example":"X2e_jsLNRkCjI0sQg2kRQQ"}},"linked_value_lock":{"type":"boolean","description":"The variable linked value's lock. \n* `true` - The variable can't be updated in a flow. It is the same for each engagement. \n* `false` - the variable value can be updated in a flow. Each engagement will use the latest value.","example":false,"default":false},"default_value":{"type":"string","description":"The variable's default value.","example":"test-value"},"use_in_external_url_parameters":{"type":"boolean","description":"Lets you use the parameter value in defining external URLs launched for each engagement. \r\n\r\n* global\r\n* address book","example":true},"client_show_in_client_profile_section":{"type":"boolean","description":"Whether this variable will be shown in the Zoom client's Profile section.\r\n* global","example":true},"client_show_in_client_engagement_section":{"type":"boolean","description":"Whether this variable will be shown in the Zoom client's Engagement section.\r\n* global","example":true},"client_show_in_inbound_call_notifications":{"type":"boolean","description":"Whether this variable will be shown as an inbound call notification on the Zoom client.\r\n* global\r\n* address book","example":true}},"description":"Information about the variable."}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `3402` <br>\n The `address_book_ids` field cannot be empty. <br>\n**Error Code:** `3403` <br>\n The variable already exists in the current custom group: `$variable_name`. <br>\n**Error Code:** `3404` <br>\n The `values` do not match `data_type`. <br>\n**Error Code:** `3405` <br>\n Invalid date format. <br>\n**Error Code:** `3406` <br>\n This `data_type`: $data_type is not supported when `variable_type` is $variable_type. <br>\n**Error Code:** `3407` <br>\n The `values`**` field cannot be empty. <br>\n**Error Code:** `3420` <br>\n The `values` field maximum length is over limit. <br>\n**Error Code:** `2006` <br>\n Address books does not exist <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `3409` <br>\n Variable group does not exist: $group_id. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_variable:write:admin","contact_center:write:variable:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_variable:write:admin"],"x-granular-scopes":["contact_center:write:variable:admin"]}}},"/contact_center/variables/groups":{"get":{"tags":["Variables"],"summary":"List variable groups","description":"Return a list of variable groups.\n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_variable:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:list_variable_groups:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"listVariableGroups","parameters":[{"name":"variable_group_type","in":"query","description":"The variable group's type.","required":false,"schema":{"type":"string","example":"system","enum":["system","custom"]}},{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of items returned per page.","required":false,"schema":{"type":"integer","example":30}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \nVariable groups returned.","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"maxLength":100,"type":"string","description":"Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":100,"minimum":1,"type":"integer","description":"The number of records returned within a single API call.","example":10,"default":10},"total_records":{"minimum":0,"type":"integer","description":"The total number of all the records available across pages.","example":10},"variable_groups":{"type":"array","description":"Information about the variable groups.","items":{"type":"object","properties":{"variable_group_id":{"type":"string","description":"The variable group's ID.","example":"71ec9348-27db-4fe6-81b9-5b8637ca299b"},"variable_group_name":{"type":"string","description":"The variable group's name.","example":"Agent"},"variable_group_description":{"type":"string","description":"The variable group's description.","example":"Agent's first custom group."},"variable_group_type":{"type":"string","description":"The variable group's type. The type can be either system or custom.","example":"system","enum":["system","custom"]},"variable_group_variables_count":{"type":"integer","description":"The number of the variables in the group.","example":1}}}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_variable:read:admin","contact_center:read:list_variable_groups:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_variable:read:admin"],"x-granular-scopes":["contact_center:read:list_variable_groups:admin"]}},"post":{"tags":["Variables"],"summary":"Create a variable group","description":"Create a custom variable group. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_variable:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:write:variable_group:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"createVariableGroup","requestBody":{"content":{"application/json":{"schema":{"required":["variable_group_name"],"type":"object","properties":{"variable_group_name":{"type":"string","description":"The variable group's name.","example":"us.group"},"variable_group_description":{"type":"string","description":"The variable group's description.","example":"The first custom group."},"variable_group_type":{"type":"string","description":"The variable group's type. The type can only be custom.","example":"custom","default":"custom","enum":["custom"]}}}}}},"responses":{"201":{"description":"success","content":{"application/json":{"schema":{"type":"object","properties":{"variable_group_id":{"type":"string","description":"The variable group's ID.","example":"71ec9348-27db-4fe6-81b9-5b8637ca299b"},"variable_group_name":{"type":"string","description":"The variable group's name.","example":"us.group"},"variable_group_description":{"type":"string","description":"The variable group's description.","example":"The first custom group."},"variable_group_type":{"type":"string","description":"The variable group's type. The type can only be custom.","example":"custom","default":"custom","enum":["custom"]},"variable_group_variables_count":{"type":"integer","description":"The number of variables in the created group.","example":0,"default":0}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `3415` <br>\n The number of variable groups has reached the maximum. <br>\n**Error Code:** `3416` <br>\n The variable group already exists. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_variable:write:admin","contact_center:write:variable_group:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_variable:write:admin"],"x-granular-scopes":["contact_center:write:variable_group:admin"]}}},"/contact_center/variables/groups/{variableGroupId}":{"get":{"tags":["Variables"],"summary":"Get a variable group","description":"Get information about a variable group. \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_variable:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:variable_group:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"getAVariableGroup","parameters":[{"name":"variableGroupId","in":"path","description":"The variable group's ID.","required":true,"schema":{"type":"string","example":"71ec9348-27db-4fe6-81b9-5b8637ca299b"}},{"name":"variable_identifier_type","in":"query","description":"How the path parameter is interpreted. `id` treats it as a system-generated unique identifier. `name` treats it as the resource name.\nWhen using `name`, the resource name must be URL-encoded per RFC 3986.","required":false,"schema":{"type":"string","example":"id","default":"id","enum":["id","name"]}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \nVariable group returned.","content":{"application/json":{"schema":{"type":"object","properties":{"variable_group_id":{"type":"string","description":"The variable group's ID.","example":"71ec9348-27db-4fe6-81b9-5b8637ca299b"},"variable_group_name":{"type":"string","description":"The variable group's name.","example":"Agent"},"variable_group_description":{"type":"string","description":"The variable group's description.","example":"Agent's first custom group."},"variable_group_type":{"type":"string","description":"The variable group's type. The type can be either system or custom.","example":"system","enum":["system","custom"]},"variable_group_variables_count":{"type":"integer","description":"The number of the variables in the group.","example":1}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `3409` <br>\n Variable group does not exist. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_variable:read:admin","contact_center:read:variable_group:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_variable:read:admin"],"x-granular-scopes":["contact_center:read:variable_group:admin"]}},"delete":{"tags":["Variables"],"summary":"Delete a variable group","description":"Delete a specified variable group. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_variable:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:delete:variable_group:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"DeleteGroup","parameters":[{"name":"variableGroupId","in":"path","description":"The variable group's ID.","required":true,"schema":{"type":"string","example":"71ec9348-27db-4fe6-81b9-5b8637ca299b"}}],"responses":{"204":{"description":"**HTTP Status Code:** `204`   \n \nVariable group deleted."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `300` <br>\n Invalid variable group type. Only Custom group can be deleted or updated. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `3409` <br>\n Variable group does not exist. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_variable:write:admin","contact_center:delete:variable_group:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_variable:write:admin"],"x-granular-scopes":["contact_center:delete:variable_group:admin"]}},"patch":{"tags":["Variables"],"summary":"Update a variable group","description":"Update a variable group. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_variable:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:update:variable_group:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"updateVariableGroup","parameters":[{"name":"variableGroupId","in":"path","description":"The variable group's ID.","required":true,"schema":{"type":"string","example":"71ec9348-27db-4fe6-81b9-5b8637ca299b"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"variable_group_name":{"type":"string","description":"The variable group's name.","example":"us.group.dev"},"variable_group_description":{"type":"string","description":"The variable group's description.","example":"Update this group."}}}}}},"responses":{"204":{"description":"**HTTP Status Code:** `204`   \n \nVariable group updated."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `300` <br>\n Invalid variable group type. Only custom group can be deleted or updated. <br>\n**Error Code:** `3416` <br>\n Global variable already exists. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `3409` <br>\n Variable group does not exist. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_variable:write:admin","contact_center:update:variable_group:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_variable:write:admin"],"x-granular-scopes":["contact_center:update:variable_group:admin"]}}},"/contact_center/variables/{variableId}":{"get":{"tags":["Variables"],"summary":"Get a variable","description":"Retrieve a variable. \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_variable:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:read:variable:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"variableGet","parameters":[{"name":"variableId","in":"path","description":"The variable's ID.","required":true,"schema":{"type":"string","example":"a0afcf93-4ff6-4e22-8217-69b7a5862b6f"}},{"name":"variable_identifier_type","in":"query","description":"How the path parameter is interpreted. `id` treats it as a system-generated unique identifier. `name` treats it as the resource name.\nWhen using `name`, the resource name must be URL-encoded per RFC 3986.","required":false,"schema":{"type":"string","example":"id","default":"id","enum":["id","name"]}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \nVariable returned.","content":{"application/json":{"schema":{"type":"object","properties":{"variable_id":{"type":"string","description":"The variable's unique ID.","example":"W_VATTk_Q5aW6z5rZtBxAQ"},"variable_group_id":{"type":"string","description":"The variable group's ID.","example":"afececcd-0c9f-48de-9d19-0c84e8bdfeca"},"variable_name":{"type":"string","description":"The variable's name.","example":"variable demo name"},"variable_description":{"type":"string","description":"The variable's description.","example":"This is a variable description"},"variable_type":{"type":"string","description":"The variable's type.","example":"global_variable","enum":["global_variable","address_book_variable"]},"address_books":{"maxItems":20,"type":"array","description":"The address book list. This field is only returned when `variable_type:address_book_variable`.","items":{"type":"object","properties":{"address_book_id":{"type":"string","description":"The address book's ID.","example":"X2e_jsLNRkCjI0sQg2kRQQ"},"address_book_name":{"type":"string","description":"The address book's name.","example":"Jill's address book"},"unit_id":{"type":"string","description":"The address book's unit ID.","example":"zeYjXoDOS_eV1QmTpj63PQ"},"unit_name":{"type":"string","description":"The address book unit's name.","example":"Address Book Unit"},"total_contacts":{"type":"integer","description":"The address book's total number of contacts.","example":3}}}},"use_in_reporting":{"type":"boolean","description":"Whether to use in reporting.","example":false,"default":false},"mask_variable_data":{"type":"boolean","description":"Mask variable data, for sensitive information.","example":true,"default":false},"use_as_routing_profile_parameters":{"type":"boolean","description":"Whether to use in routing profile. \n* `true` - Values used as routing profile parameters.\n* `false` - Not used as a value for routing configuration file parameters.","example":false,"default":false},"data_type":{"type":"string","description":"The data's type.","example":"number","enum":["string","number","boolean","date_time","currency","percentage","email","url","phone","json","array"]},"value_category":{"type":"string","description":"The variable value's category. Returned only if `variable_type:global_variable`. \n* `undefined` - Each engagement starts without a pre-set value. \n* `default_value` - Each engagement starts with the default value. \n* `linked_value` - The value links across flows, and each engagement uses the latest value.","example":"default_value"},"values":{"maxItems":20,"type":"array","description":"The variable's values.","items":{"type":"string","example":"X2e_jsLNRkCjI0sQg2kRQQ"}},"linked_value_lock":{"type":"boolean","description":"The variable linked value's lock. \n* `true` - The variable cannot be updated in a flow. it will be the same for each engagement. \n* `false` - the variable value can be updated in a flow. each engagement will use the latest value.","example":false,"default":false},"default_value":{"type":"string","description":"The variable's default value.","example":"test-value"},"use_in_external_url_parameters":{"type":"boolean","description":"Lets you use the parameter value in defining external URLs launched for each engagement. Variable types: global, address book","example":true},"client_show_in_client_profile_section":{"type":"boolean","description":"Whether this variable will be shown in the Zoom client's Profile section. Variable types: global","example":true},"client_show_in_client_engagement_section":{"type":"boolean","description":"Whether this variable will be shown in the Zoom client's Engagement section. Variable types: global","example":true},"client_show_in_inbound_call_notifications":{"type":"boolean","description":"Whether this variable will be shown as an inbound call notification on the Zoom client. Variable types: global, address book","example":true}},"description":"Information about the variable."}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `124` <br>\n Access token has expired. <br>\n**Error Code:** `1002` <br>\n The user associated with this access token was not found or is invalid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1021` <br>\n User account is deactivated. <br>\n**Error Code:** `1022` <br>\n User does not have a Contact Center license. <br>\n**Error Code:** `9001` <br>\n The Contact Center user associated with this bearer token is missing privileges on their role required to operate this request. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `3401` <br>\n Variable does not exist: $variableId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n **Error Code:** `4001` <br>\n You have reached the maximum per-second rate limit for this API. Try again later. <br>\n"}},"security":[{"openapi_oauth":["contact_center_variable:read:admin","contact_center:read:variable:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_variable:read:admin"],"x-granular-scopes":["contact_center:read:variable:admin"]}},"delete":{"tags":["Variables"],"summary":"Delete a variable","description":"Delete a variable. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_variable:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:delete:variable:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"variableDelete","parameters":[{"name":"variableId","in":"path","description":"The variable's ID.","required":true,"schema":{"type":"string","example":"a0afcf93-4ff6-4e22-8217-69b7a5862b6f"}}],"responses":{"204":{"description":"**HTTP Status Code:** `204`   \n \nVariable deleted."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `3401` <br>\n Variable does not exist: $variableId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_variable:write:admin","contact_center:delete:variable:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_variable:write:admin"],"x-granular-scopes":["contact_center:delete:variable:admin"]}},"patch":{"tags":["Variables"],"summary":"Update a variable","description":"Update a variable. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center_variable:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_center:update:variable:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"variableUpdate","parameters":[{"name":"variableId","in":"path","description":"The variable's ID.","required":true,"schema":{"type":"string","example":"a0afcf93-4ff6-4e22-8217-69b7a5862b6f"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"variable_name":{"maxLength":30,"type":"string","description":"The variable's name.","example":"variable demo name"},"variable_description":{"maxLength":200,"type":"string","description":"The variable's description.","example":"This is a variable description"},"address_book_ids":{"maxItems":20,"type":"array","description":"The address book IDs. Only valid when `variable_type:address_book_variable`.","items":{"type":"string","example":"X2e_jsLNRkCjI0sQg2kRQQ"}},"use_in_reporting":{"type":"boolean","description":"Whether to use in reporting. Only valid when `variable_type:global_variable`.","example":false,"default":false},"mask_variable_data":{"type":"boolean","description":"Mask variable data (for sensitive information). Only valid when `variable_type:global_variable` and the value of data_type is not `boolean`, `date_time`, `percentage`.","example":false,"default":false},"use_as_routing_profile_parameters":{"type":"boolean","description":"Whether to use in routing profile. Only valid when `variable_type:address_book_variable` and `data_type` are now `json` or `array`. \n* `true` - Values used as routing profile parameters.\n* `false` - Not used as a value for routing configuration file parameters.","example":false,"default":false},"data_type":{"type":"string","description":"The data's type. `variable_type:address_book_variable` only applies to data types with `*`\n* `string` `*` \n* `number` \n* `boolean` `*` \n* `date_time` -(unix timestamp)\n* `currency` \n* `percentage` \n* `email` \n* `url` \n* `phone` - ([E.164 format](https://en.wikipedia.org/wiki/E.164))","example":"number","enum":["string","number","boolean","date_time","currency","percentage","email","url","phone","json","array"]},"value_category":{"type":"string","description":"The variable value's category. Only valid when `variable_type:global_variable`. \n* `undefined` - Each engagement starts without a pre-set value. \n* `default_value` - Each engagement starts with the default value. \n* `linked_value` - The value links across flows, and each engagement uses the latest value.","example":"default_value"},"values":{"maximum":20,"maxItems":20,"type":"array","description":"The variable's values. Take only the first value in the array when `variable_type` is `global_variable`. \n* If `variable_type` is `global_variable`, each value's max length is 4096. \n* If `variable_type` is `address_book_variable`, each value's max length is 300.","items":{"maxLength":4096,"type":"string","example":"test-value-1"}},"linked_value_lock":{"type":"boolean","description":"The variable linked value's lock. Only valid when `value_category:linked_value`. \n* `true` - The variable cannot be updated in a flow. it will be the same for each engagement. \n* `false` - The variable value can be updated in a flow. each engagement will use the latest value.","example":false,"default":false},"default_value":{"maxLength":512,"type":"string","description":"The variable's default value. Only used when `variable_type:address_book_variable` and `data_type:string`.","example":"test-value-1"},"use_in_external_url_parameters":{"type":"boolean","description":"Lets you use the parameter value in defining external URLs launched for each engagement. Only valid if `data_type` is not `json` or `array`. \nVariable types: global, address book","example":true},"client_show_in_client_profile_section":{"type":"boolean","description":"Whether this variable will be shown in the Zoom client's Profile section. Only valid if `data_type` is not `json` or `array`. Variable types: global","example":true},"client_show_in_client_engagement_section":{"type":"boolean","description":"Whether this variable will be shown in the Zoom client's Engagement section. Only valid if `data_type` is not `json` or `array`. \nVariable types: global","example":true},"client_show_in_inbound_call_notifications":{"type":"boolean","description":"Whether this variable will be shown as an inbound call notification on the Zoom client. Only valid if `data_type` is not `json` or `array`. \nVariable types: global, address book","example":true}},"description":"Information about the variable."}}}},"responses":{"204":{"description":"**HTTP Status Code:** `204`   \n \nVariable updated."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `3403` <br>\n The variable already exists in the current custom group: $variable_name. <br>\n**Error Code:** `3404` <br>\n The `values` does not match `data_type`. <br>\n**Error Code:** `3405` <br>\n Invalid date format. <br>\n**Error Code:** `3406` <br>\n This `data_type`: $data_type is not supported when `variable_type` is $variable_type. <br>\n**Error Code:** `3420` <br>\n The `values` length is over limit. <br>\n**Error Code:** `2006` <br>\n Address books do not exist. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `300` <br>\n Validation failed <br>\n**Error Code:** `3401` <br>\n Variable does not exist: $variableId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["contact_center_variable:write:admin","contact_center:update:variable:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["contact_center_variable:write:admin"],"x-granular-scopes":["contact_center:update:variable:admin"]}}}},"components":{"securitySchemes":{"openapi_authorization":{"type":"apiKey","name":"Authorization","in":"header"},"openapi_oauth":{"type":"oauth2","flows":{"authorizationCode":{"authorizationUrl":"/","tokenUrl":"","refreshUrl":"","scopes":{"contact_center_account:read:admin":"contact_center_account:read:admin","contact_center:read:account_storage_location:admin":"contact_center:read:account_storage_location:admin","contact_center_contact:write:admin":"contact_center_contact:write:admin","contact_center:write:address_book:admin":"contact_center:write:address_book:admin","contact_center_contact:read:admin":"contact_center_contact:read:admin","contact_center:read:list_address_books:admin":"contact_center:read:list_address_books:admin","contact_center:read:address_book_custom_field:admin":"contact_center:read:address_book_custom_field:admin","contact_center:write:address_book_custom_field:admin":"contact_center:write:address_book_custom_field:admin","contact_center:delete:address_book_custom_field:admin":"contact_center:delete:address_book_custom_field:admin","contact_center:update:address_book_custom_field:admin":"contact_center:update:address_book_custom_field:admin","contact_center:write:address_book_unit:admin":"contact_center:write:address_book_unit:admin","contact_center:read:list_address_book_units:admin":"contact_center:read:list_address_book_units:admin","contact_center:delete:address_book_unit:admin":"contact_center:delete:address_book_unit:admin","contact_center:read:address_book_unit:admin":"contact_center:read:address_book_unit:admin","contact_center:update:address_book_unit:admin":"contact_center:update:address_book_unit:admin","contact_center:read:address_book:admin":"contact_center:read:address_book:admin","contact_center:update:address_book:admin":"contact_center:update:address_book:admin","contact_center:delete:address_book:admin":"contact_center:delete:address_book:admin","contact_center:read:list_address_book_contacts:admin":"contact_center:read:list_address_book_contacts:admin","contact_center:write:address_book_contact:admin":"contact_center:write:address_book_contact:admin","contact_center:delete:address_book_contact:admin":"contact_center:delete:address_book_contact:admin","contact_center:update:address_book_contact:admin":"contact_center:update:address_book_contact:admin","contact_center:read:address_book_contact:admin":"contact_center:read:address_book_contact:admin","contact_center_preference:write:admin":"contact_center_preference:write:admin","contact_center:write:system_status:admin":"contact_center:write:system_status:admin","contact_center_preference:read:admin":"contact_center_preference:read:admin","contact_center:read:list_system_statues:admin":"contact_center:read:list_system_statues:admin","contact_center:update:system_status:admin":"contact_center:update:system_status:admin","contact_center:read:system_status:admin":"contact_center:read:system_status:admin","contact_center:delete:system_status:admin":"contact_center:delete:system_status:admin","contact_center_asset_library:write:admin":"contact_center_asset_library:write:admin","contact_center:write:asset_library:admin":"contact_center:write:asset_library:admin","contact_center_asset_library:read:admin":"contact_center_asset_library:read:admin","contact_center:read:asset_library:admin":"contact_center:read:asset_library:admin","contact_center:update:asset_library:admin":"contact_center:update:asset_library:admin","contact_center:delete:asset_library:admin":"contact_center:delete:asset_library:admin","contact_center_block_list_rules:write:admin":"contact_center_block_list_rules:write:admin","contact_center:write:block_list_rules:admin":"contact_center:write:block_list_rules:admin","contact_center:delete:block_list_rules:admin":"contact_center:delete:block_list_rules:admin","contact_center_block_list_rules:read:admin":"contact_center_block_list_rules:read:admin","contact_center:read:block_list_rules:admin":"contact_center:read:block_list_rules:admin","contact_center_engagement:write:admin":"contact_center_engagement:write:admin","contact_center:update:engagement_recording_control:admin":"contact_center:update:engagement_recording_control:admin","contact_center_user:write:admin":"contact_center_user:write:admin","contact_center:write:user_control:admin":"contact_center:write:user_control:admin","contact_center_user:read:admin":"contact_center_user:read:admin","contact_center:read:user_device:admin":"contact_center:read:user_device:admin","contact_center_outbound_campaign:read:admin":"contact_center_outbound_campaign:read:admin","contact_center:read:outbound_campaign:admin":"contact_center:read:outbound_campaign:admin","contact_center_outbound_campaign:write:admin":"contact_center_outbound_campaign:write:admin","contact_center:write:outbound_campaign:admin":"contact_center:write:outbound_campaign:admin","contact_center_outbound_campaign:delete:admin":"contact_center_outbound_campaign:delete:admin","contact_center:delete:outbound_campaign:admin":"contact_center:delete:outbound_campaign:admin","contact_center_outbound_campaign:update:admin":"contact_center_outbound_campaign:update:admin","contact_center:update:outbound_campaign:admin":"contact_center:update:outbound_campaign:admin","contact_center_outbound_campaign_contactlist:write:admin":"contact_center_outbound_campaign_contactlist:write:admin","contact_center:write:outbound_campaign_contactlist:admin":"contact_center:write:outbound_campaign_contactlist:admin","contact_center_outbound_campaign_contactlist:read:admin":"contact_center_outbound_campaign_contactlist:read:admin","contact_center:read:outbound_campaign_contactlist:admin":"contact_center:read:outbound_campaign_contactlist:admin","contact_center:delete:outbound_campaign_contactlist:admin":"contact_center:delete:outbound_campaign_contactlist:admin","contact_center:update:outbound_campaign_contactlist:admin":"contact_center:update:outbound_campaign_contactlist:admin","contact_center_outbound_campaign_contacts:write:admin":"contact_center_outbound_campaign_contacts:write:admin","contact_center:update:outbound_campaign_contacts:admin":"contact_center:update:outbound_campaign_contacts:admin","contact_center_outbound_campaign_contacts:read:admin":"contact_center_outbound_campaign_contacts:read:admin","contact_center:read:outbound_campaign_contacts:admin":"contact_center:read:outbound_campaign_contacts:admin","contact_center:write:outbound_campaign_contacts:admin":"contact_center:write:outbound_campaign_contacts:admin","contact_center:delete:outbound_campaign_contacts:admin":"contact_center:delete:outbound_campaign_contacts:admin","contact_center_outbound_campaign_dnc_list_phones:read:admin":"contact_center_outbound_campaign_dnc_list_phones:read:admin","contact_center:read:outbound_campaign_dnc_list_phones:admin":"contact_center:read:outbound_campaign_dnc_list_phones:admin","contact_center_outbound_campaign_dnc_list_phones:write:admin":"contact_center_outbound_campaign_dnc_list_phones:write:admin","contact_center:delete:outbound_campaign_dnc_list_phones:admin":"contact_center:delete:outbound_campaign_dnc_list_phones:admin","contact_center:write:outbound_campaign_dnc_list_phones:admin":"contact_center:write:outbound_campaign_dnc_list_phones:admin","contact_center_disposition:write:admin":"contact_center_disposition:write:admin","contact_center:write:disposition:admin":"contact_center:write:disposition:admin","contact_center_disposition:read:admin":"contact_center_disposition:read:admin","contact_center:read:list_dispositions:admin":"contact_center:read:list_dispositions:admin","contact_center:write:disposition_set:admin":"contact_center:write:disposition_set:admin","contact_center:read:list_disposition_sets:admin":"contact_center:read:list_disposition_sets:admin","contact_center:update:disposition_set:admin":"contact_center:update:disposition_set:admin","contact_center:delete:disposition_set:admin":"contact_center:delete:disposition_set:admin","contact_center:read:disposition_set:admin":"contact_center:read:disposition_set:admin","contact_center:read:disposition:admin":"contact_center:read:disposition:admin","contact_center:delete:disposition:admin":"contact_center:delete:disposition:admin","contact_center:update:disposition:admin":"contact_center:update:disposition:admin","contact_center:write:engagement:admin":"contact_center:write:engagement:admin","contact_center_report:read:admin":"contact_center_report:read:admin","contact_center:read:list_engagements:admin":"contact_center:read:list_engagements:admin","contact_center:update:engagement:admin":"contact_center:update:engagement:admin","contact_center:read:engagement:admin":"contact_center:read:engagement:admin","contact_center_attachment:read:admin":"contact_center_attachment:read:admin","contact_center:read:attachment:admin":"contact_center:read:attachment:admin","contact_center_engagement:read:admin":"contact_center_engagement:read:admin","contact_center:read:engagement_recording_status:admin":"contact_center:read:engagement_recording_status:admin","contact_center_flow:read:admin":"contact_center_flow:read:admin","contact_center:read:flow:admin":"contact_center:read:flow:admin","contact_center_queue:read:admin":"contact_center_queue:read:admin","contact_center:read:list_queues:admin":"contact_center:read:list_queues:admin","contact_center:read:list_users:admin":"contact_center:read:list_users:admin","contact_center_flow:write:admin":"contact_center_flow:write:admin","contact_center:write:flow:admin":"contact_center:write:flow:admin","contact_center:read:list_flows:admin":"contact_center:read:list_flows:admin","contact_center:delete:flow:admin":"contact_center:delete:flow:admin","contact_center:update:flow:admin":"contact_center:update:flow:admin","contact_center_follow_up_task:read:admin":"contact_center_follow_up_task:read:admin","contact_center:read:list_follow_up_tasks:admin":"contact_center:read:list_follow_up_tasks:admin","contact_center:read:follow_up_task:admin":"contact_center:read:follow_up_task:admin","contact_center_follow_up_task:write":"contact_center_follow_up_task:write","contact_center:update:follow_up_task":"contact_center:update:follow_up_task","contact_center_inbox:write:admin":"contact_center_inbox:write:admin","contact_center:delete:inbox:admin":"contact_center:delete:inbox:admin","contact_center_inbox:read:admin":"contact_center_inbox:read:admin","contact_center:read:list_inboxes:admin":"contact_center:read:list_inboxes:admin","contact_center:write:inbox:admin":"contact_center:write:inbox:admin","contact_center:delete:inbox_messages:admin":"contact_center:delete:inbox_messages:admin","contact_center:read:inbox_messages:admin":"contact_center:read:inbox_messages:admin","contact_center:read:inbox:admin":"contact_center:read:inbox:admin","contact_center:update:inbox:admin":"contact_center:update:inbox:admin","contact_center:delete:inbox_message:admin":"contact_center:delete:inbox_message:admin","contact_center:read:list_inbox_queues:admin":"contact_center:read:list_inbox_queues:admin","contact_center_queue:write:admin":"contact_center_queue:write:admin","contact_center:delete:inbox_queue:admin":"contact_center:delete:inbox_queue:admin","contact_center:write:inbox_queue:admin":"contact_center:write:inbox_queue:admin","contact_center:write:inbox_user:admin":"contact_center:write:inbox_user:admin","contact_center:read:inbox_user:admin":"contact_center:read:inbox_user:admin","contact_center:delete:inbox_user:admin":"contact_center:delete:inbox_user:admin","contact_center_messaging:read:admin":"contact_center_messaging:read:admin","contact_center:read:engagement_log:admin":"contact_center:read:engagement_log:admin","contact_center:read:messaging:admin":"contact_center:read:messaging:admin","contact_center_sms:read:admin":"contact_center_sms:read:admin","contact_center:read:sms_log:admin":"contact_center:read:sms_log:admin","contact_center_voice_call:read:admin":"contact_center_voice_call:read:admin","contact_center:read:voice_call_log:admin":"contact_center:read:voice_call_log:admin","contact_center_messaging:write:admin":"contact_center_messaging:write:admin","contact_center:write:messaging:admin":"contact_center:write:messaging:admin","contact_center_note:read:admin":"contact_center_note:read:admin","contact_center:read:list_notes:admin":"contact_center:read:list_notes:admin","contact_center_note:write":"contact_center_note:write","contact_center:update:note":"contact_center:update:note","contact_center:read:note:admin":"contact_center:read:note:admin","contact_center_operating_hours:read:admin":"contact_center_operating_hours:read:admin","contact_center:read:list_business_hours:admin":"contact_center:read:list_business_hours:admin","contact_center_operating_hours:write:admin":"contact_center_operating_hours:write:admin","contact_center:write:business_hour:admin":"contact_center:write:business_hour:admin","contact_center:read:business_hour:admin":"contact_center:read:business_hour:admin","contact_center:update:business_hour:admin":"contact_center:update:business_hour:admin","contact_center:delete:business_hour:admin":"contact_center:delete:business_hour:admin","contact_center:read:business_hours_flow:admin":"contact_center:read:business_hours_flow:admin","contact_center:read:business_hours_queue:admin":"contact_center:read:business_hours_queue:admin","contact_center:read:list_closure_hours:admin":"contact_center:read:list_closure_hours:admin","contact_center:write:closure_hour:admin":"contact_center:write:closure_hour:admin","contact_center:update:closure_hour:admin":"contact_center:update:closure_hour:admin","contact_center:read:closure_hour:admin":"contact_center:read:closure_hour:admin","contact_center:delete:closure_hour:admin":"contact_center:delete:closure_hour:admin","contact_center:read:clousre_hour_flow:admin":"contact_center:read:clousre_hour_flow:admin","contact_center:read:closure_hour_queue:admin":"contact_center:read:closure_hour_queue:admin","contact_center:delete:queue:admin":"contact_center:delete:queue:admin","contact_center:read:queue:admin":"contact_center:read:queue:admin","contact_center:write:queue:admin":"contact_center:write:queue:admin","contact_center:update:queue:admin":"contact_center:update:queue:admin","contact_center:write:queue_agent:admin":"contact_center:write:queue_agent:admin","contact_center:read:list_queue_agents:admin":"contact_center:read:list_queue_agents:admin","contact_center:delete:queue_agent:admin":"contact_center:delete:queue_agent:admin","contact_center:update:queue_agent:admin":"contact_center:update:queue_agent:admin","contact_center:write:queue disposition:admin":"contact_center:write:queue disposition:admin","contact_center:write:queue_disposition_set:admin":"contact_center:write:queue_disposition_set:admin","contact_center:delete:queue_disposition_set:admin":"contact_center:delete:queue_disposition_set:admin","contact_center:delete:queue_disposition:admin":"contact_center:delete:queue_disposition:admin","contact_center:read:queue_operating_hours:admin":"contact_center:read:queue_operating_hours:admin","contact_center:patch:queue_operating_hours:admin":"contact_center:patch:queue_operating_hours:admin","contact_center_recording:write:admin":"contact_center_recording:write:admin","contact_center:delete:recording:admin":"contact_center:delete:recording:admin","contact_center_recording:read:admin":"contact_center_recording:read:admin","contact_center_recording:read":"contact_center_recording:read","contact_center:read:list_recordings:admin":"contact_center:read:list_recordings:admin","contact_center:read:list_recordings":"contact_center:read:list_recordings","contact_center:delete:queue_supervisor:admin":"contact_center:delete:queue_supervisor:admin","contact_center:delete:queue_team:admin":"contact_center:delete:queue_team:admin","contact_center:write:queue_team:admin":"contact_center:write:queue_team:admin","contact_center_rtms:write:admin":"contact_center_rtms:write:admin","contact_center:update:engagement_rtms_app_status":"contact_center:update:engagement_rtms_app_status","contact_center:update:engagement_rtms_app_status:admin":"contact_center:update:engagement_rtms_app_status:admin","contact_center_region:write:admin":"contact_center_region:write:admin","contact_center:write:region:admin":"contact_center:write:region:admin","contact_center_region:read:admin":"contact_center_region:read:admin","contact_center:read:list_regions:admin":"contact_center:read:list_regions:admin","contact_center:udpate:region:admin":"contact_center:udpate:region:admin","contact_center:read:region:admin":"contact_center:read:region:admin","contact_center:delete:region:admin":"contact_center:delete:region:admin","contact_center:read:list_region_users:admin":"contact_center:read:list_region_users:admin","contact_center:write:region_user:admin":"contact_center:write:region_user:admin","contact_center:read:agent_report:admin":"contact_center:read:agent_report:admin","contact_center:read:agent_status_report:admin":"contact_center:read:agent_status_report:admin","contact_center:read:engagement_report:admin":"contact_center:read:engagement_report:admin","contact_center:read:queue_report:admin":"contact_center:read:queue_report:admin","contact_center:read:dataset_agent_performance:admin":"contact_center:read:dataset_agent_performance:admin","contact_center:read:dataset_agent_timecard:admin":"contact_center:read:dataset_agent_timecard:admin","contact_center:read:custom_report:admin":"contact_center:read:custom_report:admin","contact_center:read:dataset_disposition:admin":"contact_center:read:dataset_disposition:admin","contact_center:read:dataset_engagement:admin":"contact_center:read:dataset_engagement:admin","contact_center:read:engagement_timeline:admin":"contact_center:read:engagement_timeline:admin","contact_center:read:dataset_expert_assist:admin":"contact_center:read:dataset_expert_assist:admin","contact_center:read:dataset_flow_performance:admin":"contact_center:read:dataset_flow_performance:admin","contact_center:read:dataset_outbound_dialer_performance:admin":"contact_center:read:dataset_outbound_dialer_performance:admin","contact_center:read:dataset_queue_performance:admin":"contact_center:read:dataset_queue_performance:admin","contact_center:read:call_journey_log:admin":"contact_center:read:call_journey_log:admin","contact_center_operation_logs:read:admin":"contact_center_operation_logs:read:admin","contact_center:read:operation_logs:admin":"contact_center:read:operation_logs:admin","contact_center_role:write:admin":"contact_center_role:write:admin","contact_center:write:role:admin":"contact_center:write:role:admin","contact_center_role:read:admin":"contact_center_role:read:admin","contact_center:read:list_roles:admin":"contact_center:read:list_roles:admin","contact_center:read:role:admin":"contact_center:read:role:admin","contact_center:update:role:admin":"contact_center:update:role:admin","contact_center:delete:role:admin":"contact_center:delete:role:admin","contact_center:write:role_user:admin":"contact_center:write:role_user:admin","contact_center:read:list_role_users:admin":"contact_center:read:list_role_users:admin","contact_center:delete:role_user:admin":"contact_center:delete:role_user:admin","contact_center_routing_profile:write:admin":"contact_center_routing_profile:write:admin","contact_center:write:agent_routing_profile:admin":"contact_center:write:agent_routing_profile:admin","contact_center_routing_profile:read:admin":"contact_center_routing_profile:read:admin","contact_center:read:agent_routing_profile:admin":"contact_center:read:agent_routing_profile:admin","contact_center:update:agent_routing_profile:admin":"contact_center:update:agent_routing_profile:admin","contact_center:delete:agent_routing_profile:admin":"contact_center:delete:agent_routing_profile:admin","contact_center:read:consumer_routing_profile:admin":"contact_center:read:consumer_routing_profile:admin","contact_center:write:consumer_routing_profile:admin":"contact_center:write:consumer_routing_profile:admin","contact_center:update:consumer_routing_profile:admin":"contact_center:update:consumer_routing_profile:admin","contact_center:delete:consumer_routing_profile:admin":"contact_center:delete:consumer_routing_profile:admin","contact_center_sms:write:admin":"contact_center_sms:write:admin","contact_center:write:sms:admin":"contact_center:write:sms:admin","contact_center_skill:read:admin":"contact_center_skill:read:admin","contact_center:read:list_skills:admin":"contact_center:read:list_skills:admin","contact_center_skill:write:admin":"contact_center_skill:write:admin","contact_center:write:skill:admin":"contact_center:write:skill:admin","contact_center:write:skill_category:admin":"contact_center:write:skill_category:admin","contact_center:read:list_skill_categories:admin":"contact_center:read:list_skill_categories:admin","contact_center:update:skill_category:admin":"contact_center:update:skill_category:admin","contact_center:delete:skill_category:admin":"contact_center:delete:skill_category:admin","contact_center:read:skill_category:admin":"contact_center:read:skill_category:admin","contact_center:update:skill:admin":"contact_center:update:skill:admin","contact_center:delete:skill:admin":"contact_center:delete:skill:admin","contact_center:read:skill:admin":"contact_center:read:skill:admin","contact_center:read:list_skill_users:admin":"contact_center:read:list_skill_users:admin","contact_center_team:write:admin":"contact_center_team:write:admin","contact_center:write:team:admin":"contact_center:write:team:admin","contact_center_team:read:admin":"contact_center_team:read:admin","contact_center:read:team:admin":"contact_center:read:team:admin","contact_center:update:team:admin":"contact_center:update:team:admin","contact_center:delete:team:admin":"contact_center:delete:team:admin","contact_center:update:batch_users:admin":"contact_center:update:batch_users:admin","contact_center:write:user:admin":"contact_center:write:user:admin","contact_center:delete:batch_users:admin":"contact_center:delete:batch_users:admin","contact_center:write:batch_users:admin":"contact_center:write:batch_users:admin","contact_center_user_template:write:admin":"contact_center_user_template:write:admin","contact_center:write:user_templates:admin":"contact_center:write:user_templates:admin","contact_center:read:user_templates:admin":"contact_center:read:user_templates:admin","contact_center_user_template:read:admin":"contact_center_user_template:read:admin","contact_center:delete:user_templates:admin":"contact_center:delete:user_templates:admin","contact_center:update:user_templates:admin":"contact_center:update:user_templates:admin","contact_center:read:user:admin":"contact_center:read:user:admin","contact_center:delete:user:admin":"contact_center:delete:user:admin","contact_center:update:user:admin":"contact_center:update:user:admin","contact_center:read:list_user_queues:admin":"contact_center:read:list_user_queues:admin","contact_center:write:user_skill:admin":"contact_center:write:user_skill:admin","contact_center:read:list_user_skills:admin":"contact_center:read:list_user_skills:admin","contact_center:delete:user_skill:admin":"contact_center:delete:user_skill:admin","contact_center_variable_log:read:admin":"contact_center_variable_log:read:admin","contact_center:read:list_variable_logs:admin":"contact_center:read:list_variable_logs:admin","contact_center:read:variable_log:admin":"contact_center:read:variable_log:admin","contact_center_variable_log:write:admin":"contact_center_variable_log:write:admin","contact_center:delete:variable_log:admin":"contact_center:delete:variable_log:admin","contact_center_variable:write:admin":"contact_center_variable:write:admin","contact_center:write:variable:admin":"contact_center:write:variable:admin","contact_center_variable:read:admin":"contact_center_variable:read:admin","contact_center:read:list_variables:admin":"contact_center:read:list_variables:admin","contact_center:read:list_variable_groups:admin":"contact_center:read:list_variable_groups:admin","contact_center:write:variable_group:admin":"contact_center:write:variable_group:admin","contact_center:delete:variable_group:admin":"contact_center:delete:variable_group:admin","contact_center:read:variable_group:admin":"contact_center:read:variable_group:admin","contact_center:update:variable_group:admin":"contact_center:update:variable_group:admin","contact_center:delete:variable:admin":"contact_center:delete:variable:admin","contact_center:update:variable:admin":"contact_center:update:variable:admin","contact_center:read:variable:admin":"contact_center:read:variable:admin"}}}}}}}