SMS API for Peru: bulk SMS to +51 numbers
Peru
Calling code +51
- Per SMS segment
- $0.01927
- Messages for $100
- 5,189
- Local language
- Spanish
- Encoding
- GSM-7 or Unicode
What a bulk SMS send to Peru costs
| Messages | 1 segment | 2 segments |
|---|---|---|
| 1 | $0.01927 | $0.03854 |
| 1,000 | $19.27 | $38.54 |
| 10,000 | $192.70 | $385.40 |
| 100,000 | $1,927.00 | $3,854.00 |
Number format in Peru
Mobile numbers in Peru have 9 digits after +51 and no trunk prefix, so the local form 912 345 678 becomes +51 912 345 678 in the to field.
Alphabet and segments
Texts in Spanish fit 160 GSM-7 characters per segment until they use á, í, ó and ú: those letters are outside GSM-7 and turn the message into Unicode at 70 characters per segment (67 per part). For short alerts, write them without those letters to keep one segment; for longer texts, the console names each letter that changed the encoding.
Time zone and timing
Peru keeps UTC-5 all year with no clock change, so 09:00 in Lima is always 14:00 UTC. send_at takes UTC or any ISO 8601 offset, and the console scheduler converts from your own time zone.
Send to Peru with one request
The answer comes back at once with the message id, the country the number was matched to (PE) and the price. A delivered or failed event follows on your webhook, and a failed message is refunded.
For a list, send the same text to up to 10,000 numbers with POST /v1/batches, or a personal text per number in messages.
curl https://bulksmsapi.cc/v1/messages \
-H "Authorization: Bearer $BULKSMSAPI_KEY" \
-H "Content-Type: application/json" \
-d '{"to": "+51912345678", "text": "Your Northwind code is 482913. It expires in 10 minutes."}'const res = await fetch("https://bulksmsapi.cc/v1/messages", {
method: "POST",
headers: { Authorization: `Bearer ${process.env.BULKSMSAPI_KEY}`, "Content-Type": "application/json" },
body: JSON.stringify({ to: "+51912345678", text: "Your Northwind code is 482913. It expires in 10 minutes." }),
});
console.log(await res.json()); // price: "0.01927", country: "PE"import json, os, urllib.request
req = urllib.request.Request(
"https://bulksmsapi.cc/v1/messages",
data=json.dumps({"to": "+51912345678", "text": "Your Northwind code is 482913. It expires in 10 minutes."}).encode(),
headers={"Authorization": "Bearer " + os.environ["BULKSMSAPI_KEY"], "Content-Type": "application/json", "User-Agent": "northwind-app/1.0"},
method="POST",
)
with urllib.request.urlopen(req) as res:
print(json.load(res)["price"]) # "0.01927"What developers send to Peru
Payment confirmations
Lima-based banks send SMS confirmations for every payment, ensuring customers know their transactions are complete.
Flight updates
Airlines notify passengers in Arequipa about flight delays or gate changes via SMS for timely updates.
Tour reminders
Travel agencies in Cusco send SMS reminders to tourists about their Machu Picchu tour schedules and meeting points.
Order tracking
E-commerce platforms in Trujillo notify customers by SMS when their orders are shipped or delivered.
More countries in South America
SMS to Peru: questions
More answers on accounts, payments and the API are in the FAQ.
How much does it cost to send bulk SMS to Peru?
How many SMS to Peru does a $100 top-up send?
How do I write Peru numbers for the API?
What language should SMS messages be in for Peru?
Are there seasonal peaks in SMS traffic in Peru?
Start sending to Peru
Create an account, top up from $40 and send to Peru at $0.01927 per segment, from the console or with one API call.