Phone, SMS & voice
Send one-way international SMS from your brand name instead of a phone number, with a daily limit and per-country behaviour.
A sender ID lets your texts arrive from a name such as ACME instead of a number, the way banks and airlines send alerts. There is no number to buy, no monthly fee and no US registration. The trade-off: recipients cannot reply, and sender IDs do not work for the US, Canada or Puerto Rico.
#When to use one
| Use a sender ID for | Use a phone number for |
|---|---|
| One-way alerts, codes and notices abroad | Two-way conversations |
| Recipients outside North America | Recipients in the US, Canada or Puerto Rico |
| Text only | MMS |
#Create the name
POST /v1/sms/sender-ids with a senderId. It is usable at once.
curl -X POST https://api.pozy.ai/v1/sms/sender-ids \
-H "Authorization: Bearer $POZY_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "senderId": "ACME" }'const res = await fetch("https://api.pozy.ai/v1/sms/sender-ids", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.POZY_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({ senderId: "ACME" }),
});
const data = await res.json();
if (!res.ok) throw new Error(data.error);
console.log(data.id, data.isActive);import os, requests
resp = requests.post(
"https://api.pozy.ai/v1/sms/sender-ids",
headers={"Authorization": f"Bearer {os.environ['POZY_API_KEY']}"},
json={"senderId": "ACME"},
timeout=30,
)
print(resp.json())Rules for the name:
- 3 to 11 characters: letters, digits and spaces, with at least one letter.
- It must be your own brand. Names that imitate well-known brands or institutions (banks, payment providers, delivery companies, government bodies) are rejected with
422. - Names are not exclusive. Other workspaces can register the same name. Billing and delivery receipts always follow the workspace that sent the message.
DELETE /v1/sms/sender-ids/{id} deactivates a name. Creating the same name again brings it back.
#Send from it
Pass the name as from on the normal send endpoint:
curl -X POST https://api.pozy.ai/v1/sms/messages \
-H "Authorization: Bearer $POZY_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "from": "ACME", "to": "+34612345678", "text": "Your Acme verification code is 482913" }'Each segment bills at the destination's normal SMS rate. Delivery is reported with message.delivered and message.failed, like any SMS. See Send SMS.
#How countries display it
| Behaviour | Examples |
|---|---|
| Shows the name as sent | Most of Europe and many other markets |
| Replaces the name with a number to guarantee delivery | Some countries |
| Requires the name to be registered with local carriers first | India and the United Arab Emirates, among others. Contact support@pozy.ai for these. |
#Daily limit
Texts sent from sender IDs count against a daily limit that resets at midnight UTC. When it is reached, sends from a sender ID answer 429 until the reset. Texts from your phone numbers are not affected.
GET /v1/sms/sender-ids returns your names. Write to support@pozy.ai to raise your sender ID limit, with what the texts are for, who receives them and roughly how many you send a day. POST /v1/sms/sender-ids/limit-request is not available yet and answers 403 with code: "feature_not_available".
#Limits
| Limit | Value |
|---|---|
| Name length | 3 to 11 characters |
| Active names per workspace | 1,000 |
| Replies | Not possible |
| MMS | Not available |
| Destinations | Not the US, Canada or Puerto Rico |
#Errors
| Status | Code | Cause | Fix |
|---|---|---|---|
403 |
alpha_destination_not_supported |
to is in the US, Canada or Puerto Rico |
Send from a phone number |
403 |
mms_not_supported |
mediaUrls on a sender ID send |
Remove the media |
429 |
alpha_daily_limit_reached |
Today's sender ID limit is reached | Wait for midnight UTC, or write to support@pozy.ai to raise your sender ID limit |
403 |
sender_id_limit_reached |
The workspace has 1,000 active names | Contact support |
422 |
The name imitates another brand or institution | Use your own brand name | |
402 |
No payment method on file | Add a payment method |
#Endpoints
| Endpoint | What it does |
|---|---|
GET /v1/sms/sender-ids |
List alphanumeric sender IDs |
POST /v1/sms/sender-ids |
Create an alphanumeric sender ID |
DELETE /v1/sms/sender-ids/{id} |
Delete an alphanumeric sender ID |
POST /v1/sms/messages |
Send an SMS/MMS |