Developer documentation

Everything you need to embed Way2Chat on your site and connect it to your tools β€” the chat widget and outbound webhooks. You don't need an account to read these docs.

Introduction

Way2Chat is a multi-tenant live-chat platform. Each website you add in your dashboard gets a unique widget key that embeds a chat bubble for your visitors. Operators and agents reply from the dashboard, and paid plans can send new-chat events to your own tools with outbound webhooks.

  • Base URL β€” https://way2chat.com
  • Widget key β€” per website, found under Dashboard β†’ Websites.
  • Webhook URL β€” set under Settings β†’ Integrations on paid plans.

Install the widget

Copy this snippet and paste it just before the closing </body> tag on every page of your site. Replace YOUR_WIDGET_KEY with the key from your Websites page.

<!-- Way2Chat live chat -->
<script>window.Way2ChatConfig = { key: "YOUR_WIDGET_KEY" };</script>
<script src="https://way2chat.com/widget/widget.js" async></script>

The chat bubble appears automatically. It's a single lightweight script β€” no framework required, and it loads asynchronously so it won't block your page.

The widget only loads for websites that are active. If a site is disabled (for example, beyond your plan's website limit) the script does nothing and no bubble shows.

Widget configuration

The look and behaviour of the widget (colour, greeting, support name, position, avatar, office hours) are configured per website in Dashboard β†’ Chat Widget β€” no code changes needed; updates go live instantly.

The only required embed option is the key:

OptionTypeDescription
keystringRequired. Your website's widget key.

Visitor verification

Before a visitor can chat, they enter their email and confirm a 6-digit code sent to that address β€” no passwords, no account creation. The code is delivered using your own outgoing email (SMTP), configured per account or per website in Settings, so it arrives from your brand. Until SMTP is set, the widget can't send codes.

The REST API is not available to customer accounts yet. The reference below describes the API we are building. API keys cannot currently be created from a customer dashboard, and we will announce self-serve access when it is ready. For integrations today, use outbound webhooks.

Authentication

REST API requests authenticate with an API key passed as a Bearer token. Keys are scoped to specific permissions (for example conversations, stats).

Authorization: Bearer YOUR_API_KEY

Example with cURL:

curl "https://way2chat.com/api/v1/stats.php" \
  -H "Authorization: Bearer YOUR_API_KEY"
Keep API keys secret β€” use them only from your server, never in client-side JavaScript. A leaked key can read your conversation data.

List conversations

GET Returns conversations across your websites. Requires the conversations permission.

GET https://way2chat.com/api/v1/conversations.php

Query parameters

ParamTypeDescription
statusstringopen, assigned, or closed. Omit for all.
website_idintOnly conversations for one website.
sincedatetimeISO date β€” only conversations updated after this.
limitint1–100 (default 50).
offsetintFor pagination (default 0).

Example response

{
  "success": true,
  "limit": 50,
  "conversations": [
    {
      "id": 1421,
      "status": "open",
      "satisfaction": null,
      "website_name": "My Store",
      "website_domain": "mystore.com",
      "created_at": "2026-07-10 14:02:11",
      "last_message_at": "2026-07-10 14:09:44"
    }
  ]
}

Statistics

GET Aggregate conversation stats for a date range. Requires the stats permission.

GET https://way2chat.com/api/v1/stats.php?range=30
ParamTypeDescription
rangeintNumber of days to summarise (default 30).

Example response

{
  "success": true,
  "range_days": 30,
  "generated": "2026-07-11T09:00:00+00:00",
  "stats": {
    "conversations_total": 312,
    "conversations_open": 18,
    "conversations_assigned": 7
  }
}

Errors & limits

All responses are JSON. Success responses include "success": true; errors return an appropriate HTTP status with "success": false and an error message.

StatusMeaning
400Bad request β€” a parameter is missing or invalid.
401Missing or invalid API key.
403The key lacks the required permission.
429Rate limited β€” slow down and retry.

Send requests server-side. The API is read-only today (conversations and stats); write access is handled through the dashboard.

Outbound webhooks

Way2Chat can POST an event to a URL you control whenever a new chat starts β€” perfect for Slack notifications or a Zapier Catch Hook. Set your webhook URL in Settings β†’ Integrations (available on paid plans).

The JSON payload works for both Slack (renders text) and automation tools (structured fields):

{
  "text": "New chat on My Store from jane@example.com",
  "event": "new_conversation",
  "website_id": 12,
  "timestamp": "2026-07-11T09:00:00+00:00"
}

It's a fire-and-forget POST β€” return any 2xx quickly. Leave the field blank in Settings to disable it.

Support

Questions about installing the widget or connecting webhooks? Use the chat on this page, or see Contact for the right team.

Cookie settings

Choose what this site may store on your device. You can change this at any time from β€œCookie settings” at the bottom of every page.

Strictly necessary

Always on

Keeps you signed in and remembers this choice. The site cannot work without it, so it can't be switched off.

Functional β€” live support chat

Lets our support chat load automatically and remember your conversation across pages. If you leave this off, you can still open the chat whenever you want β€” it only loads when you ask for it. Turning it off later clears the chat's stored data.