Menu

Concepts

Pagination, limits and versioning

Cursor, rate limits, idempotency and versioning.

Pagination

Lists use a cursor. Send ?limit= (1 to 100, default 50); the response includes:

{ "data": [ ... ], "has_more": true, "next_cursor": "MjAyNi0xMC0xNlQxMjowMDowMFp8..." }

For the next page, repeat the call with ?cursor=<next_cursor>. Order is newest first.

Rate limits

Per key, per minute: Vendas 60, Completo 120, Enterprise 300 (or as contracted), free trial 20. Every response carries X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset (seconds). Over the limit: 429 with Retry-After.

WhatsApp sends also follow Meta's limits (number tier, 24-hour window, approved templates, opt-out) and your plan limits.

Idempotency

On create calls (e.g. send a message, create a campaign), send Idempotency-Key: <uuid>. Repeating the same key with the same body within 24 h returns the same response (Idempotent-Replayed: true header) without sending again. The same key with a different body returns 409 idempotency_conflict.

Versioning

The version is in the path (/v1). Within v1 we only add fields and endpoints; breaking changes go to /v2, with notice and a deadline. Ignore fields you don't know.