Photon vs Linq

Compare Photon and Linq 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)

Linq

iMessage, RCS and SMS API with flat monthly pricing
Starting price
$260/month (Pro)
Free plan
Hobby: $0, up to 20 contacts, used through the CLI

Photon supports 75 of the 77 features compared here, and Linq supports 63.

Feature comparison

FeaturePhotonLinq
iMessage messaging
iMessage
SupportedManaged cloud lines, or your own Mac with the local provider
Supported
Group chats
SupportedOn the Business plan (dedicated lines)
SupportedPro plan. Up to 31 recipients. No read or delivery receipts in groups.
Group management
SupportedCreate groups and add, remove or leave members; Business plan (dedicated lines)
SupportedAdd and remove participants and leave a group, iMessage groups only, 3-member minimum.
Group name and photo
SupportedRename groups and set group photos; Business plan (dedicated lines)
SupportedSet display_name and group_chat_icon on group chats.
Mentions
SupportedSend @mentions in multipart messages and read mention ranges on inbound
SupportedGroup chats only. Notifies iMessage recipients even in a muted chat.
Tapbacks
SupportedSix native tapbacks plus emoji reactions, send and receive
SupportedSix classic tapbacks or any emoji, send and receive via reaction webhooks.
Threaded replies
Supported
Supportedreply_to with optional part_index. iMessage only.
Typing indicators
Supported
SupportedSend and receive, in direct and group chats. iMessage only.
Read receipts
SupportedMark chats read and receive read events; group receipts are best-effort
SupportedMark chats read and receive message.read. One-to-one chats only.
Edit and unsend
SupportedEdit within 15 minutes and unsend within 2 minutes (Apple limits)
PartialEdit text up to 5 times within 15 minutes. Delete does not unsend from the recipient's device.
Message effects
SupportedAll bubble and screen effects, including invisible ink
Supported11 screen and 4 bubble effects.
Animated text effects
SupportedPer-range effects such as bloom, shake, explode and jitter
Supportedtext_decorations animations: big, small, shake, nod, explode, ripple, bloom, jitter.
Stickers
SupportedPlace image stickers on any bubble with position, scale and rotation; sticker events inbound
SupportedPeel emoji or images onto messages, send stickers, or place them inline in text.
Formatted text
SupportedMarkdown rendered as native bold, italic, underline and strikethrough
SupportedBold, italic, underline and strikethrough ranges, plus animated text. iMessage only.
Attachments
SupportedFiles up to 100 MiB by default, including Live Photos
SupportedUp to 10MB by URL, 100MB with pre-upload.
Live Photos
SupportedHEIC still plus MOV companion uploaded as one Live Photo
Not listed
Rich link previews
Supportedrichlink() asks Messages to render its own preview
Supportedlink parts render as rich previews on iMessage and RCS.
Voice messages
Supported
SupportedDedicated voice memo endpoint renders the native iMessage voice bubble.
Contact cards
SupportedvCard or structured contacts, plus the bot's own native contact card
SupportedSend .vcf files as media parts.
Polls
SupportedCreate, vote, add options and receive poll events; all managed plans
SupportedCreate, add options, vote and read tallies, with poll webhooks. Not as a chat's first message.
Chat backgrounds
Supported
SupportedColor, animated or photo backgrounds, in direct and group chats.
Location sharing
SupportedFind My requests and live location; Business plan
SupportedRequest, read and stop Find My shares. Live location is a $79/mo add-on on Pro.
iMessage apps
SupportedCustom and live app cards; iMessage mini apps on the Business plan
SupportedPro plan. Cards from your own Messages extension, or Linq-hosted cards (Experiences).
Live app cards
SupportedEdit an app card in place and render live UI without a new bubble
SupportedUpdate App Card replaces a delivered iMessage app or Experience card in place.
Sender name and photo
SupportedShares the agent's name and photo automatically; Business plan
SupportedContact card API sets name and photo, shared per chat via Name and Photo Sharing.
FaceTime calls
Not listed
Not supportedDocs say the API does not place or answer calls.
Delivery status
SupportedSent, delivered, read and send-error fields per message
Supportedsent, delivered, read and failed webhooks. Groups report sent only.
iMessage availability check
SupportedCheck if a number or email can get iMessage, SMS or RCS before sending
Supportedcheck_imessage and check_rcs endpoints.
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
Supported
Dedicated numbers
Supported$250 per line per month on Business
SupportedPaid lines are dedicated. Provisioned by Linq, no self-serve number API.
Shared numbers
SupportedFree and Pro route each user through a managed shared pool
SupportedFree Hobby tier uses a Shared Line, inbound-first, 20 contacts.
Bring your own number
SupportedYour own Apple ID when self-hosting on a Mac, and your own number for WhatsApp Business
Not listed
Line pooling
SupportedBusiness: auto-scale adds lines and a routing endpoint balances users
SupportedManaged load balancing (Pro): send without from and Linq picks and fails over lines.
SMS fallback
SupportedOn every plan per pricing; carrier rules apply to fallback traffic
Supported
RCS fallback
Supported
SupportedOrder is iMessage, then RCS, then SMS.
Outbound-first messaging
SupportedBusiness plan, up to 50 new contacts per line per day
SupportedFree Hobby tier is inbound-first. Docs recommend inbound-first flows to avoid flagging.
Calls on the iMessage number
SupportedPlace and receive SIP calls from the line people already text
PartialAPI forwards inbound calls on the line; outbound needs caller-ID masking via another provider.
Other channels
SMS
BetaStandalone SMS and MMS numbers with 10DLC in the 2.0 beta; SMS fallback on iMessage lines today
Supported
RCS
PartialSent on the iMessage line when the recipient cannot get iMessage
Supported
WhatsApp
SupportedWhatsApp Business, one-to-one, on the Business plan
BetaSeparate WhatsApp API in beta. Access by request, no SLA.
Telegram
Supported
Not supportedNot offered
Slack
Supported@spectrum-ts/slack provider on npm and GitHub
Not supported
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
PartialAPI does not place or answer calls; it forwards inbound calls. Calling lives in the Linq Blue app.
Apple Messages for Business
BetaListed as available in the 2.0 beta
Not listedAI context page mentions it, but no product page or docs were found.
Unified channel API
SupportedOne Spectrum SDK across channels, and one REST model in the 2.0 beta
PartialiMessage, RCS and SMS share one API. WhatsApp is a separate API with its own keys and SDKs.
Developer tools
REST API
SupportedREST API for projects and lines; sending over REST in the 2.0 beta
Supported
TypeScript SDK
Supportedspectrum-ts, plus low-level iMessage and WhatsApp SDKs
Supported@linqapp/sdk
Python SDK
Betaphotonhq-api on PyPI, for the 2.0 beta API
Supportedlinq-python
Other SDKs
SupportedGo client for Advanced iMessage; Rust and Go clients for the 2.0 API
SupportedOfficial Go SDK.
CLI
Supported@photon-ai/cli manages projects, lines, users and billing
Supported@linqapp/cli: signup, sending, and a local webhook listener.
Webhooks
Supported
Supported
Signed webhooks
SupportedHMAC-SHA256, plus Standard Webhooks signatures
SupportedHMAC-SHA256, Standard Webhooks format, with replay protection.
MCP server
SupportedHosted MCP server, plus an MCP server for the docs
Supported@linqapp/sdk-mcp with docs search and code execution tools.
Open source
SupportedMIT: spectrum-ts, imessage-kit and most SDKs
PartialSDKs, CLI and adapters are Apache-2.0 or MIT on GitHub. The messaging platform is closed.
Self-hosting
SupportedRun the open-source core on your own Mac and number, no Spectrum Cloud
Not supportedLinq describes itself as fully managed, in contrast to self-hosted options.
Local testing
SupportedTerminal chat UI provider, no phone or number needed
Not listedThe CLI streams webhooks locally, but tests still use a real phone.
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
PartialRetries for 30 minutes; after that, re-fetch chats or ask Linq for a manual replay.
OpenTelemetry
SupportedOpt-in messaging traces in spectrum-ts, and traces in the 2.0 beta dashboard
PartialW3C trace IDs on every response and webhook for OTel backends. No export of Linq spans by default.
No-code integrations
Supportedn8n community nodes and a Dify plugin
SupportedLinq Blue works as a GoHighLevel messaging provider. No n8n, Make or Zapier found for the API.
CRM integrations
Not listed
SupportedVia Linq Blue: GoHighLevel, HubSpot and Salesforce.
Built for AI agents
Agent framework
SupportedSpectrum is a multi-channel agent framework with streaming replies
PartialNo own framework. Maintains a Vercel Chat SDK adapter and OpenClaw and Hermes plugins.
Agent framework integrations
SupportedVercel Chat SDK, Mastra, LangChain, Convex and others
SupportedLinq-maintained Vercel Chat SDK adapter, plus OpenClaw and Hermes Agent plugins.
Streaming replies
SupportedAI output streams into one iMessage bubble, edited in place
Not supportedDocs say the Chat SDK adapter buffers streams into one final message.
Agent group chats
BetaAgents find other agents and add them to a group chat (2.0 beta)
Not listed
Human handoff
BetaA person can reply in a conversation from the 2.0 beta Inbox
Not listed
Audit logs
BetaAPI logs and traces in the 2.0 beta dashboard
SupportedDashboard Activity page plus account-change webhooks with actor and origin.
Message history API
SupportedList and get messages per chat
Supported
Plans and compliance
Free plan
SupportedUp to 10 users on shared lines
SupportedHobby: $0, up to 20 contacts, through the CLI.
Public pricing
Supported
SupportedPro from $260/mo. Enterprise is custom.
No per-message fees
SupportedNo per-message fees for iMessage, WhatsApp or Telegram; SMS, voice and email are metered in the 2.0 beta
Supported
Uptime SLA
SupportedContractual SLA on the Enterprise plan
SupportedContractual SLAs on the Enterprise plan; marketing cites 99.95%
Isolated infrastructure
SupportedEach line runs in an isolated, dedicated environment
SupportedDedicated lines across 4 data centers on paid plans; Hobby uses a shared line
SOC 2 Type II
SupportedStated on photon.codes
SupportedType I and Type II, reports for 2022, 2024, 2025 and 2026.
GDPR
SupportedPrivacy policy covers GDPR rights and SCC transfers
SupportedDPA covers GDPR and UK GDPR, with Standard Contractual Clauses.

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

Linq

Hobby is free with up to 20 contacts through the CLI, Pro starts at $260 a month with a 7-day free trial, and Enterprise is custom.

Pricing model: flat monthly, no per-message fees

Source

Which should you choose?

Choose Photon if you need Live Photos, Focus and Notify Anyway, bring your own number and Telegram.

Choose Linq if you need CRM integrations.

Frequently asked questions