#Changelog
Status: Available. The log has been kept since the first publication of the documentation.
Purpose: record changes to the public API contract and the documentation. Any breaking change and any deprecation is announced here at least 90 days before it takes effect (the Deprecation and Sunset headers duplicate the entry in API responses; see Conventions).
#Versioning policy
| Rule | Description |
|---|---|
| Version in the address | /api/public/v1 |
| Within a version | Only additive changes (new endpoints, optional parameters, response fields) |
| Breaking change | Ships as a new version (v2); v1 keeps working throughout the deprecation period |
| Notice period | At least 90 days before shutdown |
| How to find out | An entry here + the Deprecation and Sunset headers in responses |
| Page statuses | "Available", "Beta", "Planned": see the README |
#Entry format
Each entry contains the date, the affected area, and the type of change: added, changed, deprecated, removed, fixed, security.
#2026-10-12 — writing conversations, widget v2, personal data fields and data protection
API
- Added: writing conversations —
POST /conversations(withIdempotency-Key,external_customer_idscoped to the integration,201on creation and200on replay),POST /conversations/{id}/messageswith theai_replyparameter (autoornone), the202response with anoperationobject and the?waitwait of up to 20 seconds, AI refusal reasons and thequeued_for_reviewflag,GET /operations/{id}, the errors409,429,402,503. Details are in Server Conversations API. - Added: attachments and cards in messages;
POST /conversations/{id}/cardssends a card into a conversation; conversation events in webhooks. - Added:
GET /channels/{id}/widgetandPATCH /channels/{id}/widgetfor widget settings (assistant name, queue, icons, footer label, files);GET/POST/PATCH/DELETE /cardsfor product and item cards. - Added: the
fields=parameter in the read methods for conversations, messages, and leads. Without it, personal data is not returned; an unknown field name gives422 unknown_field. See Data Minimization and Field Selection. - Added (cells EN and ID only): the JWE format for personal data fields,
PUT /me/encryption-key, the modesoff,optional,required, theEncryption-Key-Idheader, the_enclist, thepii_encryptionblock inGET /me. See JWE Format for Personal Data Fields; the page does not exist on the RU cell. - Changed: the webhook signature is now the platform's electronic signature (JWS, Ed25519, detached payload) instead of a shared secret, with the public key set at
GET /.well-known/jwks.json, a 300-second verification window, and rotation bykid. Subscriptions no longer have secrets. - Changed: the webhook delivery headers are named
Webhook-Event-Id,Webhook-Event-Type,Webhook-Timestamp,Webhook-Signature; the wallet state header isWallet-State. - Removed: the shared-secret (HMAC) webhook signature and the subscription secret rotation route (
rotate-secret). Recipients verify the signature against the JWKS; Node.js, PHP, and Python examples are in Webhooks.
Widget
- Added: launching from your own button (
data-launcher), branding (assistant name and subtitle, queue state, icons, footer label), header statesai,queued,operator, files from the visitor and the operator, cards with buttons. Thewindow.Sapportobject with methods, events, and a call queue before load;identifyis not available yet. Details: Embedding the Chat Widget, Widget JS API, Client Chat API.
Documentation
- Added: the pages Data Minimization and Field Selection, JWE Format for Personal Data Fields (cells EN and ID), Protecting Personal Data from Leaking into AI Models, Data Protection by Cell.
- Changed: the pages on writing conversations and the AI seller on your own channel now match the implementation; the "Planned" label is removed where the feature has shipped.
- Changed: the chat templates in the gallery show the conversation state, operator name, attachments, and cards.
#2026-10-11 — server API: reading, wallet, webhooks v2
API
- Added:
GET /me,GET /wallet; webhooks v2 (subscriptions, signing, retries, delivery log). - Added: reading conversations and messages (
GET /conversations,GET /conversations/{id},GET /conversations/{id}/messages). - Added: reading analytics (
/analytics/timeseries,/analytics/traffic-sources,/analytics/funnel,/analytics/visibility) and dashboards (/dashboards/overview,/dashboards/pulse). - Added: reading leads (
GET /leads,GET /leads/{id}), articles (GET /articles,GET /articles/{id}), and strategist reports, topics, and actions. - Still "Planned": writing (replies in conversations, editing leads and articles, decisions on topics and actions), events and offline conversions, article generation, the strategist chat, the status map, the widget JS API v2, test keys and the sandbox,
GET /disclosures.
Documentation
- Changed: page statuses moved from "Planned" to "Available" for the released endpoints; response fields were checked against the implementation.
- The "Available" status takes effect with the deployment to a cell and the application of its migrations; a read that depends on a migration answers
503until then.
#2026-10-11 — first edition of the documentation
Documentation
- Added: the documentation structure and the cross-cutting sections: introduction, quickstart, authentication, cells and data, conventions, webhooks, changelog, glossary.
- Added: a description of the existing client interfaces: the chat widget, the Chat API, the loader, the JS tracker, the server beacon and the CMS modules, and the article publisher through the connector (status "Available"; details are in the
chat/,analytics/, andarticles/sections). - Added: a description of the server API authenticated by a secret key (status "Planned"): integrations and keys, scopes, conversations and the AI seller, leads and the external CRM, analytics and dashboards, articles, the strategist, webhooks v2.
API
The v1 server API has not been released yet: there have been no contract changes. Until the OpenAPI specification is published, the response examples are illustrative.
#Planned platform changes that affect integrators
The entries below are warnings about what will change, not a log of completed changes.
| What | Type | Who it affects |
|---|---|---|
Outgoing webhooks of the previous version (v1) are replaced by webhooks v2: the envelope {id, type, api_version, created_at, livemode, data}, the Webhook-Signature signature, retries, a delivery log, signing key rotation (JWKS). The operator handoff event handoff.requested is replaced by conversation.handoff_requested | changed | Anyone who receives webhooks of the previous version. The customer message text (content) is removed from the previous version's payload |
Wallet and exchange suspension: GET /wallet, the wallet block in GET /me (state, exchange, topup_url), the 402 wallet_suspended code on all routes when the balance is negative or the wallet is blocked, deferred webhook delivery (details) | added | All server API clients |
A single error format application/problem+json with errors[] by JSON Pointer | added | All server API clients |
Cursor pagination, Idempotency-Key, RateLimit-* headers, asynchronous operations (operation) | added | All server API clients |
| Test keys and the sandbox | added | Anyone who wants to test an integration without production data |
#How to follow changes
- Subscribe to dashboard notifications: the tenant owner receives messages about key issuance, rotation, and imminent expiry; the
api_key.expiringevent arrives 30 and 7 days before expiry. - Read the
DeprecationandSunsetheaders in API responses: automate logging them on your side. - Check this log periodically.