# Limits and quotas

> The API's limit values: sizes, pagination, timeouts, retries, and plan limits.

## Requests and fields

| Item | Limit |
|---|---|
| Message text | 1 to 4,096 characters |
| Recipient number | International format with "+", 8 to 15 digits |
| Media (image, video, audio, document) | `link` over `https://`, or a Meta `id`; never both |
| Template name | Lowercase letters, digits and `_`, up to 512 characters |
| `Idempotency-Key` | Up to 200 characters |
| Account or business name | 2 to 120 characters |
| Application or key name | 2 to 80 characters |
| `externalRef` | Up to 120 characters, unique per environment |
| Password | 10 to 200 characters |
| Webhook URL | Public `https://`, up to 2,000 characters |

## Pagination

| List | Default size | Maximum |
|---|---|---|
| Messages, webhook deliveries | 25 | 100 |
| API call log | 50 | 200 |

## Sending

| Item | Value |
|---|---|
| Send attempts on a transient failure | 6, with increasing backoff |
| Throughput per number | 50 messages per second by default (set by the platform) |
| Retry of a message left in `queued` | After 5 minutes |

## Webhooks

| Item | Value |
|---|---|
| Response timeout for your server | 10 seconds |
| Attempts per delivery | 8 in total, with doubling backoff (about one hour) |
| Automatic disabling of an endpoint | After 15 permanently failed deliveries in a row |
| Response excerpt stored | 1 KB |
| Recommended signature tolerance | 5 minutes |

## Sessions and keys

| Item | Value |
|---|---|
| Console session duration | 30 days |
| API key lifetime | Until revoked |

## Plans

| | Starter | Pro | Business |
|---|---|---|---|
| Price per month | 5,000 FCFA | 10,000 FCFA | 30,000 FCFA |
| Numbers included in the price | 2 | 3 | 5 |
| Each additional number, beyond those included | 2,000 FCFA / month | 1,500 FCFA / month | 1,200 FCFA / month |
| WhatsApp number cap, in production | 5 | 15 | 100 |
| Messages included per month **and per number**, in production | 1,000 | 10,000 | 35,000 |
| Platform fee beyond the included quota (on top of Meta's rate) | 1 FCFA per message | 0.5 FCFA per message | 0.25 FCFA per message |
| Retention of logs and delivery history | 7 days | 30 days | 90 days |
| Connected businesses (your customers) | Unlimited | Unlimited | Unlimited |
| Sandbox | Unlimited, never billed | same | same |

**The number is the pricing unit.** The plan price includes several numbers (2 on Starter, 3 on Pro, 5 on Business); each number beyond that is added to the price, up to the tier's cap. The account's message quota is the per-number quota multiplied by the number of billed numbers: with 3 numbers on Starter, 3 × 1,000 = 3,000 messages per month. Included numbers count even if they are not all connected yet: on Starter, the minimum quota is 2 × 1,000 = 2,000. Businesses (your customers) are not limited: a number counts the same way whichever business it is attached to.

A new account gets a **7-day free trial** with the Starter limits (see [Usage and billing](/docs/guides/usage-billing)). During the trial, the quota is a cap, with no overage fees.

Beyond the included quota, **sending is never interrupted**: a small **platform fee** per message applies (1, 0.5 or 0.25 FCFA depending on the plan), on its own line. This is not the price of the message: Meta bills delivery separately, to the owner of the WhatsApp account. An account that goes over therefore pays a little more, without having its sends rejected. Prices are listed on [the pricing page](/#tarifs). Reaching a limit returns `402 plan_limit_reached` (number of numbers) or `402 quota_exceeded` (sending, for a plan with a hard cap). An account without a subscription stays on a default plan that is very limited (one business, one number, 100 messages per month). An **Enterprise** plan (unlimited numbers, negotiated volume and logs) is available on request.

**Meta's** limits (messaging tiers per number, number quality, content rules) apply on top: they depend on your WhatsApp account and are decided by Meta.
