Conecta Allo / con lo que sea.

Llamadas, contactos, SMS, webhooks. Una API REST limpia que te da los bloques de construcción — para que el sistema de teléfono se adapte a tu stack, no al revés.

REST y JSON Auth con API key Webhooks incluidos
~/allo — enviar un SMS
# Una llamada. Un SMS. Registrado en todas partes. $ curl -X POST "https://api.withallo.com/v1/api/sms" \ -H "Authorization: $ALLO_KEY" \ -H "Content-Type: application/json" \ -d '{ "from": "+13055550180", "to": "+13055550142", "message": "Your order just shipped 📦" }'
Respuesta 200 OK
{ "from_number": "+13055550180", "to_number": "+13055550142", "type": "OUTBOUND" }
Hecho para equipos que envían código
REST
JSON de entrada, JSON de salida
5
Topics de webhook en tiempo real
4
Permisos de API key por alcance
US · FR
Cobertura SMS, lista para usar
Lo que puedes construir

Tu sistema de teléfono, a pedido.

Allo se encarga de las llamadas, los SMS y los resúmenes con IA. La API te da los datos crudos y los disparadores — para que puedas conectarla con lo que tu equipo ya está usando.

Envía cada llamada a tu CRM

Trae llamadas con grabaciones, transcripciones, resúmenes con IA y etiquetas. Déjalas donde tus reps realmente trabajan — Salesforce, HubSpot o la herramienta interna que construiste el trimestre pasado.

GET /v1/api/calls

Mantén los contactos sincronizados, en ambos sentidos

¿Crear, actualizar, buscar y traer contactos desde donde sea? Listo. ¿Nuevo lead en tu CRM? Envíalo a Allo. ¿Contacto editado en Allo? Tu base de datos se entera por webhook.

POST /v1/api/contacts

Envía SMS directamente desde tu código

Recordatorios de citas, avisos de envío, OTPs, confirmaciones de turnos. Una petición POST y ya está fuera — desde tu número Allo, registrado en el mismo hilo que el resto de la conversación.

POST /v1/api/sms

Reacciona en el momento exacto

Los webhooks se disparan cuando termina una llamada, llega un SMS o cambia un contacto. Sin polling, sin cron jobs. Tu stack reacciona en tiempo real — exactamente cuando ocurre el evento.

POST /v1/api/webhooks
Endpoints

Los endpoints
que de verdad importan.

Una API pequeña y enfocada. Sin endpoints legacy dispersos, sin depreciaciones misteriosas. Lee la doc una vez y listo.

Llamadas
LECTURA

Busca en tu historial de llamadas. Cada registro incluye transcripciones, resúmenes con IA, URLs de grabación, selecciones IVR y cadenas de transferencia.

GET/v1/api/calls
Contacts
LECTURA Y ESCRITURA

CRUD completo sobre tu base de contactos. Crea, trae por ID, actualiza y busca — con datos de engagement incluidos en cada respuesta.

GET/v1/api/contacts
POST/v1/api/contacts
PUT/v1/api/contacts/:id
SMS
ENVÍO

Envía SMS programáticamente desde cualquiera de tus números Allo. Endpoints dedicados para EE. UU. y Francia, ambos en formato E.164.

POST/v1/api/sms
POST/v1/api/sms/fr
Webhooks
TIEMPO REAL

Suscribe una URL a eventos de llamada, SMS y contacto. Payloads completos — sin segundo fetch para enriquecer los datos.

GET/v1/api/webhooks
POST/v1/api/webhooks
DEL/v1/api/webhooks/:id
Conversations
LECTURA

Trae el hilo completo de un contacto — llamadas y SMS entrelazados, en orden, con paginación incluida desde el día uno.

GET/v1/api/conversations
Números
LECTURA

Lista todos los números Allo de tu cuenta. Úsalo para enrutar, filtrar o emparejar un número con un dueño sin hardcodear.

GET/v1/api/phone-numbers
Copia, pega, envía

Pensada para que tu
primera petición funcione.

La API es REST, la auth es un solo header y las respuestas son JSON predecible. Nada complicado. Nada que memorizar.

  • Auth en un header. Mete tu API key en Authorization y ya estás dentro.
  • Permisos por alcance. Cuatro scopes claros — lee lo que necesites, escribe solo lo que debas.
  • Paginación estándar. size y page, hasta 100 por petición. Eso es todo.
  • Rate limits honestos. Los 429 vienen con un reset_in para que tu lógica de retry realmente sepa qué hacer.
