Photon
photon.codesAn 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.
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.
- Create the free sandbox account and send a message to your own phone.
- Check what share of your customer list is actually on iPhone — your CRM may already know.
- Write the three messages you would send most often, and read them out loud.
- Tag the links in them before the first send, not after.
- Run one play on a slice of your list and compare it to what you send today.
Independent guide, commercial links
We are not affiliated with Photon. Links to providers on this site carry tracking parameters that identify us as the referrer. Everything above comes from Photon’s own public pages, and vendor marketing figures are labelled as such rather than presented as findings.
Compare with the alternative
SendblueA REST API for sending and receiving real iMessages, with SMS and RCS fallback.Miss BlueA virtual iMessage line with a REST API and a shared team inbox on top of it.
LoopMessageAn omnichannel API covering iMessage, SMS, RCS and WhatsApp behind a single number — but no cold outbound.
BlooioMessaging infrastructure across iMessage, RCS and SMS, sold on delivery reliability and instantly available pre-warmed numbers.
Tuco AIA managed, CRM-native iMessage service that fires the moment a lead converts — sold with white-glove setup rather than as raw API access.- Full comparison table
Before you decide
Worth reading first
Best iMessage API in 2026
Sendblue, Miss Blue, LoopMessage, Blooio and Tuco AI, compared on price, capability and who each one actually suits. Including which to avoid for cold outreach.
12 min readComparisonsSendblue vs Miss Blue
The two most-compared iMessage APIs make opposite bets — one is a developer platform, the other ships an inbox. Here is how to tell which one you are.
8 min readStrategyThe economics of a per-line plan
Why iMessage providers charge per phone line rather than per message, what that means for a small sender, and how to work out whether a line pays for itself.
7 min readOperationsYour first automation
From sandbox account to a working triggered message, including the tagging, the reply handling, and the decisions that are easier to make before you write any code.
10 min readOperationsOpt-ins that hold up
The consent you collect is the consent you can prove. Here is what a defensible opt-in looks like at each place a small business touches a customer.
8 min readOperationsWhy numbers get flagged
Lines go quiet for reasons that are mostly predictable and mostly preventable. Here is what triggers it and what to do while it is happening.
7 min read