Recurring SMS
Set sending_type: "recurring" and pass a recurring_schedule object.
The gateway expands the schedule on submit and bills the projected
total against your balance.
Weekly recurrence
Section titled “Weekly recurrence”A pair of weekly reminders, every Monday and Thursday at 09:00, for six months:
curl $BASE_URL/api/v1/lisoloo/sms-api/send \ -X POST \ -H "app-key: $LISOLOO_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "to": ["+243998857000"], "message": "Reminder: your weekly check-in.", "sender_id": "WELLNESS", "sending_type": "recurring", "recurring_schedule": { "start_date": "2026-06-01", "end_date": "2026-12-31", "frequency": "weekly", "interval": 1, "times": ["09:00"] } }'requests.post(SEND_URL, headers=HEADERS, json={ "to": ["+243998857000"], "message": "Reminder: your weekly check-in.", "sender_id": "WELLNESS", "sending_type":"recurring", "recurring_schedule": { "start_date": "2026-06-01", "end_date": "2026-12-31", "frequency": "weekly", "interval": 1, "times": ["09:00"], },}).raise_for_status()await fetch(SEND_URL, { method: "POST", headers: HEADERS, body: JSON.stringify({ to: ["+243998857000"], message: "Reminder: your weekly check-in.", sender_id: "WELLNESS", sending_type: "recurring", recurring_schedule: { start_date: "2026-06-01", end_date: "2026-12-31", frequency: "weekly", interval: 1, times: ["09:00"], }, }),});Frequency variants
Section titled “Frequency variants”frequency | interval: 1 | interval: 2 | interval: 3 |
|---|---|---|---|
daily | every day | every other day | every three days |
weekly | every week | every fortnight | every three weeks |
monthly | every month, same day of month | every two months | every three months |
yearly | once a year, same date | every two years | every three years |
interval must be ≥ 1. times is an array of HH:mm send times
applied to each eligible day.
Multiple times per day
Section titled “Multiple times per day”{ "to": ["+243998857000"], "message": "Take your medication.", "sending_type": "recurring", "recurring_schedule": { "start_date": "2026-06-01", "end_date": "2026-07-01", "frequency": "daily", "interval": 1, "times": ["08:00", "14:00", "20:00"] }}Three sends per day × 30 days × 1 recipient = 90 SMS, all billed at submit.
Monthly recurrence and short months
Section titled “Monthly recurrence and short months”monthly recurrence anchors on the start_date’s day-of-month. If
that day doesn’t exist in a given month (e.g. start_date = 2026-01-31
applied to February), the gateway uses the last day of that month
instead.
{ "recurring_schedule": { "start_date": "2026-01-31", "end_date": "2026-12-31", "frequency": "monthly", "interval": 1, "times": ["09:00"] }}Generates: Jan 31, Feb 28, Mar 31, Apr 30, May 31, Jun 30, Jul 31, Aug 31, Sep 30, Oct 31, Nov 30, Dec 31. (Or Feb 29 in a leap year.)
Constraints
Section titled “Constraints”| Constraint | Value |
|---|---|
interval minimum | 1 |
frequency enum | daily, weekly, monthly, yearly |
The API does not currently expose pause / resume / cancel endpoints
for recurring sends. To stop a recurring schedule mid-flight, contact
support with the message_id.
See also
Section titled “See also”- Sending types — schema details
- Schedule an SMS — one-off future moments
- Check balance — verify the reserve was applied