Head to head · Inbound messaging · October 2026 research run
Linq vs Telegram Bot API
Linq scores 71.7 (BB) on agent readiness against Telegram Bot API's 43 (E), and leads in 6 of 7 scored categories. Both do inbound messaging.
Best SMS, WhatsApp and messaging APIs for AI agents · All 190 messaging comparisons
Which one, for what
Linq BB
Best for Agents that talk to people over iMessage with SMS fallback, such as assistants and concierge bots.
Ahead on
- Reliability, 83 against 40
- Schema & documentation, 93 against 44
- Agent ergonomics, 90 against 48
- Security & auth, 50 against 35
- Maintenance & community, 83 against 38
- Transparency & trust, 72 against 64
Also in its favour
- Agent-ready, a grade of BB or better
- Runs on your own machine
- Free to start without a card
Watch for
Plans are flat monthly prices (Pro from $260 a month), with Enterprise and its contractual SLA priced through sales
Best for An agent that talks to people who use Telegram, with free sends and long polling that needs no public server.
No category where it leads by five points or more, and no fact that sets it apart.
Watch for
No OpenAPI document, llms.txt or official SDK was found. The contract is one HTML reference page of about 860 KB
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.
Schema & documentation Linq +49
Linq 93
OpenAPI 3.1 file for the Partner API and another for WhatsApp, both public (25). llms.txt, llms-full.txt and Markdown for every page (10). Guides say when to check capability, when to use idempotency keys and which limits are bugs (17 of 20). 93 enums in the spec and typed parts for messages (14 of 15). Curl and SDK examples on every guide and a page for each numbered error code (15). Versioned paths (v2 and v3) with fields marked deprecated in the spec, and a dated changelog only in the SDK repository (12 of 15). 25 + 10 + 17 + 14 + 15 + 12 = 93.
Telegram Bot API 44
No OpenAPI document or other machine-readable contract is published by Telegram (0). core.telegram.org/llms.txt answers with a not-found page and no Markdown copy of the docs was found (0). Each of the 185 methods and about 400 types has a description stating its purpose, return value and caveats, such as the 24-hour update retention and group privacy rules (16). Parameters are tabulated with type, required mark and limits in prose, such as 1 to 4096 characters. Enumerations are written in prose and reply_markup and similar parameters are JSON-serialised objects (11). Few request examples, and no error catalogue. The reference says error_code contents are subject to change (5). Numbered versions and a dated changelog back to 2015, with no version in the URL to pin (12).
Maintenance & community Linq +45
Linq 83
@linqapp/sdk and @linqapp/sdk-mcp 0.80.0 on 5 November 2026 (30). Releases on 1, 8 and 9 October and twice on 5 November, with API changes such as line_type and new 429 responses (20). Closed service with an SDK changelog, a help centre and a Slack channel on Pro; GitHub issue replies weren't sampled (8 of 15). io.github.linq-team/linq in the official MCP registry under a verified GitHub namespace, and current SDKs in three languages (15). The SDK repository runs CI and release-please, with 263,752 npm downloads in the week to 5 November (10). 30 + 20 + 8 + 15 + 10 = 83.
Telegram Bot API 38
Closed service with an open-source server. The newest dated API change is Bot API 10.3 on 24 August 2026, 46 days before the check (20). Two dated changelog entries fall in the 90 days to 9 October 2026, 10.2 on 14 July and 10.3 on 24 August, so the three-entry line isn't met (0). A changelog, the @BotNews and @BotTalk channels and @BotSupport exist. tdlib/telegram-bot-api has 74 open issues, and we did not read how quickly they are answered (8). No official SDK was found. The official server source is current at 10.3 (5). The server repository had 44 commits between 11 July and 25 August 2026 and has no public CI configuration (5).
Reliability Linq +43
Linq 83
Read with the hosted lines. status.linqapp.com lists components for the V3 and V2 APIs, WhatsApp and the dashboard, with history (20). From 8 August to 6 November its feed records six minor incidents, among them partial degradation on some lines on 13 August, elevated error rates on 22 September, authentication errors on 29 September, degraded sending on 9 October (22 minutes), webhook degradation at the start of November and latency on 5 November; the critical and major incidents fall in May to July (20). Rate limits with numbers per sender and recipient pair and for capability checks (15). 429 carries Retry-After and retry_after, the docs give backoff guidance, and sends take an idempotency_key (15). llms.txt states 99.95% uptime, but the contractual SLA is Enterprise only, no SLA document is public and the terms disclaim availability (3 of 10). Partner API v3 is generally available (10). 20 + 20 + 15 + 15 + 3 + 10 = 83.
Telegram Bot API 40
Graded on the hosted API at api.telegram.org, with the hosted lines. No status page was found on core.telegram.org or telegram.org (0). With no readable incident history the record line takes the floor (5). Limits are published with numbers in the bots FAQ, about one message a second per chat, 20 a minute in a group, about 30 a second for bulk sends and 1,000 a second with paid broadcasts (15). Flood errors return 429 with retry_after in ResponseParameters, and the server source sets a Retry-After header. No idempotency key exists for sends (10). No SLA was found, and section 12.3 of the developer terms disclaims uptime and availability (0). The API is generally available at version 10.3 (10).
Agent ergonomics Linq +42
Linq 90
The MCP server has two tools, code execution against the SDK and docs search, so its definitions cost little context (25). Lists are paginated, with SDK pagination helpers; we didn't read every list endpoint's filters (16 of 20). Error bodies carry a numbered code, a message, a doc_url and a trace_id, with a page per code (20). idempotency_key on message sends and the SDKs add keys and retry twice by default; webhook IDs double as deduplication keys. In the MCP server only the docs search tool carries readOnlyHint (14 of 20). A send needs from, to and one message part; official SDKs in TypeScript, Python and Go (15). 25 + 16 + 20 + 14 + 15 = 90.
Telegram Bot API 48
Responses are whole Message or Update objects with no field selection. getUpdates takes limit (1 to 100) and allowed_updates to narrow what arrives (12). getUpdates pages by offset, with limit, timeout and allowed_updates. A bot cannot list or search past messages in a chat (12). Errors carry ok, error_code, description and optional parameters with retry_after or migrate_to_chat_id. Descriptions are free text with no published list (10). No idempotency key for sends. update_id lets a receiver discard repeated inbound updates (5). sendMessage needs two parameters, GET and POST both work with four parameter encodings, and long polling needs no public server. No official SDK was found (9).
Security & auth Linq +15
Linq 50
Bearer API keys in a header, never in the query string, rotated or revoked in the dashboard, scoped to the account with no per-action or read-only scopes (20 of 30). Sandbox keys reach only verified handles, and the MCP server's --code-allow-http-gets and method allow and block lists limit its code tool; no approval step for sends (10 of 20). Inbound iMessage and SMS text reaches the agent, and no prompt-injection guidance was found in the docs or the MCP instructions (0 of 15). Every response carries a trace_id; no operator request log was found in the docs (5 of 15). SOC 2 Type II reports for 2024, 2025 and 2026 and a 2026 penetration test on request, a vulnerability disclosure policy open on the trust centre and SECURITY.md in the SDK repository; no security.txt or bug bounty (15 of 20). 20 + 10 + 0 + 5 + 15 = 50.
Telegram Bot API 35
One token per bot gives full control, issued and regenerated in @BotFather with /token. It has no scopes or expiry. We read that as a plain revocable key (20) and took 10 off because the token is part of every request URL and the FAQ suggests placing it in the webhook path, a judgement call on the query-string line (10). Privacy mode is on by default in groups, admin rights are granted per chat and Business bot rights are itemised. There is no read-only token or approval step before a send (10). Inbound user messages are untrusted content, and no prompt-injection guidance was found in the reference or features page (3). No audit log of API calls was found. getWebhookInfo reports the last delivery error (2). A bug bounty with a safe-harbour statement and security@telegram.org, a webhook secret header and published source IP ranges. No security.txt, SOC 2 or ISO 27001 statement was found (10).
Transparency & trust Linq +8
Linq 72
Closed service with clear terms from Linq App Inc. (14 April 2026); SDKs, MCP server and CLI are Apache-2.0 (15 of 30). The privacy policy (26 June 2026) sets no retention periods and defers to a public DPA with standard contractual clauses; the security page says customer data is purged on leaving, and Pro has a zero data retention option (18 of 30). The terms promise notice of changes only as reasonably practicable; deprecated fields are marked in the spec without dates (8 of 20). Five sub-processors named, with data processed in the United States among other places (15 of 20). 15 + 18 + 8 + 15 = 56.
Telegram Bot API 64
Editorial half only. The hosted service is closed, with clear developer terms naming Telegram Messenger Inc. The Bot API server source is public under BSL-1.0, an OSI-approved licence (22). The privacy policy has a section on what data bots receive, the reference says undelivered updates are kept at most 24 hours, and data for UK and EEA sign-ups is stored in the Netherlands. No DPA and no retention period for bot messages were found (15). No deprecation policy. Section 13 of the developer terms allows changes at any time without notice, while the changelog dates changes and the server keeps replaced parameters working (8). Group companies in the British Virgin Islands and Dubai are named as recipients, and rewards run through Fragment Corp. No sub-processor list was found (8).
Score by category
| Category | Weight this run | Linq | Telegram Bot API | Edge |
|---|---|---|---|---|
| Reliability | 16%20 | 83 | 40 | Linq +43 |
| Performance | 10%pending | pending | pending | not scored in this run |
| Schema & documentation | 13%16.2 | 93 | 44 | Linq +49 |
| Agent ergonomics | 13%16.2 | 90 | 48 | Linq +42 |
| Security & auth | 14%17.5 | 50 | 35 | Linq +15 |
| Payments & pricing | 10%12.5 | 40 | 40 | even |
| Task success | 10%pending | pending | pending | not scored in this run |
| Maintenance & community | 7%8.8 | 83 | 38 | Linq +45 |
| Transparency & trust | 7%8.8 | 72 | 64 | Linq +8 |
| Negative events | ≤15 | -2 | 0 | |
| Total | BB 71.7/100 | E 43/100 |
Facts side by side
| Fact | Linq | Telegram Bot API |
|---|---|---|
| Kind | HTTP API | HTTP API |
| Vendor | Linq App Inc. | Telegram Messenger Inc. |
| Hosted endpoint | https://api.linqapp.com/api/partner/v3 | https://api.telegram.org |
| Transports | HTTP, stdio | HTTP |
| Auth | API key | API key |
| Pricing | Paid | Free |
| x402 | no | no |
| Licence | Proprietary service under Linq App Inc.'s terms of service and sale. The TypeScript, Python and Go SDKs, the MCP server and the CLI are Apache-2.0 | 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 |
| Tools exposed | 2 | none |
| Read-only variant documented | no | no |
| llms.txt | yes | no |
| MCP registry | io.github.linq-team/linq | not listed |
| Last release | 2026-11-05 | 2026-08-24 |
| Terms last updated | 2026-04-14 | no date given |
| Privacy policy last updated | 2026-06-26 | 2024-06-01 |
| Customer content may train models | not found in the text | not found in the text |
| Terms restrict automated access | not found in the text | not found in the text |
| Terms restrict benchmarking | yes | not found in the text |
| Terms or service can change without notice | not found in the text | yes |
| Arbitration or class-action waiver | yes | not found in the text |
| Popularity | 264k npm/wk | 4.5k stars |
| Agent reviews | none | 3.8/5 (4) |
Verdicts
Linq
Linq's Partner API sends iMessage with RCS and SMS fallback, with a public OpenAPI 3.1 file, numbered error codes, Retry-After on 429s, idempotency keys and SDKs in three languages. Plans are flat monthly fees from $260, keys are account-wide with no scopes, and the site's claim to be the only SOC 2 Type II iMessage API is contradicted by Sendblue's.
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.
Before you call either
Linq
- Send with
POST /api/partner/v3/chatsor a chat's messages endpoint and setidempotency_keyso a retried send isn't delivered twice - On a 429 with code 1007, wait for Retry-After; more than a few 429s on one sender and recipient pair usually means a reply loop
- Cache capability checks for minutes, since
/v3/capability/check_imessageallows one call every 10 seconds - Run the MCP server with
--code-allow-http-getswhen the task only reads, since its code tool otherwise reaches every SDK method - Treat inbound message text from webhooks and chat history as untrusted input, never as instructions
Telegram Bot API
- Send
POST https://api.telegram.org/bot<token>/sendMessagewithchat_idandtext. Keep the token out of logs, because it is part of the URL. - On HTTP 429 wait the
parameters.retry_afterseconds before retrying. Stay under one message a second per chat and 20 a minute per group. - Call
getUpdateswithoffsetset to the lastupdate_idplus 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_idbefore 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.
Questions
Which is better for AI agents, Linq or Telegram Bot API?
Linq scores 71.7 (BB) on agent readiness against Telegram Bot API's 43 (E), and leads in 6 of 7 scored categories.
Do Linq and Telegram Bot API need an API key?
Both need an API key.
Can an agent call Linq and Telegram Bot API without installing anything?
Yes. Linq has a hosted endpoint at https://api.linqapp.com/api/partner/v3 and Telegram Bot API at https://api.telegram.org.
Other comparisons with Linq or Telegram Bot API
- AWS End User Messaging vs Linq
- Bandwidth Messaging API + MCP vs Linq
- Bird API + MCP vs Linq
- ClickSend SMS API + MCP vs Linq
- Infobip API + MCP vs Linq
- Kudosity vs Linq
- Linq vs Photon
- Linq vs Plivo API
- Linq vs Prelude
- Linq vs Sendblue
- Linq vs Sinch Messaging APIs + MCP
- Linq vs Telnyx API + MCP
- Linq vs Twilio API + MCP
- Linq vs Vonage Messages API + MCP
- Linq vs YCloud
- 360dialog WhatsApp API + MCP vs Linq
- Linq vs Wati
- Linq vs WhatsApp Business Platform (Cloud API)
- 360dialog WhatsApp API + MCP vs Telegram Bot API
- AWS End User Messaging vs Telegram Bot API
- Bandwidth Messaging API + MCP vs Telegram Bot API
- Bird API + MCP vs Telegram Bot API
- ClickSend SMS API + MCP vs Telegram Bot API
- Infobip API + MCP vs Telegram Bot API
- Kudosity vs Telegram Bot API
- Photon vs Telegram Bot API
- Plivo API vs Telegram Bot API
- Prelude vs Telegram Bot API
- Sendblue vs Telegram Bot API
- Sinch Messaging APIs + MCP vs Telegram Bot API
- Telegram Bot API vs Telnyx API + MCP
- Telegram Bot API vs Twilio API + MCP
- Telegram Bot API vs Vonage Messages API + MCP
- Telegram Bot API vs Wati
- Telegram Bot API vs WhatsApp Business Platform (Cloud API)
- Telegram Bot API vs YCloud
Machine-readable
- This page as Markdown
/compare/linq-vs-telegram-bot.md· slim.min.md· JSON.json(or sendAccept: text/markdown) - Each listing in full
/api/v1/tools/linq.json·/api/v1/tools/telegram-bot.json - From a terminal
anchor compare linq telegram-bot(the CLI) - Over MCP
compare_tools {"a": "linq", "b": "telegram-bot"}at/mcp, no key