Message Suppression API
Configure content-hash duplicate suppression: a send is silently skipped when the same message body already reached the same contact on the same channel inside a window you choose. This is the “two different campaigns fired the identical promo back-to-back” guard — distinct from frequency caps (which count send firings per contact) and opt-outs (which block a channel entirely). Enforcement happens inside the message send pipeline, before frequency capping, so a duplicate never burns a cap slot. A suppressed send reports as skipped (reasonduplicate_content) rather than an error, so campaigns and batches keep moving.
Base path: /api/v1/message-suppression
Authentication: API key (X-API-Key) or session JWT. Reads require any role; the upsert and delete writes require owner, admin, or developer.
Policy shape
A single opt-in policy per organization.Example — dedupe marketing sends within 7 days
applies_to_categories to marketing means OTP and transactional resends are never suppressed. Omit channels (or send null) to cover every messaging channel.
Suppression fails open: if no policy applies, or the backing store is briefly unavailable, the send is dispatched normally — a transient blip never silently swallows outbound traffic. Bodies are compared by SHA-256 of the whitespace-normalized text, so cosmetically-identical copy (reflowed spacing) collapses to the same marker while different case or wording does not.
See also
- Frequency Caps API — rolling-window send limits per contact; enforced alongside suppression.
- Opt-outs API — hard channel-level opt-out, enforced regardless of suppression or caps.
- Compliance → opt-out & suppression