ZeroSettle iMessage API

The most affordable dedicated iMessage API: $49/month

Written by ZeroSettle. This is our product page; the price table also lists other providers.

ZeroSettle Pro is $49/month for a dedicated iMessage number that can message first. No managed iMessage API we checked publishes a lower price for a dedicated number (checked October 25, 2026). Your server sends with one HTTPS call and receives replies on HMAC-SHA256-signed webhooks about 1–2 seconds after they reach your number; Growth is $599/month for 3 numbers.

Key takeaways

  • Price: Pro is $49/month flat, no per-message fees on API texts. Self-serve, no setup fee, month to month, 30-day money-back guarantee.
  • Price position: no managed iMessage API we checked publishes a lower price for a dedicated number. Courio also lists $49 (Starter: 500 outbound/month, then $0.02/message).
  • Main limit: Pro opens 5 new contacts a day per number, fewer than the 30–50 most $99+ plans allow; people who text first are never limited.
  • Reach: iMessage only. There is no SMS fallback; a first message to someone not on iMessage returns 422 not_on_imessage.
  • API: REST with a bearer token, HMAC-SHA256 signed webhooks, a live stream (SSE), and a remote MCP server at portal.zerosettle.io/mcp.

What is the ZeroSettle iMessage API?

ZeroSettle gives your business its own phone number on real iMessage, running on Apple hardware we operate in a server facility. The number is used only for iMessage. Your code sends from it with POST /api/imessage/send and hears every reply on a signed webhook, so customers on iPhone see blue bubbles, your brand name and photo, typing indicators and tapbacks. For background, see what an iMessage API is.

ZeroSettle iMessage API at a glance (API docs, checked October 25, 2026)
ItemZeroSettle
NumberA dedicated phone number on iMessage that can message first
PricePro $49/month (1 number); Growth $599/month (3 numbers, +$199/month per extra number)
Per-message feesNone on API texts
SignupSelf-serve for Pro; no setup fee; month to month; 30-day money-back guarantee
New contactsPro: 5 a day per number. Growth: 50 a day per number. People who text first never count.
Messages with known contactsUp to 10,000 a day per number, sent and received
SendPOST /api/imessage/send with a bearer token; text up to 4,000 characters, photos with captions, voice messages, polls
ReceiveHMAC-SHA256 signed webhooks, about 1–2 s after the number receives a text; a live stream (SSE); GET /api/imessage/messages
SMS fallbackNo: 422 not_on_imessage
MCPhttps://portal.zerosettle.io/mcp (Streamable HTTP, OAuth 2.1)
Hosted AI agentOptional; 500 credits a month on Pro, 1,000 on Growth (one credit per text it sends)

How much does the ZeroSettle iMessage API cost?

Pro costs $49/month for one dedicated number and Growth costs $599/month for three. Both are billed monthly by Stripe with a 30-day money-back guarantee: ask within 30 days and you are refunded in full and the subscription is cancelled.

ZeroSettle iMessage API plans (API docs, checked October 25, 2026)
ProGrowth
Price$49/month$599/month
Numbers included1 dedicated number3 numbers that work as one
Extra numbersCan be added, billed monthly$199/month each
New contacts a day5 per number50 per number (and 3 per 15 minutes)
Messages with known contacts10,000 a day per number10,000 a day per number
AI credits500 a month1,000 a month
How to sign upSelf-serveFrom a Growth link (book a demo to get one)

Pro is $49/month flat, no per-message fees on API texts. Credits pay for the hosted AI agent, one per text it sends; texts your own server sends through the API never use any. Packs are 1,000 for $50 or 5,000 for $200, paid once, and never expire. The money-back guarantee covers the subscription, not packs. More on plans in ZeroSettle pricing.

How does $49/month compare with other iMessage APIs?

ZeroSettle Pro is $49/month for a dedicated iMessage number that can message first. No managed iMessage API we checked publishes a lower price for a dedicated number (checked October 25, 2026). Courio also lists $49 (Starter: 500 outbound/month, then $0.02/message). Cheaper offers exist, but they are shared numbers or run on hardware you supply.

