{"openapi":"3.0.3","info":{"title":"Voiso API","description":"The Voiso APIs follow a conventional REST architecture and are compatible with any programming language.\n\nUse these APIs to securely access data and manage contact center features, settings, and entities.\n","version":"4.0.0","contact":{"name":"Support","email":"support@voiso.com"}},"servers":[{"url":"https://{defaultHost}","variables":{"defaultHost":{"default":"{cluster_id}.voiso.com"}}}],"tags":[{"name":"Voice"},{"name":"Routing"},{"name":"Users"},{"name":"Numbers"},{"name":"Tasks"},{"name":"Messaging"},{"name":"Reporting"},{"name":"Billing"},{"name":"Campaigns"},{"name":"Contact Center"}],"security":[{"StaticKey":[]}],"paths":{"/api/v4/voice/calls":{"post":{"operationId":"startCall","tags":["Voice"],"summary":"Start call","description":"Initiate calls for agents from external systems.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"caller_id":{"description":"The phone number or identifier shown as the caller ID.","type":"string","format":"phone","example":"18885658889"},"phone_number":{"description":"The phone number to be dialed.","type":"string","format":"phone","example":"18885658889"},"user_id":{"description":"Agent ID in the contact center.","type":"string","format":"uuid","example":"0b97ce11-b6e0-49b4-8f92-68040aa324bf"},"source":{"description":"Information about the external system that provided the contact number, such as a CRM.","type":"object","properties":{"account_id":{"description":"An identifier assigned to the contact in an external application, such as a CRM.","type":"string","example":"123321"},"name":{"description":"The name of an external application, such as a CRM, where contact information is managed.","type":"string","example":"zoho"}}}},"required":["phone_number","user_id"]}}}},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"type":"object","properties":{"call":{"type":"object","properties":{"id":{"description":"ID assigned to the initiated call.","type":"string","format":"uuid","example":"0b97ce11-b6e0-49b4-8f92-68040aa324bf"}}}}}}}},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"422":{"$ref":"#/components/responses/422"},"429":{"$ref":"#/components/responses/429"}}}},"/api/v4/voice/calls/{call_id}/hangup":{"post":{"operationId":"stopCall","tags":["Voice"],"summary":"Stop call","description":"End calls for agents from external systems.","parameters":[{"name":"call_id","in":"path","description":"ID of the call.","required":true,"schema":{"type":"string","format":"uuid","example":"0b97ce11-b6e0-49b4-8f92-68040aa324bf"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"user_id":{"description":"Agent ID in the contact center.","type":"string","format":"uuid","example":"0b97ce11-b6e0-49b4-8f92-68040aa324bf"}},"required":["user_id"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"call":{"type":"object","properties":{"id":{"description":"ID assigned to the initiated call.","type":"string","format":"uuid","example":"0b97ce11-b6e0-49b4-8f92-68040aa324bf"}},"required":["id"]}},"required":["call"]}}}},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"422":{"$ref":"#/components/responses/422"}}}},"/api/v4/routing/queues":{"get":{"operationId":"getQueues","tags":["Routing"],"summary":"Get queues","description":"Returns a paginated list of all routing queues.","parameters":[{"$ref":"#/components/parameters/Limit"},{"$ref":"#/components/parameters/Offset"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"queues":{"type":"array","items":{"$ref":"#/components/schemas/Queue"}},"metadata":{"$ref":"#/components/schemas/Metadata"}}}}}},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"429":{"$ref":"#/components/responses/429"}}}},"/api/v4/routing/queues/{queue_id}":{"get":{"operationId":"getQueue","tags":["Routing"],"summary":"Get queue","description":"Returns detailed information about a specific queue.","parameters":[{"name":"queue_id","in":"path","description":"The unique identifier of the queue.","required":true,"schema":{"type":"integer","example":1}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"queue":{"$ref":"#/components/schemas/Queue"}}}}}},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"429":{"$ref":"#/components/responses/429"}}}},"/api/v4/routing/queues/{queue_id}/users":{"get":{"operationId":"getQueueUsers","tags":["Routing"],"summary":"Get users assigned to a queue","description":"Returns the list of users who are assigned to the specified queue.","parameters":[{"name":"queue_id","in":"path","description":"The unique identifier of the queue.","required":true,"schema":{"type":"integer","example":1}},{"$ref":"#/components/parameters/Limit"},{"$ref":"#/components/parameters/Offset"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"users":{"type":"array","items":{"$ref":"#/components/schemas/User"}},"metadata":{"$ref":"#/components/schemas/Metadata"}}}}}},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"429":{"$ref":"#/components/responses/429"}}}},"/api/v4/routing/queues/{queue_id}/supervisors":{"get":{"operationId":"getQueueSupervisors","tags":["Routing"],"summary":"Get supervisors for a queue","description":"Returns a list of supervisors assigned to the specified queue.","parameters":[{"name":"queue_id","in":"path","description":"The unique identifier of the queue.","required":true,"schema":{"type":"integer","example":1}},{"$ref":"#/components/parameters/Limit"},{"$ref":"#/components/parameters/Offset"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"users":{"type":"array","items":{"$ref":"#/components/schemas/User"}},"metadata":{"$ref":"#/components/schemas/Metadata"}}}}}},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"429":{"$ref":"#/components/responses/429"}}}},"/api/v4/routing/skills":{"get":{"operationId":"getSkills","tags":["Routing"],"summary":"Get list of skills","description":"Returns a paginated list of skills.","parameters":[{"$ref":"#/components/parameters/Limit"},{"$ref":"#/components/parameters/Offset"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"skills":{"type":"array","items":{"$ref":"#/components/schemas/Skill"}},"metadata":{"$ref":"#/components/schemas/Metadata"}}}}}},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"429":{"$ref":"#/components/responses/429"}}}},"/api/v4/routing/skills/{skill_id}":{"get":{"operationId":"getSkill","tags":["Routing"],"summary":"Get skill","description":"Returns detailed information about a specific skill.","parameters":[{"name":"skill_id","in":"path","description":"The unique identifier of the skill.","required":true,"schema":{"type":"integer","example":1}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"skill":{"$ref":"#/components/schemas/Skill"}}}}}},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"429":{"$ref":"#/components/responses/429"}}}},"/api/v4/users":{"get":{"operationId":"getUsers","tags":["Users"],"summary":"Get list of users","description":"Returns a paginated list of all users in the contact center.","parameters":[{"$ref":"#/components/parameters/Limit"},{"$ref":"#/components/parameters/Offset"},{"name":"name","in":"query","description":"Filter by user name.","schema":{"type":"string","example":"Jane"}},{"name":"email","in":"query","description":"Filter by user email.","schema":{"type":"string","format":"email","example":"jane.doe@companyname.com"}},{"name":"sip_account","in":"query","description":"Filter results by SIP account in the format username@domain.","schema":{"type":"string","example":"jane.doe@contactcenter.com"}},{"name":"security_access_group_id","in":"query","description":"Filter by security access group.","schema":{"type":"integer","example":3}},{"name":"extension","in":"query","description":"Filter by extension.","schema":{"type":"string","example":"102"}},{"name":"caller_id","in":"query","description":"Filter by caller ID.","schema":{"type":"string","example":"12025550123"}},{"name":"timezone","in":"query","description":"Filter by time zone name.","schema":{"type":"string","example":"America/New_York"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"users":{"type":"array","items":{"$ref":"#/components/schemas/User"}},"metadata":{"$ref":"#/components/schemas/Metadata"}}}}}},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"429":{"$ref":"#/components/responses/429"}}}},"/api/v4/users/{user_id}":{"get":{"operationId":"getUser","tags":["Users"],"summary":"Get user","description":"Returns detailed information about a specific user.","parameters":[{"name":"user_id","in":"path","description":"The unique identifier of the user.","required":true,"schema":{"type":"string","format":"uuid","example":"0b97ce11-b6e0-49b4-8f92-68040aa324bf"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"user":{"$ref":"#/components/schemas/User"}}}}}},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"429":{"$ref":"#/components/responses/429"}}}},"/api/v4/users/deleted":{"get":{"operationId":"getDeletedUsers","tags":["Users"],"summary":"Get list of deleted users","description":"Returns a paginated list of all deleted users.","parameters":[{"$ref":"#/components/parameters/Limit"},{"$ref":"#/components/parameters/Offset"},{"name":"name","in":"query","description":"Filter by user name.","schema":{"type":"string","example":"Jane"}},{"name":"email","in":"query","description":"Filter by user email.","schema":{"type":"string","format":"email","example":"jane.doe@companyname.com"}},{"name":"sip_account","in":"query","description":"Filter results by SIP account in the format username@domain.","schema":{"type":"string","example":"jane.doe@contactcenter.com"}},{"name":"security_access_group_id","in":"query","description":"Filter by security access group.","schema":{"type":"integer","example":3}},{"name":"caller_id","in":"query","description":"Filter by caller ID.","schema":{"type":"string","example":"12025550123"}},{"name":"timezone","in":"query","description":"Filter by time zone name.","schema":{"type":"string","example":"America/New_York"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"users":{"type":"array","items":{"$ref":"#/components/schemas/User"}},"metadata":{"$ref":"#/components/schemas/Metadata"}}}}}},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"429":{"$ref":"#/components/responses/429"}}}},"/api/v4/users/deleted/{user_id}":{"get":{"operationId":"getDeletedUser","tags":["Users"],"summary":"Get deleted user","description":"Returns detailed information about a specific deleted user.","parameters":[{"name":"user_id","in":"path","description":"The unique identifier of the deleted user.","required":true,"schema":{"type":"string","format":"uuid","example":"0b97ce11-b6e0-49b4-8f92-68040aa324bf"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"user":{"$ref":"#/components/schemas/User"}}}}}},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"429":{"$ref":"#/components/responses/429"}}}},"/api/v4/users/teams":{"get":{"operationId":"getTeams","tags":["Users"],"summary":"Get list of teams","description":"Returns a paginated list of all teams.","parameters":[{"$ref":"#/components/parameters/Limit"},{"$ref":"#/components/parameters/Offset"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"teams":{"type":"array","items":{"$ref":"#/components/schemas/Team"}},"metadata":{"$ref":"#/components/schemas/Metadata"}}}}}},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"429":{"$ref":"#/components/responses/429"}}}},"/api/v4/users/teams/{team_id}":{"get":{"operationId":"getTeam","tags":["Users"],"summary":"Get team","description":"Returns detailed information about a specific team.","parameters":[{"name":"team_id","in":"path","description":"The unique identifier of the team.","required":true,"schema":{"type":"integer","example":1}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"team":{"$ref":"#/components/schemas/Team"}}}}}},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"429":{"$ref":"#/components/responses/429"}}}},"/api/v4/campaigns":{"get":{"operationId":"getCampaigns","tags":["Campaigns"],"summary":"Get list of campaigns","description":"Returns a paginated list of all dialer campaigns.","parameters":[{"$ref":"#/components/parameters/Limit"},{"$ref":"#/components/parameters/Offset"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"campaigns":{"type":"array","items":{"$ref":"#/components/schemas/Campaign"}},"metadata":{"$ref":"#/components/schemas/Metadata"}}}}}},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"429":{"$ref":"#/components/responses/429"}}},"post":{"operationId":"createCampaign","tags":["Campaigns"],"summary":"Create campaign","description":"Creates a new outbound dialer campaign.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"description":"The name of the campaign. Must be unique within the contact center.","type":"string","maxLength":100,"example":"Summer Outreach Campaign"},"strategy":{"description":"Dialing strategy for the campaign. `predictive_ai` is only available if Dialer AI is enabled for the contact center.\n","type":"string","enum":["simple","predictive_ai"],"default":"simple","example":"simple"},"dial_level":{"description":"Number of simultaneous call attempts per available agent.","type":"number","format":"float","minimum":1,"maximum":6,"default":1,"example":1},"dial_level_override":{"description":"Dial level override configuration.","type":"object","properties":{"enabled":{"description":"Whether the dial level override is enabled.","type":"boolean","default":true,"example":true},"value":{"description":"Override dial level value applied when active agents drop to the threshold.","type":"number","format":"float","minimum":0,"maximum":4,"default":1.5,"example":1.5,"exclusiveMinimum":true},"active_agents_threshold":{"description":"Number of active agents at which to apply the override dial level.","type":"integer","minimum":1,"maximum":4,"default":3,"example":3,"exclusiveMinimum":true}},"required":["enabled"]},"max_dial_time":{"description":"Maximum time in seconds to spend dialing a contact before hanging up.","type":"integer","minimum":1,"maximum":600,"default":60,"example":60},"max_wait_time":{"description":"Maximum time in seconds to wait for an available agent when a contact answers.","type":"integer","minimum":0,"maximum":3600,"default":5,"example":5},"max_dial_attempts":{"description":"Maximum number of attempts to dial a contact.","type":"integer","minimum":1,"maximum":99,"default":3,"example":3},"voice_message_id":{"description":"Identifier of the voice message to play. Must reference an existing voice message in the contact center.\n","type":"integer","example":42,"nullable":true},"amd_enabled":{"description":"Whether answering machine detection is enabled for calls.","type":"boolean","default":true,"example":true},"live":{"description":"Configuration for adding leads to the campaign while it is running.","type":"object","nullable":true,"properties":{"enabled":{"description":"Whether the campaign uses live dialing mode.","type":"boolean","default":false,"example":true},"dialing_order":{"description":"The order in which new leads are dialed. Only available when live is enabled and the dialing order feature is enabled for the contact center.\n","type":"string","enum":["fifo","lifo"],"example":"fifo"}},"required":["enabled"]},"caller_id_sets":{"description":"Sets of caller IDs used for outbound calls. Maximum 20 sets.\n","type":"array","items":{"type":"object","properties":{"phone_numbers":{"description":"Phone numbers in the caller ID set.","type":"array","items":{"type":"string","format":"phone"},"example":["18885650001","18885650002"]}},"required":["phone_numbers"]},"maxItems":20,"minItems":1},"use_local_caller_id":{"description":"Whether to use only caller IDs matching the contact's country or region.","type":"boolean","default":false,"example":false},"asr_optimization_enabled":{"description":"Whether ASR (Answer Seizure Ratio) optimization is enabled.","type":"boolean","default":true,"example":true},"post_call_rating":{"description":"Post-call survey configuration.","type":"object","default":{"enabled":false},"nullable":true,"properties":{"enabled":{"description":"Whether the post-call survey is enabled for contacts.","type":"boolean","default":false,"example":true},"notification_voice_message_id":{"description":"Identifier of the voice message played as a survey notification. Must reference an existing voice message in the contact center.\n","type":"integer","example":1,"nullable":true},"instructions_voice_message_id":{"description":"Identifier of the voice message played as survey instructions (e.g., \"rate from 1 to 5\"). Must reference an existing voice message in the contact center.\n","type":"integer","example":2,"nullable":true},"complete_voice_message_id":{"description":"Identifier of the voice message played after survey completion. Must reference an existing voice message in the contact center.\n","type":"integer","example":3,"nullable":true}},"required":["enabled"]},"contact_local_time":{"description":"Time restrictions for calling contacts based on their local time. Only available if the contact local time feature is enabled for the contact center. Set to `null` to clear.\n","type":"object","nullable":true,"properties":{"start_time":{"description":"Start time for calls. Must be in HH:00 format, between 08:00 and 22:00.","type":"string","example":"08:00"},"end_time":{"description":"End time for calls. Must be in HH:00 format, between 08:00 and 22:00. Must be later than `start_time`.","type":"string","example":"22:00"},"days_of_week":{"description":"Days of the week when calls are allowed (1 = Monday, 7 = Sunday).","type":"array","items":{"type":"integer","minimum":1,"maximum":7},"example":[1,2,3,4,5,6,7]}},"required":["start_time","end_time","days_of_week"]},"follow_up_rules":{"description":"Rules for redialing contacts based on call disposition. Each disposition can have up to 20 rules.\n","type":"object","nullable":true,"properties":{"machine_answered":{"type":"array","items":{"type":"object","properties":{"wait_time":{"description":"Time to wait before redialing the contact.","type":"integer","minimum":1,"example":300},"wait_time_unit":{"description":"Unit for the wait time value.","type":"string","enum":["seconds","minutes","hours"],"example":"seconds"},"switch_caller_id_set":{"description":"Whether to switch to the next caller ID set on redial. Cannot be `true` when only one caller ID set is assigned.\n","type":"boolean","default":false,"example":false}},"required":["wait_time","wait_time_unit"]},"maxItems":20},"abandoned":{"type":"array","items":{"type":"object","properties":{"wait_time":{"description":"Time to wait before redialing the contact.","type":"integer","minimum":1,"example":300},"wait_time_unit":{"description":"Unit for the wait time value.","type":"string","enum":["seconds","minutes","hours"],"example":"seconds"},"switch_caller_id_set":{"description":"Whether to switch to the next caller ID set on redial. Cannot be `true` when only one caller ID set is assigned.\n","type":"boolean","default":false,"example":false}},"required":["wait_time","wait_time_unit"]},"maxItems":20},"no_answer":{"type":"array","items":{"type":"object","properties":{"wait_time":{"description":"Time to wait before redialing the contact.","type":"integer","minimum":1,"example":300},"wait_time_unit":{"description":"Unit for the wait time value.","type":"string","enum":["seconds","minutes","hours"],"example":"seconds"},"switch_caller_id_set":{"description":"Whether to switch to the next caller ID set on redial. Cannot be `true` when only one caller ID set is assigned.\n","type":"boolean","default":false,"example":false}},"required":["wait_time","wait_time_unit"]},"maxItems":20},"rejected":{"type":"array","items":{"type":"object","properties":{"wait_time":{"description":"Time to wait before redialing the contact.","type":"integer","minimum":1,"example":300},"wait_time_unit":{"description":"Unit for the wait time value.","type":"string","enum":["seconds","minutes","hours"],"example":"seconds"},"switch_caller_id_set":{"description":"Whether to switch to the next caller ID set on redial. Cannot be `true` when only one caller ID set is assigned.\n","type":"boolean","default":false,"example":false}},"required":["wait_time","wait_time_unit"]},"maxItems":20},"failed":{"type":"array","items":{"type":"object","properties":{"wait_time":{"description":"Time to wait before redialing the contact.","type":"integer","minimum":1,"example":300},"wait_time_unit":{"description":"Unit for the wait time value.","type":"string","enum":["seconds","minutes","hours"],"example":"seconds"},"switch_caller_id_set":{"description":"Whether to switch to the next caller ID set on redial. Cannot be `true` when only one caller ID set is assigned.\n","type":"boolean","default":false,"example":false}},"required":["wait_time","wait_time_unit"]},"maxItems":20},"busy":{"type":"array","items":{"type":"object","properties":{"wait_time":{"description":"Time to wait before redialing the contact.","type":"integer","minimum":1,"example":300},"wait_time_unit":{"description":"Unit for the wait time value.","type":"string","enum":["seconds","minutes","hours"],"example":"seconds"},"switch_caller_id_set":{"description":"Whether to switch to the next caller ID set on redial. Cannot be `true` when only one caller ID set is assigned.\n","type":"boolean","default":false,"example":false}},"required":["wait_time","wait_time_unit"]},"maxItems":20}}}},"required":["name","caller_id_sets"]}}}},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"type":"object","properties":{"campaign":{"$ref":"#/components/schemas/Campaign"}}}}}},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"422":{"$ref":"#/components/responses/422"},"429":{"$ref":"#/components/responses/429"}}}},"/api/v4/campaigns/{campaign_id}":{"get":{"operationId":"getCampaign","tags":["Campaigns"],"summary":"Get campaign","description":"Retrieve detailed information about a specific dialer campaign.","parameters":[{"name":"campaign_id","in":"path","description":"The unique identifier of the campaign.","required":true,"schema":{"type":"integer","example":1}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"campaign":{"$ref":"#/components/schemas/Campaign"}}}}}},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"429":{"$ref":"#/components/responses/429"}}},"patch":{"operationId":"patchCampaign","tags":["Campaigns"],"summary":"Partially update campaign","description":"Partially updates a campaign. Cannot update campaigns with status `stopped` or `completed`. Only provided fields are updated.\n","parameters":[{"name":"campaign_id","in":"path","description":"The unique identifier of the campaign.","required":true,"schema":{"type":"integer","example":1}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"description":"The name of the campaign. Must be unique within the contact center.","type":"string","maxLength":100,"example":"Summer Outreach Campaign"},"strategy":{"description":"Dialing strategy for the campaign. `predictive_ai` is only available if Dialer AI is enabled for the contact center.\n","type":"string","enum":["simple","predictive_ai"],"example":"simple"},"dial_level":{"description":"Number of simultaneous call attempts per available agent.","type":"number","format":"float","minimum":1,"maximum":6,"example":1},"dial_level_override":{"description":"Dial level override configuration.","type":"object","properties":{"enabled":{"description":"Whether the dial level override is enabled.","type":"boolean","example":true},"value":{"description":"Override dial level value applied when active agents drop to the threshold.","type":"number","format":"float","minimum":0,"maximum":4,"example":1.5,"exclusiveMinimum":true},"active_agents_threshold":{"description":"Number of active agents at which to apply the override dial level.","type":"integer","minimum":1,"maximum":4,"example":3,"exclusiveMinimum":true}},"required":["enabled"]},"max_dial_time":{"description":"Maximum time in seconds to spend dialing a contact before hanging up.","type":"integer","minimum":1,"maximum":600,"example":60},"max_wait_time":{"description":"Maximum time in seconds to wait for an available agent when a contact answers.","type":"integer","minimum":0,"maximum":3600,"example":5},"max_dial_attempts":{"description":"Maximum number of attempts to dial a contact.","type":"integer","minimum":1,"maximum":99,"example":3},"voice_message_id":{"description":"Identifier of the voice message to play. Must reference an existing voice message in the contact center.\n","type":"integer","example":42,"nullable":true},"amd_enabled":{"description":"Whether answering machine detection is enabled for calls.","type":"boolean","example":true},"live":{"description":"Configuration for adding leads to the campaign while it is running.","type":"object","nullable":true,"properties":{"enabled":{"description":"Whether the campaign uses live dialing mode.","type":"boolean","example":true},"dialing_order":{"description":"The order in which new leads are dialed. Only available when live is enabled and the dialing order feature is enabled for the contact center.\n","type":"string","enum":["fifo","lifo"],"example":"fifo"}},"required":["enabled"]},"caller_id_sets":{"description":"Sets of caller IDs used for outbound calls. Maximum 20 sets.\n","type":"array","items":{"type":"object","properties":{"phone_numbers":{"description":"Phone numbers in the caller ID set.","type":"array","items":{"type":"string","format":"phone"},"example":["18885650001","18885650002"]}},"required":["phone_numbers"]},"maxItems":20,"minItems":1},"use_local_caller_id":{"description":"Whether to use only caller IDs matching the contact's country or region.","type":"boolean","example":false},"asr_optimization_enabled":{"description":"Whether ASR (Answer Seizure Ratio) optimization is enabled.","type":"boolean","example":true},"post_call_rating":{"description":"Post-call survey configuration.","type":"object","nullable":true,"properties":{"enabled":{"description":"Whether the post-call survey is enabled for contacts.","type":"boolean","example":true},"notification_voice_message_id":{"description":"Identifier of the voice message played as a survey notification. Must reference an existing voice message in the contact center.\n","type":"integer","example":1,"nullable":true},"instructions_voice_message_id":{"description":"Identifier of the voice message played as survey instructions (e.g., \"rate from 1 to 5\"). Must reference an existing voice message in the contact center.\n","type":"integer","example":2,"nullable":true},"complete_voice_message_id":{"description":"Identifier of the voice message played after survey completion. Must reference an existing voice message in the contact center.\n","type":"integer","example":3,"nullable":true}},"required":["enabled"]},"contact_local_time":{"description":"Time restrictions for calling contacts based on their local time. Only available if the contact local time feature is enabled for the contact center. Set to `null` to clear.\n","type":"object","nullable":true,"properties":{"start_time":{"description":"Start time for calls. Must be in HH:00 format, between 08:00 and 22:00.","type":"string","example":"08:00"},"end_time":{"description":"End time for calls. Must be in HH:00 format, between 08:00 and 22:00. Must be later than `start_time`.","type":"string","example":"22:00"},"days_of_week":{"description":"Days of the week when calls are allowed (1 = Monday, 7 = Sunday).","type":"array","items":{"type":"integer","minimum":1,"maximum":7},"example":[1,2,3,4,5,6,7]}},"required":["start_time","end_time","days_of_week"]},"follow_up_rules":{"description":"Rules for redialing contacts based on call disposition. Each disposition can have up to 20 rules.\n","type":"object","nullable":true,"properties":{"machine_answered":{"type":"array","items":{"type":"object","properties":{"wait_time":{"description":"Time to wait before redialing the contact.","type":"integer","minimum":1,"example":300},"wait_time_unit":{"description":"Unit for the wait time value.","type":"string","enum":["seconds","minutes","hours"],"example":"seconds"},"switch_caller_id_set":{"description":"Whether to switch to the next caller ID set on redial. Cannot be `true` when only one caller ID set is assigned.\n","type":"boolean","default":false,"example":false}},"required":["wait_time","wait_time_unit"]},"maxItems":20},"abandoned":{"type":"array","items":{"type":"object","properties":{"wait_time":{"description":"Time to wait before redialing the contact.","type":"integer","minimum":1,"example":300},"wait_time_unit":{"description":"Unit for the wait time value.","type":"string","enum":["seconds","minutes","hours"],"example":"seconds"},"switch_caller_id_set":{"description":"Whether to switch to the next caller ID set on redial. Cannot be `true` when only one caller ID set is assigned.\n","type":"boolean","default":false,"example":false}},"required":["wait_time","wait_time_unit"]},"maxItems":20},"no_answer":{"type":"array","items":{"type":"object","properties":{"wait_time":{"description":"Time to wait before redialing the contact.","type":"integer","minimum":1,"example":300},"wait_time_unit":{"description":"Unit for the wait time value.","type":"string","enum":["seconds","minutes","hours"],"example":"seconds"},"switch_caller_id_set":{"description":"Whether to switch to the next caller ID set on redial. Cannot be `true` when only one caller ID set is assigned.\n","type":"boolean","default":false,"example":false}},"required":["wait_time","wait_time_unit"]},"maxItems":20},"rejected":{"type":"array","items":{"type":"object","properties":{"wait_time":{"description":"Time to wait before redialing the contact.","type":"integer","minimum":1,"example":300},"wait_time_unit":{"description":"Unit for the wait time value.","type":"string","enum":["seconds","minutes","hours"],"example":"seconds"},"switch_caller_id_set":{"description":"Whether to switch to the next caller ID set on redial. Cannot be `true` when only one caller ID set is assigned.\n","type":"boolean","default":false,"example":false}},"required":["wait_time","wait_time_unit"]},"maxItems":20},"failed":{"type":"array","items":{"type":"object","properties":{"wait_time":{"description":"Time to wait before redialing the contact.","type":"integer","minimum":1,"example":300},"wait_time_unit":{"description":"Unit for the wait time value.","type":"string","enum":["seconds","minutes","hours"],"example":"seconds"},"switch_caller_id_set":{"description":"Whether to switch to the next caller ID set on redial. Cannot be `true` when only one caller ID set is assigned.\n","type":"boolean","default":false,"example":false}},"required":["wait_time","wait_time_unit"]},"maxItems":20},"busy":{"type":"array","items":{"type":"object","properties":{"wait_time":{"description":"Time to wait before redialing the contact.","type":"integer","minimum":1,"example":300},"wait_time_unit":{"description":"Unit for the wait time value.","type":"string","enum":["seconds","minutes","hours"],"example":"seconds"},"switch_caller_id_set":{"description":"Whether to switch to the next caller ID set on redial. Cannot be `true` when only one caller ID set is assigned.\n","type":"boolean","default":false,"example":false}},"required":["wait_time","wait_time_unit"]},"maxItems":20}}}}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"campaign":{"$ref":"#/components/schemas/Campaign"}}}}}},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"422":{"$ref":"#/components/responses/422"},"429":{"$ref":"#/components/responses/429"}}}},"/api/v4/campaigns/{campaign_id}/users":{"get":{"operationId":"getCampaignUsers","tags":["Campaigns"],"summary":"Get users assigned to a campaign","description":"Retrieve the list of agents who are assigned to the specified campaign.","parameters":[{"name":"campaign_id","in":"path","description":"The unique identifier of the campaign.","required":true,"schema":{"type":"integer","example":1}},{"$ref":"#/components/parameters/Limit"},{"$ref":"#/components/parameters/Offset"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"users":{"type":"array","items":{"$ref":"#/components/schemas/User"}},"metadata":{"$ref":"#/components/schemas/Metadata"}}}}}},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"429":{"$ref":"#/components/responses/429"}}}},"/api/v4/campaigns/{campaign_id}/start":{"post":{"operationId":"startCampaign","tags":["Campaigns"],"summary":"Start campaign","description":"Starts the specified dialer campaign.","parameters":[{"name":"campaign_id","in":"path","description":"The unique identifier of the campaign.","required":true,"schema":{"type":"integer","example":1}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Campaign"}}}},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"409":{"$ref":"#/components/responses/409"},"429":{"$ref":"#/components/responses/429"}}}},"/api/v4/campaigns/{campaign_id}/stop":{"post":{"operationId":"stopCampaign","tags":["Campaigns"],"summary":"Stop campaign","description":"Stops the specified dialer campaign.","parameters":[{"name":"campaign_id","in":"path","description":"The unique identifier of the campaign.","required":true,"schema":{"type":"integer","example":1}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Campaign"}}}},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"409":{"$ref":"#/components/responses/409"},"429":{"$ref":"#/components/responses/429"}}}},"/api/v4/campaigns/{campaign_id}/pause":{"post":{"operationId":"pauseCampaign","tags":["Campaigns"],"summary":"Pause campaign","description":"Pauses the specified dialer campaign.","parameters":[{"name":"campaign_id","in":"path","description":"The unique identifier of the campaign.","required":true,"schema":{"type":"integer","example":1}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Campaign"}}}},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"409":{"$ref":"#/components/responses/409"},"429":{"$ref":"#/components/responses/429"}}}},"/api/v4/campaigns/{campaign_id}/leads":{"post":{"operationId":"addLeads","tags":["Campaigns"],"summary":"Add leads to a campaign","description":"Adds leads to the specified campaign.","parameters":[{"name":"campaign_id","in":"path","description":"The unique identifier of the campaign.","required":true,"schema":{"type":"integer","example":1}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Lead"}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"leads_import":{"$ref":"#/components/schemas/LeadsImport"}}}}}},"409":{"$ref":"#/components/responses/409"},"422":{"$ref":"#/components/responses/422"},"429":{"$ref":"#/components/responses/429"}}},"patch":{"operationId":"updateLeads","tags":["Campaigns"],"summary":"Update campaign leads","description":"Updates leads in the specified campaign.","parameters":[{"name":"campaign_id","in":"path","description":"The unique identifier of the campaign.","required":true,"schema":{"type":"integer","example":1}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Lead"}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"leads_update":{"$ref":"#/components/schemas/LeadsUpdate"}}}}}},"409":{"$ref":"#/components/responses/409"},"422":{"$ref":"#/components/responses/422"},"429":{"$ref":"#/components/responses/429"}}}},"/api/v4/users/teams/{team_id}/users":{"get":{"operationId":"getTeamUsers","tags":["Users"],"summary":"Get users assigned to a team","description":"Returns the list of users who are assigned to the specified team.","parameters":[{"name":"team_id","in":"path","description":"The unique identifier of the team.","required":true,"schema":{"type":"integer","example":1}},{"$ref":"#/components/parameters/Limit"},{"$ref":"#/components/parameters/Offset"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"users":{"type":"array","items":{"$ref":"#/components/schemas/User"}},"metadata":{"$ref":"#/components/schemas/Metadata"}}}}}},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"429":{"$ref":"#/components/responses/429"}}}},"/api/v4/numbers":{"get":{"operationId":"getNumbers","tags":["Numbers"],"summary":"Get purchased phone numbers","description":"Returns a list of all purchased phone numbers.","parameters":[{"$ref":"#/components/parameters/Limit"},{"$ref":"#/components/parameters/Offset"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"numbers":{"type":"array","items":{"$ref":"#/components/schemas/Number"}},"metadata":{"$ref":"#/components/schemas/Metadata"}}}}}},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"429":{"$ref":"#/components/responses/429"}}}},"/api/v4/numbers/{number_id}":{"get":{"operationId":"getNumber","tags":["Numbers"],"summary":"Get phone number","description":"Returns detailed information about a specific phone number.","parameters":[{"name":"number_id","in":"path","description":"The unique identifier of the phone number.","required":true,"schema":{"type":"integer","example":42}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"$ref":"#/components/schemas/Number"}}}}}},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"429":{"$ref":"#/components/responses/429"}}}},"/api/v4/numbers/caller_id_groups":{"get":{"operationId":"getCallerIDGroups","tags":["Numbers"],"summary":"Get caller ID groups","description":"Returns a paginated list of all caller ID groups.","parameters":[{"$ref":"#/components/parameters/Limit"},{"$ref":"#/components/parameters/Offset"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"caller_id_groups":{"type":"array","items":{"$ref":"#/components/schemas/CallerIDGroup"}},"metadata":{"$ref":"#/components/schemas/Metadata"}}}}}},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"429":{"$ref":"#/components/responses/429"}}}},"/api/v4/numbers/caller_id_groups/{caller_id_group_id}":{"get":{"operationId":"getCallerIDGroup","tags":["Numbers"],"summary":"Get caller ID group","description":"Returns detailed information about a specific caller ID group.","parameters":[{"name":"caller_id_group_id","in":"path","description":"The unique identifier of the caller ID group.","required":true,"schema":{"type":"integer","example":1}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"caller_id_group":{"$ref":"#/components/schemas/CallerIDGroup"}}}}}},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"429":{"$ref":"#/components/responses/429"}}}},"/api/v4/tasks/scheduled_callbacks":{"post":{"operationId":"createScheduledCallback","tags":["Tasks"],"summary":"Create scheduled callback","description":"Creates a scheduled callback for an agent at the specified time.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"user_id":{"description":"The unique identifier of the user who will handle the callback.","type":"string","format":"uuid","example":"0b97ce11-b6e0-49b4-8f92-68040aa324bf"},"scheduled_at":{"description":"Date and time when the callback call is scheduled to be placed (ISO 8601).","type":"string","format":"date-time","example":"2025-12-12T10:00:00Z"},"caller_id_group_id":{"description":"Identifier of the caller ID group to use for the callback.","type":"integer","example":1,"nullable":true},"timezone":{"description":"IANA time zone used to interpret `scheduled_at` when a local time is provided.","type":"string","example":"Europe/Riga","nullable":true},"destination":{"description":"Destination for the callback.","discriminator":{"propertyName":"type","mapping":{"phone_number":"#/components/schemas/ScheduledCallbackDestinationPhoneNumber","related_call":"#/components/schemas/ScheduledCallbackDestinationRelatedCall","external_system":"#/components/schemas/ScheduledCallbackDestinationExternalSystem"}},"oneOf":[{"$ref":"#/components/schemas/ScheduledCallbackDestinationPhoneNumber"},{"$ref":"#/components/schemas/ScheduledCallbackDestinationRelatedCall"},{"$ref":"#/components/schemas/ScheduledCallbackDestinationExternalSystem"}]},"note":{"description":"Notes associated with the callback request.","type":"string","maxLength":64,"example":"Follow up call","nullable":true}},"required":["user_id","scheduled_at","destination"]}}}},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"type":"object","properties":{"scheduled_callback":{"$ref":"#/components/schemas/ScheduledCallback"}}}}}},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"422":{"$ref":"#/components/responses/422"},"429":{"$ref":"#/components/responses/429"}}},"get":{"operationId":"listScheduledCallbacks","tags":["Tasks"],"summary":"List scheduled callbacks","description":"Returns a paginated list of scheduled callbacks, ordered from newest to oldest.","parameters":[{"$ref":"#/components/parameters/Offset"},{"$ref":"#/components/parameters/Limit"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"scheduled_callbacks":{"type":"array","items":{"$ref":"#/components/schemas/ScheduledCallback"}},"metadata":{"$ref":"#/components/schemas/Metadata"}}}}}},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"429":{"$ref":"#/components/responses/429"}}}},"/api/v4/tasks/scheduled_callbacks/{scheduled_callback_id}":{"get":{"operationId":"getScheduledCallback","tags":["Tasks"],"summary":"Get scheduled callback","description":"Returns a scheduled callback by ID.","parameters":[{"name":"scheduled_callback_id","in":"path","description":"Scheduled callback ID","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"scheduled_callback":{"$ref":"#/components/schemas/ScheduledCallback"}}}}}},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"429":{"$ref":"#/components/responses/429"}}}},"/api/v4/tasks/webhooks":{"get":{"operationId":"listWebhooks","tags":["Tasks"],"summary":"List webhooks","description":"Returns a paginated list of webhooks.","parameters":[{"$ref":"#/components/parameters/Offset"},{"$ref":"#/components/parameters/Limit"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"webhooks":{"type":"array","items":{"$ref":"#/components/schemas/Webhook"}},"metadata":{"$ref":"#/components/schemas/Metadata"}}}}}},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"429":{"$ref":"#/components/responses/429"}}}},"/api/v4/tasks/webhooks/{webhook_id}":{"get":{"operationId":"getWebhook","tags":["Tasks"],"summary":"Get webhook","description":"Returns a webhook by ID.","parameters":[{"name":"webhook_id","in":"path","description":"The unique identifier of the webhook.","required":true,"schema":{"type":"string","format":"uuid","example":"0b97ce11-b6e0-49b4-8f92-68040aa324bf"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"webhook":{"$ref":"#/components/schemas/Webhook"}}}}}},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"429":{"$ref":"#/components/responses/429"}}}},"/api/v4/tasks/webhook_failures":{"get":{"operationId":"listWebhookFailures","tags":["Tasks"],"summary":"List webhook failures","description":"Returns a paginated list of webhook failures, ordered from newest to oldest.","parameters":[{"$ref":"#/components/parameters/Offset"},{"$ref":"#/components/parameters/Limit"},{"name":"created_at","in":"query","description":"Filter by creation time or by creation time range.","schema":{"oneOf":[{"type":"string","format":"date-time","example":"2024-01-01T00:00:00Z"},{"$ref":"#/components/schemas/RangeFilterDateTime"}]},"examples":{"exact":{"summary":"Exact creation time","value":"2024-01-01T00:00:00Z"},"range":{"summary":"Creation time range","value":{"gte":"2024-01-01T00:00:00Z","lt":"2024-02-01T00:00:00Z"}}}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"webhook_failures":{"type":"array","items":{"$ref":"#/components/schemas/WebhookFailure"}},"metadata":{"$ref":"#/components/schemas/Metadata"}}}}}},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"429":{"$ref":"#/components/responses/429"}}}},"/api/v4/tasks/webhook_failures/{webhook_failure_id}":{"get":{"operationId":"getWebhookFailure","tags":["Tasks"],"summary":"Get webhook failure","description":"Returns a webhook failure by ID.","parameters":[{"name":"webhook_failure_id","in":"path","description":"The unique identifier of the webhook failure.","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"webhook_failure":{"$ref":"#/components/schemas/WebhookFailure"}}}}}},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"429":{"$ref":"#/components/responses/429"}}}},"/api/v4/tasks/webhook_failures/{webhook_failure_id}/retrigger":{"post":{"operationId":"retriggerWebhookFailure","tags":["Tasks"],"summary":"Retrigger webhook failure","description":"Re-enqueues a failed webhook delivery for another attempt.","parameters":[{"name":"webhook_failure_id","in":"path","description":"The unique identifier of the webhook failure.","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"webhook_failure":{"$ref":"#/components/schemas/WebhookFailure"}}}}}},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"429":{"$ref":"#/components/responses/429"}}}},"/api/v4/users/teams/{team_id}/supervisors":{"get":{"operationId":"getTeamSupervisors","tags":["Users"],"summary":"Get supervisors assigned to a team","description":"Returns the list of supervisors assigned to the specified team.","parameters":[{"name":"team_id","in":"path","description":"The unique identifier of the team.","required":true,"schema":{"type":"integer","example":1}},{"$ref":"#/components/parameters/Limit"},{"$ref":"#/components/parameters/Offset"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"users":{"type":"array","items":{"$ref":"#/components/schemas/User"}},"metadata":{"$ref":"#/components/schemas/Metadata"}}}}}},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"429":{"$ref":"#/components/responses/429"}}}},"/api/v4/messaging/channel_profiles":{"get":{"operationId":"getChannelProfiles","tags":["Messaging"],"summary":"Get list of channel profiles","description":"Returns a paginated list of all channel profiles.","parameters":[{"$ref":"#/components/parameters/Limit"},{"$ref":"#/components/parameters/Offset"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"channel_profiles":{"type":"array","items":{"$ref":"#/components/schemas/ChannelProfile"}},"metadata":{"$ref":"#/components/schemas/Metadata"}}}}}},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"429":{"$ref":"#/components/responses/429"}}}},"/api/v4/messaging/channel_profiles/{channel_profile_id}":{"get":{"operationId":"getChannelProfile","tags":["Messaging"],"summary":"Get channel profile","description":"Returns detailed information about a specific channel profile.","parameters":[{"name":"channel_profile_id","in":"path","description":"The unique identifier of the channel profile.","required":true,"schema":{"type":"integer","example":1}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"channel_profile":{"$ref":"#/components/schemas/ChannelProfile"}}}}}},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"429":{"$ref":"#/components/responses/429"}}}},"/api/v4/messaging/canned_messages":{"get":{"operationId":"getCannedMessages","tags":["Messaging"],"summary":"Get list of canned messages","description":"Returns a paginated list of all canned messages.","parameters":[{"$ref":"#/components/parameters/Limit"},{"$ref":"#/components/parameters/Offset"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"canned_messages":{"type":"array","items":{"$ref":"#/components/schemas/CannedMessage"}},"metadata":{"$ref":"#/components/schemas/Metadata"}}}}}},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"429":{"$ref":"#/components/responses/429"}}}},"/api/v4/messaging/canned_messages/{canned_message_id}":{"get":{"operationId":"getCannedMessage","tags":["Messaging"],"summary":"Get canned message","description":"Returns detailed information about a specific canned message.","parameters":[{"name":"canned_message_id","in":"path","description":"The unique identifier of the canned message.","required":true,"schema":{"type":"integer","example":1}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"canned_message":{"$ref":"#/components/schemas/CannedMessage"}}}}}},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"429":{"$ref":"#/components/responses/429"}}}},"/api/v4/messaging/whatsapp_templates":{"get":{"operationId":"getWhatsappTemplates","tags":["Messaging"],"summary":"Get list of WhatsApp templates","description":"Returns a paginated list of all WhatsApp templates.","parameters":[{"$ref":"#/components/parameters/Limit"},{"$ref":"#/components/parameters/Offset"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"whatsapp_templates":{"type":"array","items":{"$ref":"#/components/schemas/WhatsappTemplate"}},"metadata":{"$ref":"#/components/schemas/Metadata"}}}}}},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"429":{"$ref":"#/components/responses/429"}}}},"/api/v4/messaging/whatsapp_templates/{whatsapp_template_id}":{"get":{"operationId":"getWhatsappTemplate","tags":["Messaging"],"summary":"Get WhatsApp template","description":"Returns detailed information about a specific WhatsApp template.","parameters":[{"name":"whatsapp_template_id","in":"path","description":"The unique identifier of the WhatsApp template.","required":true,"schema":{"type":"string","format":"uuid","example":"0b62763c-40d6-4ec8-8380-3cb94e442a75"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"whatsapp_template":{"$ref":"#/components/schemas/WhatsappTemplate"}}}}}},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"429":{"$ref":"#/components/responses/429"}}}},"/api/v4/messaging/conversations":{"get":{"operationId":"getConversations","tags":["Messaging"],"summary":"Get list of conversations","description":"Returns a paginated list of conversations, ordered from newest to oldest.","parameters":[{"$ref":"#/components/parameters/Limit"},{"$ref":"#/components/parameters/Offset"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"conversations":{"type":"array","items":{"$ref":"#/components/schemas/Conversation"}},"metadata":{"$ref":"#/components/schemas/Metadata"}}}}}},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"429":{"$ref":"#/components/responses/429"}}},"post":{"operationId":"createConversation","tags":["Messaging"],"summary":"Create conversation","description":"Initiate a new conversation for WhatsApp channels.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"channel_profile_id":{"description":"The unique identifier of the channel profile.","type":"integer","example":1},"contact_channel_identifier":{"description":"Channel-specific identifier of the contact (phone number for WhatsApp).","type":"string","example":"15551234567"},"user_id":{"description":"The unique identifier of the user assigned to the conversation.","type":"string","format":"uuid","example":"550e8400-e29b-41d4-a716-446655440000"},"message":{"description":"The initial message for the conversation.","type":"object","properties":{"content_type":{"description":"The message content type (\"whatsapp_template\" only).","type":"string","enum":["whatsapp_template"],"example":"whatsapp_template"},"content_data":{"description":"WhatsApp template payload.","type":"object","properties":{"whatsapp_template_id":{"description":"The unique identifier of the WhatsApp template.","type":"string","format":"uuid","example":"0b62763c-40d6-4ec8-8380-3cb94e442a75"},"placeholders":{"description":"Placeholder values for the WhatsApp template, indexed by position.","type":"object","example":{"1":"John","2":"01 Jan 2026"}}},"required":["whatsapp_template_id"]}},"required":["content_type","content_data"]}},"required":["channel_profile_id","contact_channel_identifier","message"]}}}},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"type":"object","properties":{"conversation":{"$ref":"#/components/schemas/Conversation"}}}}}},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"422":{"$ref":"#/components/responses/422"},"429":{"$ref":"#/components/responses/429"}}}},"/api/v4/messaging/conversations/{conversation_id}":{"get":{"operationId":"getConversation","tags":["Messaging"],"summary":"Get conversation","description":"Returns detailed information about a specific conversation.","parameters":[{"name":"conversation_id","in":"path","description":"The unique identifier of the conversation.","required":true,"schema":{"type":"string","format":"uuid","example":"0b62763c-40d6-4ec8-8380-3cb94e442a75"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"conversation":{"$ref":"#/components/schemas/Conversation"}}}}}},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"429":{"$ref":"#/components/responses/429"}}}},"/api/v4/messaging/conversations/{conversation_id}/messages":{"get":{"operationId":"getConversationMessages","tags":["Messaging"],"summary":"Get list of conversation messages","description":"Returns a paginated list of all messages in a conversation.","parameters":[{"name":"conversation_id","in":"path","description":"The unique identifier of the conversation.","required":true,"schema":{"type":"string","format":"uuid","example":"0b62763c-40d6-4ec8-8380-3cb94e442a75"}},{"$ref":"#/components/parameters/Limit"},{"$ref":"#/components/parameters/Offset"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"messages":{"type":"array","items":{"$ref":"#/components/schemas/Message"}},"metadata":{"$ref":"#/components/schemas/Metadata"}}}}}},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"429":{"$ref":"#/components/responses/429"}}},"post":{"operationId":"createMessage","tags":["Messaging"],"summary":"Create message","description":"Send a message in an existing conversation.","parameters":[{"name":"conversation_id","in":"path","description":"The unique identifier of the conversation.","required":true,"schema":{"type":"string","format":"uuid","example":"0b62763c-40d6-4ec8-8380-3cb94e442a75"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"content_type":{"description":"The message content type.","type":"string","enum":["audio","document","image","text","video","whatsapp_template"],"example":"text"},"content_data":{"description":"Content payload. Structure varies by content type.","type":"object","example":{"body":"Hello, how can we assist you?"},"oneOf":[{"type":"object","properties":{"body":{"type":"string","example":"Hello, how can we assist you?"}},"required":["body"]},{"type":"object","properties":{"url":{"type":"string","format":"uri","example":"https://example.com/file.mp4"},"filename":{"type":"string"}},"required":["url"]},{"type":"object","properties":{"whatsapp_template_id":{"description":"The unique identifier of the WhatsApp template.","type":"string","format":"uuid","example":"0b62763c-40d6-4ec8-8380-3cb94e442a75"},"placeholders":{"description":"Placeholder values for the WhatsApp template, indexed by position.","type":"object","example":{"1":"John","2":"01 Jan 2026"}}},"required":["whatsapp_template_id"]}]}},"required":["content_type","content_data"]}}}},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"$ref":"#/components/schemas/Message"}}}}}},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"422":{"$ref":"#/components/responses/422"},"429":{"$ref":"#/components/responses/429"}}}},"/api/v4/messaging/conversations/{conversation_id}/messages/{message_id}":{"get":{"operationId":"getConversationMessage","tags":["Messaging"],"summary":"Get conversation message","description":"Returns detailed information about a specific message in a conversation.","parameters":[{"name":"conversation_id","in":"path","description":"The unique identifier of the conversation.","required":true,"schema":{"type":"string","format":"uuid","example":"0b62763c-40d6-4ec8-8380-3cb94e442a75"}},{"name":"message_id","in":"path","description":"The unique identifier of the message.","required":true,"schema":{"type":"string","format":"uuid","example":"1f839685-9b8f-4d01-8a7a-c5a91532e2f7"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"$ref":"#/components/schemas/Message"}}}}}},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"429":{"$ref":"#/components/responses/429"}}}},"/api/v4/messaging/sms":{"post":{"operationId":"createSms","tags":["Messaging"],"summary":"Send SMS","description":"Send an outbound SMS message with a text body or a canned message template.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"phone_number":{"description":"The recipient's phone number.","type":"string","format":"phone","example":"18885658889"},"sender_id":{"description":"The originating phone number displayed to the recipient.","type":"string","format":"phone","example":"18885658880"},"message":{"description":"The message payload.","type":"object","properties":{"content_type":{"description":"The type of message content.","type":"string","enum":["text","canned_message"],"example":"text"},"content_data":{"description":"The message content. Structure depends on the content_type.","oneOf":[{"$ref":"#/components/schemas/SmsContentDataText"},{"$ref":"#/components/schemas/SmsContentDataCannedMessage"}]}},"required":["content_type","content_data"]},"source":{"description":"Information about the external system that provided the contact number, such as a CRM.","type":"object","properties":{"system":{"description":"The name of an external application, such as a CRM, where contact information is managed.","type":"string","example":"zoho"},"account_id":{"description":"An identifier assigned to the contact in an external application, such as a CRM.","type":"string","example":"123321"}},"required":["system","account_id"]}},"required":["phone_number","message"]}}}},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"type":"object","properties":{"sms":{"$ref":"#/components/schemas/Sms"}}}}}},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"422":{"$ref":"#/components/responses/422"},"429":{"$ref":"#/components/responses/429"}}}},"/api/v4/reporting/cdrs":{"get":{"operationId":"getCdrs","tags":["Reporting"],"summary":"Get list of CDRs","description":"Returns a paginated list of Call Detail Records (CDRs). The maximum result window is 10,000 records based on the limit and offset values.","parameters":[{"$ref":"#/components/parameters/Limit"},{"$ref":"#/components/parameters/Offset"},{"name":"type","in":"query","description":"Filter by CDR type. Accepts a single value or an array.","schema":{"oneOf":[{"type":"string","enum":["call","conversation","hlr_lookup","sms"]},{"type":"array","items":{"type":"string","enum":["call","conversation","hlr_lookup","sms"]}}]},"examples":{"single":{"summary":"Single type","value":"call"},"multiple":{"summary":"Multiple types","value":["call","sms"]}}},{"name":"subtype","in":"query","description":"Filter by CDR subtype. Accepts a single value or an array.","schema":{"oneOf":[{"type":"string","enum":["inbound","outbound","click_to_call","dialer","scheduled_callback","queue_callback","chat","facebook","instagram","telegram","viber","whatsapp","hlr_lookup","outbound_sms"]},{"type":"array","items":{"type":"string","enum":["inbound","outbound","click_to_call","dialer","scheduled_callback","queue_callback","chat","facebook","instagram","telegram","viber","whatsapp","hlr_lookup","outbound_sms"]}}]},"examples":{"single":{"summary":"Single subtype","value":"inbound"},"multiple":{"summary":"Multiple subtypes","value":["inbound","outbound"]}}},{"name":"disposition","in":"query","description":"Filter by disposition. Accepts a single value or an array.","schema":{"oneOf":[{"type":"string","enum":["busy","answered","vm_answered","machine_answered","abandoned","dialer_abandoned","system_abandoned","rejected","system_rejected","no_answer","missed","failed","active","archived","initiated","waiting","available","unavailable","unknown","sent","delivered","not_sent","not_delivered","route_unavailable"]},{"type":"array","items":{"type":"string","enum":["busy","answered","vm_answered","machine_answered","abandoned","dialer_abandoned","system_abandoned","rejected","system_rejected","no_answer","missed","failed","active","archived","initiated","waiting","available","unavailable","unknown","sent","delivered","not_sent","not_delivered","route_unavailable"]}}]},"examples":{"single":{"summary":"Single disposition","value":"answered"},"multiple":{"summary":"Multiple dispositions","value":["answered","no_answer"]}}},{"name":"wrapup_code","in":"query","description":"Filter by wrap-up code. Accepts a single value or an array.","schema":{"oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"examples":{"single":{"summary":"Single wrap-up code","value":"0012"},"multiple":{"summary":"Multiple wrap-up codes","value":["0012","0016"]}}},{"name":"end_reason","in":"query","description":"Filter by end reason. Accepts a single value or an array.","schema":{"oneOf":[{"type":"string","enum":["agent","busy","customer","failed","machine","machine_answered","manager","no_answer","rejected","remote_party","system_reject","timeout"]},{"type":"array","items":{"type":"string","enum":["agent","busy","customer","failed","machine","machine_answered","manager","no_answer","rejected","remote_party","system_reject","timeout"]}}]},"examples":{"single":{"summary":"Single end reason","value":"customer"},"multiple":{"summary":"Multiple end reasons","value":["customer","busy"]}}},{"name":"tag","in":"query","description":"Filter by event tag. Accepts a single value or an array. Special value `all_transfers` expands to all transfer types.","schema":{"oneOf":[{"type":"string","enum":["monitor","whisper","barge_in","intercept","terminate","forward","consult_transfer","blind_transfer","all_transfers","conference","call_score"]},{"type":"array","items":{"type":"string","enum":["monitor","whisper","barge_in","intercept","terminate","forward","consult_transfer","blind_transfer","all_transfers","conference","call_score"]}}]},"examples":{"single":{"summary":"Single tag","value":"monitor"},"multiple":{"summary":"Multiple tags","value":["monitor","whisper"]}}},{"name":"from_phone_number","in":"query","description":"Filter by caller phone number. Accepts a single value or an array. Cannot be used with `from_phone_number_like`.","schema":{"oneOf":[{"type":"string","format":"phone"},{"type":"array","items":{"type":"string","format":"phone"}}]},"examples":{"single":{"summary":"Single caller number","value":"14155552671"},"multiple":{"summary":"Multiple caller numbers","value":["14155552671","12025550123"]}}},{"name":"to_phone_number","in":"query","description":"Filter by destination phone number. Accepts a single value or an array of values. Cannot be used with `to_phone_number_like`.","schema":{"oneOf":[{"type":"string","format":"phone"},{"type":"array","items":{"type":"string","format":"phone"}}]},"examples":{"single":{"summary":"Single destination number","value":"12025550123"},"multiple":{"summary":"Multiple destination numbers","value":["12025550123","14155552671"]}}},{"name":"from_phone_number_like","in":"query","description":"Filter by caller phone number pattern. Use * as a wildcard. Cannot be used with `from_phone_number`.","schema":{"type":"string"},"example":"1*"},{"name":"to_phone_number_like","in":"query","description":"Filter by destination phone number pattern. Use * as a wildcard. Cannot be used with `to_phone_number`.","schema":{"type":"string"},"example":"*415*"},{"name":"from_channel_account_id","in":"query","description":"Filter by source channel account ID. Accepts a single value or an array.","schema":{"oneOf":[{"type":"string","format":"uuid"},{"type":"array","items":{"type":"string","format":"uuid"}}]},"examples":{"single":{"summary":"Single channel account","value":"0b97ce11-b6e0-49b4-8f92-68040aa324bf"},"multiple":{"summary":"Multiple channel accounts","value":["0b97ce11-b6e0-49b4-8f92-68040aa324bf","7d7f8c74-da08-4eb3-b779-41364c129d8a"]}}},{"name":"to_channel_account_id","in":"query","description":"Filter by destination channel account ID. Accepts a single value or an array.","schema":{"oneOf":[{"type":"string","format":"uuid"},{"type":"array","items":{"type":"string","format":"uuid"}}]},"examples":{"single":{"summary":"Single channel account","value":"7d7f8c74-da08-4eb3-b779-41364c129d8a"},"multiple":{"summary":"Multiple channel accounts","value":["7d7f8c74-da08-4eb3-b779-41364c129d8a","0b97ce11-b6e0-49b4-8f92-68040aa324bf"]}}},{"name":"from_channel_profile_id","in":"query","description":"Filter by source channel profile ID. Accepts a single value or an array.","schema":{"oneOf":[{"type":"integer"},{"type":"array","items":{"type":"integer"}}]},"examples":{"single":{"summary":"Single channel profile","value":12},"multiple":{"summary":"Multiple channel profiles","value":[12,32]}}},{"name":"to_channel_profile_id","in":"query","description":"Filter by destination channel profile ID. Accepts a single value or an array.","schema":{"oneOf":[{"type":"integer"},{"type":"array","items":{"type":"integer"}}]},"examples":{"single":{"summary":"Single channel profile","value":32},"multiple":{"summary":"Multiple channel profiles","value":[32,12]}}},{"name":"user_id","in":"query","description":"Filter by user ID. Accepts a single value or an array.","schema":{"oneOf":[{"type":"string","format":"uuid"},{"type":"array","items":{"type":"string","format":"uuid"}}]},"examples":{"single":{"summary":"Single user","value":"0b97ce11-b6e0-49b4-8f92-68040aa324bf"},"multiple":{"summary":"Multiple users","value":["0b97ce11-b6e0-49b4-8f92-68040aa324bf","7d7f8c74-da08-4eb3-b779-41364c129d8a"]}}},{"name":"team_id","in":"query","description":"Filter by team ID. Accepts a single value or an array.","schema":{"oneOf":[{"type":"integer"},{"type":"array","items":{"type":"integer"}}]},"examples":{"single":{"summary":"Single team","value":3},"multiple":{"summary":"Multiple teams","value":[3,7]}}},{"name":"queue_id","in":"query","description":"Filter by queue ID. Accepts a single value or an array.","schema":{"oneOf":[{"type":"integer"},{"type":"array","items":{"type":"integer"}}]},"examples":{"single":{"summary":"Single queue","value":7},"multiple":{"summary":"Multiple queues","value":[7,12]}}},{"name":"campaign_id","in":"query","description":"Filter by campaign ID. Accepts a single value or an array.","schema":{"oneOf":[{"type":"integer"},{"type":"array","items":{"type":"integer"}}]},"examples":{"single":{"summary":"Single campaign","value":5},"multiple":{"summary":"Multiple campaigns","value":[5,9]}}},{"name":"related_call_id","in":"query","description":"Filter by related call ID. Accepts a single value or an array.","schema":{"oneOf":[{"type":"string","format":"uuid"},{"type":"array","items":{"type":"string","format":"uuid"}}]},"examples":{"single":{"summary":"Single related call","value":"1f839685-9b8f-4d01-8a7a-c5a91532e2f7"},"multiple":{"summary":"Multiple related calls","value":["1f839685-9b8f-4d01-8a7a-c5a91532e2f7","7d7f8c74-da08-4eb3-b779-41364c129d8a"]}}},{"name":"destination_country","in":"query","description":"Filter by destination country name. Accepts a single value or an array.","schema":{"oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"examples":{"single":{"summary":"Single country","value":"France"},"multiple":{"summary":"Multiple countries","value":["France","Germany"]}}},{"name":"conversation_score","in":"query","description":"Filter by conversation score or score range.","schema":{"oneOf":[{"type":"number","format":"float","minimum":0,"example":4.5},{"$ref":"#/components/schemas/RangeFilterFloat"}]},"examples":{"exact":{"summary":"Exact score","value":4.5},"range":{"summary":"Score range","value":{"gte":4.5,"lt":9.2}}}},{"name":"duration_overall","in":"query","description":"Filter by overall duration (seconds) or by duration range.","schema":{"oneOf":[{"type":"number","format":"float","minimum":0,"example":120.5},{"$ref":"#/components/schemas/RangeFilterFloat"}]},"examples":{"exact":{"summary":"Exact duration","value":120.5},"range":{"summary":"Duration range","value":{"gte":30.5,"lte":180.5}}}},{"name":"duration_dialing","in":"query","description":"Filter by dialing duration (seconds) or by duration range.","schema":{"oneOf":[{"type":"number","format":"float","minimum":0,"example":12.3},{"$ref":"#/components/schemas/RangeFilterFloat"}]},"examples":{"exact":{"summary":"Exact duration","value":12.3},"range":{"summary":"Duration range","value":{"lt":15.5}}}},{"name":"duration_ivr","in":"query","description":"Filter by time spent in IVR (seconds) or by a duration range.","schema":{"oneOf":[{"type":"number","format":"float","minimum":0,"example":8.2},{"$ref":"#/components/schemas/RangeFilterFloat"}]},"examples":{"exact":{"summary":"Exact duration","value":8.2},"range":{"summary":"Duration range","value":{"gt":5.5}}}},{"name":"duration_queue","in":"query","description":"Filter by time spent in queue (seconds) or by a duration range.","schema":{"oneOf":[{"type":"number","format":"float","minimum":0,"example":25.7},{"$ref":"#/components/schemas/RangeFilterFloat"}]},"examples":{"exact":{"summary":"Exact duration","value":25.7},"range":{"summary":"Duration range","value":{"gt":10.5}}}},{"name":"duration_talk","in":"query","description":"Filter by time spent talking (seconds) or by a duration range.","schema":{"oneOf":[{"type":"number","format":"float","minimum":0,"example":180.4},{"$ref":"#/components/schemas/RangeFilterFloat"}]},"examples":{"exact":{"summary":"Exact duration","value":180.4},"range":{"summary":"Duration range","value":{"gte":60.5}}}},{"name":"duration_hold","in":"query","description":"Filter by time spent on hold (seconds) or by a duration range.","schema":{"oneOf":[{"type":"number","format":"float","minimum":0,"example":15.3},{"$ref":"#/components/schemas/RangeFilterFloat"}]},"examples":{"exact":{"summary":"Exact duration","value":15.3},"range":{"summary":"Duration range","value":{"lte":20.5}}}},{"name":"started_at","in":"query","description":"Filter by start time or by start time range.","schema":{"oneOf":[{"type":"string","format":"date-time","example":"2024-01-01T00:00:00Z"},{"$ref":"#/components/schemas/RangeFilterDateTime"}]},"examples":{"exact":{"summary":"Exact start time","value":"2024-01-01T00:00:00Z"},"range":{"summary":"Start time range","value":{"gte":"2024-01-01T00:00:00Z","lt":"2024-02-01T00:00:00Z"}}}},{"name":"ended_at","in":"query","description":"Filter by end time or by end time range.","schema":{"oneOf":[{"type":"string","format":"date-time","example":"2024-01-31T23:59:59Z"},{"$ref":"#/components/schemas/RangeFilterDateTime"}]},"examples":{"exact":{"summary":"Exact end time","value":"2024-01-31T23:59:59Z"},"range":{"summary":"End time range","value":{"gt":"2024-01-01T00:00:00Z","lte":"2024-01-31T23:59:59Z"}}}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"cdrs":{"type":"array","items":{"$ref":"#/components/schemas/Cdr"}},"metadata":{"$ref":"#/components/schemas/Metadata"}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/responses/400/content/application~1json/schema"},{"$ref":"#/components/responses/422/content/application~1json/schema"}]}}}},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"}}}},"/api/v4/reporting/cdrs/{cdr_id}":{"get":{"operationId":"getCdr","tags":["Reporting"],"summary":"Get CDR","description":"Returns detailed information about a specific Call Detail Record (CDR).","parameters":[{"name":"cdr_id","in":"path","description":"The unique identifier of the CDR.","required":true,"schema":{"type":"string","format":"uuid","example":"7d7f8c74-da08-4eb3-b779-41364c129d8a"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"cdr":{"$ref":"#/components/schemas/Cdr"}}}}}},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"}}}},"/api/v4/reporting/cdrs/{cdr_id}/events":{"get":{"operationId":"getCdrEvents","tags":["Reporting"],"summary":"Get CDR events","description":"Returns paginated list of events for a specific CDR.","parameters":[{"name":"cdr_id","in":"path","description":"The unique identifier of the CDR.","required":true,"schema":{"type":"string","format":"uuid","example":"7d7f8c74-da08-4eb3-b779-41364c129d8a"}},{"$ref":"#/components/parameters/Limit"},{"$ref":"#/components/parameters/Offset"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"cdr_events":{"type":"array","items":{"$ref":"#/components/schemas/CdrEvent"}},"metadata":{"$ref":"#/components/schemas/Metadata"}}}}}},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"}}}},"/api/v4/reporting/cdrs/{cdr_id}/speech_analytics":{"get":{"operationId":"getCdrSpeechAnalytics","tags":["Reporting"],"summary":"Get CDR speech analytics","description":"Retrieve speech analytics data for a specific CDR, including transcription, summary, and score.\n\nSupports multiple output formats:\n- `.json` - JSON format\n- `.vtt` - WebVTT subtitle format\n- `.srt` - SubRip subtitle format\n- `.text` - Plain text format\n\nSupports language translation if available for the CDR.\n","parameters":[{"name":"cdr_id","in":"path","description":"The unique identifier of the CDR.","required":true,"schema":{"type":"string","format":"uuid","example":"f0ed7183-cddb-46c5-9037-19e16126764f"}},{"name":"language","in":"query","description":"Language code for translation (e.g., 'en', 'es').\nIf not specified, returns original language.\nMust be one of the languages supported by your contact center.\n","required":false,"schema":{"type":"string","example":"en"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"speech_analytics":{"$ref":"#/components/schemas/SpeechAnalytics"}}},"examples":{"default":{"summary":"Speech analytics in JSON format","value":{"speech_analytics":{"id":"f0ed7183-cddb-46c5-9037-19e16126764f","summary":{"language":"es","text":"El cliente llamó por error, el agente se presentó como representante de la empresa Example, y el cliente se disculpó."},"score":{"value":2},"transcription":{"language":"es","utterances":[{"start_time":"2026-01-20T18:19:45.202000Z","end_time":"2026-01-20T18:19:45.522000Z","text":"Hola!","participant_type":"contact"},{"start_time":"2026-01-20T18:19:46.322000Z","end_time":"2026-01-20T18:19:46.802000Z","text":"Cómo te va?","participant_type":"contact"},{"start_time":"2026-01-20T18:19:50.560000Z","end_time":"2026-01-20T18:19:51.280000Z","text":"Buenos días, le habla de la empresa Example.","participant_type":"agent"},{"start_time":"2026-01-20T18:20:01.922000Z","end_time":"2026-01-20T18:20:02.242000Z","text":"Disculpe, me equivoqué.","participant_type":"contact"}]}}}},"translated":{"summary":"Speech analytics with English translation","value":{"speech_analytics":{"id":"f0ed7183-cddb-46c5-9037-19e16126764f","summary":{"language":"en","text":"The client called by mistake, the agent introduced themselves as a representative of Example company, and the client apologized."},"score":{"value":2},"transcription":{"language":"en","utterances":[{"start_time":"2026-01-20T18:19:45.202000Z","end_time":"2026-01-20T18:19:45.522000Z","text":"Hello!","participant_type":"contact"},{"start_time":"2026-01-20T18:19:46.322000Z","end_time":"2026-01-20T18:19:46.802000Z","text":"How are you doing?","participant_type":"contact"},{"start_time":"2026-01-20T18:19:50.560000Z","end_time":"2026-01-20T18:19:51.280000Z","text":"Good morning, this is Example company.","participant_type":"agent"},{"start_time":"2026-01-20T18:20:01.922000Z","end_time":"2026-01-20T18:20:02.242000Z","text":"Sorry, wrong number.","participant_type":"contact"}]}}}}}},"application/x-subrip":{"schema":{"type":"string","example":"1\n00:00:02,800 --> 00:00:03,120\nContact: Hola!\n\n2\n00:00:03,920 --> 00:00:04,400\nContact: Cómo te va?\n\n3\n00:00:08,160 --> 00:00:08,880\nAgent: Buenos días, le habla de la empresa Example.\n\n4\n00:00:19,520 --> 00:00:19,840\nContact: Disculpe, me equivoqué.\n"}},"text/plain":{"schema":{"type":"string","example":"Contact: Hola!\n\nContact: Cómo te va?\n\nAgent: Buenos días, le habla de la empresa Example.\n\nContact: Disculpe, me equivoqué.\n"}},"text/vtt":{"schema":{"type":"string","example":"WEBVTT\n\n00:00:02.800 --> 00:00:03.120\n<v Contact>Hola!\n\n00:00:03.920 --> 00:00:04.400\n<v Contact>Cómo te va?\n\n00:00:08.160 --> 00:00:08.880\n<v Agent>Buenos días, le habla de la empresa Example.\n\n00:00:19.520 --> 00:00:19.840\n<v Contact>Disculpe, me equivoqué.\n"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/responses/400/content/application~1json/schema"},{"$ref":"#/components/responses/422/content/application~1json/schema"}]}}}},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"406":{"$ref":"#/components/responses/406"},"409":{"$ref":"#/components/responses/409"}}}},"/api/v4/billing/balance":{"get":{"operationId":"getBalance","tags":["Billing"],"summary":"Get balance","description":"Obtain balance owed to Voiso for contact center services.","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"balance":{"$ref":"#/components/schemas/Balance"}}}}}},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"429":{"$ref":"#/components/responses/429"}}}},"/api/v4/contact_center/wrapup_codes":{"get":{"operationId":"getWrapupCodes","tags":["Contact Center"],"summary":"Get list of wrapup codes","description":"Returns a paginated list of all wrapup codes in the contact center.","parameters":[{"$ref":"#/components/parameters/Limit"},{"$ref":"#/components/parameters/Offset"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"wrapup_codes":{"type":"array","items":{"$ref":"#/components/schemas/WrapupCode"}},"metadata":{"$ref":"#/components/schemas/Metadata"}}}}}},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"429":{"$ref":"#/components/responses/429"}}}},"/api/v4/contact_center/wrapup_codes/{wrapup_code_id}":{"get":{"operationId":"getWrapupCode","tags":["Contact Center"],"summary":"Get wrapup code details","description":"Returns detailed information about a specific wrapup code.","parameters":[{"name":"wrapup_code_id","in":"path","description":"The unique identifier of the wrapup code.","required":true,"schema":{"type":"integer","example":1}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"wrapup_code":{"$ref":"#/components/schemas/WrapupCode"}}}}}},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"429":{"$ref":"#/components/responses/429"}}}},"/api/v4/contact_center/wrapup_code_groups":{"get":{"operationId":"getWrapupCodeGroups","tags":["Contact Center"],"summary":"Get list of wrapup code groups","description":"Returns a paginated list of all wrapup code groups in the contact center.","parameters":[{"$ref":"#/components/parameters/Limit"},{"$ref":"#/components/parameters/Offset"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"wrapup_code_groups":{"type":"array","items":{"$ref":"#/components/schemas/WrapupCodeGroup"}},"metadata":{"$ref":"#/components/schemas/Metadata"}}}}}},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"429":{"$ref":"#/components/responses/429"}}}},"/api/v4/contact_center/wrapup_code_groups/{wrapup_code_group_id}":{"get":{"operationId":"getWrapupCodeGroup","tags":["Contact Center"],"summary":"Get wrapup code group details","description":"Returns detailed information about a specific wrapup code group.","parameters":[{"name":"wrapup_code_group_id","in":"path","description":"The unique identifier of the wrapup code group.","required":true,"schema":{"type":"integer","example":1}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"wrapup_code_group":{"$ref":"#/components/schemas/WrapupCodeGroup"}}}}}},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"429":{"$ref":"#/components/responses/429"}}}}},"components":{"parameters":{"Limit":{"name":"limit","in":"query","description":"The number of items to return.","required":false,"schema":{"type":"integer","default":100,"maximum":100,"minimum":0},"example":100},"Offset":{"name":"offset","in":"query","description":"The number of items to skip before starting to collect the result set.","required":false,"schema":{"type":"integer","default":0,"minimum":0},"example":100}},"schemas":{"Balance":{"type":"object","properties":{"amount":{"description":"Contact center balance amount.","type":"string","example":"100.12"}}},"CallerIDGroup":{"description":"A group of Caller IDs that controls which phone number is shown when dialing.","type":"object","properties":{"id":{"description":"The unique identifier of the caller ID group","type":"integer","example":1},"name":{"description":"The name of the caller ID group.","type":"string","example":"Default"}}},"CallerIDGroupShort":{"description":"A group of Caller IDs that control which phone number is shown when dialing.","type":"object","properties":{"id":{"description":"The unique identifier of the caller ID group","type":"integer","example":1},"name":{"description":"The name of the caller ID group.","type":"string","example":"Default"}}},"CallShort":{"description":"Reference to a call record.","type":"object","properties":{"id":{"description":"The unique identifier of the call.","type":"string","format":"uuid","example":"7d7f8c74-da08-4eb3-b779-41364c129d8a"}}},"Campaign":{"type":"object","properties":{"id":{"description":"The unique identifier of the campaign.","type":"integer","example":3},"name":{"description":"The name of the campaign.","type":"string","example":"Summer Outreach Campaign"},"status":{"description":"Current status of the campaign.","type":"string","enum":["draft","active","paused","stopping","completed","processing","stopped","auto_paused","pausing","auto_pausing","import_error"],"example":"active"},"strategy":{"description":"Dialing strategy used by the campaign.","type":"string","enum":["simple","predictive_ai"],"example":"simple"},"dial_level":{"description":"Number of simultaneous calls per agent.","type":"number","format":"float","example":1},"dial_level_override":{"description":"Override dial level settings based on agent availability.","type":"object","properties":{"enabled":{"description":"Whether the dial level override is enabled.","type":"boolean","example":true},"value":{"description":"Override dial level value.","type":"number","format":"float","example":1.5},"active_agents_threshold":{"description":"Minimum number of active agents to trigger override.","type":"integer","example":3}}},"max_dial_time":{"description":"Maximum dial time in seconds before hanging up.","type":"integer","example":60},"max_wait_time":{"description":"Maximum wait time in seconds for agent availability.","type":"integer","example":5},"max_dial_attempts":{"description":"Maximum number of dial attempts per lead.","type":"integer","example":3},"voice_message":{"description":"Voice message played during the call.","allOf":[{"$ref":"#/components/schemas/MediaVoiceMessage"}],"nullable":true},"amd_enabled":{"description":"Whether answering machine detection is enabled.","type":"boolean","example":true},"live":{"description":"Whether the campaign uses live dialing mode.","type":"object","properties":{"enabled":{"description":"Whether adding leads to the running campaign is enabled.","type":"boolean","example":true},"dialing_order":{"description":"The order in which new leads are dialed. Only available when live is enabled and the dialing order feature is enabled for the contact center.\n- `fifo` — oldest contacts are dialed first\n- `lifo` — newest contacts are dialed first\n","type":"string","enum":["fifo","lifo"],"example":"fifo","nullable":true}}},"calling_list":{"description":"Configuration for the calling list source.","type":"object","nullable":true,"properties":{"method":{"description":"Method used to populate the calling list.","type":"string","enum":["file_import","bitrix","falcon","hubspot","panda","salesforce","zoho","zenoti"],"example":"file_import"}}},"caller_id_sets":{"description":"Sets of caller IDs used for outbound calls.","type":"array","items":{"type":"object","properties":{"phone_numbers":{"description":"List of phone numbers in the caller ID set.","type":"array","items":{"type":"string"},"example":["18885650001","18885650002"]}}},"nullable":true},"use_local_caller_id":{"description":"Whether to use local caller ID matching the lead's area.","type":"boolean","example":false},"asr_optimization_enabled":{"description":"Whether ASR (Answer Seizure Ratio) optimization is enabled.","type":"boolean","example":true},"follow_up_rules":{"description":"Rules for follow-up actions based on call disposition.","type":"object","properties":{"machine_answered":{"description":"Actions when call is answered by machine.","type":"array","items":{"$ref":"#/components/schemas/FollowupRuleRedial"}},"abandoned":{"description":"Actions when call is abandoned.","type":"array","items":{"$ref":"#/components/schemas/FollowupRuleRedial"}},"no_answer":{"description":"Actions when call is not answered.","type":"array","items":{"$ref":"#/components/schemas/FollowupRuleRedial"}},"rejected":{"description":"Actions when call is rejected.","type":"array","items":{"$ref":"#/components/schemas/FollowupRuleRedial"}},"failed":{"description":"Actions when call fails.","type":"array","items":{"$ref":"#/components/schemas/FollowupRuleRedial"}},"busy":{"description":"Actions when line is busy.","type":"array","items":{"$ref":"#/components/schemas/FollowupRuleRedial"}}}},"post_call_rating":{"description":"Post-call survey configuration.","type":"object","properties":{"enabled":{"description":"Whether the post-call survey is enabled for contacts.","type":"boolean","example":true},"notification_voice_message":{"description":"Voice message played as a survey notification.","allOf":[{"$ref":"#/components/schemas/MediaVoiceMessage"}],"nullable":true},"instructions_voice_message":{"description":"Voice message played as survey instructions (e.g., \"rate from 1 to 5\").","allOf":[{"$ref":"#/components/schemas/MediaVoiceMessage"}],"nullable":true},"complete_voice_message":{"description":"Voice message played after survey completion.","allOf":[{"$ref":"#/components/schemas/MediaVoiceMessage"}],"nullable":true}}},"contact_local_time":{"description":"Time restrictions for calling contacts based on their local time. Available only if the contact local time feature is enabled for the contact center.\n","type":"object","nullable":true,"properties":{"start_time":{"description":"Start time for calls (HH:MM format).","type":"string","example":"08:00"},"end_time":{"description":"End time for calls (HH:MM format).","type":"string","example":"22:00"},"days_of_week":{"description":"Days of the week when calls are allowed.","type":"array","items":{"type":"integer","description":"Day of the week: 1 (Monday) through 7 (Sunday).","enum":[1,2,3,4,5,6,7]},"example":[1,2,3,4,5]}}},"created_at":{"description":"Timestamp when the campaign was created (ISO 8601).","type":"string","format":"date-time","example":"2026-01-15T10:30:00.000Z"},"updated_at":{"description":"Timestamp when the campaign was last updated (ISO 8601).","type":"string","format":"date-time","example":"2026-01-20T14:15:00.000Z"}}},"CampaignShort":{"description":"Campaign preview.","type":"object","properties":{"id":{"description":"The unique identifier of the campaign.","type":"integer","example":9},"name":{"description":"The name of the campaign.","type":"string","example":"Retention Outreach"}}},"CannedMessage":{"description":"Canned response template for messaging channels.","type":"object","properties":{"id":{"description":"The unique identifier of the canned message.","type":"integer","example":10},"name":{"description":"The name of the canned message.","type":"string","example":"Payment Confirmation"},"body":{"description":"Message body with optional placeholders.","type":"string","example":"Thank you for your payment of {{amount}}."},"channels":{"description":"Channels where this canned message can be used.","type":"array","items":{"type":"string","enum":["chat","facebook","instagram","sms","telegram","viber","whatsapp"]},"example":["sms","whatsapp","telegram"]},"teams":{"description":"Teams that can use this canned message.","type":"array","items":{"$ref":"#/components/schemas/TeamShort"}}}},"CannedMessageShort":{"description":"Canned response template preview.","type":"object","properties":{"id":{"description":"The unique identifier of the canned message.","type":"integer","example":10},"name":{"description":"The name of the canned message.","type":"string","example":"Payment Confirmation"}}},"Cdr":{"description":"Call detail record for reporting.","discriminator":{"propertyName":"type","mapping":{"call":"#/components/schemas/CdrRecordCall","conversation":"#/components/schemas/CdrRecordConversation","hlr_lookup":"#/components/schemas/CdrRecordHlrLookup","sms":"#/components/schemas/CdrRecordSms"}},"oneOf":[{"$ref":"#/components/schemas/CdrRecordCall"},{"$ref":"#/components/schemas/CdrRecordConversation"},{"$ref":"#/components/schemas/CdrRecordHlrLookup"},{"$ref":"#/components/schemas/CdrRecordSms"}]},"CdrEvent":{"description":"CDR timeline event.","type":"object","properties":{"id":{"description":"CDR event identifier.","type":"string","example":"775a5558-59a6-4468-a502-0deef2a3315d:1737775657101:dialing"},"event":{"description":"CDR event name.","type":"string","enum":["prequeue","inqueue","routing","dialing","connected","talk","released","hangup","terminate","hold","callback","agent_connected","queue_callback_request","blind_transfer","transfering","consulting","forward","forward_talk","participant","conference","listen","whisper","join","intercept","voice_mail","voice_mail_announce","postcall","recording_mute","recording_unmute","microphone_mute","timeout","reject","dnd_reject","fail","agent_declined","agent_timed_out","agent_logged_off","open","accept","forward_to_queue","accept_forwarding","archive","disconnect","start_monitoring","stop_monitoring","start_whispering","stop_whispering","start_barging_in","stop_barging_in","business_initiated_wait","force_close"],"example":"dialing"},"duration":{"description":"CDR event duration in seconds.","type":"number","format":"float","example":11.133,"nullable":true},"user":{"description":"Agent associated with the CDR event.","allOf":[{"$ref":"#/components/schemas/UserShort"},{"$ref":"#/components/schemas/CdrReferenceMeta"}],"nullable":true},"queue":{"description":"Queue associated with the CDR event.","allOf":[{"$ref":"#/components/schemas/QueueShort"},{"$ref":"#/components/schemas/CdrReferenceMeta"}],"nullable":true},"manager":{"description":"Whether the agent acted as a manager.","type":"boolean","example":true},"started_at":{"description":"When the CDR event started.","type":"string","format":"date-time","example":"2026-01-15T03:27:37.101000Z"},"ended_at":{"description":"When the CDR event ended.","type":"string","format":"date-time","example":"2026-01-15T03:27:48.234000Z","nullable":true}}},"CdrPartyChannelAccount":{"description":"Party information for a channel account.","type":"object","properties":{"type":{"description":"The party type.","type":"string","enum":["channel_account"],"example":"channel_account"},"channel_account":{"description":"Details of the channel account party.","allOf":[{"$ref":"#/components/schemas/ChannelAccount"},{"$ref":"#/components/schemas/CdrReferenceMeta"}]}}},"CdrPartyChannelProfile":{"description":"Party information for a channel profile.","type":"object","properties":{"type":{"description":"The party type.","type":"string","enum":["channel_profile"],"example":"channel_profile"},"channel_profile":{"description":"Details of the channel profile.","allOf":[{"$ref":"#/components/schemas/ChannelProfileShort"},{"$ref":"#/components/schemas/CdrReferenceMeta"}]}}},"CdrPartyPhoneNumber":{"description":"Party information for a phone number.","type":"object","properties":{"type":{"description":"The party type.","type":"string","enum":["phone_number"],"example":"phone_number"},"phone_number":{"description":"The party phone number.","type":"string","format":"phone","example":"18885658889"}}},"CdrRecordBase":{"description":"Common CDR fields.","type":"object","properties":{"user":{"description":"Agent associated with the CDR.","allOf":[{"$ref":"#/components/schemas/UserShort"},{"$ref":"#/components/schemas/CdrReferenceMeta"}],"nullable":true},"cost":{"description":"Cost of the interaction.","type":"string","example":"0.055","nullable":true},"tags":{"description":"Event tags.","type":"array","items":{"type":"string","enum":["barge_in","blind_transfer","call_score","conference","consult_transfer","forward","intercept","monitor","terminate","whisper"]},"example":["conference","whisper"],"nullable":true},"started_at":{"description":"The date and time the interaction started.","type":"string","format":"date-time","example":"2020-08-19T11:32:43.413000Z"},"ended_at":{"description":"The date and time the interaction ended.","type":"string","format":"date-time","example":"2020-08-19T11:33:11.031000Z","nullable":true}}},"CdrRecordCall":{"description":"Call detail record for voice calls.","allOf":[{"type":"object","properties":{"id":{"description":"The unique identifier of the CDR.","type":"string","format":"uuid","example":"775a5558-59a6-4468-a502-0deef2a3315d"},"type":{"description":"The CDR type.","type":"string","enum":["call"],"example":"call"},"subtype":{"description":"The CDR subtype.","type":"string","enum":["inbound","outbound","click_to_call","dialer","scheduled_callback","queue_callback"],"example":"outbound"},"disposition":{"description":"Disposition of the CDR.","type":"string","enum":["busy","answered","vm_answered","machine_answered","abandoned","dialer_abandoned","system_abandoned","rejected","system_rejected","no_answer","missed","failed"],"example":"answered"},"from":{"description":"Calling party details.","allOf":[{"$ref":"#/components/schemas/CdrPartyPhoneNumber"}],"nullable":true},"to":{"description":"Destination party details.","allOf":[{"$ref":"#/components/schemas/CdrPartyPhoneNumber"}],"nullable":true}}},{"$ref":"#/components/schemas/CdrRecordBase"},{"type":"object","properties":{"data":{"description":"Type-specific CDR payload.","type":"object","properties":{"queue":{"description":"Queue associated with the call.","allOf":[{"$ref":"#/components/schemas/QueueShort"},{"$ref":"#/components/schemas/CdrReferenceMeta"}],"nullable":true},"campaign":{"description":"Campaign associated with the call.","allOf":[{"$ref":"#/components/schemas/CampaignShort"},{"$ref":"#/components/schemas/CdrReferenceMeta"}],"nullable":true},"destination_country":{"description":"Destination country for outbound calls.","type":"string","example":"France","nullable":true},"durations":{"description":"Duration breakdown of the call.","type":"object","properties":{"overall":{"description":"Total duration in seconds.","type":"number","format":"float","example":27.618},"dialing":{"description":"Dialing time in seconds.","type":"number","format":"float","example":5.783},"ivr":{"description":"IVR time in seconds.","type":"number","format":"float","example":0},"queue":{"description":"Queue wait time in seconds.","type":"number","format":"float","example":10.796},"talk":{"description":"Talk time in seconds.","type":"number","format":"float","example":21.835},"hold":{"description":"Hold time in seconds.","type":"number","format":"float","example":0}}},"end_reason":{"description":"End reason for the call.","type":"string","enum":["agent","busy","customer","failed","machine","machine_answered","manager","no_answer","rejected","remote_party","system_reject","timeout"],"example":"customer","nullable":true},"wrapup_code":{"description":"Wrap-up code snapshot.","type":"object","nullable":true,"properties":{"code_snapshot":{"description":"Wrap-up code value.","type":"string","example":"0000"}}},"summary":{"description":"Call summary.","type":"string","example":"The agent called the customer to follow up on a previous inquiry.","nullable":true},"conversation_score":{"description":"Conversation score.","type":"number","format":"float","example":3.3,"nullable":true},"mos":{"description":"Mean opinion score (MOS) for the call.","type":"number","format":"float","example":4.37,"nullable":true},"mos_tc":{"description":"Mean opinion score (MOS) threshold value.","type":"number","format":"float","example":3.9,"nullable":true}}}}}]},"CdrRecordConversation":{"description":"Call detail record for messaging conversations.","allOf":[{"type":"object","properties":{"id":{"description":"The unique identifier of the CDR.","type":"string","format":"uuid","example":"3f183f44-1551-45ad-bd6b-d3193b2ff617"},"type":{"description":"The CDR type.","type":"string","enum":["conversation"],"example":"conversation"},"subtype":{"description":"The CDR subtype.","type":"string","enum":["chat","facebook","instagram","telegram","viber","whatsapp"],"example":"whatsapp"},"disposition":{"description":"Disposition of the CDR.","type":"string","enum":["active","archived","initiated","waiting"],"example":"archived"},"from":{"description":"Sender party details.","discriminator":{"propertyName":"type","mapping":{"channel_account":"#/components/schemas/CdrPartyChannelAccount","channel_profile":"#/components/schemas/CdrPartyChannelProfile"}},"nullable":true,"oneOf":[{"$ref":"#/components/schemas/CdrPartyChannelAccount"},{"$ref":"#/components/schemas/CdrPartyChannelProfile"}]},"to":{"description":"Recipient party details.","discriminator":{"propertyName":"type","mapping":{"channel_account":"#/components/schemas/CdrPartyChannelAccount","channel_profile":"#/components/schemas/CdrPartyChannelProfile"}},"nullable":true,"oneOf":[{"$ref":"#/components/schemas/CdrPartyChannelAccount"},{"$ref":"#/components/schemas/CdrPartyChannelProfile"}]}}},{"$ref":"#/components/schemas/CdrRecordBase"},{"type":"object","properties":{"data":{"description":"Type-specific CDR payload.","type":"object","properties":{"channel":{"description":"Channel for the conversation.","type":"string","example":"whatsapp"},"flow":{"description":"Flow associated with the conversation.","allOf":[{"$ref":"#/components/schemas/FlowShort"},{"$ref":"#/components/schemas/CdrReferenceMeta"}],"nullable":true},"queue":{"description":"Queue associated with the conversation.","allOf":[{"$ref":"#/components/schemas/QueueShort"},{"$ref":"#/components/schemas/CdrReferenceMeta"}],"nullable":true},"wrapup_code":{"description":"Wrap-up code snapshot.","type":"object","nullable":true,"properties":{"code_snapshot":{"description":"Wrap-up code value.","type":"string","example":"0000"}}},"durations":{"description":"Duration breakdown of the conversation.","type":"object","properties":{"overall":{"description":"Total duration in seconds.","type":"number","format":"float","example":31372.8},"queue":{"description":"Queue wait time in seconds.","type":"number","format":"float","example":4233.2},"talk":{"description":"Contact time in seconds.","type":"number","format":"float","example":27139.6}}},"service_level_agreements":{"description":"Service level agreements for the conversation.","type":"object","properties":{"first_response":{"allOf":[{"$ref":"#/components/schemas/CdrServiceLevelAgreement"}],"nullable":true},"resolution":{"allOf":[{"$ref":"#/components/schemas/CdrServiceLevelAgreement"}],"nullable":true},"avg_reply":{"allOf":[{"$ref":"#/components/schemas/CdrServiceLevelAgreement"}],"nullable":true}}}}}}}]},"CdrRecordHlrLookup":{"description":"Call detail record for HLR lookups.","allOf":[{"type":"object","properties":{"id":{"description":"The unique identifier of the CDR.","type":"string","format":"uuid","example":"c763ee00-6a2f-4de1-bc9a-01aa5eaa123f"},"type":{"description":"The CDR type.","type":"string","enum":["hlr_lookup"],"example":"hlr_lookup"},"subtype":{"description":"The CDR subtype.","type":"string","enum":["hlr_lookup"],"example":"hlr_lookup"},"disposition":{"description":"Disposition of the CDR.","type":"string","enum":["available","unavailable","unknown"],"example":"available"},"from":{"description":"Requesting party phone number.","allOf":[{"$ref":"#/components/schemas/CdrPartyPhoneNumber"}],"nullable":true},"to":{"description":"Phone number queried in the HLR lookup.","allOf":[{"$ref":"#/components/schemas/CdrPartyPhoneNumber"}],"nullable":true}}},{"$ref":"#/components/schemas/CdrRecordBase"},{"type":"object","properties":{"data":{"description":"Type-specific CDR payload.","type":"object","properties":{"reachable":{"description":"Whether the destination is reachable.","type":"boolean","example":true},"roaming":{"description":"Whether the destination is roaming.","type":"boolean","example":true,"nullable":true},"related_call":{"description":"Related call reference if present.","allOf":[{"$ref":"#/components/schemas/CallShort"}],"nullable":true}}}}}]},"CdrRecordSms":{"description":"Call detail record for SMS messages.","allOf":[{"type":"object","properties":{"id":{"description":"The unique identifier of the CDR.","type":"string","format":"uuid","example":"ff8013c6-8ea1-4d2c-a5c5-816c8ab57a38"},"type":{"description":"The CDR type.","type":"string","enum":["sms"],"example":"sms"},"subtype":{"description":"The CDR subtype.","type":"string","enum":["outbound_sms"],"example":"outbound_sms"},"disposition":{"description":"Disposition of the CDR.","type":"string","enum":["sent","delivered","not_sent","not_delivered","route_unavailable"],"example":"sent"},"from":{"description":"Sending party details.","allOf":[{"$ref":"#/components/schemas/CdrPartyPhoneNumber"}],"nullable":true},"to":{"description":"Recipient party details.","allOf":[{"$ref":"#/components/schemas/CdrPartyPhoneNumber"}],"nullable":true}}},{"$ref":"#/components/schemas/CdrRecordBase"},{"type":"object","properties":{"data":{"description":"Type-specific CDR payload.","type":"object","properties":{"sent":{"description":"Whether the message was sent successfully.","type":"boolean","example":true},"segments_count":{"description":"Number of SMS segments.","type":"integer","example":1},"message":{"description":"SMS message content.","type":"string","example":"Hi Javier, this is a reminder about your appointment scheduled for 17:00."},"canned_message":{"description":"Canned message snapshot if used.","allOf":[{"$ref":"#/components/schemas/CannedMessageShort"},{"$ref":"#/components/schemas/CdrReferenceMeta"}],"nullable":true},"related_call":{"description":"Related call reference if present.","allOf":[{"$ref":"#/components/schemas/CallShort"}],"nullable":true}}}}}]},"CdrReferenceMeta":{"description":"Reference metadata captured in the CDR.","type":"object","properties":{"name_snapshot":{"description":"Name snapshot captured at the time of the interaction.","type":"string","example":"Snapshot name","nullable":true},"deleted":{"description":"Whether the referenced record is deleted.","type":"boolean","example":false}}},"CdrServiceLevelAgreement":{"description":"Service level agreement details.","type":"object","properties":{"value":{"description":"SLA time value in seconds.","type":"number","format":"float","example":27139.6},"status":{"description":"SLA status.","type":"string","enum":["ok","strained","failed"],"example":"ok"}}},"ChannelAccount":{"type":"object","properties":{"id":{"description":"The unique identifier of the channel account.","type":"string","format":"uuid","example":"0b62763c-40d6-4ec8-8380-3cb94e442a75"},"channel":{"description":"The messaging channel.","type":"string","enum":["chat","facebook","instagram","telegram","viber","whatsapp"],"example":"whatsapp"},"identifier":{"description":"Channel-specific identifier of the contact.","type":"string","example":"15551234567"},"data":{"description":"Additional channel data.","type":"object","properties":{"name":{"description":"Display name of the contact.","type":"string","example":"John Smith","nullable":true},"username":{"description":"Channel username when applicable.","type":"string","example":"johnsmith","nullable":true}},"required":["name"]}}},"ChannelProfile":{"type":"object","properties":{"id":{"description":"The unique identifier of the channel profile.","type":"integer","example":12},"channel":{"description":"The channel associated with the profile.","type":"string","enum":["chat","facebook","instagram","telegram","viber","whatsapp"],"example":"whatsapp"},"identifier":{"description":"Channel profile identifier (for WhatsApp, the phone number).","type":"string","example":"18885658889","nullable":true},"name":{"description":"The name of the channel profile.","type":"string","example":"WhatsApp Main (18885658889)"}}},"ChannelProfileShort":{"type":"object","properties":{"id":{"description":"The unique identifier of the channel profile.","type":"integer","example":12},"channel":{"description":"The channel associated with the profile.","type":"string","enum":["chat","facebook","instagram","telegram","viber","whatsapp"],"example":"whatsapp"},"identifier":{"description":"Channel profile identifier (for WhatsApp, the phone number).","type":"string","example":"18885658889","nullable":true},"name":{"description":"The name of the channel profile.","type":"string","example":"WhatsApp Main (18885658889)"}}},"Conversation":{"type":"object","properties":{"id":{"description":"The unique identifier of the conversation.","type":"string","format":"uuid","example":"0b62763c-40d6-4ec8-8380-3cb94e442a75"},"channel_profile":{"description":"Channel profile handling the conversation.","allOf":[{"$ref":"#/components/schemas/ChannelProfileShort"}],"nullable":true},"contact_channel_account":{"description":"Contact account used for the conversation.","allOf":[{"$ref":"#/components/schemas/ChannelAccount"}]},"user":{"description":"User assigned to the conversation.","allOf":[{"$ref":"#/components/schemas/UserShort"}],"nullable":true},"flow":{"description":"Flow used to route the conversation.","allOf":[{"$ref":"#/components/schemas/FlowShort"}],"nullable":true},"queue":{"description":"Queue where the conversation is routed.","allOf":[{"$ref":"#/components/schemas/QueueShort"}],"nullable":true},"status":{"description":"Current status of the conversation.","type":"string","enum":["initial","active","archived","business_initiated","business_initiated_waiting","contact_disconnected","dropped","flow_ai_waiting","flow_controlled","flow_initiated","flow_initiated_waiting","flow_waiting","force_closed","forwarding","rejected","ringing","system_initiated_waiting","terminated","waiting","window_waiting"],"example":"active"}}},"ConversationShort":{"type":"object","properties":{"id":{"description":"The unique identifier of the conversation.","type":"string","format":"uuid","example":"0b62763c-40d6-4ec8-8380-3cb94e442a75"}}},"FlowShort":{"type":"object","properties":{"id":{"description":"The unique identifier of the flow.","type":"string","format":"uuid","example":"0b62763c-40d6-4ec8-8380-3cb94e442a75"},"name":{"description":"The name of the flow.","type":"string","example":"Lead Qualification"}}},"FollowupActionWhatsapp":{"type":"object","properties":{"type":{"description":"Type of follow-up action.","type":"string","enum":["whatsapp"],"example":"whatsapp"},"channel_profile":{"description":"WhatsApp channel profile to use.","allOf":[{"$ref":"#/components/schemas/ChannelProfileShort"}]},"whatsapp_template":{"description":"WhatsApp message template to send.","allOf":[{"$ref":"#/components/schemas/WhatsappTemplateShort"}]}}},"FollowupRuleRedial":{"type":"object","properties":{"type":{"description":"Type of follow-up rule.","type":"string","enum":["redial"],"example":"redial"},"wait_time":{"description":"Time to wait before executing the action.","type":"integer","example":20},"wait_time_unit":{"description":"Unit of wait time.","type":"string","enum":["seconds","minutes","hours"],"example":"minutes"},"switch_caller_id_set":{"description":"Whether to switch to a different caller ID set.","type":"boolean","example":false},"actions":{"description":"Additional actions to perform with this rule.","type":"array","items":{"$ref":"#/components/schemas/FollowupActionWhatsapp"}}}},"Lead":{"description":"Lead object used for campaign import and update operations.","type":"object","properties":{"phone_number":{"description":"The phone number of the lead.","type":"string","format":"phone","example":"15551234567"},"name":{"description":"The display name of the lead.","type":"string","example":"John Doe"},"source":{"description":"Information about the external system that provided the lead, such as a CRM.","type":"object","properties":{"system":{"description":"External system that provided the lead.","type":"string","example":"my_crm"},"url":{"description":"URL of the lead in the external system.","type":"string","format":"uri","example":"https://example.com/leads/123"}}},"priority":{"description":"The lead's priority for calling purposes. Lower values indicate higher priority. Leads without a priority are called last.","type":"integer","minimum":1,"maximum":1000,"example":10},"active":{"description":"Indicates whether the lead should be called in this campaign.","type":"boolean","example":false},"context_headers":{"description":"Custom SIP headers sent by Voiso during dialer calls to provide lead context to virtual agents.\nEach key represents a SIP header name (must start with \"X-\" and contain only a-z, A-Z, 0-9, -, _, ., !, ~, *, +), and each value represents the corresponding header value.\n","type":"object","additionalProperties":{"type":"string","description":"Header value.","pattern":"^[\\w\\-.!~*+=;%]+$"},"example":{"X-Client-Order-Id":"1234","X-Call-Context":"discount_promo_code"}}},"required":["phone_number"]},"LeadsImport":{"description":"Result of importing leads into a campaign.","type":"object","properties":{"created":{"description":"Phone numbers of leads that were successfully created.","type":"array","items":{"type":"string","format":"phone"}},"rejected":{"description":"Phone numbers of leads that were rejected.","type":"array","items":{"type":"string","format":"phone"}},"duplicates":{"description":"Phone numbers of leads that were already present in the campaign.","type":"array","items":{"type":"string","format":"phone"}}}},"LeadsUpdate":{"description":"Result of updating leads in a campaign.","type":"object","properties":{"updated":{"description":"Phone numbers of leads that were successfully updated.","type":"array","items":{"type":"string","format":"phone"}},"rejected":{"description":"Phone numbers of leads that were rejected.","type":"array","items":{"type":"string","format":"phone"}},"not_found":{"description":"Phone numbers of leads that were not found in the campaign.","type":"array","items":{"type":"string","format":"phone"}}}},"MediaMusicOnHold":{"description":"Music on hold Media object.","type":"object","properties":{"type":{"description":"The type of media.","type":"string","enum":["music_on_hold"],"example":"music_on_hold"},"name":{"description":"The name of the media.","type":"string","example":"Morning coffee (Default)"}}},"MediaRingtone":{"description":"Ringtone Media object.","type":"object","properties":{"type":{"description":"The type of media.","type":"string","enum":["ringtone"],"example":"ringtone"},"name":{"description":"The name of the media.","type":"string","example":"Bells (Default)"}}},"MediaVoiceMessage":{"description":"Voice message Media object.","type":"object","properties":{"type":{"description":"The type of media.","type":"string","enum":["voice_message"],"example":"voice_message"},"name":{"description":"The name of the media.","type":"string","example":"Instructions"}}},"Message":{"type":"object","properties":{"id":{"description":"The unique identifier of the message.","type":"string","format":"uuid","example":"1f839685-9b8f-4d01-8a7a-c5a91532e2f7"},"conversation":{"description":"The ID of the conversation this message belongs to.","allOf":[{"$ref":"#/components/schemas/ConversationShort"}]},"direction":{"description":"Direction of the message.","type":"string","enum":["inbound","outbound","whisper"],"example":"outbound"},"user":{"description":"Agent who sent the message.","allOf":[{"$ref":"#/components/schemas/UserShort"}],"nullable":true},"target_user":{"description":"Agent who received the whisper.","allOf":[{"$ref":"#/components/schemas/UserShort"}],"nullable":true},"content_type":{"description":"The message content type.","type":"string","enum":["audio","contact","document","image","location","text","video","voice"],"example":"text"},"content_data":{"description":"Content payload. Structure varies by content type.","oneOf":[{"$ref":"#/components/schemas/MessageContentDataText"},{"$ref":"#/components/schemas/MessageContentDataMedia"}]},"status":{"description":"Status of the message.","type":"string","enum":["initial","accepted","uploading","waiting","ready","sent","delivered","seen","whispered","failed"],"example":"delivered"},"status_reason":{"description":"Additional information when the message status is failed.","type":"string","example":null,"nullable":true},"created_at":{"description":"Date and time the message was created.","type":"string","format":"date-time","example":"2025-11-11T12:00:00.216000Z"},"updated_at":{"description":"Date and time the message was last updated.","type":"string","format":"date-time","example":"2025-11-11T12:05:00.216000Z"}}},"MessageContentDataMedia":{"description":"Payload for audio, document, image, video, or voice messages.","type":"object","properties":{"url":{"description":"Media URL.","type":"string","format":"uri","example":"https://cdn.domain.tld/media/ext/invoice.pdf"},"filename":{"description":"Name of the media file when applicable.","type":"string","example":"invoice.pdf","nullable":true},"size":{"description":"Size of the media file in bytes.","type":"integer","example":20480,"nullable":true},"caption":{"description":"Optional caption for the media file.","type":"string","example":"Please review the attached invoice.","nullable":true}}},"MessageContentDataText":{"description":"Payload for text messages.","type":"object","properties":{"text":{"description":"Text content of the message.","type":"string","example":"Hi, how can I help you?"}}},"Metadata":{"description":"Pagination metadata for list responses.","type":"object","properties":{"total":{"description":"The total number of items available for the requested resource.","type":"integer","example":100}}},"Number":{"type":"object","properties":{"id":{"description":"The unique identifier of the number.","type":"integer","example":18},"phone_number":{"description":"The phone number.","type":"string","example":"421233056080"},"label":{"description":"Label for the number.","type":"string","default":"Not assigned","example":"Main line","nullable":true},"type":{"description":"Number type.","type":"string","enum":["mobile","national","toll_free","shared_cost","geographic"],"example":"geographic"},"country":{"description":"Country of the number.","type":"string","example":"Slovakia","nullable":true},"city":{"description":"City of the number.","type":"string","example":"Bratislava","nullable":true},"channels":{"description":"Channel capacity for the number.","type":"integer","example":4,"nullable":true},"provider":{"description":"Provider of the number.","type":"string","enum":["Voiso","3rd party"],"example":"Voiso","nullable":true},"pricing":{"description":"Pricing details.","type":"object","properties":{"activation_fee":{"type":"string","example":"4.99"},"monthly_fee":{"type":"string","example":"5.99"},"partial_month_fee":{"type":"string","example":"3.79"},"price_per_min":{"type":"string","example":"0.0152"}}},"caller_id_groups":{"description":"Caller ID groups that include this number.","type":"array","items":{"$ref":"#/components/schemas/CallerIDGroupShort"}},"flow":{"description":"Associated flow.","allOf":[{"$ref":"#/components/schemas/FlowShort"}]},"created_at":{"description":"Date and time the number was created.","type":"string","format":"date-time","example":"2025-11-11T12:00:00.216000Z"}}},"Queue":{"type":"object","properties":{"id":{"description":"The unique identifier of the queue.","type":"integer","example":1},"name":{"description":"The name of the queue.","type":"string","example":"Technical Support"},"extension":{"description":"The phone extension used to direct calls to the queue.","type":"string","example":"4000","nullable":true},"strategy":{"description":"Specifies how interactions are distributed to agents.","type":"string","enum":["linear","circular","fewest_calls","least_recent","ring_all"],"example":"ring_all"},"music_on_hold":{"description":"The media played to callers while on hold.","allOf":[{"$ref":"#/components/schemas/MediaMusicOnHold"}],"nullable":true},"in_queue_announcement":{"description":"Settings for messages played to callers waiting in queue.","type":"object","properties":{"interval":{"description":"Number of seconds between replaying the in-queue announcements.","type":"integer","example":60},"voice_message":{"description":"Voice message used for in-queue announcements.","allOf":[{"$ref":"#/components/schemas/MediaVoiceMessage"}]},"announce_position":{"description":"Automatically announce the caller's position in the queue.","type":"boolean","example":true},"announce_wait_time":{"description":"Automatically announce the estimated wait time.","type":"boolean","example":true}}},"failover_destination":{"description":"Defines where to redirect if it waits in the queue longer than the configured `wait_time`.","type":"object","properties":{"type":{"description":"Type of the failover destination.","type":"string","enum":["agent","queue","terminate","voicemail","3rd_party_number"],"example":"voicemail"},"wait_time":{"description":"Number of seconds to wait before redirecting.","type":"integer","example":300},"destination":{"description":"Failover destination details depending on type.","oneOf":[{"type":"object","description":"Redirect to another queue.","properties":{"queue":{"description":"Queue to redirect the caller to.","allOf":[{"$ref":"#/components/schemas/QueueShort"}]}}},{"type":"object","description":"Redirect to a specific agent.","properties":{"agent":{"description":"Agent to redirect the caller to.","allOf":[{"$ref":"#/components/schemas/UserShort"}]}}},{"type":"object","description":"Redirect to an external phone number.","properties":{"phone_number":{"description":"External phone number.","type":"string","format":"phone","example":"18885658889"}}},{"type":"object","description":"Send to voicemail.","properties":{"voicemail":{"description":"Voicemail configuration for this destination.","type":"object","properties":{"voice_message":{"description":"Voice message played when sending to voicemail.","allOf":[{"$ref":"#/components/schemas/MediaVoiceMessage"}]},"report":{"description":"Send voicemail via email","type":"object","properties":{"emails":{"description":"The email addresses to which the voicemail is directed.","type":"array","items":{"type":"string","format":"email","example":"john@contactcenter.com"}}}}}}}}]}}},"callback":{"description":"Allow contacts to request a callback when an agent becomes available rather than waiting in the queue.","type":"object","properties":{"wait_time":{"description":"The number of seconds to wait before offering the callback option.","type":"integer","example":300},"caller_id_group":{"description":"Caller ID group used for the callback.","allOf":[{"$ref":"#/components/schemas/CallerIDGroupShort"}]},"offer_voice_message":{"description":"Voice message played when offering a callback.","allOf":[{"$ref":"#/components/schemas/MediaVoiceMessage"}]},"confirmation_voice_message":{"description":"Voice message confirming the callback request.","allOf":[{"$ref":"#/components/schemas/MediaVoiceMessage"}]}}},"post_call_rating":{"description":"Allow contacts to evaluate the call by asking them to participate in a survey.","type":"object","properties":{"notification_voice_message":{"description":"Voice message notifying about the survey.","allOf":[{"$ref":"#/components/schemas/MediaVoiceMessage"}]},"instruction_voice_message":{"description":"Voice message providing survey instructions.","allOf":[{"$ref":"#/components/schemas/MediaVoiceMessage"}]},"complete_voice_message":{"description":"Voice message confirming survey completion.","allOf":[{"$ref":"#/components/schemas/MediaVoiceMessage"}]}}},"channels":{"description":"Connected channels with priorities.","type":"array","items":{"type":"object","properties":{"channel":{"description":"The name of the channel.","type":"string","enum":["chat","facebook","instagram","telegram","viber","whatsapp"],"example":"whatsapp"},"priority":{"description":"The priority of the channel.","type":"integer","minimum":1,"maximum":10,"example":1}}}},"skills":{"description":"Skills associated with the queue.","type":"array","items":{"$ref":"#/components/schemas/Skill"}}}},"QueueShort":{"type":"object","properties":{"id":{"description":"The unique identifier of the queue.","type":"integer","example":1},"name":{"description":"The name of the queue.","type":"string","example":"Technical Support"}}},"RangeFilterDateTime":{"description":"Date-time range filter with comparison operators.","type":"object","properties":{"eq":{"type":"string","format":"date-time"},"gt":{"type":"string","format":"date-time"},"gte":{"type":"string","format":"date-time"},"lt":{"type":"string","format":"date-time"},"lte":{"type":"string","format":"date-time"}},"example":{"gte":"2024-01-01T00:00:00Z","lt":"2024-02-01T00:00:00Z"}},"RangeFilterFloat":{"description":"Numeric range filter with comparison operators.","type":"object","properties":{"eq":{"type":"number","format":"float","minimum":0},"gt":{"type":"number","format":"float","minimum":0},"gte":{"type":"number","format":"float","minimum":0},"lt":{"type":"number","format":"float","minimum":0},"lte":{"type":"number","format":"float","minimum":0}},"example":{"gte":3.5,"lt":5}},"ScheduledCallback":{"type":"object","properties":{"id":{"description":"The unique identifier of the scheduled callback.","type":"integer","example":149},"phone_number":{"description":"The phone number to call back.","type":"string","example":"18885658889"},"scheduled_at":{"description":"The time of the callback in ISO8601 format.","type":"string","format":"date-time","example":"2025-12-12T12:00:00.000+02:00"},"user":{"description":"The agent assigned to the callback.","allOf":[{"$ref":"#/components/schemas/UserShort"}]},"caller_id_group":{"description":"Caller ID group used for the callback.","allOf":[{"$ref":"#/components/schemas/CallerIDGroupShort"}]},"note":{"description":"Notes provided for the callback.","type":"string","example":"Follow up call","nullable":true},"related_call":{"type":"object","nullable":true,"properties":{"id":{"description":"Identifier of the related call.","type":"string","format":"uuid","example":"0b97ce11-b6e0-49b4-8f92-68040aa324bf"}}},"source":{"type":"object","nullable":true,"properties":{"system":{"description":"External system that initiated the callback.","type":"string","example":"zoho"},"account_id":{"description":"Contact identifier in the external system.","type":"string","example":"ACC01"}}},"status":{"description":"The current status of the scheduled callback.","type":"string","enum":["pending","in_progress","completed","failed","in_failover"],"example":"pending"}}},"ScheduledCallbackDestinationExternalSystem":{"type":"object","properties":{"type":{"description":"Destination type identifier.","type":"string","enum":["external_system"],"example":"external_system"},"system":{"description":"External system that initiated the callback.","type":"string","example":"mycrm"},"account_id":{"description":"Contact identifier in the external system.","type":"string","example":"ACC01"}},"required":["type","system","account_id"]},"ScheduledCallbackDestinationPhoneNumber":{"type":"object","properties":{"type":{"description":"Destination type identifier.","type":"string","enum":["phone_number"],"example":"phone_number"},"phone_number":{"description":"Phone number to call back.","type":"string","example":"18885658889"}},"required":["type","phone_number"]},"ScheduledCallbackDestinationRelatedCall":{"type":"object","properties":{"type":{"description":"Destination type identifier.","type":"string","enum":["related_call"],"example":"related_call"},"call_id":{"description":"Identifier of the related call to reference.","type":"string","example":"54ae2354-2f6e-485a-bad5-dbdf1463ea2d"}},"required":["type","call_id"]},"SecurityAccessGroupShort":{"type":"object","properties":{"id":{"description":"The unique identifier of the security access group.","type":"integer","example":3},"name":{"description":"The name of the security access group.","type":"string","example":"Boarding"}}},"Skill":{"type":"object","properties":{"id":{"description":"The unique identifier of the skill.","type":"integer","example":1},"name":{"description":"The name of the skill.","type":"string","example":"Sales"}}},"Sms":{"description":"SMS message.","type":"object","properties":{"id":{"description":"The unique identifier of the SMS.","type":"string","format":"uuid","example":"3fa85f64-5717-4562-b3fc-2c963f66afa6"}}},"SmsContentDataCannedMessage":{"description":"SMS content using a canned message template.","type":"object","properties":{"canned_message_id":{"description":"The identifier of the canned message template.","type":"integer","example":174},"params":{"description":"Key-value pairs for canned message placeholders.","type":"object","additionalProperties":{"type":"string"},"example":{"contact_name":"Tony","agent_name":"John"}}},"required":["canned_message_id"]},"SmsContentDataText":{"description":"SMS content with a plain text body.","type":"object","properties":{"body":{"description":"The text of the SMS message.","type":"string","example":"Hello, your order has been shipped."}},"required":["body"]},"SpeechAnalytics":{"description":"Speech analytics data for a CDR, including transcription, summary, and score.","type":"object","properties":{"id":{"description":"The unique identifier of the CDR.","type":"string","format":"uuid","example":"f0ed7183-cddb-46c5-9037-19e16126764f"},"summary":{"description":"Summary of the speech analytics.","type":"object","properties":{"language":{"description":"Language code of the summary text.","type":"string","example":"es"},"text":{"description":"Summary text of the conversation.","type":"string","example":"El cliente llamó por error, el agente se presentó como representante de la empresa Example, y el cliente se disculpó."}}},"score":{"description":"Speech analytics score.","type":"object","properties":{"value":{"description":"The score value.","type":"number","format":"float","example":2}}},"transcription":{"description":"Transcription of the conversation.","type":"object","properties":{"language":{"description":"Language code of the transcription.","type":"string","example":"es"},"utterances":{"description":"List of utterances in the conversation.","type":"array","items":{"description":"A single utterance in the transcription.","type":"object","properties":{"start_time":{"description":"When the utterance started.","type":"string","format":"date-time","example":"2026-01-20T18:19:45.202Z"},"end_time":{"description":"When the utterance ended.","type":"string","format":"date-time","example":"2026-01-20T18:19:45.522Z"},"text":{"description":"The transcribed text of the utterance.","type":"string","example":"Hola!"},"participant_type":{"description":"Type of participant speaking.","type":"string","enum":["agent","contact"],"example":"contact"}}}}}}}},"Team":{"type":"object","properties":{"id":{"description":"The unique identifier of the team.","type":"integer","example":3},"name":{"description":"The name of the team.","type":"string","example":"Multilingual Support"},"max_call_attempts":{"description":"The maximum number of call attempts allowed for the team.","type":"integer","minimum":1,"example":5},"wrapup_code_group":{"description":"The wrap-up code group assigned to the team.","allOf":[{"$ref":"#/components/schemas/WrapupCodeGroupShort"}],"nullable":true}}},"TeamShort":{"type":"object","properties":{"id":{"description":"The unique identifier of the team.","type":"integer","example":3},"name":{"description":"The name of the team.","type":"string","example":"Multilingual Support"}}},"User":{"type":"object","properties":{"id":{"description":"The unique identifier of the user.","type":"string","format":"uuid","example":"0b97ce11-b6e0-49b4-8f92-68040aa324bf"},"name":{"description":"The name of the user.","type":"string","example":"Jane Doe"},"email":{"description":"The email address of the user.","type":"string","format":"email","example":"jane.doe@companyname.com"},"sip_account":{"description":"The SIP account in the format username@domain.","type":"string","example":"jane.doe@contactcenter.com"},"extension":{"description":"The phone extension assigned to the user.","type":"string","example":"102","nullable":true},"caller_id":{"description":"The caller ID.","type":"string","example":"12025550123","nullable":true},"employee_id":{"description":"An internal employee identifier.","type":"string","example":"E-482","nullable":true},"timezone":{"description":"The user's IANA time zone.","type":"string","example":"America/New_York"},"security_access_group":{"description":"Security access group assigned to the user.","allOf":[{"$ref":"#/components/schemas/SecurityAccessGroupShort"}],"nullable":true},"teams":{"description":"Teams the user belongs to.","type":"array","items":{"$ref":"#/components/schemas/TeamShort"}},"supervised_teams":{"description":"Teams supervised by the user.","type":"array","items":{"$ref":"#/components/schemas/TeamShort"}},"queues":{"description":"Queues the user belongs to.","type":"array","items":{"$ref":"#/components/schemas/QueueShort"}},"supervised_queues":{"description":"Queues supervised by the user.","type":"array","items":{"$ref":"#/components/schemas/QueueShort"}},"webrtc_ringtone":{"description":"WebRTC ringtone media for the user.","allOf":[{"$ref":"#/components/schemas/MediaRingtone"}],"nullable":true},"channels":{"description":"Channels enabled for the user.","type":"array","items":{"type":"string","enum":["chat","facebook","instagram","telegram","viber","voice","whatsapp"]},"example":["voice","chat","whatsapp"]},"channel_group_capacity":{"description":"Per-channel capacity limits.","type":"object","properties":{"chat":{"description":"Maximum concurrent chat conversations.","type":"integer","minimum":0,"example":5},"instant":{"description":"Maximum concurrent instant messaging conversations.","type":"integer","minimum":0,"example":3}}},"channel_profiles":{"description":"Channel profiles assigned to the user.","type":"array","items":{"$ref":"#/components/schemas/ChannelProfileShort"}},"speech_language":{"description":"Preferred speech recognition language.","type":"string","enum":["ar","auto","de","en","es","fr","hi","it","nl","pl","pt"],"example":"en","nullable":true},"skills":{"description":"Skills and proficiency levels.","type":"array","items":{"type":"object","properties":{"skill":{"description":"Skill assigned to the user.","allOf":[{"$ref":"#/components/schemas/Skill"}]},"value":{"description":"Proficiency level for the skill.","type":"integer","minimum":1,"maximum":10,"example":5}}}},"status":{"description":"Current status of the user.","type":"string","enum":["offline","unavailable","available","inbound","outbound","dialer","postcall"],"example":"available"},"created_at":{"description":"Date and time the user was created.","type":"string","format":"date-time","example":"2025-11-11T12:00:00.216000Z"},"updated_at":{"description":"Date and time the user was updated.","type":"string","format":"date-time","example":"2025-11-11T12:00:00.216000Z"},"deleted_at":{"description":"Date and time the user was deleted (if applicable).","type":"string","format":"date-time","example":"2025-11-11T12:00:00.216000Z"}}},"UserShort":{"type":"object","properties":{"id":{"description":"The unique identifier of the user.","type":"string","format":"uuid","example":"0b97ce11-b6e0-49b4-8f92-68040aa324bf"},"name":{"description":"The name of the user.","type":"string","example":"Jane Doe"},"email":{"description":"The email address of the user.","type":"string","format":"email","example":"jane.doe@contactcenter.com"}}},"WhatsappTemplate":{"type":"object","properties":{"id":{"description":"The unique identifier of the WhatsApp template.","type":"string","format":"uuid","example":"0b62763c-40d6-4ec8-8380-3cb94e442a75"},"name":{"description":"The name of the WhatsApp template.","type":"string","example":"appointment_reminder"},"category":{"description":"Template category defined in WhatsApp Business.","type":"string","example":"utility"},"language":{"description":"Template language.","type":"string","example":"en"},"body":{"description":"Template body text with optional placeholders.","type":"string","example":"Hi {{1}}, this is a reminder about your appointment on {{2}}."},"status":{"description":"The approval status of the template.","type":"string","enum":["pending","rejected","approved"],"example":"approved"},"status_reason":{"description":"Optional reason for the current status.","type":"string","example":null,"nullable":true},"channel_profiles":{"description":"Channel profiles permitted to use this template.","type":"array","items":{"$ref":"#/components/schemas/ChannelProfileShort"}}}},"Webhook":{"type":"object","properties":{"id":{"description":"The unique identifier of the webhook.","type":"string","format":"uuid","example":"0b97ce11-b6e0-49b4-8f92-68040aa324bf"},"name":{"description":"The name of the webhook.","type":"string","example":"CRM call events"},"http_method":{"description":"The HTTP method used for the webhook request.","type":"string","enum":["post","put"],"example":"post"},"url":{"description":"The destination URL for the webhook.","type":"string","format":"uri","example":"https://example.com/webhook"},"authentication_method":{"description":"The authentication method configured for the webhook.","type":"string","enum":["basic","api_key","bearer_token"],"example":"basic","nullable":true},"headers":{"description":"Custom HTTP headers sent with the webhook request.","type":"object","additionalProperties":{"type":"string"},"example":{"X-Custom-Header":"value"}},"events":{"description":"The list of event types that trigger the webhook.","type":"array","items":{"type":"string"},"example":["inbound.call.answered","outbound.call.answered"]},"created_at":{"description":"The time when the webhook was created (ISO 8601).","type":"string","format":"date-time","example":"2025-01-15T10:30:00.000000Z"},"updated_at":{"description":"The time when the webhook was last updated (ISO 8601).","type":"string","format":"date-time","example":"2025-01-15T10:30:00.000000Z"}}},"WebhookFailure":{"type":"object","properties":{"id":{"description":"The unique identifier of the webhook failure.","type":"integer","example":149},"webhook":{"description":"The webhook associated with this failure.","allOf":[{"$ref":"#/components/schemas/WebhookShort"}]},"event":{"description":"The event type that triggered the failed delivery.","type":"string","example":"inbound.call.answered"},"failed_target":{"description":"Details about the failed delivery target.","type":"object","properties":{"url":{"description":"The URL the webhook was sent to.","type":"string","format":"uri","example":"https://example.com/webhook"}}},"created_at":{"description":"The time when the failure was recorded (ISO 8601).","type":"string","format":"date-time","example":"2025-01-15T10:30:00.000000Z"},"updated_at":{"description":"The time when the failure was last updated (ISO 8601).","type":"string","format":"date-time","example":"2025-01-15T10:30:00.000000Z"}}},"WebhookShort":{"type":"object","properties":{"id":{"description":"The unique identifier of the webhook.","type":"string","format":"uuid","example":"0b97ce11-b6e0-49b4-8f92-68040aa324bf"},"name":{"description":"The name of the webhook.","type":"string","example":"CRM call events"}}},"WhatsappTemplateShort":{"type":"object","properties":{"id":{"description":"The unique identifier of the WhatsApp template.","type":"string","format":"uuid","example":"3f0a7ce4-1b82-4c38-9e59-1e57dc8e2b52"},"name":{"description":"The name of the WhatsApp template.","type":"string","example":"Missed Call Follow-up"}}},"WrapupCode":{"type":"object","properties":{"id":{"description":"The unique identifier of the wrap-up code.","type":"integer","example":1},"name":{"description":"The name of the wrap-up code.","type":"string","example":"Issue Resolved"},"code":{"description":"The wrap-up code value.","type":"string","example":"0002"},"wrapup_code_groups":{"description":"The wrap-up code groups this code belongs to.","type":"array","items":{"$ref":"#/components/schemas/WrapupCodeGroupShort"}}}},"WrapupCodeGroup":{"type":"object","properties":{"id":{"description":"The unique identifier of the wrap-up code group.","type":"integer","example":1},"name":{"description":"The name of the wrap-up code group.","type":"string","example":"Customer Support"},"wrapup_codes":{"description":"Wrap-up codes that belong to this group.","type":"array","items":{"$ref":"#/components/schemas/WrapupCodeShort"}}}},"WrapupCodeGroupShort":{"type":"object","properties":{"id":{"description":"The unique identifier of the wrap-up code group.","type":"integer","example":1},"name":{"description":"The name of the wrap-up code group.","type":"string","example":"Customer Support"}}},"WrapupCodeShort":{"type":"object","properties":{"id":{"description":"The unique identifier of the wrap-up code.","type":"integer","example":1},"name":{"description":"The name of the wrap-up code.","type":"string","example":"Issue Resolved"},"code":{"description":"The wrap-up code value.","type":"string","example":"0002"}}}},"responses":{"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Error message.","type":"string","enum":["Bad Request"],"example":"Bad Request"}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Error message.","type":"string","enum":["Unauthorized"],"example":"Unauthorized"}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Error message.","type":"string","enum":["Forbidden"],"example":"Forbidden"}}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Error message.","type":"string","enum":["Not found"],"example":"Not found"}}}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"description":"A set of error messages.","type":"object","additionalProperties":{"description":"An array of error messages.","type":"array","items":{"type":"string"}},"example":{"parameter1":["is missing"],"parameter2":["must be a string"]}}}}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"description":"A set of error messages.","type":"object","additionalProperties":{"description":"An array of error messages.","type":"array","items":{"type":"string"}},"example":{"parameter1":["is missing"],"parameter2":["must be a string"]}}}}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"description":"A set of error messages.","type":"object","additionalProperties":{"description":"An array of error messages.","type":"array","items":{"type":"string"}},"example":{"parameter1":["is missing"],"parameter2":["must be a string"]}}}}}}},"429":{"description":"Too many requests","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Error message.","type":"string","enum":["Too many requests"],"example":"Too many requests"}}}}}}},"securitySchemes":{"StaticKey":{"description":"API key provided as a Bearer token.","type":"http","scheme":"bearer"}}}}