Service 01 / SMS Marketing
SMS Marketing
with status on every message.
Upload a list of numbers, write a message with variables, then send it now or schedule it. Every message carries its own status, and every batch keeps a record.
Campaign flow
From a list of numbers to ready-to-send.
- 01
Import
Upload TXT, CSV, or XLSX, then map the number and name columns.
- 02
Compose
Write the message, add variables, check the estimated segment count.
- 03
Schedule
Send right away or pick your own start time.
- 04
Monitor
Track status per recipient, failed messages, and delivery results.
Checks before sending
Three things bulk senders often miss.
Segments, duplicates, and media. The composer estimates message length, the importer cleans up number formats, and media is checked before a batch reaches the queue.
- Segments
- SMS is billed per segment. GSM-7 fits 160 characters, Unicode 70. Long messages are split according to gateway rules.
- Duplicates
- When you create a batch through the API, numbers must be unique within a request. That prevents sending twice to the same number.
- Media
- RCS takes one optional file, MMS requires one. The URL must be HTTPS, and the file is downloaded before the batch is created.
Batch status
One status, one meaning.
Batch status follows the API contract. The dashboard and your integration read the same values, so what you see in the dashboard matches what the API returns.
- draft
- The batch exists but has not been queued yet.
- importing
- The recipient list is still being processed.
- pending
- The batch is waiting for its turn to send.
- running
- Messages are being sent or handled by the gateway.
- completed
- Every message has finished processing.
- failed
- The batch stopped because something needs your attention.
- cancelled
- The batch was stopped before it finished.
Send through the API
Every batch needs an Idempotency-Key.
Send a unique key with the request. If the connection drops, retry with the same key so the batch is not created twice. The initial response includes a batch_id you can use to track status.
curl -s -X POST "$NOTIF_API_URL/api/v1/sms" \ -H "Authorization: Bearer $NOTIF_TOKEN" \ -H "Content-Type: application/json" \ -H "Idempotency-Key: promo-november-001" \ -d '{ "name": "November Promo", "recipients": ["081234567890", "081234567891"], "type": "SMS", "message": "Special promo today. Use code NOTIF20." }'{ "data": { "batch_id": "01JBCDEFGHJKMNPQRSTVWXYZ", "name": "November Promo", "type": "SMS", "status": "pending", "recipient_count": 2 }}Usage limits
Limits you can check before sending.
Scroll the table sideways to see the other columns.
| Item | Value | Notes |
|---|---|---|
| Recipients per API batch | 1 to 1,000 | Numbers must be unique within a request. |
| Message length | 5,000 characters | Applies to SMS, RCS, and MMS. |
| RCS media | 1 file, 25 MB | Image, video, or document. HTTPS URL up to 2,048 characters. |
| MMS media | 1 file, 25 MB | Image, audio, or document. MMS requires media. |
| Rate limit | 120 / minute | Counted per token and per account. A 429 response includes Retry-After. |
| ID format | ULID | Used for the batch and every message. |
Questions
Before you hit send.
What does an SMS over 160 characters cost?
It is billed per segment. The composer shows the estimated GSM-7 or Unicode segment count before you send. The actual count and cost follow the gateway that processes the message.
Are duplicate numbers sent twice?
When you create a batch through the API, numbers must be unique within a request. That prevents double sends. When importing a file, review the recipient summary before the batch runs.
Can a campaign be scheduled?
Yes. In the composer, choose a start time instead of sending now. The batch waits for its schedule before processing.
Are RCS and MMS supported?
Yes. RCS takes one optional media file, MMS requires one. Media is downloaded and stored before the batch is created.
Can I track message status through the API?
Yes. Use GET /api/v1/sms to list batches and GET /api/v1/sms/batches/{id} for message details. Each message has a status and an attempt count.
Other services
Set up your first campaign.
Open the SMS workspace, upload your recipient list, check the segment estimate, then run the batch.