SMS API for Canada: bulk SMS to +1 numbers
Canada
Calling code +1
- Per SMS segment
- $0.00527
- Messages for $100
- 18,975
- Local language
- English and French
- Encoding
- GSM-7 or Unicode
What a bulk SMS send to Canada costs
| Messages | 1 segment | 2 segments |
|---|---|---|
| 1 | $0.00527 | $0.01054 |
| 1,000 | $5.27 | $10.54 |
| 10,000 | $52.70 | $105.40 |
| 100,000 | $527.00 | $1,054.00 |
Number format in Canada
Canada uses the North American Numbering Plan: +1, a three-digit area code and a seven-digit number, such as +1 506 234 5678. The API reads the area code (506 here) to price the number as Canada rather than the United States, so keep the full eleven digits in your list.
Alphabet and segments
Texts in English and French 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
Canada spans several time zones, from UTC-8 in Vancouver to UTC-3:30 in St Johns (January offsets). A send_at of 14:00 UTC lands at 09:00 in Toronto in January; for a nationwide reminder, split the list by region and give each batch its own send_at.
Send to Canada with one request
The answer comes back at once with the message id, the country the number was matched to (CA) 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": "+15062345678", "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: "+15062345678", text: "Your Northwind code is 482913. It expires in 10 minutes." }),
});
console.log(await res.json()); // price: "0.00527", country: "CA"import json, os, urllib.request
req = urllib.request.Request(
"https://bulksmsapi.cc/v1/messages",
data=json.dumps({"to": "+15062345678", "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.00527"What developers send to Canada
Ride updates
Passengers in Toronto receive SMS notifications about their ride status and driver details.
Healthcare reminders
Patients in Vancouver get texts reminding them of upcoming doctor appointments and lab tests.
Exam alerts
Students in Montreal are notified by SMS about exam dates and room assignments.
Flight notifications
Travelers in Calgary receive SMS updates about flight delays and gate changes.
More countries in North America
SMS to Canada: questions
More answers on accounts, payments and the API are in the FAQ.
How much does it cost to send bulk SMS to Canada?
How many SMS to Canada does a $100 top-up send?
How do I write Canada numbers for the API?
What language should SMS messages be in?
How do I reach visitors and expatriates?
Start sending to Canada
Create an account, top up from $40 and send to Canada at $0.00527 per segment, from the console or with one API call.