Developers
Build on the BloomCONNECT API.
A REST API with 40+ resources, three authentication methods, webhooks, and an MCP server.
- Base URL
- https://api.connect.bybloomlabs.com
- Auth
- API key, OAuth, or session token
- Format
- JSON, cursor pagination, RFC-7807 errors
01 — Resources
Endpoints by resource group.
| Group | Example endpoint |
|---|---|
| Contacts | GET /contacts |
| Messages | POST /messages |
| Campaigns | POST /campaigns |
| FAQs | GET /faqs |
| Appointments | POST /appointments |
| Tasks | GET /tasks |
| Channels | GET /channels |
| Phone numbers | GET /phone-numbers |
| Webhooks | POST /webhooks |
| Analytics | GET /analytics |
| Chat widget | GET /widget |
| WhatsApp templates | GET /wa-templates |
02 — Example
Send a message.
curl -X POST https://api.connect.bybloomlabs.com/messages \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{"contact_id":"c_123","channel":"whatsapp","text":"Hi!"}'03 — Webhooks
~20 events, HMAC-signed.
| Event | Fires when |
|---|---|
| message.received | A contact sends a message |
| message.sent | The agent replies |
| contact.created | A new contact is added |
| appointment.booked | A slot is booked in-chat |
| campaign.completed | A campaign finishes |
| handover.requested | The agent hands to a human |
const sig = req.headers['x-signature'];
const expected = hmac('sha256', SECRET, req.rawBody);
if (sig !== expected) return res.status(401).end();