BulkSMS.ca API Documentation
Integrate SMS, WhatsApp, OTP, voice, and RCS messaging into your applications with our simple REST API. SDKs available for PHP, Python, Node.js, and Java.
curl -X POST https://api.bulksms.ca/v2/send \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{'"'"'to':'9198XXXXXXXX','message':'Hello!','sender':'BULKSMS'}'"'"'What is the BulkSMS.ca API?
The BulkSMS.ca API is a RESTful messaging API that allows developers to send SMS, WhatsApp messages, OTPs, voice calls, and RCS messages programmatically. It uses HTTP requests with JSON responses and API key authentication. The API supports bulk sending up to 10,000 recipients per request, real-time delivery tracking via webhooks, template management, scheduling, and credit balance queries. SDKs are available for PHP, Python, Node.js, and Java. All traffic is encrypted with TLS 1.3, and the API supports up to 1,000 requests per minute.
API Features
RESTful API
Simple HTTP-based API with JSON responses
API Key Auth
Secure authentication with API keys
Webhooks
Real-time delivery status notifications
Rate Limiting
Up to 1,000 requests per minute
Bulk Send
Send to 10,000 numbers in one request
SSL Encryption
All API traffic is TLS 1.3 encrypted
API Endpoints
Base URL: https://api.bulksms.ca
/v2/sendSend SMS to single or multiple recipients
Auth: API Key{ "to": "9198XXXXXXXX", "message": "Hello!", "sender": "BULKSMS" }/v2/send-bulkSend bulk SMS to up to 10,000 numbers
Auth: API Key{ "to": ["9198XXXXXXXX", "9198XXXXXXXX"], "message": "Hello!", "sender": "BULKSMS" }/v2/send-otpGenerate and send OTP via SMS
Auth: API Key{ "to": "9198XXXXXXXX", "template_id": "TPL_123", "otp_length": 6 }/v2/verify-otpVerify a previously sent OTP
Auth: API Key{ "to": "9198XXXXXXXX", "otp": "123456" }/v2/whatsapp/sendSend WhatsApp template message
Auth: API Key{ "to": "9198XXXXXXXX", "template": "hello_world", "language": "en" }/v2/voice/sendSend voice call with TTS message
Auth: API Key{ "to": "9198XXXXXXXX", "message": "Hello, this is a voice call.", "language": "en" }/v2/balanceCheck your account credit balance
Auth: API Key/v2/status/{msg_id}Get delivery status of a message
Auth: API KeySDKs & Code Examples
Official SDKs for popular programming languages.
$client = new BulkSMS\Client("YOUR_API_KEY");
$response = $client->send([
"to" => "9198XXXXXXXX",
"message" => "Hello from PHP!",
"sender" => "BULKSMS"
]);Webhook Delivery Reports
Get instant delivery status updates via webhooks. Configure your endpoint URL in the dashboard and receive real-time notifications for every message sent, delivered, or failed.
{
"event": "message.delivered",
"message_id": "msg_abc123",
"to": "9198XXXXXXXX",
"status": "delivered",
"timestamp": "2026-05-18T10:30:00Z"
}Ready to Integrate?
Start sending messages in minutes with our developer-friendly API.