Instance
New instance
Provisions a new instance and, optionally, configures webhook, WebSocket, Chatwoot, proxy, S3, and settings inline in the same request
POST
New instance
Auth:
You can fix the credentials via
Error example:
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, 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".
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.
Headers
Your TokenAccount.
application/jsonRequest body
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.Custom token for the instance. If omitted, it’s generated automatically (recommended).
Proxy block (optional)
Enables the use of a proxy specific to this instance.
Proxy IP or hostname.
Port as a string (e.g.,
"8080").http, https, or socks5.Proxy user (optional).
Proxy password (optional, encrypted at-rest with AES-256-GCM).
Webhook block (optional)
Enables sending events to a URL.
URL where RyzeAPI will POST the events.
Value RyzeAPI sends in the
Authorization header of each POST (useful to validate origin). Ex.: Bearer secret-key-123.If
true, each event type can have its own URL (default: false).List of events the instance should dispatch. Ex.:
["message.exchange", "call.update"].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)
Enables event broadcasting via WebSocket for this instance.
List of events that will be emitted via WebSocket. If empty with
websocketEnabled=true, all events are emitted.Includes received media as base64 in the WebSocket frames.
Chatwoot block (optional)
Enables the Chatwoot integration.
URL of the Chatwoot installation (e.g.,
https://chatwoot.example.com). Required if chatwootEnabled=true.Numeric ID of the Chatwoot account. Required if
chatwootEnabled=true.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.Name of the inbox that will be created in Chatwoot (e.g.,
"WhatsApp - Orion").If
true, messages sent through the API are prefixed with the Chatwoot agent signature.If
true, group messages do not become conversations in Chatwoot.If
true, new conversations start as pending instead of open.If
true, new messages on resolved conversations reopen them automatically.Settings block (optional)
Automatically rejects incoming calls.
Automatic message sent to the caller when the call is rejected.
Does not process group messages (useful for 1-to-1 bots).
Keeps the instance marked as “online” in WhatsApp.
Automatically marks received messages as read.
Default
true (history is not synced on the first connection). Send false if you want to receive the backlog.Ignores “status” type messages (stories).
S3 block (optional, media storage)
Enables uploading received media to S3 or MinIO.
Region (e.g.,
us-east-1).Bucket name.
Access Key ID.
Secret Access Key (encrypted at-rest, never returned).
Custom endpoint for MinIO or DigitalOcean Spaces. Omit for official AWS S3.
Path prefix (e.g.,
media/).Errors
| HTTP | error.message | When |
|---|---|---|
| 400 | Invalid request body | Malformed JSON |
| 400 | The 'name' field is required | name missing or blank |
| 401 | Invalid token | Invalid TokenAccount |
| 403 | Account instance quota exceeded | Instance quota reached |
| 409 | Instance or token already exists | Name or token already in use |
| 429 | Rate limit exceeded. Try again later. | More than 20 creations per minute |
| 500 | Failed to create instance | Internal error |
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.