◆ Sapport for developers API reference Error catalog OpenAPI
Sections

#Sapport Platform Documentation for Integrators

Public documentation for connecting to the Sapport platform: chats with the AI seller, analytics, the article publisher, CRM and agents, the strategist, and dashboards. Language: English.

Important. This documentation describes both what already works (the widget, the loader, the tracker, CMS modules, the connector) and the server API authenticated by a secret key (reading is available, writing is partly in design). The status of each page is shown in the badge at the top of the page and in the tables below. The "Planned" status is not a commitment to a delivery date.

#Status legend

StatusMeaning
AvailableWorks in the production cells. The contract can be used in production; changes follow the versioning policy
BetaWorks, but the contract may change without a notice period. Use deliberately
PlannedIn design, not yet released. The description is the target behavior; field names and details may be refined. Do not use in production

Server API: reading (/me, /wallet, conversations, analytics, dashboards, leads, articles, strategist) and webhooks v2 are "Available"; writing (replies in conversations, editing leads and articles, decisions on topics and actions), events and conversions, generation, and the sandbox are "Planned". The widget, the Chat API, the loader, the JS tracker, the CMS modules, and the connector are "Available". Pages with a mixed status say in their badge which part already works.

The single form of the badge at the top of every page: > **Status: …**.

#Modules and their status

