Webhooksv4
Create a webhook
POST
/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.
Bearer
Body parameters
JSONurlRequiredstringHTTPS endpoint.
event_typesoptionalstring[]Subscription tokens: exact event types (e.g. message.delivered), category wildcards (message.*, poll.*, group.*, typing.*), * for everything, or the legacy v2 coarse buckets all, message, and status (expanded server-side for parity). Defaults to ['*'].
channel_idoptionalstringchannel_typeoptionalstring"blooio""twilio""whatsapp""whatsapp_business""rcs_business""amb"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
201Created webhook (includes signing_secret once)
400The request was malformed — check the path, query parameters, and body.
401Your API key is missing or invalid. Pass it as a bearer token.
422Validation failed — one or more fields in the request are invalid or missing.
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 \ -H "Authorization: Bearer bl_live_..." \ -H "Content-Type: application/json" \ -d '{ "url": "https://example.com", "event_types": [ "string" ], "channel_id": "ch_a1b2c3d4", "channel_type": "blooio" }'{ "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" }}