Skip to main content
POST
Create bot
Auth: TokenAccount or TokenInstanceRate limit: Global (100/min) • Idempotent: no

Description

Creates a new Typebot bot for the instance. RyzeAPI activates the instance’s integration.
This endpoint is create-only. Passing botId in the body returns 400 botId is not allowed on create, use PATCH /api/typebot/update/:instance to edit. To change an existing bot, use PATCH /api/typebot/update/:instance.
Trigger priority, when several rules can match the same message, the most specific wins:
Uniqueness, each instance can have only one enabled all bot; keyword bots are unique per combination of (triggerOperator, triggerValue). Trying to create a conflict returns 400.
The typebotUrl must point to a published Typebot (viewer). The trailing / is removed. This operation has an internal timeout of 60s.

Example

For the simplest bot, send only typebotUrl + triggerType: "all": it responds to any message. To edit an existing bot, use PATCH /api/typebot/update/:instance with its botId, this endpoint only creates.

Success response

201 Created

Path parameters

string
required
Instance name (e.g., suporte).

Headers

string
required
TokenAccount or TokenInstance.
string
required
application/json

Request body

string
required
URL of the published Typebot (viewer). Must be a valid URL. The trailing / is removed. Ex.: https://typebot.co/meu-bot-abc123.
string
required
How the bot is triggered: all (any message starts the flow) or keyword (only when the message matches triggerOperator + triggerValue).
string
Trigger operator, required if triggerType is keyword. One of: contains, equals, startsWith, endsWith, regex.
string
Trigger word or expression, required if triggerType is keyword.
boolean
default:"true"
Whether the bot is active in routing. Absent equals true.
string
Bot label in the panel (e.g., "Bot de orçamento").
integer
default:"0"
Expires the session by inactivity after N minutes. 0 = never expires.
string
Message sent to the user when the session expires (if defined).
string
Word that, when sent by the user, ends the bot immediately (e.g., "sair").
string
Farewell sent when the bot is ended by the keywordFinish.
integer
default:"0"
Delay of the “typing…” indicator before each reply, in milliseconds (converted to seconds on send).
boolean
default:"false"
If true, the bot is paused in that conversation when you (the operator) reply manually.
integer
default:"0"
Groups fragments sent by the customer for N seconds before processing (avoids firing the flow on every line).
boolean
default:"true"
If true, group messages do not trigger the bot. Absent equals true.
boolean
default:"false"
If true, the bot does not auto-start when you started the conversation. When you send the first message and the contact replies, the bot does not trigger. The reactivation window reuses expireMinutes (counted from your first message; 0 = permanent).
boolean
default:"false"
If true, when the flow ends the conversation stays open instead of closing. The bot stays silent (it does not restart) and the session only ends via keywordFinish or manually, appearing with status held.

Errors

Error payload example

keyword trigger without operator/value:

Next

Edit bot

Change fields of an existing bot with PATCH /api/typebot/update/:instance.

List bots

Check all the instance’s bots and the integration status.