Skip to content
iMessage APIs
All providers

An agent-first iMessage API with an open-source TypeScript SDK and prices published in the open.

Overview

Almost everything else in this category is sold as outreach infrastructure: send more messages to a list, get more replies. Photon is sold as a place to put an agent, and the product reflects that — the SDK is an event loop over inbound messages rather than a send endpoint with a webhook bolted on.

The iMessage feature list is the longest we have seen anywhere: group chats, tapback reactions, typing indicators, threaded replies, voice notes, polls, contact cards, live location, custom conversation backgrounds, and interactive mini apps rendered inside the thread. Some of those exist nowhere else in this comparison.

The commercial shape is unusual too. Free and Pro tiers run on managed shared lines, so you can build and even run small workloads without a dedicated number; dedicated lines start at the Business tier. And prices are on the pricing page rather than behind a form, which makes Photon a useful benchmark when you are trying to judge whether a quote from a competitor is reasonable.

The caveats are about evidence rather than capability. Their security language is that the platform is "built to meet SOC 2 standards" — which is not the same as holding a SOC 2 Type II report, and if a security review is your blocker that distinction is the whole conversation. Their site also states two different uptime figures in two places. Neither is disqualifying; both are worth resolving before you sign.

What stands out

What Photon does well

The deepest iMessage feature surface here

Polls, voice notes, threaded replies, live location, contact cards, custom conversation backgrounds and interactive mini apps, alongside the usual reactions and typing indicators. Several of these appear on no other provider in this comparison.

An open-source SDK, MIT licensed

spectrum-ts is public on GitHub with around 1.5k stars and active commit history. You can read exactly what it does before depending on it, and self-host the stack instead of using the managed cloud.

Prices published in the open

Free, $25/month, $250 per line per month, then custom. In a category where most vendors quote through sales, this is the reference point that tells you whether someone else's number is fair.

A published cold-outreach cap

Around 50 new contacts a day on the Business tier. Stating a limit rather than implying unlimited sending is a good sign, and it matches what a safe warm-up actually looks like.

Pick Photon if

  • Developers putting an AI agent into a real messaging thread rather than a chat widget.
  • Products that need more than one channel — the same SDK covers WhatsApp, Telegram, Slack and Discord.
  • Anyone who wants to prototype at zero cost before committing to a line.
  • Teams who need the deep iMessage surface: group threads, polls, mini apps, voice notes.
  • Buyers who want a published price to benchmark other vendors against.

Look elsewhere if

  • A small business wanting a shared inbox and appointment reminders — there is no inbox product here.
  • Non-technical teams. This is an SDK, and the SDK is the point.
  • Procurement that requires a SOC 2 Type II report in hand rather than SOC 2-aligned practices.
  • High-volume cold outreach: the Business tier publishes a cap of around 50 new contacts a day.

The API

Run an agent on iMessage

Note the link in the message body — it carries UTM parameters, so when the customer taps it the visit is attributed to this exact campaign instead of vanishing into direct traffic.

From public docs
How the tagging works
typescript
import { Spectrum } from "spectrum-ts";
import { imessage } from "spectrum-ts/providers/imessage";

const app = await Spectrum({
  projectId: process.env.PROJECT_ID,
  projectSecret: process.env.PROJECT_SECRET,
  providers: [imessage.config()],
});

for await (const [space, message] of app.messages) {
  await space.responding(async () => {
    await message.reply("Hello from Spectrum.");
  });
}

From Photon's own spectrum-ts documentation and repository. Inbound arrives as an async iterator rather than a webhook, which is the clearest signal of who this product is built for.

Pricing

What Photon costs

Published on their pricing page and checked August 2026. Note the line model: Free and Pro are managed shared lines, so the number is not durably yours — dedicated lines begin at Business. A separate on-device package (@spectrum-ts/imessage-local) lets you run through a Mac and Apple ID you control instead, which is genuinely free and carries the usual personal-Apple-ID exposure.

Free

$0

Managed shared line, up to 10 users. Enough to build and test properly.

  • Full direct-messaging iMessage API access
  • Unlimited daily messages
  • RCS and SMS fallback
  • Managed shared line
  • Community support

Pro

$25/month

Same shared-line model, up to 100 users, faster support.

  • Everything in Free
  • Up to 100 users
  • Community support with fast-track ticketing

Business

$250/line per month

Dedicated lines, full group messaging, and your own mini apps.

  • Dedicated managed iMessage lines
  • Full group messaging API access
  • Bring your own iMessage mini apps
  • Cold outreach up to ~50 new contacts per day
  • Dedicated Slack and Discord support channel

Enterprise

Custom

You own the numbers, with the lowest throttling and priority support.

  • Everything in Business
  • You own the phone numbers
  • Lowest throttling
  • Priority support with a dedicated channel

Last checked August 2026.

Feature checklist

Capabilities

  • Outbound iMessage
  • Two-way replies
  • SMS / RCS fallback
  • Group chats
  • Typing indicators
  • Read receipts(not stated)
  • Reactions / tapbacks
  • Rich media
  • Webhooks(limited)
  • Shared team inbox
  • Dedicated number
  • Free sandbox

Before you commit

Do this first

The sandbox is free on every provider in this category. There is no reason to sign a contract before you have sent yourself a message.

  1. Create the free sandbox account and send a message to your own phone.
  2. Check what share of your customer list is actually on iPhone — your CRM may already know.
  3. Write the three messages you would send most often, and read them out loud.
  4. Tag the links in them before the first send, not after.
  5. Run one play on a slice of your list and compare it to what you send today.