VoiceDock Docs
ApiChats

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}`.

POST
/chats

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
AuthorizationBearer <token>

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"
}