Developer API

iMessage API for Developers

A simple REST API to send and receive iMessages. Integrate blue bubble messaging into any application in minutes.

Send an iMessage in Seconds

Pick your language. Copy the code. Send your first message.

cURL
curl -X POST https://api.texting.blue/v1/messages \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "+1234567890",
    "body": "Hello from Texting Blue!"
  }'
JavaScript
const response = await fetch("https://api.texting.blue/v1/messages", {
  method: "POST",
  headers: {
    "Authorization": "Bearer YOUR_API_KEY",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    to: "+1234567890",
    body: "Hello from Texting Blue!",
  }),
});

const message = await response.json();
console.log(message.id); // "msg_abc123"
Python
import requests

response = requests.post(
    "https://api.texting.blue/v1/messages",
    headers={
        "Authorization": "Bearer YOUR_API_KEY",
        "Content-Type": "application/json",
    },
    json={
        "to": "+1234567890",
        "body": "Hello from Texting Blue!",
    },
)

message = response.json()
print(message["id"])  # "msg_abc123"

API Endpoints

Everything you need to send, receive, and manage iMessage conversations.

POST /v1/messages

Send an iMessage to a phone number. Supports text, images, and rich links.

GET /v1/messages

List messages with filtering by conversation, date range, and status.

GET /v1/messages/:id

Get a single message by ID, including delivery status and timestamps.

GET /v1/conversations

List all conversations with the latest message and unread count.

POST /v1/webhooks

Register a webhook URL to receive real-time events for incoming messages and delivery updates.

Real-Time Webhooks

Receive incoming messages and delivery status updates in real time. Register a webhook URL and Texting Blue will POST events to your server as they happen.

Incoming webhook payload
{
  "event": "message.received",
  "data": {
    "id": "msg_xyz789",
    "from": "+1234567890",
    "to": "+0987654321",
    "body": "Hey, is my order shipped yet?",
    "timestamp": "2026-02-08T14:30:00Z",
    "conversation_id": "conv_abc123"
  }
}

message.received

New incoming iMessage

message.sent

Outgoing message confirmed

message.delivered

Delivered to recipient

Authentication

All API requests are authenticated with a Bearer token. Generate your API key from the Texting Blue dashboard and include it in the Authorization header of every request.

Authorization: Bearer tb_live_xxxxxxxxxxxxxxxxxxxxxxxx

Test Mode

Use tb_test_ keys to test your integration without sending real messages.

Live Mode

Use tb_live_ keys in production to send real iMessages to real phone numbers.

Start Building With the iMessage API

Get your API key in 60 seconds. Send your first message in under 5 minutes.