Branchez Allo / sur tout.

Appels, contacts, SMS, webhooks. Une API REST propre qui vous donne les briques de base — pour que le système téléphonique s'adapte à votre stack, pas l'inverse.

REST & JSON Authentification par clé Webhooks inclus
~/allo — envoyer un SMS
# Un appel. Un SMS. Enregistré partout. $ 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 📦" }'
Réponse 200 OK
{ "from_number": "+13055550180", "to_number": "+13055550142", "type": "OUTBOUND" }
Pensé pour les équipes qui livrent
REST
JSON en entrée, JSON en sortie
5
Topics webhook temps réel
4
Permissions de clé API scopées
US · FR
Couverture SMS, prête à l'emploi
Ce que vous pouvez construire

Votre système téléphonique, à la demande.

Allo gère les appels, les SMS et les résumés IA. L'API vous donne les données brutes et les déclencheurs — pour que vous puissiez tout câbler dans ce que votre équipe utilise déjà.

Envoyez chaque appel dans votre CRM

Récupérez les appels avec enregistrements, transcriptions, résumés IA et tags. Envoyez-les là où vos commerciaux travaillent vraiment — Salesforce, HubSpot, ou l'outil interne que vous avez construit le trimestre dernier.

GET /v1/api/calls

Gardez vos contacts synchronisés, dans les deux sens

Créez, mettez à jour, recherchez et récupérez des contacts depuis n'importe où. Nouveau lead dans votre CRM ? Envoyez-le vers Allo. Contact modifié dans Allo ? Votre base de données est prévenue via webhook.

POST /v1/api/contacts

Envoyez des SMS directement depuis votre code

Rappels de rendez-vous, notifications d'expédition, OTP, confirmations de planning. Une requête POST et c'est parti — depuis votre numéro Allo, enregistré dans le même fil que le reste de la conversation.

POST /v1/api/sms

Réagissez à l'instant où ça se passe

Les webhooks se déclenchent quand un appel se termine, qu'un SMS arrive ou qu'un contact change. Pas de polling, pas de cron. Votre stack réagit en temps réel — exactement quand l'événement se produit.

POST /v1/api/webhooks
Endpoints

Les endpoints
qui comptent vraiment.

Une API petite et focalisée. Pas d'endpoints legacy tentaculaires, pas de dépréciations mystérieuses. Lisez la doc une fois, et c'est parti.

Appels
LECTURE

Cherchez dans votre historique d'appels. Chaque entrée inclut les transcriptions, résumés IA, URL d'enregistrement, sélections IVR et chaînes de transfert.

GET/v1/api/calls
Contacts
LECTURE & ÉCRITURE

CRUD complet sur votre base de contacts. Créez, récupérez par ID, mettez à jour et recherchez — avec les données d'engagement incluses dans chaque réponse.

GET/v1/api/contacts
POST/v1/api/contacts
PUT/v1/api/contacts/:id
SMS
ENVOI

Envoyez des SMS programmatiquement depuis n'importe lequel de vos numéros Allo. Endpoints dédiés pour les États-Unis et la France, tous deux au format E.164.

POST/v1/api/sms
POST/v1/api/sms/fr
Webhooks
TEMPS RÉEL

Abonnez une URL aux événements d'appel, SMS et contact. Payloads complets — pas besoin d'une seconde requête pour enrichir les données.

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

Récupérez tout le fil d'un contact — appels et SMS assemblés, dans l'ordre, avec pagination intégrée dès le premier jour.

GET/v1/api/conversations
Numéros de téléphone
LECTURE

Listez tous les numéros Allo de votre compte. Utilisez-le pour router, filtrer ou associer un numéro à un propriétaire sans hardcoder.

GET/v1/api/phone-numbers
Copier, coller, livrer

Faite pour marcher
du premier coup.

L'API est REST, l'authentification tient dans un seul en-tête, et les réponses sont du JSON prévisible. Rien d'astucieux. Rien à mémoriser.

  • Auth en un en-tête. Glissez votre clé API dans Authorization, et vous y êtes.
  • Permissions scopées. Quatre scopes clairs — lisez ce dont vous avez besoin, écrivez uniquement ce qu'il faut.
  • Pagination standard. size et page, jusqu'à 100 par requête. C'est tout.
  • Limites de débit honnêtes. Les 429 sont livrés avec un reset_in pour que votre logique de retry sache quoi faire.
