Developer Documentation

Riffre API Reference

Everything you need to send WhatsApp text, template, media and interactive messages from your own systems.

Rate Limits

Per-minute and per-day request limits, the 429 response, and how to back off correctly.

Last updated 05 Aug 2026

Every account has a per-minute and a per-day request limit, enforced across every API key on that account (not per key).

Default limits

WindowDefault limit
Per minute1,200 requests
Per day100,000 requests

These defaults can be raised for your account - contact your Riffre account manager if you expect to exceed them.

What counts against the limit

Both Send Message and Upload Media requests count against the same account-level limit. The limit is checked before your request body is parsed, so even a malformed request that fails validation still counts.

When you exceed the limit

The API responds with 429 Too Many Requests and a Retry-After header telling you how many seconds to wait before your next request:

HTTP/1.1 429 Too Many Requests
Retry-After: 42
Content-Type: application/json

{"error": "too_many_attempts", "message": "Too many attempts. Please try again in about 1 minute(s)."}

Handling rate limits correctly

  • Read the Retry-After header and wait at least that long before retrying - do not use a fixed retry interval.
  • If you are sending in bulk, spread requests out over time rather than firing them all at once; this also reduces the chance of hitting Meta's own per-phone-number throughput limits during delivery.
  • Rate limit responses do not consume your wallet balance - you are only charged when a message is actually accepted and queued.
Rate limiting happens before billing. A 429 response is never charged to your wallet.