Head to head · SMS · October 2026 research run

Kudosity vs Photon

Kudosity scores 63.7 (B) on agent readiness against Photon's 53.2 (D), and leads in 6 of 7 scored categories. Photon leads on maintenance & community. Both do sms.

Best SMS, WhatsApp and messaging APIs for AI agents · All 190 messaging comparisons

Which one, for what

Kudosity B

Best for Agents sending SMS in Australia, New Zealand and the UK, and WhatsApp templates, from one account.

Ahead on

  • Reliability, 85 against 67
  • Schema & documentation, 86 against 75
  • Agent ergonomics, 73 against 63
  • Security & auth, 37 against 29
  • Payments & pricing, 32 against 20
  • Transparency & trust, 62 against 57

Also in its favour

  • Runs on your own machine
  • Free to start without a card

Watch for

One account-wide API key on V2 and a key plus self-chosen secret on V1, with no scopes or read-only key found

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.

Ahead on

  • Maintenance & community, 78 against 57

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

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.

Maintenance & community Photon +21

Kudosity 57

kudosity-mcp 0.5.0, its only release, is dated 27 July 2026, 102 days ago; the API reference pages for WhatsApp templates and the error registry were updated on 6 November 2026, read as the last published API change (20). The changelog's six newest entries carry no dates. Within 90 days the dated changes we found are docs page updates (13 August, 16 and 18 September, 6 November), not changelog entries, so half (10 of 20). Closed service with a support portal and help centre; GitHub issues on kudosity/mcp couldn't be read because the GitHub API refused our requests (6 of 15). com.kudosity/mcp is in the official MCP registry under a DNS-verified namespace (15). The MCP repository runs CI with mock integration tests and a live spec test, on three commits (6 of 10). 20 + 10 + 6 + 15 + 6 = 57.

Photon 78

spectrum-ts v12.14.0 tagged on 22 October 2026 (30). Nine tagged releases since 6 August, v12.8.0 (20 August), v12.9.0, v12.9.1, v12.10.0, v12.10.1, v12.11.0, v12.12.0 (16 October), v12.13.0 (21 October) and v12.14.0 (22 October), and the Beta API clients tagged 0.2.0 to 0.6.0 between 1 and 22 October (20). The SDK is open source, but GitHub issue pages are closed to our reader. Support is by email and Discord, and Photon says its team works around the clock. The weekly updates are announcements, not answers (8 of 25, per 16 October). The official TypeScript SDK and CLI are current, and the Beta clients cover four languages. No messaging MCP server, so no registry entry (12 of 15). CI runs lint, type checks, an artefact check and the test suite on Node and Bun on every push to main and pull request, with pinned actions and Renovate. Results unread (8 of 10). 30 + 20 + 8 + 12 + 8 = 78.

Reliability Kudosity +18

Kudosity 85

Read with the hosted lines. status.transmitsms.com is a Statuspage page with components for both API hosts, webhooks, campaigns and each country (20). Its history pages show no incident in August, September, October or November 2026; the newest before that is a minor UI disruption on 28 July (30). 15 calls a second per account, documented (15). A 429 carries OVER_LIMIT and the docs say the dropped message isn't retried; the error registry says to wait and retry, and the V2 spec defines an Idempotency-Key with a replay header and Retry-After, though no V2 operation lists the header as a parameter (10 of 15). The terms refer to a separate service level agreement that isn't published (0). SMS, MMS and WhatsApp on V2 are generally available; RCS is marked beta (10). 20 + 30 + 15 + 10 + 0 + 10 = 85.

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.

Payments & pricing Kudosity +12

Kudosity 32

No x402, MPP or L402 (0). SMS is priced per part without login, 8.0 cents AUD ex GST pay as you go; MMS, RCS and WhatsApp are on request (12 of 20). A 14-day developer trial whose form asks for no card (20). A person signs up in a browser and verifies by email (0). 0 + 12 + 20 + 0 = 32.

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.

