🛡 Number Protection
Number Protection is built into every plan — it is the wapower promise, not an upsell. Every session is born with warm-up ON and a continuously-updated health and ban-risk state you can always read.
Warm-up
New numbers ramp their daily send volume through a schedule (e.g. 20 → 50 → 120 → 300 → 600 → 1000/day) gated on health: a stage only advances when health stays high, and regresses if health drops. Sends above the current cap are held.
POST /v1/sessions/{id}/warmup/start— (re)enable warm-upPOST /v1/sessions/{id}/warmup/pause— pause it (consent-gated and logged, see below)
Health & ban-risk states
GET /v1/sessions/{id}/protection and GET /v1/sessions/{id}/health return a 0–100
health score and a risk band:
| Band | Health | Behaviour |
|---|---|---|
| OK | ≥ 80 | normal |
| AT_RISK | ≥ 40 | auto-throttle (cap halved) |
| CRITICAL | < 40 | auto-throttle + automatic pause |
The score is driven by report rate, block rate, failed sends and reply rate. When you
are throttled, the API blocks over-cap sends with blocked_by_protection and a
reason_code.
Ban reasons
GET /v1/protection/ban-reasons returns the catalogue of reason codes (e.g. high report
rate, sending to non-contacts, identical bulk content, too-fast ramp). Each alert carries
the relevant reason_code plus a recommended action.
Alerts & consent
GET /v1/sessions/{id}/risk-alerts lists escalating alerts; acknowledge with
POST /v1/sessions/{id}/risk-alerts/{alert_id}/ack. Disabling warm-up or raising the rate
policy requires a consent token (GET /v1/sessions/{id}/protection/consent) and every
disable is recorded for audit — this protects you legally and protects your number.
Best practice
- Keep warm-up ON, especially in the first weeks.
- Message people who expect to hear from you; avoid identical bulk content.
- Watch the ban-risk meter in the dashboard and act on alerts.