LoopMessage integration
LoopMessage sends and receives iMessage (with SMS, RCS and WhatsApp fallback) from dedicated sender names. Send texts, voice messages and reactions to a contact or group; show typing, edit or unsend; check delivery status; create and manage group chats; schedule bulk campaigns; generate opt-in links; read message and webhook history, the audience and subscription status; manage sender names, sender pools and organizations. Every send is a real message to a real person. LoopMessage bills by subscription plan, not per message (unlimited messages up to the plan's number of unique contacts), and answers 402 to a send the plan does not cover. Not exposed: ordering or cancelling sender names, identity documents, paid content, bulk data deletion, organization create, update and delete, and the Twilio-compatible API. Authentication is the organization API key (dashboard, API > Settings) sent raw in the Authorization header.
Say what should happen.
The workflow builds itself.
What you can do with LoopMessage
Each of these is one operation on one endpoint, available both as a workflow step and as a tool an AI agent can call on its own. Nothing bundles several operations into one action, so what a run did stays readable afterwards.
Most endpoints run on the free plan. A few, mainly the ones that publish on your behalf, need a paid plan.
Message, 8 operations
edit_messageEdit messagePOSTReplaces the text of an outbound message sent within the last 15 minutes (iMessage). Inbound messages and the first message of a conversation cannot be edited; SMS and RCS do not support editing.get_message_statusGet message statusGETReturns the delivery status of a message you sent (processing, delivered, failed or unknown), with its contact, text, error code when it failed, and last update time.list_contact_messagesList contact messagesGETLists the message history with one contact, a page at a time, filterable by date range, direction and type, plus the contact's subscription status. Holds message text.send_messageSend messagePOSTSends a real iMessage (or SMS, RCS or WhatsApp) text to one contact or to a group. Pass contact or group, and text. The 200 answer only means queued; check get_message_status.send_reactionSend reactionPOSTPuts a reaction on a contact's message: an emoji, or an iMessage tapback (love, like, dislike, laugh, emphasize, question). Prefix the value with - to remove it, for example -like.send_voice_messageSend voice messagePOSTSends a real voice (audio) message to one contact or group from a public https audio file (mp3, wav, m4a, caf or aac). Pass contact or group, and media_url. The 200 answer only means queued.show_typing_indicatorShow typing indicatorPOSTShows the typing animation in an active conversation (up to 60 seconds) and can mark it read. Identify it by message_id, or by contact and sender. Fails if the conversation was idle for 5 minutes.unsend_messageUnsend messagePOSTRemoves an outbound message from the conversation. Accepted within 2 minutes of sending on iMessage and 2 days on WhatsApp; SMS and RCS do not support it.
Group, 5 operations
add_group_participantAdd group participantPUTAdds a participant to a group chat. Processed asynchronously; the answer confirms the request was accepted.create_groupCreate groupPOSTCreates a group chat with the given participants and sends them a real first message. Needs the init-new-conversations option on the sender. The group ID arrives later by webhook.get_groupGet groupGETReturns a group chat's name, participants, channel, sender name and creation date.remove_group_participantRemove group participantDELETERemoves a participant from a group chat. Processed asynchronously; the answer confirms the request was accepted.update_groupUpdate groupPATCHRenames a group chat or changes its photo; send one change per call. An empty photo_url removes the photo. Processed asynchronously.
Sender pool, 5 operations
create_sender_poolCreate sender poolPOSTCreates a pool of sender names from their IDs (list_senders). Returns the new pool with its id.delete_sender_poolDelete sender poolDELETEDeletes a sender pool.get_sender_poolGet sender poolGETReturns one sender pool: id, name, status and creation date.list_sender_poolsList sender poolsGETLists the organization's sender pools (groups of sender names), a page at a time: id, name, number of senders and creation date.update_sender_poolUpdate sender poolPATCHRenames a sender pool or sets the sender names it contains (ids).
Audience, 3 operations
check_audience_statusCheck audience statusGETReturns whether a contact is subscribed to your messages: active, unsubscribed or unknown.list_audienceList audienceGETLists the organization's audience, a page at a time, optionally filtered by date range or by a phone number or email: each contact's id and value (its phone number or email).unsubscribe_contactUnsubscribe contactDELETEUnsubscribes a contact from your organization's audience, identified by phone number or email.
Sender, 3 operations
get_senderGet senderGETReturns one sender name: name, nickname, status, phone number and region, per-service health (iMessage, WhatsApp), displayed contact card, pool and call forwarding number.list_sendersList sendersGETLists the sender names of the organization (the addresses you send from), a page at a time: id (the sender value send_message takes), name, status, creation date and iMessage link.update_senderUpdate senderPATCHChanges a sender name's nickname, displayed contact card (name, photo), call and SMS forwarding number or organization; send only what changes. Returns the sender as get_sender does.
Campaign, 2 operations
create_campaignCreate campaignPOSTSchedules a real bulk send to contacts who already talked to your sender name. Pass contacts and text for one text, or messages for one text per contact. Needs a paid plan.list_campaignsList campaignsGETLists the organization's campaigns, a page at a time, optionally filtered by creation dates or a word in the name: id, name, status and creation date.
Organization, 2 operations
get_organizationGet organizationGETReturns one organization: id, name, status and creation date. The Default organization's key reads any organization of the account; another key reads only its own.list_organizationsList organizationsGETLists the organizations of the account (works only with the Default organization's API key), a page at a time, optionally filtered by name: id, name, status and creation date.
Opt in, 1 operation
generate_opt_in_urlGenerate opt in urlPOSTGenerates unique opt-in links (iMessage, SMS, WhatsApp, smart https link) that open the messaging app with a prefilled first message carrying an opt-in code. An unredeemed code lives 24 hours.
Webhook, 1 operation
list_webhook_historyList webhook historyGETLists the webhooks LoopMessage sent to your server (inbound messages, deliveries, failures, reactions), a page at a time, each with its event type, attempt number, date and full JSON payload.
Use LoopMessage from Claude Code, Cursor or Codex
Connect LoopMessage in LiveContext, create an API key in Settings, then add the LiveContext MCP server to your client. Its LoopMessage operations become tools the client can call, next to every other integration you connected.
claude mcp add --transport http livecontext https://livecontext.ai/mcp --header "X-API-Key: YOUR_API_KEY"[mcp_servers.livecontext]
url = "https://livecontext.ai/mcp"
[mcp_servers.livecontext.http_headers]
"X-API-Key" = "YOUR_API_KEY"{
"mcpServers": {
"livecontext": {
"type": "http",
"url": "https://livecontext.ai/mcp",
"headers": {
"X-API-Key": "YOUR_API_KEY"
}
}
}
}How to connect LoopMessage
- Create your workspace
Sign up free. Nothing to install.
- Connect LoopMessage once
Add your LoopMessage connection in Settings. Every tool from this integration reuses it, and secrets are encrypted at rest and visible only to you.
- Describe the job in chat
The workflow builds itself in front of you and picks the endpoints it needs. Drag the steps yourself on the canvas whenever you would rather be explicit.
LoopMessage integration FAQ
What can you do with the LoopMessage integration?
LiveContext exposes 30 operations on LoopMessage, covering message, group, sender pool and audience.
