Send SMS
Send a single SMS message with comprehensive delivery tracking, automatic number formatting, and real-time status updates.
International Format Support
Automatically converts local Ghanaian numbers (055xxxxxxx) to international format (23355xxxxxxx)
Smart Segmentation
Messages >160 characters are automatically split into multiple segments (max 1530 chars)
Sender ID Verification
Only pre-approved sender IDs can be used. Pending IDs will be automatically rejected.
Delivery Tracking
Real-time delivery status with provider-level feedback and error codes
Authentication Required
150ms
95th percentile
₵0.035
1 credit = 1 SMS
1530
characters (10 segments)
100/s
per API key
Request Body
{"to": "0555539152","from": "YourBrand","message": "Hello from Sendexa!"}
Response
{"success": true,"code": "SMS_SENT","message": "Message accepted for delivery.","requestId": "REQ-1781165210374","timestamp": "2026-06-11T08:06:50.374Z","data": {"messageId": "MSG-50f285a0-90ba-4871-8b17-d17be652671a","channel": "sms","business": {"id": "BU-VOIF86X7","name": "Letcol Technologies"},"message": {"from": {"id": "cmq804x70000avskxfqpc33yz","name": "Letcol"},"to": {"address": "233555539152","country": {"code": "GH","name": "Ghana"},"network": "MTN"},"content": "Hello from Sendexa!"},"delivery": {"status": "SENT","providerStatus": "ACCEPTED","provider": {"id": "PRO-00700","messageId": "94ed601d-e795-4106-87ae-2568a99b080f"},"route": {"type": "local","origin": "Ghana","destination": "Ghana"},"submittedAt": "2026-06-11T08:06:50.374Z"},"billing": {"units": 1,"pricing": {"unitCost": 0.055,"totalCost": 0.055,"currency": "USD"}}}}
Try It Yourself
https://api.sendexa.co/v1/sms/sendCode Examples
curl -X POST 'https://api.sendexa.co/v1/sms/send' \-H 'Content-Type: application/json' \-H 'Authorization: Basic YOUR_DASHBOARD_BASE64_TOKEN' \-d '{"to": "0555539152","from": "YourBrand","message": "Hello from Sendexa SMS API!"}'
Common Use Cases
Two-Factor Authentication
Send verification codes with 5-minute expiry
Promotional Messages
Schedule campaigns with personalized content
Order Confirmations
Real-time updates with delivery tracking
Rate Limits
HTTP Status Codes
| Code | Status | Description |
|---|---|---|
| 200 | OK | SMS sent successfully |
| 400 | Bad Request | Invalid phone number or missing parameters |
| 401 | Unauthorized | Invalid or missing API credentials |
| 403 | Forbidden | Sender ID not approved or insufficient credits |
| 429 | Too Many Requests | Rate limit exceeded (100 requests/second) |
Best Practices
- Always validate phone numbers client-side before sending
- Store messageId for future status checks and resends
- Implement exponential backoff for retries on 429 responses
- Use webhooks instead of polling for delivery status updates