Photon vs ZeroSettle

Compare Photon and ZeroSettle side by side: iMessage features, channels, developer tools, pricing and compliance, checked on each provider's own site.

Photon

Open-source agent framework with managed iMessage
Starting price
$25/month (Pro)
Free plan
Free: shared iMessage lines, up to 10 users (2.0 beta: 25 shared iMessage assignments and $100 credit)

ZeroSettle

Managed iMessage numbers with a REST API and webhooks
Starting price
$49/month (Pro, one number)
Free plan
None. 30-day money-back guarantee instead.

Photon supports 75 of the 77 features compared here, and ZeroSettle supports 33.

Feature comparison

FeaturePhotonZeroSettle
iMessage messaging
iMessage
SupportedManaged cloud lines, or your own Mac with the local provider
Supported
Group chats
SupportedOn the Business plan (dedicated lines)
PartialUp to 31 people. Turned on per number by ZeroSettle support on request.
Group management
SupportedCreate groups and add, remove or leave members; Business plan (dedicated lines)
SupportedCreate, rename, add, remove and leave. Needs group chats turned on for the number.
Group name and photo
SupportedRename groups and set group photos; Business plan (dedicated lines)
PartialGroup name can be set by API; group photo changes are only received as events.
Mentions
SupportedSend @mentions in multipart messages and read mention ranges on inbound
Not listed
Tapbacks
SupportedSix native tapbacks plus emoji reactions, send and receive
SupportedSix classic tapbacks: send, remove and receive through reaction webhooks.
Threaded replies
Supported
Supportedreply_to on texts, photos, videos and polls, not on voice messages.
Typing indicators
Supported
SupportedSend, and receive as opt-in webhook events, in direct and group chats.
Read receipts
SupportedMark chats read and receive read events; group receipts are best-effort
Not supportedDocs: no read or delivered events; a send that returns 200 has only reached Apple.
Edit and unsend
SupportedEdit within 15 minutes and unsend within 2 minutes (Apple limits)
Not supportedDocs: edit and unsend have no ZeroSettle equivalent.
Message effects
SupportedAll bubble and screen effects, including invisible ink
Supported13 bubble and screen effects, including invisible ink.
Animated text effects
SupportedPer-range effects such as bloom, shake, explode and jitter
Not listed
Stickers
SupportedPlace image stickers on any bubble with position, scale and rotation; sticker events inbound
Not listed
Formatted text
SupportedMarkdown rendered as native bold, italic, underline and strikethrough
Not listed
Attachments
SupportedFiles up to 100 MiB by default, including Live Photos
PartialPhotos, videos (10 credits each) and voice messages only; documents cannot be sent.
Live Photos
SupportedHEIC still plus MOV companion uploaded as one Live Photo
Not listedInbound Live Photos arrive as stills; sending is not documented.
Rich link previews
Supportedrichlink() asks Messages to render its own preview
Not listed
Voice messages
Supported
SupportedNative audio bubble, sent and received.
Contact cards
SupportedvCard or structured contacts, plus the bot's own native contact card
Not supportedDocs: contact cards cannot be sent.
Polls
SupportedCreate, vote, add options and receive poll events; all managed plans
SupportedSend polls, read live results and receive poll.voted events. Only after the contact replies.
Chat backgrounds
Supported
SupportedSet or remove (preset or custom image) and receive background.changed events.
Location sharing
SupportedFind My requests and live location; Business plan
Not supportedDocs: locations cannot be sent.
iMessage apps
SupportedCustom and live app cards; iMessage mini apps on the Business plan
Not supportedDocs: Sendblue app cards have no ZeroSettle equivalent.
Live app cards
SupportedEdit an app card in place and render live UI without a new bubble
Not supportedNo iMessage app support.
Sender name and photo
SupportedShares the agent's name and photo automatically; Business plan
SupportedBrand name and photo set by API and shared automatically with each new conversation.
FaceTime calls
Not listed
Not supportedDocs: the number exists only for iMessage.
Delivery status
SupportedSent, delivered, read and send-error fields per message
PartialSent and failed only; what happens after Apple accepts a message is not visible.
iMessage availability check
SupportedCheck if a number or email can get iMessage, SMS or RCS before sending
Not supportedNo lookup endpoint; a first send to a non-iMessage handle returns 422 and sends nothing.
Focus and Notify Anyway
SupportedCheck if a recipient has Focus on, then trigger Notify Anyway
Not listed
Numbers and delivery
Managed lines
SupportedSpectrum Cloud runs the Mac fleet; no Mac needed
SupportedNumbers run on Apple hardware ZeroSettle operates in a server facility.
Dedicated numbers
Supported$250 per line per month on Business
SupportedEvery plan includes your own number; more can be added from the console or API.
Shared numbers
SupportedFree and Pro route each user through a managed shared pool
Not listed
Bring your own number
SupportedYour own Apple ID when self-hosting on a Mac, and your own number for WhatsApp Business
Not supportedTerms: lines are provisioned, owned and controlled by ZeroSettle. No porting offered.
Line pooling
SupportedBusiness: auto-scale adds lines and a routing endpoint balances users
SupportedSeveral numbers work as one: new contacts go to the line with most room left.
SMS fallback
SupportedOn every plan per pricing; carrier rules apply to fallback traffic
Not supportedDocs: iMessage only, with no SMS fallback.
RCS fallback
Supported
Not supportedDocs: iMessage only, with no RCS fallback.
Outbound-first messaging
SupportedBusiness plan, up to 50 new contacts per line per day
Partial5 new contacts a day on Pro, 50 on Growth; at most 2 messages before a first reply.
Calls on the iMessage number
SupportedPlace and receive SIP calls from the line people already text
Not supportedDocs: the number exists only for iMessage.
Other channels
SMS
BetaStandalone SMS and MMS numbers with 10DLC in the 2.0 beta; SMS fallback on iMessage lines today
Not supportedNo SMS channel; iMessage only.
RCS
PartialSent on the iMessage line when the recipient cannot get iMessage
Not supportedNo RCS channel; iMessage only.
WhatsApp
SupportedWhatsApp Business, one-to-one, on the Business plan
Not supportedNot offered
Telegram
Supported
Not supported
Slack
Supported@spectrum-ts/slack provider on npm and GitHub
Not supportedNot offered as a channel; docs show a Slack relay you build yourself.
Email
BetaYour own domain with DKIM, SPF and inbound MX in the 2.0 beta
Not supportedNot offered. iMessage can be sent to Apple ID email handles.
Phone calls
SupportedSIP calls on iMessage lines; the 2.0 beta adds calls on SMS numbers
Not supportedNot offered
Apple Messages for Business
BetaListed as available in the 2.0 beta
Not supported
Unified channel API
SupportedOne Spectrum SDK across channels, and one REST model in the 2.0 beta
Not supportedSingle channel
Developer tools
REST API
SupportedREST API for projects and lines; sending over REST in the 2.0 beta
SupportedBearer-token REST API.
TypeScript SDK
Supportedspectrum-ts, plus low-level iMessage and WhatsApp SDKs
Not supportedDocs tell integrators to use plain HTTPS and JSON, no SDK.
Python SDK
Betaphotonhq-api on PyPI, for the 2.0 beta API
Not supported
Other SDKs
SupportedGo client for Advanced iMessage; Rust and Go clients for the 2.0 API
Not supported
CLI
Supported@photon-ai/cli manages projects, lines, users and billing
Not listed
Webhooks
Supported
SupportedOne URL gets message, reaction, poll, background, group and opt-in typing events.
Signed webhooks
SupportedHMAC-SHA256, plus Standard Webhooks signatures
SupportedHMAC-SHA256 over timestamp and raw body, 300 s tolerance.
MCP server
SupportedHosted MCP server, plus an MCP server for the docs
SupportedRemote MCP server with OAuth 2.1, mainly for setup and testing; adds group and agent tools.
Open source
SupportedMIT: spectrum-ts, imessage-kit and most SDKs
Not supportedProprietary hosted service; terms reserve all rights to the software.
Self-hosting
SupportedRun the open-source core on your own Mac and number, no Spectrum Cloud
Not supportedHosted only; lines run on hardware ZeroSettle owns and controls.
Local testing
SupportedTerminal chat UI provider, no phone or number needed
Partialtest_webhook sends a signed synthetic event; the operator can push simulated inbound events.
Custom channel providers
SupporteddefinePlatform plugs any interface into the same Spectrum API
Not listed
Event replay
SupportedCatch up on events after a disconnect from a durable sequence
PartialWebhooks retried 3 times, no replay; catch up by paging messages with after_id.
OpenTelemetry
SupportedOpt-in messaging traces in spectrum-ts, and traces in the 2.0 beta dashboard
Not listed
No-code integrations
Supportedn8n community nodes and a Dify plugin
SupportedZapier app with triggers and actions, and a GoHighLevel app.
CRM integrations
Not listed
SupportedClose, HubSpot and GoHighLevel apps. Group messages are not logged in Close or HubSpot.
Built for AI agents
Agent framework
SupportedSpectrum is a multi-channel agent framework with streaming replies
BetaHosted AI agent (Beta) with business context, triggers, files and MCP tools; no code framework.
Agent framework integrations
SupportedVercel Chat SDK, Mastra, LangChain, Convex and others
Not listed
Streaming replies
SupportedAI output streams into one iMessage bubble, edited in place
Not supportedNo message editing, so a reply cannot be streamed into one bubble.
Agent group chats
BetaAgents find other agents and add them to a group chat (2.0 beta)
Not listedThe hosted agent never replies to other ZeroSettle numbers; API use is not documented.
Human handoff
BetaA person can reply in a conversation from the 2.0 beta Inbox
PartialTeam can answer in the console; the hosted agent is on or off per line group, no per-thread takeover.
Audit logs
BetaAPI logs and traces in the 2.0 beta dashboard
Not listed
Message history API
SupportedList and get messages per chat
SupportedCursor-paged history of every message in both directions.
Plans and compliance
Free plan
SupportedUp to 10 users on shared lines
Not supportedNo free trial; a 30-day money-back guarantee instead.
Public pricing
Supported
Supported
No per-message fees
SupportedNo per-message fees for iMessage, WhatsApp or Telegram; SMS, voice and email are metered in the 2.0 beta
SupportedFlat per number. Videos and hosted-agent texts use included credits.
Uptime SLA
SupportedContractual SLA on the Enterprise plan
Not supportedHomepage cites 99.9% uptime, but ZeroSettle says it publishes no SLA.
Isolated infrastructure
SupportedEach line runs in an isolated, dedicated environment
PartialDocs refer to each number's own phone; the API and console are shared.
SOC 2 Type II
SupportedStated on photon.codes
Not listedEnterprise plan lists 'SOC 2, DPA and security reviews'; no report or type is stated.
GDPR
SupportedPrivacy policy covers GDPR rights and SCC transfers
PartialPrivacy policy covers EEA and UK rights and SCC transfers; a DPA is listed for Enterprise.

Checked on each provider's own site and docs on 2026-10-25. “Not listed” means the provider does not mention it.

Pricing

Photon

Free plan, Pro at $25/month, Business at $250 per dedicated line per month, and custom Enterprise; the 2.0 beta adds metered SMS, voice and email.

Pricing model: plan tiers plus flat fee per dedicated line

Source

ZeroSettle

Pro is $49 a month for one number, Growth is $599 a month for three numbers plus $199 for each extra, and Enterprise is custom, all with a 30-day money-back guarantee.

Pricing model: flat per number, no per-message fees; credits for hosted-agent texts and videos

Source

Which should you choose?

Choose Photon if you need mentions, read receipts, edit and unsend and animated text effects.

Choose ZeroSettle if you need CRM integrations.

Frequently asked questions