Linq

Send iMessage, SMS, and RCS messages and manage conversations with Linq

Linq is an API-first messaging platform that lets you reach people on iMessage, SMS, and RCS through real conversations. Linq handles the messaging plumbing — Apple and carrier delivery, group chats, read receipts, typing indicators, reactions, and attachments — behind a single REST API designed for programmatic access.

Why Linq?

  • iMessage, SMS, and RCS in one API: Send and receive across all three channels from the same chats and phone numbers, with automatic delivery over the best available service.
  • Rich conversations: Media, link previews, screen and bubble effects, tapback reactions, inline replies, voice memos, and editable messages — not just plain text.
  • Group chat management: Create groups, add and remove participants, rename chats, update icons, and leave conversations.
  • Capability checks: Verify whether an address supports iMessage or RCS before you send, so you pick the right channel every time.
  • Real-time webhooks: Subscribe to message, reaction, participant, and call events with HMAC-SHA256 signature verification.

Using Linq in Sim

Sim's Linq integration connects your agentic workflows directly to Linq using an API key. With 34 operations spanning chats, messages, attachments, phone numbers, capability checks, contact cards, and webhook subscriptions, you can build conversational messaging automations without writing backend code.

Key benefits of using Linq in Sim:

  • Conversational agents: Send and read messages in iMessage, SMS, or RCS chats, react with tapbacks, and reply inline to build natural two-way conversations.
  • Reliable delivery: Check iMessage/RCS capability and set a preferred service so each message goes out over the right channel.
  • Files and voice: Upload attachments up to 100MB and send media or voice memos straight from your workflow.
  • Event-driven flows: Manage webhook subscriptions so workflows can react to inbound messages, reactions, and participant changes.

Usage Instructions

Reach people on iMessage, SMS, and RCS through Linq. Start chats, send messages with media, links, effects, and replies, send voice memos, react with tapbacks, manage group participants, check iMessage/RCS capability, configure contact cards, and subscribe to webhook events — all through a single Linq API key.

Tools

linq_add_participant

Add a participant to a group chat (3+ existing participants)

Input

ParameterTypeRequiredDescription
apiKeystringYesLinq API key
chatIdstringYesThe unique identifier of the group chat
handlestringYesPhone number (E.164 format) or email address of the participant to add

Output

ParameterTypeDescription
messagestringHuman-readable status message
statusstringQueued action status
traceIdstringTrace ID for the queued action

linq_check_imessage

Check whether an address (phone number or email) supports iMessage

Input

ParameterTypeRequiredDescription
apiKeystringYesLinq API key
addressstringYesPhone number (E.164 format) or email address to check
fromstringNoSender phone number to check from (defaults to an available number)

Output

ParameterTypeDescription
addressstringThe address that was checked
availablebooleanWhether the address supports iMessage

linq_check_rcs

Check whether an address (phone number or email) supports RCS

Input

ParameterTypeRequiredDescription
apiKeystringYesLinq API key
addressstringYesPhone number (E.164 format) or email address to check
fromstringNoSender phone number to check from (defaults to an available number)

Output

ParameterTypeDescription
addressstringThe address that was checked
availablebooleanWhether the address supports RCS

linq_create_attachment

Upload a file to Linq as a reusable attachment (max 100MB) and get an attachment ID to send in messages

Input

ParameterTypeRequiredDescription
apiKeystringYesLinq API key
filefileNoFile to upload (a UserFile from a file-upload field or a previous block)
fileContentstringNoLegacy base64-encoded file content fallback
filenamestringNoOverride the file name (defaults to the uploaded file name)
contentTypestringNoOverride the MIME type (defaults to the uploaded file type)

Output

ParameterTypeDescription
attachmentIdstringReusable attachment ID to reference when sending messages or voice memos
downloadUrlstringURL the attachment can be downloaded from
filenamestringFile name
contentTypestringMIME type of the file
sizeBytesnumberFile size in bytes
statusstringUpload status

linq_create_chat

Start a new iMessage, SMS, or RCS chat and send the first message

Input

