sphoroVOICEdocs
Markdown

Getting help

Most questions about a specific call are answerable in one reply if the first message carries two identifiers. This page is what to send, and what to check first.

Check these first

Not to deflect the question — because each of them answers a large share of what gets asked, and faster than we can.

SymptomWhere the answer is
A request is refused and you do not know whyThe error body's type field is a link into the error table, at the row for that exact code.
A call did not go outCompliance, then end_reason on the call — see the vocabulary.
The summary is emptyYou are reading call.ended. See post-call analysis.
The agent is slowLatency — and read connect_ms before changing anything.
The agent talks over people, or will not stopConversation behaviour.
A menu "sometimes works"The call.dtmf lines on that call's events. See keypad and IVR.
A webhook is not arrivingThe delivery log — GET /v1/webhook_endpoints/{id}/deliveries. See webhooks.

What to send

Two identifiers turn a three-round-trip thread into one reply. Everything else is optional.

Call id       call_8b21f4c9a07e3d15      ← the single most useful thing
Agent id      agt_9f2c1a7d4b6e803f
When          2026-09-08 around 09:41 IST, and your timezone if it is not IST
Expected      "it should have transferred to the accounts team"
Actual        "it said goodbye and hung up"
A call id beats a description of the call. With one we can read the transcript, the events, the timings, the vendors it used and the end reason in seconds. Without one, the first reply is us asking for it.

For a request that was refused rather than a call that went wrong, send the whole error body. It carries the code, the status and the field-level problems, and it is more precise than any paraphrase.

Shell
# Everything about one call, in one paste.
curl -s https://voice.sphoro.com/v1/calls/$CALL_ID \
  -H "Authorization: Bearer $SPHORO_API_KEY"

curl -s https://voice.sphoro.com/v1/calls/$CALL_ID/transcript \
  -H "Authorization: Bearer $SPHORO_API_KEY"
Never send us an API key — not in a message, a screenshot or a log paste. We never need one, and a key that has been in a support thread should be revoked. Redact it before you send anything.

Things to ask us for

Some of what Sphoro Voice does is provisioned per account rather than self-serve. None of it is a long process, and all of it is worth asking about before you build around its absence.

Ask forCovered on
A tool that calls your own API during a callTools and functions
More concurrencyConcurrency
Phone numbers, or connecting your own carrierNumbers and carriers
A different recording retention windowSecurity and data
The Python, Go or Java clientSDKs
The command-line tool, the MCP server or the skills pack Build with AI
A calendar, CRM or database connector for workflows Workflows
A dedicated or in-region deploymentSecurity and data

Reporting something urgent

Two things go to the front of the queue, and both are better sent early and wrong than late and certain:

  • A leaked credential. Revoke it yourself in the portal first — that is immediate and does not need us — then tell us.
  • A security vulnerability. Get in touch before disclosing it anywhere else.

Reading the docs somewhere else

Every page here is also plain Markdown at its own address with .md on the end, and llms.txt is the index of all of them. Handy for pasting a page into a thread, or into a model.

Shell
curl -s https://voice.sphoro.com/docs/llms.txt
curl -s https://voice.sphoro.com/docs/transfers.md