Head to head · SMS · October 2026 research run

Linq vs Sinch Messaging APIs + MCP

Linq scores 71.7 (BB) on agent readiness against Sinch Messaging APIs + MCP's 64.5 (B), and leads in 3 of 7 scored categories. Sinch Messaging APIs + MCP leads on security & auth and transparency & trust. Both do sms.

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 73
  • Schema & documentation, 93 against 81
  • Agent ergonomics, 90 against 50

Also in its favour

  • Agent-ready, a grade of BB or better

Watch for

Plans are flat monthly prices (Pro from $260 a month), with Enterprise and its contractual SLA priced through sales

Sinch Messaging APIs + MCP B

Best for Teams that want SMS, RCS and WhatsApp through one API with wide country coverage, and those already on Sinch voice or Mailgun.

Ahead on

  • Security & auth, 55 against 50
  • Transparency & trust, 77 against 72

Watch for

The MCP server is a developer preview, 0.0.1-beta.7 since 30 October 2026

Why the edge

Each category where one leads by five points or more, with the reason behind each side's score from its assessment. The numbers are in the table below; this is what they stand for.

Agent ergonomics Linq +40

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.

Sinch Messaging APIs + MCP 50

We didn't confirm page-size or field controls on message lists (10 of 25). Pagination and filters not confirmed (10 of 20). Error responses with codes, and back-off advice for 5xx (15 of 20). No idempotency key or de-duplication found, and the 54 MCP tools carry no readOnlyHint or destructiveHint annotations (0 of 20). Official SDKs in Node, Python, Java and .NET. A send names an app, a recipient, a channel and a message object (15).

Schema & documentation Linq +12

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.

Sinch Messaging APIs + MCP 81

OpenAPI YAML for the Conversation API, linked from its reference page (25). llms.txt with Markdown pages (10). Reference pages describe each endpoint and channel, with little on when not to use one (12 of 20). Typed JSON with message types per channel, not checked for enums (10 of 15). Examples and error codes in the references (12 of 15). /v1 paths and Conversation release notes, with no versioning policy found (12 of 15).

Reliability Linq +10

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.

Sinch Messaging APIs + MCP 73

Statuspage at status.sinch.com with components and history (20). Read from its own history and incident pages on 2 November (the 1 October count from IsDown, a third-party copy of the page, is struck). From 4 August to 2 November the incidents touching the SMS, Conversation and Verification APIs each name one region, one channel, one carrier or a subset of accounts. The REST API in the US had intermittent errors and delayed deliveries from 16 to 17 August (Messaging APIs, REST - US only), Conversation API WhatsApp in Brazil degraded on 4 September and Verification's Okta integration on 27 August. On 26 October a planned change took the customer dashboard down and blocked sending for a subset of accounts through a balance error (12:58 to 15:11 UTC). The other majors on the page are calling in AP-Southeast-1 and Campaigns stats. Partial incidents read as minor, so minor only (20). The Conversation API publishes 800 requests a second per project and a 500,000-message queue per app drained at 20 a second by default (15). Exceeding the limits returns 429, and 5xx errors come with exponential back-off advice, but there's no Retry-After (8 of 15). No SLA found (0). The SMS and Conversation APIs are generally available. The MCP server is a developer preview (10). 20 + 20 + 15 + 8 + 0 + 10 = 73.

Security & auth Sinch Messaging APIs + MCP +5

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.

Sinch Messaging APIs + MCP 55

The SMS API takes a service-plan Bearer token, and the Conversation API OAuth 2.0 client credentials from a project access key, with Basic also accepted. No per-key scopes found (25 of 30). No read-only mode or confirmation step. The MCP server's tool allow-list (--tags, or MCP_TAGS since 0.0.1-beta.7) can leave out whole groups such as provisioning, and its released version runs over stdio only (5 of 20). Inbound messages are untrusted text. Conversation API callbacks are signed with HMAC-SHA256 over the body, a nonce and a timestamp when a secret is set, and we found no prompt-injection guidance (5 of 15). Message and delivery lookups by API, no audit log found (10 of 15). The trust centre, re-read on 2 November, lists ISO 27001:2022, SOC 2 Type II, PCI and HIPAA, links security@sinch.com to report a vulnerability and posts dated notes on third-party vulnerabilities. No security.txt (404 on 2 November), no bug bounty and no advisories for the listed packages in OSV. Bandwidth's messaging listing takes 15 with a public bug bounty, so 10 of 20 here. 25 + 5 + 5 + 10 + 10 = 55.

Transparency & trust Sinch Messaging APIs + MCP +5

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.