ModuleWhat already works (Available)Server API (Planned)Pages
Chats and the AI sellerThe widget, the Chat API (/api/widget/*)Reading conversations and messages is Available; writing and AI replies in your own channel (api) are Plannedchat/
AnalyticsThe loader, the JS tracker, the server beacon, the Bitrix and WordPress modulesReading analytics and dashboards is Available; event and conversion ingestion is Plannedanalytics/
Article publisherPublishing through the CMS module and the connectorReading articles is Available; generation jobs, editing, approval, publishing are Plannedarticles/
CRM and agentsLead scoring and statuses inside the platformReading leads is Available; lead writes, CRM modes, action requests, the status map are Plannedcrm/
StrategistReports and chat in the dashboardReports, topics, and actions (reading) are Available; decisions and conversation are Plannedstrategist/
DashboardsThe "Overview" and "Pulse" screens in the dashboardReading through the API is Available; embedding is stage 4, Plannedanalytics/08-dashboards.md
WebhooksWebhooks of the previous version (v1)Webhooks v2: signature, retries, rotation, log: Available06-webhooks.md

#Where to start

TaskPage
Understand what this is and how the parts relate01-introduction.md
First call and the widget in 5 minutes02-quickstart.md
Keys, scopes, permissions03-authentication.md
Errors, pagination, asynchronous operations05-conventions.md
Receive events06-webhooks.md
Understand why you received 402 wallet_suspended07-wallet.md

#Contents

#Cross-cutting sections

FileWhat it coversStatus
01-introduction.mdThe platform for an integrator, modules, the two kinds of API, the relationship diagramAvailable / Planned
02-quickstart.mdKey, cell address, GET /me, first call, widgetAvailable (sandbox: Planned)
03-authentication.mdIntegrations, keys, scopes, permissions, IP, test keys, leaksAvailable (test keys: Planned)
04-cells-and-data.mdRU/EN/ID cells, addresses, wrong_cell, personal data, the disclosure logAvailable
05-conventions.mdFormat, errors and the error code catalog, pagination, idempotency, asynchronous operations, limits, versions, paid operationsPlanned
06-webhooks.mdWebhooks v2: subscriptions, events, signing and verification, retries, rotation, delivery logAvailable
07-wallet.mdThe tenant wallet: states, GET /wallet, halting exchange on a negative balance (402 wallet_suspended), webhooks, resumingAvailable
90-changelog.mdChangelog and deprecation policyAvailable
91-glossary.mdGlossaryAvailable

#Chats and the AI seller — chat/

FileWhat it coversStatus
chat/01-overview.mdOverview: the widget, the Chat API, the server APIAvailable
chat/02-widget-embed.mdEmbedding the widget on a siteAvailable
chat/03-widget-js-api.mdThe widget JS API (open, close, send, identify, events)Planned
chat/04-page-context-utm.mdPage context and UTMAvailable
chat/05-client-chat-api.mdThe client Chat API (/api/widget/*) for a custom interfaceAvailable
chat/06-server-conversations-api.mdThe server API for conversations and messagesAvailable (reading) / Planned (writing)
chat/07-ai-seller-own-channel.mdThe AI seller in the tenant's own channelPlanned

#Analytics — analytics/

FileWhat it coversStatus
analytics/01-overview.mdOverview: four ways to collect dataAvailable
analytics/02-loader.mdThe loader.js loaderAvailable
analytics/03-cms-modules.mdBitrix, WordPress, FastAPI, and Nuxt modulesAvailable (Bitrix, WordPress); FastAPI and Nuxt are not published
analytics/04-js-tracker.mdThe track/js JS trackerAvailable
analytics/05-events-api.mdThe events API POST /analytics/eventsPlanned
analytics/06-offline-conversions.mdOffline conversions POST /analytics/conversionsPlanned
analytics/07-reading-analytics.mdReading analytics through the APIAvailable
analytics/08-dashboards.mdDashboards and embedding themAvailable / Planned (embedding)

#CRM and agents — crm/

FileWhat it coversStatus
crm/01-modes.mdCRM modes: internal, external, bothPlanned
crm/02-leads-api.mdThe leads APIAvailable (reading) / Planned (writing)
crm/03-scoring.mdLead scoringPlanned
crm/04-agent-actions.mdAgent actions and action requestsPlanned
crm/05-status-mapping.mdMapping to external CRM statusesPlanned
crm/06-pii-transfer.mdTransferring personal data to an external CRMPlanned

#Article publisher — articles/

FileWhat it coversStatus
articles/01-overview.mdPublisher overviewAvailable / Planned
articles/02-generation.mdArticle generationPlanned (jobs API)
articles/03-publishing-modules.mdPublishing through CMS modules and the connectorAvailable
articles/04-api.mdThe server articles APIAvailable (reading) / Planned (writing)

#Strategist — strategist/

FileWhat it coversStatus
strategist/01-reports.mdStrategist reportsAvailable
strategist/02-topics-and-actions.mdStrategist topics and actionsAvailable (reading) / Planned (decisions)
strategist/03-chat.mdConversation with the strategistPlanned

#Server API map by scope

ScopeDocumentation section
conversations:*, ai_seller:invokechat/06, chat/07
leads:*crm/02–crm/05
analytics:*, dashboards:readanalytics/05–analytics/08
articles:*articles/02, articles/04
strategist:*strategist/01–strategist/03
webhooks:manage06-webhooks.md
no scope: GET /me, GET /wallet, GET /operations/{id}02-quickstart.md, 05-conventions.md

The full table of scopes and their mapping to endpoints is in 03-authentication.md.

#Open questions

Only the questions that have no decision yet remain here. Everything else is settled in the text of the pages. Complete lists per module are in the "Open questions" sections of the section pages.

#For the owner

  1. API address. The path /api/public/v1 on the cell's domain is adopted; the api.<domain> subdomain option (DNS and nginx on all three cells) has not been finally rejected.
  2. Test mode. Whether the sandbox and test keys will open together with the core of the server API or later. Until decided, they are described as "Planned".
  3. Limits by plan and api_access. The starting limits are uniform (read 600, write 120, paid 30 per minute); the binding to plans and the list of plans with api_access are not defined.
  4. CRM modes external and both on all cells, including ID (the reseller partner's legal entity), and deletion of personal data at the customer's request.
  5. Documentation languages. The scope and order of release of the English and Indonesian versions.
  6. The reference rules for page type/id for the widget and modules (discrepancy no. 6 in chat/02-widget-embed.md).
  7. Minor product decisions per module: editing a strategist topic before approval, the plan and accuracy of the article generation estimate, publishing the FastAPI and Nuxt modules, the consent text for EN and ID, the lookback window for analytics events, multi-currency offline conversions, a separate scope for conversions.

#Technical

  1. Permission. integrations.manage is adopted; the permission registry and the production roles of the three databases have yet to be updated, otherwise a key without an owning role means "deny all".
  2. Discrepancies between the widget and Chat API and the design (discrepancies 1–8, 12, 13, 22 from the facts file): the pre-chat form, file uploads, channel parameters, frame-ancestors, the page type and id regular expressions.
  3. Gaps in the server API contract that OpenAPI will close: the permission for GET /disclosures; the visibility of GET /operations/{id} (by default, the operations of the caller's own integration); the error code for an expired cursor (422 validation_failed with the /cursor pointer is adopted); the code for an internal server error (it is not in the catalog); the contents of data in crm.mode_changed; the body format of PUT /crm/status-map.
  4. Code changes when the service is extracted that the contract requires: storing the lead scoring reason (score_reason, scored_at, score_source), the week in granularity, data_as_of in the strategist report DTOs, moving bing into the list of sources after verification, uniform article limits in the connector's PROTOCOL.md, rejecting a topic only from proposed in the dashboard as well.
  5. Definitions of analytics metrics (sessions, visitors, units) and binding the analytics session_id to the widget conversation.

#Feedback

If you find an inaccuracy or a description is missing, include the page and the X-Request-Id of the problematic request (if you have one) when contacting the support team of your cell.