Instance
New instance
Provisions a new instance and, optionally, configures webhook, WebSocket, Chatwoot, Typebot, proxy, S3, and settings inline in the same request
POST
New instance
Auth:
You can fix the credentials via
You can configure the bot later via
TokenAccount • Rate-limit: 20/min • Idempotent: no
Description
Creates a new WhatsApp instance in your account. The instance is born disconnected, the next step is to callGET /api/instance/connect/:instance to obtain the QR code or pairing code.
During creation, you can send, in the same body, the initial configuration of proxy, webhook, WebSocket, Chatwoot integration, Typebot integration, behavior settings, and S3 storage. Each block is independent: send only what you need.
Examples
Minimum
Creates the instance with just thename. The TokenInstance is generated automatically by the server and returned in instance.token in the response, keep it to authenticate subsequent calls.
With custom token
Manually sets theTokenInstance in the token field instead of letting the server generate one. Useful for reusing a value already registered in another system, the token must be unique within your account.
With custom settings
Creates the instance with thesettings block already defined: auto-rejects calls with a default message, keeps presence online, disables history sync, and ignores stories. Equivalent to calling POST /api/instance/settings/:instance right after.
With proxy
Provisions the instance pointing to an authenticated SOCKS5 proxy. The password is encrypted at-rest with AES-256-GCM and is never returned in the response.With webhook
In the same request, configures thedefault webhook to receive only the message.exchange and call.update events, with custom Authorization to validate the source. Media is not sent in base64, the destination fetches via the returned URL.
With WebSocket
Enables real-time broadcast via WebSocket filtering by themessage.exchange and call.update events. Useful for dashboards and bots that need minimum latency without exposing a public webhook endpoint.
With S3
Points media storage to an AWS S3 bucket (us-east-1), with prefix media/ to organize uploads. The s3SecretKey is encrypted at-rest and never appears in the response.
With Chatwoot
Provisions the instance already linked to a Chatwoot inbox (WhatsApp - Orion), with active agent signature and automatic reopening of resolved conversations. If Chatwoot activation fails, the instance is created anyway and the chatwoot object returns with status: "error".
With Typebot
Provisions the instance already with a Typebot bot registered. This block configures a single bot; add more later viaPOST /api/typebot/set/:instance. If activation fails (bridge unavailable or invalid fields), the instance is created anyway and the typebot object returns with status: "error".
Complete
Combines every block in the same request: custom token, SOCKS5 proxy, webhook, WebSocket, Chatwoot integration, behavior settings, and S3 storage. Each block remains independent, failures in sub-blocks don’t abort the instance creation.Success response
The response includes the generated TokenInstance and the summary of every configured integration (proxy, webhook, websocket, chatwoot, settings, s3). Save theinstance.token, it’s what authenticates subsequent calls of the instance itself.
201 Created
The
chatwootApiToken is not returned in this response (it is exposed in plaintext only by GET /api/chatwoot/list/:instance). The s3.secretKey and the proxy.password are never returned by any endpoint.Chatwoot with error
If thechatwoot* block was sent but the configuration failed (e.g., invalid token), the instance is created anyway and the chatwoot object in the response comes with status: "error" and an actionable error:
POST /api/chatwoot/set/:instance without recreating the instance.
Typebot with error
If thetypebot* block was sent but the configuration failed (e.g., bridge not configured on the server, missing typebotUrl, or invalid typebotTriggerType), the instance is created anyway and the typebot object in the response comes with status: "error" and an actionable error:
POST /api/typebot/set/:instance without recreating the instance.
Headers
string
required
Your TokenAccount.
string
required
application/jsonRequest body
string
required
Instance identifier (used in the
:instance paths in every other endpoint). Cannot be blank and must be unique within your account. Kebab-case or snake_case is recommended.string
Custom token for the instance. If omitted, it’s generated automatically (recommended).
Proxy block (optional)
boolean
Enables the use of a proxy specific to this instance.
string
Proxy IP or hostname.
string
Port as a string (e.g.,
"8080").string
http, https, or socks5.string
Proxy user (optional).
string
Proxy password (optional, encrypted at-rest with AES-256-GCM).
Webhook block (optional)
boolean
Enables sending events to a URL.
string
URL where RyzeAPI will POST the events.
string
Value RyzeAPI sends in the
Authorization header of each POST (useful to validate origin). Ex.: Bearer secret-key-123.boolean
If
true, each event type can have its own URL (default: false).string[]
List of events the instance should dispatch. Ex.:
["message.exchange", "call.update"].boolean
Includes received media as base64 inside the webhook body.
The webhook block creates one webhook with label
default. For multiple webhooks per instance, use POST /api/events/webhook afterwards.WebSocket block (optional)
boolean
Enables event broadcasting via WebSocket for this instance.
string[]
List of events that will be emitted via WebSocket. If empty with
websocketEnabled=true, all events are emitted.boolean
Includes received media as base64 in the WebSocket frames.
Chatwoot block (optional)
boolean
Enables the Chatwoot integration.
string
URL of the Chatwoot installation (e.g.,
https://chatwoot.example.com). Required if chatwootEnabled=true.integer
Numeric ID of the Chatwoot account. Required if
chatwootEnabled=true.string
Chatwoot account API token (the agent’s
access_token). Required if chatwootEnabled=true. Encrypted at-rest. Not returned in this response, but exposed in plaintext by GET /api/chatwoot/list/:instance.string
Name of the inbox that will be created in Chatwoot (e.g.,
"WhatsApp - Orion").boolean
If
true, messages sent through the API are prefixed with the Chatwoot agent signature.boolean
If
true, group messages do not become conversations in Chatwoot.boolean
If
true, new conversations start as pending instead of open.boolean
If
true, new messages on resolved conversations reopen them automatically.Typebot block (optional)
Configures a single Typebot bot together with instance creation. For multiple bots, usePOST /api/typebot/set/:instance afterwards. See the Typebot overview for routing by trigger.
boolean
Enables the Typebot integration.
string
URL of the published Typebot (viewer). Required if
typebotEnabled=true. Ex.: https://typebot.co/meu-bot-abc123.string
How the bot is triggered:
all (any message) or keyword. Required if typebotEnabled=true.string
Trigger operator, required if
typebotTriggerType is keyword. One of: contains, equals, startsWith, endsWith, regex.string
Trigger word/expression, required if
typebotTriggerType is keyword.integer
default:"0"
Expires the session by inactivity after N minutes (
0 = never).string
Message sent to the user when the session expires.
string
Word that ends the bot immediately (e.g.,
"sair").string
Farewell sent when the bot is ended by the
typebotKeywordFinish.integer
default:"0"
Delay of the “typing…” indicator before each reply, in milliseconds.
boolean
default:"false"
If
true, pauses the bot in that conversation when the operator replies manually.integer
default:"0"
Groups fragments sent by the customer for N seconds before processing.
boolean
default:"true"
If
true, group messages do not trigger the bot. Absent equals true.string
Bot label in the panel (e.g.,
"Bot de orçamento").Settings block (optional)
boolean
Automatically rejects incoming calls.
string
Automatic message sent to the caller when the call is rejected.
boolean
Does not process group messages (useful for 1-to-1 bots).
boolean
Keeps the instance marked as “online” in WhatsApp.
boolean
Automatically marks received messages as read.
boolean
default:"true"
Default
true (history is not synced on the first connection). Send false if you want to receive the backlog.boolean
Ignores “status” type messages (stories).
S3 block (optional, media storage)
boolean
Enables uploading received media to S3 or MinIO.
string
Region (e.g.,
us-east-1).string
Bucket name.
string
Access Key ID.
string
Secret Access Key (encrypted at-rest, never returned).
string
Custom endpoint for MinIO or DigitalOcean Spaces. Omit for official AWS S3.
string
Path prefix (e.g.,
media/).Errors
Error example:
Next
Connect to WhatsApp
Generate the QR code or pairing code to link the number.
Check state
Use
GET /api/instance/list?instanceName=<name> to inspect the current status.