Skip to main content
POST
Add Opt-Outs

Endpoint

Safe to repeat. Sending the same list twice suppresses nothing new the second time and reports every entry under alreadyOptedOutCount.

Request body

entries array (required)

Each object names one WhatsApp contact to suppress. Maximum 10,000 per request β€” send the rest in further calls.
The same contact listed twice counts once, so the returned counts can sum to less than the number of entries you sent.

Examples

The common case for a consent export.
Use userId when your records key on the BSUID you received in a webhook rather than a phone number.
You can mix phone numbers and BSUIDs freely.

Response

The API returns HTTP 200 with a data object. Counts are over the contacts you named, not rows stored. Success response
Treat the counts as best-effort when reconciling. Deciding what was already suppressed takes a read that Connectly skips rather than fail your upload for. When it is unavailable every entry is written and duplicates are dropped on storage β€” your contacts end up suppressed correctly, but an unchanged re-upload can report its whole file under addedCount and nothing under alreadyOptedOutCount.If you reconcile against these numbers, read a full addedCount as β€œunknown” rather than β€œchanged”.

Error responses

Unreadable entries are dropped and counted β€” they do not fail the batch. The request fails outright only when no entry survives. Quote cntTraceId when reporting a failure β€” it identifies the request in our logs.

Rejection reasons

Returned as HTTP 400 when every entry was rejected, rather than a 200 with an empty result.
Returned when entries exceeds 10,000. Split the list across calls.

Rate limiting

This endpoint is limited to 60 requests per minute. Exceeding this returns HTTP 429 Too Many Requests. At 10,000 contacts per call that is well above what a daily consent sync needs β€” use exponential backoff if you expect to approach it.