The Mobile First Company SMS API
Send SMS messages to phone numbers using your Allo numbers.
Send SMS messages to phone numbers using your Allo numbers.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/the-mobile-first-company-sms-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
openapi: 3.2.0
info:
title: Allo Analytics SMS API
description: 'Allo API provides programmatic access to your Allo account, allowing you to manage webhooks, retrieve calls and contacts, and send SMS messages.
All requests to `/v1/api/**` endpoints automatically go through quota checking and scope validation.'
version: 1.0.0
contact:
name: Allo Support
servers:
- url: https://api.withallo.com
description: Production server
tags:
- name: SMS
description: Send SMS messages to phone numbers using your Allo numbers.
paths:
/v1/api/sms:
post:
summary: Send SMS (US)
description: Send an SMS message to a US phone number using one of your Allo phone numbers. The recipient must be in the same country as your Allo number.
operationId: sendSMS
tags:
- SMS
security:
- SmsAuth: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SendSMSRequest'
example:
from: '+1234567890'
to: +0987654321
message: Hello, this is a test message
responses:
'200':
description: SMS sent successfully
content:
application/json:
schema:
$ref: '#/components/schemas/SendSMSResponse'
example:
data:
from_number: '+1234567890'
sender_id: null
to_number: +0987654321
type: OUTBOUND
content: Hello, this is a test message
start_date: '2024-01-15T10:30:00'
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
fromNumberNotFound:
summary: From number not found
value:
code: FROM_NUMBER_NOT_FOUND
details: null
invalidToNumber:
summary: Invalid to number
value:
code: INVALID_TO_NUMBER
details: null
toNumberCountryMismatch:
summary: Country mismatch
value:
code: TO_NUMBER_COUNTRY_MISMATCH
details: null
invalidLength:
summary: Invalid message length
value:
code: INVALID_LENGTH
details: null
providerNotSupported:
summary: Provider not supported
value:
code: PROVIDER_NOT_SUPPORTED
details: null
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'429':
$ref: '#/components/responses/TooManyRequests'
/v1/api/sms#france:
post:
summary: Send SMS (France)
description: Send an SMS message to a French phone number using a verified Sender ID. The Sender ID must be verified by the Allo team before use. Contact support to register your Sender ID.
operationId: sendSMSFrance
tags:
- SMS
security:
- SmsAuth: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SendSMSFranceRequest'
example:
sender_id: MyCompany
to: '+33612345678'
message: Bonjour, ceci est un message de test
responses:
'200':
description: SMS sent successfully
content:
application/json:
schema:
$ref: '#/components/schemas/SendSMSResponse'
example:
data:
from_number: null
sender_id: MyCompany
to_number: '+33612345678'
type: OUTBOUND
content: Bonjour, ceci est un message de test
start_date: '2024-01-15T10:30:00'
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
invalidSenderId:
summary: Invalid Sender ID
value:
code: INVALID_SENDER_ID
details: null
senderIdNotActive:
summary: Sender ID not active
value:
code: SENDER_ID_NOT_ACTIVE
details: null
invalidToNumber:
summary: Invalid to number
value:
code: INVALID_TO_NUMBER
details: null
invalidLength:
summary: Invalid message length
value:
code: INVALID_LENGTH
details: null
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'429':
$ref: '#/components/responses/TooManyRequests'
components:
schemas:
SendSMSRequest:
type: object
description: Request body for sending an SMS message (US)
required:
- from
- to
- message
properties:
from:
type: string
description: Your Allo phone number (must be owned by your account)
example: '+1234567890'
to:
type: string
description: Recipient phone number (E.164 format, same country as 'from')
example: +0987654321
message:
type: string
description: Message content
minLength: 1
maxLength: 1000
example: Hello, this is a test message
SendSMSResponse:
type: object
description: Standard response wrapper for sent SMS
properties:
data:
$ref: '#/components/schemas/TextMessageApiResponse'
ErrorDetail:
type: object
properties:
message:
type: string
field:
type: string
SendSMSFranceRequest:
type: object
description: Request body for sending an SMS message in France using a verified Sender ID
required:
- sender_id
- to
- message
properties:
sender_id:
type: string
description: Your verified Sender ID (must be verified by the Allo team). This is an alphanumeric identifier that will appear as the sender of the SMS.
example: MyCompany
to:
type: string
description: Recipient phone number in France (E.164 format, must start with +33)
example: '+33612345678'
message:
type: string
description: Message content
minLength: 1
maxLength: 1000
example: Bonjour, ceci est un message de test
TextMessageApiResponse:
type: object
description: Sent SMS message details
properties:
from_number:
type:
- string
- 'null'
description: Phone number that sent the message. Null when sender_id is used instead.
example: '+1234567890'
sender_id:
type:
- string
- 'null'
description: Sender ID used for the message (alphanumeric identifier). Only populated when sending with a verified Sender ID (e.g., for France SMS). Null when from_number is used.
example: MyCompany
to_number:
type: string
description: Phone number that received the message
example: +0987654321
type:
type: string
enum:
- OUTBOUND
description: Direction of the message (always OUTBOUND for sent messages)
content:
type: string
description: Content of the SMS message
example: Hello, this is a test message
start_date:
type: string
format: date-time
description: When the message was sent
example: '2024-01-15T10:30:00'
ErrorResponse:
type: object
properties:
code:
type: string
description: Error code identifying the type of error
details:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/ErrorDetail'
description: Additional error details, or null if not applicable
responses:
Forbidden:
description: Forbidden - API key lacks required scope
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
code: API_KEY_INSUFFICIENT_SCOPE
details:
- message: required=CONTACTS_READ
field: scope
TooManyRequests:
description: Too Many Requests - Rate limit exceeded
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
code: API_KEY_QUOTA_EXCEEDED
details:
- message: limit=1000;type=DAILY;reset_in=3600
field: DAILY
Unauthorized:
description: Unauthorized - Invalid or missing API key
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
code: API_KEY_INVALID
details: null
securitySchemes:
CallsAuth:
type: apiKey
in: header
name: Authorization
description: 'Scope needed: `CONVERSATIONS_READ`'
ContactsAuth:
type: apiKey
in: header
name: Authorization
description: 'Scope needed: `CONTACTS_READ`'
ContactsWriteAuth:
type: apiKey
in: header
name: Authorization
description: 'Scope needed: `CONTACTS_READ_WRITE`'
SmsAuth:
type: apiKey
in: header
name: Authorization
description: 'Scope needed: `SMS_SEND`'
ApiKeyAuth:
type: apiKey
in: header
name: Authorization