Instancia
Nueva instancia
Aprovisiona una nueva instancia y, opcionalmente, configura webhook, WebSocket, Chatwoot, Typebot, proxy, S3 y settings inline en la misma solicitud
POST
Nueva instancia
Auth:
Puedes corregir las credenciales vía
Puedes configurar el bot después vía
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, integración Typebot, 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".
Con Typebot
Aprovisiona la instancia ya con un bot de Typebot registrado. Este bloque configura un único bot; agrega más después víaPOST /api/typebot/set/:instance. Si la activación falla (bridge no disponible o campos inválidos), la instancia se crea de todos modos y el objeto typebot 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.
Typebot con error
Si el bloquetypebot* fue enviado pero la configuración falló (p. ej., bridge no configurado en el servidor, typebotUrl ausente o typebotTriggerType inválido), la instancia se crea de todos modos y el objeto typebot en la respuesta viene con status: "error" y un error accionable:
POST /api/typebot/set/:instance sin recrear la instancia.
Cabeceras
string
requerido
Tu TokenAccount.
string
requerido
application/jsonCuerpo de la solicitud
string
requerido
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.string
Token personalizado para la instancia. Si se omite, se genera automáticamente (recomendado).
Bloque proxy (opcional)
boolean
Habilita el uso de un proxy específico para esta instancia.
string
IP o hostname del proxy.
string
Puerto como string (p. ej.,
"8080").string
http, https o socks5.string
Usuario del proxy (opcional).
string
Contraseña del proxy (opcional, cifrada at-rest con AES-256-GCM).
Bloque webhook (opcional)
boolean
Habilita el envío de eventos a una URL.
string
URL donde RyzeAPI hará POST de los eventos.
string
Valor que RyzeAPI envía en la cabecera
Authorization de cada POST (útil para validar origen). Ej.: Bearer secret-key-123.boolean
Si es
true, cada tipo de evento puede tener su propia URL (default: false).string[]
Lista de eventos que la instancia debe despachar. Ej.:
["message.exchange", "call.update"].boolean
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)
boolean
Habilita el broadcasting de eventos vía WebSocket para esta instancia.
string[]
Lista de eventos que serán emitidos vía WebSocket. Si está vacío con
websocketEnabled=true, todos los eventos son emitidos.boolean
Incluye media recibida como base64 en los frames del WebSocket.
Bloque Chatwoot (opcional)
boolean
Habilita la integración con Chatwoot.
string
URL de la instalación de Chatwoot (p. ej.,
https://chatwoot.example.com). Requerido si chatwootEnabled=true.integer
ID numérico de la cuenta de Chatwoot. Requerido si
chatwootEnabled=true.string
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.string
Nombre del inbox que se creará en Chatwoot (p. ej.,
"WhatsApp - Orion").boolean
Si es
true, los mensajes enviados a través de la API se prefijan con la firma del agente de Chatwoot.boolean
Si es
true, los mensajes de grupo no se convierten en conversaciones en Chatwoot.boolean
Si es
true, las nuevas conversaciones inician como pending en lugar de open.boolean
Si es
true, los nuevos mensajes en conversaciones resueltas las reabren automáticamente.Bloque Typebot (opcional)
Configura un único bot de Typebot junto con la creación de la instancia. Para varios bots, usaPOST /api/typebot/set/:instance después. Consulta el resumen de Typebot para el enrutamiento por trigger.
boolean
Habilita la integración con Typebot.
string
URL del Typebot publicado (viewer). Requerido si
typebotEnabled=true. Ej.: https://typebot.co/meu-bot-abc123.string
Cómo se acciona el bot:
all (cualquier mensaje) o keyword. Requerido si typebotEnabled=true.string
Operador del trigger, requerido si
typebotTriggerType es keyword. Uno de: contains, equals, startsWith, endsWith, regex.string
Palabra/expresión del trigger, requerida si
typebotTriggerType es keyword.integer
predeterminado:"0"
Expira la sesión por inactividad tras N minutos (
0 = nunca).string
Mensaje enviado al usuario cuando la sesión expira.
string
Palabra que finaliza el bot de inmediato (p. ej.,
"sair").string
Despedida enviada cuando el bot se finaliza por la
typebotKeywordFinish.integer
predeterminado:"0"
Delay del indicador “escribiendo…” antes de cada respuesta, en milisegundos.
boolean
predeterminado:"false"
Si es
true, pausa el bot en esa conversación cuando el operador responde manualmente.integer
predeterminado:"0"
Agrupa los fragmentos enviados por el cliente durante N segundos antes de procesar.
boolean
predeterminado:"true"
Si es
true, los mensajes de grupo no accionan el bot. Ausente equivale a true.string
Etiqueta del bot en el panel (p. ej.,
"Bot de orçamento").Bloque settings (opcional)
boolean
Rechaza automáticamente las llamadas entrantes.
string
Mensaje automático enviado al llamante cuando la llamada es rechazada.
boolean
No procesa mensajes de grupo (útil para bots 1-a-1).
boolean
Mantiene la instancia marcada como “online” en WhatsApp.
boolean
Marca automáticamente los mensajes recibidos como leídos.
boolean
predeterminado:"true"
Default
true (el historial no se sincroniza en la primera conexión). Envía false si quieres recibir el backlog.boolean
Ignora mensajes de tipo “status” (stories).
Bloque S3 (opcional, almacenamiento de media)
boolean
Habilita el upload de media recibida a S3 o MinIO.
string
Región (p. ej.,
us-east-1).string
Nombre del bucket.
string
Access Key ID.
string
Secret Access Key (cifrado at-rest, nunca devuelto).
string
Endpoint personalizado para MinIO o DigitalOcean Spaces. Omite para AWS S3 oficial.
string
Prefijo de path (p. ej.,
media/).Errores
Ejemplo de error:
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.