Calls, contacts, SMS, webhooks. A clean REST API that gives you the raw building blocks — so the phone system bends to your stack, not the other way around.
Allo does the calls, texts, and AI summaries. The API hands you the raw data and the triggers, so you can wire it into whatever your team is already using.
Pull calls with recordings, transcripts, AI summaries, and tags. Drop them wherever your reps actually live — Salesforce, HubSpot, or the internal tool you built last quarter.
GET /v1/api/callsCreate, update, search, and fetch contacts from anywhere. New lead in your CRM? Push it to Allo. Contact edited in Allo? Your database hears about it via webhook.
POST /v1/api/contactsAppointment reminders, shipping pings, OTPs, shift confirmations. One POST request and it's out the door — from your Allo number, logged in the same thread as the rest of the conversation.
POST /v1/api/smsWebhooks fire when a call ends, an SMS lands, or a contact changes. No polling, no cron jobs. Your stack reacts in real time — exactly when the event actually happens.
POST /v1/api/webhooksA small, focused API. No sprawling legacy endpoints, no mystery deprecations. Read the docs once and you're off.
Search your call history. Every record includes transcripts, AI summaries, recording URLs, IVR selections, and transfer chains.
Full CRUD on your contact database. Create, fetch by ID, update, and search — with engagement data baked into every response.
Send SMS programmatically from any of your Allo numbers. Dedicated endpoints for US and France, both in E.164 format.
Subscribe a URL to call, SMS, and contact events. Full envelope payloads — no secondary fetch to enrich the data.
Pull the whole thread for a contact — calls and SMS stitched together, in order, with pagination built in from day one.
List every Allo number on your account. Use it to route, filter, or match a number to an owner without hardcoding.
The API is REST, the auth is a single header, and the responses are predictable JSON. Nothing clever. Nothing to memorise.
Authorization and you're in.
size and page, up to 100 per request. That's it.
reset_in so your retry logic actually knows what to do.
Skip the polling. Point Allo at a URL, pick your topics, and we'll deliver a full payload — AI summary and transcript included — the second the call wraps or the text lands.
200 within 30 seconds, use HTTPS, and keep your handler lean — or we'll assume your endpoint is down.
Short answers. If you want the long version, the docs have you covered.
/v1/api/sms, billed per segment like the rest of your text usage.
Authorization header. You'll need an Allo account and an API key generated from your settings to hit the endpoints.
/v1/api/sms and French numbers via /v1/api/sms/fr. The recipient has to be in the same country as the Allo number you're sending from. Messages up to 1,000 characters.
Authorization header of every request. Each key has one or more scopes — CONVERSATIONS_READ, CONTACTS_READ, SMS_SEND, WEBHOOKS_READ_WRITE — so you grant exactly the access you need and nothing more.
CALL_RECEIVED, SMS_RECEIVED, SMS_SENT, CONTACT_CREATED, and CONTACT_UPDATED. Subscribe to any combination. Your endpoint needs to be HTTPS and return a 200 inside 30 seconds, or we'll flag the delivery as failed.
429 back with a reset_in field (in seconds) so your exponential backoff knows exactly when to try again. Cache when you can, subscribe to webhooks instead of polling when you can't.
Get an API key, hit your first endpoint in under a minute, and wire Allo into whatever you're shipping this week.