Skip to main content
POST
/
api
/
webhook
/
textgrid
/
sms
Handle inbound SMS/MMS webhook (TextGrid)
curl --request POST \
  --url https://your-instance.example.com/api/webhook/textgrid/sms \
  --header 'Content-Type: application/json' \
  --data '
{
  "AccountSid": "AC8a1d4e0012c3b4a55f7b1c2e8a",
  "MessageSid": "TG5f7b1c2e8a1d4e0012c3b4a5",
  "From": "+14165550100",
  "To": "+12362320246",
  "Body": "Picking up at 5pm, thanks!",
  "NumMedia": "0"
}
'
"<?xml version=\"1.0\" encoding=\"UTF-8\"?><Response></Response>"

Documentation Index

Fetch the complete documentation index at: https://docs.tetherai.ca/llms.txt

Use this file to discover all available pages before exploring further.

Body

application/json

TextGrid inbound SMS/MMS payload. Shape matches Twilio — additional MediaUrlN / MediaContentTypeN fields appear when NumMedia > 0.

AccountSid
string

TextGrid account identifier that owns the receiving number.

MessageSid
string

TextGrid-assigned message identifier.

From
string

Sender phone number in E.164.

To
string

Tether-provisioned TextGrid number that received the message.

Body
string

SMS/MMS text content.

NumMedia
string

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

MediaUrl0
string

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

MediaContentType0
string

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

Response

200 - application/xml

Empty TwiML response acknowledging receipt. TextGrid persists the message + drives automation server-side; no TwiML is returned to the caller.

The response is of type string.