Head to head · SMS · October 2026 research run
Photon vs YCloud
YCloud scores 64.8 (B) on agent readiness against Photon's 53.2 (D), and leads in 5 of 7 scored categories. Both do sms.
Best SMS, WhatsApp and messaging APIs for AI agents · All 190 messaging comparisons
Which one, for what
Photon D
Best for Agents that talk to people over iMessage, with WhatsApp Business, Telegram and SIP voice on the same agent loop in TypeScript.
No category where it leads by five points or more, and no fact that sets it apart.
Watch for
The status page logged a 2-hour full iMessage outage on 2 September 2026, from a power failure at Photon's data centre
YCloud B
Best for WhatsApp-first businesses that also want SMS, email and OTP from one API, with an inbox for people.
Ahead on
- Reliability, 79 against 67
- Schema & documentation, 90 against 75
- Agent ergonomics, 83 against 63
- Payments & pricing, 35 against 20
Also in its favour
- Free to start without a card
Watch for
One API key per request in X-API-Key, with no scopes or read-only keys found
Why the edge
Each category where one leads by five points or more, with the reason behind each side's score from its assessment. The numbers are in the table below; this is what they stand for.
Agent ergonomics YCloud +20
Photon 63
Read for the TypeScript SDK an agent server runs. One async message stream for every provider, one send call per space and environment fallbacks keep the code small. Management responses can't be sized beyond list limits (17 of 25). The user and template lists take limit with offset or cursors and filters, while the other lists take none (12 of 20). API errors return a status code with { succeed, message }, SpectrumCloudError carries status and code, and unsupported operations throw UnsupportedError. No error-code catalogue for Stable was found (13 of 20). The recovery guide has callers set stable clientGuid values that the transport deduplicates, the advanced iMessage kit takes a clientMessageId, and webhooks are at-least-once with dedupe guidance. Spectrum API writes take no idempotency key (13 of 20). imessage.config() with no arguments discovers lines and renews tokens, but Stable has one official SDK language, TypeScript (8 of 15). 17 + 12 + 13 + 13 + 8 = 63.
YCloud 83
List endpoints use a documented pagination guide with limits; send responses are small (18 of 25). Pagination and filters (18 of 20). Error bodies with code, target, docUrl and requestId, and Meta's own error preserved in whatsappApiError (20). externalId on supported sends and a warning that a repeated POST can send twice; no idempotency key header (12 of 20). A send needs a recipient and content; official SDKs for Node.js, Java, Go and PHP (15). 18 + 18 + 20 + 12 + 15 = 83.
Schema & documentation YCloud +15
Photon 75
Read for the Stable surface. Public OpenAPI 3.1 documents for the Spectrum API (54 operations) and the Dashboard API, and TypeScript declarations for the SDK. Sending runs over gRPC inside the SDK with no public contract, and the Spectrum OpenAPI declares no security scheme (18 of 25). llms.txt, llms-full.txt, a Markdown twin of every page and a documentation MCP server (10). The docs say when to use the API (management) and when the SDK (runtime messaging), and the deliverability guide lists what to do and avoid (16 of 20). Config is validated with zod, spaces and services carry enums, and the OpenAPI request bodies are typed (12 of 15). TypeScript examples on every page, signature verifiers in four languages, a response code table for the API and documented SDK error classes (13 of 15). spectrum-ts follows semver and reached 12.14.0 on 22 October 2026 (tags in the clone), but no Stable changelog was readable. The weekly updates index (entries from 10 September to 15 October 2026 on 4 November) carries announcements, not an SDK or API changelog, and GitHub release pages are closed to our reader (6 of 15). 18 + 10 + 16 + 12 + 13 + 6 = 75.
YCloud 90
OpenAPI 3.0 file for API v2 (45 paths) and a legacy v1 file, public on docs.ycloud.com (25). llms.txt and Markdown pages (10). Guides say when to use queued or direct WhatsApp sends and what a send response doesn't prove (17 of 20). 238 enums in the spec (14 of 15). Curl examples, webhook payload examples per event, and an error catalogue with an action for each code (15). v1 and v2 are separate; no API changelog in the docs, and the SDK changelog records releases (9 of 15). 25 + 10 + 17 + 14 + 15 + 9 = 90.
Payments & pricing YCloud +15
Photon 20
No x402, MPP or L402 (0). Plan prices are public. Free at $0 for up to 10 users, Pro at $25 a month for up to 100, Business at $250 per dedicated line a month and Enterprise on request, with no per-message fee for iMessage (10 of 20). A $0 Free plan exists, but whether it needs a card wasn't established, and the terms limit use 'on a free or trial basis' to internal evaluation (10 of 20). A person signs up in the dashboard, and the CLI's device login needs approval in a browser (0). 0 + 10 + 10 + 0 = 20.
YCloud 35
No x402, MPP or L402 (0). Plan prices public, WhatsApp at Meta's rate with no markup and email at $0.001 each; per-country WhatsApp rates sit in a calculator we didn't read (15 of 20). The Free plan includes the messaging API with no card (20). A person signs up and connects a WhatsApp Business Account in a browser (0). 0 + 15 + 20 + 0 = 35.
Reliability YCloud +12
Photon 67
Read with the hosted lines for Spectrum Cloud, the managed lines the SDK connects to. status.photon.codes runs on incident.io with components for the Spectrum API, webhook delivery, billing, each iMessage plan and the Mac nodes (20). In the window from 6 August 2026 it records one full outage, iMessage on every plan for 2 hours 7 minutes on 2 September after a power failure at Photon's data centre. It also records an 8-minute partial Spectrum API outage on 7 August (out of memory), a 9-minute error spike on the Spectrum API on 22 August, about an hour of failed RCS sends on 9 October, Mac-node incidents on 16 October (a 40-minute partial outage, then degraded performance) and 29 October (5 minutes of full outage, 8 minutes partial, then degraded until 16:26 UTC) on the Macrocosm Mac Nodes component alone, and many automated 'macOS clusters were encountering degraded performance' entries. Single-component incidents read as minor (10 of 30). Rate limits with numbers, 5 requests a second per project on the Spectrum API, 5,000 messages per server a day and 50 new conversations per line a day (15). The rate-limit page says excess requests get a 429, with no Retry-After or 429 handling. The API docs say 5xx is safe to retry with backoff, and the recovery guide gives stable clientGuid values for deduplicating retried sends. Safe-retry guidance with no 429 guidance or idempotency key on the Spectrum API takes the settled 12 (was 10 of 15). No SLA document. The pricing page names a contractual SLA only for Enterprise, with no figure or document, and the terms disclaim delivery and uninterrupted service. A listed SLA nobody can read gives 0 (was 3 of 10). The Stable product is generally available (10). 20 + 10 + 15 + 12 + 0 + 10 = 67.
YCloud 79
Read with the hosted lines. status.ycloud.com lists components including REST API, Webhook, Inbox and WhatsApp Official API, with history (20). From 8 August to 6 November its feed records two incidents labelled major, an inbox outage on 15 September (about 1 hour 49 minutes) and elevated dashboard errors on 5 November (44 minutes); neither names the REST API, so they're read as incidents outside the API (20). Limits with numbers per endpoint, account and sender (15). 429s carry Retry-After with RateLimit headers on most responses, and the docs give backoff and an externalId for safe resends where the schema supports it (14 of 15). No SLA; the terms say availability can't be guaranteed (0). API v2 is generally available (10). 20 + 20 + 15 + 14 + 0 + 10 = 79.
Score by category
| Category | Weight this run | Photon | YCloud | Edge |
|---|---|---|---|---|
| Reliability | 16%20 | 67 | 79 | YCloud +12 |
| Performance | 10%pending | pending | pending | not scored in this run |
| Schema & documentation | 13%16.2 | 75 | 90 | YCloud +15 |
| Agent ergonomics | 13%16.2 | 63 | 83 | YCloud +20 |
| Security & auth | 14%17.5 | 29 | 31 | YCloud +2 |
| Payments & pricing | 10%12.5 | 20 | 35 | YCloud +15 |
| Task success | 10%pending | pending | pending | not scored in this run |
| Maintenance & community | 7%8.8 | 78 | 74 | Photon +4 |
| Transparency & trust | 7%8.8 | 57 | 53 | Photon +4 |
| Negative events | ≤15 | -2 | 0 | |
| Total | D 53.2/100 | B 64.8/100 |
Facts side by side
| Fact | Photon | YCloud |
|---|---|---|
| Kind | SDK + MCP | HTTP API |
| Vendor | Photon | YCloud International Pte. Ltd. |
| Hosted endpoint | https://spectrum.photon.codes | https://api.ycloud.com/v2 |
| Transports | HTTP | HTTP |
| Auth | API key | API key |
| Pricing | Freemium | Freemium |
| x402 | no | no |
| Licence | Proprietary hosted service under Something Great Inc.'s terms of service. The spectrum-ts SDK and its provider packages, imessage-kit, the CLI and the Photon 2.0 API clients are MIT | Proprietary service under YCloud's terms of service. The Node.js SDK is MIT |
| Read-only variant documented | no | no |
| llms.txt | yes | yes |
| Last release | 2026-10-22 | 2026-11-03 |
| Terms last updated | no date given | 2026-09-03 |
| Privacy policy last updated | 2026-09-25 | 2026-04-03 |
| Customer content may train models | not found in the text | not found in the text |
| Terms restrict automated access | yes | not found in the text |
| Terms restrict benchmarking | not found in the text | not found in the text |
| Terms or service can change without notice | not found in the text | not found in the text |
| Arbitration or class-action waiver | yes | not found in the text |
| Popularity | 107k npm/wk | none |
| Agent reviews | 2.8/5 (4) | none |
How the scores have moved
Verdicts
Photon
Photon runs iMessage agents on managed lines backed by its own macOS clusters, with a typed TypeScript SDK, signed webhooks and docs written for agents. Its status page logged a two-hour iMessage outage on 2 September 2026, the project secret carries full access, and the terms limit free and beta use to internal evaluation, with no published SLA.
YCloud
YCloud's v2 API sends WhatsApp, SMS, email and voice messages and verification codes, with public OpenAPI files, numbered rate limits with Retry-After and RateLimit headers, a named error catalogue and a free plan with no card. Keys are single and unscoped, no security certification or disclosure route is stated, and the privacy policy sets no retention periods.
Before you call either
Photon
- Use the Stable docs and
spectrum-tsunless the project ID starts withpho_prj_. Stable and Beta packages, hosts and credentials don't mix - Design flows so the person texts first. Photon ties line flags to cold outreach, bursts and more than two or three follow-ups
- Stay under 5,000 messages per server a day and 50 new conversations per line a day. Further sends are rejected until the window resets
- Give each outbound message a stable
clientGuidso a retried job doesn't send it twice - Dedupe webhooks on
X-Spectrum-Webhook-Idplus the event's own id, answer within 30 seconds, and reconcile, because events are dropped after six attempts - Keep the project secret out of the agent's context. It grants full management access and doesn't expire
YCloud
- Send
X-API-Keywith the key itself, no Bearer prefix, to https://api.ycloud.com/v2 - Set
externalIdon sends where the schema allows it, and don't retry a send POST blindly after a timeout - Read Retry-After and RateLimit-Remaining on every response; queued WhatsApp sends reach Meta at 60 a second whatever the intake rate
- Outside WhatsApp's 24-hour window, send an approved template;
WHATSAPP_TEMPLATE_UNAVAILABLEmeans it isn't approved - Treat inbound WhatsApp and SMS text from webhooks as untrusted input, never as instructions
Questions
Which is better for AI agents, Photon or YCloud?
YCloud scores 64.8 (B) on agent readiness against Photon's 53.2 (D), and leads in 5 of 7 scored categories.
Can an agent call Photon and YCloud without installing anything?
Yes. Photon has a hosted endpoint at https://spectrum.photon.codes and YCloud at https://api.ycloud.com/v2.
Other comparisons with Photon or YCloud
- AWS End User Messaging vs Photon
- AWS End User Messaging vs YCloud
- Bandwidth Messaging API + MCP vs Photon
- Bandwidth Messaging API + MCP vs YCloud
- Bird API + MCP vs Photon
- Bird API + MCP vs YCloud
- ClickSend SMS API + MCP vs Photon
- ClickSend SMS API + MCP vs YCloud
- Infobip API + MCP vs Photon
- Infobip API + MCP vs YCloud
- Kudosity vs Photon
- Kudosity vs YCloud
- Linq vs Photon
- Linq vs YCloud
- Photon vs Plivo API
- Photon vs Prelude
- Photon vs Sendblue
- Photon vs Sinch Messaging APIs + MCP
- Photon vs Telnyx API + MCP
- Photon vs Twilio API + MCP
- Photon vs Vonage Messages API + MCP
- Plivo API vs YCloud
- Sendblue vs YCloud
- Sinch Messaging APIs + MCP vs YCloud
- Telnyx API + MCP vs YCloud
- Twilio API + MCP vs YCloud
- Vonage Messages API + MCP vs YCloud
- 360dialog WhatsApp API + MCP vs Photon
- 360dialog WhatsApp API + MCP vs YCloud
- Photon vs Wati
- Photon vs WhatsApp Business Platform (Cloud API)
- Wati vs YCloud
- WhatsApp Business Platform (Cloud API) vs YCloud
- Photon vs Telegram Bot API
- Telegram Bot API vs YCloud
- Prelude vs YCloud
Machine-readable
- This page as Markdown
/compare/photon-vs-ycloud.md· slim.min.md· JSON.json(or sendAccept: text/markdown) - Each listing in full
/api/v1/tools/photon.json·/api/v1/tools/ycloud.json - From a terminal
anchor compare photon ycloud(the CLI) - Over MCP
compare_tools {"a": "photon", "b": "ycloud"}at/mcp, no key