Who would ring for a hypothetical caller (CC1-R7)
POST
/v1/workspace/contact-center/simulate
const url = 'https://api.vocapable.com/v1/workspace/contact-center/simulate';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"phone_number_id":"example","queue_id":"example","contact_id":"example","caller_e164":"example","requirements":[{"skill_id":"example","min_proficiency":1,"negate":false}],"at":"2026-04-15T12:00:00Z"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://api.vocapable.com/v1/workspace/contact-center/simulate \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "phone_number_id": "example", "queue_id": "example", "contact_id": "example", "caller_e164": "example", "requirements": [ { "skill_id": "example", "min_proficiency": 1, "negate": false } ], "at": "2026-04-15T12:00:00Z" }'Authorizations
Section titled “Authorizations”Request Bodyrequired
Section titled “Request Bodyrequired”Media typeapplication/json
CcSimulationRequest
A hypothetical caller: a real customer (contact_id) or a number, extra needs
(language, product), and when they call (hours and do-not-disturb are evaluated at
at; declared presence is today’s).
object
requirements
Requirements
Array<object>
CcRequirementskill >= min_proficiency; negate: the agent must NOT hold it at that level.
object
skill_id
required
Skill Id
string
min_proficiency
required
Min Proficiency
integer
negate
Negate
boolean
Responses
Section titled “Responses”Successful Response
Media typeapplication/json
CcSimulationResult
The published flow’s answer and, when the draft routes differently, the draft’s, with a one-line difference per step.
object
published
required
Any of:
CcSimulation
object
source
required
Source
string
queue_id
required
Queue Id
string
queue_name
required
Queue Name
string
queue_reason
required
Queue Reason
string
base_priority
required
Base Priority
integer
vip_labels
required
Vip Labels
Array<string>
strategy
required
Strategy
string
steps
required
Steps
Array<object>
CcSimulatedStepobject
index
required
Index
integer
after_seconds
required
After Seconds
integer
requirements
required
Requirements
Array<object>
CcRoutingRequirementobject
skill_id
required
Skill Id
string
name
required
Name
string
min_proficiency
required
Min Proficiency
integer
negate
Negate
boolean
any_of
Any Of
Array<object>
CcRoutingRequirementGroupAn OR group as a trace or simulation shows it: one alternative must hold.
object
alternatives
required
Alternatives
Array<Array<object>>
pool_queues
required
Pool Queues
Array<string>
rings
required
Rings
Array<string>
candidates
required
Candidates
Array<object>
CcSimulatedCandidateai_offered
required
Ai Offered
boolean
summary
required
Summary
string
evaluated_at
required
Evaluated At
string format: date-time
elapsed_ms
required
Elapsed Ms
integer
null
draft
required
Any of:
CcSimulation
object
source
required
Source
string
queue_id
required
Queue Id
string
queue_name
required
Queue Name
string
queue_reason
required
Queue Reason
string
base_priority
required
Base Priority
integer
vip_labels
required
Vip Labels
Array<string>
strategy
required
Strategy
string
steps
required
Steps
Array<object>
CcSimulatedStepobject
index
required
Index
integer
after_seconds
required
After Seconds
integer
requirements
required
Requirements
Array<object>
CcRoutingRequirementobject
skill_id
required
Skill Id
string
name
required
Name
string
min_proficiency
required
Min Proficiency
integer
negate
Negate
boolean
any_of
Any Of
Array<object>
CcRoutingRequirementGroupAn OR group as a trace or simulation shows it: one alternative must hold.
object
alternatives
required
Alternatives
Array<Array<object>>
pool_queues
required
Pool Queues
Array<string>
rings
required
Rings
Array<string>
candidates
required
Candidates
Array<object>
CcSimulatedCandidateai_offered
required
Ai Offered
boolean
summary
required
Summary
string
evaluated_at
required
Evaluated At
string format: date-time
elapsed_ms
required
Elapsed Ms
integer
null
differences
required
Differences
Array<string>
notes
required
Notes
Array<string>
Example
{ "published": { "source": "published", "strategy": "longest_idle", "steps": [ { "requirements": [ { "negate": false } ], "any_of": [ { "alternatives": [ [ { "negate": false } ] ] } ], "candidates": [ { "outcome": "rings", "code": "" } ] } ] }, "draft": { "source": "published", "strategy": "longest_idle", "steps": [ { "requirements": [ { "negate": false } ], "any_of": [ { "alternatives": [ [ { "negate": false } ] ] } ], "candidates": [ { "outcome": "rings", "code": "" } ] } ] }}Validation Error
Media typeapplication/json
HTTPValidationError
object
detail
Detail
Array<object>
ValidationErrorobject
loc
required
Location
Array
msg
required
Message
string
type
required
Error Type
string
input
Input
ctx
Context
object
Examplegenerated
{ "detail": [ { "loc": [ "example" ], "msg": "example", "type": "example", "input": "example", "ctx": {} } ]}