Limited offer

Build with our iMessage API/MCP. Get our sandbox for free.

For developers & builders

The iMessage API for builders

Send and receive real blue-bubble iMessage from your CRM, your product or your AI agent. One REST API, webhooks for replies, and an MCP server for agents. No Mac, no A2P registration.

Base URL https://api.bluereacher.com/v1 · Bearer auth · live and test keys

POST /v1/messages
curl -X POST https://api.bluereacher.com/v1/messages \
  -H "Authorization: Bearer brk_live_your_key" \
  -H "Content-Type: application/json" \
  -d '{
    "number": "+15551234567",
    "content": "Hey, saw your demo request come in. Easier to answer a couple things here, or want a call?"
  }'

Built for the way you actually ship

Real iMessage, no Mac

Blue bubbles from dedicated numbers, with automatic RCS then SMS fallback. Nothing to install, no Mac server to run.

No A2P registration

iMessage is not carrier SMS, so there is no brand vetting or campaign queue to clear before you send. TCPA consent still applies.

Replies in seconds

Register one webhook and inbound messages, delivery states and reactions post to your endpoint, signed, within seconds.

MCP-native for agents

A hosted MCP server exposes the same tools to Claude, Claude Code and Cursor, so an agent sends and reads without glue code.

Send a message, get the reply back

One authenticated POST sends the message. Register a webhook once and the reply lands on your endpoint in seconds, signed so you can verify it.

Node.js
const res = await fetch("https://api.bluereacher.com/v1/messages", {
  method: "POST",
  headers: {
    Authorization: "Bearer brk_live_your_key",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    number: "+15551234567",
    content: "Hey, saw your demo request come in.",
  }),
});
const { message_id } = await res.json();
Your webhook receives
POST https://your-app.com/webhooks/bluereacher
X-BlueReacher-Signature: sha256=...

{
  "event": "message.received",
  "event_id": "evt-9f3c1b7e",
  "data": {
    "phone_number": "+15551234567",
    "content": "Thursday at 10 works",
    "service_type": "iMessage"
  }
}

Everything the API does

The full contract is on the docs and in the OpenAPI spec.

Messaging

  • POSTSend a text or media message
  • POSTDeliver audio as a native voice memo
  • GETDelivery status of a queued item

Conversations

  • GETConversation history for a number or group
  • GETList group chats
  • GETPaginated message history for a contact

Contacts

  • GETSearch and list contacts
  • POSTCreate a contact (upsert by phone)
  • PATCHUpdate a contact, including opt-out
  • GETRead a contact's opt-out state
  • POSTOpt a contact out, or back in with explicit confirmation
  • GETRead whether the AI assistant will reply to a contact
  • POSTPause, hand off, or autopilot the AI assistant for one contact

Signals

  • POSTSend a native iMessage tapback
  • DELETETake back a tapback
  • POSTShow or clear the native typing bubble
  • POSTClear unread state, optionally with a native read receipt

Lines

  • GETList sending lines with live capacity

Utility

  • POSTiMessage vs SMS capability for phone numbers
  • GETUsage by key and endpoint

Webhooks

  • POSTRegister your inbound webhook endpoint
  • GETRead your current webhook registration
  • DELETERemove your webhook endpoint

Calling

  • GETList FaceTime calling lines
  • POSTPrepare a human-confirmed FaceTime call
  • GETRead a call's lifecycle
  • DELETECancel or end a call
  • POSTPrepare a FaceTime call

For AI agents

Give your agent a phone number it can actually use

The hosted MCP server at /v1/mcp hands Claude, Claude Code, Cursor and any MCP client native tools to send, read a thread and check availability, from the same line a human replies from.

Developer questions, answered

What is the Blue Reacher API?

A REST API to send and receive real iMessage from your CRM, your product or your AI agent. The base URL is https://api.bluereacher.com/v1, there is no Mac to run, and non-iMessage numbers fall back to RCS then SMS automatically.

How do I authenticate?

A bearer token. Send Authorization: Bearer brk_live_your_key for live traffic, or a brk_test_ key against the same endpoints for a dry run. Keys are per workspace and rotate from the dashboard.

Do I need A2P 10DLC registration?

No. A2P 10DLC governs carrier SMS, and iMessage is not carrier SMS, so there is no brand vetting and no campaign approval queue. Consent still applies: TCPA governs the messages, and STOP handling is automatic.

How do inbound replies come back?

Register one https endpoint with POST /webhooks. Events like message.received are delivered there in seconds, signed with X-BlueReacher-Signature so you can verify every payload. Delivery states and reactions post the same way.

Can AI agents use it without writing an integration?

Yes. A hosted MCP server at /v1/mcp exposes send, read-thread, availability checking and more as native tools for Claude, Claude Code, Cursor and any other MCP client, from the same key a human replies from.

How do I get a key?

There is no self-serve checkout: every workspace is set up with you. Book a call and we provision your line, wire your webhook and hand over live and test keys.

Start building on blue bubbles

Read the docs, then book a call to get your line and your keys. Live and test keys, one webhook, no A2P registration.