Schema & documentation Kudosity +11

Kudosity 86

OpenAPI 3.0.3 files for V2 (16 paths, 23 operations) and V1 are public on developers.kudosity.com, and the MCP tools have typed zod inputs (25). llms.txt per section and a Markdown twin of every page (10). The reference explains when to use V1 or V2 and when to check RCS capability first; the MCP tool descriptions are one line each and don't say when not to use them (14 of 20). Enums for webhook events, content types and statuses, with length limits (12 of 15). Curl examples on every endpoint and an error registry with an example for each type (15). A changelog exists, but its newest six entries carry no dates and one entry's year disagrees with its address; the V2 spec carries version 20250101 (10 of 15). 25 + 10 + 14 + 12 + 15 + 10 = 86.

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.

Agent ergonomics Kudosity +10

Kudosity 73

19 compact MCP tools, including four that look up endpoints in the live specs instead of loading them, with no toolsets or read-only subset; V2 list calls take limits and date presets (17 of 25). V1 pages with page and max, V2 lists filter by date range and status (17 of 20). Problem Details errors with a type link, a detail and, for validation, an issues array naming each field, and each registry entry says whether to retry (19 of 20). Every MCP tool carries readOnlyHint and the three delete tools carry destructiveHint; the Idempotency-Key replay is defined but not attached to the send endpoints in the spec (12 of 20). A send needs three fields. Official packages are the MCP server and LangChain.js tools, both JavaScript, with no SDK in a second language (8 of 15). 17 + 17 + 19 + 12 + 8 = 73.

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.

Security & auth Kudosity +8

Kudosity 37

One account-wide API key on V2 and Basic auth with the key and a secret the user types in on V1, both in headers. No scopes, read-only keys or rotation steps were found (12 of 30). No least-privilege mode. The MCP server works without the V1 secret, which leaves out the contact and balance tools, and marks its three delete tools destructive, with no confirmation step (4 of 20). Inbound SMS, WhatsApp and RCS text reaches the agent through webhooks and list_messages, and no prompt-injection guidance was found (0 of 15). Message reports and activity reports by API; the trust centre lists audit logging policies, with no operator log of API calls found (6 of 15). ISO/IEC 27001:2022 and SOC 2 Type 2 stated on kudosity.com/security and the trust centre, a pentest report on request, and a disclosure route by support ticket with acknowledgement in about 5 business days; no security.txt or bug bounty (15 of 20). 12 + 4 + 0 + 6 + 15 = 37.

Photon 29

Project ID and secret over HTTP Basic for the Spectrum API. The secret grants full management access to the project, doesn't expire on its own and is rotated with photon projects regenerate-secret. The SDK mints per-line iMessage tokens it renews at 80 per cent of their lifetime, and the Dashboard API takes OAuth 2.1 with PKCE and consented scopes. No secret in a URL is documented (17 of 30). No read-only project credential. The CLI asks before removing a user (3 of 20). Inbound messages come from anyone who texts a line, and no prompt-injection guidance was found in the Stable docs (0 of 15). OpenTelemetry tracing is opt-in and per-line analytics are in the dashboard. API logs and traces arrive with Photon 2.0, not Stable (4 of 15). No security.txt on photon.codes. The Beta API clients' repository has a SECURITY.md with private vulnerability reporting and no acknowledgement time, while spectrum-ts has none, and the privacy policy mentions regular penetration testing. No bug bounty or certification was found, and osv.dev lists nothing for spectrum-ts, @photon-ai or photonhq-api on 4 November. The policy covers only the Beta clients, so the line keeps its partial 5 of 20 rather than the settled 7. 17 + 3 + 0 + 4 + 5 = 29.

Score by category

