Append a chat message
Store a single chat message for a contact. Chats are a lightweight, developer-first storage primitive. VoiceDock keeps the messages — your application keeps the LLM logic, tools, and channel wiring (Meta Cloud API, widget, SMS gateway, etc.). Pair with `GET /chats/context` to share history between chat channels and voice agents. Messages are append-only; update by inserting a new message and delete individually via `DELETE /chats/{id}`.
Store a single chat message for a contact.
Chats are a lightweight, developer-first storage primitive. VoiceDock keeps the
messages — your application keeps the LLM logic, tools, and channel wiring
(Meta Cloud API, widget, SMS gateway, etc.). Pair with GET /chats/context
to share history between chat channels and voice agents.
Messages are append-only; update by inserting a new message and delete
individually via DELETE /chats/{id}.
Authorization
BearerAuth API key authentication. Get your key from the dashboard.
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
curl -X POST "https://example.com/chats" \ -H "Content-Type: application/json" \ -d '{ "contact_id": "string", "channel": "string", "role": "user", "content": "string" }'{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"agent_id": "2b1e3b65-2c04-4fa2-a2d7-467901e98978",
"contact_id": "+31612345678",
"channel": "whatsapp",
"role": "user",
"content": "string",
"metadata": {
"provider_message_id": "wamid.ABC",
"attachments": []
},
"created_at": "2019-08-24T14:15:22Z"
}{
"error": "Invalid API key",
"message": "string"
}{
"error": "Invalid API key",
"message": "string"
}Get conversation context for a contact GET
Return the last N messages for a contact in chronological order (oldest → newest). The response contains two views: - `messages`: raw message rows ready to map into an LLM chat array. - `formatted`: a single string (`ROLE: content` per line) convenient to append to a voice agent's system prompt for cross-channel continuity.
Delete a chat message DELETE
Permanently delete a single chat message. Scoped to your organization.