Published monthly prices, from each vendor's own pages (checked October 25, 2026)
ProviderKind of numberLowest published monthly priceSetup and notes
ZeroSettle ProDedicated, can message first$49No setup fee; 5 new contacts a day per number
Courio StarterDedicated$49500 outbound a month, then $0.02 a message; a new provider
Miss BlueDedicated$99 sale price ($198 regular)$479 setup per line, $0 if started before October 31
LoopMessage LightDedicated, with the number and send-first add-onsAbout $104.99About $60 in one-time add-on fees
SendiMessageDedicatedFrom $129 per lineOnboarding scope set during review
Tuco AIDedicatedFrom $149$335 one-time setup
Project BlueDedicated$166 per line billed annually; $199 monthly on a 12-month commitmentSetup waived; demo required
Blue ReacherDedicated$249 per line (or $1,949 a year)$449 activation, waived on annual
SendaraDedicated$249 first line, $149 each extra$99 setup (from its own guide page)
Photon BusinessDedicated$250 per line—
Linq ProDedicated“Starting at $260/mo”7-day trial
Blooio Commercial DedicatedDedicated$289 per lineNo setup fee
ConduitDedicated (resold Linq or Sendblue numbers)$300 per numberPaid annually
Texting Blue LiteYour own iPhone and number$19 per numberUp to 100 messages a day
LoopMessage shared senderShared$2050 monthly contacts, for AI assistants
Photon ProShared pool$25Up to 100 users
myCRMSIMYour own Mac, iPhone and SIMAbout $29 per line (from press reports)Plus your own hardware and carrier plan
Blooio StarterShared$395 new contacts a day
Blooio InboundDedicated, reply-only$98Cannot start new conversations
Sendblue AI AgentDedicated, inbound-first$100Full outbound is on Enterprise, custom price
BlueBubblesSelf-hosted on your own MacFree (optional Pro from $3/month)Your Mac, Apple ID and number

Prices are each vendor's own published figures in US dollars. Sendara's figures come from its own guide page; myCRMSIM's pricing page could not be read, so its figure comes from press reports. More detail is in iMessage API pricing compared and the most affordable dedicated iMessage API.

The $49 price does not come with a larger allowance. Pro opens 5 new contacts a day per number, fewer than the 30–50 most $99+ plans allow; people who text first are never limited. If you need more first messages a day, Growth or a 30–50-a-day plan fits better; if you need SMS fallback for Android, Sendblue, Linq or LoopMessage offer it.

What are the limits?

The limits keep a number out of Apple's spam filters, and the API enforces them for every caller, the console included.

  • New contacts: 5 a day per number on Pro, 50 a day (and 3 per 15 minutes) on Growth, reset at 3 AM Eastern. Over the limit, a send returns 429 new_contact_limit.
  • Known contacts: anyone who texted first, and every ongoing conversation, share the number's 10,000 messages a day.
  • Unanswered messages: at most 2 to a contact who has never replied; a third returns 403 awaiting_reply.
  • Attachments wait for a reply: photos, voice messages and polls go only to contacts who have replied at least once (403 attachment_before_reply).
  • iMessage only: no SMS or email fallback; 422 not_on_imessage means nothing was sent.
  • STOP: a contact who texts STOP is blocked on every number on the account (403 recipient_opted_out).
  • One send at a time per number: a send that waits about 12 seconds returns 429 line_busy; retry after 2 seconds.

Every error code is in Errors, limits, and compliance.

What do a send and a webhook look like?

A send is one HTTPS POST with a bearer token (Send a message). It returns once the number has handed the message to Apple, normally in 2–5 seconds.

bash
curl -s -X POST -H "Authorization: Bearer $TOKEN" -H 'Content-Type: application/json' \
  -d '{"to":"+18055559876","text":"Hi from the line"}' https://portal.zerosettle.io/api/imessage/send

A reply reaches your webhook as compact JSON with sorted keys, signed in the X-ZeroSettle-Signature header:

http
POST https://abc123.trycloudflare.com/webhook
Content-Type: application/json
User-Agent: ZeroSettle-iMessage/1
X-ZeroSettle-Event: message.received
X-ZeroSettle-Signature: t=1757400012,v1=3f0c…(64 hex chars)

{"event":"message.received","message":{"direction":"in","guid":"5A6F…","handle":"+18055559876","id":44,"status":"received","text":"hey!","ts_ms":1757400012000}}

The signature is HMAC-SHA256 with your webhook secret over "<t>." + raw body. Verify the raw bytes before parsing and reject a t more than 300 seconds from now (Webhooks, step by step):

