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.
Add a participant to a group chat (3+ existing participants)
| Parameter | Type | Required | Description |
|---|
apiKey | string | Yes | Linq API key |
chatId | string | Yes | The unique identifier of the group chat |
handle | string | Yes | Phone number (E.164 format) or email address of the participant to add |
| Parameter | Type | Description |
|---|
message | string | Human-readable status message |
status | string | Queued action status |
traceId | string | Trace ID for the queued action |
Check whether an address (phone number or email) supports iMessage
| Parameter | Type | Required | Description |
|---|
apiKey | string | Yes | Linq API key |
address | string | Yes | Phone number (E.164 format) or email address to check |
from | string | No | Sender phone number to check from (defaults to an available number) |
| Parameter | Type | Description |
|---|
address | string | The address that was checked |
available | boolean | Whether the address supports iMessage |
Check whether an address (phone number or email) supports RCS
| Parameter | Type | Required | Description |
|---|
apiKey | string | Yes | Linq API key |
address | string | Yes | Phone number (E.164 format) to check |
from | string | No | Sender phone number to check from (defaults to an available number) |
| Parameter | Type | Description |
|---|
address | string | The address that was checked |
available | boolean | Whether the address supports RCS |
Upload a file to Linq as a reusable attachment (max 100MB) and get an attachment ID to send in messages
| Parameter | Type | Required | Description |
|---|
apiKey | string | Yes | Linq API key |
file | file | No | File to upload (a UserFile from a file-upload field or a previous block) |
filename | string | No | Override the file name (defaults to the uploaded file name) |
contentType | string | No | Override the MIME type (defaults to the uploaded file type) |
| Parameter | Type | Description |
|---|
attachmentId | string | Reusable attachment ID to reference when sending messages or voice memos |
downloadUrl | string | URL the attachment can be downloaded from |
filename | string | File name |
contentType | string | MIME type of the file |
sizeBytes | number | File size in bytes |
status | string | Upload status |
Start a new iMessage, SMS, or RCS chat and send the first message
| Parameter | Type | Required | Description |
|---|
apiKey | string | Yes | Linq API key |
from | string | Yes | Sender phone number in E.164 format (e.g. +14155551234) |
to | array | Yes | Recipient handles (phone numbers in E.164 format or email addresses) |
text | string | No | Text content of the first message. Optional, but at least one of text, media, attachment, or link is required |
mediaUrl | string | No | Optional publicly accessible HTTPS URL of an image, video, or file to attach |
attachmentId | string | No | Optional ID of a pre-uploaded attachment to send instead of a media URL |
preferredService | string | No | Preferred delivery service: iMessage, SMS, or RCS |
effectName | string | No | Optional iMessage effect name (e.g. confetti, fireworks, lasers) |
effectType | string | No | Optional effect type: screen or bubble |
replyToMessageId | string | No | Optional message ID to reply to inline |
replyToPartIndex | number | No | Optional part index of the message being replied to |
idempotencyKey | string | No | Optional idempotency key to safely retry the request |
| Parameter | Type | Description |
|---|
chatId | string | ID of the created chat |
displayName | string | Display name of the chat |
isGroup | boolean | Whether the chat is a group chat |
service | string | Delivery service used (iMessage, SMS, RCS) |
handles | json | Participant handles in the chat |
healthStatus | json | Messaging line health status |
message | json | The sent message object with parts and delivery info |
Set up a contact card (Name and Photo Sharing) for a phone number
| Parameter | Type | Required | Description |
|---|
apiKey | string | Yes | Linq API key |
phoneNumber | string | Yes | Phone number in E.164 format the card applies to |
firstName | string | Yes | First name to display |
lastName | string | No | Last name to display |
imageUrl | string | No | Profile photo URL |
| Parameter | Type | Description |
|---|
phoneNumber | string | Phone number the card applies to |
firstName | string | First name |
lastName | string | Last name |
imageUrl | string | Profile photo URL |
isActive | boolean | Whether the card is active |
Subscribe an HTTPS endpoint to Linq webhook events
| Parameter | Type | Required | Description |
|---|
apiKey | string | Yes | Linq API key |
targetUrl | string | Yes | HTTPS endpoint that will receive webhook events |
subscribedEvents | array | Yes | Event types to subscribe to (e.g. message.sent, message.delivered) |
phoneNumbers | array | No | E.164 phone numbers to filter events by (omit for all numbers) |
| Parameter | Type | Description |
|---|
id | string | Subscription ID |
targetUrl | string | Endpoint that receives events |
subscribedEvents | json | Subscribed event types |
phoneNumbers | json | Filtered phone numbers (null = all) |
isActive | boolean | Whether the subscription is active |
createdAt | string | ISO 8601 creation timestamp |
updatedAt | string | ISO 8601 update timestamp |
signingSecret | string | HMAC-SHA256 signing secret. Store securely — it cannot be retrieved again |
Permanently delete an attachment owned by your account
| Parameter | Type | Required | Description |
|---|
apiKey | string | Yes | Linq API key |
attachmentId | string | Yes | The unique identifier of the attachment to delete |
| Parameter | Type | Description |
|---|
success | boolean | Whether the attachment was deleted |
Delete a message from the Linq API only (does not unsend it; recipients still see it)
| Parameter | Type | Required | Description |
|---|
apiKey | string | Yes | Linq API key |
messageId | string | Yes | The unique identifier of the message to delete |
| Parameter | Type | Description |
|---|
success | boolean | Whether the message was deleted |
Delete a webhook subscription from your account
| Parameter | Type | Required | Description |
|---|
apiKey | string | Yes | Linq API key |
subscriptionId | string | Yes | The unique identifier of the webhook subscription to delete |
| Parameter | Type | Description |
|---|
success | boolean | Whether the subscription was deleted |
Edit the text of a sent message (up to 5 times, within 15 minutes of sending; iMessage only)
| Parameter | Type | Required | Description |
|---|
apiKey | string | Yes | Linq API key |
messageId | string | Yes | The unique identifier of the message to edit |
text | string | Yes | New text content for the message part |
partIndex | number | No | Index of the message part to edit (defaults to 0) |
| Parameter | Type | Description |
|---|
id | string | Message ID |
chatId | string | ID of the chat the message belongs to |
isFromMe | boolean | Whether the message was sent by you |
deliveryStatus | string | Delivery status (pending, queued, sent, delivered, received, read, failed) |
isDelivered | boolean | Whether the message was delivered (deprecated; use deliveryStatus) |
isRead | boolean | Whether the message was read (deprecated; use deliveryStatus) |
service | string | Delivery service (iMessage, SMS, RCS) |
createdAt | string | ISO 8601 creation timestamp |
updatedAt | string | ISO 8601 update timestamp |
sentAt | string | ISO 8601 sent timestamp |
parts | json | Updated message parts with reactions |
message | json | The full updated message object |
Retrieve metadata for an attachment, including its download URL and status
| Parameter | Type | Required | Description |
|---|
apiKey | string | Yes | Linq API key |
attachmentId | string | Yes | The unique identifier of the attachment |
| Parameter | Type | Description |
|---|
id | string | Attachment ID |
filename | string | File name |
contentType | string | MIME type of the file |
sizeBytes | number | File size in bytes |
status | string | Upload status (pending, complete, failed) |
downloadUrl | string | URL to download the file |
createdAt | string | ISO 8601 creation timestamp |
Retrieve a chat by ID, including participants and line health
| Parameter | Type | Required | Description |
|---|
apiKey | string | Yes | Linq API key |
chatId | string | Yes | The unique identifier of the chat |
| Parameter | Type | Description |
|---|
id | string | Chat ID |
displayName | string | Display name of the chat |
isGroup | boolean | Whether the chat is a group chat |
isArchived | boolean | Whether the chat is archived |
service | string | Delivery service (iMessage, SMS, RCS) |
createdAt | string | ISO 8601 creation timestamp |
updatedAt | string | ISO 8601 update timestamp |
handles | json | Participant handles in the chat |
healthStatus | json | Messaging line health status |
Retrieve contact cards, optionally filtered by phone number
| Parameter | Type | Required | Description |
|---|
apiKey | string | Yes | Linq API key |
phoneNumber | string | No | E.164 phone number to filter by (omit to return all cards) |
| Parameter | Type | Description |
|---|
contactCards | array | Contact cards on the account |
Retrieve a single message by ID, including parts, reactions, and delivery status
| Parameter | Type | Required | Description |
|---|
apiKey | string | Yes | Linq API key |
messageId | string | Yes | The unique identifier of the message |
| Parameter | Type | Description |
|---|
id | string | Message ID |
chatId | string | ID of the chat the message belongs to |
isFromMe | boolean | Whether the message was sent by you |
deliveryStatus | string | Delivery status (pending, queued, sent, delivered, received, read, failed) |
isDelivered | boolean | Whether the message was delivered (deprecated; use deliveryStatus) |
isRead | boolean | Whether the message was read (deprecated; use deliveryStatus) |
service | string | Delivery service (iMessage, SMS, RCS) |
createdAt | string | ISO 8601 creation timestamp |
updatedAt | string | ISO 8601 update timestamp |
sentAt | string | ISO 8601 sent timestamp |
parts | json | Message parts (text, media, link) with reactions |
message | json | The full message object |
Retrieve a webhook subscription by ID
| Parameter | Type | Required | Description |
|---|
apiKey | string | Yes | Linq API key |
subscriptionId | string | Yes | The unique identifier of the webhook subscription |
| Parameter | Type | Description |
|---|
id | string | Subscription ID |
targetUrl | string | Endpoint that receives events |
subscribedEvents | json | Subscribed event types |
phoneNumbers | json | Filtered phone numbers (null = all) |
isActive | boolean | Whether the subscription is active |
createdAt | string | ISO 8601 creation timestamp |
updatedAt | string | ISO 8601 update timestamp |
Leave an iMessage group chat (4+ active participants; not supported for direct chats)
| Parameter | Type | Required | Description |
|---|
apiKey | string | Yes | Linq API key |
chatId | string | Yes | The unique identifier of the group chat |
| Parameter | Type | Description |
|---|
message | string | Human-readable status message |
status | string | Queued action status (e.g. accepted) |
traceId | string | Trace ID for the queued action |
List chats, optionally filtered by sender or participant handle
| Parameter | Type | Required | Description |
|---|
apiKey | string | Yes | Linq API key |
from | string | No | Filter by sender phone number in E.164 format |
to | string | No | Filter by participant handle (phone number or email) |
limit | number | No | Results per page (default 20, max 100) |
cursor | string | No | Pagination cursor from a previous response |
| Parameter | Type | Description |
|---|
chats | json | Array of chat objects |
nextCursor | string | Cursor for the next page, or null if there are no more results |
List messages in a chat with pagination
| Parameter | Type | Required | Description |
|---|
apiKey | string | Yes | Linq API key |
chatId | string | Yes | The unique identifier of the chat |
limit | number | No | Maximum number of messages to return |
cursor | string | No | Pagination cursor from a previous response |
| Parameter | Type | Description |
|---|
messages | json | Array of message objects with parts and reactions |
nextCursor | string | Cursor for the next page, or null if there are no more results |
List all phone numbers assigned to your partner account, with line health
| Parameter | Type | Required | Description |
|---|
apiKey | string | Yes | Linq API key |
| Parameter | Type | Description |
|---|
phoneNumbers | array | Phone numbers assigned to the account |
List all messages in the thread that contains a given message
| Parameter | Type | Required | Description |
|---|
apiKey | string | Yes | Linq API key |
messageId | string | Yes | The ID of any message in the thread |
order | string | No | Sort order: asc (oldest first) or desc (newest first) |
limit | number | No | Maximum number of messages to return |
cursor | string | No | Pagination cursor from a previous response |
| Parameter | Type | Description |
|---|
messages | json | Array of message objects in the thread |
nextCursor | string | Cursor for the next page, or null if there are no more results |
List all webhook event types available to subscribe to
| Parameter | Type | Required | Description |
|---|
apiKey | string | Yes | Linq API key |
| Parameter | Type | Description |
|---|
events | json | Available webhook event type names |
docUrl | string | Documentation URL for webhook events |
List all webhook subscriptions on your account
| Parameter | Type | Required | Description |
|---|
apiKey | string | Yes | Linq API key |
| Parameter | Type | Description |
|---|
subscriptions | array | Webhook subscriptions |
Mark messages in a chat as read (only applies to 1:1 iMessage/RCS; no effect on group chats)
| Parameter | Type | Required | Description |
|---|
apiKey | string | Yes | Linq API key |
chatId | string | Yes | The unique identifier of the chat |
| Parameter | Type | Description |
|---|
success | boolean | Whether the chat was marked as read |
Add or remove a tapback reaction on a message
| Parameter | Type | Required | Description |
|---|
apiKey | string | Yes | Linq API key |
messageId | string | Yes | The unique identifier of the message to react to |
operation | string | Yes | Whether to add or remove the reaction: add or remove |
type | string | Yes | Reaction type: love, like, dislike, laugh, emphasize, question, custom, or sticker |
customEmoji | string | No | Emoji to use when type is custom |
partIndex | number | No | Index of the message part to react to (defaults to the entire message) |
| Parameter | Type | Description |
|---|
message | string | Human-readable status message |
status | string | Queued action status |
traceId | string | Trace ID for the queued action |
Remove a participant from a group chat (minimum 3 participants must remain)
| Parameter | Type | Required | Description |
|---|
apiKey | string | Yes | Linq API key |
chatId | string | Yes | The unique identifier of the group chat |
handle | string | Yes | Phone number (E.164 format) or email address of the participant to remove |
| Parameter | Type | Description |
|---|
message | string | Human-readable status message |
status | string | Queued action status |
traceId | string | Trace ID for the queued action |
Send a message to an existing chat, with optional media, link, effect, or reply
| Parameter | Type | Required | Description |
|---|
apiKey | string | Yes | Linq API key |
chatId | string | Yes | The unique identifier of the chat |
text | string | No | Text content of the message. Optional, but at least one of text, media, attachment, or link is required |
mediaUrl | string | No | Optional publicly accessible HTTPS URL of an image, video, or file to attach |
attachmentId | string | No | Optional ID of a pre-uploaded attachment to send instead of a media URL |
linkUrl | string | No | Optional 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 |
preferredService | string | No | Preferred delivery service: iMessage, SMS, or RCS |
effectName | string | No | Optional iMessage effect name (e.g. confetti, fireworks, lasers) |
effectType | string | No | Optional effect type: screen or bubble |
replyToMessageId | string | No | Optional message ID to reply to inline |
replyToPartIndex | number | No | Optional part index of the message being replied to |
idempotencyKey | string | No | Optional idempotency key to safely retry the request |
| Parameter | Type | Description |
|---|
chatId | string | ID of the chat the message was sent to |
messageId | string | ID of the sent message |
deliveryStatus | string | Delivery status (pending, queued, sent, delivered, received, read, failed) |
sentAt | string | ISO 8601 timestamp the message was sent |
service | string | Delivery service (iMessage, SMS, RCS) |
message | json | The full sent message object with parts |
Send a voice memo to a chat from a URL or a pre-uploaded attachment
| Parameter | Type | Required | Description |
|---|
apiKey | string | Yes | Linq API key |
chatId | string | Yes | The unique identifier of the chat |
voiceMemoUrl | string | No | Publicly accessible HTTPS URL of the audio file (MP3, M4A, AAC, CAF, WAV, AIFF, AMR) |
attachmentId | string | No | ID of a pre-uploaded audio attachment (use instead of voiceMemoUrl) |
| Parameter | Type | Description |
|---|
id | string | ID of the sent voice memo message |
status | string | Delivery status |
from | string | Sender handle |
to | json | Recipient handles |
service | string | Delivery service (iMessage, SMS, RCS) |
voiceMemo | json | Audio file metadata (id, filename, mime_type, size_bytes, url, duration_ms) |
Share your configured contact card (Name and Photo Sharing) with a chat
| Parameter | Type | Required | Description |
|---|
apiKey | string | Yes | Linq API key |
chatId | string | Yes | The unique identifier of the chat |
| Parameter | Type | Description |
|---|
success | boolean | Whether the contact card was shared |
Show a typing indicator in a one-on-one chat (iMessage only, not group chats)
| Parameter | Type | Required | Description |
|---|
apiKey | string | Yes | Linq API key |
chatId | string | Yes | The unique identifier of the chat |
| Parameter | Type | Description |
|---|
success | boolean | Whether the typing indicator was sent |
Stop the typing indicator in a one-on-one chat (iMessage only, not group chats)
| Parameter | Type | Required | Description |
|---|
apiKey | string | Yes | Linq API key |
chatId | string | Yes | The unique identifier of the chat |
| Parameter | Type | Description |
|---|
success | boolean | Whether the typing indicator was stopped |
Update chat properties such as group display name and icon
| Parameter | Type | Required | Description |
|---|
apiKey | string | Yes | Linq API key |
chatId | string | Yes | The unique identifier of the chat |
displayName | string | No | New display name for the group chat |
groupChatIcon | string | No | New group chat icon (publicly accessible image URL) |
| Parameter | Type | Description |
|---|
chatId | string | ID of the updated chat |
status | string | Status of the queued update |
Partially update an existing active contact card for a phone number
| Parameter | Type | Required | Description |
|---|
apiKey | string | Yes | Linq API key |
phoneNumber | string | Yes | Phone number in E.164 format identifying the card to update |
firstName | string | No | New first name |
lastName | string | No | New last name |
imageUrl | string | No | New profile photo URL |
| Parameter | Type | Description |
|---|
phoneNumber | string | Phone number the card applies to |
firstName | string | First name |
lastName | string | Last name |
imageUrl | string | Profile photo URL |
isActive | boolean | Whether the card is active |
Update a webhook subscription (target URL, events, phone filter, or active state)
| Parameter | Type | Required | Description |
|---|
apiKey | string | Yes | Linq API key |
subscriptionId | string | Yes | The unique identifier of the webhook subscription |
targetUrl | string | No | New HTTPS endpoint that will receive events |
subscribedEvents | array | No | New set of event types to subscribe to |
phoneNumbers | array | No | New set of E.164 phone numbers to filter by |
isActive | boolean | No | Whether the subscription should be active |
| Parameter | Type | Description |
|---|
id | string | Subscription ID |
targetUrl | string | Endpoint that receives events |
subscribedEvents | json | Subscribed event types |
phoneNumbers | json | Filtered phone numbers (null = all) |
isActive | boolean | Whether the subscription is active |
createdAt | string | ISO 8601 creation timestamp |
updatedAt | string | ISO 8601 update timestamp |
Trigger workflow when an inbound message is received
| Parameter | Type | Description |
|---|
eventType | string | Event type (e.g. message.received, message.delivered, reaction.added) |
eventId | string | Unique event identifier used for deduplication |
createdAt | string | ISO 8601 timestamp of when the event occurred |
webhookVersion | string | Payload schema version of the delivered event |
data | json | Full event payload (shape varies by event type — message, reaction, chat, etc.) |
Trigger workflow when a message is delivered
| Parameter | Type | Description |
|---|
eventType | string | Event type (e.g. message.received, message.delivered, reaction.added) |
eventId | string | Unique event identifier used for deduplication |
createdAt | string | ISO 8601 timestamp of when the event occurred |
webhookVersion | string | Payload schema version of the delivered event |
data | json | Full event payload (shape varies by event type — message, reaction, chat, etc.) |
Trigger workflow when a message fails to deliver
| Parameter | Type | Description |
|---|
eventType | string | Event type (e.g. message.received, message.delivered, reaction.added) |
eventId | string | Unique event identifier used for deduplication |
createdAt | string | ISO 8601 timestamp of when the event occurred |
webhookVersion | string | Payload schema version of the delivered event |
data | json | Full event payload (shape varies by event type — message, reaction, chat, etc.) |
Trigger workflow when a message is read
| Parameter | Type | Description |
|---|
eventType | string | Event type (e.g. message.received, message.delivered, reaction.added) |
eventId | string | Unique event identifier used for deduplication |
createdAt | string | ISO 8601 timestamp of when the event occurred |
webhookVersion | string | Payload schema version of the delivered event |
data | json | Full event payload (shape varies by event type — message, reaction, chat, etc.) |
Trigger workflow when a reaction is added to a message
| Parameter | Type | Description |
|---|
eventType | string | Event type (e.g. message.received, message.delivered, reaction.added) |
eventId | string | Unique event identifier used for deduplication |
createdAt | string | ISO 8601 timestamp of when the event occurred |
webhookVersion | string | Payload schema version of the delivered event |
data | json | Full event payload (shape varies by event type — message, reaction, chat, etc.) |
Trigger on any Linq webhook event (messages, reactions, chats, and more)
| Parameter | Type | Description |
|---|
eventType | string | Event type (e.g. message.received, message.delivered, reaction.added) |
eventId | string | Unique event identifier used for deduplication |
createdAt | string | ISO 8601 timestamp of when the event occurred |
webhookVersion | string | Payload schema version of the delivered event |
data | json | Full event payload (shape varies by event type — message, reaction, chat, etc.) |
- Category:
tools
- Type:
linq