01In short
To send operational alerts with SMSMeteor, have your monitoring or incident tool call POST /v1/messages through a generic webhook action, with the transactional flag so alerts leave at any hour, a short validity so stale alerts are dropped, and an idempotency key built from the alert id so repeated firings do not page twice. For customer-facing outage notices, send a batch to the affected list and pace it if replies land on a support team.
- Traffic type
- Transactional
- Integration
- Generic webhook action calling the REST API
- Deduplication
Idempotency-Keyfrom the alert id- Validity
- 15 to 60 minutes
- Fan-out
/v1/messages/batch, 1,000 messages per API request- Works without
- Mobile data, an app, or push tokens
Recommended settings
02How it works here
From nothing to delivered, in 4 moves.
-
01Add a webhook action
Most monitoring and incident tools can POST JSON to a URL with headers. Point one at the messages endpoint with your key.
-
02Deduplicate
Use the alert or incident id as the idempotency key. A flapping check then sends one text per incident, not one per evaluation.
-
03Drop stale alerts
Set validity to the window in which the alert is still useful. A page delivered three hours late is noise.
-
04Escalate by list
Primary on-call first; if your tool sees no acknowledgement, a second call pages the secondary.
03What matters
Why SMS for alerts
Push notifications need a working app, a valid token, mobile data and the phone's notification settings. Email needs someone looking. A text needs a SIM with signal. For the page that must wake someone, or the notice that must reach a customer whose internet is the thing that is down, SMS is the channel with the fewest dependencies.
Keep alert texts terse and structured: system, severity, what, where to look. The first forty characters are what shows on a lock screen.
04In practice
Customer-facing incident notices
When an outage affects customers, a short text to the affected list prevents a wave of tickets. Send it as a batch with a campaign tag per incident, pace it if your support line is small, and follow up with the resolution. These are service messages: no offers, no links to anything but your status page.
05What it costs
1,000 messages, priced per destination.
One segment each at today's published rates. The same unit price applies to one message or a million; there is no plan, no setup fee and no monthly fee.
Rate card last updated 22 September 2026
| Destination | Rate per SMS | 1,000 messages |
|---|---|---|
| $0.0084 | $8.40 | |
| $0.0130 | $13.00 | |
| $0.0238 | $23.80 | |
| $0.0256 | $25.60 | |
| $0.0084 | $8.40 | |
| $0.0298 | $29.80 |
Other destinations: cost calculator
06A message that works
What it looks like on the phone, and in the request.
System, severity, fact, where to look.
curl https://api.smsmeteor.com/v1/messages \
-H "Authorization: Bearer $SMSMETEOR_KEY" \
-H "Idempotency-Key: incident-2291-page-primary" \
-H "Content-Type: application/json" \
-d '{
"to": "+4915112345678",
"from": "OPSALERT",
"text": "PROD db-eu-2 CRITICAL: replication lag 340s. Runbook: ops.acme.com/r/db-lag",
"validity": 30,
"window": { "quiet_hours": "bypass" },
"campaign": "oncall"
}'07Pitfalls
Three mistakes we see, and how to avoid them.
One text per check evaluation
A flapping alert sends dozens. Key on the incident, not on the evaluation.
An empty balance during an incident
Set a low-balance webhook threshold so the alerting channel never stalls.
Long alert bodies
Stack traces do not belong in a text. Link to the runbook or the incident.
09Questions, answered
Operational alerts and incident notifications: questions, answered.
Can my monitoring tool send SMS through the API?
Any tool that can POST JSON with custom headers can: point a webhook action at /v1/messages with a bearer key. No plugin or SDK is required.
Will alerts be held at night by quiet hours?
Not when flagged transactional with window.quiet_hours set to bypass. Alerts leave immediately at any hour.
How do I avoid duplicate pages when a check flaps?
Build the Idempotency-Key from the incident id. Repeated requests with the same key within 24 hours return the original response without sending again.
What happens if the phone is off?
The carrier retries until the validity period ends. Set a short validity for alerts so that a stale page is dropped rather than delivered hours later.
Can I notify customers about an outage?
Yes, as a batch to the affected list, paced if needed. Keep it a service notice: what is affected, where to follow updates.
How do I make sure the balance never runs out?
Set a low-balance threshold: the balance.low webhook fires when the balance falls under it, and the balance endpoint can be polled by your monitoring.
