Integrate SMS, Voice Calls, and Voice Blast capabilities directly into your applications with our REST APIs.
Send SMS to India and 200+ countries via our high-performance Google Cloud Run infrastructure.
All SMS API requests require your API key. Include it in the request body as apiKey or in the Authorization header:
// Option 1: In request body { "apiKey": "YOUR_API_KEY" } // Option 2: In header Authorization: Bearer YOUR_API_KEY
Send a single SMS to an Indian phone number.
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | Your API key |
phone | string | Yes | 10-digit number (without country code) |
message | string | Yes | Message content (max 160 chars) |
senderId | string | No | Custom sender ID (max 11 chars) |
curl -X POST "https://bulkblaster-india-sms-lc-290441563653.asia-south1.run.app/send-sms" \ -H "Content-Type: application/json" \ -d '{ "apiKey": "YOUR_API_KEY", "phone": "9876543210", "message": "Hello from Bulk Blaster API!" }'
const res = await fetch("https://bulkblaster-india-sms-lc-290441563653.asia-south1.run.app/send-sms", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ apiKey: "YOUR_API_KEY", phone: "9876543210", message: "Hello from Bulk Blaster API!" }) }); const data = await res.json();
import requests url = "https://bulkblaster-india-sms-lc-290441563653.asia-south1.run.app/send-sms" payload = { "apiKey": "YOUR_API_KEY", "phone": "9876543210", "message": "Hello from Bulk Blaster API!" } response = requests.post(url, json=payload) print(response.json())
{ "success": true, "message": "SMS queued for delivery", "coins_used": 2, "coins_remaining": 98 }Send SMS to multiple Indian phone numbers in a single request.
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | Your API key |
recipients | array | Yes | Array of 10-digit phone numbers |
message | string | Yes | Message content (max 160 chars) |
senderId | string | No | Custom sender ID |
curl -X POST "https://bulkblaster-india-sms-lc-290441563653.asia-south1.run.app/send-bulk-sms" \ -H "Content-Type: application/json" \ -d '{ "apiKey": "YOUR_API_KEY", "recipients": ["9876543210", "9876543211", "9876543212"], "message": "Hello from Bulk Blaster!" }'
{ "success": true, "message": "Bulk SMS sent to 3 recipients", "coins_used": 6, "coins_remaining": 94 }Send SMS to international phone numbers. Supports Flash SMS mode.
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | Yes | Your API key |
phone | string | Yes | Full number with country code (e.g. +61488861655) |
message | string | Yes | Message content (max 160 chars) |
isFlash | boolean | No | Set true for flash SMS (default: false) |
curl -X POST "https://bulkblaster-india-sms-lc-290441563653.asia-south1.run.app/send-international-sms" \ -H "Content-Type: application/json" \ -d '{ "apiKey": "YOUR_API_KEY", "phone": "+61488861655", "message": "Hello from Bulk Blaster International!", "isFlash": false }'
{ "success": true, "message": "International SMS sent successfully", "coins_used": 16, "coins_remaining": 84 }Check your current account balance (remaining SMS/Voice coins).
curl -X GET "https://bulkblaster-india-sms-lc-290441563653.asia-south1.run.app/account-balance" \ -H "Authorization: Bearer YOUR_API_KEY"
{ "success": true, "balance": 100, "currency": "coins" }Make TTS calls, upload voice files, and blast voice messages to thousands.
Convert text to speech and make an automated voice call to any Indian number.
Content-Type: application/json x-api-key: YOUR_API_KEY
| Parameter | Type | Required | Description |
|---|---|---|---|
callee | string | Yes | 10-digit Indian phone number |
text | string | Yes | Message to speak (max 250 chars) |
language | string | No | EN, HI, TE, TA, KN, ML, BN, GU, MR, PA |
accent | string | No | 91 (Indian), 1 (US), 44 (UK), 61 (AU) |
ssmlGender | integer | No | 1 = Male, 2 = Female (default) |
speakingRate | float | No | 0.8 (slow), 1.0 (normal), 1.2 (fast) |
curl -X POST "https://bulkblaster-ttsvoicecall-290441563653.asia-south1.run.app/api/tts-call" \ -H "x-api-key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "callee": "9876543210", "text": "Hello, this is a test call from Bulk Blaster", "language": "EN", "accent": "91", "ssmlGender": 2, "speakingRate": 1.0 }'
{ "success": true, "message": "TTS call initiated successfully", "coins_used": 3, "coins_remaining": 97 }Upload a voice recording to be used for voice blast calls.
Content-Type: application/json x-api-key: YOUR_API_KEY
| Parameter | Type | Required | Description |
|---|---|---|---|
fileName | string | Yes | Name of voice file (e.g. "welcome.mp3") |
base64Data | string | Yes | Base64 encoded file data (max 5MB) |
curl -X POST "https://bulkblaster-nextgenvoice-290441563653.asia-south1.run.app/api/upload-voice" \ -H "x-api-key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "fileName": "welcome_message.mp3", "base64Data": "BASE64_ENCODED_FILE_DATA" }'
{ "success": true, "fileId": "FILE123456789", "message": "Voice file uploaded successfully" }Make a voice call using an uploaded voice file.
Content-Type: application/json x-api-key: YOUR_API_KEY
| Parameter | Type | Required | Description |
|---|---|---|---|
callee | string | Yes | Recipient number with country code (e.g. "919876543210") |
fileId | string | Yes | ID of the uploaded voice file |
curl -X POST "https://bulkblaster-nextgenvoice-290441563653.asia-south1.run.app/api/make-voice-call" \ -H "x-api-key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "callee": "919876543210", "fileId": "FILE123456789" }'
{ "success": true, "callId": "CALL123456789", "message": "Voice call initiated successfully", "coins_used": 2, "coins_remaining": 98 }Our APIs use standard HTTP status codes:
| Code | Description |
|---|---|
200 OK | Request was successful |
400 Bad Request | Missing or invalid parameters |
401 Unauthorized | Invalid or missing API key |
403 Forbidden | Insufficient balance or permission denied |
429 Too Many Requests | Rate limit exceeded |
500 Server Error | Internal server error |
To ensure fair usage and system stability:
| Plan | Limit |
|---|---|
| Starter | 10 requests/minute |
| Business | 60 requests/minute |
| Premium | 200 requests/minute |
429 Too Many Requests. Wait before retrying.Never expose API keys in client-side code or public repos
Use exponential backoff for failed requests
Validate phone numbers before sending
Cache balance to avoid unnecessary API calls