# Rate limits and pacing

> WhaBuzz does not rate limit the API in v1; Meta's limits pass through. How to pace sends and read timing headers.

Canonical: https://docs.whabuzz.com/guides/rate-limits/

## WhaBuzz does not throttle your API calls {#no-limit}

There is no WhaBuzz request quota on `/v1` in v1. The only WhaBuzz rate limit is on sign-up, login and password-reset in the console (`429 rate_limited` with `Retry-After`).

## Meta's limits pass through {#meta}

Meta limits you, and its errors reach you unchanged with `"source":"meta"`. The ones you will meet:

| Meta code | Meaning | What to do |
|---|---|---|
| `130429` | Throughput limit reached (messages per second per number) | Back off and retry later. Pace sends. |
| `131056` | Too many messages to the same recipient in a short time | Wait before sending that customer again. |
| `131048`, `131049` | Spam rate or marketing frequency limits | Do not retry the same message; review content and audience. |

A messaging tier (how many unique customers you may start conversations with per day) applies to each number and is reported in [`number.quality`](https://docs.whabuzz.com/events/number-quality.md) events. The full list is on [Meta's error page](https://developers.facebook.com/docs/whatsapp/cloud-api/support/error-codes).

## Pacing bulk sends {#pacing}

Use [batches](https://docs.whabuzz.com/guides/messages.md#batch) and let WhaBuzz pace for you: 20 messages per second per standard number, 50 for a high-throughput number. A scheduler runs every minute and sends at most 900 items per run, so plan on about 900 messages per minute per run. Failed items are not retried; list them with `?status=failed` and resend what you choose.

If you send one at a time instead, keep to the same ceiling and treat `130429` as a signal to slow down.

## Reading latency {#timing}

Every response carries `Server-Timing: wb;dur=12, meta;dur=184` and `X-WhaBuzz-Processing-Ms`. `wb` is time spent in WhaBuzz; `meta` is time waiting on Meta's Graph API. WhaBuzz gives Meta 15 seconds, then answers `502 meta_unreachable` (outcome unknown; see [Idempotency](https://docs.whabuzz.com/guides/idempotency.md)).
