Developer Reference

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
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'}'"'"'
200 OK — Message queued successfully

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.

Built for Developers

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

Reference

API Endpoints

Base URL: https://api.bulksms.ca

POST/v2/send

Send SMS to single or multiple recipients

Auth: API Key
{ "to": "9198XXXXXXXX", "message": "Hello!", "sender": "BULKSMS" }
POST/v2/send-bulk

Send bulk SMS to up to 10,000 numbers

Auth: API Key
{ "to": ["9198XXXXXXXX", "9198XXXXXXXX"], "message": "Hello!", "sender": "BULKSMS" }
POST/v2/send-otp

Generate and send OTP via SMS

Auth: API Key
{ "to": "9198XXXXXXXX", "template_id": "TPL_123", "otp_length": 6 }
POST/v2/verify-otp

Verify a previously sent OTP

Auth: API Key
{ "to": "9198XXXXXXXX", "otp": "123456" }
POST/v2/whatsapp/send

Send WhatsApp template message

Auth: API Key
{ "to": "9198XXXXXXXX", "template": "hello_world", "language": "en" }
POST/v2/voice/send

Send voice call with TTS message

Auth: API Key
{ "to": "9198XXXXXXXX", "message": "Hello, this is a voice call.", "language": "en" }
GET/v2/balance

Check your account credit balance

Auth: API Key
GET/v2/status/{msg_id}

Get delivery status of a message

Auth: API Key
Libraries

SDKs & Code Examples

Official SDKs for popular programming languages.

PHP
$client = new BulkSMS\Client("YOUR_API_KEY"); $response = $client->send([ "to" => "9198XXXXXXXX", "message" => "Hello from PHP!", "sender" => "BULKSMS" ]);
Real-Time

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.

Message delivered
Message failed
Message queued
Template approved
Webhook Payload Example:
{
  "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.