Receive iMessage via API
How inbound replies reach your application. When a customer answers, SendiMessage records the message, updates the conversation, and posts a signed webhook to your endpoint.
Inbound lifecycle
Where replies show up
Inbound messages appear in GET /v2/messages with direction "in" and status RECEIVED, and in their conversation thread. The receive webhook notifies your endpoint the moment a reply arrives. Inbound STOP-family keywords set the sender's opt-out state automatically.
The event
{"event": "receive","message_handle": "96699B14-AFDB-4B33-AA66-C4B093533DA3","from": "+14155550123","to": "+15555550100","content": "Can we move it to 3 PM?","media_url": null,"service": "iMessage","is_outbound": false,"status": "RECEIVED","date_sent": "2026-08-21T09:07:35Z","conversation_handle": "ee60f9b5-2ddb-4ea8-8ad7-bc70cf85727f"}
Verify X-SMSBridge-Signature against the raw body before trusting the payload, then read content and from.
How are replies grouped?
By conversation — one thread per line and counterpart. You can page a thread's history over the API to reconstruct context for your app, CRM, or agent.
Verify and consume events
The webhook reference includes signature-verification examples in Node.js and Python.