SMS API
One HTTP endpoint, your client ID and secret, and five parameters. Delivery reports are pushed to your own URL, and repeating a call is safe.
- 1Endpoint to call
- 1,000Recipients per request
- 5Operators covered
- 37.4%Delivered successfully
Everything you need to know about SMS API
Why Choose Our SMS API?
- One endpoint - GET or POST, plain query parameters
- No SDK to install and no library to keep up to date
- Credentials you generate yourself, and can rotate any time
- Delivery reports pushed to your own callback URL
- An idempotency key, so a retried call is never billed twice
- Up to 1,000 recipients in a single request
- The exact rate your account is billed, shown before you call
What You Can Do
- Send one message or a comma-separated list of numbers
- Queue a large batch and let it send in the background
- Check your balance before a campaign
- Send Bangla (Unicode) - counted and billed correctly
- Trigger messages from your own CRM, ERP or web app
- Read every send back in the reports screen
- Use any approved sender ID on your account
Endpoints
- POST or GET /send-message - clientId, clientSecret, senderId, numbers, contents
- GET /check-balance - clientId, clientSecret
- Optional async=1 to queue a batch and get a reference back
- Optional idempotency key to make a retry safe
- JSON response with a status and a message
- DLR pushed to the URL you configure in your panel
- Rate limited at 60 requests per minute
Use Cases
- OTP and two-factor codes
- Order and delivery updates
- Booking and appointment confirmations
- Payment and due reminders
- Internal alerts from your own systems
- Scheduled campaigns fired from your app
- Event and class notifications
Get started in 4 simple steps
Create Account
Register and buy a package. An account starts with a balance of zero.
Generate a secret
Your client ID and secret are on the API page in your panel. Rotate the secret any time.
Get Sender ID
Nothing can be sent until a sender ID is approved for your account.
Make one call
Five query parameters to one endpoint. Delivery reports arrive at your own callback URL.
One endpoint, five parameters
Your client ID and secret are on the API page inside your panel.
curl "https://w3sms.com/send-message?clientId=YOUR_CLIENT_ID&clientSecret=YOUR_CLIENT_SECRET&senderId=YOUR_SENDER_ID&numbers=8801XXXXXXXXX&contents=Hello+from+W3+SMS"
# Check your balance
curl "https://w3sms.com/check-balance?clientId=...&clientSecret=..."
{
"status": 200,
"message": "Message submitted successfully. Delivery status will update via DLR."
}
{
"status": 202,
"reference": "batch_20260912_a1B2c3",
"accepted": 250,
"charged": 142.5,
"message": "Batch accepted. Delivery status will update via DLR."
}
Parameters
clientIdstring- Your username, shown on the API page in your panel. The older six-digit client ID still works.
clientSecretstring- The secret you generate there. Rotating it invalidates the old one immediately.
senderIdstring- An approved sender ID on your account. It must match your package channel.
numbersstring- One number, or several separated by commas. 8801XXXXXXXXX or 01XXXXXXXXX both work.
contentsstring- The message body. Unicode is detected, counted and billed as Unicode.
Optional
asyncbool- Queue a large batch instead of waiting for it. Answers 202 with a reference.
scheduledatetime- Send later instead of now.
Idempotency-Keyheader- Repeat a call safely. The same key returns the first answer rather than sending again.
When it does not go through
- 404 Client ID and secret do not match an account, or the sender ID is not on it.
- 406 Not enough balance, the sender ID does not match your package channel, or no rate is set.
- 409 An identical Idempotency-Key is still being processed. Wait, do not retry immediately.
- 422 A parameter is missing, or the request carried more than 1,000 recipients.
- 429 More than 60 requests in a minute from this account.
- 503 No gateway is available. Nothing was charged; retry shortly.
The API costs nothing extra
Every package includes API access, and a message sent through it is billed at that package rate.
Required Documents
- NID Copy
- Trade License Copy
- For institutes: Authorization letter signed & sealed
- Application form on official pad with seal & signature
Important Notice
Only authorized and approved messages are allowed. Misuse may lead to account suspension or penalties.
All prices are exclusive of VAT. Keep your content clear, professional and compliant to maintain high delivery rates.
Use verified sender IDs to ensure proper brand recognition and customer trust.