Ver la guía de auth
# Enviar un SMS desde tu número Allo $ curl -X POST "https://api.withallo.com/v1/api/sms" \ -H "Authorization: $ALLO_KEY" \ -H "Content-Type: application/json" \ -d '{ "from": "+13055550180", "to": "+13055550142", "message": "Your order just shipped 📦" }' # → 200 OK { "data": { "from_number": "+13055550180", "to_number": "+13055550142", "type": "OUTBOUND", "content": "Your order just shipped 📦", "start_date": "2026-04-21T10:30:00" } }
# Traer llamadas de uno de tus números Allo $ curl -X GET "https://api.withallo.com/v1/api/calls?allo_number=+13055550180&size=25" \ -H "Authorization: $ALLO_KEY" # → 200 OK { "data": { "results": [ { "id": "call_abc123", "from_number": "+13055550142", "length_in_minutes": 5.5, "type": "INBOUND", "summary": "Customer called about order status.", "tag": "support", "recording_url": "https://storage.withallo.com/...", "transcript": [ /* Generado por IA, con etiquetas de hablante */ ] } ], "metadata": { "total_pages": 5, "current_page": 0 } } }
# Suscribirse a eventos de llamadas y SMS $ curl -X POST "https://api.withallo.com/v1/api/webhooks" \ -H "Authorization: $ALLO_KEY" \ -H "Content-Type: application/json" \ -d '{ "allo_number": "+13055550180", "enabled": true, "url": "https://your-app.com/allo/events", "topics": ["CALL_RECEIVED", "SMS_RECEIVED", "CONTACT_CREATED"] }' # Los payloads llegan a tu URL en tiempo real: { "topic": "CALL_RECEIVED", "data": { "id": "call_abc123", "summary": "Order status inquiry", "length": "5m 30s", "type": "INBOUND" } }
# Enviar un nuevo contacto a Allo $ curl -X POST "https://api.withallo.com/v1/api/contacts" \ -H "Authorization: $ALLO_KEY" \ -H "Content-Type: application/json" \ -d '{ "name": "Jordan", "last_name": "Rivera", "company": "Acme Inc", "emails": ["jordan@acme.com"], "numbers": ["+13055550142"] }' # → 200 OK { "data": { "id": "cnt_abc123", "name": "Jordan", "last_name": "Rivera", "company": "Acme Inc", "numbers": ["+13055550142"] } }
Webhooks

Eventos,
en el momento en que ocurren.

Olvídate del polling. Apunta Allo a una URL, elige tus topics, y te entregamos un payload completo — con resumen IA y transcripción — en el segundo en que la llamada termina o llega el SMS.

Aviso Los payloads llegan rápido. Devuelve un 200 en menos de 30 segundos, usa HTTPS y mantén tu handler ligero — o daremos por hecho que tu endpoint está caído.
CALL_RECEIVED
Termina la llamada → payload con resumen y transcripción
SMS_RECEIVED
Llega un SMS entrante a tu número Allo
SMS_SENT
Acabas de enviar uno — lógalo en todos lados
CONTACT_CREATED
Nuevo contacto creado en tu Allo
CONTACT_UPDATED
Cambió el nombre, número o empresa
REST
Construida sobre HTTP. Devuelve JSON. Habla con lo que sea.
API Keys
Permisos por alcance. Rotación desde ajustes en segundos.
E.164
Los números vienen siempre normalizados — sin dolores al parsear.
Gratis
Incluida en cada plan de Allo. Solo pagas por los SMS enviados.

Las preguntas que siempre recibimos

Respuestas cortas. Si quieres la versión larga, la doc tiene todo lo que necesitas.

El acceso a la API está incluido en cada plan de Allo — sin tier de desarrollador separado, sin costo por petición. Lo único extra que pagas son los SMS salientes enviados vía /v1/api/sms, facturados por segmento como el resto de tu uso de mensajería.
Sí. Verbos HTTP, cuerpos JSON, códigos de estado predecibles. La autenticación es un solo header Authorization. Necesitarás una cuenta de Allo y una API key generada desde tus ajustes para llegar a los endpoints.
Sí — para números de EE. UU. vía /v1/api/sms y para números franceses vía /v1/api/sms/fr. El destinatario tiene que estar en el mismo país que el número Allo desde el que envías. Mensajes de hasta 1.000 caracteres.
Con API keys. Las generas en los ajustes de Allo y las metes en el header Authorization de cada petición. Cada key tiene uno o más scopes — CONVERSATIONS_READ, CONTACTS_READ, SMS_SEND, WEBHOOKS_READ_WRITE — para dar exactamente el acceso que necesitas, y nada más.
Cinco topics hoy: CALL_RECEIVED, SMS_RECEIVED, SMS_SENT, CONTACT_CREATED y CONTACT_UPDATED. Suscríbete a cualquier combinación. Tu endpoint tiene que ser HTTPS y devolver un 200 en menos de 30 segundos, o marcaremos la entrega como fallida.
Sí, límites diarios por API key. Cuando llegas a uno, recibes un 429 con un campo reset_in (en segundos) para que tu backoff exponencial sepa exactamente cuándo reintentar. Cachea cuando puedas, suscríbete a webhooks en lugar de hacer polling cuando no puedas.
Cada endpoint, cada campo, cada ejemplo está en help.withallo.com/en/api-reference. Copia el cURL directamente de la página — es interactivo.

¿Listo para construir?

Obtén una API key, llama a tu primer endpoint en menos de un minuto, y conecta Allo con lo que sea que estés enviando esta semana.

# Dos líneas. Ese es todo el setup. $ export ALLO_KEY="sk_live_…" $ curl -X POST api.withallo.com/v1/api/sms ...