Safety & warm-up
WhatsApp restricts or bans numbers that behave like bulk senders. YASend's safety engine makes each number behave like a careful human, so your number keeps working. These rules apply to every plan and every API call.
Pacing
| Default per number | |
|---|---|
| Delay between messages | 3–8 seconds, randomised |
| Per minute | 10 messages |
| Per hour | 60 messages |
| Per day (fully warmed up) | 200 messages |
| Same recipient | Spaced out: a burst to one person is refused with RATE_LIMITED |
Sync sends wait out the delay, which is why they take a few seconds. Async sends queue and go out at this pace.
Warm-up
New numbers start small and grow with age:
| Days since linked | Messages per day |
|---|---|
| 1–2 | 10 |
| 3–4 | 20 |
| 5–7 | 50 |
| 8–14 | 100 |
| 15–30 | 150 |
| after 30 | 200 |
During the first two days, sending also requires:
- a profile name and photo on the WhatsApp account;
- at least one received message: ask someone to message the number from their phone.
Messages to the linked number itself (WhatsApp's "Message yourself" chat) skip these two checks, so you can test your setup straight away. The dashboard shows which checks a number still needs (WhatsApp numbers → your number → Before you message customers).
Over the cap, sends are refused with 429 WARMUP_RESTRICTED; async messages wait for the next day.
Your plan's daily limit (500 per session) is a ceiling above these values. The safety engine is what actually governs each number.
Health
Each number has a health score (GET /v1/sessions/{id}/health), based on delivery failures, blocks,
replies and disconnects.
- Low health slows sending down.
- Hard evidence of trouble stops sending with
SESSION_AT_RISKuntil it recovers. Examples: repeated delivery errors, or WhatsApp refusing messages. - Alerts arrive as the
session.alertwebhook.
Content rules
- Refused: messages that are only a link, and texts with banned terms (
CONTENT_BLOCKED). - Duplicates: the same text sent again and again is refused as duplicate spam. Templated messages
(
templateKey) are exempt.
Best practices
- Message people who expect it (opt-in), and give them a way to reply and stop.
- Replies are the best health signal. Conversations look human; cold one-way blasts don't.
- Vary your wording, and avoid link-heavy messages.
- Spread volume across numbers (multi-number pooling on the Advanced plan) instead of pushing one number to its limits.