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

Blooio API Reference

One HTTP API for iMessage, SMS, RCS, and WhatsApp. 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/v2/api/chats/%2B15551234567/messages \
  -H "Authorization: Bearer bl_live_..." \
  -H "Content-Type: application/json" \
  -d '{ "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

1

Authentication and account information

Numbers

2

Manage phone numbers linked to your account

Contact Card

3

Manage and share your iMessage contact card (Name & Photo)

Contacts

9

Manage contacts (phone numbers and emails)

Groups

7

Manage contact groups

Group Members

3

Manage group membership

Webhooks

6

Manage webhook subscriptions

Webhook Logs

2

View and replay webhook deliveries

Chats

5

View conversations and messages

Messages

4

View individual messages and their status

Typing Indicators

2

Control typing indicators for conversations

Read Receipts

1

Mark conversations as read

Reactions

1

Add or remove reactions to messages. Supports classic iMessage tapbacks (love, like, dislike, laugh, emphasize, question) and emoji reactions (e.g. +😂, -😂).

Polls

2

Send native iMessage polls and retrieve poll results with vote counts. Poll events are delivered via separate webhook event types (poll.received, poll.created, poll.voted) and require webhook_type 'poll' or 'all'.

Location

3

FindMy contact location tracking

FaceTime

1

Initiate FaceTime calls

Phone Numbers

3

Phone number validation, formatting, and NANPA geocoding. Requires an Enterprise plan (Dedicated Enterprise).

Analytics

3

Deliverability and risk-tolerance reporting for your numbers. **Scope** — Reports are organization-scoped: any API key in the organization returns the whole organization's dedicated fleet, regardless of which numbers a particular key is attached to. **Eligibility** — Risk scoring is only available for dedicated numbers (Dedicated Commercial or Dedicated Enterprise); shared, trial, and inbound numbers return `403 dedicated_plan_required`. Dedicated numbers are the only lines whose per-number usage is meaningful to score. **What the score means** — Each number gets a `risk_score` from 0 (lowest risk) to 100 (highest), mapped to a `risk_level`: `low` (0-29, healthy), `medium` (30-59, monitor), `high` (60-100, likely to be filtered/suspended by carriers). The score is the clamped sum of ten additive risk factors (see `RiskFactors`); positive factor scores raise risk, negative scores (bonuses) lower it. High **inbound** volume and engagement lower risk; high **outbound** volume, bursts, low reply rates, and templated content raise it. **How it's computed** — Fully real-time: every request recomputes from Postgres over the requested window (there is no cache on the report endpoints). The metric fan-out is collapsed into a handful of org-wide `GROUP BY allocation_id` queries that run on a single database connection, so cost is roughly independent of fleet size. Conversation-initiation signals read the `channel_thread_stats` rollup (one row per conversation, holding its earliest message + direction); engagement, contacts, and bursts scan the windowed `messages`; message similarity derives a SimHash per outbound message at read time. **Window** — Defaults to the trailing 30 days; override with `days` or an explicit `from`/`to` epoch-ms range (see the per-endpoint query params).