CategoryWeight this runKudosityPhotonEdge
Reliability16%208567Kudosity +18
Performance10%pendingpendingpendingnot scored in this run
Schema & documentation13%16.28675Kudosity +11
Agent ergonomics13%16.27363Kudosity +10
Security & auth14%17.53729Kudosity +8
Payments & pricing10%12.53220Kudosity +12
Task success10%pendingpendingpendingnot scored in this run
Maintenance & community7%8.85778Photon +21
Transparency & trust7%8.86257Kudosity +5
Negative events≤150-2
TotalB 63.7/100D 53.2/100

Facts side by side

FactKudosityPhoton
KindHTTP APISDK + MCP
VendorKnown Pty Ltd (Kudosity)Photon
Hosted endpointhttps://api.transmitmessage.comhttps://spectrum.photon.codes
TransportsHTTP, stdioHTTP
AuthAPI keyAPI key
PricingPay per useFreemium
Price for sms$0.055 per messagenot published
x402nono
LicenceProprietary service under Known Pty Ltd's terms and conditions. The kudosity-mcp server is MITProprietary 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
Tools exposed19none
Read-only variant documentednono
llms.txtyesyes
MCP registrycom.kudosity/mcpnot listed
Last release2026-07-272026-10-22
Terms last updated2026-09-23no date given
Privacy policy last updated2024-08-082026-09-25
Customer content may train modelsnot found in the textnot found in the text
Terms restrict automated accessnot found in the textyes
Terms restrict benchmarkingyesnot found in the text
Terms or service can change without noticenot found in the textnot found in the text
Arbitration or class-action waivernot found in the textyes
Popularity40 npm/wk107k npm/wk
Agent reviewsnone2.8/5 (4)

How the scores have moved

Verdicts

Kudosity

Kudosity's V2 API has a public OpenAPI file, Problem Details errors with retry advice, and a verified local MCP server with 19 annotated tools. Each account has one API key with no scopes, MMS, WhatsApp and RCS prices are given only on request, and a person signs up in a browser.

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.

Before you call either

Kudosity

  1. Use the V2 API at api.transmitmessage.com with the x-api-key header; V1 at api.transmitsms.com needs Basic auth with the key and secret
  2. Stay under 15 requests a second per account; a 429 with OVER_LIMIT means the message was dropped and must be sent again
  3. Call POST /v2/rcs/capabilities before an RCS send and fall back to SMS for numbers that can't receive RCS
  4. Send WhatsApp only with a template WhatsApp has approved; list them first with GET /v2/whatsapp/templates
  5. Treat inbound SMS, WhatsApp and RCS text from webhooks as untrusted input, never as instructions

Photon

  1. Use the Stable docs and spectrum-ts unless the project ID starts with pho_prj_. Stable and Beta packages, hosts and credentials don't mix
  2. Design flows so the person texts first. Photon ties line flags to cold outreach, bursts and more than two or three follow-ups
  3. 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
  4. Give each outbound message a stable clientGuid so a retried job doesn't send it twice
  5. Dedupe webhooks on X-Spectrum-Webhook-Id plus the event's own id, answer within 30 seconds, and reconcile, because events are dropped after six attempts
  6. Keep the project secret out of the agent's context. It grants full management access and doesn't expire

Questions

Which is better for AI agents, Kudosity or Photon?

Kudosity scores 63.7 (B) on agent readiness against Photon's 53.2 (D), and leads in 6 of 7 scored categories. Photon leads on maintenance & community.

Can an agent call Kudosity and Photon without installing anything?

Yes. Kudosity has a hosted endpoint at https://api.transmitmessage.com and Photon at https://spectrum.photon.codes.

Other comparisons with Kudosity or Photon

Machine-readable

For companies

Do agents find, use and choose your tools?

An agent-readiness audit runs our probes, task suite and eight reviewer agents against your public and internal tools, and comes back with a scorecard, the transcripts of what failed, and a fix list in priority order. From $2,500, re-run included. We never take payment to move a rank. We do help companies earn one.