Create a webhook
/webhooksSubscribes an HTTPS endpoint to events. Returns the signing secret once, on creation.
Headers
AuthorizationRequiredstringYour API key, sent as a bearer token: Authorization: Bearer <api_key>. Editing this stays in sync with the API key box on the right.
Body parameters
JSONurlRequiredstringHTTPS endpoint.
event_typesoptionalstring[]Subscription tokens: exact event types (e.g. message.delivered), category wildcards (message.*, poll.*, group.*, typing.*, safety.*), * for everything, or the legacy v2 coarse buckets all, message, and status (expanded server-side for parity). Defaults to ['*']. safety.state_changed fires when a sending number's warm-up tier or safety action changes; its payload carries tier, previous_tier, action, previous_action (one of none, queue, slow, pause_new, reply_only, review), and reasons. safety.number_banned fires when Apple bans a dedicated or shared sending number; its payload carries channel_id, phone_number, allocation_type (dedicated or shared), and banned_at.
channel_idoptionalstringchannel_typeoptionalstring"blooio""twilio""whatsapp""whatsapp_business""rcs_business"Returns
dataoptionalWebhookWithSecret
dataoptionalWebhookWithSecretidoptionalstringWebhook id (wh_...).
urloptionalstringevent_typesoptionalstring[]statusoptionalstring"active""disabled"channel_idoptionalstring | nullchannel_typeoptionalstring | nullcreated_atoptionalintegersigning_secretoptionalstringReturned once, on creation. Store it to verify signatures.
Response codes
Sends a live request with your values and shows the real response below. Your key is stored only in this browser.
curl -X POST https://api.blooio.com/v4/webhooks \{ "data": { "id": "wh_a1b2c3d4", "url": "https://example.com", "event_types": [ "string" ], "status": "active", "channel_id": "ch_a1b2c3d4", "channel_type": "string", "created_at": 0, "signing_secret": "sk_live_a1b2c3d4" }}