Changelog · back to all
Record messaging preferences over the API
The messaging preference store is now a public API. Preferences are stated consent grants and opt-outs, keyed by channel and handle (an email address or phone number), and they already decide delivery for every send: an opt-out blocks marketing traffic, and one recorded for all messages blocks transactional traffic too.
What's new
GET/POST /v1/preferencesandGET/DELETE /v1/preferences/{preference_id}are available to API keys carrying the newpreferencesscope. Recording a grant withconsented_atevidence is also the documented way to resume mailing someone after an unsubscribe.- The
bird preferencesCLI group and matching MCP tools cover the same operations, and all four SDKs gain apreferencesresource with typed results. - Four webhook event types are now public:
preference.granted,preference.revoked,preference.deleted, andwhatsapp_suppression.created. Each fires only when a statement actually changes a record.
Statements are ordered by when they were made rather than when they arrive, so an out-of-order write answers applied: false with the surviving statement instead of applying. A statement the recipient made themselves, such as an unsubscribe or a stop keyword, cannot be deleted through the API; it ends only when they opt back in.
Read more in the webhooks guide and the API reference.