[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-twilio-twilio-sms-send-message":3,"mdc--v9v2g4-key":33,"related-repo-twilio-twilio-sms-send-message":1617,"related-org-twilio-twilio-sms-send-message":1721},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":23,"repoUrl":24,"updatedAt":25,"license":26,"forks":27,"topics":28,"repo":29,"sourceUrl":31,"mdContent":32},"twilio-sms-send-message","send and troubleshoot Twilio SMS messages","SMS and MMS deep-dive reference. Covers SMS-specific error codes, message filtering troubleshooting (\"Messages Being Filtered or Blocked?\" diagnostic checklist), MMS media support (US\u002FCA\u002FAU only), and SMS pumping indicators. For sending SMS, use twilio-send-message instead. Use this skill only when debugging SMS delivery issues or needing SMS-specific details not in the consolidated send skill.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"twilio","Twilio","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Ftwilio.png",[12,16,19,22],{"name":13,"slug":14,"type":15},"SMS","sms","tag",{"name":17,"slug":18,"type":15},"Messaging","messaging",{"name":20,"slug":21,"type":15},"Debugging","debugging",{"name":9,"slug":8,"type":15},25,"https:\u002F\u002Fgithub.com\u002Ftwilio\u002Fai","2026-07-17T06:05:55.50185",null,7,[],{"repoUrl":24,"stars":23,"forks":27,"topics":30,"description":26},[],"https:\u002F\u002Fgithub.com\u002Ftwilio\u002Fai\u002Ftree\u002FHEAD\u002Fskills\u002Ftwilio\u002Ftwilio-sms-send-message","---\nname: twilio-sms-send-message\ndescription: >\n  SMS and MMS deep-dive reference. Covers SMS-specific error codes,\n  message filtering troubleshooting (\"Messages Being Filtered or Blocked?\"\n  diagnostic checklist), MMS media support (US\u002FCA\u002FAU only), and SMS pumping\n  indicators. For sending SMS, use twilio-send-message instead. Use this\n  skill only when debugging SMS delivery issues or needing SMS-specific\n  details not in the consolidated send skill.\n---\n\n## Overview\n\n**SMS is one channel in Twilio's Messaging platform.** All channels — SMS, WhatsApp, RCS, Facebook Messenger — share the same `messages.create()` API. See `twilio-messaging-overview` for the full channel comparison and onboarding sequence.\n\n| When to use SMS | When to consider alternatives |\n|----------------|------------------------------|\n| Reach any phone number globally | Need rich media outside US\u002FCA\u002FAU → WhatsApp |\n| No app install required | Opted-in audience prefers chat apps → WhatsApp |\n| Time-sensitive alerts (OTP, outage) | Marketing campaigns → `twilio-marketing-promotions-advisor` |\n| Regulatory\u002Fcompliance requires SMS | Cost-sensitive high-volume → WhatsApp (lower per-msg cost in many markets) |\n\n**For production SMS:** Use a Messaging Service (`messagingServiceSid`) instead of a raw `from` number. It enables sender pool management, compliance toolkit, SMS pumping protection, link shortening, and message scheduling. See `twilio-messaging-services`.\n\nEvery outbound SMS requires a `from` Twilio number (or `messagingServiceSid`) and a `to` recipient — both in E.164 format.\n\n---\n\n## Prerequisites\n\n- Twilio account with an SMS-capable phone number\n  — New to Twilio? See `twilio-account-setup` for signup, getting a number, and trial limitations\n- Environment variables:\n  - `TWILIO_ACCOUNT_SID`\n  - `TWILIO_AUTH_TOKEN`\n  — See `twilio-iam-auth-setup` for credential setup and best practices\n- SDK: `pip install twilio` \u002F `npm install twilio`\n\n---\n\n## Quickstart\n\n**Python**\n```python\nimport os\nfrom twilio.rest import Client\n\nclient = Client(os.environ[\"TWILIO_ACCOUNT_SID\"], os.environ[\"TWILIO_AUTH_TOKEN\"])\n\nmessage = client.messages.create(\n    from_=\"+15017122661\",   # Your Twilio number (E.164)\n    to=\"+15558675310\",      # Recipient (E.164)\n    body=\"Your appointment is confirmed for tomorrow at 2pm.\"\n)\n\nprint(message.sid)     # SMxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\nprint(message.status)  # queued | sent | delivered | failed\n```\n\n**Node.js**\n```node\nconst twilio = require(\"twilio\");\nconst client = twilio(process.env.TWILIO_ACCOUNT_SID, process.env.TWILIO_AUTH_TOKEN);\n\nconst message = await client.messages.create({\n    from: \"+15017122661\",\n    to: \"+15558675310\",\n    body: \"Your appointment is confirmed for tomorrow at 2pm.\",\n});\n\nconsole.log(message.sid);\nconsole.log(message.status);\n```\n\n---\n\n## Key Patterns\n\n### Send MMS (with media)\n\n**Python**\n```python\nmessage = client.messages.create(\n    from_=\"+15017122661\",\n    to=\"+15558675310\",\n    body=\"Here is your invoice.\",\n    media_url=[\"https:\u002F\u002Fexample.com\u002Finvoice.pdf\"]\n)\n```\n\n**Node.js**\n```node\nconst message = await client.messages.create({\n    from: \"+15017122661\",\n    to: \"+15558675310\",\n    body: \"Here is your invoice.\",\n    mediaUrl: [\"https:\u002F\u002Fexample.com\u002Finvoice.pdf\"],\n});\n```\n\nSupported media types: images (JPEG, PNG, GIF), PDF, audio, video. Max 5 MB per message.\n\n### Send via Messaging Service (recommended for scale)\n\nUse `messagingServiceSid` instead of `from` — Twilio picks the best sender automatically from your pool.\n\n**Python**\n```python\nmessage = client.messages.create(\n    messaging_service_sid=\"MGxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n    to=\"+15558675310\",\n    body=\"Your order has shipped.\"\n)\n```\n\n**Node.js**\n```node\nconst message = await client.messages.create({\n    messagingServiceSid: \"MGxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n    to: \"+15558675310\",\n    body: \"Your order has shipped.\",\n});\n```\n\n### Track Delivery Status\n\n**Python**\n```python\nmessage = client.messages.create(\n    from_=\"+15017122661\",\n    to=\"+15558675310\",\n    body=\"Hello!\",\n    status_callback=\"https:\u002F\u002Fyourapp.com\u002Fsms-status\"\n)\n```\n\n**Node.js**\n```node\nconst message = await client.messages.create({\n    from: \"+15017122661\",\n    to: \"+15558675310\",\n    body: \"Hello!\",\n    statusCallback: \"https:\u002F\u002Fyourapp.com\u002Fsms-status\",\n});\n```\n\nTwilio POSTs to your URL at each transition: `queued → sent → delivered` (or `failed`\u002F`undelivered`).\n\n---\n\n## Response Fields\n\n| Field | Description |\n|-------|-------------|\n| `sid` | Message identifier (`SM...`) |\n| `status` | `queued`, `sent`, `delivered`, `undelivered`, `failed` |\n| `error_code` | Populated on failure |\n| `error_message` | Human-readable description |\n| `price` | Cost (populated after delivery) |\n| `date_sent` | UTC timestamp |\n\n---\n\n## Common Errors\n\n| Code | Meaning | Fix |\n|------|---------|-----|\n| 21211 | Invalid `to` number | Validate E.164 format |\n| 21408 | Permission to send to region not enabled | Enable geo-permissions in Console |\n| 21610 | Number is on blocklist (opted out) | Do not retry; respect opt-out |\n| 30003 | Unreachable destination | Carrier cannot deliver; try later |\n| 30007 | Message filtered as spam | Review content and sender reputation |\n| 30034 | Message from unregistered number | Complete A2P 10DLC registration — see `twilio-compliance-onboarding` |\n| 30450 | SMS pumping detected | Message blocked by SMS pumping protection — see `twilio-messaging-services` |\n\n### Messages Being Filtered or Blocked?\n\nIf your messages aren't being delivered, check these causes in order:\n\n1. **Unregistered sender (error 30034)** — US 10DLC numbers must be registered. See `twilio-compliance-onboarding`\n2. **Spam filtered (error 30007)** — Carrier flagged content. Check: opt-out language included? URL shorteners avoided? Content matches registered campaign?\n3. **Opted-out recipient (error 21610)** — Recipient sent STOP. Do not retry. See `twilio-compliance-traffic`\n4. **Geo-permissions disabled (error 21408)** — Enable the destination country in Console > Messaging > Settings > Geo Permissions. See `twilio-security-hardening`\n5. **SMS pumping (error 30450)** — Artificial traffic detected. Whitelist known prefixes via Global Safe List. See `twilio-messaging-services`\n6. **Account suspended** — Check Console for account status notifications. See `twilio-account-setup`\n\nFor delivery event tracking, set up StatusCallbacks or use `twilio-debugging-observability`.\n\n---\n\n## CANNOT\n\n- **Cannot send without E.164 format** — Both `from` and `to` must be `+` followed by country code and number\n- **Cannot send to unverified numbers on trial accounts** — Upgrade to paid or verify recipient numbers first\n- **Cannot send MMS outside US, Canada, and Australia** — MMS is only supported on US\u002FCA\u002FAU numbers; for international rich media use WhatsApp\n- **Cannot exceed 1,600 characters per message** — Longer messages are automatically split into segments (each billed separately)\n- **Cannot prevent SMS pumping without a Messaging Service** — Enable SMS pumping protection via Messaging Services to prevent artificial traffic inflation. See `twilio-messaging-services`\n\n---\n\n## Next Steps\n\n- **Channel overview and onboarding guide:** `twilio-messaging-overview`\n- **Receive inbound SMS and delivery status:** `twilio-messaging-webhooks`\n- **Manage sender pools at scale:** `twilio-messaging-services`\n- **US compliance for A2P traffic:** `twilio-compliance-onboarding`\n- **Send via WhatsApp instead:** `twilio-whatsapp-send-message`\n",{"data":34,"body":35},{"name":4,"description":6},{"type":36,"children":37},"root",[38,47,76,162,196,223,227,233,306,309,315,323,451,459,554,557,563,570,577,630,637,688,693,699,718,725,769,776,820,826,833,884,891,942,971,974,980,1143,1146,1152,1323,1329,1334,1425,1437,1440,1446,1526,1529,1535,1611],{"type":39,"tag":40,"props":41,"children":43},"element","h2",{"id":42},"overview",[44],{"type":45,"value":46},"text","Overview",{"type":39,"tag":48,"props":49,"children":50},"p",{},[51,57,59,66,68,74],{"type":39,"tag":52,"props":53,"children":54},"strong",{},[55],{"type":45,"value":56},"SMS is one channel in Twilio's Messaging platform.",{"type":45,"value":58}," All channels — SMS, WhatsApp, RCS, Facebook Messenger — share the same ",{"type":39,"tag":60,"props":61,"children":63},"code",{"className":62},[],[64],{"type":45,"value":65},"messages.create()",{"type":45,"value":67}," API. See ",{"type":39,"tag":60,"props":69,"children":71},{"className":70},[],[72],{"type":45,"value":73},"twilio-messaging-overview",{"type":45,"value":75}," for the full channel comparison and onboarding sequence.",{"type":39,"tag":77,"props":78,"children":79},"table",{},[80,99],{"type":39,"tag":81,"props":82,"children":83},"thead",{},[84],{"type":39,"tag":85,"props":86,"children":87},"tr",{},[88,94],{"type":39,"tag":89,"props":90,"children":91},"th",{},[92],{"type":45,"value":93},"When to use SMS",{"type":39,"tag":89,"props":95,"children":96},{},[97],{"type":45,"value":98},"When to consider alternatives",{"type":39,"tag":100,"props":101,"children":102},"tbody",{},[103,117,130,149],{"type":39,"tag":85,"props":104,"children":105},{},[106,112],{"type":39,"tag":107,"props":108,"children":109},"td",{},[110],{"type":45,"value":111},"Reach any phone number globally",{"type":39,"tag":107,"props":113,"children":114},{},[115],{"type":45,"value":116},"Need rich media outside US\u002FCA\u002FAU → WhatsApp",{"type":39,"tag":85,"props":118,"children":119},{},[120,125],{"type":39,"tag":107,"props":121,"children":122},{},[123],{"type":45,"value":124},"No app install required",{"type":39,"tag":107,"props":126,"children":127},{},[128],{"type":45,"value":129},"Opted-in audience prefers chat apps → WhatsApp",{"type":39,"tag":85,"props":131,"children":132},{},[133,138],{"type":39,"tag":107,"props":134,"children":135},{},[136],{"type":45,"value":137},"Time-sensitive alerts (OTP, outage)",{"type":39,"tag":107,"props":139,"children":140},{},[141,143],{"type":45,"value":142},"Marketing campaigns → ",{"type":39,"tag":60,"props":144,"children":146},{"className":145},[],[147],{"type":45,"value":148},"twilio-marketing-promotions-advisor",{"type":39,"tag":85,"props":150,"children":151},{},[152,157],{"type":39,"tag":107,"props":153,"children":154},{},[155],{"type":45,"value":156},"Regulatory\u002Fcompliance requires SMS",{"type":39,"tag":107,"props":158,"children":159},{},[160],{"type":45,"value":161},"Cost-sensitive high-volume → WhatsApp (lower per-msg cost in many markets)",{"type":39,"tag":48,"props":163,"children":164},{},[165,170,172,178,180,186,188,194],{"type":39,"tag":52,"props":166,"children":167},{},[168],{"type":45,"value":169},"For production SMS:",{"type":45,"value":171}," Use a Messaging Service (",{"type":39,"tag":60,"props":173,"children":175},{"className":174},[],[176],{"type":45,"value":177},"messagingServiceSid",{"type":45,"value":179},") instead of a raw ",{"type":39,"tag":60,"props":181,"children":183},{"className":182},[],[184],{"type":45,"value":185},"from",{"type":45,"value":187}," number. It enables sender pool management, compliance toolkit, SMS pumping protection, link shortening, and message scheduling. See ",{"type":39,"tag":60,"props":189,"children":191},{"className":190},[],[192],{"type":45,"value":193},"twilio-messaging-services",{"type":45,"value":195},".",{"type":39,"tag":48,"props":197,"children":198},{},[199,201,206,208,213,215,221],{"type":45,"value":200},"Every outbound SMS requires a ",{"type":39,"tag":60,"props":202,"children":204},{"className":203},[],[205],{"type":45,"value":185},{"type":45,"value":207}," Twilio number (or ",{"type":39,"tag":60,"props":209,"children":211},{"className":210},[],[212],{"type":45,"value":177},{"type":45,"value":214},") and a ",{"type":39,"tag":60,"props":216,"children":218},{"className":217},[],[219],{"type":45,"value":220},"to",{"type":45,"value":222}," recipient — both in E.164 format.",{"type":39,"tag":224,"props":225,"children":226},"hr",{},[],{"type":39,"tag":40,"props":228,"children":230},{"id":229},"prerequisites",[231],{"type":45,"value":232},"Prerequisites",{"type":39,"tag":234,"props":235,"children":236},"ul",{},[237,251,287],{"type":39,"tag":238,"props":239,"children":240},"li",{},[241,243,249],{"type":45,"value":242},"Twilio account with an SMS-capable phone number\n— New to Twilio? See ",{"type":39,"tag":60,"props":244,"children":246},{"className":245},[],[247],{"type":45,"value":248},"twilio-account-setup",{"type":45,"value":250}," for signup, getting a number, and trial limitations",{"type":39,"tag":238,"props":252,"children":253},{},[254,256],{"type":45,"value":255},"Environment variables:\n",{"type":39,"tag":234,"props":257,"children":258},{},[259,268],{"type":39,"tag":238,"props":260,"children":261},{},[262],{"type":39,"tag":60,"props":263,"children":265},{"className":264},[],[266],{"type":45,"value":267},"TWILIO_ACCOUNT_SID",{"type":39,"tag":238,"props":269,"children":270},{},[271,277,279,285],{"type":39,"tag":60,"props":272,"children":274},{"className":273},[],[275],{"type":45,"value":276},"TWILIO_AUTH_TOKEN",{"type":45,"value":278},"\n— See ",{"type":39,"tag":60,"props":280,"children":282},{"className":281},[],[283],{"type":45,"value":284},"twilio-iam-auth-setup",{"type":45,"value":286}," for credential setup and best practices",{"type":39,"tag":238,"props":288,"children":289},{},[290,292,298,300],{"type":45,"value":291},"SDK: ",{"type":39,"tag":60,"props":293,"children":295},{"className":294},[],[296],{"type":45,"value":297},"pip install twilio",{"type":45,"value":299}," \u002F ",{"type":39,"tag":60,"props":301,"children":303},{"className":302},[],[304],{"type":45,"value":305},"npm install twilio",{"type":39,"tag":224,"props":307,"children":308},{},[],{"type":39,"tag":40,"props":310,"children":312},{"id":311},"quickstart",[313],{"type":45,"value":314},"Quickstart",{"type":39,"tag":48,"props":316,"children":317},{},[318],{"type":39,"tag":52,"props":319,"children":320},{},[321],{"type":45,"value":322},"Python",{"type":39,"tag":324,"props":325,"children":330},"pre",{"className":326,"code":327,"language":328,"meta":329,"style":329},"language-python shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import os\nfrom twilio.rest import Client\n\nclient = Client(os.environ[\"TWILIO_ACCOUNT_SID\"], os.environ[\"TWILIO_AUTH_TOKEN\"])\n\nmessage = client.messages.create(\n    from_=\"+15017122661\",   # Your Twilio number (E.164)\n    to=\"+15558675310\",      # Recipient (E.164)\n    body=\"Your appointment is confirmed for tomorrow at 2pm.\"\n)\n\nprint(message.sid)     # SMxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\nprint(message.status)  # queued | sent | delivered | failed\n","python","",[331],{"type":39,"tag":60,"props":332,"children":333},{"__ignoreMap":329},[334,345,354,364,373,381,390,398,407,416,425,433,442],{"type":39,"tag":335,"props":336,"children":339},"span",{"class":337,"line":338},"line",1,[340],{"type":39,"tag":335,"props":341,"children":342},{},[343],{"type":45,"value":344},"import os\n",{"type":39,"tag":335,"props":346,"children":348},{"class":337,"line":347},2,[349],{"type":39,"tag":335,"props":350,"children":351},{},[352],{"type":45,"value":353},"from twilio.rest import Client\n",{"type":39,"tag":335,"props":355,"children":357},{"class":337,"line":356},3,[358],{"type":39,"tag":335,"props":359,"children":361},{"emptyLinePlaceholder":360},true,[362],{"type":45,"value":363},"\n",{"type":39,"tag":335,"props":365,"children":367},{"class":337,"line":366},4,[368],{"type":39,"tag":335,"props":369,"children":370},{},[371],{"type":45,"value":372},"client = Client(os.environ[\"TWILIO_ACCOUNT_SID\"], os.environ[\"TWILIO_AUTH_TOKEN\"])\n",{"type":39,"tag":335,"props":374,"children":376},{"class":337,"line":375},5,[377],{"type":39,"tag":335,"props":378,"children":379},{"emptyLinePlaceholder":360},[380],{"type":45,"value":363},{"type":39,"tag":335,"props":382,"children":384},{"class":337,"line":383},6,[385],{"type":39,"tag":335,"props":386,"children":387},{},[388],{"type":45,"value":389},"message = client.messages.create(\n",{"type":39,"tag":335,"props":391,"children":392},{"class":337,"line":27},[393],{"type":39,"tag":335,"props":394,"children":395},{},[396],{"type":45,"value":397},"    from_=\"+15017122661\",   # Your Twilio number (E.164)\n",{"type":39,"tag":335,"props":399,"children":401},{"class":337,"line":400},8,[402],{"type":39,"tag":335,"props":403,"children":404},{},[405],{"type":45,"value":406},"    to=\"+15558675310\",      # Recipient (E.164)\n",{"type":39,"tag":335,"props":408,"children":410},{"class":337,"line":409},9,[411],{"type":39,"tag":335,"props":412,"children":413},{},[414],{"type":45,"value":415},"    body=\"Your appointment is confirmed for tomorrow at 2pm.\"\n",{"type":39,"tag":335,"props":417,"children":419},{"class":337,"line":418},10,[420],{"type":39,"tag":335,"props":421,"children":422},{},[423],{"type":45,"value":424},")\n",{"type":39,"tag":335,"props":426,"children":428},{"class":337,"line":427},11,[429],{"type":39,"tag":335,"props":430,"children":431},{"emptyLinePlaceholder":360},[432],{"type":45,"value":363},{"type":39,"tag":335,"props":434,"children":436},{"class":337,"line":435},12,[437],{"type":39,"tag":335,"props":438,"children":439},{},[440],{"type":45,"value":441},"print(message.sid)     # SMxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n",{"type":39,"tag":335,"props":443,"children":445},{"class":337,"line":444},13,[446],{"type":39,"tag":335,"props":447,"children":448},{},[449],{"type":45,"value":450},"print(message.status)  # queued | sent | delivered | failed\n",{"type":39,"tag":48,"props":452,"children":453},{},[454],{"type":39,"tag":52,"props":455,"children":456},{},[457],{"type":45,"value":458},"Node.js",{"type":39,"tag":324,"props":460,"children":464},{"className":461,"code":462,"language":463,"meta":329,"style":329},"language-node shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","const twilio = require(\"twilio\");\nconst client = twilio(process.env.TWILIO_ACCOUNT_SID, process.env.TWILIO_AUTH_TOKEN);\n\nconst message = await client.messages.create({\n    from: \"+15017122661\",\n    to: \"+15558675310\",\n    body: \"Your appointment is confirmed for tomorrow at 2pm.\",\n});\n\nconsole.log(message.sid);\nconsole.log(message.status);\n","node",[465],{"type":39,"tag":60,"props":466,"children":467},{"__ignoreMap":329},[468,476,484,491,499,507,515,523,531,538,546],{"type":39,"tag":335,"props":469,"children":470},{"class":337,"line":338},[471],{"type":39,"tag":335,"props":472,"children":473},{},[474],{"type":45,"value":475},"const twilio = require(\"twilio\");\n",{"type":39,"tag":335,"props":477,"children":478},{"class":337,"line":347},[479],{"type":39,"tag":335,"props":480,"children":481},{},[482],{"type":45,"value":483},"const client = twilio(process.env.TWILIO_ACCOUNT_SID, process.env.TWILIO_AUTH_TOKEN);\n",{"type":39,"tag":335,"props":485,"children":486},{"class":337,"line":356},[487],{"type":39,"tag":335,"props":488,"children":489},{"emptyLinePlaceholder":360},[490],{"type":45,"value":363},{"type":39,"tag":335,"props":492,"children":493},{"class":337,"line":366},[494],{"type":39,"tag":335,"props":495,"children":496},{},[497],{"type":45,"value":498},"const message = await client.messages.create({\n",{"type":39,"tag":335,"props":500,"children":501},{"class":337,"line":375},[502],{"type":39,"tag":335,"props":503,"children":504},{},[505],{"type":45,"value":506},"    from: \"+15017122661\",\n",{"type":39,"tag":335,"props":508,"children":509},{"class":337,"line":383},[510],{"type":39,"tag":335,"props":511,"children":512},{},[513],{"type":45,"value":514},"    to: \"+15558675310\",\n",{"type":39,"tag":335,"props":516,"children":517},{"class":337,"line":27},[518],{"type":39,"tag":335,"props":519,"children":520},{},[521],{"type":45,"value":522},"    body: \"Your appointment is confirmed for tomorrow at 2pm.\",\n",{"type":39,"tag":335,"props":524,"children":525},{"class":337,"line":400},[526],{"type":39,"tag":335,"props":527,"children":528},{},[529],{"type":45,"value":530},"});\n",{"type":39,"tag":335,"props":532,"children":533},{"class":337,"line":409},[534],{"type":39,"tag":335,"props":535,"children":536},{"emptyLinePlaceholder":360},[537],{"type":45,"value":363},{"type":39,"tag":335,"props":539,"children":540},{"class":337,"line":418},[541],{"type":39,"tag":335,"props":542,"children":543},{},[544],{"type":45,"value":545},"console.log(message.sid);\n",{"type":39,"tag":335,"props":547,"children":548},{"class":337,"line":427},[549],{"type":39,"tag":335,"props":550,"children":551},{},[552],{"type":45,"value":553},"console.log(message.status);\n",{"type":39,"tag":224,"props":555,"children":556},{},[],{"type":39,"tag":40,"props":558,"children":560},{"id":559},"key-patterns",[561],{"type":45,"value":562},"Key Patterns",{"type":39,"tag":564,"props":565,"children":567},"h3",{"id":566},"send-mms-with-media",[568],{"type":45,"value":569},"Send MMS (with media)",{"type":39,"tag":48,"props":571,"children":572},{},[573],{"type":39,"tag":52,"props":574,"children":575},{},[576],{"type":45,"value":322},{"type":39,"tag":324,"props":578,"children":580},{"className":326,"code":579,"language":328,"meta":329,"style":329},"message = client.messages.create(\n    from_=\"+15017122661\",\n    to=\"+15558675310\",\n    body=\"Here is your invoice.\",\n    media_url=[\"https:\u002F\u002Fexample.com\u002Finvoice.pdf\"]\n)\n",[581],{"type":39,"tag":60,"props":582,"children":583},{"__ignoreMap":329},[584,591,599,607,615,623],{"type":39,"tag":335,"props":585,"children":586},{"class":337,"line":338},[587],{"type":39,"tag":335,"props":588,"children":589},{},[590],{"type":45,"value":389},{"type":39,"tag":335,"props":592,"children":593},{"class":337,"line":347},[594],{"type":39,"tag":335,"props":595,"children":596},{},[597],{"type":45,"value":598},"    from_=\"+15017122661\",\n",{"type":39,"tag":335,"props":600,"children":601},{"class":337,"line":356},[602],{"type":39,"tag":335,"props":603,"children":604},{},[605],{"type":45,"value":606},"    to=\"+15558675310\",\n",{"type":39,"tag":335,"props":608,"children":609},{"class":337,"line":366},[610],{"type":39,"tag":335,"props":611,"children":612},{},[613],{"type":45,"value":614},"    body=\"Here is your invoice.\",\n",{"type":39,"tag":335,"props":616,"children":617},{"class":337,"line":375},[618],{"type":39,"tag":335,"props":619,"children":620},{},[621],{"type":45,"value":622},"    media_url=[\"https:\u002F\u002Fexample.com\u002Finvoice.pdf\"]\n",{"type":39,"tag":335,"props":624,"children":625},{"class":337,"line":383},[626],{"type":39,"tag":335,"props":627,"children":628},{},[629],{"type":45,"value":424},{"type":39,"tag":48,"props":631,"children":632},{},[633],{"type":39,"tag":52,"props":634,"children":635},{},[636],{"type":45,"value":458},{"type":39,"tag":324,"props":638,"children":640},{"className":461,"code":639,"language":463,"meta":329,"style":329},"const message = await client.messages.create({\n    from: \"+15017122661\",\n    to: \"+15558675310\",\n    body: \"Here is your invoice.\",\n    mediaUrl: [\"https:\u002F\u002Fexample.com\u002Finvoice.pdf\"],\n});\n",[641],{"type":39,"tag":60,"props":642,"children":643},{"__ignoreMap":329},[644,651,658,665,673,681],{"type":39,"tag":335,"props":645,"children":646},{"class":337,"line":338},[647],{"type":39,"tag":335,"props":648,"children":649},{},[650],{"type":45,"value":498},{"type":39,"tag":335,"props":652,"children":653},{"class":337,"line":347},[654],{"type":39,"tag":335,"props":655,"children":656},{},[657],{"type":45,"value":506},{"type":39,"tag":335,"props":659,"children":660},{"class":337,"line":356},[661],{"type":39,"tag":335,"props":662,"children":663},{},[664],{"type":45,"value":514},{"type":39,"tag":335,"props":666,"children":667},{"class":337,"line":366},[668],{"type":39,"tag":335,"props":669,"children":670},{},[671],{"type":45,"value":672},"    body: \"Here is your invoice.\",\n",{"type":39,"tag":335,"props":674,"children":675},{"class":337,"line":375},[676],{"type":39,"tag":335,"props":677,"children":678},{},[679],{"type":45,"value":680},"    mediaUrl: [\"https:\u002F\u002Fexample.com\u002Finvoice.pdf\"],\n",{"type":39,"tag":335,"props":682,"children":683},{"class":337,"line":383},[684],{"type":39,"tag":335,"props":685,"children":686},{},[687],{"type":45,"value":530},{"type":39,"tag":48,"props":689,"children":690},{},[691],{"type":45,"value":692},"Supported media types: images (JPEG, PNG, GIF), PDF, audio, video. Max 5 MB per message.",{"type":39,"tag":564,"props":694,"children":696},{"id":695},"send-via-messaging-service-recommended-for-scale",[697],{"type":45,"value":698},"Send via Messaging Service (recommended for scale)",{"type":39,"tag":48,"props":700,"children":701},{},[702,704,709,711,716],{"type":45,"value":703},"Use ",{"type":39,"tag":60,"props":705,"children":707},{"className":706},[],[708],{"type":45,"value":177},{"type":45,"value":710}," instead of ",{"type":39,"tag":60,"props":712,"children":714},{"className":713},[],[715],{"type":45,"value":185},{"type":45,"value":717}," — Twilio picks the best sender automatically from your pool.",{"type":39,"tag":48,"props":719,"children":720},{},[721],{"type":39,"tag":52,"props":722,"children":723},{},[724],{"type":45,"value":322},{"type":39,"tag":324,"props":726,"children":728},{"className":326,"code":727,"language":328,"meta":329,"style":329},"message = client.messages.create(\n    messaging_service_sid=\"MGxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n    to=\"+15558675310\",\n    body=\"Your order has shipped.\"\n)\n",[729],{"type":39,"tag":60,"props":730,"children":731},{"__ignoreMap":329},[732,739,747,754,762],{"type":39,"tag":335,"props":733,"children":734},{"class":337,"line":338},[735],{"type":39,"tag":335,"props":736,"children":737},{},[738],{"type":45,"value":389},{"type":39,"tag":335,"props":740,"children":741},{"class":337,"line":347},[742],{"type":39,"tag":335,"props":743,"children":744},{},[745],{"type":45,"value":746},"    messaging_service_sid=\"MGxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n",{"type":39,"tag":335,"props":748,"children":749},{"class":337,"line":356},[750],{"type":39,"tag":335,"props":751,"children":752},{},[753],{"type":45,"value":606},{"type":39,"tag":335,"props":755,"children":756},{"class":337,"line":366},[757],{"type":39,"tag":335,"props":758,"children":759},{},[760],{"type":45,"value":761},"    body=\"Your order has shipped.\"\n",{"type":39,"tag":335,"props":763,"children":764},{"class":337,"line":375},[765],{"type":39,"tag":335,"props":766,"children":767},{},[768],{"type":45,"value":424},{"type":39,"tag":48,"props":770,"children":771},{},[772],{"type":39,"tag":52,"props":773,"children":774},{},[775],{"type":45,"value":458},{"type":39,"tag":324,"props":777,"children":779},{"className":461,"code":778,"language":463,"meta":329,"style":329},"const message = await client.messages.create({\n    messagingServiceSid: \"MGxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n    to: \"+15558675310\",\n    body: \"Your order has shipped.\",\n});\n",[780],{"type":39,"tag":60,"props":781,"children":782},{"__ignoreMap":329},[783,790,798,805,813],{"type":39,"tag":335,"props":784,"children":785},{"class":337,"line":338},[786],{"type":39,"tag":335,"props":787,"children":788},{},[789],{"type":45,"value":498},{"type":39,"tag":335,"props":791,"children":792},{"class":337,"line":347},[793],{"type":39,"tag":335,"props":794,"children":795},{},[796],{"type":45,"value":797},"    messagingServiceSid: \"MGxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n",{"type":39,"tag":335,"props":799,"children":800},{"class":337,"line":356},[801],{"type":39,"tag":335,"props":802,"children":803},{},[804],{"type":45,"value":514},{"type":39,"tag":335,"props":806,"children":807},{"class":337,"line":366},[808],{"type":39,"tag":335,"props":809,"children":810},{},[811],{"type":45,"value":812},"    body: \"Your order has shipped.\",\n",{"type":39,"tag":335,"props":814,"children":815},{"class":337,"line":375},[816],{"type":39,"tag":335,"props":817,"children":818},{},[819],{"type":45,"value":530},{"type":39,"tag":564,"props":821,"children":823},{"id":822},"track-delivery-status",[824],{"type":45,"value":825},"Track Delivery Status",{"type":39,"tag":48,"props":827,"children":828},{},[829],{"type":39,"tag":52,"props":830,"children":831},{},[832],{"type":45,"value":322},{"type":39,"tag":324,"props":834,"children":836},{"className":326,"code":835,"language":328,"meta":329,"style":329},"message = client.messages.create(\n    from_=\"+15017122661\",\n    to=\"+15558675310\",\n    body=\"Hello!\",\n    status_callback=\"https:\u002F\u002Fyourapp.com\u002Fsms-status\"\n)\n",[837],{"type":39,"tag":60,"props":838,"children":839},{"__ignoreMap":329},[840,847,854,861,869,877],{"type":39,"tag":335,"props":841,"children":842},{"class":337,"line":338},[843],{"type":39,"tag":335,"props":844,"children":845},{},[846],{"type":45,"value":389},{"type":39,"tag":335,"props":848,"children":849},{"class":337,"line":347},[850],{"type":39,"tag":335,"props":851,"children":852},{},[853],{"type":45,"value":598},{"type":39,"tag":335,"props":855,"children":856},{"class":337,"line":356},[857],{"type":39,"tag":335,"props":858,"children":859},{},[860],{"type":45,"value":606},{"type":39,"tag":335,"props":862,"children":863},{"class":337,"line":366},[864],{"type":39,"tag":335,"props":865,"children":866},{},[867],{"type":45,"value":868},"    body=\"Hello!\",\n",{"type":39,"tag":335,"props":870,"children":871},{"class":337,"line":375},[872],{"type":39,"tag":335,"props":873,"children":874},{},[875],{"type":45,"value":876},"    status_callback=\"https:\u002F\u002Fyourapp.com\u002Fsms-status\"\n",{"type":39,"tag":335,"props":878,"children":879},{"class":337,"line":383},[880],{"type":39,"tag":335,"props":881,"children":882},{},[883],{"type":45,"value":424},{"type":39,"tag":48,"props":885,"children":886},{},[887],{"type":39,"tag":52,"props":888,"children":889},{},[890],{"type":45,"value":458},{"type":39,"tag":324,"props":892,"children":894},{"className":461,"code":893,"language":463,"meta":329,"style":329},"const message = await client.messages.create({\n    from: \"+15017122661\",\n    to: \"+15558675310\",\n    body: \"Hello!\",\n    statusCallback: \"https:\u002F\u002Fyourapp.com\u002Fsms-status\",\n});\n",[895],{"type":39,"tag":60,"props":896,"children":897},{"__ignoreMap":329},[898,905,912,919,927,935],{"type":39,"tag":335,"props":899,"children":900},{"class":337,"line":338},[901],{"type":39,"tag":335,"props":902,"children":903},{},[904],{"type":45,"value":498},{"type":39,"tag":335,"props":906,"children":907},{"class":337,"line":347},[908],{"type":39,"tag":335,"props":909,"children":910},{},[911],{"type":45,"value":506},{"type":39,"tag":335,"props":913,"children":914},{"class":337,"line":356},[915],{"type":39,"tag":335,"props":916,"children":917},{},[918],{"type":45,"value":514},{"type":39,"tag":335,"props":920,"children":921},{"class":337,"line":366},[922],{"type":39,"tag":335,"props":923,"children":924},{},[925],{"type":45,"value":926},"    body: \"Hello!\",\n",{"type":39,"tag":335,"props":928,"children":929},{"class":337,"line":375},[930],{"type":39,"tag":335,"props":931,"children":932},{},[933],{"type":45,"value":934},"    statusCallback: \"https:\u002F\u002Fyourapp.com\u002Fsms-status\",\n",{"type":39,"tag":335,"props":936,"children":937},{"class":337,"line":383},[938],{"type":39,"tag":335,"props":939,"children":940},{},[941],{"type":45,"value":530},{"type":39,"tag":48,"props":943,"children":944},{},[945,947,953,955,961,963,969],{"type":45,"value":946},"Twilio POSTs to your URL at each transition: ",{"type":39,"tag":60,"props":948,"children":950},{"className":949},[],[951],{"type":45,"value":952},"queued → sent → delivered",{"type":45,"value":954}," (or ",{"type":39,"tag":60,"props":956,"children":958},{"className":957},[],[959],{"type":45,"value":960},"failed",{"type":45,"value":962},"\u002F",{"type":39,"tag":60,"props":964,"children":966},{"className":965},[],[967],{"type":45,"value":968},"undelivered",{"type":45,"value":970},").",{"type":39,"tag":224,"props":972,"children":973},{},[],{"type":39,"tag":40,"props":975,"children":977},{"id":976},"response-fields",[978],{"type":45,"value":979},"Response Fields",{"type":39,"tag":77,"props":981,"children":982},{},[983,999],{"type":39,"tag":81,"props":984,"children":985},{},[986],{"type":39,"tag":85,"props":987,"children":988},{},[989,994],{"type":39,"tag":89,"props":990,"children":991},{},[992],{"type":45,"value":993},"Field",{"type":39,"tag":89,"props":995,"children":996},{},[997],{"type":45,"value":998},"Description",{"type":39,"tag":100,"props":1000,"children":1001},{},[1002,1027,1075,1092,1109,1126],{"type":39,"tag":85,"props":1003,"children":1004},{},[1005,1014],{"type":39,"tag":107,"props":1006,"children":1007},{},[1008],{"type":39,"tag":60,"props":1009,"children":1011},{"className":1010},[],[1012],{"type":45,"value":1013},"sid",{"type":39,"tag":107,"props":1015,"children":1016},{},[1017,1019,1025],{"type":45,"value":1018},"Message identifier (",{"type":39,"tag":60,"props":1020,"children":1022},{"className":1021},[],[1023],{"type":45,"value":1024},"SM...",{"type":45,"value":1026},")",{"type":39,"tag":85,"props":1028,"children":1029},{},[1030,1039],{"type":39,"tag":107,"props":1031,"children":1032},{},[1033],{"type":39,"tag":60,"props":1034,"children":1036},{"className":1035},[],[1037],{"type":45,"value":1038},"status",{"type":39,"tag":107,"props":1040,"children":1041},{},[1042,1048,1050,1056,1057,1063,1064,1069,1070],{"type":39,"tag":60,"props":1043,"children":1045},{"className":1044},[],[1046],{"type":45,"value":1047},"queued",{"type":45,"value":1049},", ",{"type":39,"tag":60,"props":1051,"children":1053},{"className":1052},[],[1054],{"type":45,"value":1055},"sent",{"type":45,"value":1049},{"type":39,"tag":60,"props":1058,"children":1060},{"className":1059},[],[1061],{"type":45,"value":1062},"delivered",{"type":45,"value":1049},{"type":39,"tag":60,"props":1065,"children":1067},{"className":1066},[],[1068],{"type":45,"value":968},{"type":45,"value":1049},{"type":39,"tag":60,"props":1071,"children":1073},{"className":1072},[],[1074],{"type":45,"value":960},{"type":39,"tag":85,"props":1076,"children":1077},{},[1078,1087],{"type":39,"tag":107,"props":1079,"children":1080},{},[1081],{"type":39,"tag":60,"props":1082,"children":1084},{"className":1083},[],[1085],{"type":45,"value":1086},"error_code",{"type":39,"tag":107,"props":1088,"children":1089},{},[1090],{"type":45,"value":1091},"Populated on failure",{"type":39,"tag":85,"props":1093,"children":1094},{},[1095,1104],{"type":39,"tag":107,"props":1096,"children":1097},{},[1098],{"type":39,"tag":60,"props":1099,"children":1101},{"className":1100},[],[1102],{"type":45,"value":1103},"error_message",{"type":39,"tag":107,"props":1105,"children":1106},{},[1107],{"type":45,"value":1108},"Human-readable description",{"type":39,"tag":85,"props":1110,"children":1111},{},[1112,1121],{"type":39,"tag":107,"props":1113,"children":1114},{},[1115],{"type":39,"tag":60,"props":1116,"children":1118},{"className":1117},[],[1119],{"type":45,"value":1120},"price",{"type":39,"tag":107,"props":1122,"children":1123},{},[1124],{"type":45,"value":1125},"Cost (populated after delivery)",{"type":39,"tag":85,"props":1127,"children":1128},{},[1129,1138],{"type":39,"tag":107,"props":1130,"children":1131},{},[1132],{"type":39,"tag":60,"props":1133,"children":1135},{"className":1134},[],[1136],{"type":45,"value":1137},"date_sent",{"type":39,"tag":107,"props":1139,"children":1140},{},[1141],{"type":45,"value":1142},"UTC timestamp",{"type":39,"tag":224,"props":1144,"children":1145},{},[],{"type":39,"tag":40,"props":1147,"children":1149},{"id":1148},"common-errors",[1150],{"type":45,"value":1151},"Common Errors",{"type":39,"tag":77,"props":1153,"children":1154},{},[1155,1176],{"type":39,"tag":81,"props":1156,"children":1157},{},[1158],{"type":39,"tag":85,"props":1159,"children":1160},{},[1161,1166,1171],{"type":39,"tag":89,"props":1162,"children":1163},{},[1164],{"type":45,"value":1165},"Code",{"type":39,"tag":89,"props":1167,"children":1168},{},[1169],{"type":45,"value":1170},"Meaning",{"type":39,"tag":89,"props":1172,"children":1173},{},[1174],{"type":45,"value":1175},"Fix",{"type":39,"tag":100,"props":1177,"children":1178},{},[1179,1204,1222,1240,1258,1276,1300],{"type":39,"tag":85,"props":1180,"children":1181},{},[1182,1187,1199],{"type":39,"tag":107,"props":1183,"children":1184},{},[1185],{"type":45,"value":1186},"21211",{"type":39,"tag":107,"props":1188,"children":1189},{},[1190,1192,1197],{"type":45,"value":1191},"Invalid ",{"type":39,"tag":60,"props":1193,"children":1195},{"className":1194},[],[1196],{"type":45,"value":220},{"type":45,"value":1198}," number",{"type":39,"tag":107,"props":1200,"children":1201},{},[1202],{"type":45,"value":1203},"Validate E.164 format",{"type":39,"tag":85,"props":1205,"children":1206},{},[1207,1212,1217],{"type":39,"tag":107,"props":1208,"children":1209},{},[1210],{"type":45,"value":1211},"21408",{"type":39,"tag":107,"props":1213,"children":1214},{},[1215],{"type":45,"value":1216},"Permission to send to region not enabled",{"type":39,"tag":107,"props":1218,"children":1219},{},[1220],{"type":45,"value":1221},"Enable geo-permissions in Console",{"type":39,"tag":85,"props":1223,"children":1224},{},[1225,1230,1235],{"type":39,"tag":107,"props":1226,"children":1227},{},[1228],{"type":45,"value":1229},"21610",{"type":39,"tag":107,"props":1231,"children":1232},{},[1233],{"type":45,"value":1234},"Number is on blocklist (opted out)",{"type":39,"tag":107,"props":1236,"children":1237},{},[1238],{"type":45,"value":1239},"Do not retry; respect opt-out",{"type":39,"tag":85,"props":1241,"children":1242},{},[1243,1248,1253],{"type":39,"tag":107,"props":1244,"children":1245},{},[1246],{"type":45,"value":1247},"30003",{"type":39,"tag":107,"props":1249,"children":1250},{},[1251],{"type":45,"value":1252},"Unreachable destination",{"type":39,"tag":107,"props":1254,"children":1255},{},[1256],{"type":45,"value":1257},"Carrier cannot deliver; try later",{"type":39,"tag":85,"props":1259,"children":1260},{},[1261,1266,1271],{"type":39,"tag":107,"props":1262,"children":1263},{},[1264],{"type":45,"value":1265},"30007",{"type":39,"tag":107,"props":1267,"children":1268},{},[1269],{"type":45,"value":1270},"Message filtered as spam",{"type":39,"tag":107,"props":1272,"children":1273},{},[1274],{"type":45,"value":1275},"Review content and sender reputation",{"type":39,"tag":85,"props":1277,"children":1278},{},[1279,1284,1289],{"type":39,"tag":107,"props":1280,"children":1281},{},[1282],{"type":45,"value":1283},"30034",{"type":39,"tag":107,"props":1285,"children":1286},{},[1287],{"type":45,"value":1288},"Message from unregistered number",{"type":39,"tag":107,"props":1290,"children":1291},{},[1292,1294],{"type":45,"value":1293},"Complete A2P 10DLC registration — see ",{"type":39,"tag":60,"props":1295,"children":1297},{"className":1296},[],[1298],{"type":45,"value":1299},"twilio-compliance-onboarding",{"type":39,"tag":85,"props":1301,"children":1302},{},[1303,1308,1313],{"type":39,"tag":107,"props":1304,"children":1305},{},[1306],{"type":45,"value":1307},"30450",{"type":39,"tag":107,"props":1309,"children":1310},{},[1311],{"type":45,"value":1312},"SMS pumping detected",{"type":39,"tag":107,"props":1314,"children":1315},{},[1316,1318],{"type":45,"value":1317},"Message blocked by SMS pumping protection — see ",{"type":39,"tag":60,"props":1319,"children":1321},{"className":1320},[],[1322],{"type":45,"value":193},{"type":39,"tag":564,"props":1324,"children":1326},{"id":1325},"messages-being-filtered-or-blocked",[1327],{"type":45,"value":1328},"Messages Being Filtered or Blocked?",{"type":39,"tag":48,"props":1330,"children":1331},{},[1332],{"type":45,"value":1333},"If your messages aren't being delivered, check these causes in order:",{"type":39,"tag":1335,"props":1336,"children":1337},"ol",{},[1338,1353,1363,1379,1395,1410],{"type":39,"tag":238,"props":1339,"children":1340},{},[1341,1346,1348],{"type":39,"tag":52,"props":1342,"children":1343},{},[1344],{"type":45,"value":1345},"Unregistered sender (error 30034)",{"type":45,"value":1347}," — US 10DLC numbers must be registered. See ",{"type":39,"tag":60,"props":1349,"children":1351},{"className":1350},[],[1352],{"type":45,"value":1299},{"type":39,"tag":238,"props":1354,"children":1355},{},[1356,1361],{"type":39,"tag":52,"props":1357,"children":1358},{},[1359],{"type":45,"value":1360},"Spam filtered (error 30007)",{"type":45,"value":1362}," — Carrier flagged content. Check: opt-out language included? URL shorteners avoided? Content matches registered campaign?",{"type":39,"tag":238,"props":1364,"children":1365},{},[1366,1371,1373],{"type":39,"tag":52,"props":1367,"children":1368},{},[1369],{"type":45,"value":1370},"Opted-out recipient (error 21610)",{"type":45,"value":1372}," — Recipient sent STOP. Do not retry. See ",{"type":39,"tag":60,"props":1374,"children":1376},{"className":1375},[],[1377],{"type":45,"value":1378},"twilio-compliance-traffic",{"type":39,"tag":238,"props":1380,"children":1381},{},[1382,1387,1389],{"type":39,"tag":52,"props":1383,"children":1384},{},[1385],{"type":45,"value":1386},"Geo-permissions disabled (error 21408)",{"type":45,"value":1388}," — Enable the destination country in Console > Messaging > Settings > Geo Permissions. See ",{"type":39,"tag":60,"props":1390,"children":1392},{"className":1391},[],[1393],{"type":45,"value":1394},"twilio-security-hardening",{"type":39,"tag":238,"props":1396,"children":1397},{},[1398,1403,1405],{"type":39,"tag":52,"props":1399,"children":1400},{},[1401],{"type":45,"value":1402},"SMS pumping (error 30450)",{"type":45,"value":1404}," — Artificial traffic detected. Whitelist known prefixes via Global Safe List. See ",{"type":39,"tag":60,"props":1406,"children":1408},{"className":1407},[],[1409],{"type":45,"value":193},{"type":39,"tag":238,"props":1411,"children":1412},{},[1413,1418,1420],{"type":39,"tag":52,"props":1414,"children":1415},{},[1416],{"type":45,"value":1417},"Account suspended",{"type":45,"value":1419}," — Check Console for account status notifications. See ",{"type":39,"tag":60,"props":1421,"children":1423},{"className":1422},[],[1424],{"type":45,"value":248},{"type":39,"tag":48,"props":1426,"children":1427},{},[1428,1430,1436],{"type":45,"value":1429},"For delivery event tracking, set up StatusCallbacks or use ",{"type":39,"tag":60,"props":1431,"children":1433},{"className":1432},[],[1434],{"type":45,"value":1435},"twilio-debugging-observability",{"type":45,"value":195},{"type":39,"tag":224,"props":1438,"children":1439},{},[],{"type":39,"tag":40,"props":1441,"children":1443},{"id":1442},"cannot",[1444],{"type":45,"value":1445},"CANNOT",{"type":39,"tag":234,"props":1447,"children":1448},{},[1449,1481,1491,1501,1511],{"type":39,"tag":238,"props":1450,"children":1451},{},[1452,1457,1459,1464,1466,1471,1473,1479],{"type":39,"tag":52,"props":1453,"children":1454},{},[1455],{"type":45,"value":1456},"Cannot send without E.164 format",{"type":45,"value":1458}," — Both ",{"type":39,"tag":60,"props":1460,"children":1462},{"className":1461},[],[1463],{"type":45,"value":185},{"type":45,"value":1465}," and ",{"type":39,"tag":60,"props":1467,"children":1469},{"className":1468},[],[1470],{"type":45,"value":220},{"type":45,"value":1472}," must be ",{"type":39,"tag":60,"props":1474,"children":1476},{"className":1475},[],[1477],{"type":45,"value":1478},"+",{"type":45,"value":1480}," followed by country code and number",{"type":39,"tag":238,"props":1482,"children":1483},{},[1484,1489],{"type":39,"tag":52,"props":1485,"children":1486},{},[1487],{"type":45,"value":1488},"Cannot send to unverified numbers on trial accounts",{"type":45,"value":1490}," — Upgrade to paid or verify recipient numbers first",{"type":39,"tag":238,"props":1492,"children":1493},{},[1494,1499],{"type":39,"tag":52,"props":1495,"children":1496},{},[1497],{"type":45,"value":1498},"Cannot send MMS outside US, Canada, and Australia",{"type":45,"value":1500}," — MMS is only supported on US\u002FCA\u002FAU numbers; for international rich media use WhatsApp",{"type":39,"tag":238,"props":1502,"children":1503},{},[1504,1509],{"type":39,"tag":52,"props":1505,"children":1506},{},[1507],{"type":45,"value":1508},"Cannot exceed 1,600 characters per message",{"type":45,"value":1510}," — Longer messages are automatically split into segments (each billed separately)",{"type":39,"tag":238,"props":1512,"children":1513},{},[1514,1519,1521],{"type":39,"tag":52,"props":1515,"children":1516},{},[1517],{"type":45,"value":1518},"Cannot prevent SMS pumping without a Messaging Service",{"type":45,"value":1520}," — Enable SMS pumping protection via Messaging Services to prevent artificial traffic inflation. See ",{"type":39,"tag":60,"props":1522,"children":1524},{"className":1523},[],[1525],{"type":45,"value":193},{"type":39,"tag":224,"props":1527,"children":1528},{},[],{"type":39,"tag":40,"props":1530,"children":1532},{"id":1531},"next-steps",[1533],{"type":45,"value":1534},"Next Steps",{"type":39,"tag":234,"props":1536,"children":1537},{},[1538,1553,1568,1582,1596],{"type":39,"tag":238,"props":1539,"children":1540},{},[1541,1546,1548],{"type":39,"tag":52,"props":1542,"children":1543},{},[1544],{"type":45,"value":1545},"Channel overview and onboarding guide:",{"type":45,"value":1547}," ",{"type":39,"tag":60,"props":1549,"children":1551},{"className":1550},[],[1552],{"type":45,"value":73},{"type":39,"tag":238,"props":1554,"children":1555},{},[1556,1561,1562],{"type":39,"tag":52,"props":1557,"children":1558},{},[1559],{"type":45,"value":1560},"Receive inbound SMS and delivery status:",{"type":45,"value":1547},{"type":39,"tag":60,"props":1563,"children":1565},{"className":1564},[],[1566],{"type":45,"value":1567},"twilio-messaging-webhooks",{"type":39,"tag":238,"props":1569,"children":1570},{},[1571,1576,1577],{"type":39,"tag":52,"props":1572,"children":1573},{},[1574],{"type":45,"value":1575},"Manage sender pools at scale:",{"type":45,"value":1547},{"type":39,"tag":60,"props":1578,"children":1580},{"className":1579},[],[1581],{"type":45,"value":193},{"type":39,"tag":238,"props":1583,"children":1584},{},[1585,1590,1591],{"type":39,"tag":52,"props":1586,"children":1587},{},[1588],{"type":45,"value":1589},"US compliance for A2P traffic:",{"type":45,"value":1547},{"type":39,"tag":60,"props":1592,"children":1594},{"className":1593},[],[1595],{"type":45,"value":1299},{"type":39,"tag":238,"props":1597,"children":1598},{},[1599,1604,1605],{"type":39,"tag":52,"props":1600,"children":1601},{},[1602],{"type":45,"value":1603},"Send via WhatsApp instead:",{"type":45,"value":1547},{"type":39,"tag":60,"props":1606,"children":1608},{"className":1607},[],[1609],{"type":45,"value":1610},"twilio-whatsapp-send-message",{"type":39,"tag":1612,"props":1613,"children":1614},"style",{},[1615],{"type":45,"value":1616},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":1618,"total":1720},[1619,1632,1652,1663,1675,1690,1707],{"slug":248,"name":248,"fn":1620,"description":1621,"org":1622,"tags":1623,"stars":23,"repoUrl":24,"updatedAt":1631},"configure Twilio accounts and credentials","Create and configure a Twilio account from scratch. Covers free trial signup, trial limitations, getting credentials (Account SID and Auth Token), buying a phone number, verifying recipient numbers for trial use, SDK installation, first API call, subaccount management (creation, inheritance, credential isolation, limits), and enabling specific products (AI Assistants, Conversations, Verify, ConversationRelay, WhatsApp). Use this skill before any other Twilio skill if you do not yet have a Twilio account or need to enable a product. For Organization-level governance (SSO, SCIM, multi-team), see `twilio-organizations-setup`.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1624,1627,1630],{"name":1625,"slug":1626,"type":15},"API Development","api-development",{"name":1628,"slug":1629,"type":15},"Communications","communications",{"name":13,"slug":14,"type":15},"2026-08-01T05:43:28.968968",{"slug":1633,"name":1633,"fn":1634,"description":1635,"org":1636,"tags":1637,"stars":23,"repoUrl":24,"updatedAt":1651},"twilio-agent-augmentation-architect","augment human agents with AI intelligence","Planning skill for augmenting human agents with real-time AI intelligence. Qualifies the developer's use case across coaching, compliance, QA, and routing to recommend the right Conversation Intelligence + Conversation Memory + TaskRouter architecture. Handles both \"I want to add AI coaching to my call center\" and \"configure Conversation Intelligence operators for script adherence.\"\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1638,1641,1644,1647,1650],{"name":1639,"slug":1640,"type":15},"Agents","agents",{"name":1642,"slug":1643,"type":15},"AI","ai",{"name":1645,"slug":1646,"type":15},"Coaching","coaching",{"name":1648,"slug":1649,"type":15},"QA","qa",{"name":9,"slug":8,"type":15},"2026-07-17T06:07:58.250609",{"slug":1653,"name":1653,"fn":1654,"description":1655,"org":1656,"tags":1657,"stars":23,"repoUrl":24,"updatedAt":1662},"twilio-agent-connect","connect AI agents to Twilio channels","Connect third-party AI agents (OpenAI, Bedrock, LangChain, Microsoft Foundry) to Twilio's communication channels using the Twilio Agent Connect SDK. Covers identity resolution, memory and context management via Conversation Memory, conversation orchestration via Conversation Orchestrator, multi-channel handling (Voice, SMS, RCS, WhatsApp, Chat), and AI-to-human escalation. Use this skill when integrating an existing LLM agent with Twilio services.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1658,1659,1660,1661],{"name":1639,"slug":1640,"type":15},{"name":1625,"slug":1626,"type":15},{"name":1628,"slug":1629,"type":15},{"name":9,"slug":8,"type":15},"2026-07-17T06:06:05.217098",{"slug":1664,"name":1664,"fn":1665,"description":1666,"org":1667,"tags":1668,"stars":23,"repoUrl":24,"updatedAt":1674},"twilio-ai-agent-architect","plan Twilio conversational AI agents","Planning skill for AI-powered conversational agents. Qualifies the developer's use case across outcome sophistication, entry point, and customer profile to recommend the right Twilio Conversations architecture and implementation skills. Handles both high-level requests (\"build me a voice AI assistant\") and specific ones (\"integrate ConversationRelay with my OpenAI backend\").\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1669,1670,1673],{"name":1639,"slug":1640,"type":15},{"name":1671,"slug":1672,"type":15},"Architecture","architecture",{"name":9,"slug":8,"type":15},"2026-07-17T06:07:48.883723",{"slug":1676,"name":1676,"fn":1677,"description":1678,"org":1679,"tags":1680,"stars":23,"repoUrl":24,"updatedAt":1689},"twilio-call-recordings","record and manage Twilio voice calls","Record Twilio voice calls correctly. Covers the critical distinction between Record verb (voicemail) and Dial record (call recording), dual-channel for QA, mid-call pause for PCI, Conference recording, and the ConversationRelay workaround. Use this skill whenever you need to capture call audio for compliance, QA, or analytics.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1681,1684,1687,1688],{"name":1682,"slug":1683,"type":15},"Audio","audio",{"name":1685,"slug":1686,"type":15},"Compliance","compliance",{"name":1648,"slug":1649,"type":15},{"name":9,"slug":8,"type":15},"2026-07-17T06:07:55.268412",{"slug":1691,"name":1691,"fn":1692,"description":1693,"org":1694,"tags":1695,"stars":23,"repoUrl":24,"updatedAt":1706},"twilio-cli-reference","manage Twilio resources via CLI","Twilio CLI reference for managing Twilio resources from the terminal. Covers installation, credential profiles, phone number provisioning, sending SMS and email, webhook configuration, local development with a tunneling service, debugging with watch and logs, serverless deployment, and plugin ecosystem. Use when the developer asks to \"just do it\", \"set this up\", \"run a command\", mentions \"CLI\", \"command line\", or \"terminal\", or when an AI agent can execute a task directly instead of writing application code.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1696,1699,1702,1705],{"name":1697,"slug":1698,"type":15},"CLI","cli",{"name":1700,"slug":1701,"type":15},"Local Development","local-development",{"name":1703,"slug":1704,"type":15},"Operations","operations",{"name":9,"slug":8,"type":15},"2026-07-17T06:07:54.925664",{"slug":1299,"name":1299,"fn":1708,"description":1709,"org":1710,"tags":1711,"stars":23,"repoUrl":24,"updatedAt":1719},"manage Twilio messaging and voice compliance","Registrations required BEFORE Twilio traffic works. Covers messaging programs (A2P 10DLC, toll-free verification, WhatsApp WABA, RCS, short code, alphanumeric sender) and voice trust programs (STIR\u002FSHAKEN, Voice Integrity, Branded Calling, CNAM). Each number\u002Fsender type has its own program — registration blocks traffic until complete.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1712,1713,1714,1715,1716],{"name":1685,"slug":1686,"type":15},{"name":17,"slug":18,"type":15},{"name":13,"slug":14,"type":15},{"name":9,"slug":8,"type":15},{"name":1717,"slug":1718,"type":15},"WhatsApp","whatsapp","2026-07-17T06:05:47.897229",57,{"items":1722,"total":1720},[1723,1729,1737,1744,1750,1757,1764,1772,1787,1800,1816,1834],{"slug":248,"name":248,"fn":1620,"description":1621,"org":1724,"tags":1725,"stars":23,"repoUrl":24,"updatedAt":1631},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1726,1727,1728],{"name":1625,"slug":1626,"type":15},{"name":1628,"slug":1629,"type":15},{"name":13,"slug":14,"type":15},{"slug":1633,"name":1633,"fn":1634,"description":1635,"org":1730,"tags":1731,"stars":23,"repoUrl":24,"updatedAt":1651},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1732,1733,1734,1735,1736],{"name":1639,"slug":1640,"type":15},{"name":1642,"slug":1643,"type":15},{"name":1645,"slug":1646,"type":15},{"name":1648,"slug":1649,"type":15},{"name":9,"slug":8,"type":15},{"slug":1653,"name":1653,"fn":1654,"description":1655,"org":1738,"tags":1739,"stars":23,"repoUrl":24,"updatedAt":1662},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1740,1741,1742,1743],{"name":1639,"slug":1640,"type":15},{"name":1625,"slug":1626,"type":15},{"name":1628,"slug":1629,"type":15},{"name":9,"slug":8,"type":15},{"slug":1664,"name":1664,"fn":1665,"description":1666,"org":1745,"tags":1746,"stars":23,"repoUrl":24,"updatedAt":1674},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1747,1748,1749],{"name":1639,"slug":1640,"type":15},{"name":1671,"slug":1672,"type":15},{"name":9,"slug":8,"type":15},{"slug":1676,"name":1676,"fn":1677,"description":1678,"org":1751,"tags":1752,"stars":23,"repoUrl":24,"updatedAt":1689},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1753,1754,1755,1756],{"name":1682,"slug":1683,"type":15},{"name":1685,"slug":1686,"type":15},{"name":1648,"slug":1649,"type":15},{"name":9,"slug":8,"type":15},{"slug":1691,"name":1691,"fn":1692,"description":1693,"org":1758,"tags":1759,"stars":23,"repoUrl":24,"updatedAt":1706},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1760,1761,1762,1763],{"name":1697,"slug":1698,"type":15},{"name":1700,"slug":1701,"type":15},{"name":1703,"slug":1704,"type":15},{"name":9,"slug":8,"type":15},{"slug":1299,"name":1299,"fn":1708,"description":1709,"org":1765,"tags":1766,"stars":23,"repoUrl":24,"updatedAt":1719},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1767,1768,1769,1770,1771],{"name":1685,"slug":1686,"type":15},{"name":17,"slug":18,"type":15},{"name":13,"slug":14,"type":15},{"name":9,"slug":8,"type":15},{"name":1717,"slug":1718,"type":15},{"slug":1378,"name":1378,"fn":1773,"description":1774,"org":1775,"tags":1776,"stars":23,"repoUrl":24,"updatedAt":1786},"ensure compliance for Twilio messaging traffic","Rules you must follow for Twilio messaging and voice traffic. Covers TCPA (consent tiers, quiet hours, DNC), GDPR (EU consent, right to deletion), PCI DSS (payment recording, Pay verb), HIPAA (BAA, PHI), FDCPA (debt collection limits), CAN-SPAM, WhatsApp policies, SHAKEN\u002FSTIR, and consent management patterns. Use this skill proactively when developers have working traffic to ensure they follow the rules.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1777,1778,1779,1782,1785],{"name":1685,"slug":1686,"type":15},{"name":17,"slug":18,"type":15},{"name":1780,"slug":1781,"type":15},"Regulatory Compliance","regulatory-compliance",{"name":1783,"slug":1784,"type":15},"Security","security",{"name":9,"slug":8,"type":15},"2026-07-17T06:07:55.952779",{"slug":1788,"name":1788,"fn":1789,"description":1790,"org":1791,"tags":1792,"stars":23,"repoUrl":24,"updatedAt":1799},"twilio-conference-calls","build multi-party calls with Twilio Conference","Build multi-party calls using Twilio Conference. Covers warm transfer, cold transfer, coaching (whisper), hold vs mute, participant modes, and supervisor barge. Use this skill for any contact center, support line, or scenario requiring transfers, holds, or multi-party calls.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1793,1794,1795,1798],{"name":1682,"slug":1683,"type":15},{"name":1628,"slug":1629,"type":15},{"name":1796,"slug":1797,"type":15},"Meetings","meetings",{"name":9,"slug":8,"type":15},"2026-07-17T06:07:55.603708",{"slug":1801,"name":1801,"fn":1802,"description":1803,"org":1804,"tags":1805,"stars":23,"repoUrl":24,"updatedAt":1815},"twilio-content-template-builder","create and send message templates with Twilio","Create, manage, and send message templates using Twilio's Content API. Covers template creation for WhatsApp, SMS, RCS, and MMS; variable usage; WhatsApp Meta approval; and sending templates via ContentSid. Use this skill when building structured messages that require pre-approval or consistent formatting across channels.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1806,1809,1810,1811,1814],{"name":1807,"slug":1808,"type":15},"Email","email",{"name":17,"slug":18,"type":15},{"name":13,"slug":14,"type":15},{"name":1812,"slug":1813,"type":15},"Templates","templates",{"name":9,"slug":8,"type":15},"2026-07-17T06:04:26.637309",{"slug":1817,"name":1817,"fn":1818,"description":1819,"org":1820,"tags":1821,"stars":23,"repoUrl":24,"updatedAt":1833},"twilio-conversation-intelligence","build conversation intelligence pipelines","Twilio Conversation Intelligence development guide. Use when building real-time or post-call conversation analysis, language operator pipelines, sentiment analysis, agent assist, cross-channel analytics, or querying aggregated conversation insights (sentiment trends, escalation rates, dashboards).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1822,1823,1826,1829,1832],{"name":1639,"slug":1640,"type":15},{"name":1824,"slug":1825,"type":15},"Analytics","analytics",{"name":1827,"slug":1828,"type":15},"Monitoring","monitoring",{"name":1830,"slug":1831,"type":15},"NLP","nlp",{"name":9,"slug":8,"type":15},"2026-07-17T06:07:52.545387",{"slug":1835,"name":1835,"fn":1836,"description":1837,"org":1838,"tags":1839,"stars":23,"repoUrl":24,"updatedAt":1845},"twilio-conversation-memory","manage conversation memory with Twilio","Store and retrieve conversation context using Twilio Conversation Memory. Covers Memory Store provisioning, profile management, traits, observations, conversation summaries, and semantic Recall. Use this skill to give AI agents or human agents persistent memory of conversations across sessions and channels.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1840,1841,1844],{"name":1639,"slug":1640,"type":15},{"name":1842,"slug":1843,"type":15},"Memory","memory",{"name":9,"slug":8,"type":15},"2026-07-17T06:04:19.526724"]