Skip to main content
POST
/
api
/
webhook
/
twilio
/
sms
Handle inbound SMS webhook (Twilio)
curl --request POST \
  --url https://your-instance.example.com/api/webhook/twilio/sms \
  --header 'Content-Type: application/json' \
  --data '
{
  "From": "+14165550100",
  "To": "+12362320246",
  "Body": "Hey, can you call me back?",
  "MessageSid": "SM5f7b1c2e8a1d4e0012c3b4a5",
  "NumMedia": "0"
}
'
"<?xml version=\"1.0\" encoding=\"UTF-8\"?><Response></Response>"

Body

application/json
From
string

Sender phone number in E.164 (e.g. +14165550100).

To
string

Tether-provisioned Twilio number that received the message.

Body
string

SMS/MMS text content.

MessageSid
string

Twilio-assigned message identifier (SM… for SMS, MM… for MMS).

NumMedia
string

Count of attached media items as a string; 0 for plain SMS.

MediaUrl0
string

URL of the first media attachment (Twilio CDN); additional MediaUrlN fields appear when NumMedia > 1.

MediaContentType0
string

MIME type of the first media attachment, e.g. image/jpeg.

Response

Empty TwiML response acknowledging receipt. Tether handles persistence + automation server-side; Twilio expects empty TwiML.

The response is of type string.