Voir le guide d'authentification
# Envoyer un SMS depuis votre numéro 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" } }
# Récupérer les appels pour un de vos numéros 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": [ /* Généré par IA, taggé par locuteur */ ] } ], "metadata": { "total_pages": 5, "current_page": 0 } } }
# S'abonner aux événements d'appel et 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"] }' # Les payloads arrivent sur votre URL en temps réel : { "topic": "CALL_RECEIVED", "data": { "id": "call_abc123", "summary": "Order status inquiry", "length": "5m 30s", "type": "INBOUND" } }
# Envoyer un nouveau contact vers 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

Des événements,
à l'instant où ils se produisent.

Plus besoin de polling. Pointez Allo vers une URL, choisissez vos topics, et on livre un payload complet — résumé IA et transcription inclus — dès que l'appel se termine ou que le SMS arrive.

Petit avertissement Les payloads arrivent vite. Renvoyez un 200 en moins de 30 secondes, utilisez HTTPS et gardez votre handler léger — sinon on considère que votre endpoint est down.
CALL_RECEIVED
L'appel se termine → payload avec résumé et transcription
SMS_RECEIVED
Un SMS entrant arrive sur votre numéro Allo
SMS_SENT
Vous venez d'en envoyer un — loggez-le ailleurs
CONTACT_CREATED
Nouveau contact créé dans votre Allo
CONTACT_UPDATED
Nom, numéro ou entreprise modifié
REST
Construite sur HTTP. Renvoie du JSON. Parle avec tout.
Clés API
Permissions scopées. Rotation depuis les paramètres en quelques secondes.
E.164
Numéros toujours normalisés — pas de casse-tête au parsing.
Gratuit
Inclus dans chaque plan Allo. Payez seulement les SMS envoyés.

Les questions qui reviennent

Réponses courtes. Pour la version longue, la doc a tout ce qu'il faut.

L'accès à l'API est inclus dans chaque plan Allo — pas de tier développeur séparé, pas de frais par requête. Vous ne payez en plus que les SMS sortants envoyés via /v1/api/sms, facturés au segment comme le reste de votre usage SMS.
Oui. Verbes HTTP, corps JSON, codes de statut prévisibles. L'authentification tient dans un seul en-tête Authorization. Il vous faut un compte Allo et une clé API générée depuis vos paramètres pour accéder aux endpoints.
Oui — pour les numéros US via /v1/api/sms et pour les numéros français via /v1/api/sms/fr. Le destinataire doit être dans le même pays que le numéro Allo depuis lequel vous envoyez. Messages jusqu'à 1 000 caractères.
Via des clés API. Vous les générez dans vos paramètres Allo et les glissez dans l'en-tête Authorization de chaque requête. Chaque clé a un ou plusieurs scopes — CONVERSATIONS_READ, CONTACTS_READ, SMS_SEND, WEBHOOKS_READ_WRITE — pour donner exactement l'accès nécessaire, et rien de plus.
Cinq topics pour le moment : CALL_RECEIVED, SMS_RECEIVED, SMS_SENT, CONTACT_CREATED et CONTACT_UPDATED. Abonnez-vous à n'importe quelle combinaison. Votre endpoint doit être en HTTPS et répondre par un 200 en moins de 30 secondes, sinon la livraison est marquée comme échouée.
Oui, des limites quotidiennes par clé API. Quand vous en atteignez une, vous recevez un 429 avec un champ reset_in (en secondes) pour que votre backoff exponentiel sache exactement quand réessayer. Mettez en cache quand vous pouvez, abonnez-vous aux webhooks plutôt que de poller quand vous ne pouvez pas.
Chaque endpoint, chaque champ, chaque exemple est sur help.withallo.com/fr/api-reference. Copiez le cURL directement depuis la page — c'est interactif.

Prêt à construire ?

Obtenez une clé API, appelez votre premier endpoint en moins d'une minute, et intégrez Allo dans ce que vous livrez cette semaine.

# Deux lignes. C'est tout le setup. $ export ALLO_KEY="sk_live_…" $ curl -X POST api.withallo.com/v1/api/sms ...