Key Takeaways
- android sms gateway scheduled sms api usage is scheduleAt (ISO-8601) on POST /api/v1/messages — docs own the live shape.
- scheduleAt is refused beyond 38 days. Re-time campaigns with PATCH /campaigns/{id} when that is the object you created.
- Quiet hours belong in your worker timezone logic. The gateway sends when the clock hits the timestamp you posted.
- An offline Android at fire time is a radio failure, not a scheduler bug.
- Priced by devices and SMS send volume. You use your own phone and operator SMS credit. Scheduled sends still burn operator airtime when they fire.
- OTP should stay immediate. Do not park 2FA on a schedule.
scheduleAt on POST /messages
Search intent for android sms gateway scheduled sms api usage is the live JSON, not a marketing calendar. Service pricing is based on device count and total SMS sent through the gateway. Bearer POST to /api/v1/messages. Docs win over blog samples.
Scheduling a reminder for 09:00 does not charge the phone. If the Android is in a drawer at 09:00, the customer gets silence.
curl -X POST "https://app.sms-gateway.app/api/v1/messages" \
-H "Authorization: Bearer $SMS_GATEWAY_API_KEY" \
-H "Content-Type: application/json" \
-d '{"to":["+14155552671"],"text":"Reminder: your invoice is due tomorrow.","type":"sms","scheduleAt":"2026-09-01T09:00:00Z"}'
# Times are ISO-8601 UTC unless the string carries an offset.
# scheduleAt is refused beyond 38 days. PATCH /campaigns/{id} can re-time a campaign.Feature pillar: scheduled SMS campaigns. Developer Center: docs.sms-gateway.app. Samples are REST HTTPS/JSON, not a packaged SDK.
The 38-day horizon
scheduleAt is refused beyond 38 days. That is a product limit, not an operator rule. For longer programmes, create a campaign and PATCH it rather than inventing a year-ahead one-shot.
| Object | When | Note |
|---|---|---|
| One-shot POST /messages | scheduleAt ≤ 38 days | Idempotency-Key on the business event |
| Campaign | Panel or POST /campaigns | PATCH /campaigns/{id} to re-time |
| OTP / 2FA | Immediate | Do not schedule login codes |
| Promo | Quiet hours in your worker | STOP on that SIM |
UTC vs quiet hours
Times are ISO-8601 UTC unless the string carries an offset. Quiet hours and exam blackouts are your product rules. STOP and auto-reply still apply on promotional lanes. CTIA consumer messaging principles are a practical floor (CTIA).
A schedule is not a powered phone
Pairing, Doze, empty airtime. Device setup. DLR after fire: delivery reports. Isolate OTP — OTP verification. Priced by devices and SMS send volume. You use your own phone and operator SMS credit.
Campaigns vs one-shot scheduleAt
Spreadsheet/list campaigns stay in the panel (CSV import on Professional/Business). API one-shots use to[] plus scheduleAt. Do not invent a cron field name. Keys in env — API keys in env.
Schedule API checklist
- ISO-8601 timestamp; 38-day cap known.
- Quiet hours in the worker, not hoped-for.
- Phone charged and paired at fire time.
- OTP not scheduled.
- Idempotency-Key on the business event.
Next steps
Schedule a staff reminder 10 minutes out, confirm DLR, then production. Pricing. App: downloads.
Related product pages
Jump to the live product docs for this topic—not another long-form article.
- scheduled SMS campaignsSend later windows
- SMS API documentationLive endpoint reference
- device and SMS volume pricingPlans and allowances
- Android SMS gateway product guideDefinition, product, and how to buy




