Linq: iMessage, RCS, and SMS from one Partner API logoLinq: iMessage, RCS, and SMS from one Partner API
One bearer token, one REST base. Linq picks the line and protocol unless you pin it. Built for support, reminders, and agents that need to live in Messages — not another SMS-only gateway.
devrels.xyz/a/263Linq: iMessage, RCS, and SMS from one Partner API. If your product needs to talk to people where they already reply — Apple Messages, Google RCS, or SMS — Linq is a REST layer for that, not a Solana program. This is the builder path from docs.linqapp.com.

What it is
The Partner API lives at https://api.linqapp.com/api/partner/v3. You get a bearer token, one or more provisioned numbers, and (usually) a webhook URL. From there you send chats, media, reactions, typing, polls, even iMessage effects. Incoming events come back as webhooks.
Product site: linqapp.com. They market sandbox signup and a partner token from a Linq rep. Treat access as provisioned, not a public free-for-all key in npm.
Send the first message
Simplest path: POST /v3/messages with recipients and parts. Leave from off. Linq chooses a sending line, reuses an existing chat when it can, and tells you what it did.
# Token from Linq — never commit it
export LINQ_API_KEY="…"
curl -sS -X POST https://api.linqapp.com/api/partner/v3/messages \
-H "Authorization: Bearer $LINQ_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"to": ["+14155550100"],
"message": {
"parts": [{ "type": "text", "value": "Hi from the Partner API." }]
}
}'Numbers are E.164 (+1…), no spaces or dashes. The response includes from (the line used), chat_id, created_new_chat, service (e.g. iMessage), and a from_selection.reason such as reused chat, new best number, or failover.
Older examples use POST /v3/chats with an explicit from. That still works when you must pin a line. Prefer messages-without-from when you want Linq to load-balance the pool.
SDKs and agents
Official clients handle auth, retries, types, and idempotency.
- TypeScript:
npm i @linqapp/sdk - Python:
pip install linq-python - Go:
go get github.com/linq-team/linq-go - CLI:
npm i -g @linqapp/clithenlinq login --token …
They also ship a coding-agent plugin (Claude Code / Cursor marketplace linq-team/linq-ai) with docs search and an execute tool against your account. Useful once the token works; still read the HTTP surface so you know what the agent is calling.
import LinqAPIV3 from "@linqapp/sdk"
const client = new LinqAPIV3({ apiKey: process.env.LINQ_API_KEY! })
const chat = await client.chats.create({
from: "+15555550123",
to: ["+14155550100"],
message: { parts: [{ type: "text", value: "Hello from Linq." }] },
})What the API actually covers
One integration, three protocols. You can let Linq pick or set the service explicitly when you care.
- Text plus rich media (images, video, docs, voice, contacts; large files up to 100MB in their docs)
- Groups, threading, tapbacks / custom emoji reactions
- iMessage effects (confetti, slam, invisible ink, …)
- Typing indicators, polls, chat backgrounds
- Delivery and read webhooks; W3C trace ids on requests
That is why agent teams look at it: the model can stay in a normal iMessage thread instead of forcing a custom app install.
Webhooks
Subscribe an HTTPS endpoint. Failed deliveries retry (docs: up to 10 times over ~25 minutes). Deduplicate on the event id.
New deliveries include Standard Webhooks headers: webhook-id, webhook-timestamp, webhook-signature. Legacy X-Webhook-* headers still ship so old verifiers keep working. Signing secrets look like whsec_… — strip the prefix, base64-decode, verify.
Verify signatures before you trust inbound text. An open webhook is an inbound SMS/iMessage forge.
Honest limits
- This is carrier / Apple messaging infrastructure. It is not on-chain and not a Solana wallet notify layer.
- Tokens and numbers are provisioned. Budget time for sandbox + compliance, not only curl.
- iMessage features (effects, tapbacks) will not appear on a pure SMS fallback. Read
serviceon the response. - Don’t log full E.164 lists or message bodies in public repos.
People and links
| What | Where |
|---|---|
| Docs | docs.linqapp.com |
| Product | linqapp.com |
| API | https://api.linqapp.com/api/partner/v3 |
| GitHub | github.com/linq-team |
| X | @thelinqapp |
Resources
Keep reading
Programmatic contracts, EOR, payroll adjustments, and webhooks — plus MCP for agent workflows on Deel’s global HR stack.
Across lists Solana, HyperCore, and HyperEVM. deBridge covers Solana and HyperEVM. Jupiter is the Solana leg. Official HL still centers USDC collateral — check live routes.
BoringVault modules, partner API, EVM-heavy chain slugs, Kraken/MetaMask-class Earn — what Solana builders should know from the official docs.
Get new articles in your inbox
Technical deep-dives on Solana tooling, infrastructure, and ecosystem. No noise.
