Una superficie versionada
Las rutas REST públicas viven bajo /v1. Las rutas compatibles bajo /api/v1 llegan a la misma API.
Construye sobre la REST API de producción para conversaciones de WhatsApp, Instagram y Messenger. Aquí tienes auth, paginación, mensajes, journeys, templates, webhooks firmados, debugging de entregas y endpoints para desarrolladores.
Usa InstantReply como la capa de mensajería de tu producto o herramientas internas. Tu backend puede leer conversaciones, enviar respuestas, actualizar contactos, enrutar leads, disparar journeys de WhatsApp, validar templates y reaccionar a mensajes de clientes en tiempo real.
Las rutas REST públicas viven bajo /v1. Las rutas compatibles bajo /api/v1 llegan a la misma API.
Es la misma superficie de producción que usan el dashboard, las automatizaciones, las respuestas IA y los journey sends.
Registra un endpoint webhook y recibe POSTs firmados cuando el cliente responde o cambia una entrega.
Autentica con una API key con scopes en Authorization: Bearer $IR_API_KEY. Mantén separadas las keys live y test. Puedes rotar keys desde developer settings sin cambiar el secreto de firma del webhook.
curl https://api.instantreply.co/v1/conversations \
-H "Authorization: Bearer $IR_API_KEY"curl -X POST https://api.instantreply.co/v1/conversations/$ID/messages \
-H "Authorization: Bearer $IR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Thanks for reaching out - how can we help?"}'Cada endpoint de lista acepta ?cursor= y devuelve el siguiente cursor cuando hay más registros. Trata el cursor como opaco y reenvíalo exactamente como lo recibiste.
Los fallos devuelven un envelope JSON con code, message, doc_url y request_id. Guarda X-Request-Id si necesitas que soporte rastree una llamada.
Estas son las rutas que más usan los desarrolladores. El inventario completo está en el catálogo REST, pero esta página explica para qué sirve cada grupo y cómo encaja en una integración.
Lee conversaciones, envía respuestas y sincroniza historiales de mensajes.
/v1/conversationsLista conversaciones con filtros por estado, canal, responsable y paginación por cursor.
/v1/conversations/:idLee una conversación con cliente, canal, etapa, etiquetas y actividad reciente.
/v1/conversations/:idActualiza asignación, estado, etiquetas o reglas de ruta de una conversación.
/v1/conversations/:id/messagesLee el historial de mensajes de una conversación.
/v1/conversations/:id/messagesEnvía una respuesta por el canal correcto: WhatsApp, Instagram o Messenger.
/v1/messagesLista mensajes de todas las conversaciones para auditoría, sincronización o analítica.
/v1/messagesCrea un mensaje saliente cuando tu integración ya conoce el contexto del canal.
/v1/messages/:idObtiene detalles de contenido y entrega de un mensaje.
Mantén el registro del cliente sincronizado y consulta métricas operativas.
/v1/contactsLista contactos con etapa, score, owner e identidad de canal.
/v1/contacts/:idLee un perfil de contacto y su contexto de conversación.
/v1/contacts/:idActualiza campos creados por lead capture o tu CRM.
/v1/channelsLista canales conectados de WhatsApp, Instagram y Messenger.
/v1/analytics/summaryConsulta métricas de volumen, respuesta y conversión.
/v1/usageLee uso de plan para mensajes, IA, webhooks y llamadas API.
Administra API keys y suscribe tu servidor a eventos firmados en tiempo real.
/v1/keysLista API keys activas y scopes.
/v1/keysCrea una key con scopes para backend, agente o ambiente test.
/v1/keys/:id/rotateRota una key sin downtime.
/v1/keys/:idRevoca una key de inmediato.
/v1/webhooksLista endpoints webhook.
/v1/webhooksRegistra un endpoint webhook firmado.
/v1/webhooks/:idDesactiva un endpoint webhook.
/v1/webhooks/:id/deliveriesInspecciona intentos recientes y fallos.
Dispara journeys de WhatsApp, revisa entregas y sincroniza eventos del negocio.
/v1/journeysLista journey templates disponibles en tu cuenta.
/v1/triggerEnrola un contacto en un journey o template workflow.
/v1/trigger/status/:idExplica el resultado actual de entrega de un trigger.
/v1/trigger/validateValida un payload antes de enviarlo.
/v1/trigger/batchDispara un lote de contactos con resultado por fila.
/v1/eventsEnvía un evento externo de negocio a InstantReply.
/v1/campaigns/:id/sendInicia el envío de una campaña aprobada.
Valida, envía y depura templates de WhatsApp sin adivinar política de Meta.
/v1/templatesLista templates y estado desde InstantReply y Meta.
/v1/templatesCrea un borrador de template.
/v1/templates/:id/validateRevisa categoria y recibe coaching para UTILITY.
/v1/templates/:id/submitEnvía el template a revisión de Meta.
/v1/developer/capabilitiesLee scopes, features habilitadas y limites.
/v1/developer/onboardingConsulta checklist de integración.
/v1/developer/limitsConsulta rate limits y cuotas.
/v1/developer/troubleshooting/errors/:codeBusca un error conocido del proveedor.
Registra POST /v1/webhooks una vez y InstantReply enviará eventos en tiempo real a tu servidor. La entrega es at-least-once, así que procesa X-InstantReply-Delivery de forma idempotente.
Cada webhook tiene un secreto whsec_. Verifica X-InstantReply-Signature con HMAC-SHA256 sobre timestamp.rawBody antes de confiar en el payload. Los intentos recientes están en GET /v1/webhooks/:id/deliveries.
app.post("/webhooks/instantreply", express.raw({ type: "application/json" }), (req, res) => {
const timestamp = req.header("X-InstantReply-Timestamp")
const signature = req.header("X-InstantReply-Signature")
const rawBody = req.body.toString("utf8")
verifyHmacSha256({
secret: process.env.IR_WEBHOOK_SECRET,
payload: timestamp + "." + rawBody,
signature,
})
res.sendStatus(204)
})| Evento | Cuando se dispara |
|---|---|
message.received | Un cliente envía un mensaje por WhatsApp, Instagram o Messenger. |
message.sent | Sale un mensaje desde IA, dashboard, API, automatización o journey. |
conversation.created | Se abre una conversacion nueva por inbound, coexistence o journey. |
conversation.closed | Una conversacion queda resuelta manualmente o por automatizacion. |
conversation.assigned | Cambia el owner por asignación manual o reglas de ruta. |
contact.updated | Lead extraction o CRM sync actualiza un contacto. |
template.status_update | Meta reporta revisión o cambio de calidad de un template. |
message.delivery_failed | El proveedor rechaza o falla una entrega después de reintentos. |
Los endpoints de templates ayudan a publicar templates de WhatsApp con compliance. Valida categoría, envía a Meta, inspecciona resultados del proveedor y explica errores conocidos.
Swagger/OpenAPI generado está disponible en ambientes no productivos para validación interna. Producción no expone /openapi.json de forma intencional. Usa esta referencia, el catálogo REST y la guía rápida como superficie pública.
Tu integración está lista cuando esto se cumple.