python
import hmac, hashlib, time

def verify(secret: str, header: str, raw_body: bytes, tolerance: int = 300) -> bool:
    try:
        parts = dict(p.split("=", 1) for p in header.split(","))
        t, v1 = int(parts["t"]), parts["v1"]
    except Exception:
        return False
    if abs(time.time() - t) > tolerance:
        return False
    expected = hmac.new(secret.encode(), f"{t}.".encode() + raw_body, hashlib.sha256).hexdigest()
    return hmac.compare_digest(expected, v1)

Answer 2xx within 10 seconds; otherwise ZeroSettle retries 3 more times, after 1, 5 and 20 seconds. React only to message.received in an auto-responder, because your own sends come back as message.sent. How to receive iMessages with a webhook covers retries and dedupe, and how to send an iMessage from code without a Mac covers the errors.

What can a ZeroSettle number send and receive?

Beyond text, a number handles most of what people use in Messages:

  • Photos with captions and voice messages, both ways (Attachments).
  • Tapbacks and typing indicators, both ways (Typing indicators).
  • Inline replies, 13 iMessage effects and polls (Send a message).
  • Chat backgrounds on iOS 26, received as a background.changed event.
  • Your brand name and photo, shared with each conversation.
  • Several numbers working as one behind one API key and webhook (Your iMessage number).
  • Group chats of up to 31 people, enabled per number on request (Group chats).
  • Sign in with iMessage: verify a user by the iMessage they send (Sign in with iMessage).

Can an AI agent set it up or answer texts?

Yes, both. ZeroSettle runs a remote MCP server at https://portal.zerosettle.io/mcp, speaking Streamable HTTP with OAuth 2.1 (dynamic client registration and PKCE). Connected to Claude, Cursor or any MCP client, the agent can sign you up, set your name and photo, mint an API key, register and test your webhook, and send a test message to your own number. It is a setup tool: the server you build owns the conversation with your customers. See Connect your AI agent, MCP and connecting Claude Code or Cursor to an iMessage number.

With no server at all, the hosted AI agent answers your number for you from the business context you write, using one credit per text it sends (AI agent).

Where is the full API reference?

The docs are at portal.zerosettle.io/docs, and agents can read the raw markdown at https://portal.zerosettle.io/docs.md. Each page has its own URL:

  1. Your iMessage number: plans, getting a number, and more than one number
  2. Authentication: bearer tokens and what 401, 402 and 403 mean
  3. Quick start for an agent: the whole API in a few curl calls
  4. Send a message: texts, inline replies, effects, polls, and your name and photo
  5. Attachments: photos and voice messages, both ways
  6. Read messages: conversations and message history
  7. Typing indicators: show and receive “…”
  8. Retention offers: a worked use case
  9. Customer support: a worked use case
  10. Sign in with iMessage: verify a user by the iMessage they send
  11. AI agent: your own model, or the hosted agent with no server
  12. Webhooks, step by step: events, signing, retries
  13. Live stream (SSE): watch a number in real time
  14. Connect your AI agent: Claude, Cursor or any MCP client
  15. MCP: every tool the connector exposes
  16. Errors, limits, and compliance: every error code and limit
  17. CRM integrations: log conversations in your CRM
  18. Group chats: groups of up to 31 people, enabled per number on request
  19. Switch from Photon: a migration guide
  20. Switch from Linq: a migration guide
  21. Switch from Sendblue: a migration guide

How do I get a number?

  1. Open Get started and sign in with your phone number (you get a one-time SMS code).
  2. Answer one question about what you will use the number for. That claims the number.
  3. Set your brand name and photo, and text your own phone a test message from the new number.
  4. Subscribe. The console and the API open once the subscription is active.

Numbers can sell out; when they do, there is a waitlist. Growth customers sign up from a Growth link instead.

How we checked

We checked everything on this page on October 25, 2026.

  • ZeroSettle facts come from its API docs, and we confirmed that each docs page linked above loads.
  • Competitor prices come from each vendor's own pricing page. Courio's page renders in the browser, so we read its prices from the site's own script; Sendara's come from its own guide because its pricing page did not load; myCRMSIM's come from press reports. We tested no competitor accounts.

Prices change often. We log changes to this page in the changelog.

