Instancia
Nueva instancia
Aprovisiona una nueva instancia y, opcionalmente, configura webhook, WebSocket, Chatwoot, proxy, S3 y settings inline en la misma solicitud
POST
Nueva instancia
Auth:
Puedes corregir las credenciales vía
Ejemplo de error:
TokenAccount • Rate-limit: 20/min • Idempotente: no
Descripción
Crea una nueva instancia de WhatsApp en tu cuenta. La instancia nace disconnected, el siguiente paso es llamar aGET /api/instance/connect/:instance para obtener el QR code o pairing code.
Durante la creación, puedes enviar, en el mismo body, la configuración inicial de proxy, webhook, WebSocket, integración Chatwoot, ajustes de comportamiento y almacenamiento S3. Cada bloque es independiente: envía solo lo que necesites.
Ejemplos
Mínimo
Crea la instancia con solo elname. El TokenInstance es generado automáticamente por el servidor y devuelto en instance.token en la respuesta, guárdalo para autenticar las llamadas subsiguientes.
Con token personalizado
Define manualmente elTokenInstance en el campo token en lugar de dejar que el servidor genere uno. Útil para reutilizar un valor ya registrado en otro sistema, el token debe ser único dentro de tu cuenta.
Con settings personalizados
Crea la instancia con el bloquesettings ya definido: rechaza llamadas automáticamente con un mensaje por defecto, mantiene presencia online, deshabilita la sincronización de historial e ignora estados. Equivale a llamar a POST /api/instance/settings/:instance justo después.
Con proxy
Aprovisiona la instancia apuntando a un proxy SOCKS5 autenticado. La contraseña se cifra at-rest con AES-256-GCM y nunca se devuelve en la respuesta.Con webhook
En la misma solicitud, configura el webhookdefault para recibir solo los eventos message.exchange y call.update, con Authorization personalizado para validar el origen. La media no se envía en base64, el destino la obtiene vía la URL devuelta.
Con WebSocket
Habilita el broadcast en tiempo real vía WebSocket filtrando por los eventosmessage.exchange y call.update. Útil para dashboards y bots que necesitan latencia mínima sin exponer un endpoint público de webhook.
Con S3
Apunta el almacenamiento de media a un bucket AWS S3 (us-east-1), con prefijo media/ para organizar las subidas. La s3SecretKey se cifra at-rest y nunca aparece en la respuesta.
Con Chatwoot
Aprovisiona la instancia ya vinculada a una inbox de Chatwoot (WhatsApp - Orion), con firma de agente activa y reapertura automática de conversaciones resueltas. Si la activación de Chatwoot falla, la instancia se crea de todos modos y el objeto chatwoot regresa con status: "error".
Completo
Combina todos los bloques en la misma solicitud: token personalizado, proxy SOCKS5, webhook, WebSocket, integración Chatwoot, ajustes de comportamiento y almacenamiento S3. Cada bloque permanece independiente, las fallas en sub-bloques no abortan la creación de la instancia.Respuesta exitosa
La respuesta incluye el TokenInstance generado y el resumen de cada integración configurada (proxy, webhook, websocket, chatwoot, settings, s3). Guarda elinstance.token, es lo que autentica las llamadas subsiguientes de la propia instancia.
201 Created
El
chatwootApiToken no es devuelto en esta respuesta (solo se expone en plaintext en GET /api/chatwoot/list/:instance). El s3.secretKey y la proxy.password nunca son devueltos por ningún endpoint.Chatwoot con error
Si el bloquechatwoot* fue enviado pero la configuración falló (p. ej., token inválido), la instancia se crea de todos modos y el objeto chatwoot en la respuesta viene con status: "error" y un error accionable:
POST /api/chatwoot/set/:instance sin recrear la instancia.
Cabeceras
Tu TokenAccount.
application/jsonCuerpo de la solicitud
Identificador de la instancia (usado en las rutas
:instance de todos los demás endpoints). No puede estar en blanco y debe ser único dentro de tu cuenta. Se recomienda kebab-case o snake_case.Token personalizado para la instancia. Si se omite, se genera automáticamente (recomendado).
Bloque proxy (opcional)
Habilita el uso de un proxy específico para esta instancia.
IP o hostname del proxy.
Puerto como string (p. ej.,
"8080").http, https o socks5.Usuario del proxy (opcional).
Contraseña del proxy (opcional, cifrada at-rest con AES-256-GCM).
Bloque webhook (opcional)
Habilita el envío de eventos a una URL.
URL donde RyzeAPI hará POST de los eventos.
Valor que RyzeAPI envía en la cabecera
Authorization de cada POST (útil para validar origen). Ej.: Bearer secret-key-123.Si es
true, cada tipo de evento puede tener su propia URL (default: false).Lista de eventos que la instancia debe despachar. Ej.:
["message.exchange", "call.update"].Incluye media recibida como base64 dentro del body del webhook.
El bloque webhook crea un webhook con label
default. Para múltiples webhooks por instancia, usa POST /api/events/webhook después.Bloque WebSocket (opcional)
Habilita el broadcasting de eventos vía WebSocket para esta instancia.
Lista de eventos que serán emitidos vía WebSocket. Si está vacío con
websocketEnabled=true, todos los eventos son emitidos.Incluye media recibida como base64 en los frames del WebSocket.
Bloque Chatwoot (opcional)
Habilita la integración con Chatwoot.
URL de la instalación de Chatwoot (p. ej.,
https://chatwoot.example.com). Requerido si chatwootEnabled=true.ID numérico de la cuenta de Chatwoot. Requerido si
chatwootEnabled=true.Token de API de la cuenta de Chatwoot (el
access_token del agente). Requerido si chatwootEnabled=true. Cifrado at-rest. No se devuelve en esta respuesta, pero se expone en plaintext en GET /api/chatwoot/list/:instance.Nombre del inbox que se creará en Chatwoot (p. ej.,
"WhatsApp - Orion").Si es
true, los mensajes enviados a través de la API se prefijan con la firma del agente de Chatwoot.Si es
true, los mensajes de grupo no se convierten en conversaciones en Chatwoot.Si es
true, las nuevas conversaciones inician como pending en lugar de open.Si es
true, los nuevos mensajes en conversaciones resueltas las reabren automáticamente.Bloque settings (opcional)
Rechaza automáticamente las llamadas entrantes.
Mensaje automático enviado al llamante cuando la llamada es rechazada.
No procesa mensajes de grupo (útil para bots 1-a-1).
Mantiene la instancia marcada como “online” en WhatsApp.
Marca automáticamente los mensajes recibidos como leídos.
Default
true (el historial no se sincroniza en la primera conexión). Envía false si quieres recibir el backlog.Ignora mensajes de tipo “status” (stories).
Bloque S3 (opcional, almacenamiento de media)
Habilita el upload de media recibida a S3 o MinIO.
Región (p. ej.,
us-east-1).Nombre del bucket.
Access Key ID.
Secret Access Key (cifrado at-rest, nunca devuelto).
Endpoint personalizado para MinIO o DigitalOcean Spaces. Omite para AWS S3 oficial.
Prefijo de path (p. ej.,
media/).Errores
| HTTP | error.message | Cuándo |
|---|---|---|
| 400 | Invalid request body | JSON malformado |
| 400 | The 'name' field is required | name faltante o en blanco |
| 401 | Invalid token | TokenAccount inválido |
| 403 | Account instance quota exceeded | Cuota de instancias alcanzada |
| 409 | Instance or token already exists | Nombre o token ya en uso |
| 429 | Rate limit exceeded. Try again later. | Más de 20 creaciones por minuto |
| 500 | Failed to create instance | Error interno |
Siguiente
Conectar a WhatsApp
Genera el QR code o pairing code para vincular el número.
Verificar estado
Usa
GET /api/instance/list?instanceName=<name> para inspeccionar el status actual.