# Linq vs Telegram Bot API (slim)

> Linq scores 71.7 (BB) to Telegram Bot's 43 (E) for inbound messaging. Prices, MCP, x402, uptime and agent notes side by side.

- Full: https://www.anchorterminal.com/compare/linq-vs-telegram-bot.md (~5,100 tokens) · this version ~3,030 tokens · JSON https://www.anchorterminal.com/compare/linq-vs-telegram-bot.json · canonical https://www.anchorterminal.com/compare/linq-vs-telegram-bot
- Index: https://www.anchorterminal.com/llms.txt · API: https://www.anchorterminal.com/api/v1/index.json · MCP: https://www.anchorterminal.com/mcp · Updated: 2026-11-07
- Licence: CC BY 4.0, credit Anchor Terminal and link this page (https://www.anchorterminal.com/terms/#data)

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.

- Linq: BB 71.7, rank #151 of 1510 · https://www.anchorterminal.com/tools/linq.min.md
- Telegram Bot API: E 43, rank #1261 of 1510 · https://www.anchorterminal.com/tools/telegram-bot.min.md
- Linq, good 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 Agent-ready, a grade of BB or better; Runs on your own machine; Free to start without a card.
- Telegram Bot API, good for An agent that talks to people who use Telegram, with free sends and long polling that needs no public server.

| Category | Linq | Telegram Bot API |
| --- | --- | --- |
| Reliability (16%) | 83 | 40 |
| Performance (10%) | pending | pending |
| Schema & documentation (13%) | 93 | 44 |
| Agent ergonomics (13%) | 90 | 48 |
| Security & auth (14%) | 50 | 35 |
| Payments & pricing (10%) | 40 | 40 |
| Task success (10%) | pending | pending |
| Maintenance & community (7%) | 83 | 38 |
| Transparency & trust (7%) | 72 | 64 |

| Fact (where they differ) | Linq | Telegram Bot 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 |
| Pricing | Paid | Free |
| 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 |
| 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 |
| 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) |

Why the edge:
- 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).)
