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.
| Symptom | Where the answer is |
|---|---|
| A request is refused and you do not know why | The error body's type
field is a link into the error table, at the row for that
exact code. |
| A call did not go out | Compliance, then
end_reason on the call — see the vocabulary. |
| The summary is empty | You are reading call.ended. See
post-call analysis. |
| The agent is slow | Latency — and read
connect_ms before changing anything. |
| The agent talks over people, or will not stop | Conversation behaviour. |
| A menu "sometimes works" | The call.dtmf lines on that call's events.
See keypad and IVR. |
| A webhook is not arriving | The 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"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.
# 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"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 for | Covered on |
|---|---|
| A tool that calls your own API during a call | Tools and functions |
| More concurrency | Concurrency |
| Phone numbers, or connecting your own carrier | Numbers and carriers |
| A different recording retention window | Security and data |
| The Python, Go or Java client | SDKs |
| 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 deployment | Security 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.
curl -s https://voice.sphoro.com/docs/llms.txt
curl -s https://voice.sphoro.com/docs/transfers.md