Developer REST API Reference
Interactive code snippets in cURL, Python, JavaScript, PHP, Go, Java, and Ruby for transactional SMS, OTP dispatch & verification, and real-time status telemetry.
Authentication & Base URL
HTTPS Bearer token authorization
All REST API calls must be transmitted over encrypted HTTPS requests. Authenticate your API request by including your account API secret key in the HTTP Authorization header using the Bearer scheme.
/api/v1/send
Enqueues an outbound transactional SMS for immediate background transmission via your connected Android gateway smartphones.
{
"to": "+919876543210",
"message": "Your order #1042 has been dispatched!",
"type": "transactional",
"priority": 5,
"gateway_id": 2, // (Optional) Target specific paired device ID
"gateway_uuid": "GW-20260824-A1B2C3" // (Optional alternative to gateway_id)
}
Omit gateway_id to automatically load-balance across all your online paired smartphones.
{
"success": true,
"message_id": "MSG-20260823-A1B2C3D4",
"status": "queued",
"gateway_assigned": true
}
curl -X POST "https://sms.hostgeeks.in/api/v1/send" \
-H "Authorization: Bearer sk_live_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"to": "9876543210",
"message": "Your order #1042 has been dispatched!",
"type": "transactional",
"priority": 5
}'
/api/v1/bulk-send
Enqueues up to 1,000 personalized or broadcast SMS messages in a single atomic API request. The gateway automatically load-balances and processes the queue across your connected Android SIM devices.
{
"messages": [
{
"to": "+919876543210",
"message": "Hi Alice, order #1042 has been dispatched!"
},
{
"to": "+919876543211",
"message": "Hi Bob, order #1043 has been dispatched!"
}
],
"priority": 5,
"gateway_id": 2
}
Use when each recipient receives unique personalized message content.
{
"success": true,
"batch_id": "BATCH-20260825-9F3A1C",
"total_submitted": 2,
"queued_count": 2,
"failed_count": 0,
"gateway_id": 5,
"messages": [
{
"index": 0,
"message_id": "MSG-20260825-A1B2C3D4",
"recipient": "+919876543210",
"status": "queued"
},
{
"index": 1,
"message_id": "MSG-20260825-E5F6G7H8",
"recipient": "+919876543211",
"status": "queued"
}
]
}
curl -X POST "https://sms.hostgeeks.in/api/v1/bulk-send" \
-H "Authorization: Bearer sk_live_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"messages": [
{ "to": "+919876543210", "message": "Hi Alice, order #101 dispatched!" },
{ "to": "+919876543211", "message": "Hi Bob, order #102 dispatched!" }
],
"priority": 5
}'
/api/v1/otp/send
Generates a cryptographically secure numeric OTP code, hashes it in the database, and dispatches via high-priority queue. Plaintext OTP is never returned in API responses for security.
{
"to": "9876543210",
"digits": 6,
"ttl": 300
}
{
"success": true,
"request_id": "OTP-998877665544",
"status": "queued",
"expires_in": 300
}
curl -X POST "https://sms.hostgeeks.in/api/v1/otp/send" \
-H "Authorization: Bearer sk_live_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"to": "9876543210",
"digits": 6,
"ttl": 300
}'
/api/v1/otp/verify
Validates user-submitted numeric OTP code against the stored cryptographic hash.
{
"request_id": "OTP-998877665544",
"otp": "123456"
}
{
"success": true,
"request_id": "OTP-998877665544",
"verified": true,
"message": "OTP successfully verified."
}
curl -X POST "https://sms.hostgeeks.in/api/v1/otp/verify" \
-H "Authorization: Bearer sk_live_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"request_id": "OTP-998877665544",
"otp": "123456"
}'
/api/v1/status
Retrieves real-time dispatch and SIM network status telemetry for any queued or delivered SMS.
{
"success": true,
"message_id": "MSG-20260823-A1B2C3D4",
"status": "delivered",
"dispatched_at": "2026-08-24 16:42:01",
"sim_slot": "SIM 1 (Airtel 4G)"
}
curl -X GET "https://sms.hostgeeks.in/api/v1/status?message_id=MSG-20260823-A1B2C3D4" \ -H "Authorization: Bearer sk_live_YOUR_API_KEY"
Schedule Text Messages
Control when your SMS will reach your recipients, allowing you to perfectly time promotions, critical alerts, and appointment reminders by scheduling your messages in advance. Pass the scheduled_at parameter in ISO-8601 or standard YYYY-MM-DD HH:MM:SS format.
{
"success": true,
"message_id": "MSG-20260825-9A8B7C",
"status": "scheduled",
"scheduled_at": "2026-08-26 09:00:00",
"gateway_assigned": true
}
curl -X POST "https://sms.hostgeeks.in/api/v1/send" \
-H "Authorization: Bearer sk_live_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"to": "+919876543210",
"message": "Reminder: Your appointment is scheduled for tomorrow at 10:00 AM.",
"scheduled_at": "2026-08-26 09:00:00"
}'
End-to-End AES-256 Encryption 🔐
Take control of your privacy with our end-to-end encrypted SMS feature. Safeguard your messages from prying eyes, ensuring absolute confidentiality using the military grade AES-256-GCM authenticated encryption algorithm. When enabled, message bodies are encrypted at rest with distinct initialization vectors (IV) and authentication tags.
{
"success": true,
"message_id": "MSG-20260825-E4F5D6",
"status": "queued",
"encrypted": true,
"encryption_algo": "AES-256-GCM",
"gateway_assigned": true
}
curl -X POST "https://sms.hostgeeks.in/api/v1/send" \
-H "Authorization: Bearer sk_live_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"to": "+919876543210",
"message": "Confidential statement code: ACCT-9821-X9",
"encrypt": true
}'
Webhooks & Inbound SMS
If you want to build advanced integrations, we support callback URLs. The SMS Gateway platform can automatically forward SMS messages received on your Android phone to your server using a callback URL which you provide. Every webhook payload is signed with an HMAC-SHA256 signature in the X-SMS-Signature header.
{
"event": "sms_received",
"timestamp": "2026-08-25T12:45:00Z",
"data": {
"message_id": "IN-20260825-9A1B2C",
"sender": "+919876543210",
"recipient": "+919876543210",
"message": "Yes, please confirm my order!",
"sim_slot": 1,
"gateway_name": "Samsung Galaxy S22",
"received_at": "2026-08-25 12:45:00"
}
}
curl -X POST "https://your-server.com/webhook/sms" \
-H "Content-Type: application/json" \
-H "X-SMS-Event: sms_received" \
-H "X-SMS-Signature: 8f4a1c5d9e..." \
-d '{
"event": "sms_received",
"timestamp": "2026-08-25T12:45:00Z",
"data": {
"message_id": "IN-20260825-9A1B2C",
"sender": "+919876543210",
"recipient": "+919876543210",
"message": "Yes, please confirm my order!",
"received_at": "2026-08-25 12:45:00"
}
}'
No-Code & Zapier Integration
Connect your workflow with thousands of other apps with the power of Zapier, Make, or n8n. For example, you can set up an automation to send personalized SMS messages each time someone makes an order from your Shopify store or each time a new row is added to a Google spreadsheet.
Choose your trigger app in Zapier:
• Shopify: "New Paid Order"
• Google Sheets: "New Spreadsheet Row"
• WooCommerce: "Order Created"
Choose action "Custom Request" or "POST":
• URL: https://sms.hostgeeks.in/api/v1/send
• Header: Authorization: Bearer YOUR_API_KEY
• Payload: {"to":"+91{{phone}}","message":"Hi {{name}}"}
Control Sending & Carrier Pacing
Send SMS messages without going over your mobile carrier limitations. If you set a rate (e.g. 3 messages per minute), the gateway will automatically queue up your messages and send them at a spaced rate of 1 message per 20 seconds, completely avoiding telecom spam flags.
| Rate Setting | Interval Between SMS | Recommended Use Case |
|---|---|---|
| 🔒 3 SMS / min | 1 SMS every 20 seconds | Strict carrier limits, personal prepaid SIMs, ultra anti-spam safe. |
| 🛡️ 6 SMS / min | 1 SMS every 10 seconds | Standard business bulk notifications & OTP alerts. |
| ⚡ 12 SMS / min | 1 SMS every 5 seconds | High-volume transactional notifications on business SIM plans. |
| 🚀 30 SMS / min | 1 SMS every 2 seconds | High-speed delivery across multi-SIM phone clusters. |