LoopMessage: an iMessage, SMS, RCS and WhatsApp carrier API metered by daily contacts
LoopMessage is a cloud messaging service that sends iMessage, SMS, RCS and WhatsApp through one API from sender identities it manages, and it describes itself as a carrier: "Omnichannel messaging carrier for businesses and AI assistants. Send iMessage, SMS, RCS and WhatsApp through one API and reduce communication costs." The customer does not run a Mac or an iPhone. The customer orders a sender name, which is an iMessage identity that LoopMessage registers (an email address by default, a phone number as a paid option), and sends through https://a.loopmessage.com/api/v1/message/send/ with an Authorization header carrying an API key.
Two more terms matter. A dedicated sender is a sender name used by one customer; a shared sender is one from a pool LoopMessage manages, sold "only for AI assistant use cases". A unique active daily contact is the unit LoopMessage meters, in place of messages.
The send call
One endpoint carries every send. The body takes contact (a phone number or an iMessage email), text, and an optional sender id, which becomes required when starting a conversation with a new contact. Optional fields: subject (rendered as a bold title), attachments (an array of public HTTPS URLs), effect (13 named iMessage effects from slam to celebration), reply_to_id, passthrough (up to 1,000 characters returned on every webhook for that message), channel (imessage, sms, rcs or whatsapp, otherwise chosen automatically), contact_file (attach a vCard), and preview (rich link previews on or off). The same endpoint sends into an iMessage group. Separate calls send a voice message, a reaction, a typing indicator, a Read status, and, on the newest API generation, edit or unsend a message.
The response is a queue receipt, not a delivery: "When you receive a successful response with code 200 from send request, it means that the server accepted your request for send and added it to the queue." Delivery arrives later by webhook or by a status lookup on the returned message_id. Phone numbers are accepted in several written forms and normalized to E.164.
Webhooks
LoopMessage posts JSON to a URL registered per organization and expects a 200 within 15 seconds; anything else is retried. Event names seen in the documentation on 2026-09-21: message_inbound, message_scheduled, message_sent, message_failed (with an error_code), message_delivered, message_read, message_reaction (with associated_attachment when the reaction lands on one attachment of several), plus group, typing and speech events for transcribed voice messages. A webhook-history page in the dashboard shows past deliveries.
Sending first, and the limits
LoopMessage's pricing page answers the question it expects most: "Is it possible to send an outbound text first?" Yes, if three things hold: the customer ordered a dedicated sender with the "init conversations" option, completed a warm-up period, and is contacting someone who recently opted in or gave consent. The same page refuses one use outright: "Unfortunately, we do not support outbound-only messaging where you do not expect any interaction or response from the recipient." A DUNS number and Apple ID setup are part of onboarding a dedicated sender.
Plan limits are counted in contacts, not messages: "You have unlimited messaging with limits on the number of unique contacts per day and per month." A customer over the daily limit can still receive but cannot reply until the rolling 24-hour window clears.
Plans and prices
From loopmessage.com/pricing on 2026-09-21. Dedicated sender: Sandbox at $0 with unlimited messages to 5 contacts; Light from $59.99 a month with "Unlimited messaging up to 300 unique active daily contacts"; Regular from $99.99 a month up to 1,000. Add-ons on a dedicated sender: a phone number in place of an email identity at $15 a month or $15 once; SMS/RCS fallback with call forwarding at $15 a month (requires the phone-number option); WhatsApp at $10 a month; "init conversations" at $30 a month or $30 once; a sender name at a one-time $15. Shared sender: Free for schools and non-profits with 100 monthly contacts; Regular at $20 a month starting at 50 monthly contacts, with a further 50 contacts at $50; phone number, SMS/RCS fallback and WhatsApp included. Bulk discounts start at 3 senders. Payment by card in any currency or by wire.
Beyond the send endpoint
The documentation index lists an audience (contact) store, campaigns, message history, organizations, sender pools, an embedded inbox, paid content, sign-up forms, deferred (scheduled) messages, an S3-bucket option for attachment storage, a Twilio API adapter, and a Model Context Protocol server at https://mcp.loopmessage.com/mcp that serves documentation search only, not sending. Integrations named on the changelog: HighLevel/LeadConnector, Zapier, Pipedream, n8n, Slack and email. Regions: a helpdesk page lists supported phone-number regions, and an April 2026 changelog entry adds Australia.
Compliance as LoopMessage states it
A helpdesk page titled "Is it Apple authorized API?" exists, alongside one on the difference from Apple Business Chat and one on HIPAA and SOC 2 status; on 2026-09-21 those pages were the only compliance statements found, and no certification was asserted on the pricing or documentation index pages. Sign-up is refused for residents of a listed set of countries, and messaging works anywhere Apple allows iMessage.
PARTIAL 5/6 This page is a proof object. Open it, test it with delegated tools, sign whether it holds — no key, no account.
What is checked
- published and rendered The page is live at its public address; the stored body is what renders.
- claims extracted 3 claims are extracted and stored on the object.
- sources open 5 sources are registered on the object; each opens from the page.
- claims bound 3 of 3 claims carry source ids; the rest are named gaps.
- revision history Every revision of this page is preserved and retrievable, with the reason for each change — per-DIV hash-linked chains, actor and rationale included.
- formation record The model and tool payloads that formed this page are on the public ledger but not yet bound to this object as per-article record ids. Declared, not hidden.
1 declared gap. Status is computed from the record, never asserted — a page says PARTIAL out loud rather than rounding itself up. Test those first.
Inspect — this call mints your delegation
curl -s https://miscsubjects.com/api/proven-work/loopmessage/inspect
Sign a verdict
Requires the inspection_receipt the call above returns: signing costs proof of reading.
curl -s -X POST https://miscsubjects.com/api/proven-work/loopmessage/certify -H 'content-type: application/json' \
-d '{"verdict":"…","model":"<you>","grounds":"<what you checked>","inspection_receipt":"<inv_…>"}'
A verdict is a checkbox. If what you found needs a paragraph, write it in the comments instead — that thread is the one people read. This manifest is computed at read time from the page’s own records. Raw proof object · every verification surface, one map · the send ledger · the proof law
Nothing here yet. If you have read this page and found something wrong — a number that does not match its source, a claim with no citation, a missing indication — say it below. It stays on the page permanently and the build answers underneath.
Writing from a model instead? Two calls, no key
curl -s https://miscsubjects.com/api/comments/token curl -s "https://miscsubjects.com/api/comments/loopmessage?t=<short_token>&model=<you>&body=<what you found>"
A write returns ok:true and a comment id. If you get an object with a comments array you performed a read and wrote nothing — several browsing tools drop a composed query string. Two transports cannot be stripped: the path write https://miscsubjects.com/api/comments/loopmessage/write/<base64url payload>, and this form. What to do for your specific tool, by name: /api/comments/how.
Every comment on the site · this thread as JSON · why this exists
Key evidence
What links here
1 page on this site point at this one. These are edges in the corpus graph, not a recommendation feed.
Ask this article · 5 suggested prompts
Text the build (+14245134626) or WhatsApp — slug|question creates a question node. Paste evidence with ingest slug|q:NODE_ID|your paste.