Skip to content

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.

A pair of weekly reminders, every Monday and Thursday at 09:00, for six months:

Terminal window
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"]
}
}'
frequencyinterval: 1interval: 2interval: 3
dailyevery dayevery other dayevery three days
weeklyevery weekevery fortnightevery three weeks
monthlyevery month, same day of monthevery two monthsevery three months
yearlyonce a year, same dateevery two yearsevery three years

interval must be ≥ 1. times is an array of HH:mm send times applied to each eligible 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 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.)

ConstraintValue
interval minimum1
frequency enumdaily, 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.