Queue one contact-bound campaign-less outbound call
const url = 'https://api.vocapable.com/v1/calls';const options = { method: 'POST', headers: { 'Idempotency-Key': 'example', Authorization: 'Bearer <token>', 'Content-Type': 'application/json' }, body: '{"agent_id":"example","contact_id":"example","questions":[{"id":"example","prompt":"example","scoring":{"scale":"csat","points":1,"mapping":{"additionalProperty":1},"weight":1}}],"context":{"additionalProperty":"example"}}'};
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/calls \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --header 'Idempotency-Key: example' \ --data '{ "agent_id": "example", "contact_id": "example", "questions": [ { "id": "example", "prompt": "example", "scoring": { "scale": "csat", "points": 1, "mapping": { "additionalProperty": 1 }, "weight": 1 } } ], "context": { "additionalProperty": "example" } }'Queue one compliant API-key-originated campaign-less outbound call.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Header Parameters
Section titled “Header Parameters”Unique key for this request, so a retry replays the original result instead of repeating the work. Stored for 24 hours; a replayed response carries Idempotent-Replay: true. A UUID is the documented shape. Required on this endpoint: a retry without one would dial a human twice or spend money twice.
Request Bodyrequired
Section titled “Request Bodyrequired”One contact-bound campaign-less outbound attempt (POST /v1/calls).
The deliberately small shape is the safety boundary: callers name durable tenant
resources only. There is no raw E.164 destination, caller-id override, or carrier
route that could turn the endpoint into an ungoverned dialer. questions and
context are bounded CONVERSATION inputs (migration 0070): additive survey
questions the pinned version’s objectives do not carry, and key: value facts the
agent may use - never dial-routing inputs, never platform-key shadows, and capped
hard enough that the call context stays a context, not a document.
object
One per-call question - the strict profile of a version objective (docs/04 §3).
Unlike Objective (open - goal graphs are legal on an agent), a per-call question
is closed and fully required: it exists to be asked and recorded on THIS call, so
an id and question text are not optional and unknown keys are typos, not shapes.
object
One question’s frozen scoring vocabulary (docs/08 §Objective scoring).
object
Scoring scales for survey objectives (CANON fact 63).
The number of points is a separate points field, never part of the scale name; a
question with no scoring block at all is simply unscored.
object
object
Responses
Section titled “Responses”Successful Response
The queued campaign-less ContactAttempt returned by POST /v1/calls.
object
Example
{ "telephony": "mock"}Validation Error
object
object
object
Examplegenerated
{ "detail": [ { "loc": [ "example" ], "msg": "example", "type": "example", "input": "example", "ctx": {} } ]}