The SilentChat REST API lets you access and manage all platform resources programmatically. All endpoints are versioned and return JSON.
Overview
Base URL
https://api.silentchat.de/api
Versioning
All endpoints live under /api/v1/. When breaking changes are introduced, a new version prefix is published and the old version is deprecated with six months' notice.
Content Type
Send all request bodies as JSON with the Content-Type: application/json header.
Authentication
See the Authentication guide for full details. Every endpoint (unless marked Public) requires either a valid JWT bearer token or an X-API-Key header.
Auth
Method
Path
Description
POST
/v1/auth/register
Authenticate with email and password. Returns access and refresh tokens.
POST
/v1/auth/login
Authenticate with email and password. Returns access and refresh tokens.
POST
/v1/auth/refresh
Exchange a refresh token for a new access token.
POST
/v1/auth/logout
Invalidate the current refresh token.
POST
/v1/auth/verify-email
Return the authenticated user's profile.
POST
/v1/auth/forgot-password
Return the authenticated user's profile.
POST
/v1/auth/reset-password
Return the authenticated user's profile.
Tenants
Method
Path
Description
POST
/v1/tenants
Return the tenant details for the authenticated user.
GET
/v1/tenants/:id
Return the tenant details for the authenticated user.
PATCH
/v1/tenants/:id
Update tenant settings (name, timezone, etc.).
GET
/v1/tenants/:id/members
Return the tenant details for the authenticated user.
POST
/v1/tenants/:id/members
Update tenant settings (name, timezone, etc.).
DELETE
/v1/tenants/:id/members/:userId
Update tenant settings (name, timezone, etc.).
Conversations
Method
Path
Description
GET
/v1/conversations
List conversations for the tenant with optional filters and cursor pagination.
GET
/v1/conversations/:id
Return a single conversation by ID.
PUT
/v1/conversations/:id
Changes status, priority or subject. Status "closed" closes the conversation like /close; "open" reopens a closed one like /reopen.
POST
/v1/conversations/:id/assign
Assigns the conversation to a member of your team.
POST
/v1/conversations/:id/transfer
Hands an open conversation over to a colleague or a department.
POST
/v1/conversations/:id/close
Closes a conversation (system message, satisfaction survey, workflows). Messages are kept.
POST
/v1/conversations/:id/reopen
Reopens a closed conversation — open and unassigned.
Hand over and reopen
Both actions require a user token (JWT) with write access to conversations. They are rejected for API keys and for lite seats.
Hand over
The body names exactly one target: user_id (a person) or department_id (a department). For a department, SilentChat picks an active member, preferring one who is online. note is optional (at most 2,000 characters) and is saved as an internal note. The conversation is then "assigned"; the recipient is notified and the visitor sees a short notice without names.
The selected person has a lite seat and cannot handle conversations (assign and transfer).
ERR_INVALID_DEPARTMENT
The department does not belong to your account.
ERR_DEPARTMENT_NO_AGENTS
Nobody in the department can take over (409).
ERR_CONVERSATION_CLOSED
The conversation is closed — reopen it first (409).
ERR_CONVERSATION_NOT_CLOSED
Only a closed conversation can be reopened (409).
Real-time events over the WebSocket: conversation.transferred (conversation_id, assigned_user_id, department_id) and conversation.reopened (conversation_id). For a picker, GET /api/v1/team/members?include=presence adds presence (online, away, offline) and open_conversations to each member.
Messages
Method
Path
Description
GET
/v1/messages/:conversation_id
Lists the messages of a conversation (paginated).
POST
/v1/messages
Sends a message into a conversation (conversation_id and content in the body).
POST
/v1/messages/:conversation_id/read
Marks the messages of a conversation as read.
Visitors
Method
Path
Description
GET
/v1/visitors
List visitors currently on tracked domains.
GET
/v1/visitors/:id
Return details for a single visitor.
Contacts
Method
Path
Description
GET
/v1/contacts
List contacts with optional search and cursor pagination.
POST
/v1/contacts
Create a new contact.
GET
/v1/contacts/:id
Return a single contact by ID.
PATCH
/v1/contacts/:id
Update contact details.
DELETE
/v1/contacts/:id
Delete a contact.
Widgets
Method
Path
Description
GET
/v1/widgets
List all widgets for the tenant.
POST
/v1/widgets
Create a new widget.
GET
/v1/widgets/:id
Return a single widget by ID.
PATCH
/v1/widgets/:id
Update widget settings.
DELETE
/v1/widgets/:id
Delete a widget.
Domains
Method
Path
Description
GET
/v1/domains
List domains allowed for a widget.
POST
/v1/domains
Add a new allowed domain to a widget.
DELETE
/v1/domains/:id
Remove an allowed domain from a widget.
Canned Responses
Method
Path
Description
GET
/v1/canned-responses
List canned responses.
POST
/v1/canned-responses
Create a new canned response.
PATCH
/v1/canned-responses/:id
Update a canned response.
DELETE
/v1/canned-responses/:id
Delete a canned response.
Files
Method
Path
Description
POST
/v1/files
Upload a file attachment (max 20 MB).
GET
/v1/files/:id
Return a pre-signed download URL for a file.
Billing
Method
Path
Description
GET
/v1/billing/subscription
Return the current subscription and usage.
POST
/v1/billing/checkout
Create a Stripe billing portal session URL.
POST
/v1/billing/portal
Create a Stripe billing portal session URL.
GET
/v1/billing/invoices
Return the current subscription and usage.
GET
/v1/billing/usage
Return the current subscription and usage.
Example Request & Response
The SilentChat REST API lets you access and manage all platform resources programmatically. All endpoints are versioned and return JSON.
Request
GET /v1/conversations?status=open&limit=10 HTTP/1.1
Host: api.silentchat.de
Authorization: Bearer eyJhbGciOiJIUzI1NiIs...
Content-Type: application/json
X-Tenant-ID: tn_abc123
Response
{
"data":[
{
"id":"conv_01HXYZ",
"status":"open",
"visitor_id":"vis_9f2c4e1a",
"assigned_to":"usr_d4e5f6",
"last_message":"Hi, I have a question about pricing.",
"last_message_at":"2025-10-12T14:32:00Z",
"created_at":"2025-10-12T14:30:00Z"
}
],
"pagination":{
"total":42,
"limit":10,
"offset":0,
"has_more":true
}
}
Launch offer: 12 months at a reduced price-25%
For the first 50 new customers until 15 Nov 2026 – Starter, Growth and Professional, billed monthly.