Sinch Messaging APIs + MCP 77

Closed service with general terms. The contracting Sinch entity is named only in the order form (15). Privacy notice, a DPA, a sub-processor list and deletion on request, with no retention periods found (20 of 30). Dated notices in the release notes (Template Management API v1 stopped on 31 January 2026, the v1alpha and v1beta Batch endpoints end on 16 December 2026), but no general deprecation policy found (10 of 20). The sub-processor list, re-read on 2 November, gives each provider's hosting location by service and region (for example AWS for the Conversation API in the USA and Brazil) and promises 30 days' notice of a new one, as Bandwidth's list is read (20). 15 + 20 + 10 + 20 = 65.

Score by category

CategoryWeight this runLinqSinch Messaging APIs + MCPEdge
Reliability16%208373Linq +10
Performance10%pendingpendingpendingnot scored in this run
Schema & documentation13%16.29381Linq +12
Agent ergonomics13%16.29050Linq +40
Security & auth14%17.55055Sinch Messaging APIs + MCP +5
Payments & pricing10%12.54040even
Task success10%pendingpendingpendingnot scored in this run
Maintenance & community7%8.88383even
Transparency & trust7%8.87277Sinch Messaging APIs + MCP +5
Negative events≤15-20
TotalBB 71.7/100B 64.5/100

Facts side by side

FactLinqSinch Messaging APIs + MCP
KindHTTP APIHTTP API
VendorLinq App Inc.Sinch
Hosted endpointhttps://api.linqapp.com/api/partner/v3https://us.sms.api.sinch.com/xms/v1
TransportsHTTP, stdioHTTP, stdio
AuthAPI keyOAuth or key
PricingPaidPay per use
Price for smsnot published$0.0078 per message
x402nono
LicenceProprietary 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.0Apache-2.0
Tools exposed259
Read-only variant documentednono
llms.txtyesyes
MCP registryio.github.linq-team/linqnot listed
Last release2026-11-052026-10-28
Terms last updated2026-04-142026-06-01
Privacy policy last updated2026-06-262025-12-12
Customer content may train modelsnot found in the textnot found in the text
Terms restrict automated accessnot found in the textnot found in the text
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 waiveryesnot found in the text
Popularity264k npm/wk1 stars, 16k npm/wk, 11k PyPI/wk
Agent reviewsnone3/5 (2)

How the scores have moved

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.

Sinch Messaging APIs + MCP

The Conversation API sends SMS, RCS, WhatsApp, Viber and Messenger through one message format, with published rate limits and signed callbacks. Keys carry no scopes, there's no SLA or bug bounty, and the MCP server is still a developer preview whose 59 tools carry no read-only or destructive annotations.

Before you call either

Linq

  1. Send with POST /api/partner/v3/chats or a chat's messages endpoint and set idempotency_key so a retried send isn't delivered twice
  2. 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
  3. Cache capability checks for minutes, since /v3/capability/check_imessage allows one call every 10 seconds
  4. Run the MCP server with --code-allow-http-gets when the task only reads, since its code tool otherwise reaches every SDK method
  5. Treat inbound message text from webhooks and chat history as untrusted input, never as instructions

Sinch Messaging APIs + MCP

  1. Load the MCP with --tags (or MCP_TAGS) for the channels you need, or all 59 tools land in context
  2. Run the MCP over stdio, and keep any SSE bridge such as supergateway on localhost, since it adds no authentication
  3. Expect sends to drain at 20 messages a second per app unless Sinch raises it
  4. Verify x-sinch-webhook-signature against the raw body before parsing the JSON
  5. Use the regional base URL (us, eu or br) that matches the project; the MCP rejects any other CONVERSATION_REGION at startup

Questions

Which is better for AI agents, Linq or Sinch Messaging APIs + MCP?

Linq scores 71.7 (BB) on agent readiness against Sinch Messaging APIs + MCP's 64.5 (B), and leads in 3 of 7 scored categories. Sinch Messaging APIs + MCP leads on security & auth and transparency & trust.

Do Linq and Sinch Messaging APIs + MCP need an API key?

Linq needs an API key. Sinch Messaging APIs + MCP takes an API key or an OAuth sign-in.

Can an agent call Linq and Sinch Messaging APIs + MCP without installing anything?

Yes. Linq has a hosted endpoint at https://api.linqapp.com/api/partner/v3 and Sinch Messaging APIs + MCP at https://us.sms.api.sinch.com/xms/v1.

Other comparisons with Linq or Sinch Messaging APIs + MCP

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.