Assistant — public chat
Anonymous citizen-chat endpoints under /public/chat.
Gating: console module ASSIST'O on the city’s cityGroup. Distinct from MCP.
Operator guide: The Assistant.
SDK: client.public.chat.* — Client SDK.
Availability
GET /public/chat/availability?cityId={uuid}
GET /public/chat/availability?cityGroupId={uuid}
Typical response: { "enabled": true|false, "cityGroupId": "…", "reason": "…" }.
SDK: client.public.chat.getAvailability({ cityId }).
Conversations
Create
POST /public/chat/conversations
Content-Type: application/json
{
"deviceId": "device-uuid",
"cityId": "city-uuid",
"cityGroupId": "group-uuid"
}
Set location
PATCH /public/chat/conversations/:id/location
{ "cityId": "city-uuid", "placeId": "place-uuid" }
List by device
GET /public/chat/conversations/:deviceId?page=1&pageSize=20
Messages
GET /public/chat/conversations/:id/messages
POST /public/chat/conversations/:id/messages
{
"content": "When is the next collection?",
"placeId": "optional-place-uuid"
}
Rate limiting
~20 requests / minute per deviceId (or IP) on create + send → HTTP 429.
Console routes (JWT)
Prefix /chat — console JWT + CHAT_CONVERSATIONS (not for site integrators): inbox, assign, agent reply, status, create-ticket, LLM usage snapshots.