Skip to main content
An agent answers in Yoruba, Pidgin, Hausa, Igbo or Nigerian English. You set its instructions and tools in the dashboard or through the API, then send it messages.

Get a reply

Only live agents answer. Turn an agent live in the dashboard, or with PATCH /v1/agents/{agent_id} and {"status": "live"}.
The reply comes straight back:
Send conversation_id with the next message to continue the conversation. To hear the reply, pass reply to POST /v1/audio/speech, which is charged separately. Sending the same Idempotency-Key with an API key returns the same reply, with no second charge. Keys last a day, and belong to one API key and one agent. Client tokens can’t use them. tool_calls shows each tool’s input and output to API keys. Client tokens get tool names only, so a browser can’t read your documents or what your webhook returned.

Errors

Conversations

We keep a conversation for 1 hour after its last message, or for your organization’s retention period if that’s longer, and delete it within a day of that. A conversation older than this returns 404. Delete one sooner with DELETE /v1/conversations/{conversation_id}.

Knowledge

Upload TXT, Markdown, CSV, JSON or HTML files of up to 2 MB, or add short notes, up to 20 per agent. With Knowledge search on, the agent looks up answers there and sources names the documents it used. An agent can repeat anything in its documents to whoever it’s talking to, so don’t upload anything callers shouldn’t hear.

Tools

Webhooks

Your endpoint must be a public https URL. We wait 5 seconds in total, read at most 8 KB and don’t follow redirects. An agent can make at most 8 tool calls in a reply. A live agent’s webhook needs a signing secret. A POST carries this JSON, and a GET sends the same fields as query parameters:
Create a signing secret in the dashboard, then check X-Vocalistic-Signature on each request. It’s sha256= followed by the hex HMAC-SHA256 of {X-Vocalistic-Timestamp}.{body}, keyed with your secret. For a GET, use the path and query in place of the body. Reject old timestamps. A failed reply can be retried after a webhook has already run. Use X-Vocalistic-Delivery, which is unique to each call, to spot repeats, and make actions safe to repeat where you can.

Testing

Send "test": true with an API key to run a draft. It’s charged like any reply, but webhooks aren’t called: the agent is told the action was simulated. A test conversation can’t continue as a real one. The dashboard’s test console does this for you.