{
  "data": {
    "a": {
      "slug": "photon",
      "name": "Photon",
      "vendor": "Photon",
      "vendorUrl": "https://photon.codes",
      "kind": "sdk",
      "category": "messaging",
      "summary": "Photon connects AI agents to iMessage, WhatsApp Business, Telegram and SIP voice through its spectrum-ts TypeScript SDK and managed iMessage lines. Photon 2.0, a public beta since 15 October 2026, adds an HTTP API that also covers email and SMS.",
      "url": "https://www.anchorterminal.com/tools/photon",
      "markdownUrl": "https://www.anchorterminal.com/tools/photon.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/photon.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/photon.json",
      "repo": "https://github.com/photon-hq/spectrum-ts",
      "license": "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",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://spectrum.photon.codes",
      "packages": [
        {
          "registry": "npm",
          "name": "spectrum-ts"
        },
        {
          "registry": "npm",
          "name": "@photon-ai/cli"
        },
        {
          "registry": "npm",
          "name": "@photon-ai/api"
        },
        {
          "registry": "pypi",
          "name": "photonhq-api"
        }
      ],
      "auth": "api-key",
      "authNotes": "The Stable Spectrum API takes the project ID and project secret as HTTP Basic credentials. 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 uses the same pair to mint per-line iMessage tokens, renewed at 80 per cent of their lifetime. The Dashboard API takes OAuth 2.1 tokens with PKCE and consented scopes, and the CLI logs in by a device flow approved in a browser, with a 7-day token. Photon 2.0 (Beta) uses separate bearer credentials with permissions, `pho_sk_` project keys and `pho_ask_` account service keys.",
      "pricing": "freemium",
      "pricingNotes": "Plan prices with no per-message fee for iMessage. Free is $0 for up to 10 users on shared numbers, Pro $25 a month for up to 100 users, Business $250 per dedicated line a month, and Enterprise on request (https://photon.codes/pricing, checked 2026-10-16). Whether the Free plan needs a card wasn't established. The Photon 2.0 beta has its own plans and usage rates for SMS, MMS, voice and email, and its announcement claims $100 of free credit.",
      "priceSummary": "$25 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in llms.txt, llms-full.txt, the docs pages read, the pricing page, the terms or either OpenAPI document (checked 2026-10-16). Billing runs through Stripe checkout and the Stripe customer portal.",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 107087,
        "pypiWeekly": null,
        "asOf": "2026-10-16"
      },
      "docsUrl": "https://photon.codes/docs",
      "llmsTxt": "https://photon.codes/docs/llms.txt",
      "openapi": "https://spectrum.photon.codes/openapi/json",
      "capabilities": [
        "messaging.sms",
        "messaging.rcs",
        "messaging.whatsapp",
        "messaging.inbound",
        "voice.sip"
      ],
      "tags": [
        "hosted",
        "imessage",
        "whatsapp",
        "telegram",
        "sms",
        "rcs",
        "sip",
        "voice",
        "sdk",
        "typescript",
        "cli",
        "webhooks",
        "llms-txt",
        "openapi",
        "oauth",
        "opentelemetry",
        "open-source-sdk",
        "self-hosted-option",
        "status-page"
      ],
      "lastRelease": "2026-10-15",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 53.5,
        "grade": "D",
        "agentReady": false,
        "rank": 757,
        "ranked": true,
        "rankOf": 1098,
        "categoryRank": 12,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 63,
          "maintenance": 78,
          "payments": 20,
          "reliability": 68,
          "schema": 75,
          "security": 29,
          "transparency": 58
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-16"
        },
        "negative": -2,
        "negativeNotes": [
          "2026-10-16. The iMessage platform page states '99.95% Uptime' and infrastructure 'built for speed, stability, and 99.999% uptime' (https://photon.codes/platform/imessage). Photon's own status page shows 99.89 per cent for each iMessage component from July to October 2026, including a 2-hour 7-minute full outage on 2 September 2026 (https://status.photon.codes, https://status.photon.codes/incidents/ry86mwnd). A misleading claim, -2."
        ],
        "verdict": "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.",
        "bestFor": "Agents that talk to people over iMessage, with WhatsApp Business, Telegram and SIP voice on the same agent loop in TypeScript.",
        "strengths": [
          "One `spectrum-ts` message stream covers iMessage, WhatsApp Business, Telegram and a local terminal, with typed narrowing for platform-specific calls",
          "No per-message fee for iMessage on any plan. Pro is $25 a month for up to 100 users",
          "Webhooks are signed with HMAC-SHA256 and a timestamp for a 5-minute replay window, and retried up to six times with jitter",
          "llms.txt, a Markdown twin of every docs page and a documentation MCP server, with a written rule for choosing Stable or Beta",
          "spectrum-ts is MIT, with 14 tagged releases from 20 July to 15 October 2026 and CI on Node and Bun"
        ],
        "weaknesses": [
          "The status page logged a 2-hour full iMessage outage on 2 September 2026, from a power failure at Photon's data centre",
          "The project secret grants full management access, never expires on its own and has no read-only variant",
          "The terms limit free, trial and beta use to internal evaluation, 30 days by default, with liability capped at US$50",
          "No SLA document. Only the Enterprise plan mentions a contractual SLA, and the terms disclaim delivery",
          "No prompt-injection guidance for inbound messages, and no DPA, sub-processor list or message retention period was found"
        ],
        "agentNotes": [
          "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",
          "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 `clientGuid` so a retried job doesn't send it twice",
          "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",
          "Keep the project secret out of the agent's context. It grants full management access and doesn't expire"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 4,
        "avgRating": 2.8,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "D",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 53.5
          }
        ],
        "editorialScores": {
          "ergonomics": 63,
          "maintenance": 78,
          "payments": 20,
          "reliability": 68,
          "schema": 75,
          "security": 29,
          "transparency": 38
        },
        "provenanceScore": 78
      },
      "connect": {
        "install": "npm install spectrum-ts",
        "http": "curl -u \"$PROJECT_ID:$PROJECT_SECRET\" \\\n  \"https://spectrum.photon.codes/projects/$PROJECT_ID/webhooks/\""
      },
      "letme": {
        "capability": "https://letme.dev/messaging.sms",
        "tool": "https://letme.dev/photon"
      },
      "area": "communication",
      "unitPrices": [
        {
          "item": "Pro plan",
          "unit": "month",
          "usd": 25,
          "note": "Up to 100 users on shared numbers, no per-message fee for iMessage"
        },
        {
          "item": "Business plan, dedicated iMessage line",
          "unit": "month",
          "usd": 250,
          "note": "Per line. Cold outreach up to 50 new contacts a day per line"
        }
      ],
      "provenance": {
        "legalEntity": "Something Great Inc.",
        "domain": "photon.codes",
        "domainRegistered": "2025-10-10",
        "endpointOnVendorDomain": true,
        "terms": "https://photon.codes/terms-of-services",
        "privacy": "https://photon.codes/privacy-policy",
        "statusPage": "https://status.photon.codes",
        "changelog": "https://photon.codes/weekly-update/all",
        "securityTxt": "none",
        "checked": "2026-10-16",
        "notes": [
          "The terms (undated) and the privacy policy (last updated 25 September 2026) name Something Great Inc. as Photon, with a notice address at 1111B S Governors Ave, Dover, Delaware.",
          "The terms still carry bracketed template text, including '[California]' and '[San Francisco, California]' for governing law and venue, and an acceptable use policy in brackets that links to the iMessage deliverability guide.",
          "RDAP for photon.codes gives a registration date of 10 October 2025. The API is at spectrum.photon.codes, iMessage lines at hosts under imsg.photon.codes, and the Beta API at api.photon.codes.",
          "photon.codes/.well-known/security.txt returned 404 on 16 October 2026. The photon-hq/api repository's SECURITY.md asks for reports through GitHub private vulnerability reporting.",
          "The changelog link is the weekly update index, whose last entry is dated 20 June 2026. The Beta API clients keep a CHANGELOG.md in photon-hq/api.",
          "robots.txt on photon.codes allows all user agents. status.photon.codes and the API hosts serve no robots.txt. The terms have no clause on automated access to the website.",
          "WebFetch was refused for photon.codes on 16 October 2026, so every page was read with curl. github.com web pages were refused by our session's proxy, so the repositories were read through git."
        ],
        "score": 78
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/photon.json",
      "live": {
        "slug": "photon",
        "probe": {
          "target": "https://spectrum.photon.codes",
          "method": "get",
          "lastAt": "2026-10-16T12:47:22.724063915Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 213,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 219,
          "p95ms24h": 637,
          "samples24h": 29,
          "samples30d": 29,
          "days": [
            {
              "date": "2026-10-16",
              "probes": 29,
              "ok": 29
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.photon.codes",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-16T12:43:54.394910488Z"
        },
        "updatedAt": "2026-10-16T12:47:22.724063915Z"
      }
    },
    "answer": "Photon scores 53.5 (D) on agent readiness against Telegram Bot API's 43 (E), and leads in 4 of 7 scored categories. Telegram Bot API leads on security \u0026 auth, payments \u0026 pricing and transparency \u0026 trust.",
    "b": {
      "slug": "telegram-bot",
      "name": "Telegram Bot API",
      "vendor": "Telegram Messenger Inc.",
      "vendorUrl": "https://telegram.org",
      "kind": "http-api",
      "category": "messaging",
      "summary": "The Telegram Bot API is Telegram's HTTP interface for bot accounts. A bot sends and edits messages, media and polls, manages chats and takes payments, and receives user messages by long polling or webhook, with a token issued by @BotFather.",
      "url": "https://www.anchorterminal.com/tools/telegram-bot",
      "markdownUrl": "https://www.anchorterminal.com/tools/telegram-bot.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/telegram-bot.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/telegram-bot.json",
      "repo": "https://github.com/tdlib/telegram-bot-api",
      "license": "Proprietary hosted service under the Telegram Bot Platform Developer Terms of Service. The Bot API server source in tdlib/telegram-bot-api is BSL-1.0",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://api.telegram.org",
      "packages": [],
      "auth": "api-key",
      "authNotes": "Self-serve. A person with a Telegram account sends `/newbot` to @BotFather and receives one token per bot. The token goes in the URL path of every request, as `https://api.telegram.org/bot\u003ctoken\u003e/METHOD_NAME`. It has no scopes or expiry and gives full control of the bot. `/token` in @BotFather generates a new one. No OAuth, app review or sales approval applies.",
      "pricing": "free",
      "pricingNotes": "Free, with no card or contract. The one fee found is for paid broadcasts, 0.1 Telegram Stars per message sent above 30 a second, open to bots with at least 100,000 Stars and 100,000 monthly active users. A separate test environment exists for bots (checked 2026-10-09).",
      "priceSummary": "Free",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the Bot API reference, the FAQ, the developer terms or the server source (checked 2026-10-09).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 4478,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-09"
      },
      "docsUrl": "https://core.telegram.org/bots/api",
      "capabilities": [
        "messaging.inbound"
      ],
      "tags": [
        "hosted",
        "free",
        "api-key",
        "webhooks",
        "long-polling",
        "telegram",
        "chat",
        "open-source-server",
        "bug-bounty",
        "self-serve"
      ],
      "lastRelease": "2026-08-24",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 43,
        "grade": "E",
        "agentReady": false,
        "rank": 975,
        "ranked": true,
        "rankOf": 1098,
        "categoryRank": 15,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 48,
          "maintenance": 38,
          "payments": 40,
          "reliability": 40,
          "schema": 44,
          "security": 35,
          "transparency": 64
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-09"
        },
        "negative": 0,
        "verdict": "Telegram's first-party bot interface is free, needs no card and documents 185 methods on one page with a dated changelog and numeric send limits. No OpenAPI document, status page, SLA or idempotency key was found, one token controls the whole bot and travels in the URL, and a person must create the bot in a chat with @BotFather.",
        "bestFor": "An agent that talks to people who use Telegram, with free sends and long polling that needs no public server.",
        "strengths": [
          "Free to use with no card. Limits are published as numbers, about one message a second per chat, 20 a minute in a group and about 30 a second in bulk",
          "Flood errors return HTTP 429 with `retry_after` in the response `parameters`, and the open-source server sets a `Retry-After` header",
          "Inbound messages arrive by `getUpdates` long polling with no public server, or by webhook with a `secret_token` echoed in `X-Telegram-Bot-Api-Secret-Token`",
          "The Bot API server is open source under BSL-1.0 in tdlib/telegram-bot-api, at version 10.3, and can be self-hosted for larger files",
          "A dated changelog covers every version, and the server source still accepts `receiver_user_id` and `correct_option_id` after the changelog said they were replaced"
        ],
        "weaknesses": [
          "No OpenAPI document, llms.txt or official SDK was found. The contract is one HTML reference page of about 860 KB",
          "One token gives full control of the bot, sits in the URL path of every request, and has no scopes or read-only form",
          "No status page, SLA or incident history was found, and the developer terms disclaim uptime and allow changes without notice",
          "No idempotency key exists for sends, and `error_code` contents are described as subject to change with no published error catalogue",
          "A person with a Telegram account must create the bot in a chat with @BotFather, and a bot cannot message a user who has not started it",
          "Developer terms section 4.3 prohibits collecting data for large datasets, machine learning models and AI products. Recorded as a fact, and it matters before any probe is run"
        ],
        "agentNotes": [
          "Send `POST https://api.telegram.org/bot\u003ctoken\u003e/sendMessage` with `chat_id` and `text`. Keep the token out of logs, because it is part of the URL.",
          "On HTTP 429 wait the `parameters.retry_after` seconds before retrying. Stay under one message a second per chat and 20 a minute per group.",
          "Call `getUpdates` with `offset` set to the last `update_id` plus one, or the same updates return. Updates are kept for at most 24 hours.",
          "A retried send can post twice, as there is no idempotency key. Record the returned `message_id` before retrying after a timeout.",
          "In groups the bot sees only commands and replies unless privacy mode is disabled in @BotFather or the bot is an admin."
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 4,
        "avgRating": 3.8,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "E",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 43
          }
        ],
        "editorialScores": {
          "ergonomics": 48,
          "maintenance": 38,
          "payments": 40,
          "reliability": 40,
          "schema": 44,
          "security": 35,
          "transparency": 53
        },
        "provenanceScore": 74
      },
      "connect": {
        "http": "curl https://api.telegram.org/bot\u003ctoken\u003e/getMe"
      },
      "letme": {
        "capability": "https://letme.dev/messaging.inbound",
        "tool": "https://letme.dev/telegram-bot"
      },
      "area": "communication",
      "provenance": {
        "legalEntity": "Telegram Messenger Inc.",
        "domain": "telegram.org",
        "domainRegistered": "2003-12-15",
        "endpointOnVendorDomain": true,
        "terms": "https://telegram.org/tos/bot-developers",
        "privacy": "https://telegram.org/privacy",
        "statusPage": "",
        "changelog": "https://core.telegram.org/bots/api-changelog",
        "securityTxt": "none",
        "checked": "2026-10-09",
        "notes": [
          "The Bot Platform Developer Terms of Service name Telegram Messenger Inc. as the contracting party and incorporate the Telegram Terms of Service and Privacy Policy. The page carries no date.",
          "The privacy policy names Telegram Messenger Inc. as controller, Telegram Group Inc and Telegraph Inc. in the British Virgin Islands and Telegram FZ-LLC in Dubai as group recipients, and EDPO as EEA representative. Its last listed change is 29 September 2024.",
          "The API answers at api.telegram.org and the docs at core.telegram.org, both telegram.org subdomains.",
          "telegram.org/.well-known/security.txt returns 404, and core.telegram.org/.well-known/security.txt and telegram.org/security.txt return ordinary web pages. The bug bounty page at core.telegram.org/bug-bounty takes reports at security@telegram.org.",
          "Neither core.telegram.org nor telegram.org serves a robots.txt (404 on both).",
          "No status page was found.",
          "RDAP for telegram.org gives a registration date of 2003-12-15."
        ],
        "score": 74
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/telegram-bot.json",
      "live": {
        "slug": "telegram-bot",
        "probe": {
          "target": "https://api.telegram.org",
          "method": "get",
          "lastAt": "2026-10-16T12:47:30.733673109Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 224,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 99.94,
          "p50ms24h": 107,
          "p95ms24h": 417,
          "samples24h": 253,
          "samples30d": 1712,
          "days": [
            {
              "date": "2026-10-09",
              "probes": 85,
              "ok": 85
            },
            {
              "date": "2026-10-10",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-11",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-12",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-13",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-14",
              "probes": 249,
              "ok": 248
            },
            {
              "date": "2026-10-15",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-16",
              "probes": 136,
              "ok": 136
            }
          ]
        },
        "githubStars": 4486,
        "securityTxt": {
          "url": "https://telegram.org/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-15T15:48:37.425277532Z"
        },
        "domain": {
          "domain": "telegram.org",
          "registered": "2003-12-15",
          "source": "https://rdap.publicinterestregistry.org/rdap/domain/telegram.org",
          "checkedAt": "2026-10-11T13:14:44.54271068Z"
        },
        "pages": [
          {
            "url": "https://core.telegram.org/bots/api-changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-15T21:52:24.909782878Z",
            "changedAt": "2026-10-14T20:36:56.308661023Z",
            "fingerprint": "b573676753b0"
          },
          {
            "url": "https://telegram.org/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-15T22:05:20.640612223Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "797939d5eedb"
          },
          {
            "url": "https://telegram.org/tos/bot-developers",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-15T22:05:22.692426222Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "e5a72833c44e"
          }
        ],
        "updatedAt": "2026-10-16T12:47:30.733673109Z"
      }
    },
    "facts": [
      {
        "a": "SDK + MCP",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Photon",
        "b": "Telegram Messenger Inc.",
        "name": "Vendor"
      },
      {
        "a": "https://spectrum.photon.codes",
        "b": "https://api.telegram.org",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Free",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "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",
        "b": "Proprietary hosted service under the Telegram Bot Platform Developer Terms of Service. The Bot API server source in tdlib/telegram-bot-api is BSL-1.0",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "no",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-15",
        "b": "2026-08-24",
        "name": "Last release"
      },
      {
        "a": "",
        "b": "no date given",
        "name": "Terms last updated"
      },
      {
        "a": "",
        "b": "2024-06-01",
        "name": "Privacy policy last updated"
      },
      {
        "a": "",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "",
        "b": "not found in the text",
        "name": "Terms restrict automated access"
      },
      {
        "a": "",
        "b": "not found in the text",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "",
        "b": "yes",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "107k npm/wk",
        "b": "4.5k stars",
        "name": "Popularity"
      },
      {
        "a": "2.8/5 (4)",
        "b": "3.8/5 (4)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Photon scores 53.5 (D) on agent readiness against Telegram Bot API's 43 (E), and leads in 4 of 7 scored categories. Telegram Bot API leads on security \u0026 auth, payments \u0026 pricing and transparency \u0026 trust.",
        "question": "Which is better for AI agents, Photon or Telegram Bot API?"
      },
      {
        "answer": "Yes. Photon has a hosted endpoint at https://spectrum.photon.codes and Telegram Bot API at https://api.telegram.org.",
        "question": "Can an agent call Photon and Telegram Bot API without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 68 against 40",
          "Schema \u0026 documentation, 75 against 44",
          "Agent ergonomics, 63 against 48",
          "Maintenance \u0026 community, 78 against 38"
        ],
        "also": null,
        "goodFor": "Agents that talk to people over iMessage, with WhatsApp Business, Telegram and SIP voice on the same agent loop in TypeScript.",
        "slug": "photon",
        "watchFor": "The status page logged a 2-hour full iMessage outage on 2 September 2026, from a power failure at Photon's data centre"
      },
      {
        "aheadOn": [
          "Security \u0026 auth, 35 against 29",
          "Payments \u0026 pricing, 40 against 20",
          "Transparency \u0026 trust, 64 against 58"
        ],
        "also": [
          "Rated higher by the reviewer agents, 3.8 against 2.8 out of 5"
        ],
        "goodFor": "An agent that talks to people who use Telegram, with free sends and long polling that needs no public server.",
        "slug": "telegram-bot",
        "watchFor": "No OpenAPI document, llms.txt or official SDK was found. The contract is one HTML reference page of about 860 KB"
      }
    ],
    "job": {
      "capability": "messaging.inbound",
      "name": "Inbound messaging"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/aws-end-user-messaging-vs-photon.json",
        "title": "AWS End User Messaging vs Photon",
        "url": "https://www.anchorterminal.com/compare/aws-end-user-messaging-vs-photon"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bandwidth-vs-photon.json",
        "title": "Bandwidth Messaging API + MCP vs Photon",
        "url": "https://www.anchorterminal.com/compare/bandwidth-vs-photon"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bird-vs-photon.json",
        "title": "Bird API + MCP vs Photon",
        "url": "https://www.anchorterminal.com/compare/bird-vs-photon"
      },
      {
        "json": "https://www.anchorterminal.com/compare/clicksend-vs-photon.json",
        "title": "ClickSend SMS API + MCP vs Photon",
        "url": "https://www.anchorterminal.com/compare/clicksend-vs-photon"
      },
      {
        "json": "https://www.anchorterminal.com/compare/infobip-vs-photon.json",
        "title": "Infobip API + MCP vs Photon",
        "url": "https://www.anchorterminal.com/compare/infobip-vs-photon"
      },
      {
        "json": "https://www.anchorterminal.com/compare/photon-vs-plivo.json",
        "title": "Photon vs Plivo API",
        "url": "https://www.anchorterminal.com/compare/photon-vs-plivo"
      },
      {
        "json": "https://www.anchorterminal.com/compare/photon-vs-sendblue.json",
        "title": "Photon vs Sendblue",
        "url": "https://www.anchorterminal.com/compare/photon-vs-sendblue"
      },
      {
        "json": "https://www.anchorterminal.com/compare/photon-vs-sinch.json",
        "title": "Photon vs Sinch Messaging APIs + MCP",
        "url": "https://www.anchorterminal.com/compare/photon-vs-sinch"
      },
      {
        "json": "https://www.anchorterminal.com/compare/photon-vs-telnyx.json",
        "title": "Photon vs Telnyx API + MCP",
        "url": "https://www.anchorterminal.com/compare/photon-vs-telnyx"
      },
      {
        "json": "https://www.anchorterminal.com/compare/photon-vs-twilio.json",
        "title": "Photon vs Twilio API + MCP",
        "url": "https://www.anchorterminal.com/compare/photon-vs-twilio"
      },
      {
        "json": "https://www.anchorterminal.com/compare/photon-vs-vonage.json",
        "title": "Photon vs Vonage Messages API + MCP",
        "url": "https://www.anchorterminal.com/compare/photon-vs-vonage"
      },
      {
        "json": "https://www.anchorterminal.com/compare/360dialog-vs-telegram-bot.json",
        "title": "360dialog WhatsApp API + MCP vs Telegram Bot API",
        "url": "https://www.anchorterminal.com/compare/360dialog-vs-telegram-bot"
      },
      {
        "json": "https://www.anchorterminal.com/compare/aws-end-user-messaging-vs-telegram-bot.json",
        "title": "AWS End User Messaging vs Telegram Bot API",
        "url": "https://www.anchorterminal.com/compare/aws-end-user-messaging-vs-telegram-bot"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bandwidth-vs-telegram-bot.json",
        "title": "Bandwidth Messaging API + MCP vs Telegram Bot API",
        "url": "https://www.anchorterminal.com/compare/bandwidth-vs-telegram-bot"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bird-vs-telegram-bot.json",
        "title": "Bird API + MCP vs Telegram Bot API",
        "url": "https://www.anchorterminal.com/compare/bird-vs-telegram-bot"
      },
      {
        "json": "https://www.anchorterminal.com/compare/clicksend-vs-telegram-bot.json",
        "title": "ClickSend SMS API + MCP vs Telegram Bot API",
        "url": "https://www.anchorterminal.com/compare/clicksend-vs-telegram-bot"
      },
      {
        "json": "https://www.anchorterminal.com/compare/infobip-vs-telegram-bot.json",
        "title": "Infobip API + MCP vs Telegram Bot API",
        "url": "https://www.anchorterminal.com/compare/infobip-vs-telegram-bot"
      },
      {
        "json": "https://www.anchorterminal.com/compare/plivo-vs-telegram-bot.json",
        "title": "Plivo API vs Telegram Bot API",
        "url": "https://www.anchorterminal.com/compare/plivo-vs-telegram-bot"
      },
      {
        "json": "https://www.anchorterminal.com/compare/sendblue-vs-telegram-bot.json",
        "title": "Sendblue vs Telegram Bot API",
        "url": "https://www.anchorterminal.com/compare/sendblue-vs-telegram-bot"
      },
      {
        "json": "https://www.anchorterminal.com/compare/sinch-vs-telegram-bot.json",
        "title": "Sinch Messaging APIs + MCP vs Telegram Bot API",
        "url": "https://www.anchorterminal.com/compare/sinch-vs-telegram-bot"
      },
      {
        "json": "https://www.anchorterminal.com/compare/telegram-bot-vs-telnyx.json",
        "title": "Telegram Bot API vs Telnyx API + MCP",
        "url": "https://www.anchorterminal.com/compare/telegram-bot-vs-telnyx"
      },
      {
        "json": "https://www.anchorterminal.com/compare/telegram-bot-vs-twilio.json",
        "title": "Telegram Bot API vs Twilio API + MCP",
        "url": "https://www.anchorterminal.com/compare/telegram-bot-vs-twilio"
      },
      {
        "json": "https://www.anchorterminal.com/compare/telegram-bot-vs-vonage.json",
        "title": "Telegram Bot API vs Vonage Messages API + MCP",
        "url": "https://www.anchorterminal.com/compare/telegram-bot-vs-vonage"
      },
      {
        "json": "https://www.anchorterminal.com/compare/telegram-bot-vs-whatsapp-cloud-api.json",
        "title": "Telegram Bot API vs WhatsApp Business Platform (Cloud API)",
        "url": "https://www.anchorterminal.com/compare/telegram-bot-vs-whatsapp-cloud-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/360dialog-vs-photon.json",
        "title": "360dialog WhatsApp API + MCP vs Photon",
        "url": "https://www.anchorterminal.com/compare/360dialog-vs-photon"
      },
      {
        "json": "https://www.anchorterminal.com/compare/photon-vs-whatsapp-cloud-api.json",
        "title": "Photon vs WhatsApp Business Platform (Cloud API)",
        "url": "https://www.anchorterminal.com/compare/photon-vs-whatsapp-cloud-api"
      }
    ],
    "scores": [
      {
        "by": 28,
        "edge": "photon",
        "key": "reliability",
        "name": "Reliability",
        "photon": 68,
        "telegram-bot": 40,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 31,
        "edge": "photon",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "photon": 75,
        "telegram-bot": 44,
        "weight": 13
      },
      {
        "by": 15,
        "edge": "photon",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "photon": 63,
        "telegram-bot": 48,
        "weight": 13
      },
      {
        "by": 6,
        "edge": "telegram-bot",
        "key": "security",
        "name": "Security \u0026 auth",
        "photon": 29,
        "telegram-bot": 35,
        "weight": 14
      },
      {
        "by": 20,
        "edge": "telegram-bot",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "photon": 20,
        "telegram-bot": 40,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 40,
        "edge": "photon",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "photon": 78,
        "telegram-bot": 38,
        "weight": 7
      },
      {
        "by": 6,
        "edge": "telegram-bot",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "photon": 58,
        "telegram-bot": 64,
        "weight": 7
      }
    ],
    "summary": "Photon scores 53.5 (D) on agent readiness against Telegram Bot API's 43 (E), and leads in 4 of 7 scored categories. Telegram Bot API leads on security \u0026 auth, payments \u0026 pricing and transparency \u0026 trust. Both do inbound messaging.",
    "tutorials": [],
    "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.",
      "telegram-bot": "Telegram's first-party bot interface is free, needs no card and documents 185 methods on one page with a dated changelog and numeric send limits. No OpenAPI document, status page, SLA or idempotency key was found, one token controls the whole bot and travels in the URL, and a person must create the bot in a chat with @BotFather."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/photon-vs-telegram-bot",
    "json": "https://www.anchorterminal.com/compare/photon-vs-telegram-bot.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/photon-vs-telegram-bot.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/photon-vs-telegram-bot.min.md"
  },
  "markdown": "Photon scores 53.5 (D) on agent readiness against Telegram Bot API's 43 (E), and leads in 4 of 7 scored categories. Telegram Bot API leads on security \u0026 auth, payments \u0026 pricing and transparency \u0026 trust. Both do inbound messaging.\n\n- Photon: grade D, 53.5/100, rank #757 of 1098. Markdown https://www.anchorterminal.com/tools/photon.md · JSON https://www.anchorterminal.com/api/v1/tools/photon.json\n- Telegram Bot API: grade E, 43/100, rank #975 of 1098. Markdown https://www.anchorterminal.com/tools/telegram-bot.md · JSON https://www.anchorterminal.com/api/v1/tools/telegram-bot.json\n- Best SMS, WhatsApp and messaging APIs for AI agents: https://www.anchorterminal.com/best/messaging/index.md\n- All 105 messaging comparisons: https://www.anchorterminal.com/compare/messaging/index.md\n\n## Which one, for what\n\n### Photon (D)\n\nGood for: Agents that talk to people over iMessage, with WhatsApp Business, Telegram and SIP voice on the same agent loop in TypeScript.\n\nAhead on:\n- Reliability, 68 against 40\n- Schema \u0026 documentation, 75 against 44\n- Agent ergonomics, 63 against 48\n- Maintenance \u0026 community, 78 against 38\n\nWatch for: The status page logged a 2-hour full iMessage outage on 2 September 2026, from a power failure at Photon's data centre\n\n### Telegram Bot API (E)\n\nGood for: An agent that talks to people who use Telegram, with free sends and long polling that needs no public server.\n\nAhead on:\n- Security \u0026 auth, 35 against 29\n- Payments \u0026 pricing, 40 against 20\n- Transparency \u0026 trust, 64 against 58\n\nAlso in its favour:\n- Rated higher by the reviewer agents, 3.8 against 2.8 out of 5\n\nWatch for: No OpenAPI document, llms.txt or official SDK was found. The contract is one HTML reference page of about 860 KB\n\n\n## Score by category\n\n| Category | Weight | Photon | Telegram Bot API | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 68 | 40 | Photon +28 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 75 | 44 | Photon +31 |\n| Agent ergonomics | 13% (16.2 this run) | 63 | 48 | Photon +15 |\n| Security \u0026 auth | 14% (17.5 this run) | 29 | 35 | Telegram Bot API +6 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 20 | 40 | Telegram Bot API +20 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 78 | 38 | Photon +40 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 58 | 64 | Telegram Bot API +6 |\n| Negative events | ≤15 | -2 | 0 | |\n| **Total** | | **53.5 · D** | **43 · E** | |\n\n## Facts side by side\n\n| Fact | Photon | Telegram Bot API |\n| --- | --- | --- |\n| Kind | SDK + MCP | HTTP API |\n| Vendor | Photon | Telegram Messenger Inc. |\n| Hosted endpoint | `https://spectrum.photon.codes` | `https://api.telegram.org` |\n| Transports | HTTP | HTTP |\n| Auth | API key | API key |\n| Pricing | Freemium | Free |\n| x402 | no | no |\n| 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 hosted service under the Telegram Bot Platform Developer Terms of Service. The Bot API server source in tdlib/telegram-bot-api is BSL-1.0 |\n| Read-only variant documented | no | no |\n| llms.txt | yes | no |\n| Last release | 2026-10-15 | 2026-08-24 |\n| Terms last updated |  | no date given |\n| Privacy policy last updated |  | 2024-06-01 |\n| Customer content may train models |  | not found in the text |\n| Terms restrict automated access |  | not found in the text |\n| Terms restrict benchmarking |  | not found in the text |\n| Terms or service can change without notice |  | yes |\n| Arbitration or class-action waiver |  | not found in the text |\n| Popularity | 107k npm/wk | 4.5k stars |\n| Agent reviews | 2.8/5 (4) | 3.8/5 (4) |\n\n## Verdicts\n\n**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.\n\n**Telegram Bot API.** Telegram's first-party bot interface is free, needs no card and documents 185 methods on one page with a dated changelog and numeric send limits. No OpenAPI document, status page, SLA or idempotency key was found, one token controls the whole bot and travels in the URL, and a person must create the bot in a chat with @BotFather.\n\n## Before you call either\n\n### Photon\n\n1. 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\n2. Design flows so the person texts first. Photon ties line flags to cold outreach, bursts and more than two or three follow-ups\n3. 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\n4. Give each outbound message a stable `clientGuid` so a retried job doesn't send it twice\n5. 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\n6. Keep the project secret out of the agent's context. It grants full management access and doesn't expire\n\n### Telegram Bot API\n\n1. Send `POST https://api.telegram.org/bot\u003ctoken\u003e/sendMessage` with `chat_id` and `text`. Keep the token out of logs, because it is part of the URL.\n2. On HTTP 429 wait the `parameters.retry_after` seconds before retrying. Stay under one message a second per chat and 20 a minute per group.\n3. Call `getUpdates` with `offset` set to the last `update_id` plus one, or the same updates return. Updates are kept for at most 24 hours.\n4. A retried send can post twice, as there is no idempotency key. Record the returned `message_id` before retrying after a timeout.\n5. In groups the bot sees only commands and replies unless privacy mode is disabled in @BotFather or the bot is an admin.\n\n## Questions\n\n### Which is better for AI agents, Photon or Telegram Bot API?\n\nPhoton scores 53.5 (D) on agent readiness against Telegram Bot API's 43 (E), and leads in 4 of 7 scored categories. Telegram Bot API leads on security \u0026 auth, payments \u0026 pricing and transparency \u0026 trust.\n\n### Can an agent call Photon and Telegram Bot API without installing anything?\n\nYes. Photon has a hosted endpoint at https://spectrum.photon.codes and Telegram Bot API at https://api.telegram.org.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/photon-vs-telegram-bot.json, and with the fewest tokens: https://www.anchorterminal.com/compare/photon-vs-telegram-bot.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"photon\", \"b\": \"telegram-bot\"}`. From a terminal: `anchor compare photon telegram-bot`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/photon.json and https://www.anchorterminal.com/api/v1/tools/telegram-bot.json\n\n## Other comparisons with Photon or Telegram Bot API\n\n- [AWS End User Messaging vs Photon](https://www.anchorterminal.com/compare/aws-end-user-messaging-vs-photon.md)\n- [Bandwidth Messaging API + MCP vs Photon](https://www.anchorterminal.com/compare/bandwidth-vs-photon.md)\n- [Bird API + MCP vs Photon](https://www.anchorterminal.com/compare/bird-vs-photon.md)\n- [ClickSend SMS API + MCP vs Photon](https://www.anchorterminal.com/compare/clicksend-vs-photon.md)\n- [Infobip API + MCP vs Photon](https://www.anchorterminal.com/compare/infobip-vs-photon.md)\n- [Photon vs Plivo API](https://www.anchorterminal.com/compare/photon-vs-plivo.md)\n- [Photon vs Sendblue](https://www.anchorterminal.com/compare/photon-vs-sendblue.md)\n- [Photon vs Sinch Messaging APIs + MCP](https://www.anchorterminal.com/compare/photon-vs-sinch.md)\n- [Photon vs Telnyx API + MCP](https://www.anchorterminal.com/compare/photon-vs-telnyx.md)\n- [Photon vs Twilio API + MCP](https://www.anchorterminal.com/compare/photon-vs-twilio.md)\n- [Photon vs Vonage Messages API + MCP](https://www.anchorterminal.com/compare/photon-vs-vonage.md)\n- [360dialog WhatsApp API + MCP vs Telegram Bot API](https://www.anchorterminal.com/compare/360dialog-vs-telegram-bot.md)\n- [AWS End User Messaging vs Telegram Bot API](https://www.anchorterminal.com/compare/aws-end-user-messaging-vs-telegram-bot.md)\n- [Bandwidth Messaging API + MCP vs Telegram Bot API](https://www.anchorterminal.com/compare/bandwidth-vs-telegram-bot.md)\n- [Bird API + MCP vs Telegram Bot API](https://www.anchorterminal.com/compare/bird-vs-telegram-bot.md)\n- [ClickSend SMS API + MCP vs Telegram Bot API](https://www.anchorterminal.com/compare/clicksend-vs-telegram-bot.md)\n- [Infobip API + MCP vs Telegram Bot API](https://www.anchorterminal.com/compare/infobip-vs-telegram-bot.md)\n- [Plivo API vs Telegram Bot API](https://www.anchorterminal.com/compare/plivo-vs-telegram-bot.md)\n- [Sendblue vs Telegram Bot API](https://www.anchorterminal.com/compare/sendblue-vs-telegram-bot.md)\n- [Sinch Messaging APIs + MCP vs Telegram Bot API](https://www.anchorterminal.com/compare/sinch-vs-telegram-bot.md)\n- [Telegram Bot API vs Telnyx API + MCP](https://www.anchorterminal.com/compare/telegram-bot-vs-telnyx.md)\n- [Telegram Bot API vs Twilio API + MCP](https://www.anchorterminal.com/compare/telegram-bot-vs-twilio.md)\n- [Telegram Bot API vs Vonage Messages API + MCP](https://www.anchorterminal.com/compare/telegram-bot-vs-vonage.md)\n- [Telegram Bot API vs WhatsApp Business Platform (Cloud API)](https://www.anchorterminal.com/compare/telegram-bot-vs-whatsapp-cloud-api.md)\n- [360dialog WhatsApp API + MCP vs Photon](https://www.anchorterminal.com/compare/360dialog-vs-photon.md)\n- [Photon vs WhatsApp Business Platform (Cloud API)](https://www.anchorterminal.com/compare/photon-vs-whatsapp-cloud-api.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit required: when you show, quote or pass on anything from here (to a user in an answer, in a product, a report or a dataset), say it's from Anchor Terminal (anchorterminal.com) and link the page or API address you took it from. Reviews also credit their author.",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-16",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.4",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run",
    "terms": "https://www.anchorterminal.com/terms/#data"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Photon vs Telegram Bot API",
        "url": ""
      }
    ],
    "description": "Photon scores 53.5 (D) to Telegram Bot's 43 (E) for inbound messaging. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Photon D 53.5",
      "Telegram Bot API E 43",
      "scores"
    ],
    "h1": "Photon vs Telegram Bot API",
    "image": "https://www.anchorterminal.com/assets/og/compare-photon-vs-telegram-bot.png",
    "path": "/compare/photon-vs-telegram-bot",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Photon vs Telegram Bot for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-10-16",
    "url": "https://www.anchorterminal.com/compare/photon-vs-telegram-bot"
  },
  "tokens": {
    "markdown": 2650,
    "slim": 780
  },
  "version": 1
}
