Skip to main content
The Allo API enables developers to integrate Allo’s communication capabilities directly into their applications. Build CRM integrations, automate post-call workflows, sync conversation data, and power AI agents with your team’s call and SMS history.

Base URL

Every endpoint lives under https://api.withallo.com. The version is part of the path, not a header. There is no POST /v2/api/sms. Sending an SMS is a v1 call. Full path and body: Send SMS.

Start here

Call GET /v2/api/me first. It returns your key’s scopes, the exact endpoints that key can reach, your team, and your rate limits, so you never have to guess what is available.
Any valid API key can call /v2/api/me. No specific scope is required. See Me.

Getting started

Before using the API, make sure you have:
  • An active Allo subscription
  • Admin or Manager permissions on your workspace
  • An API key generated from Settings > API

Authentication

API keys are generated through your workspace settings. Include the key in the Authorization header of every request:
The scheme is Api-Key, not Bearer. Store your API key securely. Do not expose it in client-side code or public repositories.

Guides

Authentication

API key setup, scopes, and the scope-to-endpoint mapping

Rate limits

Request limits and headers

Pagination

Page-based results with total counts

Error handling

Error format and recovery

Error codes

Every error code and what to do about it

Common use cases

Ready-made request patterns for the usual jobs

Resources

Rate limiting

Rate limits vary by request type and are applied per API key: Every response includes X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset headers so you can monitor your usage. See Rate limits for details.

Quick example

Get your recent conversations:

FAQ

The host is always https://api.withallo.com. The version is the first path segment. Almost everything is /v2/api/.... SMS sending is /v1/api/sms. There is no version header and no Accept header to set.
Send Authorization: Api-Key ak_live_your_key_here on every request. The scheme is Api-Key, not Bearer. Generate keys at Settings > API with Admin or Manager permissions. A key is scoped to a single team and is shown only once. See Authentication.
Call GET /v2/api/me. Its endpoints array lists every path your key can reach along with the scope each one needs. The full table is also in Authentication. A 403 with code API_KEY_INSUFFICIENT_SCOPE means the key is valid but missing a scope, so create a new key with that scope.
POST /v1/api/sms for a US Allo number, and POST /v1/api/sms with a French sender ID for France. The scope is SMS_SEND and phone numbers are E.164 (+14155551234). See Send SMS and Send SMS (France).
Use POST /v2/api/conversations/items/search with filters such as date, direction, type, and a search string that matches transcripts and message content. GET /v2/api/conversations groups activity by contact number instead. To fetch known IDs in bulk, use POST /v2/api/conversations/items/batch. See Conversations.
Paginated endpoints take page and size and return a pagination object with page, size, total_count, and has_more. Increment page until has_more is false. To count results without fetching them, request size=1 and read pagination.total_count. See Pagination.
Every error returns an error object with type, code, message, retryable, request_id, and often param, suggestion, and doc_url. Retry only when retryable is true. On 429, wait retry_after_seconds before retrying. See Error handling and Error codes.
20 GET requests per second and 5 write requests per second, per API key. Read X-RateLimit-Remaining and X-RateLimit-Reset on every response. See Rate limits.
E.164, with the leading + and country code, for example +14155551234. When a number goes in a query string, URL-encode the + as %2B.
Create a webhook with POST /v2/api/webhooks and subscribe to the events you need. Payloads are signed with HMAC and retried automatically. List the available events with GET /v2/api/webhooks/event_types. See Webhooks.
Yes, with the PARTNER scope. POST /v2/api/partner/accounts creates an account, provisions a number, and returns a scoped API key for it. The PARTNER scope is granted manually to approved resellers and cannot be self-issued. See Partner.
Yes. See Allo MCP to connect an AI agent to Allo without writing HTTP calls.

Next steps

Common use cases

Copy-ready requests for syncing, searching, and reporting

Authentication

Scopes and the scope-to-endpoint mapping

Webhooks

Stop polling and receive events instead

Allo MCP

Connect an AI agent to Allo without writing HTTP calls