Request a callback
import MoreVoice from "@morevoice/sdk";
const mv = new MoreVoice(); // MOREVOICE_API_KEY from the environment
const callback = await mv.callbacks.create({ due_at: "2026-11-03T12:00:00+02:00", metadata: { crm_ticket: "T-1042", }, name: "Dana Levi", note: "Asked about the renewal offer.", phone: "+972501234567", queue_id: "q_3hRf8Kd2LmPq", route: "agent_queue",});console.log(callback);from morevoice import MoreVoice
client = MoreVoice() # MOREVOICE_API_KEY from the environment
callback = client.callbacks.create({ "due_at": "2026-11-03T12:00:00+02:00", "metadata": { "crm_ticket": "T-1042", }, "name": "Dana Levi", "note": "Asked about the renewal offer.", "phone": "+972501234567", "queue_id": "q_3hRf8Kd2LmPq", "route": "agent_queue",})print(callback)curl -X POST https://api.morevoice.ai/v1/callbacks \ -H "Authorization: Bearer $MOREVOICE_API_KEY" \ -H "Content-Type: application/json" \ -H "Idempotency-Key: $(uuidgen)" \ -d '{ "due_at": "2026-11-03T12:00:00+02:00", "metadata": { "crm_ticket": "T-1042" }, "name": "Dana Levi", "note": "Asked about the renewal offer.", "phone": "+972501234567", "queue_id": "q_3hRf8Kd2LmPq", "route": "agent_queue"}'Books a call back to phone, routed like the dashboard’s (to a queue’s agents, an agent or an AI assistant). If the number already has an open callback, the request is merged into it and that callback is returned (merged_requests counts the merges). With call_id, repeating the request for the same call returns the first callback. Needs a live key.
Try it in the API playground with a test-mode key.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Header Parameters
Section titled “Header Parameters”The API version to use for this request. Defaults to the version the API key is pinned to.
Example
2026-11-01A unique key (for example a UUID) that makes this request safe to retry: for 24 hours, a retry with the same key and parameters returns the first response instead of acting twice.
Example
5f0c1e8a-7b2d-4c3e-9f1a-2b6d8e4c0a17Request Bodyrequired
Section titled “Request Bodyrequired”object
The agent who should call back (a member’s user ID; route agent).
The AI assistant that should call back (route assistant).
The call the request came from. One callback per call: repeating the request for the same call returns the first callback.
The earliest time to call back (default: now). Moved into business hours; at most 90 days ahead.
How many times to try (default: the callback settings’).
Up to 50 key/value pairs (keys up to 40 characters, values up to 500) you attach to an object. Returned as sent.
object
The person’s name.
A note for whoever returns it.
The number to call back: E.164 (+972501234567) or a local form (050-123-4567).
1 (low) … 10 (urgent). Default: the callback settings’ priority for API requests.
A queue ID (q_…).
Who returns it: agent_queue (offered to the next free agent of queue_id, then dialled), agent (agent_id calls back) or assistant (the AI assistant_id calls back). Default: the callback settings’ default route.
Don’t call after this time.
Example
{ "due_at": "2026-11-03T12:00:00+02:00", "metadata": { "crm_ticket": "T-1042" }, "name": "Dana Levi", "note": "Asked about the renewal offer.", "phone": "+972501234567", "queue_id": "q_3hRf8Kd2LmPq", "route": "agent_queue"}Responses
Section titled “Responses”OK
A request to call someone back, and its progress.
object
Call-back attempts made so far.
An ISO-8601 timestamp in UTC.
The earliest time to call back (moved into business hours).
A callback ID (prefix cb_).
The last attempt’s result, e.g. answered, no-answer, busy, done-manually.
true in live mode, false in test mode.
Later requests for the same number merged into this one.
Up to 50 key/value pairs (keys up to 40 characters, values up to 500) you attach to an object. Returned as sent.
object
The person’s name, when known.
Notes for whoever returns it (each note is stamped with its time and author).
The number to call back, E.164.
1 (low) … 10 (urgent); higher is returned sooner.
Who returns it: agent_queue (offered to the next free agent of queue_id, then dialled), agent (agent_id calls back) or assistant (the AI assistant_id calls back).
The website form it came from (source = web).
Where the request came from: queue (a caller pressed the callback key), ivr, flow, ai (the assistant booked it), web (a website form), manual, campaign, voicemail or api.
pending (waiting for its time), offered (ringing an agent), dialing, connected (on the call back), completed, failed (attempts used up), cancelled or expired (past its window, or too old).
The AI summary of the originating call, when there is one.
An ISO-8601 timestamp in UTC.
Example
{ "agent_id": null, "assistant_id": null, "attempts": 0, "call_id": null, "completed_at": null, "context": { "web": null }, "created": "2026-11-03T09:14:22.000Z", "due_at": "2026-11-03T10:00:00.000Z", "id": "cb_2dXk9QmZ4rTv", "last_attempt_at": null, "last_result": null, "livemode": true, "max_attempts": 3, "merged_requests": 0, "metadata": { "crm_ticket": "T-1042" }, "name": "Dana Levi", "notes": "Asked about the renewal offer.", "object": "callback", "origin_call_id": null, "phone": "+972501234567", "priority": 5, "queue_id": "q_3hRf8Kd2LmPq", "route": "agent_queue", "site_id": null, "sla_at": "2026-11-03T11:00:00.000Z", "source": "api", "status": "pending", "summary": null, "updated": "2026-11-03T09:14:22.000Z", "window_end": null}The request is invalid: a parameter is missing, malformed or unknown, or the version header is unknown.
Every /v1 error.
object
object
A stable, machine-readable code from the error-code catalogue.
Structured context, e.g. required_scope or the compliance verdict.
object
A link to the documentation of this code.
A human-readable explanation. Do not parse it.
The request parameter the error relates to, e.g. to or metadata[order_id].
The X-Request-Id of this request. Quote it when you contact support.
The category of the error.
Example
{ "error": { "code": "parameter_missing", "doc_url": "https://docs.morevoice.ai/api/errors#parameter-missing", "message": "Missing required parameter: to.", "param": "to", "request_id": "req_7Hk2LmN9pQ4rS6tV8wX0yZ", "type": "invalid_request_error" }}Headers
Section titled “Headers”The request’s ID (req_…). Quote it when you contact support.
No valid API key was sent.
Every /v1 error.
object
object
A stable, machine-readable code from the error-code catalogue.
Structured context, e.g. required_scope or the compliance verdict.
object
A link to the documentation of this code.
A human-readable explanation. Do not parse it.
The request parameter the error relates to, e.g. to or metadata[order_id].
The X-Request-Id of this request. Quote it when you contact support.
The category of the error.
Example
{ "error": { "code": "invalid_api_key", "doc_url": "https://docs.morevoice.ai/api/errors#invalid-api-key", "message": "Invalid API key.", "request_id": "req_7Hk2LmN9pQ4rS6tV8wX0yZ", "type": "authentication_error" }}Headers
Section titled “Headers”The request’s ID (req_…). Quote it when you contact support.
The key may not do this (a missing scope, a plan limit, or a compliance block).
Every /v1 error.
object
object
A stable, machine-readable code from the error-code catalogue.
Structured context, e.g. required_scope or the compliance verdict.
object
A link to the documentation of this code.
A human-readable explanation. Do not parse it.
The request parameter the error relates to, e.g. to or metadata[order_id].
The X-Request-Id of this request. Quote it when you contact support.
The category of the error.
Example
{ "error": { "code": "missing_scope", "doc_url": "https://docs.morevoice.ai/api/errors#missing-scope", "message": "This API key lacks the calls:write scope.", "request_id": "req_7Hk2LmN9pQ4rS6tV8wX0yZ", "type": "permission_error" }}Headers
Section titled “Headers”The request’s ID (req_…). Quote it when you contact support.
The request conflicts with the object’s state, or the Idempotency-Key was reused with other parameters.
Every /v1 error.
object
object
A stable, machine-readable code from the error-code catalogue.
Structured context, e.g. required_scope or the compliance verdict.
object
A link to the documentation of this code.
A human-readable explanation. Do not parse it.
The request parameter the error relates to, e.g. to or metadata[order_id].
The X-Request-Id of this request. Quote it when you contact support.
The category of the error.
Example
{ "error": { "code": "idempotency_mismatch", "doc_url": "https://docs.morevoice.ai/api/errors#idempotency-mismatch", "message": "This Idempotency-Key was already used with different parameters.", "request_id": "req_7Hk2LmN9pQ4rS6tV8wX0yZ", "type": "idempotency_error" }}Headers
Section titled “Headers”The request’s ID (req_…). Quote it when you contact support.
Too many requests, or no call capacity right now. Retry after the Retry-After delay.
Every /v1 error.
object
object
A stable, machine-readable code from the error-code catalogue.
Structured context, e.g. required_scope or the compliance verdict.
object
A link to the documentation of this code.
A human-readable explanation. Do not parse it.
The request parameter the error relates to, e.g. to or metadata[order_id].
The X-Request-Id of this request. Quote it when you contact support.
The category of the error.
Example
{ "error": { "code": "rate_limited", "doc_url": "https://docs.morevoice.ai/api/errors#rate-limited", "message": "Too many requests. Retry after 1 second.", "request_id": "req_7Hk2LmN9pQ4rS6tV8wX0yZ", "type": "rate_limit_error" }}Headers
Section titled “Headers”Seconds to wait before retrying.
The request’s ID (req_…). Quote it when you contact support.
Something went wrong on MoreVoice’s side. Retry with the same Idempotency-Key.
Every /v1 error.
object
object
A stable, machine-readable code from the error-code catalogue.
Structured context, e.g. required_scope or the compliance verdict.
object
A link to the documentation of this code.
A human-readable explanation. Do not parse it.
The request parameter the error relates to, e.g. to or metadata[order_id].
The X-Request-Id of this request. Quote it when you contact support.
The category of the error.
Example
{ "error": { "code": "internal_error", "doc_url": "https://docs.morevoice.ai/api/errors#internal-error", "message": "Something went wrong on MoreVoice's side.", "request_id": "req_7Hk2LmN9pQ4rS6tV8wX0yZ", "type": "api_error" }}Headers
Section titled “Headers”The request’s ID (req_…). Quote it when you contact support.