Skip to main content
Documentation
StartOverviewArchitectureAuthenticationSend your first message
TypeScript SDKOverviewTrusted app serverApp-user clientsRealtimeErrors & webhooks
Flutter SDKOverviewInstallationAuthenticationChannels & messagesOffline & syncRealtimeUI componentsPush & lifecycle
ConceptsTenancy & scopeChannels & messagesDelivery & reconciliationSecurity checklist
ProtocolsRealtimeSigned webhooks
ReferenceREST APIErrors, limits & retriesDeploy docs to Coolify
VV ChatDocs API v1
Recommended starting points
Build chat without rebuilding infrastructureV Chat is a multi-tenant messaging backend with typed server, web, and Flutter integration paths.StartArchitecture at a glanceUnderstand the control plane, data plane, realtime path, and SDK boundaries before integrating.StartAuthentication and credentialsSelect the correct credential for dashboard, trusted-server, app-user, realtime, and webhook flows.StartSend your first messageUse the trusted TypeScript server client to create the minimum safe messaging flow.StartTypeScript SDK overviewChoose the correct typed client for trusted servers, app users, dashboard sessions, realtime, and webhooks.TypeScript SDKTrusted app-server clientUse AppServerClient from a protected backend to manage data-plane resources and mint app-user tokens.TypeScript SDKApp-user clientsBuild browser or Node app-user flows with VChatClient or the lower-level AppUserClient.TypeScript SDK
↑↓ Navigate↵ Openesc Close
API reference
StartOverviewArchitectureAuthenticationSend your first message
TypeScript SDKOverviewTrusted app serverApp-user clientsRealtimeErrors & webhooks
Flutter SDKOverviewInstallationAuthenticationChannels & messagesOffline & syncRealtimeUI componentsPush & lifecycle
ConceptsTenancy & scopeChannels & messagesDelivery & reconciliationSecurity checklist
ProtocolsRealtimeSigned webhooks
ReferenceREST APIErrors, limits & retriesDeploy docs to Coolify
Contract sourceOpenAPI JSON
Docs/Concepts
Ship safely

Integration security checklist

Protect credentials, content, tenant scope, custom fields, webhooks, logs, and client bundles.

Updated 2026-08-09•AGENTS.md security invariants · SDK security documentation

Trusted server

  • Store application credentials and webhook secrets in a protected secret manager; rotate and revoke them deliberately.
  • Authenticate your product user before deriving a V Chat user ID or issuing a token.
  • Use exact tenant/app/environment configuration and never accept client-provided scope as authority.
  • Verify webhook signatures over raw bytes before parsing and deduplicate delivery IDs.
  • Do not log tokens, cookies, message content, arbitrary bodies, private URLs, or customer custom data.

Browser and Flutter

  • Use only short-lived app-user tokens and keep them in memory.
  • Never bundle application credentials, dashboard cookies, webhook secrets, or signing keys.
  • Treat cached data as presentation state, not authorization proof.
  • Cancel obsolete requests, dispose sessions on account switch, and isolate offline stores by exact app-user scope.
  • Show stable error codes and safe recovery actions instead of raw server messages.

Content and custom fields

Custom JSON, filters, files, arrays, and text are explicitly allowlisted and bounded by the API. Escape untrusted content in your UI, avoid putting secrets in custom fields, and do not treat client-side sanitization as a substitute for server validation.

PreviousDelivery, ordering, and reconciliationNext Realtime protocol
On this pageTrusted serverBrowser and FlutterContent and custom fields
Report a docs issue