ParameterTypeRequiredDescription
apiKeystringYesLinq API key
fromstringYesSender phone number in E.164 format (e.g. +14155551234)
toarrayYesRecipient handles (phone numbers in E.164 format or email addresses)
textstringNoText content of the first message. Optional, but at least one of text, media, attachment, or link is required
mediaUrlstringNoOptional publicly accessible HTTPS URL of an image, video, or file to attach
attachmentIdstringNoOptional ID of a pre-uploaded attachment to send instead of a media URL
preferredServicestringNoPreferred delivery service: iMessage, SMS, or RCS
effectNamestringNoOptional iMessage effect name (e.g. confetti, fireworks, lasers)
effectTypestringNoOptional effect type: screen or bubble
replyToMessageIdstringNoOptional message ID to reply to inline
replyToPartIndexnumberNoOptional part index of the message being replied to
idempotencyKeystringNoOptional idempotency key to safely retry the request

Output

ParameterTypeDescription
chatIdstringID of the created chat
displayNamestringDisplay name of the chat
isGroupbooleanWhether the chat is a group chat
servicestringDelivery service used (iMessage, SMS, RCS)
handlesjsonParticipant handles in the chat
healthStatusjsonMessaging line health status
messagejsonThe sent message object with parts and delivery info

linq_create_contact_card

Set up a contact card (Name and Photo Sharing) for a phone number

Input

ParameterTypeRequiredDescription
apiKeystringYesLinq API key
phoneNumberstringYesPhone number in E.164 format the card applies to
firstNamestringYesFirst name to display
lastNamestringNoLast name to display
imageUrlstringNoProfile photo URL

Output

ParameterTypeDescription
phoneNumberstringPhone number the card applies to
firstNamestringFirst name
lastNamestringLast name
imageUrlstringProfile photo URL
isActivebooleanWhether the card is active

linq_create_webhook_subscription

Subscribe an HTTPS endpoint to Linq webhook events

Input

ParameterTypeRequiredDescription
apiKeystringYesLinq API key
targetUrlstringYesHTTPS endpoint that will receive webhook events
subscribedEventsarrayYesEvent types to subscribe to (e.g. message.sent, message.delivered)
phoneNumbersarrayNoE.164 phone numbers to filter events by (omit for all numbers)

Output

ParameterTypeDescription
idstringSubscription ID
targetUrlstringEndpoint that receives events
subscribedEventsjsonSubscribed event types
phoneNumbersjsonFiltered phone numbers (null = all)
isActivebooleanWhether the subscription is active
createdAtstringISO 8601 creation timestamp
updatedAtstringISO 8601 update timestamp
signingSecretstringHMAC-SHA256 signing secret. Store securely — it cannot be retrieved again

linq_delete_attachment

Permanently delete an attachment owned by your account

Input

ParameterTypeRequiredDescription
apiKeystringYesLinq API key
attachmentIdstringYesThe unique identifier of the attachment to delete

Output

ParameterTypeDescription
successbooleanWhether the attachment was deleted

linq_delete_message

Delete a message from the Linq API only (does not unsend it; recipients still see it)

Input

ParameterTypeRequiredDescription
apiKeystringYesLinq API key
messageIdstringYesThe unique identifier of the message to delete

Output

ParameterTypeDescription
successbooleanWhether the message was deleted

linq_delete_webhook_subscription

Delete a webhook subscription from your account

Input

ParameterTypeRequiredDescription
apiKeystringYesLinq API key
subscriptionIdstringYesThe unique identifier of the webhook subscription to delete

Output

ParameterTypeDescription
successbooleanWhether the subscription was deleted

linq_edit_message

Edit the text of a sent message (up to 5 times, within 15 minutes of sending; iMessage only)

Input

ParameterTypeRequiredDescription
apiKeystringYesLinq API key
messageIdstringYesThe unique identifier of the message to edit
textstringYesNew text content for the message part
partIndexnumberNoIndex of the message part to edit (defaults to 0)

Output

ParameterTypeDescription
idstringMessage ID
chatIdstringID of the chat the message belongs to
isFromMebooleanWhether the message was sent by you
isDeliveredbooleanWhether the message was delivered
isReadbooleanWhether the message was read
servicestringDelivery service (iMessage, SMS, RCS)
createdAtstringISO 8601 creation timestamp
updatedAtstringISO 8601 update timestamp
sentAtstringISO 8601 sent timestamp
partsjsonUpdated message parts with reactions
messagejsonThe full updated message object

