SMS Gateway
An SMS gateway connects your application to mobile networks, enabling you to send and receive text messages programmatically. Learn how it works, compare API vs SMPP, and follow our integration guide.
What Is an SMS Gateway?
An SMS gateway acts as a bridge between your software and mobile carrier networks. Instead of negotiating individual agreements with every carrier in every country, you connect to one gateway and reach any mobile phone worldwide.
The gateway handles:
- • Protocol translation — converts your API/SMPP requests into carrier-specific formats
- • Intelligent routing — selects the optimal carrier path based on destination, cost, and quality
- • Encoding — manages GSM 03.38, UCS-2, and message segmentation automatically
- • Delivery tracking — collects and forwards delivery receipts from carriers
- • Failover — automatically re-routes messages if a carrier path fails
- • Compliance — enforces opt-out rules, sender ID regulations, and content policies
How an SMS Gateway Works
Your application sends a request
Via REST API (HTTP POST) or SMPP (submit_sm PDU) with the recipient number and message body.
Gateway validates and queues
We validate the number format, check your balance, apply sender ID rules, and queue the message.
Intelligent routing
Our routing engine selects the optimal carrier path based on destination network, cost, and quality metrics.
Carrier delivers to handset
The selected carrier delivers the message to the recipient's mobile phone.
Delivery confirmation
The carrier returns a delivery receipt, which we forward to your webhook or SMPP bind.
API vs SMPP — Which Should You Use?
| Feature | REST API | SMPP |
|---|---|---|
| Protocol | HTTP/HTTPS | TCP (persistent) |
| Connection | Stateless (per request) | Persistent (always-on) |
| Setup complexity | Minutes (HTTP request) | Hours (SMPP client library) |
| Max throughput | 100 req/s (10K/batch) | 10,000 msg/s |
| Latency | ~50ms | ~5ms |
| DLR delivery | Webhook (HTTP POST) | Native (deliver_sm PDU) |
| Language support | Any (HTTP) | Java, C, Python, Node |
| Best for | Web apps, low-medium volume | High volume, telecom integration |
| Authentication | Bearer token | System ID + password + IP whitelist |
| Encryption | HTTPS (always) | TLS 1.2+ (optional) |
Our recommendation: Start with the REST API. It's simpler, faster to integrate, and handles up to 10,000 messages per batch request. Move to SMPP when you need sub-10ms latency or sustained throughput above 100 msg/s.
Integration Guide
Step 1: Create an account
Sign up at app.bulksmsrates.com and add credit to your balance. You'll receive test credits to start.
Step 2: Get your API key
Navigate to Settings → API Keys in the dashboard. Create a new key and store it securely. Use the test key (bsr_test_) for development.
Step 3: Send your first message
curl -X POST https://api.bulksmsrates.com/v1/messages \
-H "Authorization: Bearer bsr_test_your_key" \
-H "Content-Type: application/json" \
-d '{"to": "+447700900000", "body": "Hello from my app!", "from": "MyApp"}'Step 4: Set up delivery webhooks
Configure a publicly-accessible URL to receive delivery status updates. We'll POST a JSON payload with the message status as it changes.
Step 5: Go live
Switch to your live API key (bsr_live_), top up your balance, and start sending to real numbers. Monitor delivery rates in the dashboard.