Every endpoint of the Supovia REST API, generated from the API itself.
All endpoints are relative to https://api.supovia.com. Create an API key in your Supovia dashboard, then authenticate every request with it.
apiKey — HTTP Basic auth carrying only the API key secret: Authorization: Basic base64(<key secret>).
accessToken — Operator session token issued by the Supovia dashboard: Authorization: Token <access token>.
Download the OpenAPI specification for use with your own tooling.
List conversations
Lists the conversations of your organization, newest first when sorted by lastEditTime. Requires the conversations:read scope.
| Name | In | Type | Description |
|---|---|---|---|
| websiteId | query | string | |
| customerId | query | string | |
| limit | query | integer | |
| skip | query | integer | |
| sortField | query | string | |
| sortDirection | query | string (ASC | DESC) | |
| fields | query | string | Comma-separated projection of fields to return |
| Status | Meaning |
|---|---|
| 200 | Array of conversations |
| 401 | Missing or invalid credentials |
| 403 | API key is missing the conversations:read scope |
| 429 | API key rate limit exceeded |
Get a conversation
Returns a single conversation by id. Conversations belonging to another organization respond 404. Requires the conversations:read scope.
| Name | In | Type | Description |
|---|---|---|---|
| conversationIdrequired | path | string |
| Status | Meaning |
|---|---|
| 200 | The conversation |
| 404 | Not found (or owned by another organization) |
List customers
Requires the customers:read scope.
| Name | In | Type | Description |
|---|---|---|---|
| websiteId | query | string | |
| query | string | ||
| userId | query | string | Your own user id set via the widget setUserId |
| fields | query | string | Comma-separated projection of fields to return |
| Status | Meaning |
|---|---|
| 200 | Array of customers |
Create a customer
Creates a customer on a website. Emits the customer.created webhook event. Requires the customers:write scope.
| Field | Type | Description |
|---|---|---|
| string | ||
| nickname | string | |
| phone | string | |
| language | string |
| Status | Meaning |
|---|---|
| 200 | The created customer |
| 403 | API key is missing the customers:write scope |
Get a customer
Returns a single customer by id. Customers belonging to another organization respond 404. Requires the customers:read scope.
| Name | In | Type | Description |
|---|---|---|---|
| customerIdrequired | path | string |
| Status | Meaning |
|---|---|
| 200 | The customer |
| 404 | Not found (or owned by another organization) |
Update a customer
Requires the customers:write scope.
| Name | In | Type | Description |
|---|---|---|---|
| customerIdrequired | path | string |
| Status | Meaning |
|---|---|
| 200 | The updated customer |
Search documents
Semantic (vector) search over your published help documents. Requires the documents:read scope.
| Name | In | Type | Description |
|---|---|---|---|
| queryrequired | query | string | |
| websiteId | query | string | |
| locale | query | string |
| Status | Meaning |
|---|---|
| 200 | Array of matching documents, best match first |
List documents
Requires the documents:read scope.
| Name | In | Type | Description |
|---|---|---|---|
| websiteId | query | string | |
| locale | query | string | |
| category | query | string | |
| published | query | boolean | |
| search | query | string | Plain-text title search |
| limit | query | integer | |
| fields | query | string | Comma-separated projection of fields to return |
| Status | Meaning |
|---|---|
| 200 | Array of documents |
List messages
Lists messages, usually filtered by conversationId. Requires the messages:read scope.
| Name | In | Type | Description |
|---|---|---|---|
| conversationId | query | string | |
| limit | query | integer | |
| skip | query | integer | |
| sortField | query | string | |
| sortDirection | query | string (ASC | DESC) | |
| fields | query | string | Comma-separated projection of fields to return |
| Status | Meaning |
|---|---|
| 200 | Array of messages |
Create a message
Appends a message to a conversation. from is operator for replies sent on behalf of your team and customer for messages on behalf of the visitor. Emits the message.created webhook event. Requires the messages:write scope.
| Field | Type | Description |
|---|---|---|
| conversationIdrequired | string | |
| contentrequired | string | |
| fromrequired | string (operator | customer) |
| Status | Meaning |
|---|---|
| 200 | The created message |
| 403 | API key is missing the messages:write scope |
List webhook subscriptions
Webhook subscriptions deliver message.created, conversation.created and customer.created events to your server as signed POST requests (X-Supovia-Signature: t=<timestamp>,v1=<hex HMAC-SHA256 of "timestamp.body">). An endpoint failing 20 times in a row is disabled automatically. Subscriptions are managed with an operator access token; the secret is only returned once, on create.
| Status | Meaning |
|---|---|
| 200 | Array of webhook subscriptions (without secrets) |
Create a webhook subscription
The response includes the signing secret exactly once — store it; it cannot be retrieved again.
| Field | Type | Description |
|---|---|---|
| websiteIdrequired | string | |
| urlrequired | string | |
| events | array (message.created | conversation.created | customer.created) | Empty array subscribes to all events |
| Status | Meaning |
|---|---|
| 200 | The created subscription, including its secret |
Update a webhook subscription
url, events and active are editable; the secret and website are immutable. Re-enabling an auto-disabled endpoint is done by setting active back to true.
| Name | In | Type | Description |
|---|---|---|---|
| webhookSubscriptionIdrequired | path | string |
| Status | Meaning |
|---|---|
| 200 | The updated subscription (without secret) |
Delete a webhook subscription
| Name | In | Type | Description |
|---|---|---|---|
| webhookSubscriptionIdrequired | path | string |
| Status | Meaning |
|---|---|
| 200 | Deleted |
List websites
Lists the websites (projects) of your organization. Requires the websites:read scope.
| Status | Meaning |
|---|---|
| 200 | Array of websites |
Get a website by name
Requires the websites:read scope.
| Name | In | Type | Description |
|---|---|---|---|
| websiteNamerequired | path | string |
| Status | Meaning |
|---|---|
| 200 | The website |
| 404 | Not found |