linq_get_attachment

Retrieve metadata for an attachment, including its download URL and status

Input

ParameterTypeRequiredDescription
apiKeystringYesLinq API key
attachmentIdstringYesThe unique identifier of the attachment

Output

ParameterTypeDescription
idstringAttachment ID
filenamestringFile name
contentTypestringMIME type of the file
sizeBytesnumberFile size in bytes
statusstringUpload status (pending, complete, failed)
downloadUrlstringURL to download the file
createdAtstringISO 8601 creation timestamp

linq_get_chat

Retrieve a chat by ID, including participants and line health

Input

ParameterTypeRequiredDescription
apiKeystringYesLinq API key
chatIdstringYesThe unique identifier of the chat

Output

ParameterTypeDescription
idstringChat ID
displayNamestringDisplay name of the chat
isGroupbooleanWhether the chat is a group chat
isArchivedbooleanWhether the chat is archived
servicestringDelivery service (iMessage, SMS, RCS)
createdAtstringISO 8601 creation timestamp
updatedAtstringISO 8601 update timestamp
handlesjsonParticipant handles in the chat
healthStatusjsonMessaging line health status

linq_get_contact_card

Retrieve contact cards, optionally filtered by phone number

Input

ParameterTypeRequiredDescription
apiKeystringYesLinq API key
phoneNumberstringNoE.164 phone number to filter by (omit to return all cards)

Output

ParameterTypeDescription
contactCardsarrayContact cards on the account
phoneNumberstringPhone number in E.164 format
firstNamestringFirst name
lastNamestringLast name
imageUrlstringProfile photo URL
isActivebooleanWhether the card is active

linq_get_message

Retrieve a single message by ID, including parts, reactions, and delivery status

Input

ParameterTypeRequiredDescription
apiKeystringYesLinq API key
messageIdstringYesThe unique identifier of the message

Output

ParameterTypeDescription
idstringMessage ID
chatIdstringID of the chat the message belongs to
isFromMebooleanWhether the message was sent by you
isDeliveredbooleanWhether the message was delivered
isReadbooleanWhether the message was read
servicestringDelivery service (iMessage, SMS, RCS)
createdAtstringISO 8601 creation timestamp
updatedAtstringISO 8601 update timestamp
sentAtstringISO 8601 sent timestamp
partsjsonMessage parts (text, media, link) with reactions
messagejsonThe full message object

linq_get_webhook_subscription

Retrieve a webhook subscription by ID

Input

ParameterTypeRequiredDescription
apiKeystringYesLinq API key
subscriptionIdstringYesThe unique identifier of the webhook subscription

Output

ParameterTypeDescription
idstringSubscription ID
targetUrlstringEndpoint that receives events
subscribedEventsjsonSubscribed event types
phoneNumbersjsonFiltered phone numbers (null = all)
isActivebooleanWhether the subscription is active
createdAtstringISO 8601 creation timestamp
updatedAtstringISO 8601 update timestamp

linq_leave_chat

Leave an iMessage group chat (4+ active participants; not supported for direct chats)

Input

ParameterTypeRequiredDescription
apiKeystringYesLinq API key
chatIdstringYesThe unique identifier of the group chat

Output

ParameterTypeDescription
messagestringHuman-readable status message
statusstringQueued action status (e.g. accepted)
traceIdstringTrace ID for the queued action

linq_list_chats

List chats, optionally filtered by sender or participant handle

Input

ParameterTypeRequiredDescription
apiKeystringYesLinq API key
fromstringNoFilter by sender phone number in E.164 format
tostringNoFilter by participant handle (phone number or email)
limitnumberNoResults per page (default 20, max 100)
cursorstringNoPagination cursor from a previous response

Output

ParameterTypeDescription
chatsjsonArray of chat objects
nextCursorstringCursor for the next page, or null if there are no more results

linq_list_messages

List messages in a chat with pagination

Input

