Skip to main content
GOWA has no rate limiter. It does not count requests, return 429 for request volume, or send X-RateLimit-* headers. Every request you make is passed to WhatsApp immediately. Pacing is your responsibility.

Limits GOWA does enforce

Limits WhatsApp enforces

WhatsApp does not publish its limits for linked devices, and they change. Accounts that send too much, too fast, or to people who never wrote to them are restricted or banned. GOWA cannot detect or prevent this in advance. The one signal GOWA surfaces is WA_REACHOUT_TIMELOCK (HTTP 429):
WhatsApp returns this (server error 463) when the account is temporarily blocked from starting new chats. It cannot be bypassed or retried away. Until it lifts:
  • Only message people who have messaged you first, or reply in existing chats.
  • Sending one message from the phone itself sometimes clears it sooner.
  • Stop bulk or cold outreach and slow down.

Pacing guidelines

These are conservative starting points, not guarantees:
  • Send sequentially per device; do not fire hundreds of concurrent requests.
  • Add a delay between messages (several seconds, with random jitter) and longer pauses between batches.
  • Prefer contacts who opted in or wrote first. Unsolicited messages get reported, and reports lead to bans.
  • Warm up new numbers slowly over days.
  • Personalize content; identical text to many recipients looks like spam.
  • Stop on WA_REACHOUT_TIMELOCK and alert a human.
For sends spread over time, use scheduled sends instead of a long-running loop.

Protecting GOWA itself

If GOWA is reachable from the internet, add request limits at your reverse proxy, especially for failed Basic Auth logins and, with MCP OAuth, /oauth/authorize. For example, with nginx: