BetaThe V4 API is in beta — endpoints and functionality may change.

Webhooks

Receive inbound messages and lifecycle events in real time, and verify their signatures.

Webhooks deliver events to your server as they happen. Create a subscription with POST /webhooks, choosing which events you want with webhook_type:

curl -X POST https://api.blooio.com/v2/api/webhooks \
  -H "Authorization: Bearer bl_live_..." \
  -H "Content-Type: application/json" \
  -d '{ "webhook_url": "https://example.com/blooio", "webhook_type": "all" }'
Try it

The creation response includes a signing_secret once — store it to verify deliveries.

Event payload

Each delivery is a JSON body identifying the event and the message it relates to:

{
  "event": "message.received",
  "message_id": "msg_...",
  "chat_id": "+15551234567",
  "data": { }
}

Verifying signatures

Each delivery is signed with your signing_secret (HMAC-SHA256) and sent in the X-Blooio-Signature header. Recompute the signature over {timestamp}.{raw_body} and compare it before trusting the payload — see Verify webhook signatures.

Event types

Set webhook_type to control which events you receive:

  • message — inbound and outbound message events (received, sent, delivered, failed, read, reactions).
  • status — message status/lifecycle events only.
  • all — every event, including polls, groups, and contact card events.

Inspect and replay past deliveries with GET /webhooks/{webhookId}/logs.