Get an iMessage API key by texting a code

No form, no password, no card. Send and receive real iMessages over HTTP, and your first one lands on your own phone. Free for 100 messages a day.

$npx blueping

  • No credit card
  • No sales call
  • Data stored in the EU
  • Signed webhooks
9:41
MMaya

iMessage · Today 7:41 PM

Hey! Can I move my 7pm to 8?

Done. Table for two at 8:00 pm tonight.

Perfect, thank you

See you then!

+iMessage
await blueping.send({
  to: "+14155550132",
  text: "Done. Table for two at 8:00 pm tonight.",
});

From zero to your first message in a minute

K7Q2MX

Text a code

Open the start page and text the code it shows from your iPhone. That text is your signup.

bp_live_••••••••3AAW

Copy your key

It appears the moment your text lands. No password, no card, no sales call.

Hello from my app

Send to me

Your own iPhone is the contact me, so your first message lands in your pocket.

A small API that handles the hard parts

  • Idempotency keys so a retry never sends twice
  • Signed webhooks with automatic retries
  • Errors that say what to do, down to the link to share
  • Typed SDKs, a CLI and an MCP server

API reference

curl https://blueping.pages.dev/v1/messages \
  -H "Authorization: Bearer $BLUEPING_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"to": "me", "text": "Hello from my app"}'
import { Blueping } from "blueping";

const blueping = new Blueping(); // reads BLUEPING_API_KEY

await blueping.send({ to: "me", text: "Hello from my app" });
from blueping import Blueping

blueping = Blueping()  # reads BLUEPING_API_KEY

blueping.send(to="me", text="Hello from my app")
9:41
Blueping

iMessage · Today 7:38 PM

K7Q2MX

You're connected to Bella's Table on Blueping. Replies may be automated. Text HELP for help, STOP to unsubscribe.

Hi Maya! What time works for you tonight?

+iMessage

Every conversation starts with an opt-in

Each app gets a join link. People text your code once, then your app can reply and follow up in the same thread. No cold messages, ever.

  • STOP unsubscribes from every app at once
  • HELP and MENU are answered for you
  • Five messages in a row, then wait for a reply
  • Your contacts stay yours, other apps can't reach them

Use it from anywhere

Official SDKs, a CLI for your terminal and an MCP server for AI assistants.

Node.js

Typed client for Node, Bun, Deno and Workers, with webhook verification.

npm install blueping

Python

Client with no dependencies and webhook verification for Flask or FastAPI.

pip install blueping

CLI

Get a key, send a message and follow the thread from your terminal.

npx blueping

MCP server

Let Claude, Cursor or any MCP client text you and the people who joined.

npx blueping-mcp

Simple pricing

Free

$0per month

100 messages a day on the shared Blueping line. Webhooks, contacts, join links and every SDK included.

Dedicated number

Soon

Your own number, your name on the conversation and no shared limits.

Questions

Is there an official iMessage API?

No. Apple doesn't offer a public iMessage API. Blueping is an independent service that runs Apple's Messages app on a Mac and puts an HTTP API and webhooks on top of it.

Can I text anyone?

Only people who texted your code first. That text is their opt-in. After it, your app can reply and follow up, up to five messages in a row before they answer.

Does it work with Android?

No. Blueping sends iMessages, so the people you talk to need an iPhone, iPad or Mac. There is no SMS fallback.

How much does it cost?

The free plan is $0 with 100 messages a day per account on the shared line. Dedicated numbers aren't available yet.

How do I get replies?

Set a webhook and every reply arrives as a signed POST. Without a server, read the thread with GET /v1/messages.

Where is my data stored?

Account and message data are stored in the European Union on Cloudflare, and deleted from our database after 90 days.

Your first iMessage is one text away