Skip to content
iMessage APIs
All answers

Apple's position

What is Apple's iMessage API?

Apple has no iMessage API in the sense developers mean. It publishes the Messages framework for building iMessage apps, MessageUI for pre-filling a compose sheet the user sends, SiriKit intents for your own messaging service, and Apple Messages for Business for customer-initiated conversations. None of them send an iMessage to an arbitrary number from your server.

What each one really does

  • Messages frameworkMSMessagesAppViewController, MSMessage, MSSticker. Builds the apps in the drawer above the keyboard. MSConversation.insert(_:) puts content in the compose field; the user still taps send. This is the single most misread method in Apple's messaging docs.
  • MessageUIMFMessageComposeViewController presents the system compose sheet with recipients pre-filled. Your app cannot dismiss it, send it, or read what the user changed.
  • SiriKitINSendMessageIntent lets Siri send through *your* app. A hook into your service, not into Apple's.
  • Messages for Business — a genuine REST API, officially sanctioned, and inbound-only. Full guide.

The pattern

Every framework keeps a human or a prior customer action in the loop. Consistency at that level is a policy, not an oversight — and it is why searching Apple's developer site for the endpoint you want will never find it.

The complete breakdown of each framework, and what to use instead if you need to send first.

Things people assume exist, and do not

AssumptionReality
An entitlement you can requestNo such entitlement exists in the developer portal
A partner tier with private accessNo. Even large CPaaS vendors have none
An enterprise agreement that unlocks itNo. Enterprise programmes cover internal distribution, not iMessage
A private API used by approved vendorsNo. Third-party providers run Apple devices and accounts themselves
It is coming soonNo public signal. Apple adopted RCS instead, which is telling

What you can officially build

  1. An iMessage app — rich interactive content inside a conversation the user already has open. Genuinely good for what it does.
  2. A compose-sheet integration that pre-fills a message the user sends themselves.
  3. Messages for Business, through an approved CSP, for inbound customer conversations. What that involves.

If you need to send first

There is no official route, and no amount of searching the developer site will produce one. Your options are a third-party provider that operates outside Apple's terms, or a different channel. Both are legitimate choices; pretending the first is sanctioned is not. The honest framing.

Pick by what you need to do

You need toBuild againstCaveat
Send to any number from a serverA third-party REST providerUnofficial; per-line pricing
Respond to inbound customer messagesMessages for BusinessOfficial; weeks to onboard
Put rich UI in a thread the user has openApple's Messages frameworkUser taps send
Automate your own machineAppleScript or ShortcutsNo delivery signal, personal Apple ID
Run it yourself on your own MacBlueBubbles or a Matrix bridgeYour uptime, your Apple ID

Do you need an SDK?

Almost certainly not. Third-party providers expose small REST APIs — send, status, webhook — and a hand-written client is about forty lines with no supply chain attached. Check any provider SDK's last publish date before depending on it; a package quiet for two years is common here and is a warning rather than a sign of stability.

Working Node.js client, Python client, and the developer hub.

This page also answers

  • official apple imessage api for developers
  • imessage developer api