Review / Hosted API
Photon review
Agent-first, seven channels, SOC 2 Type II — and the only real free tier in the category.
Photon is the most developer-shaped vendor here, and the only one that is genuinely open-source-forward. Its platform is Spectrum: one SDK across iMessage, WhatsApp, Telegram, SMS/RCS, Discord, Slack and Instagram, using a persistent stream rather than webhooks you host and secure. It advertises SOC 2 Type II with HIPAA-compliant support available, publishes every price below Enterprise, and has a free tier with unlimited daily iMessage on a shared number — so you can build and test a real integration before paying anything.
What it is good at
- A genuinely usable free tier — unlimited daily iMessage on a shared number, up to 10 users. Nothing else in the category lets you build a real integration for nothing.
- Seven channels behind one SDK: iMessage, WhatsApp, Telegram, SMS/RCS, Discord, Slack and Instagram.
- A persistent stream instead of webhooks, so there is no public endpoint for you to host, secure and debug.
- SOC 2 Type II with HIPAA-compliant support available — which, with published pricing, is a combination nobody else offers.
- Open-source client tooling: an iMessage kit, an n8n community node and a Vercel Chat SDK adapter.
- Published, flat pricing with no setup fee and no per-message billing.
- Agent-oriented surface — mini apps, reactions, location sharing — rather than bulk-send framing.
Where it will bite you
- A long-lived streaming connection is a different operational model from webhooks; serverless infrastructure may need rethinking around it.
- Newer name than Sendblue or LoopMessage, with a correspondingly shorter public track record.
- **The tiers jump hard.** Dedicated lines, group messaging and cold outreach are all on Business at $250/line — the $25 Pro plan is a shared number.
- Cold outreach on Business is capped at 50 new contacts a day, which is a real ceiling for a sales team.
- Free and Pro put you on a shared number, so deliverability depends partly on other customers' behaviour.
What Photon claims
Reported as the vendor's own marketing claims. We have not independently reproduced these numbers, and neither should you treat them as benchmarks.
- Under 1 second end-to-end latency
- 99.95% uptime via edge-first infrastructure
- SOC 2 Type II compliant, HIPAA-compliant support available
The shape of the API
Illustrative — parameter names and endpoints change. Treat this as the flavour of the integration, and copy the real thing from the official docs.
import { Photon } from "@photon-ai/advanced-imessage"; const photon = new Photon({ projectId: process.env.PHOTON_PROJECT_ID!, apiKey: process.env.PHOTON_API_KEY!,}); await photon.messages.send({ to: "+15551234567", text: "Your table is ready — https://acme.co/t/91?utm_source=imessage&utm_medium=sms&utm_campaign=table_ready",}); // Inbound arrives on the same stream rather than a webhook you host.for await (const event of photon.events.stream()) { if (event.type === "message.received") await handle(event);}Tracking links with Photon
UTM note
The streaming model makes it easy to correlate a delivered message id with a click later — put the message id in your own store at send time and join on it rather than trying to encode it in the URL.
Whatever you send with, build the URL from one helper so tagging is consistent across every job and campaign. Open the UTM builder to generate one now.
Still weighing options?
The comparison table puts all five side by side.