APIchat overview

What APIchat is, when to use it, authentication, and response codes.

APIchat is a Landbot channel designed for developers who want to plug Landbot into a messaging platform that isn't natively supported — Telegram, Slack, SMS, an in-house app, anything you can write HTTP for.

You build the conversation flow visually in Landbot, and a middleware service you run translates between Landbot and your platform.

External channel (Telegram, Slack, SMS, your app)

Your middleware

Landbot APIchat (this API + your webhook)

You push inbound messages from the external channel into Landbot with POST /send/{customer_token}/. Landbot pushes outbound bot messages to a webhook URL you configure on the channel — see Webhook payload.

Tip Want the whole thing end to end? Bridge a channel to Landbot is a complete, runnable recipe for exactly this two-way relay — Telegram as the worked example, with the /send/ push, the webhook handler, and the identity-mapping trick you'll reuse for any channel.

Info APIchat is a separate API from the Platform API. It lives on a different host and uses a different authentication token.

Note Don't have an APIchat channel yet? You create one — and get its token — in the dashboard. The Help Center's API Chat section covers the setup.

Base URL

https://chat.landbot.io/v1/

All paths in this reference are relative to this URL.

Authentication

Every request must include the channel token in the Authorization header:

Authorization: Token <channel_token>
Content-Type: application/json

The channel_token comes from your APIchat channel configuration in the Landbot dashboard. It is not the same as the agent token used by the Platform API.

Warning Treat your channel token like a password. It grants full message and customer access for the channel.

Response codes

Code Meaning
200 Success
201 Created
Code Meaning
400 Invalid schema (not JSON)
401 Unauthorized
403 Forbidden
404 Not found
405 Method not allowed
409 Conflict
412 Precondition failed
413 Request too large
422 Unprocessable entity (invalid JSON parameters)
429 Too many requests (limit: 10/second)

Error responses use a simpler shape than the Platform API — a single error string instead of a per-field map:

{
  "success": false,
  "error": "Invalid message type"
}