ParameterTypeRequiredDescription
apiKeystringYesLinq API key
chatIdstringYesThe unique identifier of the chat
limitnumberNoMaximum number of messages to return
cursorstringNoPagination cursor from a previous response

Output

ParameterTypeDescription
messagesjsonArray of message objects with parts and reactions
nextCursorstringCursor for the next page, or null if there are no more results

linq_list_phone_numbers

List all phone numbers assigned to your partner account, with line health

Input

ParameterTypeRequiredDescription
apiKeystringYesLinq API key

Output

ParameterTypeDescription
phoneNumbersarrayPhone numbers assigned to the account
idstringPhone number ID
phoneNumberstringPhone number in E.164 format
healthStatusjsonLine health status (status, doc_url)

linq_list_thread

List all messages in the thread that contains a given message

Input

ParameterTypeRequiredDescription
apiKeystringYesLinq API key
messageIdstringYesThe ID of any message in the thread
orderstringNoSort order: asc (oldest first) or desc (newest first)
limitnumberNoMaximum number of messages to return
cursorstringNoPagination cursor from a previous response

Output

ParameterTypeDescription
messagesjsonArray of message objects in the thread
nextCursorstringCursor for the next page, or null if there are no more results

linq_list_webhook_events

List all webhook event types available to subscribe to

Input

ParameterTypeRequiredDescription
apiKeystringYesLinq API key

Output

ParameterTypeDescription
eventsjsonAvailable webhook event type names
docUrlstringDocumentation URL for webhook events

linq_list_webhook_subscriptions

List all webhook subscriptions on your account

Input

ParameterTypeRequiredDescription
apiKeystringYesLinq API key

Output

ParameterTypeDescription
subscriptionsarrayWebhook subscriptions
idstringSubscription ID
targetUrlstringEndpoint that receives events
subscribedEventsjsonSubscribed event types
phoneNumbersjsonFiltered phone numbers (null = all)
isActivebooleanWhether the subscription is active
createdAtstringISO 8601 creation timestamp
updatedAtstringISO 8601 update timestamp

linq_mark_chat_read

Mark all messages in a chat as read

Input

ParameterTypeRequiredDescription
apiKeystringYesLinq API key
chatIdstringYesThe unique identifier of the chat

Output

ParameterTypeDescription
successbooleanWhether the chat was marked as read

linq_react_to_message

Add or remove a tapback reaction on a message

Input

ParameterTypeRequiredDescription
apiKeystringYesLinq API key
messageIdstringYesThe unique identifier of the message to react to
operationstringYesWhether to add or remove the reaction: add or remove
typestringYesReaction type: love, like, dislike, laugh, emphasize, question, custom, or sticker
customEmojistringNoEmoji to use when type is custom
partIndexnumberNoIndex of the message part to react to (defaults to the entire message)

Output

ParameterTypeDescription
messagestringHuman-readable status message
statusstringQueued action status
traceIdstringTrace ID for the queued action

linq_remove_participant

Remove a participant from a group chat (minimum 3 participants must remain)

Input

ParameterTypeRequiredDescription
apiKeystringYesLinq API key
chatIdstringYesThe unique identifier of the group chat
handlestringYesPhone number (E.164 format) or email address of the participant to remove

Output

ParameterTypeDescription
messagestringHuman-readable status message
statusstringQueued action status
traceIdstringTrace ID for the queued action

linq_send_message

Send a message to an existing chat, with optional media, link, effect, or reply

Input

ParameterTypeRequiredDescription
apiKeystringYesLinq API key
chatIdstringYesThe unique identifier of the chat
textstringNoText content of the message. Optional, but at least one of text, media, attachment, or link is required
mediaUrlstringNoOptional publicly accessible HTTPS URL of an image, video, or file to attach
attachmentIdstringNoOptional ID of a pre-uploaded attachment to send instead of a media URL
linkUrlstringNoOptional URL to send as a rich link preview. Linq requires a link to be its own message, so when set, text and media are ignored
preferredServicestringNoPreferred delivery service: iMessage, SMS, or RCS
effectNamestringNoOptional iMessage effect name (e.g. confetti, fireworks, lasers)
effectTypestringNoOptional effect type: screen or bubble
replyToMessageIdstringNoOptional message ID to reply to inline
replyToPartIndexnumberNoOptional part index of the message being replied to
idempotencyKeystringNoOptional idempotency key to safely retry the request

