Hackathon Track

Build an agent that texts

Linq is a messaging platform for agents to communicate over iMessage. One API sends and receives blue-bubble messages, with group chats, reactions, rich media, and webhooks. You build the agent; your users just text it.

Fastest Start

Start with one prompt

Sign up for the sandbox to get your API key and number, then copy this prompt into Claude Code, Cursor, or Codex. It contains the docs link, the endpoints, and the sandbox rules, so your coding agent can scaffold the integration for you.

Paste into Claude Code, Cursor, or Codex
I'm at a hackathon building on Linq, an API that lets agents send and receive iMessages. I have a sandbox account from https://dashboard.linqapp.com/sandbox-signup with an API key and a Linq phone number.

Read https://docs.linqapp.com/getting-started/quickstart/ and set up a minimal project that:

1. Sends an iMessage with:
   POST https://api.linqapp.com/api/partner/v3/chats
   Header: "Authorization: Bearer $LINQ_API_KEY"
   Body: {"from": "<my Linq number>", "to": ["<recipient>"], "message": {"parts": [{"type": "text", "value": "Hello from my agent!"}]}}

2. Exposes a public webhook endpoint, subscribes it to message.received events via
   POST https://api.linqapp.com/api/partner/v3/webhook-subscriptions,
   and replies to inbound texts with POST https://api.linqapp.com/api/partner/v3/chats/{chat_id}/messages.

Sandbox rules my project must respect:
- Inbound-first: a user has to text my Linq number before my agent can message them. Design the flow so the user texts first.
- The first outbound message in a new chat must not contain links, reply_to, or message effects; link parts and text parts containing URLs are rejected on POST /v3/chats. Send links in a follow-up message once the chat exists.
- Up to 100 contacts. My Linq number stays active for 7 days. Unlimited messages.

Use the TypeScript SDK (npm install @linqapp/sdk) or plain HTTP, whichever is simpler. Ask me for my LINQ_API_KEY and Linq phone number, then run it end to end.
Get Started

Send your first iMessage in three steps

Hackathon time is short. Three steps cover the whole integration.

1. Sign up for the sandbox

Create a sandbox account at dashboard.linqapp.com/sandbox-signup. Signing up gives you an API key and a Linq phone number. Keep the quickstart open; it covers each step below in more detail.

2. Send your first message

One POST request sends a real iMessage. Text your Linq number from your phone first, since the sandbox is inbound-first, then send the request and watch the blue bubble arrive.

3. Listen and reply

Subscribe a webhook to message.received and reply in the same chat. That loop of inbound text and agent reply is the skeleton of most projects.

Your first message
curl -X POST https://api.linqapp.com/api/partner/v3/chats \
  -H "Authorization: Bearer $LINQ_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "from": "+12223334444",
    "to": ["+15556667777"],
    "message": { "parts": [{ "type": "text", "value": "Hello from my agent!" }] }
  }'
Full quickstart guide → docs.linqapp.com
Sandbox Rules

Sandbox limitations

Your hackathon account runs on a Linq sandbox number. It has three limitations to design around before you start building.

Inbound-first messaging

Your agent can only message people who have texted your Linq number first. Design your project so the user starts the conversation. A QR code that opens iMessage works well in a demo.

100 contacts

Your sandbox number can hold conversations with up to 100 unique contacts. That covers judges, teammates, and a demo audience.

7 days, unlimited messages

Your Linq number stays active for seven days, and there is no limit on how many messages you send. You can keep building after the weekend.

Ideas

What could your project do over iMessage?

Personal assistant

An agent that lives in iMessage. There is no app to download; the conversation starts when someone texts it.

Concierge & bookings

Reservations, orders, and reminders handled over text. The message thread is the whole interface.

Group-chat agent

Drop an agent into a group thread to settle debates, split bills, or plan a trip with friends.

Anything conversational

Coaching, matchmaking, market alerts, support. If it works as a conversation, it works over iMessage.

Get help during the hackathon

The Linq team is in Discord for the whole event. Ask about API keys, webhooks, or what to build.

Your Cart
Your cart's looking a little light.Looks like your cart is empty—it's time to add your
gears and make it unforgettable.
Shop our best sellers
Digital Card
Digital Card$14.99
Hub
Hub$29.99
Badge
Badge$19.99
Mini Card
Mini Card$12.99