Frequently asked questions

How much does the ZeroSettle iMessage API cost?

Pro is $49/month for one dedicated iMessage number that can message first. Growth is $599/month for 3 numbers that work as one, plus $199/month for each number past three. Both are month to month with no setup fee, no per-message fees on API texts, and a 30-day money-back guarantee on the subscription.

Is $49/month the lowest price for a dedicated iMessage number?

No managed iMessage API we checked publishes a lower price for a dedicated number (checked October 25, 2026). Courio, a newer provider, also lists $49, with 500 outbound messages a month and then $0.02 a message. Shared numbers (Photon $25, Blooio $39, LoopMessage $20) and tools that run on your own iPhone or Mac (Texting Blue $19, BlueBubbles free) cost less, but they are not a dedicated number someone else runs for you.

How many people can a Pro number message first?

Five new contacts a day per number, reset at 3 AM Eastern. That is fewer than the 30 to 50 a day most $99+ plans allow. People who text your number first, and ongoing conversations, never count toward it; each number handles up to 10,000 messages a day with known contacts. Growth allows 50 new contacts a day per number.

Does ZeroSettle fall back to SMS for Android phones?

No. ZeroSettle is iMessage only. A first message to someone who isn't on iMessage returns 422 not_on_imessage, and nothing is sent, so keep another channel for those customers.

Do I need a Mac or an iPhone?

No. ZeroSettle runs your number on Apple hardware we operate in a server facility. Your server only makes HTTPS requests and receives webhooks, from any language.

Can I try it before paying?

Before you subscribe you can set your name and photo and send a test message from your new number to your own phone. After you subscribe, Pro has a 30-day money-back guarantee: ask within 30 days and you are refunded in full and the subscription is cancelled. Credit packs are not covered.

Can Claude or Cursor set it up for me?

Yes. Add the remote MCP server at https://portal.zerosettle.io/mcp (Streamable HTTP, OAuth 2.1). The agent can sign you up, mint an API key, register and test your webhook, and send a test message to your own number. It is a setup tool; the server you build owns the conversation with your customers.

Sources

  1. ZeroSettle iMessage API docs: "Your iMessage number", "Send a message", "Attachments", "Webhooks, step by step", "Connect your AI agent", "Group chats" and "Errors, limits, and compliance". Checked October 25, 2026.
  2. ZeroSettle iMessage API Terms of Service. Checked October 25, 2026.
  3. Courio home page, Courio. Checked October 25, 2026.
  4. Pricing, Miss Blue. Checked October 25, 2026.
  5. Pricing, LoopMessage. Checked October 25, 2026.
  6. SendiMessage home page, SendiMessage. Checked October 25, 2026.
  7. Pricing, Tuco AI. Checked October 25, 2026.
  8. Our pricing, Project Blue. Checked October 25, 2026.
  9. Pricing, Blue Reacher. Checked October 25, 2026.
  10. iMessage API buyer's guide, Sendara. Checked October 25, 2026.
  11. Pricing, Photon. Checked October 25, 2026.
  12. Pricing, Linq. Checked October 25, 2026.
  13. Pricing and pricing.md, Blooio. Checked October 25, 2026.
  14. iMessage pricing, Conduit docs. Checked October 25, 2026.
  15. Texting Blue home page, Texting Blue. Checked October 25, 2026.
  16. myCRMSIM launch coverage, MarTech Series. Checked October 25, 2026.
  17. Pricing, Sendblue. Checked October 25, 2026.
  18. Pricing, BlueBubbles. Checked October 25, 2026.

Changelog

  • First published, with prices checked the same day.

Written by the ZeroSettle team. ZeroSettle is an iMessage API: a real phone number on real iMessage, running on Apple hardware we operate for you, that your code texts customers from and hears back on through a bearer token and signed webhooks. ZeroSettle is not affiliated with, endorsed by, or sponsored by Apple Inc.

Drafted with AI assistance from ZeroSettle's API docs and vendors' own pages, as of October 25, 2026.

Text your customers from your own iMessage number

ZeroSettle gives your business its own phone number on real iMessage, running on Apple hardware we operate for you in a server facility. Your code sends with one API call and hears every reply on a signed webhook.

Pro is $49 a month with a 30-day money-back guarantee. Growth is $599/month for 3 numbers that work as one.