Output

ParameterTypeDescription
chatIdstringID of the chat the message was sent to
messageIdstringID of the sent message
deliveryStatusstringDelivery status (pending, queued, sent, delivered, failed)
sentAtstringISO 8601 timestamp the message was sent
servicestringDelivery service (iMessage, SMS, RCS)
messagejsonThe full sent message object with parts

linq_send_voice_memo

Send a voice memo to a chat from a URL or a pre-uploaded attachment

Input

ParameterTypeRequiredDescription
apiKeystringYesLinq API key
chatIdstringYesThe unique identifier of the chat
voiceMemoUrlstringNoPublicly accessible HTTPS URL of the audio file (MP3, M4A, AAC, CAF, WAV, AIFF, AMR)
attachmentIdstringNoID of a pre-uploaded audio attachment (use instead of voiceMemoUrl)

Output

ParameterTypeDescription
idstringID of the sent voice memo message
statusstringDelivery status
fromstringSender handle
tojsonRecipient handles
servicestringDelivery service (iMessage, SMS, RCS)
voiceMemojsonAudio file metadata (id, filename, mime_type, size_bytes, url, duration_ms)

linq_share_contact_card

Share your configured contact card (Name and Photo Sharing) with a chat

Input

ParameterTypeRequiredDescription
apiKeystringYesLinq API key
chatIdstringYesThe unique identifier of the chat

Output

ParameterTypeDescription
successbooleanWhether the contact card was shared

linq_start_typing

Show a typing indicator in a one-on-one chat (iMessage only, not group chats)

Input

ParameterTypeRequiredDescription
apiKeystringYesLinq API key
chatIdstringYesThe unique identifier of the chat

Output

ParameterTypeDescription
successbooleanWhether the typing indicator was sent

linq_stop_typing

Stop the typing indicator in a one-on-one chat (iMessage only, not group chats)

Input

ParameterTypeRequiredDescription
apiKeystringYesLinq API key
chatIdstringYesThe unique identifier of the chat

Output

ParameterTypeDescription
successbooleanWhether the typing indicator was stopped

linq_update_chat

Update chat properties such as group display name and icon

Input

ParameterTypeRequiredDescription
apiKeystringYesLinq API key
chatIdstringYesThe unique identifier of the chat
displayNamestringNoNew display name for the group chat
groupChatIconstringNoNew group chat icon (publicly accessible image URL)

Output

ParameterTypeDescription
chatIdstringID of the updated chat
statusstringStatus of the queued update

linq_update_contact_card

Partially update an existing active contact card for a phone number

Input

ParameterTypeRequiredDescription
apiKeystringYesLinq API key
phoneNumberstringYesPhone number in E.164 format identifying the card to update
firstNamestringNoNew first name
lastNamestringNoNew last name
imageUrlstringNoNew profile photo URL

Output

ParameterTypeDescription
phoneNumberstringPhone number the card applies to
firstNamestringFirst name
lastNamestringLast name
imageUrlstringProfile photo URL
isActivebooleanWhether the card is active

linq_update_webhook_subscription

Update a webhook subscription (target URL, events, phone filter, or active state)

Input

ParameterTypeRequiredDescription
apiKeystringYesLinq API key
subscriptionIdstringYesThe unique identifier of the webhook subscription
targetUrlstringNoNew HTTPS endpoint that will receive events
subscribedEventsarrayNoNew set of event types to subscribe to
phoneNumbersarrayNoNew set of E.164 phone numbers to filter by
isActivebooleanNoWhether the subscription should be active

Output

ParameterTypeDescription
idstringSubscription ID
targetUrlstringEndpoint that receives events
subscribedEventsjsonSubscribed event types
phoneNumbersjsonFiltered phone numbers (null = all)
isActivebooleanWhether the subscription is active
createdAtstringISO 8601 creation timestamp
updatedAtstringISO 8601 update timestamp

On this page