v4 API

Blooio API Reference

One HTTP API for iMessage, SMS, RCS, WhatsApp, and Apple Messages for Business. Send and receive messages, manage contacts and chats, run polls and groups, and subscribe to a unified event feed.

Quickstart

Send your first message in minutes.

Authentication

Authenticate with your API key.

Webhooks

Receive events in real time.

API Reference

Every endpoint, generated from the spec.

Send a message

curl -X POST https://api.blooio.com/v4/messages \
  -H "Authorization: Bearer bl_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "to": "+15551234567",
    "text": "Hello from Blooio!"
  }'

A note on v3

v3 was our API for enterprise customers, layering more programmatic features on top of messaging — including purchasing phone numbers directly through the API. This functionality is rolling out in v4 as well, bringing those enterprise capabilities to the unified API.

Explore the reference

Account

7

Authenticated account, sender numbers, and contact cards.

Location

4

Find My friend locations (device passthrough).

Channels

12

Sending surfaces (iMessage/Blooio, Twilio, WhatsApp, RCS, Apple Messages for Business) and their capabilities.

Priorities

5

Channel routing / number pools: ordered sets of channels walked by priority for the agnostic send.

Contacts

15

Contacts, their channel identities, capabilities, timeline, and tags.

Chats

15

Conversations and chat-level actions (typing, read, contact card, background).

Messages

14

Send messages and read message history, status, events, and reactions.

Polls

3

Native iMessage polls (Blooio channels).

Groups

8

Group chats on group-capable channels (Blooio, WhatsApp).

Webhooks

9

Webhook subscriptions and delivery attempts for inbound + lifecycle events.

Events

2

Unified activity feed across messages, polls, groups, reactions, typing, payments, and messaging-safety state changes.

Phone Numbers

3

Phone number lookup and geocoding (enterprise plans).

Numbers

7

Every number the organization rents from Blooio, as one resource keyed by the number itself. A number carries one or more `products`: `imessage` (a Blooio iMessage line), `sms` (Blooio SMS), and `voice` (Blooio Voice). Each product is a channel, listed in the number's `channels`, and that channel is what you send and call from. Search and buy Blooio SMS and Blooio Voice numbers here; iMessage lines are bought through `/channels/blooio/purchases`. Blooio SMS and Blooio Voice must be enabled on the organization, and an organization holds up to 5 of these numbers unless Blooio raises its limit. OAuth apps need `numbers:read` to read and `numbers:manage` to buy, change, and release.

10DLC

11

US carrier registration for Blooio SMS. Carriers deliver texts from a local number only once the number sits on a 10DLC campaign they've provisioned. The organization registers one brand (who is sending), then one or more campaigns (what it sends and how people opt in). Blooio assigns the organization's SMS numbers to its oldest provisioned campaign automatically; `PATCH /numbers/{number}` with `campaign_id` moves a number to another. Registration status changes arrive as `registration.brand.updated` and `registration.campaign.updated` webhooks. OAuth apps need `numbers:read` to read and `numbers:manage` to register.

Calls

8

Calls on the organization's Blooio Voice numbers. Every call has a handler that takes its audio once it's answered: `stream` (your WebSocket server, speaking the Blooio media stream protocol), `agent` (the Blooio agent that owns the number), or `softphone` (a teammate in the dashboard). Inbound calls go to the handler set in the number's voice settings (`PATCH /channels/{channel}/settings` with `inbound`); with `api`, the call rings until you answer it with `POST /calls/{call_id}/answer`. A call lasts at most 4 hours. Call status changes arrive as `call.ringing`, `call.answered`, and `call.ended` webhooks. OAuth apps need `calls:read` to read and `calls:write` to place and control calls.

API Keys

7

Programmatic API key management — create keys, list them, deprecate them, and assign them to channels. **Blooio Apps (OAuth) only.** Every endpoint under this tag is callable *only* with a Blooio Apps OAuth access token (`blo_at_...`) whose install was granted the `apikeys:read` / `apikeys:manage` scopes. API-key and dashboard authentication are rejected with `403 oauth_token_required`. This mirrors the API-key management that has always lived in the dashboard, exposed to installed apps under explicit user consent.

AI

2

Model-backed decisions about conversations. Bloobability v2 returns, for each policy you write, a calibrated probability that it holds and a separate estimate of whether the conversation can answer it, from the instant or full tier you choose. The deprecated v1 gauge stays documented for reference.