Push every call into your CRM
Pull calls with their recordings, transcripts, AI summaries and tags, then drop them wherever your reps actually work, from Salesforce to the internal tool you built last quarter.
Calls, texts, CRM records, analytics, even the AI receptionist. One REST API hands you the raw building blocks, so the phone system bends to your stack instead of the other way around.
# Every key answers this. Start here. curl -X GET "https://api.withallo.com/v2/api/me" \ -H "Authorization: Api-Key YOUR-API-KEY" # 200 · your scopes, your endpoints, your rate limits { "scopes": ["CONVERSATIONS_READ", "SMS_SEND", "CRM_WRITE"], "rate_limits": { "read_per_second": 20, "write_per_second": 5 } }
# Every call and text that mentioned a refund curl -X POST "https://api.withallo.com/v2/api/conversations/items/search" \ -H "Authorization: Api-Key YOUR-API-KEY" \ -H "Content-Type: application/json" \ -d '{ "search": "refund", "type": "ALL", "sort": "RELEVANCE", "size": 25 }' # Transcripts, AI summaries and SMS bodies, searched at once
# Send a text from one of your Allo numbers curl -X POST "https://api.withallo.com/v1/api/sms" \ -H "Authorization: Api-Key YOUR-API-KEY" \ -H "Content-Type: application/json" \ -d '{ "from": "+13055550180", "to": "+13055550142", "message": "Your order just shipped" }' # It lands in the same thread as every call with that contact
# Tell us where to send events as they happen curl -X POST "https://api.withallo.com/v2/api/webhooks" \ -H "Authorization: Api-Key YOUR-API-KEY" \ -H "Content-Type: application/json" \ -d '{ "url": "https://your-app.com/allo/events", "topics": ["call.completed", "sms.received", "contact.created"] }' # Signed, retried, and delivered the second it happens
The API is REST, the auth is one header, and the responses are predictable JSON. Nothing clever, nothing to memorise.
One header, one keyGenerate a key in your workspace settings and send it as Authorization: Api-Key. That is the whole handshake.
Scoped permissionsA key carries only the scopes you grant it, and GET /v2/api/me answers with the scopes and the endpoints it can actually reach.
Pagination that says when to stoppage and size, up to 100 per request, with total_count and has_more in every paginated response.
Rate limits you can plan around20 reads and 5 writes per second per key, with X-RateLimit-Remaining and X-RateLimit-Reset on the way back.

# Two lines. That is the whole setup. export ALLO_KEY="YOUR-API-KEY" curl -s \ "https://api.withallo.com/v2/api/numbers" \ -H "Authorization: Api-Key $ALLO_KEY" # 200 · every Allo number on the account
Fourteen resources on one base URL. A small, focused API with no sprawling legacy endpoints and no mystery deprecations.
The unified call and SMS timeline, with keyword search across transcripts and message content.
Send SMS and MMS from your Allo numbers or from a registered sender ID.
Create, read, update and search people, companies and deals.
Internal team notes on a conversation or a person profile, with @mentions.
Team discussion threads hanging off a call, an SMS or a conversation note.
Event notifications with HMAC signatures and automatic retries.
Your Allo numbers with their capabilities and member access, plus the inbound call flow.
The team roster with roles and assigned numbers, and what your API key can do.
Create and list call tags, then add and remove them on calls and texts.
The templates that shape how the AI structures a call summary.
Team KPIs with period-over-period comparison and a per-user breakdown.
Read and fill the Power Dialer queue.
Configure the receptionist: its prompt, its voice, its knowledge and whether it is on.
Provision and manage Allo accounts as a white-label reseller.
Every endpoint, field by field, in the full API reference
Allo runs the calls, the texts and the AI summaries. The API hands you the data and the triggers, so you can wire them into whatever your team already uses.
Pull calls with their recordings, transcripts, AI summaries and tags, then drop them wherever your reps actually work, from Salesforce to the internal tool you built last quarter.
Read and write the CRM from both sides. A new lead in your tool lands in Allo, and an edit made in Allo comes back to your database through a webhook.
Appointment reminders, delivery pings, shift confirmations. One POST and it goes out from your Allo number, logged in the same thread as the rest of the conversation.
Webhooks fire when a call completes, a text lands or a contact changes. No polling, no cron job, and the payload already carries the summary and the transcript.
Team KPIs, the outbound funnel and a per-user breakdown come back as JSON, so your own dashboard can show the numbers your reps already see in Allo.
Read and update the receptionist's prompt, voice, business hours and knowledge, and switch it on for a number, without anyone opening the Allo app.
Skip the polling. Point Allo at a URL, pick your topics, and the payload arrives with the AI summary and the transcript already in it, the second the call wraps or the text lands.
Eleven topicsCalls, texts, tags, contacts and summaries, subscribed in any combination you like.
Signed deliveriesEvery payload carries an HMAC signature, so your handler can prove it came from Allo before it acts on it.
Retried automaticallyA delivery that fails is retried, so a deploy window costs you a few seconds instead of a day of events.
API access is included in every Allo plan. There is no developer tier and no per-request fee. The only thing billed on top is the outbound SMS you send through the API, charged per segment like the rest of your text usage.
Yes. HTTP verbs, JSON bodies, predictable status codes, and one base URL at api.withallo.com. Most of the surface lives under /v2/api; sending a text is still POST /v1/api/sms.
API keys. You generate one in your workspace settings and send it in the Authorization header as Api-Key, not Bearer. Each key carries the scopes you grant it, so a 403 with APIKEYINSUFFICIENT_SCOPE means the key is valid but not allowed to do that. Call GET /v2/api/me to see exactly what yours can reach.
Yes, through POST /v1/api/sms, from any of your Allo numbers or from a registered sender ID. The message lands in the same conversation thread as the calls and texts that came before it.
Eleven topics today: call.received, call.triggered, call.answered, call.completed, sms.received, sms.sent, summary.updated, tag.added, tag.removed, contact.created and contact.updated. Subscribe to any combination. Your endpoint has to be HTTPS, and every delivery is signed and retried.
Yes, per API key: 20 read requests per second and 5 write requests per second. Every response carries X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset, so your backoff knows exactly when to try again. Subscribe to webhooks instead of polling wherever you can.
Yes. GET and PATCH /v2/api/numbers/{number}/agent read and update the whole configuration, from the voice to the business hours to the transfer rules, PUT on its /prompt replaces what it answers with, and the knowledge endpoints add or retire the websites it has read.
Every endpoint, every field and every example lives at help.withallo.com/en/v2/api-reference. You can copy the cURL straight off the page.