<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><script async="" defer="" src="https://consent.trustarc.com/notice?domain=twilio.com&amp;c=teconsent&amp;gtm=1&amp;js=nj&amp;noticeType=bb"></script><title data-next-head="">Track the Message Status of Outbound Messages | Twilio</title><meta name="description" content="Learn how to track the status of outbound messages you send with Programmable Messaging in your web application. Track the sent and delivery status of SMS, MMS, and WhatsApp Messages using status callbacks. Understand the differences when using a Messaging Service." data-next-head=""/><link rel="canonical" href="https://www.twilio.com/docs/messaging/guides/track-outbound-message-status" data-next-head=""/><link rel="alternate" type="text/markdown" title="Track the Message Status of Outbound Messages Markdown version" href="https://www.twilio.com/docs/messaging/guides/track-outbound-message-status.md" data-next-head=""/><meta property="article:modified_time" content="2026-03-09T18:47:22.000Z" data-next-head=""/><meta property="og:updated_time" content="2026-03-09T18:47:22.000Z" data-next-head=""/><meta name="dcterms.modified" content="2026-03-09T18:47:22.000Z" data-next-head=""/><link rel="preconnect" href="https://assets.twilio.com"/><meta name="x-twilio-docs-source" content="primary"/><meta name="x-twilio-docs-origin" content="otk"/><link rel="preload" href="/_next/static/chunks/1_pjo44wo_qu0.css" as="style"/><script type="application/ld+json" data-next-head="">{"@context":"https://schema.org","@type":"TechArticle","@id":"https://www.twilio.com/docs/messaging/guides/track-outbound-message-status#article","headline":"Track the Message Status of Outbound Messages","description":"Learn how to track the status of outbound messages you send with Programmable Messaging in your web application. Track the sent and delivery status of SMS, MMS, and WhatsApp Messages using status callbacks. Understand the differences when using a Messaging Service.","url":"https://www.twilio.com/docs/messaging/guides/track-outbound-message-status","inLanguage":"en","dateModified":"2026-03-09T18:47:22.000Z","author":{"@type":"Organization","name":"Twilio Developer Education Team"},"publisher":{"@type":"Organization","name":"Twilio"}}</script><script id="gtm-script" data-nscript="beforeInteractive">(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src='https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);})(window,document,'script','dataLayer','GTM-58V3CS4S');</script><link rel="stylesheet" href="/_next/static/chunks/1_pjo44wo_qu0.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/0cz1d0mv5g_q7.js"></script><script src="/_next/static/chunks/3rh24wqvojwq1.js" defer=""></script><script src="/_next/static/chunks/2ea76pyvxyktz.js" defer=""></script><script src="/_next/static/chunks/1lw5zx20exb6e.js" defer=""></script><script src="/_next/static/chunks/2sf4o0rmi5wtx.js" defer=""></script><script src="/_next/static/chunks/1khclzzf6qkjw.js" defer=""></script><script src="/_next/static/chunks/3icu-u0scdn-z.js" defer=""></script><script src="/_next/static/chunks/3scu0atvqqsza.js" defer=""></script><script src="/_next/static/chunks/24i0kxfgckfix.js" defer=""></script><script src="/_next/static/chunks/1pnjokwt_u_y0.js" defer=""></script><script src="/_next/static/chunks/02kxwzabwcam_.js" defer=""></script><script src="/_next/static/chunks/22n7wk_3qe5q-.js" defer=""></script><script src="/_next/static/chunks/2sm6hwj3hvhl0.js" defer=""></script><script src="/_next/static/chunks/06y7vw-gxvxy0.js" defer=""></script><script src="/_next/static/chunks/27dk70o3zivwd.js" defer=""></script><script src="/_next/static/chunks/1n14rzi4rw6q0.js" defer=""></script><script src="/_next/static/chunks/0are0h2zh_4st.js" defer=""></script><script src="/_next/static/chunks/3j_bd0s10hxn_.js" defer=""></script><script src="/_next/static/chunks/turbopack-0x90opjsm3knt.js" defer=""></script><script src="/_next/static/chunks/3scw7vtnfsuaa.js" defer=""></script><script src="/_next/static/chunks/2grrax5u6v7w1.js" defer=""></script><script src="/_next/static/chunks/23vbtrqgnwah9.js" defer=""></script><script src="/_next/static/chunks/3wxqib8pse59n.js" defer=""></script><script src="/_next/static/chunks/3d_e8ayo2zpsc.js" defer=""></script><script src="/_next/static/chunks/0i-26gr2gd54p.js" defer=""></script><script src="/_next/static/chunks/0xnjhj4xztouw.js" defer=""></script><script src="/_next/static/chunks/turbopack-1hh7ro4kdi6-7.js" defer=""></script><script src="/_next/static/prod-018f32bb2499f961f0c4781dff05ec4a449233da-33672/_buildManifest.js" defer=""></script><script src="/_next/static/prod-018f32bb2499f961f0c4781dff05ec4a449233da-33672/_ssgManifest.js" defer=""></script><script src="/_next/static/prod-018f32bb2499f961f0c4781dff05ec4a449233da-33672/_clientMiddlewareManifest.js" defer=""></script></head><body><div id="__next"><!--$--><!--/$--><style data-emotion="css-global lbobjb">html{font-size:100%;font-family:'TwilioSansText','Inter var experimental','Inter var',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen-Sans,Ubuntu,Cantarell,'Helvetica Neue',sans-serif;}html:lang(ja) .paste-theme-provider,html:lang(ja-JP) .paste-theme-provider{font-family:'Inter var experimental','Inter var',Hiragino Sans,'ヒラギノ角ゴ ProN W3','Hiragino Kaku Gothic ProN','メイリオ',Meiryo,Osaka,'MS PGothic',sans-serif;}html:lang(zh-CN) .paste-theme-provider{font-family:'Inter var experimental','Inter var','Microsoft YaHei New',微软雅黑,'Microsoft Yahei','Microsoft JhengHei',宋体,SimSun,sans-serif;}html:lang(zh-TW) .paste-theme-provider,html:lang(zh-HK) .paste-theme-provider{font-family:'Inter var experimental','Inter var','Microsoft JhengHei',微軟正黑體,'Microsoft JhengHei UI','Microsoft YaHei',微軟雅黑,宋体,SimSun,sans-serif;}html:lang(ko) .paste-theme-provider{font-family:'Inter var experimental','Inter var','Microsoft JhengHei',微軟正黑體,'Microsoft JhengHei UI','Microsoft YaHei',微軟雅黑,宋体,SimSun,sans-serif;}body{background-color:rgb(255, 255, 255);margin:0;}*,*::after,*::before{box-sizing:border-box;}@media (prefers-reduced-motion: reduce){*{-webkit-animation-duration:0!important;animation-duration:0!important;-webkit-animation-iteration-count:1!important;animation-iteration-count:1!important;transition-duration:0!important;scroll-behavior:auto!important;}}:root{--reach-dialog:1;}</style><style data-emotion="css-global 1uje5tv">@font-face{font-family:'Inter var';font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:'Regular';src:url("https://assets.twilio.com/public_assets/paste-fonts/1.5.2/Inter-roman.var.woff2?v=3.19") format("woff2");}@font-face{font-family:'Inter var';font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:'Italic';src:url("https://assets.twilio.com/public_assets/paste-fonts/1.5.2/Inter-italic.var.woff2?v=3.19") format("woff2");}@font-face{font-family:'Inter var experimental';font-weight:100 900;font-display:swap;font-style:oblique 0deg 8deg;src:url("https://assets.twilio.com/public_assets/paste-fonts/1.5.2/Inter.var.woff2?v=3.19") format("woff2");}@font-face{font-family:'TwilioSansMono';font-style:normal;font-display:swap;font-weight:400;src:local(''),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansMono-Regular.woff2') format('woff2'),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansMono-Regular.woff') format('woff');}@font-face{font-family:'TwilioSansMono';font-style:italic;font-display:swap;font-weight:400;src:local(''),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansMono-RegularItl.woff2') format('woff2'),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansMono-RegularItl.woff') format('woff');}@font-face{font-family:'TwilioSansMono';font-style:normal;font-display:swap;font-weight:700;src:local(''),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansMono-Bold.woff2') format('woff2'),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansMono-Bold.woff') format('woff');}@font-face{font-family:'TwilioSansMono';font-style:italic;font-display:swap;font-weight:700;src:local(''),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansMono-BoldItl.woff2') format('woff2'),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansMono-BoldItl.woff') format('woff');}@font-face{font-family:'TwilioSansMono';font-style:normal;font-display:swap;font-weight:500;src:local(''),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansMono-Medium.woff2') format('woff2'),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansMono-Medium.woff') format('woff');}@font-face{font-family:'TwilioSansMono';font-style:italic;font-display:swap;font-weight:500;src:local(''),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansMono-MediumItl.woff2') format('woff2'),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansMono-MediumItl.woff') format('woff');}@font-face{font-family:'TwilioSansText';font-style:normal;font-display:swap;font-weight:300;src:local(''),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansText-Light.woff2') format('woff2'),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansText-Light.woff') format('woff');}@font-face{font-family:'TwilioSansText';font-style:italic;font-display:swap;font-weight:300;src:local(''),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansText-LightItl.woff2') format('woff2'),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansText-LightItl.woff') format('woff');}@font-face{font-family:'TwilioSansText';font-style:normal;font-display:swap;font-weight:400;src:local(''),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansText-Regular.woff2') format('woff2'),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansText-Regular.woff') format('woff');}@font-face{font-family:'TwilioSansText';font-style:italic;font-display:swap;font-weight:400;src:local(''),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansText-RegularItl.woff2') format('woff2'),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansText-RegularItl.woff') format('woff');}@font-face{font-family:'TwilioSansText';font-style:normal;font-display:swap;font-weight:500;src:local(''),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansText-Medium.woff2') format('woff2'),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansText-Medium.woff') format('woff');}@font-face{font-family:'TwilioSansText';font-style:italic;font-display:swap;font-weight:500;src:local(''),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansText-MediumItl.woff2') format('woff2'),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansText-MediumItl.woff') format('woff');}@font-face{font-family:'TwilioSansText';font-style:normal;font-display:swap;font-weight:600;src:local(''),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansText-Semibold.woff2') format('woff2'),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansText-Semibold.woff') format('woff');}@font-face{font-family:'TwilioSansText';font-style:italic;font-display:swap;font-weight:600;src:local(''),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansText-SemiboldItl.woff2') format('woff2'),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansText-SemiboldItl.woff') format('woff');}@font-face{font-family:'TwilioSansText';font-style:normal;font-display:swap;font-weight:700;src:local(''),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansText-Bold.woff2') format('woff2'),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansText-Bold.woff') format('woff');}@font-face{font-family:'TwilioSansText';font-style:italic;font-display:swap;font-weight:700;src:local(''),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansText-BoldItl.woff2') format('woff2'),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansText-BoldItl.woff') format('woff');}@font-face{font-family:'TwilioSansText';font-style:normal;font-display:swap;font-weight:800;src:local(''),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansText-Extrabold.woff2') format('woff2'),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansText-Extrabold.woff') format('woff');}@font-face{font-family:'TwilioSansText';font-style:italic;font-display:swap;font-weight:800;src:local(''),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansText-ExtraboldItl.woff2') format('woff2'),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansText-ExtraboldItl.woff') format('woff');}@font-face{font-family:'TwilioSansDisplay';font-style:normal;font-display:swap;font-weight:300;src:local(''),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansDisplay-Light.woff2') format('woff2'),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansDisplay-Light.woff') format('woff');}@font-face{font-family:'TwilioSansDisplay';font-style:italic;font-display:swap;font-weight:300;src:local(''),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansDisplay-LightItl.woff2') format('woff2'),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansDisplay-LightItl.woff') format('woff');}@font-face{font-family:'TwilioSansDisplay';font-style:normal;font-display:swap;font-weight:400;src:local(''),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansDisplay-Regular.woff2') format('woff2'),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansDisplay-Regular.woff') format('woff');}@font-face{font-family:'TwilioSansDisplay';font-style:italic;font-display:swap;font-weight:400;src:local(''),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansDisplay-RegularItl.woff2') format('woff2'),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansDisplay-RegularItl.woff') format('woff');}@font-face{font-family:'TwilioSansDisplay';font-style:normal;font-display:swap;font-weight:500;src:local(''),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansDisplay-Medium.woff2') format('woff2'),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansDisplay-Medium.woff') format('woff');}@font-face{font-family:'TwilioSansDisplay';font-style:italic;font-display:swap;font-weight:500;src:local(''),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansDisplay-MediumItl.woff2') format('woff2'),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansDisplay-MediumItl.woff') format('woff');}@font-face{font-family:'TwilioSansDisplay';font-style:normal;font-display:swap;font-weight:600;src:local(''),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansDisplay-Semibold.woff2') format('woff2'),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansDisplay-Semibold.woff') format('woff');}@font-face{font-family:'TwilioSansDisplay';font-style:italic;font-display:swap;font-weight:600;src:local(''),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansDisplay-SemiboldItl.woff2') format('woff2'),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansDisplay-SemiboldItl.woff') format('woff');}@font-face{font-family:'TwilioSansDisplay';font-style:normal;font-display:swap;font-weight:700;src:local(''),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansDisplay-Bold.woff2') format('woff2'),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansDisplay-Bold.woff') format('woff');}@font-face{font-family:'TwilioSansDisplay';font-style:italic;font-display:swap;font-weight:700;src:local(''),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansDisplay-BoldItl.woff2') format('woff2'),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansDisplay-BoldItl.woff') format('woff');}@font-face{font-family:'TwilioSansDisplay';font-style:normal;font-display:swap;font-weight:800;src:local(''),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansDisplay-Extrabold.woff2') format('woff2'),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansDisplay-Extrabold.woff') format('woff');}@font-face{font-family:'TwilioSansDisplay';font-style:italic;font-display:swap;font-weight:800;src:local(''),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansDisplay-ExtraboldItl.woff2') format('woff2'),url('https://assets.twilio.com/public_assets/paste-fonts/1.5.2/TwilioSansDisplay-ExtraboldItl.woff') format('woff');}</style><style data-emotion="css 1pzojz9">.css-1pzojz9{color:rgb(18, 28, 45);-webkit-print-color-scheme:light;color-scheme:light;font-size:0.875rem;font-family:'TwilioSansText','Inter var experimental','Inter var',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen-Sans,Ubuntu,Cantarell,'Helvetica Neue',sans-serif;line-height:1.25rem;font-weight:400;font-variant-numeric:tabular-nums;}</style><div class="paste-theme-provider css-1pzojz9"><style data-emotion="css-global lbobjb">html{font-size:100%;font-family:'TwilioSansText','Inter var experimental','Inter var',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen-Sans,Ubuntu,Cantarell,'Helvetica Neue',sans-serif;}html:lang(ja) .paste-theme-provider,html:lang(ja-JP) .paste-theme-provider{font-family:'Inter var experimental','Inter var',Hiragino Sans,'ヒラギノ角ゴ ProN W3','Hiragino Kaku Gothic ProN','メイリオ',Meiryo,Osaka,'MS PGothic',sans-serif;}html:lang(zh-CN) .paste-theme-provider{font-family:'Inter var experimental','Inter var','Microsoft YaHei New',微软雅黑,'Microsoft Yahei','Microsoft JhengHei',宋体,SimSun,sans-serif;}html:lang(zh-TW) .paste-theme-provider,html:lang(zh-HK) .paste-theme-provider{font-family:'Inter var experimental','Inter var','Microsoft JhengHei',微軟正黑體,'Microsoft JhengHei UI','Microsoft YaHei',微軟雅黑,宋体,SimSun,sans-serif;}html:lang(ko) .paste-theme-provider{font-family:'Inter var experimental','Inter var','Microsoft JhengHei',微軟正黑體,'Microsoft JhengHei UI','Microsoft YaHei',微軟雅黑,宋体,SimSun,sans-serif;}body{background-color:rgb(255, 255, 255);margin:0;}*,*::after,*::before{box-sizing:border-box;}@media (prefers-reduced-motion: reduce){*{-webkit-animation-duration:0!important;animation-duration:0!important;-webkit-animation-iteration-count:1!important;animation-iteration-count:1!important;transition-duration:0!important;scroll-behavior:auto!important;}}:root{--reach-dialog:1;}</style><div class="css-1pzojz9"><style data-emotion="css-global yhf4is">*{font-variant-ligatures:none;font-feature-settings:"liga" 0;}.DocSearch-Button{background-color:rgb(255, 255, 255);border-radius:4px;box-shadow:0 0 0 1px #8B93AA;color:rgb(96, 107, 133);padding-left:0.75rem;padding-right:0.75rem;margin:0;width:100%;}.DocSearch-Button:hover{box-shadow:0 0 0 1px #006dfa;}.DocSearch-Button:active,.DocSearch-Button:focus{box-shadow:0 0 0 1px #cacdd8,0 0 0 3px #ffffff,0 0 0 4px #006dfa,0 0 0 6px #cce4ff;}.DocSearch-Button .DocSearch-Search-Icon{color:rgb(96, 107, 133);width:1rem;height:1rem;}.DocSearch-Button-Placeholder{font-size:0.875rem;font-family:'TwilioSansText','Inter var experimental','Inter var',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen-Sans,Ubuntu,Cantarell,'Helvetica Neue',sans-serif;font-weight:500;font-style:italic;padding-left:0.75rem;padding-right:0.75rem;}.DocSearch-Button-Key{top:0;padding-bottom:0;}.DocSearch-Container{color:rgb(18, 28, 45);-webkit-print-color-scheme:light;color-scheme:light;font-size:0.875rem;font-family:'TwilioSansText','Inter var experimental','Inter var',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen-Sans,Ubuntu,Cantarell,'Helvetica Neue',sans-serif;line-height:1.25rem;font-weight:400;font-variant-numeric:tabular-nums;}.DocSearch-Dropdown a{color:rgb(2, 99, 224);-webkit-text-decoration:underline;text-decoration:underline;}.DocSearch-Dropdown a:hover{-webkit-text-decoration:none;text-decoration:none;}.DocSearch-SearchBar{padding-bottom:0.25rem;}.DocSearch-Search-Icon{color:rgb(96, 107, 133);}.DocSearch-Input{padding-left:1rem;}.DocSearch-LoadingIndicator svg,.DocSearch-MagnifierLabel svg{width:1rem;height:1rem;}.DocSearch-Hits mark{color:rgb(2, 99, 224);}.DocSearch-Hit{padding-bottom:0.5rem;}.DocSearch-Hit a{border-color:rgb(225, 227, 234);border-style:solid;border-width:2px;-webkit-text-decoration:none;text-decoration:none;}.DocSearch-Hit[aria-selected=true] a{border-color:rgb(3, 11, 93);}.DocSearch-Hit-title{font-size:0.875rem;}.DocSearch-Hit-path{font-size:0.75rem;}.DocSearch-Hit-source{color:rgb(18, 28, 45);font-size:0.875rem;font-weight:500;}.DocSearch-Hit-icon{display:none;}.DocSearch-Prefill{color:rgb(2, 99, 224);-webkit-text-decoration:underline;text-decoration:underline;}.DocSearch-Prefill:hover{-webkit-text-decoration:none;text-decoration:none;}.DocSearch-Commands-Key{padding-bottom:0;}.DocSearch-Footer{-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:start;justify-content:start;}.DocSearch-Logo{display:none;}:root{--docsearch-primary-color:rgb(3, 11, 93);--docsearch-text-color:rgb(18, 28, 45);--docsearch-spacing:1rem;--docsearch-icon-stroke-width:2px;--docsearch-highlight-color:rgb(3, 11, 93);--docsearch-muted-color:rgb(96, 107, 133);--docsearch-container-background:rgba(96, 107, 133, 0.5);--docsearch-logo-color:rgb(96, 107, 133);--docsearch-modal-width:44.5rem;--docsearch-modal-height:600px;--docsearch-modal-background:rgb(255, 255, 255);--docsearch-modal-shadow:0 2px 8px 0 rgba(18, 28, 45, 0.1);--docsearch-searchbox-height:46px;--docsearch-searchbox-background:rgb(18, 28, 45);--docsearch-searchbox-focus-background:rgb(255, 255, 255);--docsearch-searchbox-shadow:0 0 0 2px #ffffff,0 0 0 3px #006dfa,0 0 0 5px #cce4ff;--docsearch-hit-height:56px;--docsearch-hit-color:rgb(18, 28, 45);--docsearch-hit-active-color:rgb(255, 255, 255);--docsearch-hit-background:rgb(255, 255, 255);--docsearch-hit-shadow:none;--docsearch-key-gradient:rgb(244, 244, 246);--docsearch-key-shadow:none;--docsearch-footer-height:44px;--docsearch-footer-background:rgb(255, 255, 255);--docsearch-footer-shadow:none;}html{scroll-behavior:smooth;scroll-padding-top:100px;}@media (max-width: 1495px){html{scroll-padding-top:156px;}}.grecaptcha-badge{visibility:hidden;}</style><style data-emotion="css ikpa90">.css-ikpa90{box-sizing:border-box;opacity:0;transition-delay:50ms;-webkit-transition:opacity 150ms ease;transition:opacity 150ms ease;}@media screen and (min-width: 768px){.css-ikpa90{opacity:1;}}</style><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-ikpa90"><style data-emotion="css w8it0u">.css-w8it0u{box-sizing:border-box;background-color:rgb(255, 255, 255);border-radius:4px;box-shadow:0 -1px 0 0 #f4f4f6,0 3px 4px 0 rgba(15, 22, 33, 0.1);left:10px;padding-left:1.25rem;padding-right:1.25rem;padding-top:0.5rem;padding-bottom:0.5rem;position:fixed;top:10px;-webkit-transform:translateY(-150%);-moz-transform:translateY(-150%);-ms-transform:translateY(-150%);transform:translateY(-150%);-webkit-transition:-webkit-transform 0.1s;transition:transform 0.1s;z-index:90;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-column-gap:1.25rem;column-gap:1.25rem;}.css-w8it0u:focus-within{-webkit-transform:translateY(0%);-moz-transform:translateY(0%);-ms-transform:translateY(0%);transform:translateY(0%);}</style><div data-paste-element="SIDEBAR_SKIPLINKS" data-paste-core-version="21.4.0" class="css-w8it0u"><style data-emotion="css lpeit6">.css-lpeit6{box-sizing:border-box;color:rgb(2, 99, 224);font-size:inherit;font-weight:inherit;line-height:inherit;outline:none;-webkit-text-decoration:underline;text-decoration:underline;}.css-lpeit6:active,.css-lpeit6[data-active=true]{color:rgb(6, 3, 58);-webkit-text-decoration:none;text-decoration:none;}.css-lpeit6:focus{box-shadow:0 0 0 2px #ffffff,0 0 0 3px #006dfa,0 0 0 5px #cce4ff;color:rgb(2, 99, 224);-webkit-text-decoration:underline;text-decoration:underline;border-radius:4px;}.css-lpeit6:hover{color:rgb(3, 11, 93);-webkit-text-decoration:none;text-decoration:none;}</style><a data-paste-element="SIDEBAR_SKIPLINKS_LINK" data-paste-core-version="21.4.0" href="#twilio-docs-content-area" class="css-lpeit6">Skip to content</a><a data-paste-element="SIDEBAR_SKIPLINKS_LINK" data-paste-core-version="21.4.0" href="#twilio-docs-sidebar-nav" class="css-lpeit6">Skip to navigation</a><a data-paste-element="SIDEBAR_SKIPLINKS_LINK" data-paste-core-version="21.4.0" href="#twilio-docs-topbar" class="css-lpeit6">Skip to topbar</a></div><style data-emotion="css 66wgzi">.css-66wgzi{box-sizing:border-box;width:100%;overflow:visible;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;box-shadow:1px 0 0 0 #1f304c;background-color:rgb(18, 28, 45);z-index:50;position:fixed;top:0;left:0;bottom:0;}@media screen and (min-width: 768px){.css-66wgzi{width:15rem;}}</style><aside data-paste-element="SIDEBAR" data-paste-core-version="21.4.0" style="opacity:1;width:15rem;transform:translateX(0%)" id="_R_19lbkm_" class="css-66wgzi"><style data-emotion="css 3p6q35">.css-3p6q35{box-sizing:border-box;padding-left:1.25rem;padding-right:1.25rem;min-height:4.75rem;box-shadow:0 1px 0 0 #1f304c;z-index:40;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-column-gap:1rem;column-gap:1rem;overflow:hidden;}</style><div data-paste-element="SIDEBAR_HEADER" data-paste-core-version="21.4.0" class="css-3p6q35"><style data-emotion="css s7diru">.css-s7diru{box-sizing:border-box;width:auto;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;background:none;display:inline-block;border:none;outline:none;-webkit-transition:background-color 100ms ease-in,box-shadow 100ms ease-in,color 100ms ease-in;transition:background-color 100ms ease-in,box-shadow 100ms ease-in,color 100ms ease-in;font-family:inherit;font-weight:600;-webkit-text-decoration:none;text-decoration:none;position:relative;margin:0;border-radius:8px;cursor:pointer;color:rgb(255, 255, 255);background-color:rgb(18, 28, 45);box-shadow:0 0 0 1px #394762;padding:0.5rem;}.css-s7diru:hover{-webkit-text-decoration:none;text-decoration:none;color:rgb(255, 255, 255);background-color:rgb(31, 48, 76);box-shadow:0 0 0 1px #f4f4f6;}.css-s7diru:focus{-webkit-text-decoration:none;text-decoration:none;box-shadow:0 0 0 1px #394762,0 0 0 3px #121c2d,0 0 0 4px #ffffff,0 0 0 6px rgba(255, 255, 255, 0.2);}.css-s7diru:active,.css-s7diru[data-active=true]{-webkit-text-decoration:none;text-decoration:none;box-shadow:0 0 0 1px #ffffff;color:rgb(255, 255, 255);background-color:rgb(31, 48, 76);}</style><a data-paste-element="SIDEBAR_HEADER_ICON_BUTTON" data-paste-core-version="21.4.0" href="/docs" aria-busy="false" type="button" class="css-s7diru"><style data-emotion="css 1lgr57j">.css-1lgr57j{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-text-decoration:inherit;text-decoration:inherit;opacity:1;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-column-gap:0.25rem;column-gap:0.25rem;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:100%;}</style><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1lgr57j"><style data-emotion="css pe4vrq">.css-pe4vrq{box-sizing:border-box;line-height:0;display:block;color:currentColor;width:1.25rem;height:1.25rem;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;}</style><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="LogoTwilioIcon-_R_4pjb9lbkm_"><title id="LogoTwilioIcon-_R_4pjb9lbkm_">Go to the Twilio Docs home page</title><path fill="currentColor" fill-rule="evenodd" d="M10 0C4.477 0 0 4.477 0 10s4.477 10 10 10 10-4.477 10-10A10 10 0 0010 0zm0 17.333a7.333 7.333 0 110-14.666 7.333 7.333 0 010 14.666zm4.533-9.8a2.067 2.067 0 11-2.066-2.066 2.08 2.08 0 012.066 2.066zm0 4.934a2.067 2.067 0 11-2.066-2.067 2.08 2.08 0 012.066 2.067zm-4.933 0A2.067 2.067 0 117.533 10.4 2.08 2.08 0 019.6 12.467zm0-4.934a2.067 2.067 0 11-2.067-2.066A2.08 2.08 0 019.6 7.533z"></path></svg></span></span></a><style data-emotion="css bt2jq2">.css-bt2jq2{box-sizing:border-box;opacity:1;font-size:0.875rem;font-weight:600;line-height:1.25rem;letter-spacing:-.02em;color:rgb(255, 255, 255);white-space:nowrap;text-overflow:ellipsis;overflow:hidden;margin:0;}</style><div data-paste-element="SIDEBAR_HEADER_LABEL" data-paste-core-version="21.4.0" class="css-bt2jq2">Twilio Docs</div></div><style data-emotion="css 1r1miiz">.css-1r1miiz{box-sizing:border-box;max-height:100%;overflow:hidden;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;}</style><div data-paste-element="SIDEBAR_BODY" data-paste-core-version="21.4.0" class="css-1r1miiz"><style data-emotion="css 1j8kdpc">.css-1j8kdpc{box-sizing:border-box;-webkit-transition:opacity 150ms ease;transition:opacity 150ms ease;max-height:100%;overflow-y:auto;overflow-x:hidden;padding-top:1rem;padding-bottom:1rem;padding-left:1.25rem;padding-right:1.25rem;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;}</style><style data-emotion="css 1uh9o2u">.css-1uh9o2u{overflow-scrolling:touch;background:linear-gradient(rgb(18, 28, 45) 33%, rgba(20,28,44, 0)),linear-gradient(rgba(20,28,44, 0), rgb(18, 28, 45) 66%) 0 100%,radial-gradient(farthest-side at 50% 100%, rgba(57, 71, 98, 0.5), rgba(0,0,0,0)) 0 100%;background-repeat:no-repeat;-webkit-background-size:100% 15px,100% 15px,100% 5px,100% 5px;background-size:100% 15px,100% 15px,100% 5px,100% 5px;background-attachment:local,local,scroll,scroll;box-sizing:border-box;-webkit-transition:opacity 150ms ease;transition:opacity 150ms ease;max-height:100%;overflow-y:auto;overflow-x:hidden;padding-top:1rem;padding-bottom:1rem;padding-left:1.25rem;padding-right:1.25rem;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;}.css-1uh9o2u::-webkit-scrollbar{width:6px;}.css-1uh9o2u::-webkit-scrollbar-track{margin-top:8px;background:rgb(18, 28, 45);}.css-1uh9o2u::-webkit-scrollbar-thumb{background:rgb(37, 57, 91);border-radius:10px;}.css-1uh9o2u::-webkit-scrollbar-thumb:hover{background:rgb(64, 79, 110);}</style><nav data-paste-element="SIDEBAR_NAVIGATION" data-paste-core-version="21.4.0" aria-label="main" id="twilio-docs-sidebar-nav" class="css-1uh9o2u"><style data-emotion="css 4zrz0j">.css-4zrz0j{box-sizing:border-box;font-style:normal;font-weight:400;font-size:0.875rem;line-height:1.25rem;color:rgb(202, 205, 216);-webkit-transition:all 120ms ease;transition:all 120ms ease;border-radius:4px;cursor:pointer;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;-webkit-column-gap:0.5rem;column-gap:0.5rem;outline:none;padding-top:0.5rem;padding-bottom:0.5rem;position:relative;-webkit-text-decoration:none;text-decoration:none;background:none;border:none;overflow:hidden;padding-left:1.5rem;padding-right:0.5rem;margin-bottom:0.5rem;width:100%;}.css-4zrz0j:focus{box-shadow:0 0 0 1px #ffffff,inset 0 0 0 3px rgba(255, 255, 255, 0.2);}.css-4zrz0j:hover{-webkit-text-decoration:underline;text-decoration:underline;}</style><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging" class="css-4zrz0j"><style data-emotion="css qxhhlx">.css-qxhhlx{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-column-gap:0.25rem;column-gap:0.25rem;-webkit-transition:all 120ms ease;transition:all 120ms ease;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;float:none;opacity:1;white-space:normal;}</style><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Programmable Messaging</span></a><style data-emotion="css 17onuso">.css-17onuso{box-sizing:border-box;display:block;margin-bottom:0.5rem;}</style><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE" data-paste-core-version="21.4.0" class="css-17onuso"><style data-emotion="css 1icrb9o">.css-1icrb9o{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-column-gap:0.5rem;column-gap:0.5rem;}</style><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING_WRAPPER" data-paste-core-version="21.4.0" class="css-1icrb9o"><style data-emotion="css 1vx51jp">.css-1vx51jp{box-sizing:border-box;font-style:normal;font-weight:400;font-size:0.875rem;line-height:1.25rem;color:rgb(202, 205, 216);-webkit-transition:all 120ms ease;transition:all 120ms ease;border-radius:4px;cursor:pointer;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;-webkit-column-gap:0.25rem;column-gap:0.25rem;outline:none;padding-top:0.5rem;padding-bottom:0.5rem;position:relative;-webkit-text-decoration:none;text-decoration:none;}.css-1vx51jp:focus{box-shadow:0 0 0 1px #ffffff,inset 0 0 0 3px rgba(255, 255, 255, 0.2);}</style><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING" data-paste-core-version="21.4.0" type="button" aria-expanded="false" aria-controls="_R_5alb9lbkm_" class="css-1vx51jp"><style data-emotion="css f76d15">.css-f76d15{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;color:rgb(136, 145, 170);height:1.25rem;width:1.25rem;-webkit-transition:-webkit-transform 150ms ease;transition:transform 150ms ease;-webkit-transform:translateX(0) rotate(0deg);-moz-transform:translateX(0) rotate(0deg);-ms-transform:translateX(0) rotate(0deg);transform:translateX(0) rotate(0deg);}</style><span data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING_EXPAND_ICON" data-paste-core-version="21.4.0" class="css-f76d15"><style data-emotion="css pft8gl">.css-pft8gl{box-sizing:border-box;line-height:0;display:block;color:inherit;width:1.25rem;height:1.25rem;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;}</style><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pft8gl"><svg role="img" aria-hidden="true" width="100%" height="100%" viewBox="0 0 20 20" fill="none" aria-labelledby="ChevronDisclosureIcon-_R_9kq5alb9lbkm_"><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M9.707 6.293a1 1 0 00-1.497 1.32l.083.094L10.585 10l-2.292 2.293a1 1 0 00-.083 1.32l.083.094a1 1 0 001.32.083l.094-.083 3-3a1 1 0 00.083-1.32l-.083-.094-3-3z"></path></svg></span></span><style data-emotion="css 1m2bqrv">.css-1m2bqrv{box-sizing:border-box;display:block;margin-left:0.25rem;-webkit-transition:all 120ms ease;transition:all 120ms ease;float:none;opacity:1;white-space:normal;}</style><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m2bqrv">Getting Started</span></div></div><style data-emotion="css 1nm6rmy">.css-1nm6rmy{box-sizing:border-box;padding-left:1.5rem;color:rgb(202, 205, 216);margin-top:0.25rem;}</style><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_CONTENT" data-paste-core-version="21.4.0" id="_R_5alb9lbkm_" hidden="" style="display:none" class="css-1nm6rmy"><style data-emotion="css lafmnu">.css-lafmnu{box-sizing:border-box;font-style:normal;font-weight:400;font-size:0.75rem;line-height:1.25rem;color:rgb(202, 205, 216);-webkit-transition:all 120ms ease;transition:all 120ms ease;border-radius:4px;cursor:pointer;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;-webkit-column-gap:0.5rem;column-gap:0.5rem;outline:none;padding-top:0.25rem;padding-bottom:0.25rem;position:relative;-webkit-text-decoration:none;text-decoration:none;background:none;border:none;overflow:hidden;padding-left:1.75rem;padding-right:0.5rem;margin-bottom:0.25rem;width:100%;}.css-lafmnu:focus{box-shadow:0 0 0 1px #ffffff,inset 0 0 0 3px rgba(255, 255, 255, 0.2);}.css-lafmnu:hover{-webkit-text-decoration:underline;text-decoration:underline;}</style><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/quickstart" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">SMS developer quickstart</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/quickstart/no-code-sms-studio-quickstart" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">SMS no-code quickstart</span></a><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE" data-paste-core-version="21.4.0" class="css-17onuso"><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING_WRAPPER" data-paste-core-version="21.4.0" class="css-1icrb9o"><style data-emotion="css q9if6j">.css-q9if6j{box-sizing:border-box;font-style:normal;font-weight:400;font-size:0.75rem;line-height:1.25rem;color:rgb(202, 205, 216);-webkit-transition:all 120ms ease;transition:all 120ms ease;border-radius:4px;cursor:pointer;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;-webkit-column-gap:0.25rem;column-gap:0.25rem;outline:none;padding-top:0.25rem;padding-bottom:0.25rem;position:relative;-webkit-text-decoration:none;text-decoration:none;}.css-q9if6j:focus{box-shadow:0 0 0 1px #ffffff,inset 0 0 0 3px rgba(255, 255, 255, 0.2);}</style><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING" data-paste-core-version="21.4.0" type="button" aria-expanded="false" aria-controls="_R_ta5alb9lbkm_" class="css-q9if6j"><span data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING_EXPAND_ICON" data-paste-core-version="21.4.0" class="css-f76d15"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pft8gl"><svg role="img" aria-hidden="true" width="100%" height="100%" viewBox="0 0 20 20" fill="none" aria-labelledby="ChevronDisclosureIcon-_R_9kqta5alb9lbkm_"><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M9.707 6.293a1 1 0 00-1.497 1.32l.083.094L10.585 10l-2.292 2.293a1 1 0 00-.083 1.32l.083.094a1 1 0 001.32.083l.094-.083 3-3a1 1 0 00.083-1.32l-.083-.094-3-3z"></path></svg></span></span><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m2bqrv">Messaging onboarding guide</span></div></div><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_CONTENT" data-paste-core-version="21.4.0" id="_R_ta5alb9lbkm_" hidden="" style="display:none" class="css-1nm6rmy"><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/onboarding" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Overview</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/onboarding/sms-foundations" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">1. SMS foundations</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/onboarding/prepare-your-sender-strategy" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">2. Prepare your sender strategy</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/onboarding/build-your-account" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">3. Build your account</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/onboarding/monitor-your-application" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">4. Monitor your application</span></a></div></div><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/rcs/onboarding" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Get started with RCS messaging<span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="LogoTwilioIcon-_R_al5a5alb9lbkm_"><title id="LogoTwilioIcon-_R_al5a5alb9lbkm_">Twilio RCS Documentation</title><path fill="currentColor" fill-rule="evenodd" d="M10 0C4.477 0 0 4.477 0 10s4.477 10 10 10 10-4.477 10-10A10 10 0 0010 0zm0 17.333a7.333 7.333 0 110-14.666 7.333 7.333 0 010 14.666zm4.533-9.8a2.067 2.067 0 11-2.066-2.066 2.08 2.08 0 012.066 2.066zm0 4.934a2.067 2.067 0 11-2.066-2.067 2.08 2.08 0 012.066 2.067zm-4.933 0A2.067 2.067 0 117.533 10.4 2.08 2.08 0 019.6 12.467zm0-4.934a2.067 2.067 0 11-2.067-2.066A2.08 2.08 0 019.6 7.533z"></path></svg></span></span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/whatsapp/quickstart" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">WhatsApp quickstarts<span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="ProductMessagingIcon-_R_alda5alb9lbkm_"><title id="ProductMessagingIcon-_R_alda5alb9lbkm_">Twilio WhatsApp Business Platform Documentation</title><path fill="currentColor" fill-rule="evenodd" d="M5.885 17A.867.867 0 015 16.123v-2.158H3.25c-.69 0-1.25-.557-1.25-1.245V5.246C2 4.558 2.56 4 3.25 4h13.5c.69 0 1.25.558 1.25 1.246v7.474c0 .688-.56 1.245-1.25 1.245H9.69l-3.235 2.82a.882.882 0 01-.57.215zM3.25 4.997a.25.25 0 00-.25.249v7.474c0 .137.112.249.25.249H5.5a.497.497 0 01.5.498v2.377l3.165-2.756a.501.501 0 01.335-.12h7.25a.25.25 0 00.25-.248V5.246a.25.25 0 00-.25-.25H3.25z"></path></svg></span></span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/channels/facebook-messenger" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Get started with Facebook Messenger</span></a></div></div><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE" data-paste-core-version="21.4.0" class="css-17onuso"><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING_WRAPPER" data-paste-core-version="21.4.0" class="css-1icrb9o"><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING" data-paste-core-version="21.4.0" type="button" aria-expanded="false" aria-controls="_R_9alb9lbkm_" class="css-1vx51jp"><span data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING_EXPAND_ICON" data-paste-core-version="21.4.0" class="css-f76d15"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pft8gl"><svg role="img" aria-hidden="true" width="100%" height="100%" viewBox="0 0 20 20" fill="none" aria-labelledby="ChevronDisclosureIcon-_R_9kq9alb9lbkm_"><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M9.707 6.293a1 1 0 00-1.497 1.32l.083.094L10.585 10l-2.292 2.293a1 1 0 00-.083 1.32l.083.094a1 1 0 001.32.083l.094-.083 3-3a1 1 0 00.083-1.32l-.083-.094-3-3z"></path></svg></span></span><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m2bqrv">API reference</span></div></div><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_CONTENT" data-paste-core-version="21.4.0" id="_R_9alb9lbkm_" hidden="" style="display:none" class="css-1nm6rmy"><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/api" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">API overview</span></a><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE" data-paste-core-version="21.4.0" class="css-17onuso"><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING_WRAPPER" data-paste-core-version="21.4.0" class="css-1icrb9o"><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING" data-paste-core-version="21.4.0" type="button" aria-expanded="false" aria-controls="_R_la9alb9lbkm_" class="css-q9if6j"><span data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING_EXPAND_ICON" data-paste-core-version="21.4.0" class="css-f76d15"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pft8gl"><svg role="img" aria-hidden="true" width="100%" height="100%" viewBox="0 0 20 20" fill="none" aria-labelledby="ChevronDisclosureIcon-_R_j9kla9alb9lbkm_"><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M9.707 6.293a1 1 0 00-1.497 1.32l.083.094L10.585 10l-2.292 2.293a1 1 0 00-.083 1.32l.083.094a1 1 0 001.32.083l.094-.083 3-3a1 1 0 00.083-1.32l-.083-.094-3-3z"></path></svg></span></span><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m2bqrv">Messages resource</span></div></div><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_CONTENT" data-paste-core-version="21.4.0" id="_R_la9alb9lbkm_" hidden="" style="display:none" class="css-1nm6rmy"><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/api/message-resource" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Messages</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/api/message-feedback-resource" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Feedback</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/api/media-resource" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Media</span></a></div></div><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE" data-paste-core-version="21.4.0" class="css-17onuso"><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING_WRAPPER" data-paste-core-version="21.4.0" class="css-1icrb9o"><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING" data-paste-core-version="21.4.0" type="button" aria-expanded="false" aria-controls="_R_ta9alb9lbkm_" class="css-q9if6j"><span data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING_EXPAND_ICON" data-paste-core-version="21.4.0" class="css-f76d15"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pft8gl"><svg role="img" aria-hidden="true" width="100%" height="100%" viewBox="0 0 20 20" fill="none" aria-labelledby="ChevronDisclosureIcon-_R_j9kta9alb9lbkm_"><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M9.707 6.293a1 1 0 00-1.497 1.32l.083.094L10.585 10l-2.292 2.293a1 1 0 00-.083 1.32l.083.094a1 1 0 001.32.083l.094-.083 3-3a1 1 0 00.083-1.32l-.083-.094-3-3z"></path></svg></span></span><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m2bqrv">Services resource</span></div></div><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_CONTENT" data-paste-core-version="21.4.0" id="_R_ta9alb9lbkm_" hidden="" style="display:none" class="css-1nm6rmy"><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/api/service-resource" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Services</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/api/alphasender-resource" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">AlphaSenders</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/api/messaging-service-channelsender-resource" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">ChannelSenders</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/api/destination-alphasender-resource" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">DestinationAlphaSenders</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/api/phonenumber-resource" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">PhoneNumbers</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/api/services-shortcode-resource" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">ShortCodes</span></a></div></div><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/api/deactivations-resource" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Deactivations resource</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/api/short-code-resource" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">ShortCodes resource</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/api/tollfree-verification-resource" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Toll-free Verifications resource</span></a><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE" data-paste-core-version="21.4.0" class="css-17onuso"><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING_WRAPPER" data-paste-core-version="21.4.0" class="css-1icrb9o"><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING" data-paste-core-version="21.4.0" type="button" aria-expanded="false" aria-controls="_R_1ta9alb9lbkm_" class="css-q9if6j"><span data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING_EXPAND_ICON" data-paste-core-version="21.4.0" class="css-f76d15"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pft8gl"><svg role="img" aria-hidden="true" width="100%" height="100%" viewBox="0 0 20 20" fill="none" aria-labelledby="ChevronDisclosureIcon-_R_j9lta9alb9lbkm_"><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M9.707 6.293a1 1 0 00-1.497 1.32l.083.094L10.585 10l-2.292 2.293a1 1 0 00-.083 1.32l.083.094a1 1 0 001.32.083l.094-.083 3-3a1 1 0 00.083-1.32l-.083-.094-3-3z"></path></svg></span></span><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m2bqrv">A2P 10DLC</span></div></div><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_CONTENT" data-paste-core-version="21.4.0" id="_R_1ta9alb9lbkm_" hidden="" style="display:none" class="css-1nm6rmy"><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/api/brand-registration-resource" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">BrandRegistrations</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/api/brand-vetting-resource" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Vettings</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/api/usapptoperson-resource" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Usa2p</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/api/usapptopersonusecase-resource" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Usecases</span></a></div></div><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE" data-paste-core-version="21.4.0" class="css-17onuso"><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING_WRAPPER" data-paste-core-version="21.4.0" class="css-1icrb9o"><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING" data-paste-core-version="21.4.0" type="button" aria-expanded="false" aria-controls="_R_25a9alb9lbkm_" class="css-q9if6j"><span data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING_EXPAND_ICON" data-paste-core-version="21.4.0" class="css-f76d15"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pft8gl"><svg role="img" aria-hidden="true" width="100%" height="100%" viewBox="0 0 20 20" fill="none" aria-labelledby="ChevronDisclosureIcon-_R_j9m5a9alb9lbkm_"><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M9.707 6.293a1 1 0 00-1.497 1.32l.083.094L10.585 10l-2.292 2.293a1 1 0 00-.083 1.32l.083.094a1 1 0 001.32.083l.094-.083 3-3a1 1 0 00.083-1.32l-.083-.094-3-3z"></path></svg></span></span><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m2bqrv">Pricing API</span></div></div><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_CONTENT" data-paste-core-version="21.4.0" id="_R_25a9alb9lbkm_" hidden="" style="display:none" class="css-1nm6rmy"><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/api/pricing" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Countries</span></a></div></div></div></div><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE" data-paste-core-version="21.4.0" class="css-17onuso"><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING_WRAPPER" data-paste-core-version="21.4.0" class="css-1icrb9o"><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING" data-paste-core-version="21.4.0" type="button" aria-expanded="false" aria-controls="_R_dalb9lbkm_" class="css-1vx51jp"><span data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING_EXPAND_ICON" data-paste-core-version="21.4.0" class="css-f76d15"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pft8gl"><svg role="img" aria-hidden="true" width="100%" height="100%" viewBox="0 0 20 20" fill="none" aria-labelledby="ChevronDisclosureIcon-_R_9kqdalb9lbkm_"><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M9.707 6.293a1 1 0 00-1.497 1.32l.083.094L10.585 10l-2.292 2.293a1 1 0 00-.083 1.32l.083.094a1 1 0 001.32.083l.094-.083 3-3a1 1 0 00.083-1.32l-.083-.094-3-3z"></path></svg></span></span><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m2bqrv">Preventing Fraud</span></div></div><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_CONTENT" data-paste-core-version="21.4.0" id="_R_dalb9lbkm_" hidden="" style="display:none" class="css-1nm6rmy"><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/guides/preventing-messaging-fraud" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Preventing Fraud in Programmable Messaging</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/features/sms-pumping-protection-programmable-messaging" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">SMS Pumping Protection</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/features/messaging-insights/sms-pumping-protection-insights" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">SMS Pumping Protection Insights</span></a></div></div><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE" data-paste-core-version="21.4.0" class="css-17onuso"><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING_WRAPPER" data-paste-core-version="21.4.0" class="css-1icrb9o"><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING" data-paste-core-version="21.4.0" type="button" aria-expanded="false" aria-controls="_R_halb9lbkm_" class="css-1vx51jp"><span data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING_EXPAND_ICON" data-paste-core-version="21.4.0" class="css-f76d15"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pft8gl"><svg role="img" aria-hidden="true" width="100%" height="100%" viewBox="0 0 20 20" fill="none" aria-labelledby="ChevronDisclosureIcon-_R_9kqhalb9lbkm_"><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M9.707 6.293a1 1 0 00-1.497 1.32l.083.094L10.585 10l-2.292 2.293a1 1 0 00-.083 1.32l.083.094a1 1 0 001.32.083l.094-.083 3-3a1 1 0 00.083-1.32l-.083-.094-3-3z"></path></svg></span></span><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m2bqrv">Tutorials</span></div></div><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_CONTENT" data-paste-core-version="21.4.0" id="_R_halb9lbkm_" hidden="" style="display:none" class="css-1nm6rmy"><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/tutorials/how-to-receive-and-reply" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Receive and reply to incoming messages</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/tutorials/how-to-send-sms-messages" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Send SMS and MMS messages</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/tutorials/appointment-reminders" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Send appointment reminders</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/tutorials/how-to-retrieve-and-modify-message-history" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Retrieve and modify message history</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/rcs/send-an-rcs-message" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Send and receive RCS messages<span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="LogoTwilioIcon-_R_aldahalb9lbkm_"><title id="LogoTwilioIcon-_R_aldahalb9lbkm_">Twilio RCS Documentation</title><path fill="currentColor" fill-rule="evenodd" d="M10 0C4.477 0 0 4.477 0 10s4.477 10 10 10 10-4.477 10-10A10 10 0 0010 0zm0 17.333a7.333 7.333 0 110-14.666 7.333 7.333 0 010 14.666zm4.533-9.8a2.067 2.067 0 11-2.066-2.066 2.08 2.08 0 012.066 2.066zm0 4.934a2.067 2.067 0 11-2.066-2.067 2.08 2.08 0 012.066 2.067zm-4.933 0A2.067 2.067 0 117.533 10.4 2.08 2.08 0 019.6 12.467zm0-4.934a2.067 2.067 0 11-2.067-2.066A2.08 2.08 0 019.6 7.533z"></path></svg></span></span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/tutorials/send-message-with-facebook-messenger" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Send messages with Facebook Messenger</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/tutorials" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Browse all Messaging tutorials</span></a></div></div><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE" data-paste-core-version="21.4.0" class="css-17onuso"><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING_WRAPPER" data-paste-core-version="21.4.0" class="css-1icrb9o"><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING" data-paste-core-version="21.4.0" type="button" aria-expanded="false" aria-controls="_R_lalb9lbkm_" class="css-1vx51jp"><span data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING_EXPAND_ICON" data-paste-core-version="21.4.0" class="css-f76d15"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pft8gl"><svg role="img" aria-hidden="true" width="100%" height="100%" viewBox="0 0 20 20" fill="none" aria-labelledby="ChevronDisclosureIcon-_R_9kqlalb9lbkm_"><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M9.707 6.293a1 1 0 00-1.497 1.32l.083.094L10.585 10l-2.292 2.293a1 1 0 00-.083 1.32l.083.094a1 1 0 001.32.083l.094-.083 3-3a1 1 0 00.083-1.32l-.083-.094-3-3z"></path></svg></span></span><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m2bqrv">Messaging Services</span></div></div><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_CONTENT" data-paste-core-version="21.4.0" id="_R_lalb9lbkm_" hidden="" style="display:none" class="css-1nm6rmy"><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/services" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Overview</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/tutorials/send-messages-with-messaging-services" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Get started with Messaging Services</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/tutorials/advanced-opt-out" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Manage opt-ins and opt-outs</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/guides/best-practices-at-scale" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Best Practices for Scaling with Messaging Services</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/guides/scaling-queueing-latency" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Manage queueing and latency</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/services/alphanumeric-sender-ids-in-messaging-services" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Alphanumeric Sender IDs</span></a></div></div><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE" data-paste-core-version="21.4.0" class="css-17onuso"><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING_WRAPPER" data-paste-core-version="21.4.0" class="css-1icrb9o"><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING" data-paste-core-version="21.4.0" type="button" aria-expanded="false" aria-controls="_R_palb9lbkm_" class="css-1vx51jp"><span data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING_EXPAND_ICON" data-paste-core-version="21.4.0" class="css-f76d15"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pft8gl"><svg role="img" aria-hidden="true" width="100%" height="100%" viewBox="0 0 20 20" fill="none" aria-labelledby="ChevronDisclosureIcon-_R_9kqpalb9lbkm_"><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M9.707 6.293a1 1 0 00-1.497 1.32l.083.094L10.585 10l-2.292 2.293a1 1 0 00-.083 1.32l.083.094a1 1 0 001.32.083l.094-.083 3-3a1 1 0 00.083-1.32l-.083-.094-3-3z"></path></svg></span></span><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m2bqrv">Messaging Features</span></div></div><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_CONTENT" data-paste-core-version="21.4.0" id="_R_palb9lbkm_" hidden="" style="display:none" class="css-1nm6rmy"><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/features/twilio-health-score-for-messaging" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Twilio Health Score for Messaging</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/features/intelligent-alerts" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Intelligent Alerts</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/features/intelligent-discovery-ai-assistant" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Intelligent Discovery AI Assistant</span></a><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE" data-paste-core-version="21.4.0" class="css-17onuso"><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING_WRAPPER" data-paste-core-version="21.4.0" class="css-1icrb9o"><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING" data-paste-core-version="21.4.0" type="button" aria-expanded="false" aria-controls="_R_15apalb9lbkm_" class="css-q9if6j"><span data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING_EXPAND_ICON" data-paste-core-version="21.4.0" class="css-f76d15"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pft8gl"><svg role="img" aria-hidden="true" width="100%" height="100%" viewBox="0 0 20 20" fill="none" aria-labelledby="ChevronDisclosureIcon-_R_j9l5apalb9lbkm_"><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M9.707 6.293a1 1 0 00-1.497 1.32l.083.094L10.585 10l-2.292 2.293a1 1 0 00-.083 1.32l.083.094a1 1 0 001.32.083l.094-.083 3-3a1 1 0 00.083-1.32l-.083-.094-3-3z"></path></svg></span></span><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m2bqrv">Link Shortening</span></div></div><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_CONTENT" data-paste-core-version="21.4.0" id="_R_15apalb9lbkm_" hidden="" style="display:none" class="css-1nm6rmy"><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/features/link-shortening" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Overview</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/features/link-shortening/onboarding-guide" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Onboarding Guide</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="https://www.twilio.com/en-us/blog/setup-link-shortening-click-tracking" rel="noreferrer noopener" target="_blank" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Advanced Guide to Link Shortening and Link Tracking with Twilio Messaging<span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="LinkExternalIcon-_R_l9ql5apalb9lbkm_"><path fill="currentColor" fill-rule="evenodd" d="M8.4 4.5a.5.5 0 01.5.5v.1a.5.5 0 01-.5.5H5.6v8.8h8.8v-2.8a.5.5 0 01.41-.492l.09-.008h.1a.5.5 0 01.492.41l.008.09V15a.5.5 0 01-.41.492L15 15.5H5a.5.5 0 01-.492-.41L4.5 15V5a.5.5 0 01.41-.492L5 4.5h3.4zm6.6 0a.5.5 0 01.5.5v.1l-.001.01.001 3.29a.5.5 0 01-.5.5h-.1a.5.5 0 01-.5-.5l-.001-1.935-3.967 3.967a.611.611 0 01-.78.07l-.084-.07a.611.611 0 01-.07-.78l.07-.084L13.534 5.6H11.6a.5.5 0 01-.5-.5V5a.5.5 0 01.5-.5H15z"></path></svg></span></span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="https://www.twilio.com/en-us/blog/archive/2023/link-shortening-and-click-tracking-ssl-faq" rel="noreferrer noopener" target="_blank" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Link Shortening and Click Tracking SSL FAQ<span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="LinkExternalIcon-_R_laal5apalb9lbkm_"><path fill="currentColor" fill-rule="evenodd" d="M8.4 4.5a.5.5 0 01.5.5v.1a.5.5 0 01-.5.5H5.6v8.8h8.8v-2.8a.5.5 0 01.41-.492l.09-.008h.1a.5.5 0 01.492.41l.008.09V15a.5.5 0 01-.41.492L15 15.5H5a.5.5 0 01-.492-.41L4.5 15V5a.5.5 0 01.41-.492L5 4.5h3.4zm6.6 0a.5.5 0 01.5.5v.1l-.001.01.001 3.29a.5.5 0 01-.5.5h-.1a.5.5 0 01-.5-.5l-.001-1.935-3.967 3.967a.611.611 0 01-.78.07l-.084-.07a.611.611 0 01-.07-.78l.07-.084L13.534 5.6H11.6a.5.5 0 01-.5-.5V5a.5.5 0 01.5-.5H15z"></path></svg></span></span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="https://www.twilio.com/en-us/blog/how-to-schedule-and-track-marketing-campaigns" rel="noreferrer noopener" target="_blank" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">How to Schedule and Track Marketing Campaigns<span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="LinkExternalIcon-_R_laql5apalb9lbkm_"><path fill="currentColor" fill-rule="evenodd" d="M8.4 4.5a.5.5 0 01.5.5v.1a.5.5 0 01-.5.5H5.6v8.8h8.8v-2.8a.5.5 0 01.41-.492l.09-.008h.1a.5.5 0 01.492.41l.008.09V15a.5.5 0 01-.41.492L15 15.5H5a.5.5 0 01-.492-.41L4.5 15V5a.5.5 0 01.41-.492L5 4.5h3.4zm6.6 0a.5.5 0 01.5.5v.1l-.001.01.001 3.29a.5.5 0 01-.5.5h-.1a.5.5 0 01-.5-.5l-.001-1.935-3.967 3.967a.611.611 0 01-.78.07l-.084-.07a.611.611 0 01-.07-.78l.07-.084L13.534 5.6H11.6a.5.5 0 01-.5-.5V5a.5.5 0 01.5-.5H15z"></path></svg></span></span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="https://www.twilio.com/en-us/blog/engagement-suite" rel="noreferrer noopener" target="_blank" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Introducing Engagement Suite from Twilio Messaging<span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="LinkExternalIcon-_R_lbal5apalb9lbkm_"><path fill="currentColor" fill-rule="evenodd" d="M8.4 4.5a.5.5 0 01.5.5v.1a.5.5 0 01-.5.5H5.6v8.8h8.8v-2.8a.5.5 0 01.41-.492l.09-.008h.1a.5.5 0 01.492.41l.008.09V15a.5.5 0 01-.41.492L15 15.5H5a.5.5 0 01-.492-.41L4.5 15V5a.5.5 0 01.41-.492L5 4.5h3.4zm6.6 0a.5.5 0 01.5.5v.1l-.001.01.001 3.29a.5.5 0 01-.5.5h-.1a.5.5 0 01-.5-.5l-.001-1.935-3.967 3.967a.611.611 0 01-.78.07l-.084-.07a.611.611 0 01-.07-.78l.07-.084L13.534 5.6H11.6a.5.5 0 01-.5-.5V5a.5.5 0 01.5-.5H15z"></path></svg></span></span></a></div></div><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/features/messaging-logs" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Messaging Logs</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/features/message-scheduling" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Message Scheduling</span></a><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE" data-paste-core-version="21.4.0" class="css-17onuso"><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING_WRAPPER" data-paste-core-version="21.4.0" class="css-1icrb9o"><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING" data-paste-core-version="21.4.0" type="button" aria-expanded="false" aria-controls="_R_1tapalb9lbkm_" class="css-q9if6j"><span data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING_EXPAND_ICON" data-paste-core-version="21.4.0" class="css-f76d15"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pft8gl"><svg role="img" aria-hidden="true" width="100%" height="100%" viewBox="0 0 20 20" fill="none" aria-labelledby="ChevronDisclosureIcon-_R_j9ltapalb9lbkm_"><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M9.707 6.293a1 1 0 00-1.497 1.32l.083.094L10.585 10l-2.292 2.293a1 1 0 00-.083 1.32l.083.094a1 1 0 001.32.083l.094-.083 3-3a1 1 0 00.083-1.32l-.083-.094-3-3z"></path></svg></span></span><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m2bqrv">Messaging Insights</span></div></div><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_CONTENT" data-paste-core-version="21.4.0" id="_R_1tapalb9lbkm_" hidden="" style="display:none" class="css-1nm6rmy"><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/features/messaging-insights" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Overview</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/features/messaging-insights/dashboards" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Dashboards</span></a></div></div><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/features/multi-tenancy" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Multi-Tenancy</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/features/recommendations" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Recommendations</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/features/sms-pumping-protection-programmable-messaging" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">SMS Pumping Protection</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/features/traffic-optimization-engine" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Traffic Optimization Engine</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/features/traffic-shaping" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Traffic Shaping</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/features/compliance-toolkit" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Compliance Toolkit</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/features/consent-api" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Consent Management API</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/features/contact-api" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Contact API</span></a></div></div><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE" data-paste-core-version="21.4.0" class="css-17onuso"><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING_WRAPPER" data-paste-core-version="21.4.0" class="css-1icrb9o"><style data-emotion="css ecye55">.css-ecye55{box-sizing:border-box;font-style:normal;font-weight:600;font-size:0.875rem;line-height:1.25rem;color:rgb(255, 255, 255);-webkit-transition:all 120ms ease;transition:all 120ms ease;border-radius:4px;cursor:pointer;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;-webkit-column-gap:0.25rem;column-gap:0.25rem;outline:none;padding-top:0.5rem;padding-bottom:0.5rem;position:relative;-webkit-text-decoration:none;text-decoration:none;}.css-ecye55:focus{box-shadow:0 0 0 1px #ffffff,inset 0 0 0 3px rgba(255, 255, 255, 0.2);}</style><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING" data-paste-core-version="21.4.0" type="button" aria-expanded="true" aria-controls="_R_talb9lbkm_" class="css-ecye55"><style data-emotion="css 127bfmf">.css-127bfmf{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;color:rgb(136, 145, 170);height:1.25rem;width:1.25rem;-webkit-transition:-webkit-transform 150ms ease;transition:transform 150ms ease;-webkit-transform:translateX(0) rotate(90deg);-moz-transform:translateX(0) rotate(90deg);-ms-transform:translateX(0) rotate(90deg);transform:translateX(0) rotate(90deg);}</style><span data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING_EXPAND_ICON" data-paste-core-version="21.4.0" class="css-127bfmf"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pft8gl"><svg role="img" aria-hidden="true" width="100%" height="100%" viewBox="0 0 20 20" fill="none" aria-labelledby="ChevronDisclosureIcon-_R_9kqtalb9lbkm_"><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M9.707 6.293a1 1 0 00-1.497 1.32l.083.094L10.585 10l-2.292 2.293a1 1 0 00-.083 1.32l.083.094a1 1 0 001.32.083l.094-.083 3-3a1 1 0 00.083-1.32l-.083-.094-3-3z"></path></svg></span></span><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m2bqrv">Usage Guides</span></div></div><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_CONTENT" data-paste-core-version="21.4.0" id="_R_talb9lbkm_" class="css-1nm6rmy"><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/usage/tutorials/how-to-use-your-free-trial-account" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Get started with your Twilio trial account<span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="LogoTwilioIcon-_R_l8datalb9lbkm_"><title id="LogoTwilioIcon-_R_l8datalb9lbkm_">Twilio General Usage Documentation</title><path fill="currentColor" fill-rule="evenodd" d="M10 0C4.477 0 0 4.477 0 10s4.477 10 10 10 10-4.477 10-10A10 10 0 0010 0zm0 17.333a7.333 7.333 0 110-14.666 7.333 7.333 0 010 14.666zm4.533-9.8a2.067 2.067 0 11-2.066-2.066 2.08 2.08 0 012.066 2.066zm0 4.934a2.067 2.067 0 11-2.066-2.067 2.08 2.08 0 012.066 2.067zm-4.933 0A2.067 2.067 0 117.533 10.4 2.08 2.08 0 019.6 12.467zm0-4.934a2.067 2.067 0 11-2.067-2.066A2.08 2.08 0 019.6 7.533z"></path></svg></span></span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/guides/guide-to-using-the-twilio-virtual-phone" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Test SMS Messaging with the Virtual Phone</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/guides/preventing-messaging-fraud" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Preventing Fraud in Programmable Messaging</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/guides/sending-international-sms-guide" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">What to Know Before Sending International SMS Messages</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/guides/sms-geo-permissions" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">SMS Geo Permissions</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/guides/webhook-request" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Twilio&#x27;s request to your incoming message Webhook URL</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/guides/outbound-message-status-in-status-callbacks" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Outbound Message Status in Status Callbacks</span></a><style data-emotion="css bxygmn">.css-bxygmn{box-sizing:border-box;font-style:normal;font-weight:600;font-size:0.75rem;line-height:1.25rem;color:rgb(255, 255, 255);-webkit-transition:all 120ms ease;transition:all 120ms ease;border-radius:4px;cursor:pointer;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;-webkit-column-gap:0.5rem;column-gap:0.5rem;outline:none;padding-top:0.25rem;padding-bottom:0.25rem;position:relative;-webkit-text-decoration:none;text-decoration:none;background:none;border:none;overflow:hidden;padding-left:1.75rem;padding-right:0.5rem;margin-bottom:0.25rem;width:100%;background-color:rgb(31, 48, 76);}.css-bxygmn:focus{box-shadow:0 0 0 1px #ffffff,inset 0 0 0 3px rgba(255, 255, 255, 0.2);}.css-bxygmn:hover{-webkit-text-decoration:underline;text-decoration:underline;}</style><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/guides/track-outbound-message-status" aria-current="page" class="css-bxygmn"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Track the Message Status of Outbound Messages</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/guides/outbound-message-logging" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Best Practices for Messaging Delivery Status Logging</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/guides/privacy-message-redaction" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Safeguard with Message redaction</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/guides/debugging-common-issues" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Debugging Common Issues with SMS</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/guides/send-message-feedback-to-twilio" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">How to Optimize Message Deliverability with Message Feedback</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/guides/market-throughput-overview" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Market Throughput Overview</span></a></div></div><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE" data-paste-core-version="21.4.0" class="css-17onuso"><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING_WRAPPER" data-paste-core-version="21.4.0" class="css-1icrb9o"><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING" data-paste-core-version="21.4.0" type="button" aria-expanded="false" aria-controls="_R_11alb9lbkm_" class="css-1vx51jp"><span data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING_EXPAND_ICON" data-paste-core-version="21.4.0" class="css-f76d15"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pft8gl"><svg role="img" aria-hidden="true" width="100%" height="100%" viewBox="0 0 20 20" fill="none" aria-labelledby="ChevronDisclosureIcon-_R_9kr1alb9lbkm_"><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M9.707 6.293a1 1 0 00-1.497 1.32l.083.094L10.585 10l-2.292 2.293a1 1 0 00-.083 1.32l.083.094a1 1 0 001.32.083l.094-.083 3-3a1 1 0 00.083-1.32l-.083-.094-3-3z"></path></svg></span></span><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m2bqrv">TwiML</span></div></div><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_CONTENT" data-paste-core-version="21.4.0" id="_R_11alb9lbkm_" hidden="" style="display:none" class="css-1nm6rmy"><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/twiml" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Overview</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/twiml/message" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">&lt;Message&gt;</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/twiml/redirect" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">&lt;Redirect&gt;</span></a></div></div><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE" data-paste-core-version="21.4.0" class="css-17onuso"><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING_WRAPPER" data-paste-core-version="21.4.0" class="css-1icrb9o"><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING" data-paste-core-version="21.4.0" type="button" aria-expanded="false" aria-controls="_R_15alb9lbkm_" class="css-1vx51jp"><span data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING_EXPAND_ICON" data-paste-core-version="21.4.0" class="css-f76d15"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pft8gl"><svg role="img" aria-hidden="true" width="100%" height="100%" viewBox="0 0 20 20" fill="none" aria-labelledby="ChevronDisclosureIcon-_R_9kr5alb9lbkm_"><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M9.707 6.293a1 1 0 00-1.497 1.32l.083.094L10.585 10l-2.292 2.293a1 1 0 00-.083 1.32l.083.094a1 1 0 001.32.083l.094-.083 3-3a1 1 0 00.083-1.32l-.083-.094-3-3z"></path></svg></span></span><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m2bqrv">US A2P 10DLC</span></div></div><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_CONTENT" data-paste-core-version="21.4.0" id="_R_15alb9lbkm_" hidden="" style="display:none" class="css-1nm6rmy"><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/compliance/a2p-10dlc/quickstart" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">A2P 10DLC quickstart</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/compliance/a2p-10dlc" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">US A2P 10DLC Overview</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/compliance/a2p-10dlc/collect-business-info" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Required Business Information</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/compliance/a2p-10dlc/onboarding-for-government-and-non-profit-agencies" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Registration for Government and Non-Profit Agencies</span></a><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE" data-paste-core-version="21.4.0" class="css-17onuso"><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING_WRAPPER" data-paste-core-version="21.4.0" class="css-1icrb9o"><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING" data-paste-core-version="21.4.0" type="button" aria-expanded="false" aria-controls="_R_1db5alb9lbkm_" class="css-q9if6j"><span data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING_EXPAND_ICON" data-paste-core-version="21.4.0" class="css-f76d15"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pft8gl"><svg role="img" aria-hidden="true" width="100%" height="100%" viewBox="0 0 20 20" fill="none" aria-labelledby="ChevronDisclosureIcon-_R_j9ldb5alb9lbkm_"><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M9.707 6.293a1 1 0 00-1.497 1.32l.083.094L10.585 10l-2.292 2.293a1 1 0 00-.083 1.32l.083.094a1 1 0 001.32.083l.094-.083 3-3a1 1 0 00.083-1.32l-.083-.094-3-3z"></path></svg></span></span><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m2bqrv">Register Your Business</span></div></div><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_CONTENT" data-paste-core-version="21.4.0" id="_R_1db5alb9lbkm_" hidden="" style="display:none" class="css-1nm6rmy"><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/compliance/a2p-10dlc/direct-standard-onboarding" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Direct Standard and Low-Volume Standard Registration</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/compliance/a2p-10dlc/direct-sole-proprietor-registration-overview" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Direct Sole Proprietor Registration</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/compliance/a2p-10dlc/transition-sole-proprietor-to-standard-brand" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Transition from a Sole Proprietor Brand to a Standard Brand</span></a></div></div><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE" data-paste-core-version="21.4.0" class="css-17onuso"><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING_WRAPPER" data-paste-core-version="21.4.0" class="css-1icrb9o"><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING" data-paste-core-version="21.4.0" type="button" aria-expanded="false" aria-controls="_R_1lb5alb9lbkm_" class="css-q9if6j"><span data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING_EXPAND_ICON" data-paste-core-version="21.4.0" class="css-f76d15"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pft8gl"><svg role="img" aria-hidden="true" width="100%" height="100%" viewBox="0 0 20 20" fill="none" aria-labelledby="ChevronDisclosureIcon-_R_j9llb5alb9lbkm_"><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M9.707 6.293a1 1 0 00-1.497 1.32l.083.094L10.585 10l-2.292 2.293a1 1 0 00-.083 1.32l.083.094a1 1 0 001.32.083l.094-.083 3-3a1 1 0 00.083-1.32l-.083-.094-3-3z"></path></svg></span></span><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m2bqrv">For ISVs: Register Your Customers</span></div></div><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_CONTENT" data-paste-core-version="21.4.0" id="_R_1lb5alb9lbkm_" hidden="" style="display:none" class="css-1nm6rmy"><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/compliance/a2p-10dlc/onboarding-isv" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">ISV Onboarding Overview</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/compliance/a2p-10dlc/onboarding-isv-api" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Standard and Low-Volume Standard Registration</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/compliance/a2p-10dlc/onboarding-isv-api-sole-prop-new" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Sole Proprietor Registration</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/compliance/a2p-10dlc/externally-registered-campaigns-api" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Use Externally Registered Campaigns</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/compliance/a2p-10dlc/mock-brand-api" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Create Mock Brands and Campaigns</span></a></div></div><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE" data-paste-core-version="21.4.0" class="css-17onuso"><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING_WRAPPER" data-paste-core-version="21.4.0" class="css-1icrb9o"><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING" data-paste-core-version="21.4.0" type="button" aria-expanded="false" aria-controls="_R_1tb5alb9lbkm_" class="css-q9if6j"><span data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING_EXPAND_ICON" data-paste-core-version="21.4.0" class="css-f76d15"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pft8gl"><svg role="img" aria-hidden="true" width="100%" height="100%" viewBox="0 0 20 20" fill="none" aria-labelledby="ChevronDisclosureIcon-_R_j9ltb5alb9lbkm_"><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M9.707 6.293a1 1 0 00-1.497 1.32l.083.094L10.585 10l-2.292 2.293a1 1 0 00-.083 1.32l.083.094a1 1 0 001.32.083l.094-.083 3-3a1 1 0 00.083-1.32l-.083-.094-3-3z"></path></svg></span></span><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m2bqrv">Troubleshooting A2P 10DLC Registrations</span></div></div><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_CONTENT" data-paste-core-version="21.4.0" id="_R_1tb5alb9lbkm_" hidden="" style="display:none" class="css-1nm6rmy"><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/compliance/a2p-10dlc/troubleshooting-a2p-brands" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Overview</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/compliance/a2p-10dlc/troubleshooting-a2p-brands/troubleshooting-sole-proprietor-brand-registration-failures" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Troubleshooting Sole Proprietor Brand Registration Failures</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/compliance/a2p-10dlc/troubleshooting-a2p-brands/troubleshooting-and-rectifying-a2p-standardlvs-brands" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Troubleshooting A2P 10DLC Standard/LVS Brands</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/compliance/a2p-10dlc/troubleshooting-a2p-brands/troubleshooting-and-rectifying-a2p-campaigns-1" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Troubleshooting and rectifying Campaigns</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/compliance/a2p-10dlc/troubleshooting-a2p-brands/troubleshooting-a2p-phone-number-registration-issues" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Troubleshooting A2P Phone Number registration issues</span></a></div></div><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/compliance/a2p-10dlc/event-streams-setup" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Set Up Notifications for A2P 10DLC</span></a></div></div><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE" data-paste-core-version="21.4.0" class="css-17onuso"><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING_WRAPPER" data-paste-core-version="21.4.0" class="css-1icrb9o"><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING" data-paste-core-version="21.4.0" type="button" aria-expanded="false" aria-controls="_R_19alb9lbkm_" class="css-1vx51jp"><span data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING_EXPAND_ICON" data-paste-core-version="21.4.0" class="css-f76d15"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pft8gl"><svg role="img" aria-hidden="true" width="100%" height="100%" viewBox="0 0 20 20" fill="none" aria-labelledby="ChevronDisclosureIcon-_R_9kr9alb9lbkm_"><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M9.707 6.293a1 1 0 00-1.497 1.32l.083.094L10.585 10l-2.292 2.293a1 1 0 00-.083 1.32l.083.094a1 1 0 001.32.083l.094-.083 3-3a1 1 0 00.083-1.32l-.083-.094-3-3z"></path></svg></span></span><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m2bqrv">Toll-Free Verification</span></div></div><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_CONTENT" data-paste-core-version="21.4.0" id="_R_19alb9lbkm_" hidden="" style="display:none" class="css-1nm6rmy"><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/compliance/toll-free/console-onboarding" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Console Onboarding Guide</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/compliance/toll-free/api-onboarding" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">REST API Onboarding Guide</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/compliance/toll-free/compliance-embeddable-onboarding" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Compliance Embeddable Onboarding Guide</span></a></div></div><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE" data-paste-core-version="21.4.0" class="css-17onuso"><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING_WRAPPER" data-paste-core-version="21.4.0" class="css-1icrb9o"><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING" data-paste-core-version="21.4.0" type="button" aria-expanded="false" aria-controls="_R_1dalb9lbkm_" class="css-1vx51jp"><span data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING_EXPAND_ICON" data-paste-core-version="21.4.0" class="css-f76d15"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pft8gl"><svg role="img" aria-hidden="true" width="100%" height="100%" viewBox="0 0 20 20" fill="none" aria-labelledby="ChevronDisclosureIcon-_R_9krdalb9lbkm_"><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M9.707 6.293a1 1 0 00-1.497 1.32l.083.094L10.585 10l-2.292 2.293a1 1 0 00-.083 1.32l.083.094a1 1 0 001.32.083l.094-.083 3-3a1 1 0 00.083-1.32l-.083-.094-3-3z"></path></svg></span></span><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m2bqrv">Messaging Channels</span></div></div><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_CONTENT" data-paste-core-version="21.4.0" id="_R_1dalb9lbkm_" hidden="" style="display:none" class="css-1nm6rmy"><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/channels" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Overview</span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/whatsapp" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">WhatsApp<span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="ProductMessagingIcon-_R_aklbdalb9lbkm_"><title id="ProductMessagingIcon-_R_aklbdalb9lbkm_">Twilio WhatsApp Business Platform Documentation</title><path fill="currentColor" fill-rule="evenodd" d="M5.885 17A.867.867 0 015 16.123v-2.158H3.25c-.69 0-1.25-.557-1.25-1.245V5.246C2 4.558 2.56 4 3.25 4h13.5c.69 0 1.25.558 1.25 1.246v7.474c0 .688-.56 1.245-1.25 1.245H9.69l-3.235 2.82a.882.882 0 01-.57.215zM3.25 4.997a.25.25 0 00-.25.249v7.474c0 .137.112.249.25.249H5.5a.497.497 0 01.5.498v2.377l3.165-2.756a.501.501 0 01.335-.12h7.25a.25.25 0 00.25-.248V5.246a.25.25 0 00-.25-.25H3.25z"></path></svg></span></span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/rcs" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">RCS<span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="LogoTwilioIcon-_R_aktbdalb9lbkm_"><title id="LogoTwilioIcon-_R_aktbdalb9lbkm_">Twilio RCS Documentation</title><path fill="currentColor" fill-rule="evenodd" d="M10 0C4.477 0 0 4.477 0 10s4.477 10 10 10 10-4.477 10-10A10 10 0 0010 0zm0 17.333a7.333 7.333 0 110-14.666 7.333 7.333 0 010 14.666zm4.533-9.8a2.067 2.067 0 11-2.066-2.066 2.08 2.08 0 012.066 2.066zm0 4.934a2.067 2.067 0 11-2.066-2.067 2.08 2.08 0 012.066 2.067zm-4.933 0A2.067 2.067 0 117.533 10.4 2.08 2.08 0 019.6 12.467zm0-4.934a2.067 2.067 0 11-2.067-2.066A2.08 2.08 0 019.6 7.533z"></path></svg></span></span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/channels/facebook-messenger" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Facebook Messenger (Public Beta)</span></a></div></div><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE" data-paste-core-version="21.4.0" class="css-17onuso"><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING_WRAPPER" data-paste-core-version="21.4.0" class="css-1icrb9o"><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING" data-paste-core-version="21.4.0" type="button" aria-expanded="false" aria-controls="_R_1halb9lbkm_" class="css-1vx51jp"><span data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING_EXPAND_ICON" data-paste-core-version="21.4.0" class="css-f76d15"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pft8gl"><svg role="img" aria-hidden="true" width="100%" height="100%" viewBox="0 0 20 20" fill="none" aria-labelledby="ChevronDisclosureIcon-_R_9krhalb9lbkm_"><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M9.707 6.293a1 1 0 00-1.497 1.32l.083.094L10.585 10l-2.292 2.293a1 1 0 00-.083 1.32l.083.094a1 1 0 001.32.083l.094-.083 3-3a1 1 0 00.083-1.32l-.083-.094-3-3z"></path></svg></span></span><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m2bqrv">Other Messaging products</span></div></div><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_CONTENT" data-paste-core-version="21.4.0" id="_R_1halb9lbkm_" hidden="" style="display:none" class="css-1nm6rmy"><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/content" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Content Editor: message templates for any messaging channel<span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="ProductMessagingIcon-_R_akdbhalb9lbkm_"><title id="ProductMessagingIcon-_R_akdbhalb9lbkm_">Twilio Content Documentation</title><path fill="currentColor" fill-rule="evenodd" d="M5.885 17A.867.867 0 015 16.123v-2.158H3.25c-.69 0-1.25-.557-1.25-1.245V5.246C2 4.558 2.56 4 3.25 4h13.5c.69 0 1.25.558 1.25 1.246v7.474c0 .688-.56 1.245-1.25 1.245H9.69l-3.235 2.82a.882.882 0 01-.57.215zM3.25 4.997a.25.25 0 00-.25.249v7.474c0 .137.112.249.25.249H5.5a.497.497 0 01.5.498v2.377l3.165-2.756a.501.501 0 01.335-.12h7.25a.25.25 0 00.25-.248V5.246a.25.25 0 00-.25-.25H3.25z"></path></svg></span></span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/conversations-classic" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Conversations: two-way messaging<span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="LogoTwilioIcon-_R_aklbhalb9lbkm_"><title id="LogoTwilioIcon-_R_aklbhalb9lbkm_">Additional Twilio Documentation</title><path fill="currentColor" fill-rule="evenodd" d="M10 0C4.477 0 0 4.477 0 10s4.477 10 10 10 10-4.477 10-10A10 10 0 0010 0zm0 17.333a7.333 7.333 0 110-14.666 7.333 7.333 0 010 14.666zm4.533-9.8a2.067 2.067 0 11-2.066-2.066 2.08 2.08 0 012.066 2.066zm0 4.934a2.067 2.067 0 11-2.066-2.067 2.08 2.08 0 012.066 2.067zm-4.933 0A2.067 2.067 0 117.533 10.4 2.08 2.08 0 019.6 12.467zm0-4.934a2.067 2.067 0 11-2.067-2.066A2.08 2.08 0 019.6 7.533z"></path></svg></span></span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/verify" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Verify: user verification and one-time passwords<span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="ProductVerifyIcon-_R_aktbhalb9lbkm_"><title id="ProductVerifyIcon-_R_aktbhalb9lbkm_">Twilio Verify Documentation</title><path fill="currentColor" fill-rule="evenodd" d="M16.75 2.5c.69 0 1.25.553 1.25 1.234v.331c0 .393-.159.77-.44 1.047l-6.675 6.596c-.49.478-1.28.478-1.77 0L6.645 9.27a.491.491 0 010-.7.507.507 0 01.71 0l2.47 2.438a.241.241 0 00.35 0l6.68-6.591a.49.49 0 00.145-.35v-.332a.248.248 0 00-.25-.247H3.25c-.138 0-.25.111-.25.247v5.762a.49.49 0 00.145.35l6.68 6.592a.241.241 0 00.35 0l3.97-3.92a.507.507 0 01.71 0 .491.491 0 010 .701l-3.97 3.92A1.253 1.253 0 0110 17.5a1.253 1.253 0 01-.885-.36L2.44 10.543A1.472 1.472 0 012 9.496V3.734C2 3.053 2.56 2.5 3.25 2.5h13.5zm-.25 6.824c.828 0 1.5.663 1.5 1.48a1.49 1.49 0 01-1.5 1.482 1.49 1.49 0 01-1.5-1.481 1.49 1.49 0 011.5-1.481z"></path></svg></span></span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/bulk-messaging" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Bulk Messaging: send messages at scale</span></a></div></div><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE" data-paste-core-version="21.4.0" class="css-17onuso"><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING_WRAPPER" data-paste-core-version="21.4.0" class="css-1icrb9o"><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING" data-paste-core-version="21.4.0" type="button" aria-expanded="false" aria-controls="_R_1lalb9lbkm_" class="css-1vx51jp"><span data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_HEADING_EXPAND_ICON" data-paste-core-version="21.4.0" class="css-f76d15"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pft8gl"><svg role="img" aria-hidden="true" width="100%" height="100%" viewBox="0 0 20 20" fill="none" aria-labelledby="ChevronDisclosureIcon-_R_9krlalb9lbkm_"><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M9.707 6.293a1 1 0 00-1.497 1.32l.083.094L10.585 10l-2.292 2.293a1 1 0 00-.083 1.32l.083.094a1 1 0 001.32.083l.094-.083 3-3a1 1 0 00.083-1.32l-.083-.094-3-3z"></path></svg></span></span><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m2bqrv">Related docs</span></div></div><div data-paste-element="SIDEBAR_NAVIGATION_DISCLOSURE_CONTENT" data-paste-core-version="21.4.0" id="_R_1lalb9lbkm_" hidden="" style="display:none" class="css-1nm6rmy"><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/phone-numbers" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Phone Numbers<span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="ProductPhoneNumbersIcon-_R_5adblalb9lbkm_"><title id="ProductPhoneNumbersIcon-_R_5adblalb9lbkm_">Twilio Phone Numbers Documentation</title><path fill="currentColor" fill-rule="evenodd" d="M11.749 13.562c.273.04.463.299.424.579l-.4 2.923a.503.503 0 01-.493.436h-.07a.51.51 0 01-.424-.58l.399-2.917a.516.516 0 01.193-.342.489.489 0 01.37-.1zM13.159 2.5l.092.005c.275.04.467.301.429.585l-.539 3.964h2.36c.276 0 .499.23.499.513a.506.506 0 01-.499.512h-2.495l-.499 3.59h2.47c.276 0 .5.23.5.513a.506.506 0 01-.5.513H8.376l-.589 4.359a.503.503 0 01-.499.44h-.07a.51.51 0 01-.424-.579l.574-4.22H4.499A.506.506 0 014 12.182c0-.283.223-.513.499-.513h2.994l.499-3.59H4.998a.506.506 0 01-.499-.512c0-.284.223-.513.499-.513H8.14l.55-4.108a.506.506 0 01.568-.44c.276.039.468.3.43.584l-.55 3.964h2.994l.549-4.108a.506.506 0 01.569-.44zm-1.176 5.58H8.99l-.5 3.59h2.994l.5-3.59z"></path></svg></span></span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/usage" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">General Usage<span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="LogoTwilioIcon-_R_5alblalb9lbkm_"><title id="LogoTwilioIcon-_R_5alblalb9lbkm_">Twilio General Usage Documentation</title><path fill="currentColor" fill-rule="evenodd" d="M10 0C4.477 0 0 4.477 0 10s4.477 10 10 10 10-4.477 10-10A10 10 0 0010 0zm0 17.333a7.333 7.333 0 110-14.666 7.333 7.333 0 010 14.666zm4.533-9.8a2.067 2.067 0 11-2.066-2.066 2.08 2.08 0 012.066 2.066zm0 4.934a2.067 2.067 0 11-2.066-2.067 2.08 2.08 0 012.066 2.067zm-4.933 0A2.067 2.067 0 117.533 10.4 2.08 2.08 0 019.6 12.467zm0-4.934a2.067 2.067 0 11-2.067-2.066A2.08 2.08 0 019.6 7.533z"></path></svg></span></span></a><a data-paste-element="SIDEBAR_NAVIGATION_ITEM" data-paste-core-version="21.4.0" href="/docs/iam" class="css-lafmnu"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-qxhhlx">Identity and Access Management (IAM)<span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="LogoTwilioIcon-_R_5atblalb9lbkm_"><title id="LogoTwilioIcon-_R_5atblalb9lbkm_">Twilio Identity Access Management Documentation</title><path fill="currentColor" fill-rule="evenodd" d="M10 0C4.477 0 0 4.477 0 10s4.477 10 10 10 10-4.477 10-10A10 10 0 0010 0zm0 17.333a7.333 7.333 0 110-14.666 7.333 7.333 0 010 14.666zm4.533-9.8a2.067 2.067 0 11-2.066-2.066 2.08 2.08 0 012.066 2.066zm0 4.934a2.067 2.067 0 11-2.066-2.067 2.08 2.08 0 012.066 2.067zm-4.933 0A2.067 2.067 0 117.533 10.4 2.08 2.08 0 019.6 12.467zm0-4.934a2.067 2.067 0 11-2.067-2.066A2.08 2.08 0 019.6 7.533z"></path></svg></span></span></a></div></div></nav></div></aside></div><style data-emotion="css 1tfs3ue">.css-1tfs3ue{box-sizing:border-box;margin-left:0;position:relative;background-color:rgb(255, 255, 255);}@media screen and (min-width: 768px){.css-1tfs3ue{margin-left:15rem;}}</style><div data-paste-element="SIDEBAR_PUSH_CONTENT_WRAPPER" data-paste-core-version="21.4.0" class="css-1tfs3ue"><style data-emotion="css ywcuc">.css-ywcuc{box-sizing:border-box;width:100%;min-height:4.75rem;background-color:rgb(249, 249, 250);box-shadow:0 1px 0 0 #edeef2;padding-left:1.5rem;padding-right:1.5rem;position:-webkit-sticky;position:sticky;top:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-column-gap:1.5rem;column-gap:1.5rem;z-index:40;}</style><div data-paste-element="TOPBAR" data-paste-core-version="21.4.0" id="twilio-docs-topbar" class="css-ywcuc"><style data-emotion="css 1dkvjfb">.css-1dkvjfb{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;-webkit-column-gap:1rem;column-gap:1rem;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}@media screen and (min-width: 768px){.css-1dkvjfb{display:none;}}</style><div data-paste-element="TOPBAR_ACTIONS" data-paste-core-version="21.4.0" class="css-1dkvjfb"><style data-emotion="css 1nye0dd">.css-1nye0dd{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;min-width:0;}</style><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1nye0dd"><style data-emotion="css 16b8zu5">.css-16b8zu5{position:relative;-webkit-text-decoration:none;text-decoration:none;color:rgb(255, 255, 255);}.css-16b8zu5:hover{-webkit-text-decoration:underline;text-decoration:underline;}.css-16b8zu5:focus{outline:none;box-shadow:0 0 0 2px #ffffff,0 0 0 3px #006dfa,0 0 0 5px #cce4ff;border-radius:2px;}</style><a class="css-16b8zu5" href="/docs"><style data-emotion="css 8jah14">.css-8jah14{box-sizing:border-box;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}</style><span data-paste-element="MEDIA_OBJECT" data-paste-core-version="21.4.0" class="css-8jah14"><style data-emotion="css and4r">.css-and4r{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;margin-right:0.75rem;}</style><span data-paste-element="MEDIA_FIGURE" data-paste-core-version="21.4.0" class="css-and4r"><style data-emotion="css jsh2a3">.css-jsh2a3{box-sizing:border-box;line-height:0;display:block;color:rgb(242, 47, 70);width:2.5rem;height:2.5rem;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;}</style><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-jsh2a3"><svg role="img" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="LogoTwilioIcon-_R_16l33dlbkm_"><title id="LogoTwilioIcon-_R_16l33dlbkm_">Twilio Logo</title><path fill="currentColor" fill-rule="evenodd" d="M10 0C4.477 0 0 4.477 0 10s4.477 10 10 10 10-4.477 10-10A10 10 0 0010 0zm0 17.333a7.333 7.333 0 110-14.666 7.333 7.333 0 010 14.666zm4.533-9.8a2.067 2.067 0 11-2.066-2.066 2.08 2.08 0 012.066 2.066zm0 4.934a2.067 2.067 0 11-2.066-2.067 2.08 2.08 0 012.066 2.067zm-4.933 0A2.067 2.067 0 117.533 10.4 2.08 2.08 0 019.6 12.467zm0-4.934a2.067 2.067 0 11-2.067-2.066A2.08 2.08 0 019.6 7.533z"></path></svg></span></span><style data-emotion="css 1i39mnm">.css-1i39mnm{box-sizing:border-box;-webkit-flex:1;-ms-flex:1;flex:1;min-width:0;}</style><span data-paste-element="MEDIA_BODY" data-paste-core-version="21.4.0" class="css-1i39mnm"><style data-emotion="css 7aad9x">.css-7aad9x{margin:0;padding:0;color:rgb(18, 28, 45);font-size:1rem;line-height:1.25rem;}</style><span data-paste-element="TEXT" data-paste-core-version="21.0.1" class="css-7aad9x">Twilio Docs</span></span></span></a></div></div><style data-emotion="css 8o6zg9">.css-8o6zg9{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;-webkit-column-gap:1rem;column-gap:1rem;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}@media screen and (min-width: 768px){.css-8o6zg9{display:none;}}</style><div data-paste-element="TOPBAR_ACTIONS" data-paste-core-version="21.4.0" class="css-8o6zg9"><style data-emotion="css miaxae">.css-miaxae{box-sizing:border-box;min-width:2.25rem;}</style><search data-paste-element="BOX" data-paste-core-version="21.4.0" role="search" class="css-miaxae"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search (Command+K)" disabled=""><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20" aria-hidden="true"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></search><style data-emotion="css qw1tfm">.css-qw1tfm{box-sizing:border-box;width:auto;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;background:none;display:inline-block;border:none;outline:none;-webkit-transition:background-color 150ms ease-in,box-shadow 150ms ease-in,color 150ms ease-in;transition:background-color 150ms ease-in,box-shadow 150ms ease-in,color 150ms ease-in;font-family:inherit;font-weight:600;-webkit-text-decoration:none;text-decoration:none;position:relative;margin:0;border-radius:8px;cursor:pointer;color:rgb(18, 28, 45);background-color:rgb(255, 255, 255);box-shadow:0 0 0 1px #cacdd8;padding:0.25rem;}.css-qw1tfm:hover{background-color:rgb(255, 255, 255);box-shadow:0 0 0 1px #006dfa;color:rgb(2, 99, 224);}.css-qw1tfm:focus{-webkit-text-decoration:none;text-decoration:none;box-shadow:0 0 0 1px #cacdd8,0 0 0 3px #ffffff,0 0 0 4px #006dfa,0 0 0 6px #cce4ff;}.css-qw1tfm:active,.css-qw1tfm[data-active=true]{background-color:rgb(255, 255, 255);box-shadow:0 0 0 1px #06033a;color:rgb(6, 3, 58);}.css-qw1tfm:disabled,.css-qw1tfm:disabled:focus,.css-qw1tfm:disabled:hover,.css-qw1tfm[aria-disabled=true],.css-qw1tfm[aria-disabled=true]:focus,.css-qw1tfm[aria-disabled=true]:hover{background-color:rgb(255, 255, 255);box-shadow:0 0 0 1px #e1e3ea;color:rgb(139, 147, 170);}.css-qw1tfm[aria-pressed=true]{background-color:rgb(244, 249, 255);box-shadow:0 0 0 1px #006dfa;color:rgb(2, 99, 224);}.css-qw1tfm[aria-pressed=true]:hover{background-color:rgb(244, 249, 255);box-shadow:0 0 0 1px #030b5d;color:rgb(3, 11, 93);}.css-qw1tfm[aria-pressed=true]:active,.css-qw1tfm[aria-pressed=true][data-active=true]{background-color:rgb(244, 249, 255);box-shadow:0 0 0 1px #06033a;color:rgb(6, 3, 58);}.css-qw1tfm[aria-pressed=true]:focus{background-color:rgb(244, 249, 255);box-shadow:0 0 0 1px #cacdd8,0 0 0 3px #ffffff,0 0 0 4px #006dfa,0 0 0 6px #cce4ff;color:rgb(2, 99, 224);}.css-qw1tfm[aria-pressed=true]:disabled,.css-qw1tfm[aria-pressed=true][aria-disabled=true]{background-color:rgb(225, 227, 234);box-shadow:0 0 0 1px #e1e3ea;color:rgb(255, 255, 255);}</style><button data-paste-element="BUTTON" data-paste-core-version="21.4.0" aria-pressed="true" aria-label="Open main navigation" aria-busy="false" type="button" class="css-qw1tfm"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1lgr57j"><style data-emotion="css 15m1pao">.css-15m1pao{box-sizing:border-box;width:1.75rem;height:1.75rem;position:relative;}</style><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-15m1pao"><style data-emotion="css pwk8hy">.css-pwk8hy{position:absolute;width:1rem;height:3px;border-radius:8px;-webkit-transition:-webkit-transform 0.25s ease-in-out,opacity 0.25s ease-in-out;transition:transform 0.25s ease-in-out,opacity 0.25s ease-in-out;transform-origin:left center;background-color:rgb(96, 107, 133);top:7px;left:6px;-webkit-transform:translateX(6px) translateY(4px) rotate(45deg);-moz-transform:translateX(6px) translateY(4px) rotate(45deg);-ms-transform:translateX(6px) translateY(4px) rotate(45deg);transform:translateX(6px) translateY(4px) rotate(45deg);opacity:0;}</style><style data-emotion="css vf9hqx">.css-vf9hqx{box-sizing:border-box;color:rgb(96, 107, 133);-webkit-transform:translateX(6px) translateY(4px) rotate(45deg);-moz-transform:translateX(6px) translateY(4px) rotate(45deg);-ms-transform:translateX(6px) translateY(4px) rotate(45deg);transform:translateX(6px) translateY(4px) rotate(45deg);opacity:0;left:6px;top:7px;position:absolute;width:1rem;height:3px;border-radius:8px;-webkit-transition:-webkit-transform 0.25s ease-in-out,opacity 0.25s ease-in-out;transition:transform 0.25s ease-in-out,opacity 0.25s ease-in-out;transform-origin:left center;background-color:rgb(96, 107, 133);top:7px;left:6px;-webkit-transform:translateX(6px) translateY(4px) rotate(45deg);-moz-transform:translateX(6px) translateY(4px) rotate(45deg);-ms-transform:translateX(6px) translateY(4px) rotate(45deg);transform:translateX(6px) translateY(4px) rotate(45deg);opacity:0;}</style><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-vf9hqx"></span><style data-emotion="css 11r4jzp">.css-11r4jzp{position:absolute;width:1rem;height:3px;border-radius:8px;-webkit-transition:-webkit-transform 0.25s ease-in-out,opacity 0.25s ease-in-out;transition:transform 0.25s ease-in-out,opacity 0.25s ease-in-out;transform-origin:left center;background-color:rgb(96, 107, 133);top:13px;left:6px;-webkit-transform:translateX(2px) translateY(-5px) rotate(45deg);-moz-transform:translateX(2px) translateY(-5px) rotate(45deg);-ms-transform:translateX(2px) translateY(-5px) rotate(45deg);transform:translateX(2px) translateY(-5px) rotate(45deg);}</style><style data-emotion="css jcpj1k">.css-jcpj1k{box-sizing:border-box;color:rgb(96, 107, 133);-webkit-transform:translateX(2px) translateY(-5px) rotate(45deg);-moz-transform:translateX(2px) translateY(-5px) rotate(45deg);-ms-transform:translateX(2px) translateY(-5px) rotate(45deg);transform:translateX(2px) translateY(-5px) rotate(45deg);left:6px;top:13px;position:absolute;width:1rem;height:3px;border-radius:8px;-webkit-transition:-webkit-transform 0.25s ease-in-out,opacity 0.25s ease-in-out;transition:transform 0.25s ease-in-out,opacity 0.25s ease-in-out;transform-origin:left center;background-color:rgb(96, 107, 133);top:13px;left:6px;-webkit-transform:translateX(2px) translateY(-5px) rotate(45deg);-moz-transform:translateX(2px) translateY(-5px) rotate(45deg);-ms-transform:translateX(2px) translateY(-5px) rotate(45deg);transform:translateX(2px) translateY(-5px) rotate(45deg);}</style><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-jcpj1k"></span><style data-emotion="css 1j6de5r">.css-1j6de5r{position:absolute;width:1rem;height:3px;border-radius:8px;-webkit-transition:-webkit-transform 0.25s ease-in-out,opacity 0.25s ease-in-out;transition:transform 0.25s ease-in-out,opacity 0.25s ease-in-out;transform-origin:left center;background-color:rgb(96, 107, 133);top:13px;left:6px;-webkit-transform:translateX(2px) translateY(6px) rotate(-45deg);-moz-transform:translateX(2px) translateY(6px) rotate(-45deg);-ms-transform:translateX(2px) translateY(6px) rotate(-45deg);transform:translateX(2px) translateY(6px) rotate(-45deg);}</style><style data-emotion="css mgtez0">.css-mgtez0{box-sizing:border-box;color:rgb(96, 107, 133);-webkit-transform:translateX(2px) translateY(6px) rotate(-45deg);-moz-transform:translateX(2px) translateY(6px) rotate(-45deg);-ms-transform:translateX(2px) translateY(6px) rotate(-45deg);transform:translateX(2px) translateY(6px) rotate(-45deg);left:6px;top:13px;position:absolute;width:1rem;height:3px;border-radius:8px;-webkit-transition:-webkit-transform 0.25s ease-in-out,opacity 0.25s ease-in-out;transition:transform 0.25s ease-in-out,opacity 0.25s ease-in-out;transform-origin:left center;background-color:rgb(96, 107, 133);top:13px;left:6px;-webkit-transform:translateX(2px) translateY(6px) rotate(-45deg);-moz-transform:translateX(2px) translateY(6px) rotate(-45deg);-ms-transform:translateX(2px) translateY(6px) rotate(-45deg);transform:translateX(2px) translateY(6px) rotate(-45deg);}</style><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-mgtez0"></span><style data-emotion="css 1odqdkr">.css-1odqdkr{position:absolute;width:1rem;height:3px;border-radius:8px;-webkit-transition:-webkit-transform 0.25s ease-in-out,opacity 0.25s ease-in-out;transition:transform 0.25s ease-in-out,opacity 0.25s ease-in-out;transform-origin:left center;background-color:rgb(96, 107, 133);top:19px;left:6px;-webkit-transform:translateX(6px) translateY(-4px) rotate(-45deg);-moz-transform:translateX(6px) translateY(-4px) rotate(-45deg);-ms-transform:translateX(6px) translateY(-4px) rotate(-45deg);transform:translateX(6px) translateY(-4px) rotate(-45deg);opacity:0;}</style><style data-emotion="css nrk19k">.css-nrk19k{box-sizing:border-box;color:rgb(96, 107, 133);-webkit-transform:translateX(6px) translateY(-4px) rotate(-45deg);-moz-transform:translateX(6px) translateY(-4px) rotate(-45deg);-ms-transform:translateX(6px) translateY(-4px) rotate(-45deg);transform:translateX(6px) translateY(-4px) rotate(-45deg);opacity:0;left:6px;top:19px;position:absolute;width:1rem;height:3px;border-radius:8px;-webkit-transition:-webkit-transform 0.25s ease-in-out,opacity 0.25s ease-in-out;transition:transform 0.25s ease-in-out,opacity 0.25s ease-in-out;transform-origin:left center;background-color:rgb(96, 107, 133);top:19px;left:6px;-webkit-transform:translateX(6px) translateY(-4px) rotate(-45deg);-moz-transform:translateX(6px) translateY(-4px) rotate(-45deg);-ms-transform:translateX(6px) translateY(-4px) rotate(-45deg);transform:translateX(6px) translateY(-4px) rotate(-45deg);opacity:0;}</style><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-nrk19k"></span></div></span></button></div><style data-emotion="css hemv1x">.css-hemv1x{box-sizing:border-box;display:none;-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;-webkit-column-gap:1rem;column-gap:1rem;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}@media screen and (min-width: 768px){.css-hemv1x{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}}@media screen and (min-width: 1024px){.css-hemv1x{display:none;}}</style><div data-paste-element="TOPBAR_ACTIONS" data-paste-core-version="21.4.0" class="css-hemv1x"><style data-emotion="css 1grha7z">.css-1grha7z{box-sizing:border-box;min-width:150px;}</style><search data-paste-element="BOX" data-paste-core-version="21.4.0" role="search" class="css-1grha7z"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search (Command+K)" disabled=""><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20" aria-hidden="true"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></search></div><style data-emotion="css 1tyh49n">.css-1tyh49n{box-sizing:border-box;display:none;-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;-webkit-column-gap:1rem;column-gap:1rem;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}@media screen and (min-width: 768px){.css-1tyh49n{display:none;}}@media screen and (min-width: 1024px){.css-1tyh49n{display:none;}}@media screen and (min-width: 1495px){.css-1tyh49n{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}}</style><div data-paste-element="TOPBAR_ACTIONS" data-paste-core-version="21.4.0" class="css-1tyh49n"><style data-emotion="css dnwo4n">.css-dnwo4n{box-sizing:border-box;margin-bottom:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;overflow:hidden;}</style><nav data-paste-element="IN_PAGE_NAVIGATION" data-paste-core-version="21.4.0" aria-label="Twilio products" class="css-dnwo4n"><style data-emotion="css ts22oj">.css-ts22oj{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:nowrap;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;}</style><style data-emotion="css 1ywodxz">.css-1ywodxz{overflow-x:auto;overflow-y:hidden;overflow-scrolling:touch;box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:nowrap;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;}@supports (-moz-appearance:none){.css-1ywodxz{padding-bottom:0px;scrollbar-width:none;}}.css-1ywodxz::-webkit-scrollbar{height:0;}.css-1ywodxz::-webkit-scrollbar-track{background:transparent;}</style><div data-paste-element="IN_PAGE_NAVIGATION_SCROLL_WRAPPER" data-paste-core-version="21.4.0" class="css-1ywodxz"><style data-emotion="css v2gylz">.css-v2gylz{box-sizing:border-box;list-style-type:none;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start;padding:0;margin:0;-webkit-column-gap:1rem;column-gap:1rem;border-bottom-width:0;border-bottom-style:none;border-bottom-color:rgb(225, 227, 234);}</style><ul data-paste-element="IN_PAGE_NAVIGATION_ITEMS" data-paste-core-version="21.4.0" class="css-v2gylz"><style data-emotion="css m5glei">.css-m5glei{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;min-width:0;}</style><li data-paste-element="TOPBAR_NAV_ITEM" data-paste-core-version="21.4.0" class="css-m5glei"><style data-emotion="css 1jrsz7z">.css-1jrsz7z{box-sizing:border-box;color:rgb(96, 107, 133);min-width:3rem;text-align:center;font-size:0.875rem;font-weight:500;overflow:hidden;position:relative;text-overflow:ellipsis;-webkit-transition:border-color 100ms ease,color 100ms ease;transition:border-color 100ms ease,color 100ms ease;white-space:nowrap;-webkit-text-decoration:none;text-decoration:none;width:100%;display:block;border-bottom-color:transparent;border-bottom-style:solid;border-bottom-width:1px;padding-bottom:0.75rem;padding-left:0.5rem;padding-right:0.5rem;padding-top:0.75rem;border-top-left-radius:8px;border-top-right-radius:8px;color:rgb(18, 28, 45);}.css-1jrsz7z:hover{border-bottom-color:rgb(3, 11, 93);border-left-color:rgb(3, 11, 93);color:rgb(3, 11, 93);}.css-1jrsz7z:focus{border-top-left-radius:8px;border-top-right-radius:8px;box-shadow:inset 0 0 0 1px #006dfa,inset 0 0 0 3px #cce4ff;outline:none;}</style><a data-paste-element="TOPBAR_NAV_ITEM_ANCHOR" data-paste-core-version="21.4.0" href="/docs/messaging" class="css-1jrsz7z">Messaging</a></li><li data-paste-element="TOPBAR_NAV_ITEM" data-paste-core-version="21.4.0" class="css-m5glei"><a data-paste-element="TOPBAR_NAV_ITEM_ANCHOR" data-paste-core-version="21.4.0" href="/docs/voice" class="css-1jrsz7z">Voice</a></li><li data-paste-element="TOPBAR_NAV_ITEM" data-paste-core-version="21.4.0" class="css-m5glei"><a data-paste-element="TOPBAR_NAV_ITEM_ANCHOR" data-paste-core-version="21.4.0" href="/docs/video" class="css-1jrsz7z">Video</a></li><li data-paste-element="TOPBAR_NAV_ITEM" data-paste-core-version="21.4.0" class="css-m5glei"><a data-paste-element="TOPBAR_NAV_ITEM_ANCHOR" data-paste-core-version="21.4.0" href="/docs/conversations" class="css-1jrsz7z">Conversations</a></li><li data-paste-element="TOPBAR_NAV_ITEM" data-paste-core-version="21.4.0" class="css-m5glei"><a data-paste-element="TOPBAR_NAV_ITEM_ANCHOR" data-paste-core-version="21.4.0" href="/docs/flex" class="css-1jrsz7z">Flex</a></li><li data-paste-element="TOPBAR_NAV_ITEM" data-paste-core-version="21.4.0" class="css-m5glei"><a data-paste-element="TOPBAR_NAV_ITEM_ANCHOR" data-paste-core-version="21.4.0" href="/docs/studio" class="css-1jrsz7z">Studio</a></li><li data-paste-element="TOPBAR_NAV_ITEM" data-paste-core-version="21.4.0" class="css-m5glei"><a data-paste-element="TOPBAR_NAV_ITEM_ANCHOR" data-paste-core-version="21.4.0" href="/docs" class="css-1jrsz7z">All docs...</a></li></ul></div></nav></div><style data-emotion="css sljj2y">.css-sljj2y{box-sizing:border-box;display:none;-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;-webkit-column-gap:1rem;column-gap:1rem;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}@media screen and (min-width: 768px){.css-sljj2y{display:none;}}@media screen and (min-width: 1024px){.css-sljj2y{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}}</style><div data-paste-element="TOPBAR_ACTIONS" data-paste-core-version="21.4.0" class="css-sljj2y"><nav data-paste-element="IN_PAGE_NAVIGATION" data-paste-core-version="21.4.0" aria-label="Libraries and help" class="css-dnwo4n"><div data-paste-element="IN_PAGE_NAVIGATION_SCROLL_WRAPPER" data-paste-core-version="21.4.0" class="css-1ywodxz"><ul data-paste-element="IN_PAGE_NAVIGATION_ITEMS" data-paste-core-version="21.4.0" class="css-v2gylz"><li data-paste-element="TOPBAR_NAV_ITEM" data-paste-core-version="21.4.0" class="css-m5glei"><a data-paste-element="TOPBAR_NAV_ITEM_ANCHOR" data-paste-core-version="21.4.0" href="/docs/ai" class="css-1jrsz7z">Build with AI</a></li><li data-paste-element="TOPBAR_NAV_ITEM" data-paste-core-version="21.4.0" class="css-m5glei"><a data-paste-element="TOPBAR_NAV_ITEM_ANCHOR" data-paste-core-version="21.4.0" href="/docs/libraries" class="css-1jrsz7z">SDKs</a></li><li data-paste-element="TOPBAR_NAV_ITEM" data-paste-core-version="21.4.0" class="css-m5glei"><a data-paste-element="TOPBAR_NAV_ITEM_ANCHOR" data-paste-core-version="21.4.0" rel="noreferrer noopener" target="_blank" href="https://help.twilio.com" class="css-1jrsz7z"><style data-emotion="css sncxrr">.css-sncxrr{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}</style><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-sncxrr">Help Center<span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="LinkExternalIcon-_R_5atajb3dlbkm_"><title id="LinkExternalIcon-_R_5atajb3dlbkm_">Help Center</title><path fill="currentColor" fill-rule="evenodd" d="M8.4 4.5a.5.5 0 01.5.5v.1a.5.5 0 01-.5.5H5.6v8.8h8.8v-2.8a.5.5 0 01.41-.492l.09-.008h.1a.5.5 0 01.492.41l.008.09V15a.5.5 0 01-.41.492L15 15.5H5a.5.5 0 01-.492-.41L4.5 15V5a.5.5 0 01.41-.492L5 4.5h3.4zm6.6 0a.5.5 0 01.5.5v.1l-.001.01.001 3.29a.5.5 0 01-.5.5h-.1a.5.5 0 01-.5-.5l-.001-1.935-3.967 3.967a.611.611 0 01-.78.07l-.084-.07a.611.611 0 01-.07-.78l.07-.084L13.534 5.6H11.6a.5.5 0 01-.5-.5V5a.5.5 0 01.5-.5H15z"></path></svg></span></div></a></li></ul></div></nav><style data-emotion="css inbhe0">.css-inbhe0{box-sizing:border-box;margin-left:1rem;margin-right:1rem;min-width:12rem;}</style><search data-paste-element="BOX" data-paste-core-version="21.4.0" role="search" class="css-inbhe0"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search (Command+K)" disabled=""><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20" aria-hidden="true"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></search><nav data-paste-element="IN_PAGE_NAVIGATION" data-paste-core-version="21.4.0" aria-label="Log in or sign up" class="css-dnwo4n"><div data-paste-element="IN_PAGE_NAVIGATION_SCROLL_WRAPPER" data-paste-core-version="21.4.0" class="css-1ywodxz"><ul data-paste-element="IN_PAGE_NAVIGATION_ITEMS" data-paste-core-version="21.4.0" class="css-v2gylz"><li data-paste-element="TOPBAR_NAV_ITEM" data-paste-core-version="21.4.0" class="css-m5glei"><a data-paste-element="TOPBAR_NAV_ITEM_ANCHOR" data-paste-core-version="21.4.0" rel="noreferrer noopener" target="_blank" href="https://www.twilio.com/login" class="css-1jrsz7z">Log in</a></li><li data-paste-element="TOPBAR_NAV_ITEM" data-paste-core-version="21.4.0" class="css-m5glei"><a data-paste-element="TOPBAR_NAV_ITEM_ANCHOR" data-paste-core-version="21.4.0" rel="noreferrer noopener" target="_blank" href="https://www.twilio.com/try-twilio" class="css-1jrsz7z">Sign up</a></li></ul></div></nav></div></div><style data-emotion="css kp33bv">.css-kp33bv{box-sizing:border-box;padding-top:5.75rem;padding-left:1.5rem;padding-right:1.5rem;background-color:rgb(255, 255, 255);position:relative;margin-left:auto;margin-right:auto;max-width:77rem;box-sizing:content-box;}@media screen and (min-width: 768px){.css-kp33bv{padding-top:5.75rem;padding-left:1.5rem;padding-right:1.5rem;}}@media screen and (min-width: 1024px){.css-kp33bv{padding-top:5.75rem;padding-left:3.25rem;padding-right:3.25rem;}}@media screen and (min-width: 1495px){.css-kp33bv{padding-top:2.25rem;}}</style><div data-paste-element="BOX" data-paste-core-version="21.4.0" id="twilio-docs-content-area" class="css-kp33bv"><style data-emotion="css 146sg2s">.css-146sg2s{box-sizing:border-box;display:block;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}@media screen and (min-width: 768px){.css-146sg2s{display:block;}}@media screen and (min-width: 1024px){.css-146sg2s{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}}</style><main data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-146sg2s"><style data-emotion="css c9onia">.css-c9onia{box-sizing:border-box;display:none;-webkit-order:2;-ms-flex-order:2;order:2;margin-left:4.25rem;width:18.5rem;}@media screen and (min-width: 768px){.css-c9onia{display:none;}}@media screen and (min-width: 1024px){.css-c9onia{display:none;}}@media screen and (min-width: 1495px){.css-c9onia{display:block;}}</style><div data-paste-element="BOX" data-paste-core-version="21.4.0" id="twilio-docs-content-aside-area" class="css-c9onia"><style data-emotion="css 5v6lp">.css-5v6lp{box-sizing:border-box;position:-webkit-sticky;position:sticky;top:100px;}</style><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-5v6lp"><style data-emotion="css 1j4yy0t">.css-1j4yy0t{box-sizing:border-box;max-height:calc(100vh - 76px - 24px - 9rem);display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}</style><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1j4yy0t"><style data-emotion="css roynbj">.css-roynbj{box-sizing:border-box;}</style><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><style data-emotion="css 10rwbvz">.css-10rwbvz{margin:0;padding:0;color:rgb(18, 28, 45);font-size:0.875rem;line-height:1.25rem;margin-bottom:0.5rem;font-weight:600;letter-spacing:-.02em;display:block;word-break:break-word;}</style><span data-paste-element="HEADING" data-paste-core-version="21.0.1" class="css-10rwbvz">Page tools</span><style data-emotion="css l6fvbt">.css-l6fvbt{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;row-gap:0.25rem;margin-bottom:1.75rem;}</style><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-l6fvbt"><a data-paste-element="ANCHOR" data-paste-core-version="21.4.0" href="/docs/messaging/guides/track-outbound-message-status.md" target="_blank" rel="noreferrer" class="css-lpeit6"><style data-emotion="css 18mnlmt">.css-18mnlmt{box-sizing:border-box;width:auto;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;background:none;display:inline-block;border:none;outline:none;-webkit-transition:none;transition:none;font-family:inherit;font-weight:600;-webkit-text-decoration:none;text-decoration:none;position:relative;margin:0;border-radius:4px;cursor:pointer;color:rgb(2, 99, 224);text-align:left;padding-top:0;padding-right:0;padding-bottom:0;padding-left:0;border-width:0;font-size:inherit;}.css-18mnlmt:hover{-webkit-text-decoration:underline;text-decoration:underline;color:rgb(6, 3, 58);}.css-18mnlmt:focus{-webkit-text-decoration:none;text-decoration:none;box-shadow:0 0 0 2px #ffffff,0 0 0 3px #006dfa,0 0 0 5px #cce4ff;}.css-18mnlmt:active,.css-18mnlmt[data-active=true]{-webkit-text-decoration:underline;text-decoration:underline;box-shadow:none;color:rgb(6, 3, 58);}</style><button data-paste-element="BUTTON" data-paste-core-version="21.4.0" id="view-page-markdown" tabindex="-1" aria-busy="false" type="button" class="css-18mnlmt"><style data-emotion="css ahysrt">.css-ahysrt{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-text-decoration:inherit;text-decoration:inherit;opacity:1;-webkit-column-gap:0.25rem;column-gap:0.25rem;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:100%;}</style><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-ahysrt"><style data-emotion="css 1ehjyni">.css-1ehjyni{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-column-gap:0.75rem;column-gap:0.75rem;}</style><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1ehjyni"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="true" width="100%" height="100%" viewBox="0 0 20 20" fill="none" aria-labelledby="FileIcon-_R_6j9l3ad5dlbkm_"><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M16.5 17h-13a.5.5 0 01-.5-.5v-13a.5.5 0 01.5-.5h9.879a.5.5 0 01.353.146l3.122 3.122A.5.5 0 0117 6.62v9.88a.5.5 0 01-.5.5zM2 3.5A1.5 1.5 0 013.5 2h9.879a1.5 1.5 0 011.06.44l3.122 3.12A1.5 1.5 0 0118 6.622V16.5a1.5 1.5 0 01-1.5 1.5h-13A1.5 1.5 0 012 16.5v-13zM5.5 6a.5.5 0 000 1h6a.5.5 0 000-1h-6zM5 10a.5.5 0 01.5-.5h9a.5.5 0 010 1h-9A.5.5 0 015 10zm.5 3a.5.5 0 000 1h8a.5.5 0 000-1h-8z"></path></svg></span>View as Markdown</div></span></button></a><button data-paste-element="BUTTON" data-paste-core-version="21.4.0" id="copy-page-markdown" aria-busy="false" type="button" class="css-18mnlmt"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-ahysrt"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1ehjyni"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="CopyIcon-_R_1kql3ad5dlbkm_"><path fill="currentColor" fill-rule="evenodd" d="M13.469 2.5c.63 0 1.15.48 1.212 1.094l.007.125-.001 1.593h1.407c.73 0 1.331.558 1.4 1.271l.006.136v9.375c0 .776-.63 1.406-1.406 1.406H6.719c-.777 0-1.407-.63-1.407-1.406v-1.407H3.719c-.631 0-1.15-.48-1.213-1.094L2.5 13.47v-9.75c0-.631.48-1.15 1.094-1.213L3.72 2.5h9.75zm2.625 3.75H6.719a.469.469 0 00-.469.469v9.375c0 .259.21.468.469.468h9.375c.259 0 .468-.21.468-.468V6.719a.469.469 0 00-.468-.469zm-2.625-2.813h-9.75a.281.281 0 00-.274.217l-.007.065v9.75c0 .133.092.244.216.274l.065.007 1.593-.001v-7.03c0-.731.558-1.332 1.271-1.4l.136-.006 7.031-.001V3.719a.281.281 0 00-.217-.274l-.064-.007z"></path></svg></span>Copy as Markdown</div></span></button></div></span><span data-paste-element="HEADING" data-paste-core-version="21.0.1" class="css-10rwbvz">On this page</span><style data-emotion="css zs6taj">.css-zs6taj{box-sizing:border-box;overflow:auto;margin-bottom:1.75rem;-webkit-flex:auto;-ms-flex:auto;flex:auto;}</style><nav data-paste-element="BOX" data-paste-core-version="21.4.0" aria-label="document outline" class="css-zs6taj"><style data-emotion="css 15sthfg">.css-15sthfg{margin:0;padding:0;list-style:none;border-left-width:1px;border-left-style:solid;border-left-color:rgb(202, 205, 216);}</style><style data-emotion="css 10x1kz5">.css-10x1kz5{box-sizing:border-box;margin:0;padding:0;list-style:none;border-left-width:1px;border-left-style:solid;border-left-color:rgb(202, 205, 216);}</style><ul data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-10x1kz5"><style data-emotion="css 1qspti6">.css-1qspti6{display:block;border-radius:2px;margin-top:1rem;font-size:0.875rem;line-height:1.5rem;font-weight:600;}.css-1qspti6:focus-within{box-shadow:0 0 0 2px #ffffff,0 0 0 3px #006dfa,0 0 0 5px #cce4ff;}.css-1qspti6 a{color:rgb(2, 99, 224);border-color:rgb(0, 109, 250);}</style><style data-emotion="css t51icg">.css-t51icg{box-sizing:border-box;display:block;border-radius:2px;margin-top:1rem;font-size:0.875rem;line-height:1.5rem;font-weight:600;}.css-t51icg:focus-within{box-shadow:0 0 0 2px #ffffff,0 0 0 3px #006dfa,0 0 0 5px #cce4ff;}.css-t51icg a{color:rgb(2, 99, 224);border-color:rgb(0, 109, 250);}</style><li data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-t51icg"><style data-emotion="css yczov4">.css-yczov4{box-sizing:border-box;padding-left:2rem;color:rgb(96, 107, 133);-webkit-text-decoration:none;text-decoration:none;display:inline-block;width:100%;border-left-color:transparent;border-left-style:solid;border-left-width:2px;}.css-yczov4:focus{outline:none;border-left-color:rgb(3, 11, 93);color:rgb(3, 11, 93);}.css-yczov4:hover{border-left-color:rgb(3, 11, 93);color:rgb(3, 11, 93);}</style><a data-paste-element="BOX" data-paste-core-version="21.4.0" href="#before-you-begin" class="css-yczov4">Before you begin</a></li><style data-emotion="css 17bxuh1">.css-17bxuh1{display:block;border-radius:2px;margin-top:1rem;font-size:0.875rem;line-height:1.5rem;font-weight:400;}.css-17bxuh1:focus-within{box-shadow:0 0 0 2px #ffffff,0 0 0 3px #006dfa,0 0 0 5px #cce4ff;}</style><style data-emotion="css 9ap6il">.css-9ap6il{box-sizing:border-box;display:block;border-radius:2px;margin-top:1rem;font-size:0.875rem;line-height:1.5rem;font-weight:400;}.css-9ap6il:focus-within{box-shadow:0 0 0 2px #ffffff,0 0 0 3px #006dfa,0 0 0 5px #cce4ff;}</style><li data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-9ap6il"><a data-paste-element="BOX" data-paste-core-version="21.4.0" href="#how-to-track-outbound-message-status" class="css-yczov4">How to track outbound message status</a></li><li data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-9ap6il"><a data-paste-element="BOX" data-paste-core-version="21.4.0" href="#step-1-set-up-a-status-callback-endpoint" class="css-yczov4">Step 1. Set up a status callback endpoint</a></li><style data-emotion="css ex8722">.css-ex8722{display:block;border-radius:2px;margin-top:0.5rem;font-size:0.75rem;line-height:1.25rem;font-weight:400;}.css-ex8722:focus-within{box-shadow:0 0 0 2px #ffffff,0 0 0 3px #006dfa,0 0 0 5px #cce4ff;}</style><style data-emotion="css fvygwr">.css-fvygwr{box-sizing:border-box;display:block;border-radius:2px;margin-top:0.5rem;font-size:0.75rem;line-height:1.25rem;font-weight:400;}.css-fvygwr:focus-within{box-shadow:0 0 0 2px #ffffff,0 0 0 3px #006dfa,0 0 0 5px #cce4ff;}</style><li data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-fvygwr"><style data-emotion="css bc5avt">.css-bc5avt{box-sizing:border-box;padding-left:3.25rem;color:rgb(96, 107, 133);-webkit-text-decoration:none;text-decoration:none;display:inline-block;width:100%;border-left-color:transparent;border-left-style:solid;border-left-width:2px;}.css-bc5avt:focus{outline:none;border-left-color:rgb(3, 11, 93);color:rgb(3, 11, 93);}.css-bc5avt:hover{border-left-color:rgb(3, 11, 93);color:rgb(3, 11, 93);}</style><a data-paste-element="BOX" data-paste-core-version="21.4.0" href="#how-are-status-callback-requests-sent" class="css-bc5avt">How are status callback requests sent?</a></li><li data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-fvygwr"><a data-paste-element="BOX" data-paste-core-version="21.4.0" href="#implement-a-status-callback-handler-simplified-example" class="css-bc5avt">Implement a status callback handler (simplified example)</a></li><li data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-9ap6il"><a data-paste-element="BOX" data-paste-core-version="21.4.0" href="#step-2-send-a-message-with-status-callback-url" class="css-yczov4">Step 2. Send a message with status callback URL</a></li><li data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-fvygwr"><a data-paste-element="BOX" data-paste-core-version="21.4.0" href="#scenario-1-no-messaging-service" class="css-bc5avt">Scenario 1: No Messaging Service</a></li><li data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-fvygwr"><a data-paste-element="BOX" data-paste-core-version="21.4.0" href="#scenario-2-messaging-service-used" class="css-bc5avt">Scenario 2: Messaging Service used</a></li><li data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-9ap6il"><a data-paste-element="BOX" data-paste-core-version="21.4.0" href="#whats-next" class="css-yczov4">What&#x27;s next?</a></li></ul></nav><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="HEADING" data-paste-core-version="21.0.1" class="css-10rwbvz">Looking for more inspiration?</span>Visit the <a data-paste-element="ANCHOR" data-paste-core-version="21.4.0" href="https://www.twilio.com/en-us/developers" rel="noreferrer" target="_blank" class="css-lpeit6"><button data-paste-element="BUTTON" data-paste-core-version="21.4.0" tabindex="-1" aria-busy="false" type="button" class="css-18mnlmt"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-ahysrt"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1ehjyni">Developer Hub</div></span></button></a></div></div></div></div><style data-emotion="css 176wst1">.css-176wst1{position:relative;min-width:0;width:100%;word-wrap:break-word;max-width:57.5rem;}.css-176wst1 li>div[data-paste-element="BOX"]{margin-top:1.5rem;margin-bottom:1.5rem;}.css-176wst1 li>ul,.css-176wst1 li>ol,.css-176wst1 li>p{margin-top:0;margin-bottom:0;}</style><style data-emotion="css 1tinb4t">.css-1tinb4t{box-sizing:border-box;position:relative;min-width:0;width:100%;word-wrap:break-word;max-width:57.5rem;}.css-1tinb4t li>div[data-paste-element="BOX"]{margin-top:1.5rem;margin-bottom:1.5rem;}.css-1tinb4t li>ul,.css-1tinb4t li>ol,.css-1tinb4t li>p{margin-top:0;margin-bottom:0;}</style><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1tinb4t"><style data-emotion="css 1syyw0n">.css-1syyw0n{box-sizing:border-box;display:block;position:fixed;top:76px;margin-left:-1.5rem;margin-right:-1.5rem;padding-left:1.5rem;padding-top:1.5rem;padding-bottom:1.5rem;background-color:rgb(255, 255, 255);width:-webkit-fill-available;width:-moz-available;width:fill-available;z-index:20;}@media screen and (min-width: 768px){.css-1syyw0n{display:block;}}@media screen and (min-width: 1024px){.css-1syyw0n{display:block;}}@media screen and (min-width: 1495px){.css-1syyw0n{display:none;}}</style><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1syyw0n"><style data-emotion="css n140ep">.css-n140ep{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-column-gap:0.75rem;column-gap:0.75rem;}</style><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-n140ep"><nav data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><style data-emotion="css 1x54ie9">.css-1x54ie9{box-sizing:border-box;width:auto;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;background:none;display:inline-block;border:none;outline:none;-webkit-transition:background-color 100ms ease-in,box-shadow 100ms ease-in,color 100ms ease-in;transition:background-color 100ms ease-in,box-shadow 100ms ease-in,color 100ms ease-in;font-family:inherit;font-weight:600;-webkit-text-decoration:none;text-decoration:none;position:relative;margin:0;border-radius:8px;cursor:pointer;color:rgb(18, 28, 45);background-color:rgb(255, 255, 255);box-shadow:0 0 0 1px #cacdd8;padding-top:0.5rem;padding-bottom:0.5rem;padding-left:0.75rem;padding-right:0.75rem;font-size:0.875rem;line-height:1.25rem;}.css-1x54ie9:hover{-webkit-text-decoration:none;text-decoration:none;color:rgb(2, 99, 224);background-color:rgb(255, 255, 255);box-shadow:0 0 0 1px #006dfa;}.css-1x54ie9:focus{-webkit-text-decoration:none;text-decoration:none;box-shadow:0 0 0 1px #cacdd8,0 0 0 3px #ffffff,0 0 0 4px #006dfa,0 0 0 6px #cce4ff;}.css-1x54ie9:active,.css-1x54ie9[data-active=true]{-webkit-text-decoration:none;text-decoration:none;box-shadow:0 0 0 1px #001489;color:rgb(0, 20, 137);background-color:rgb(244, 249, 255);}</style><button data-paste-element="MENU_BUTTON" data-paste-core-version="21.4.0" aria-expanded="false" aria-controls="_R_1kql5dlbkm_" aria-haspopup="menu" aria-busy="false" type="button" class="css-1x54ie9"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1lgr57j">On this page<span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="ChevronDownIcon-_R_kplkql5dlbkm_"><path fill="currentColor" fill-rule="evenodd" d="M6.293 8.293a1 1 0 011.32-.083l.094.083L10 10.585l2.293-2.292a1 1 0 011.32-.083l.094.083a1 1 0 01.083 1.32l-.083.094-3 3a1 1 0 01-1.32.083l-.094-.083-3-3a1 1 0 010-1.414z"></path></svg></span></span></button><style data-emotion="css 31h1qt">.css-31h1qt{box-sizing:border-box;background-color:rgb(255, 255, 255);border-style:solid;border-width:1px;border-color:rgb(225, 227, 234);border-radius:8px;box-shadow:0 4px 16px 0 rgba(18, 28, 45, 0.2);max-width:18.5rem;min-width:12rem;z-index:20;padding-top:0.5rem;padding-bottom:0.5rem;overflow-y:scroll;max-height:18.5rem;}.css-31h1qt:focus{outline:none;}</style><div data-paste-element="BOX" data-paste-core-version="21.4.0" id="_R_1kql5dlbkm_" hidden="" style="display:none;position:fixed;left:100%;top:100%" role="menu" tabindex="-1" data-dialog="true" aria-orientation="vertical" aria-label="document outline" class="css-31h1qt"><style data-emotion="css d2yklo">.css-d2yklo{box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;background:none;border:none;display:block;text-align:left;font-family:inherit;font-size:0.875rem;font-weight:400;line-height:1.25rem;outline:none;padding-top:0.5rem;padding-bottom:0.5rem;border-radius:8px;margin-top:0.125rem;margin-bottom:0.125rem;margin-left:0.25rem;margin-right:0.25rem;cursor:pointer;padding-left:1.5rem;padding-right:1.5rem;width:-webkit-fill-available;width:-moz-available;width:fill-available;color:rgb(18, 28, 45);-webkit-text-decoration:none;text-decoration:none;color:rgb(2, 99, 224);background-color:rgb(244, 249, 255);border-color:rgb(0, 109, 250);}.css-d2yklo:hover{color:rgb(2, 99, 224);background-color:rgb(244, 249, 255);}.css-d2yklo:focus{color:rgb(2, 99, 224);background-color:rgb(244, 249, 255);}.css-d2yklo:checked,.css-d2yklo[aria-checked=true]{background-color:rgb(244, 249, 255);color:rgb(18, 28, 45);}.css-d2yklo:checked:hover,.css-d2yklo[aria-checked=true]:hover{background-color:rgb(249, 249, 250);color:rgb(2, 99, 224);}.css-d2yklo:checked:hover [data-paste-element='ICON'],.css-d2yklo[aria-checked=true]:hover [data-paste-element='ICON']{color:rgb(96, 107, 133);}.css-d2yklo:disabled,.css-d2yklo:disabled:focus,.css-d2yklo:disabled:hover,.css-d2yklo[aria-disabled=true],.css-d2yklo[aria-disabled=true]:focus,.css-d2yklo[aria-disabled=true]:hover{color:rgb(139, 147, 170);cursor:not-allowed;background-color:rgb(255, 255, 255);border-color:transparent;}</style><a data-paste-element="MOBILE_TOC_MENU_LINK_ACTIVE" data-paste-core-version="21.4.0" href="#before-you-begin" id="_R_1kql5dlbkm_-1" role="menuitem" class="css-d2yklo"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj">Before you begin</div></a><style data-emotion="css 19nhmb5">.css-19nhmb5{box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;background:none;border:none;display:block;text-align:left;font-family:inherit;font-size:0.875rem;font-weight:400;line-height:1.25rem;outline:none;padding-top:0.5rem;padding-bottom:0.5rem;border-radius:8px;margin-top:0.125rem;margin-bottom:0.125rem;margin-left:0.25rem;margin-right:0.25rem;cursor:pointer;padding-left:1.5rem;padding-right:1.5rem;width:-webkit-fill-available;width:-moz-available;width:fill-available;color:rgb(18, 28, 45);-webkit-text-decoration:none;text-decoration:none;}.css-19nhmb5:hover{color:rgb(2, 99, 224);background-color:rgb(244, 249, 255);}.css-19nhmb5:focus{color:rgb(2, 99, 224);background-color:rgb(244, 249, 255);}.css-19nhmb5:checked,.css-19nhmb5[aria-checked=true]{background-color:rgb(244, 249, 255);color:rgb(18, 28, 45);}.css-19nhmb5:checked:hover,.css-19nhmb5[aria-checked=true]:hover{background-color:rgb(249, 249, 250);color:rgb(2, 99, 224);}.css-19nhmb5:checked:hover [data-paste-element='ICON'],.css-19nhmb5[aria-checked=true]:hover [data-paste-element='ICON']{color:rgb(96, 107, 133);}.css-19nhmb5:disabled,.css-19nhmb5:disabled:focus,.css-19nhmb5:disabled:hover,.css-19nhmb5[aria-disabled=true],.css-19nhmb5[aria-disabled=true]:focus,.css-19nhmb5[aria-disabled=true]:hover{color:rgb(139, 147, 170);cursor:not-allowed;background-color:rgb(255, 255, 255);border-color:transparent;}</style><a data-paste-element="MOBILE_TOC_MENU_LINK" data-paste-core-version="21.4.0" href="#how-to-track-outbound-message-status" id="_R_1kql5dlbkm_-2" role="menuitem" class="css-19nhmb5"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj">How to track outbound message status</div></a><a data-paste-element="MOBILE_TOC_MENU_LINK" data-paste-core-version="21.4.0" href="#step-1-set-up-a-status-callback-endpoint" id="_R_1kql5dlbkm_-3" role="menuitem" class="css-19nhmb5"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj">Step 1. Set up a status callback endpoint</div></a><a data-paste-element="MOBILE_TOC_MENU_LINK" data-paste-core-version="21.4.0" href="#how-are-status-callback-requests-sent" id="_R_1kql5dlbkm_-4" role="menuitem" class="css-19nhmb5"><style data-emotion="css kyczyy">.css-kyczyy{box-sizing:border-box;padding-left:1.25rem;}</style><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-kyczyy">How are status callback requests sent?</div></a><a data-paste-element="MOBILE_TOC_MENU_LINK" data-paste-core-version="21.4.0" href="#implement-a-status-callback-handler-simplified-example" id="_R_1kql5dlbkm_-5" role="menuitem" class="css-19nhmb5"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-kyczyy">Implement a status callback handler (simplified example)</div></a><a data-paste-element="MOBILE_TOC_MENU_LINK" data-paste-core-version="21.4.0" href="#step-2-send-a-message-with-status-callback-url" id="_R_1kql5dlbkm_-6" role="menuitem" class="css-19nhmb5"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj">Step 2. Send a message with status callback URL</div></a><a data-paste-element="MOBILE_TOC_MENU_LINK" data-paste-core-version="21.4.0" href="#scenario-1-no-messaging-service" id="_R_1kql5dlbkm_-7" role="menuitem" class="css-19nhmb5"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-kyczyy">Scenario 1: No Messaging Service</div></a><a data-paste-element="MOBILE_TOC_MENU_LINK" data-paste-core-version="21.4.0" href="#scenario-2-messaging-service-used" id="_R_1kql5dlbkm_-8" role="menuitem" class="css-19nhmb5"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-kyczyy">Scenario 2: Messaging Service used</div></a><a data-paste-element="MOBILE_TOC_MENU_LINK" data-paste-core-version="21.4.0" href="#whats-next" id="_R_1kql5dlbkm_-9" role="menuitem" class="css-19nhmb5"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj">What&#x27;s next?</div></a></div></nav><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><button data-paste-element="MENU_BUTTON" data-paste-core-version="21.4.0" aria-expanded="false" aria-controls="_R_2kql5dlbkm_" aria-haspopup="menu" aria-busy="false" type="button" class="css-1x54ie9"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1lgr57j">Page Tools<span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="ChevronDownIcon-_R_kpmkql5dlbkm_"><path fill="currentColor" fill-rule="evenodd" d="M6.293 8.293a1 1 0 011.32-.083l.094.083L10 10.585l2.293-2.292a1 1 0 011.32-.083l.094.083a1 1 0 01.083 1.32l-.083.094-3 3a1 1 0 01-1.32.083l-.094-.083-3-3a1 1 0 010-1.414z"></path></svg></span></span></button><style data-emotion="css f9w5qh">.css-f9w5qh{box-sizing:border-box;background-color:rgb(255, 255, 255);border-radius:8px;box-shadow:0 -1px 0 0 #f4f4f6,0 3px 4px 0 rgba(15, 22, 33, 0.1);max-width:18.5rem;min-width:12rem;z-index:20;padding-top:0.5rem;padding-bottom:0.5rem;}.css-f9w5qh:focus{outline:none;}</style><div data-paste-element="MENU" data-paste-core-version="21.4.0" id="_R_2kql5dlbkm_" hidden="" role="menu" tabindex="-1" data-dialog="true" aria-orientation="vertical" aria-label="Page tools" style="display:none;position:fixed;left:100%;top:100%" class="css-f9w5qh"><style data-emotion="css 1qq1ij5">.css-1qq1ij5{box-sizing:border-box;max-height:31.5rem;overflow-y:auto;}</style><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1qq1ij5"><style data-emotion="css 16t6e8u">.css-16t6e8u{box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;background:none;border:none;display:block;text-align:left;font-family:inherit;font-size:0.875rem;font-weight:400;line-height:1.25rem;outline:none;padding-top:0.5rem;padding-bottom:0.5rem;border-radius:8px;margin-top:0.125rem;margin-bottom:0.125rem;margin-left:0.25rem;margin-right:0.25rem;cursor:pointer;padding-left:1.5rem;padding-right:1.5rem;width:-webkit-fill-available;width:-moz-available;width:fill-available;color:rgb(18, 28, 45);}.css-16t6e8u:hover{color:rgb(2, 99, 224);background-color:rgb(244, 249, 255);}.css-16t6e8u:focus{color:rgb(2, 99, 224);background-color:rgb(244, 249, 255);}.css-16t6e8u:checked,.css-16t6e8u[aria-checked=true]{background-color:rgb(244, 249, 255);color:rgb(18, 28, 45);}.css-16t6e8u:checked:hover,.css-16t6e8u[aria-checked=true]:hover{background-color:rgb(249, 249, 250);color:rgb(2, 99, 224);}.css-16t6e8u:checked:hover [data-paste-element='ICON'],.css-16t6e8u[aria-checked=true]:hover [data-paste-element='ICON']{color:rgb(96, 107, 133);}.css-16t6e8u:disabled,.css-16t6e8u:disabled:focus,.css-16t6e8u:disabled:hover,.css-16t6e8u[aria-disabled=true],.css-16t6e8u[aria-disabled=true]:focus,.css-16t6e8u[aria-disabled=true]:hover{color:rgb(139, 147, 170);cursor:not-allowed;background-color:rgb(255, 255, 255);border-color:transparent;}</style><a data-paste-element="MENU_ITEM" data-paste-core-version="21.4.0" href="/docs/messaging/guides/track-outbound-message-status.md" id="_R_2kql5dlbkm_-1" role="menuitem" target="_blank" rel="noreferrer" class="css-16t6e8u"><style data-emotion="css 1410pyv">.css-1410pyv{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-column-gap:0.5rem;column-gap:0.5rem;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}</style><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1410pyv"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="true" width="100%" height="100%" viewBox="0 0 20 20" fill="none" aria-labelledby="FileIcon-_R_6jamkql5dlbkm_"><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M16.5 17h-13a.5.5 0 01-.5-.5v-13a.5.5 0 01.5-.5h9.879a.5.5 0 01.353.146l3.122 3.122A.5.5 0 0117 6.62v9.88a.5.5 0 01-.5.5zM2 3.5A1.5 1.5 0 013.5 2h9.879a1.5 1.5 0 011.06.44l3.122 3.12A1.5 1.5 0 0118 6.622V16.5a1.5 1.5 0 01-1.5 1.5h-13A1.5 1.5 0 012 16.5v-13zM5.5 6a.5.5 0 000 1h6a.5.5 0 000-1h-6zM5 10a.5.5 0 01.5-.5h9a.5.5 0 010 1h-9A.5.5 0 015 10zm.5 3a.5.5 0 000 1h8a.5.5 0 000-1h-8z"></path></svg></span>View as Markdown</span></a><button data-paste-element="MENU_ITEM" data-paste-core-version="21.4.0" id="_R_2kql5dlbkm_-2" role="menuitem" class="css-16t6e8u"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1410pyv"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="CopyIcon-_R_6lamkql5dlbkm_"><path fill="currentColor" fill-rule="evenodd" d="M13.469 2.5c.63 0 1.15.48 1.212 1.094l.007.125-.001 1.593h1.407c.73 0 1.331.558 1.4 1.271l.006.136v9.375c0 .776-.63 1.406-1.406 1.406H6.719c-.777 0-1.407-.63-1.407-1.406v-1.407H3.719c-.631 0-1.15-.48-1.213-1.094L2.5 13.47v-9.75c0-.631.48-1.15 1.094-1.213L3.72 2.5h9.75zm2.625 3.75H6.719a.469.469 0 00-.469.469v9.375c0 .259.21.468.469.468h9.375c.259 0 .468-.21.468-.468V6.719a.469.469 0 00-.468-.469zm-2.625-2.813h-9.75a.281.281 0 00-.274.217l-.007.065v9.75c0 .133.092.244.216.274l.065.007 1.593-.001v-7.03c0-.731.558-1.332 1.271-1.4l.136-.006 7.031-.001V3.719a.281.281 0 00-.217-.274l-.064-.007z"></path></svg></span>Copy as Markdown</span></button></div></div></div></div></div><article data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><style data-emotion="css m8ey6p">.css-m8ey6p{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:baseline;-webkit-box-align:baseline;-ms-flex-align:baseline;align-items:baseline;-webkit-column-gap:0.75rem;column-gap:0.75rem;}</style><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-m8ey6p"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><style data-emotion="css 1rsbb0f">.css-1rsbb0f{margin:0;padding:0;color:rgb(18, 28, 45);font-size:2rem;line-height:2.5rem;margin-bottom:1.5rem;font-weight:600;letter-spacing:-.02em;display:block;word-break:break-word;}</style><h1 data-paste-element="HEADING" data-paste-core-version="21.0.1" class="css-1rsbb0f">Track the Message Status of Outbound Messages</h1></div><style data-emotion="css 7lkj4y">section:focus-within .css-7lkj4y,section:hover .css-7lkj4y{opacity:1;}</style><style data-emotion="css 136zex2">.css-136zex2{box-sizing:border-box;opacity:1;-webkit-transition:opacity 0.25s ease-in-out;transition:opacity 0.25s ease-in-out;}section:focus-within .css-136zex2,section:hover .css-136zex2{opacity:1;}</style><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-136zex2"><style data-emotion="css knmi57">.css-knmi57{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-column-gap:0.75rem;column-gap:0.75rem;}</style><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-knmi57"><button data-paste-element="BUTTON" data-paste-core-version="21.4.0" aria-pressed="false" aria-busy="false" type="button" class="css-qw1tfm"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1lgr57j"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" width="100%" height="100%" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-labelledby="ThumbsUpIcon-_R_4plailal5dlbkm_"><title id="ThumbsUpIcon-_R_4plailal5dlbkm_">Positive Feedback</title><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M6.5 7.45c.194-.216.406-.451.628-.707.799-.922 1.608-1.972 1.898-2.838.314-.938 1.139-1.487 1.966-1.395a1.57 1.57 0 011.085.621c.277.363.423.85.423 1.43 0 .327-.081.645-.174.924-.062.186-.139.383-.208.56l-.088.226c-.092.245-.15.432-.166.582-.014.134.01.19.033.222l.001.001a.415.415 0 00.1.058 1.9 1.9 0 00.371.11c.32.068.725.106 1.152.124.632.026 1.237.01 1.634-.002.147-.004.265-.008.345-.008.25 0 .731.008 1.158.218.224.11.443.28.603.537.159.256.239.567.239.924 0 1.218-.524 3.647-1.553 5.695-.31.616-.693.885-1.18 1.193-.574.364-1.145.575-1.767.575h-3c-1.116 0-2.204-.418-3.002-.883a6.393 6.393 0 01-.498-.322v.372a.5.5 0 01-.5.5H3a.5.5 0 01-.5-.5V7a.5.5 0 01.5-.5h3a.5.5 0 01.5.5v.45zm3.474-3.228c.186-.554.611-.751.909-.718a.57.57 0 01.399.233c.114.15.218.409.218.824 0 .17-.044.37-.123.61a9.287 9.287 0 01-.177.474c-.034.087-.07.177-.105.273-.095.252-.194.542-.225.827-.032.297.005.636.23.935.135.178.322.291.491.367.175.078.372.134.571.176.4.084.869.125 1.317.144.676.028 1.382.008 1.767-.003.118-.003.206-.006.254-.006.25 0 .519.018.717.115.088.044.15.098.194.168.044.07.089.19.089.396 0 1.04-.476 3.316-1.447 5.246-.184.367-.375.516-.82.797-.468.296-.855.42-1.233.42h-3c-.884 0-1.796-.338-2.498-.747a4.464 4.464 0 01-.813-.591 1.36 1.36 0 01-.184-.207l-.005-.008V8.968a7.331 7.331 0 01.329-.39l.308-.343c.223-.246.483-.534.746-.837.788-.909 1.73-2.097 2.091-3.176zM5.5 7.5h-2v7.667h2V7.5z"></path></svg></span></span></button><button data-paste-element="BUTTON" data-paste-core-version="21.4.0" aria-pressed="false" aria-busy="false" type="button" class="css-qw1tfm"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1lgr57j"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" width="100%" height="100%" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-labelledby="ThumbsDownIcon-_R_4qlailal5dlbkm_"><title id="ThumbsDownIcon-_R_4qlailal5dlbkm_">Negative Feedback</title><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M13.5 12.55c-.194.215-.406.451-.628.707-.799.921-1.608 1.972-1.898 2.838-.314.938-1.139 1.487-1.966 1.395a1.57 1.57 0 01-1.085-.621c-.277-.363-.423-.85-.423-1.43 0-.327.081-.645.174-.924.062-.186.139-.383.208-.56l.088-.226c.092-.245.15-.432.166-.582.014-.134-.01-.19-.033-.222l-.001-.001a.416.416 0 00-.1-.058 1.902 1.902 0 00-.371-.11 7.35 7.35 0 00-1.152-.124 22.958 22.958 0 00-1.634.002 14.2 14.2 0 01-.345.008c-.25 0-.731-.008-1.158-.218a1.451 1.451 0 01-.603-.537c-.159-.257-.239-.567-.239-.924 0-1.218.524-3.648 1.553-5.696.31-.616.693-.884 1.18-1.192C5.807 3.71 6.378 3.5 7 3.5h3c1.116 0 2.204.417 3.002.883.178.104.345.212.498.321v-.37a.5.5 0 01.5-.5h3a.5.5 0 01.5.5V13a.5.5 0 01-.5.5h-3a.5.5 0 01-.5-.5v-.45zm-3.474 3.227c-.186.554-.611.752-.909.72a.571.571 0 01-.399-.234c-.114-.15-.218-.409-.218-.824a2 2 0 01.123-.61c.054-.16.113-.312.177-.475.034-.086.07-.176.105-.272.095-.252.194-.542.225-.828.032-.296-.005-.635-.23-.934a1.23 1.23 0 00-.491-.367 2.874 2.874 0 00-.571-.176 8.31 8.31 0 00-1.317-.144c-.676-.029-1.381-.008-1.767.003-.118.003-.206.006-.254.006-.25 0-.519-.018-.717-.115a.452.452 0 01-.194-.168c-.044-.07-.089-.19-.089-.396 0-1.04.476-3.316 1.447-5.247.184-.366.375-.515.82-.796.468-.296.855-.42 1.233-.42h3c.884 0 1.796.337 2.498.747.349.203.628.414.813.59.093.09.152.16.184.208l.005.007v4.98a7.245 7.245 0 01-.329.39 54.1 54.1 0 01-.308.342c-.223.247-.483.534-.746.838-.788.909-1.73 2.096-2.091 3.175zM14.5 12.5h2V4.833h-2V12.5z"></path></svg></span></span></button></div></div></div><style data-emotion="css 1y5brhz">.css-1y5brhz{box-sizing:border-box;margin:0;margin-bottom:2.25rem;margin-top:2.25rem;border-width:0;border-color:rgb(225, 227, 234);border-style:solid;border-bottom-width:1px;width:auto;}</style><hr data-paste-element="SEPARATOR" data-paste-core-version="21.4.0" aria-orientation="horizontal" class="css-1y5brhz"/><style data-emotion="css t3ja6c">.css-t3ja6c{margin:0;padding:0;color:rgb(18, 28, 45);font-size:0.875rem;line-height:1.5rem;font-weight:400;margin-bottom:1.5rem;word-break:break-word;}</style><p data-paste-element="PARAGRAPH" data-paste-core-version="21.0.1" class="css-t3ja6c">This guide shows you how to use Twilio&#x27;s status callbacks to track changes of the message status of outbound messages you send with <a data-paste-element="ANCHOR" data-paste-core-version="21.4.0" href="/docs/messaging" title="Programmable Messaging" class="css-lpeit6">Programmable Messaging</a>.</p>
<p data-paste-element="PARAGRAPH" data-paste-core-version="21.0.1" class="css-t3ja6c">Message status changes occur throughout the lifecycle of a message from creation, through sending, to delivery, and even read receipt for supporting messaging channels.</p>
<style data-emotion="css irnnze">.css-irnnze{margin-top:1.5rem;margin-bottom:1.5rem;}.css-irnnze h1,.css-irnnze h2,.css-irnnze h3,.css-irnnze h4,.css-irnnze h5,.css-irnnze h6,.css-irnnze p,.css-irnnze li,.css-irnnze ul,.css-irnnze ol,.css-irnnze [data-paste-element=DISCLOSURE] span[data-paste-element=HEADING]{color:inherit;}[data-paste-element=HORIZONTAL_TAB_PANEL] .css-irnnze{margin-top:0;}</style><style data-emotion="css rj5eb">.css-rj5eb{box-sizing:border-box;margin-top:1.5rem;margin-bottom:1.5rem;}.css-rj5eb h1,.css-rj5eb h2,.css-rj5eb h3,.css-rj5eb h4,.css-rj5eb h5,.css-rj5eb h6,.css-rj5eb p,.css-rj5eb li,.css-rj5eb ul,.css-rj5eb ol,.css-rj5eb [data-paste-element=DISCLOSURE] span[data-paste-element=HEADING]{color:inherit;}[data-paste-element=HORIZONTAL_TAB_PANEL] .css-rj5eb{margin-top:0;}</style><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-rj5eb"><style data-emotion="css 1v816ix">.css-1v816ix{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;padding:1.5rem;border-left-style:solid;border-left-width:2px;-webkit-align-items:start;-webkit-box-align:start;-ms-flex-align:start;align-items:start;-webkit-column-gap:1rem;column-gap:1rem;background-color:rgb(249, 249, 250);color:rgb(3, 11, 93);border-color:rgb(102, 179, 255);}</style><div data-paste-element="CALLOUT" data-paste-core-version="21.4.0" class="css-1v816ix"><div data-paste-element="CALLOUT_ICON" data-paste-core-version="21.4.0" class="css-roynbj"><style data-emotion="css 1cst9vu">.css-1cst9vu{box-sizing:border-box;line-height:0;display:block;color:rgb(3, 11, 93);width:1.25rem;height:1.25rem;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;}</style><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-1cst9vu"><svg role="img" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="NeutralIcon-_R_6d8b5al5dlbkm_"><path fill="currentColor" fill-rule="evenodd" d="M10 2a8 8 0 110 16 8 8 0 010-16zm0 7c-.26.01-.528.08-.707.24-.178.158-.292.355-.292.575v3.37c0 .21.11.428.292.577.173.14.457.247.707.237.26-.008.528-.078.707-.237.178-.16.292-.355.292-.577v-3.37a.766.766 0 00-.292-.575A1.14 1.14 0 0010 9zm0-3l-.266.036c-.17.047-.318.131-.441.253l-.156.198A.958.958 0 009 6.98v.04a.728.728 0 00.086.378c.04.121.108.227.206.315.09.094.197.163.321.202.12.06.248.09.386.084l.266-.035c.17-.047.318-.131.441-.253l.156-.198A.958.958 0 0011 7.02v-.04a.728.728 0 00-.086-.378.721.721 0 00-.206-.315.757.757 0 00-.321-.202.767.767 0 00-.386-.084z"></path></svg></span><style data-emotion="css 1cbdvo6">.css-1cbdvo6{box-sizing:border-box;border:none;clip:rect(0 0 0 0);height:1px;margin:-0.125rem;overflow:hidden;padding:0;position:absolute;text-transform:none;white-space:nowrap;width:1px;}</style><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1cbdvo6">(information)</span></div><style data-emotion="css fkfdww">.css-fkfdww{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;row-gap:0.5rem;-webkit-flex:1;-ms-flex:1;flex:1;}</style><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-fkfdww"><style data-emotion="css kevsq9">.css-kevsq9{margin:0;padding:0;color:currentColor;font-size:0.875rem;line-height:1.25rem;font-weight:600;}</style><h2 data-paste-element="CALLOUT_HEADING" data-paste-core-version="21.0.1" class="css-kevsq9">Info</h2><style data-emotion="css 8tmauh">.css-8tmauh{display:grid;grid-gap:0;word-break:break-word;}.css-8tmauh >:last-child{margin-bottom:0;}.css-8tmauh ul,.css-8tmauh ol{margin-top:-0.5rem;}</style><style data-emotion="css 1ircowi">.css-1ircowi{box-sizing:border-box;display:grid;grid-gap:0;word-break:break-word;}.css-1ircowi >:last-child{margin-bottom:0;}.css-1ircowi ul,.css-1ircowi ol{margin-top:-0.5rem;}</style><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1ircowi"><p data-paste-element="PARAGRAPH" data-paste-core-version="21.0.1" class="css-t3ja6c">The guide focuses on outbound messages created using the <a data-paste-element="ANCHOR" data-paste-core-version="21.4.0" href="/docs/messaging/api/message-resource" title="Message Resource" class="css-lpeit6">Message Resource</a> of the <a data-paste-element="ANCHOR" data-paste-core-version="21.4.0" href="/docs/messaging/api" title="Programmable Messaging REST API" class="css-lpeit6">Programmable Messaging REST API</a> and covers the necessary considerations when using a <a data-paste-element="ANCHOR" data-paste-core-version="21.4.0" href="/docs/messaging/services" title="Messaging Service" class="css-lpeit6">Messaging Service</a>.</p></div></div></div></div>
<hr data-paste-element="SEPARATOR" data-paste-core-version="21.4.0" aria-orientation="horizontal" class="css-1y5brhz"/>
<section id="before-you-begin-section-indexable"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-m8ey6p"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><style data-emotion="css gt12nx">.css-gt12nx{box-sizing:border-box;-webkit-align-items:start;-webkit-box-align:start;-ms-flex-align:start;align-items:start;margin-bottom:1.25rem;}</style><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-gt12nx"><style data-emotion="css 132spa5">.css-132spa5{margin:0;padding:0;color:rgb(18, 28, 45);font-size:1.5rem;line-height:2rem;margin-bottom:0;font-weight:600;letter-spacing:-.02em;display:inline;word-break:break-word;}</style><h2 data-paste-element="HEADING" data-paste-core-version="21.0.1" id="before-you-begin" class="css-132spa5">Before you begin</h2><style data-emotion="css f02h4i">.css-f02h4i{box-sizing:border-box;margin-bottom:0;-webkit-text-decoration:none;text-decoration:none;margin-left:0.5rem;color:rgb(96, 107, 133);border-radius:2px;outline:none;display:inline-block;vertical-align:text-bottom;}.css-f02h4i:hover{color:rgb(3, 11, 93);}.css-f02h4i:focus{box-shadow:0 0 0 2px #ffffff,0 0 0 3px #006dfa,0 0 0 5px #cce4ff;color:rgb(3, 11, 93);}</style><a data-paste-element="BOX" data-paste-core-version="21.4.0" href="#before-you-begin" class="css-f02h4i"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" fill="none" viewBox="0 0 20 20" aria-labelledby="LinkIcon-_R_2l64j5al5dlbkm_"><title id="LinkIcon-_R_2l64j5al5dlbkm_">before-you-begin page anchor</title><path fill="currentColor" d="M13.074 5.674a2.3 2.3 0 013.252 3.252l-2.97 2.97A2.3 2.3 0 019.869 8.92a.5.5 0 10-.808-.588 3.3 3.3 0 005.004 4.272l2.97-2.97a3.3 3.3 0 00-4.667-4.666l-.467.466a.5.5 0 10.707.707l.467-.466z"></path><path fill="currentColor" d="M9.18 7.163a2.3 2.3 0 011.952 3.65.5.5 0 10.809.59A3.3 3.3 0 006.936 7.13l-2.97 2.97a3.3 3.3 0 004.667 4.667l.58-.58a.5.5 0 10-.707-.707l-.58.58a2.3 2.3 0 11-3.252-3.252l2.97-2.97c.409-.41.958-.652 1.536-.675z"></path></svg></span></a></div></div><style data-emotion="css 1kam78h">.css-1kam78h{box-sizing:border-box;opacity:0;-webkit-transition:opacity 0.25s ease-in-out;transition:opacity 0.25s ease-in-out;}section:focus-within .css-1kam78h,section:hover .css-1kam78h{opacity:1;}</style><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1kam78h"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-knmi57"><button data-paste-element="BUTTON" data-paste-core-version="21.4.0" aria-pressed="false" aria-busy="false" type="button" class="css-qw1tfm"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1lgr57j"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" width="100%" height="100%" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-labelledby="ThumbsUpIcon-_R_j6la4j5al5dlbkm_"><title id="ThumbsUpIcon-_R_j6la4j5al5dlbkm_">Positive Feedback</title><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M6.5 7.45c.194-.216.406-.451.628-.707.799-.922 1.608-1.972 1.898-2.838.314-.938 1.139-1.487 1.966-1.395a1.57 1.57 0 011.085.621c.277.363.423.85.423 1.43 0 .327-.081.645-.174.924-.062.186-.139.383-.208.56l-.088.226c-.092.245-.15.432-.166.582-.014.134.01.19.033.222l.001.001a.415.415 0 00.1.058 1.9 1.9 0 00.371.11c.32.068.725.106 1.152.124.632.026 1.237.01 1.634-.002.147-.004.265-.008.345-.008.25 0 .731.008 1.158.218.224.11.443.28.603.537.159.256.239.567.239.924 0 1.218-.524 3.647-1.553 5.695-.31.616-.693.885-1.18 1.193-.574.364-1.145.575-1.767.575h-3c-1.116 0-2.204-.418-3.002-.883a6.393 6.393 0 01-.498-.322v.372a.5.5 0 01-.5.5H3a.5.5 0 01-.5-.5V7a.5.5 0 01.5-.5h3a.5.5 0 01.5.5v.45zm3.474-3.228c.186-.554.611-.751.909-.718a.57.57 0 01.399.233c.114.15.218.409.218.824 0 .17-.044.37-.123.61a9.287 9.287 0 01-.177.474c-.034.087-.07.177-.105.273-.095.252-.194.542-.225.827-.032.297.005.636.23.935.135.178.322.291.491.367.175.078.372.134.571.176.4.084.869.125 1.317.144.676.028 1.382.008 1.767-.003.118-.003.206-.006.254-.006.25 0 .519.018.717.115.088.044.15.098.194.168.044.07.089.19.089.396 0 1.04-.476 3.316-1.447 5.246-.184.367-.375.516-.82.797-.468.296-.855.42-1.233.42h-3c-.884 0-1.796-.338-2.498-.747a4.464 4.464 0 01-.813-.591 1.36 1.36 0 01-.184-.207l-.005-.008V8.968a7.331 7.331 0 01.329-.39l.308-.343c.223-.246.483-.534.746-.837.788-.909 1.73-2.097 2.091-3.176zM5.5 7.5h-2v7.667h2V7.5z"></path></svg></span></span></button><button data-paste-element="BUTTON" data-paste-core-version="21.4.0" aria-pressed="false" aria-busy="false" type="button" class="css-qw1tfm"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1lgr57j"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" width="100%" height="100%" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-labelledby="ThumbsDownIcon-_R_jala4j5al5dlbkm_"><title id="ThumbsDownIcon-_R_jala4j5al5dlbkm_">Negative Feedback</title><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M13.5 12.55c-.194.215-.406.451-.628.707-.799.921-1.608 1.972-1.898 2.838-.314.938-1.139 1.487-1.966 1.395a1.57 1.57 0 01-1.085-.621c-.277-.363-.423-.85-.423-1.43 0-.327.081-.645.174-.924.062-.186.139-.383.208-.56l.088-.226c.092-.245.15-.432.166-.582.014-.134-.01-.19-.033-.222l-.001-.001a.416.416 0 00-.1-.058 1.902 1.902 0 00-.371-.11 7.35 7.35 0 00-1.152-.124 22.958 22.958 0 00-1.634.002 14.2 14.2 0 01-.345.008c-.25 0-.731-.008-1.158-.218a1.451 1.451 0 01-.603-.537c-.159-.257-.239-.567-.239-.924 0-1.218.524-3.648 1.553-5.696.31-.616.693-.884 1.18-1.192C5.807 3.71 6.378 3.5 7 3.5h3c1.116 0 2.204.417 3.002.883.178.104.345.212.498.321v-.37a.5.5 0 01.5-.5h3a.5.5 0 01.5.5V13a.5.5 0 01-.5.5h-3a.5.5 0 01-.5-.5v-.45zm-3.474 3.227c-.186.554-.611.752-.909.72a.571.571 0 01-.399-.234c-.114-.15-.218-.409-.218-.824a2 2 0 01.123-.61c.054-.16.113-.312.177-.475.034-.086.07-.176.105-.272.095-.252.194-.542.225-.828.032-.296-.005-.635-.23-.934a1.23 1.23 0 00-.491-.367 2.874 2.874 0 00-.571-.176 8.31 8.31 0 00-1.317-.144c-.676-.029-1.381-.008-1.767.003-.118.003-.206.006-.254.006-.25 0-.519-.018-.717-.115a.452.452 0 01-.194-.168c-.044-.07-.089-.19-.089-.396 0-1.04.476-3.316 1.447-5.247.184-.366.375-.515.82-.796.468-.296.855-.42 1.233-.42h3c.884 0 1.796.337 2.498.747.349.203.628.414.813.59.093.09.152.16.184.208l.005.007v4.98a7.245 7.245 0 01-.329.39 54.1 54.1 0 01-.308.342c-.223.247-.483.534-.746.838-.788.909-1.73 2.096-2.091 3.175zM14.5 12.5h2V4.833h-2V12.5z"></path></svg></span></span></button></div></div></div><p data-paste-element="PARAGRAPH" data-paste-core-version="21.0.1" class="css-t3ja6c">Before you dive into this guide, make sure you&#x27;re familiar with the following concepts:</p><style data-emotion="css q56x2v">.css-q56x2v{margin:0;padding:0;color:rgb(18, 28, 45);font-size:0.875rem;line-height:1.5rem;margin-bottom:1.5rem;font-weight:400;margin-left:1.5rem;}</style><ul data-paste-element="UNORDERED_LIST" data-paste-core-version="21.0.1" class="css-q56x2v">
<style data-emotion="css 1pp5a8v">.css-1pp5a8v{margin:0;padding:0;color:rgb(18, 28, 45);font-size:0.875rem;line-height:1.5rem;font-weight:400;margin-bottom:0.5rem;margin-top:0.5rem;}</style><li data-paste-element="LIST_ITEM" data-paste-core-version="21.0.1" class="css-1pp5a8v">Know how to send a message by using the Programmable Messaging API. You can follow a <a data-paste-element="ANCHOR" data-paste-core-version="21.4.0" href="/docs/messaging/quickstart" title="Messaging Quickstart" class="css-lpeit6">Messaging Quickstart</a> in the programming language of your choice.</li>
<li data-paste-element="LIST_ITEM" data-paste-core-version="21.0.1" class="css-1pp5a8v">Review our guide <a data-paste-element="ANCHOR" data-paste-core-version="21.4.0" href="/docs/messaging/guides/outbound-message-status-in-status-callbacks" title="Outbound Message Status in Status Callbacks" class="css-lpeit6">Outbound Message Status in Status Callbacks</a> to understand for which status changes Twilio sends a status callback request.</li>
<li data-paste-element="LIST_ITEM" data-paste-core-version="21.0.1" class="css-1pp5a8v">If you send high volumes of messages or schedule messages, learn what a <a data-paste-element="ANCHOR" data-paste-core-version="21.4.0" href="/docs/messaging/services" title="Messaging Service" class="css-lpeit6">Messaging Service</a> is and <a data-paste-element="ANCHOR" data-paste-core-version="21.4.0" href="/docs/messaging/api/message-resource#send-a-message-with-a-messaging-service" title="how to use one to send a message" class="css-lpeit6">how to use one to send a message</a>.</li>
<li data-paste-element="LIST_ITEM" data-paste-core-version="21.0.1" class="css-1pp5a8v">The status callbacks covered in this guide are Twilio webhooks. Check out our guide to <a data-paste-element="ANCHOR" data-paste-core-version="21.4.0" href="/docs/usage/webhooks/getting-started-twilio-webhooks" title="Getting Started with Twilio Webhooks" class="css-lpeit6">Getting Started with Twilio Webhooks</a>. Find other webhook pages, such as a <a data-paste-element="ANCHOR" data-paste-core-version="21.4.0" href="/docs/usage/webhooks/webhooks-security" title="security guide" class="css-lpeit6">security guide</a> and <a data-paste-element="ANCHOR" data-paste-core-version="21.4.0" href="/docs/usage/webhooks/webhooks-faq" title="FAQ" class="css-lpeit6">FAQ</a> in the <a data-paste-element="ANCHOR" data-paste-core-version="21.4.0" href="/docs/usage/webhooks" title="Webhooks" class="css-lpeit6">Webhooks</a> section of the docs.</li>
</ul><p data-paste-element="PARAGRAPH" data-paste-core-version="21.0.1" class="css-t3ja6c"><strong>Note</strong>: The code samples in this guide require some local setup steps. Select your language of choice below to learn how to set up your development environment:</p><ul data-paste-element="UNORDERED_LIST" data-paste-core-version="21.0.1" class="css-q56x2v">
<li data-paste-element="LIST_ITEM" data-paste-core-version="21.0.1" class="css-1pp5a8v"><a data-paste-element="ANCHOR" data-paste-core-version="21.4.0" href="/docs/usage/tutorials/how-to-set-up-your-node-js-and-express-development-environment" title="Node.js" class="css-lpeit6">Node.js</a></li>
<li data-paste-element="LIST_ITEM" data-paste-core-version="21.0.1" class="css-1pp5a8v"><a data-paste-element="ANCHOR" data-paste-core-version="21.4.0" href="/docs/usage/tutorials/how-to-set-up-your-python-and-flask-development-environment" title="Python" class="css-lpeit6">Python</a></li>
<li data-paste-element="LIST_ITEM" data-paste-core-version="21.0.1" class="css-1pp5a8v"><a data-paste-element="ANCHOR" data-paste-core-version="21.4.0" href="/docs/usage/tutorials/how-to-set-up-your-csharp-and-asp-net-mvc-development-environment" title="C# and ASP.NET MVC" class="css-lpeit6">C# and ASP.NET MVC</a></li>
<li data-paste-element="LIST_ITEM" data-paste-core-version="21.0.1" class="css-1pp5a8v"><a data-paste-element="ANCHOR" data-paste-core-version="21.4.0" href="/docs/usage/tutorials/how-to-set-up-your-php-development-environment" title="PHP" class="css-lpeit6">PHP</a></li>
<li data-paste-element="LIST_ITEM" data-paste-core-version="21.0.1" class="css-1pp5a8v"><a data-paste-element="ANCHOR" data-paste-core-version="21.4.0" href="/docs/usage/tutorials/how-to-set-up-your-java-development-environment" title="Java" class="css-lpeit6">Java</a></li>
<li data-paste-element="LIST_ITEM" data-paste-core-version="21.0.1" class="css-1pp5a8v"><a data-paste-element="ANCHOR" data-paste-core-version="21.4.0" href="/docs/usage/tutorials/how-to-set-up-your-ruby-and-sinatra-development-environment" title="Ruby" class="css-lpeit6">Ruby</a></li>
<li data-paste-element="LIST_ITEM" data-paste-core-version="21.0.1" class="css-1pp5a8v"><a data-paste-element="ANCHOR" data-paste-core-version="21.4.0" href="/docs/usage/tutorials/how-to-set-up-your-go-and-gin-development-environment" title="Go" class="css-lpeit6">Go</a></li>
</ul><hr data-paste-element="SEPARATOR" data-paste-core-version="21.4.0" aria-orientation="horizontal" class="css-1y5brhz"/></section>
<section id="how-to-track-outbound-message-status-section-indexable"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-m8ey6p"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-gt12nx"><h2 data-paste-element="HEADING" data-paste-core-version="21.0.1" id="how-to-track-outbound-message-status" class="css-132spa5">How to track outbound message status</h2><a data-paste-element="BOX" data-paste-core-version="21.4.0" href="#how-to-track-outbound-message-status" class="css-f02h4i"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" fill="none" viewBox="0 0 20 20" aria-labelledby="LinkIcon-_R_2l64n5al5dlbkm_"><title id="LinkIcon-_R_2l64n5al5dlbkm_">how-to-track-outbound-message-status page anchor</title><path fill="currentColor" d="M13.074 5.674a2.3 2.3 0 013.252 3.252l-2.97 2.97A2.3 2.3 0 019.869 8.92a.5.5 0 10-.808-.588 3.3 3.3 0 005.004 4.272l2.97-2.97a3.3 3.3 0 00-4.667-4.666l-.467.466a.5.5 0 10.707.707l.467-.466z"></path><path fill="currentColor" d="M9.18 7.163a2.3 2.3 0 011.952 3.65.5.5 0 10.809.59A3.3 3.3 0 006.936 7.13l-2.97 2.97a3.3 3.3 0 004.667 4.667l.58-.58a.5.5 0 10-.707-.707l-.58.58a2.3 2.3 0 11-3.252-3.252l2.97-2.97c.409-.41.958-.652 1.536-.675z"></path></svg></span></a></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1kam78h"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-knmi57"><button data-paste-element="BUTTON" data-paste-core-version="21.4.0" aria-pressed="false" aria-busy="false" type="button" class="css-qw1tfm"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1lgr57j"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" width="100%" height="100%" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-labelledby="ThumbsUpIcon-_R_j6la4n5al5dlbkm_"><title id="ThumbsUpIcon-_R_j6la4n5al5dlbkm_">Positive Feedback</title><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M6.5 7.45c.194-.216.406-.451.628-.707.799-.922 1.608-1.972 1.898-2.838.314-.938 1.139-1.487 1.966-1.395a1.57 1.57 0 011.085.621c.277.363.423.85.423 1.43 0 .327-.081.645-.174.924-.062.186-.139.383-.208.56l-.088.226c-.092.245-.15.432-.166.582-.014.134.01.19.033.222l.001.001a.415.415 0 00.1.058 1.9 1.9 0 00.371.11c.32.068.725.106 1.152.124.632.026 1.237.01 1.634-.002.147-.004.265-.008.345-.008.25 0 .731.008 1.158.218.224.11.443.28.603.537.159.256.239.567.239.924 0 1.218-.524 3.647-1.553 5.695-.31.616-.693.885-1.18 1.193-.574.364-1.145.575-1.767.575h-3c-1.116 0-2.204-.418-3.002-.883a6.393 6.393 0 01-.498-.322v.372a.5.5 0 01-.5.5H3a.5.5 0 01-.5-.5V7a.5.5 0 01.5-.5h3a.5.5 0 01.5.5v.45zm3.474-3.228c.186-.554.611-.751.909-.718a.57.57 0 01.399.233c.114.15.218.409.218.824 0 .17-.044.37-.123.61a9.287 9.287 0 01-.177.474c-.034.087-.07.177-.105.273-.095.252-.194.542-.225.827-.032.297.005.636.23.935.135.178.322.291.491.367.175.078.372.134.571.176.4.084.869.125 1.317.144.676.028 1.382.008 1.767-.003.118-.003.206-.006.254-.006.25 0 .519.018.717.115.088.044.15.098.194.168.044.07.089.19.089.396 0 1.04-.476 3.316-1.447 5.246-.184.367-.375.516-.82.797-.468.296-.855.42-1.233.42h-3c-.884 0-1.796-.338-2.498-.747a4.464 4.464 0 01-.813-.591 1.36 1.36 0 01-.184-.207l-.005-.008V8.968a7.331 7.331 0 01.329-.39l.308-.343c.223-.246.483-.534.746-.837.788-.909 1.73-2.097 2.091-3.176zM5.5 7.5h-2v7.667h2V7.5z"></path></svg></span></span></button><button data-paste-element="BUTTON" data-paste-core-version="21.4.0" aria-pressed="false" aria-busy="false" type="button" class="css-qw1tfm"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1lgr57j"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" width="100%" height="100%" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-labelledby="ThumbsDownIcon-_R_jala4n5al5dlbkm_"><title id="ThumbsDownIcon-_R_jala4n5al5dlbkm_">Negative Feedback</title><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M13.5 12.55c-.194.215-.406.451-.628.707-.799.921-1.608 1.972-1.898 2.838-.314.938-1.139 1.487-1.966 1.395a1.57 1.57 0 01-1.085-.621c-.277-.363-.423-.85-.423-1.43 0-.327.081-.645.174-.924.062-.186.139-.383.208-.56l.088-.226c.092-.245.15-.432.166-.582.014-.134-.01-.19-.033-.222l-.001-.001a.416.416 0 00-.1-.058 1.902 1.902 0 00-.371-.11 7.35 7.35 0 00-1.152-.124 22.958 22.958 0 00-1.634.002 14.2 14.2 0 01-.345.008c-.25 0-.731-.008-1.158-.218a1.451 1.451 0 01-.603-.537c-.159-.257-.239-.567-.239-.924 0-1.218.524-3.648 1.553-5.696.31-.616.693-.884 1.18-1.192C5.807 3.71 6.378 3.5 7 3.5h3c1.116 0 2.204.417 3.002.883.178.104.345.212.498.321v-.37a.5.5 0 01.5-.5h3a.5.5 0 01.5.5V13a.5.5 0 01-.5.5h-3a.5.5 0 01-.5-.5v-.45zm-3.474 3.227c-.186.554-.611.752-.909.72a.571.571 0 01-.399-.234c-.114-.15-.218-.409-.218-.824a2 2 0 01.123-.61c.054-.16.113-.312.177-.475.034-.086.07-.176.105-.272.095-.252.194-.542.225-.828.032-.296-.005-.635-.23-.934a1.23 1.23 0 00-.491-.367 2.874 2.874 0 00-.571-.176 8.31 8.31 0 00-1.317-.144c-.676-.029-1.381-.008-1.767.003-.118.003-.206.006-.254.006-.25 0-.519-.018-.717-.115a.452.452 0 01-.194-.168c-.044-.07-.089-.19-.089-.396 0-1.04.476-3.316 1.447-5.247.184-.366.375-.515.82-.796.468-.296.855-.42 1.233-.42h3c.884 0 1.796.337 2.498.747.349.203.628.414.813.59.093.09.152.16.184.208l.005.007v4.98a7.245 7.245 0 01-.329.39 54.1 54.1 0 01-.308.342c-.223.247-.483.534-.746.838-.788.909-1.73 2.096-2.091 3.175zM14.5 12.5h2V4.833h-2V12.5z"></path></svg></span></span></button></div></div></div><p data-paste-element="PARAGRAPH" data-paste-core-version="21.0.1" class="css-t3ja6c">Tracking the message status of an outbound message is a two-step process:</p><style data-emotion="css w38rkw">.css-w38rkw{margin:0;padding:0;color:rgb(18, 28, 45);font-size:0.875rem;line-height:1.5rem;margin-bottom:1.5rem;font-weight:400;margin-left:1.5rem;list-style-type:decimal;}</style><ol data-paste-element="ORDERED_LIST" data-paste-core-version="21.0.1" type="1" class="css-w38rkw">
<li data-paste-element="LIST_ITEM" data-paste-core-version="21.0.1" class="css-1pp5a8v">
<p data-paste-element="PARAGRAPH" data-paste-core-version="21.0.1" class="css-t3ja6c"><a data-paste-element="ANCHOR" data-paste-core-version="21.4.0" href="/docs/messaging/guides/track-outbound-message-status#step-1-set-up-a-status-callback-endpoint" title="Set up a status callback endpoint" class="css-lpeit6">Set up a status callback endpoint</a></p>
<ul data-paste-element="UNORDERED_LIST" data-paste-core-version="21.0.1" class="css-q56x2v">
<li data-paste-element="LIST_ITEM" data-paste-core-version="21.0.1" class="css-1pp5a8v"><a data-paste-element="ANCHOR" data-paste-core-version="21.4.0" href="/docs/messaging/guides/track-outbound-message-status#how-are-status-callback-requests-sent" title="How are status callback requests sent?" class="css-lpeit6">How are status callback requests sent?</a></li>
<li data-paste-element="LIST_ITEM" data-paste-core-version="21.0.1" class="css-1pp5a8v"><a data-paste-element="ANCHOR" data-paste-core-version="21.4.0" href="/docs/messaging/guides/track-outbound-message-status#implement-a-status-callback-handler-simplified-example" title="Implement a status callback handler (simplified example)" class="css-lpeit6">Implement a status callback handler (simplified example)</a></li>
</ul>
</li>
<li data-paste-element="LIST_ITEM" data-paste-core-version="21.0.1" class="css-1pp5a8v">
<p data-paste-element="PARAGRAPH" data-paste-core-version="21.0.1" class="css-t3ja6c"><a data-paste-element="ANCHOR" data-paste-core-version="21.4.0" href="/docs/messaging/guides/track-outbound-message-status#step-2-send-a-message-with-status-callback-url" title="Send a message with status callback URL" class="css-lpeit6">Send a message with status callback URL</a></p>
<ul data-paste-element="UNORDERED_LIST" data-paste-core-version="21.0.1" class="css-q56x2v">
<li data-paste-element="LIST_ITEM" data-paste-core-version="21.0.1" class="css-1pp5a8v"><a data-paste-element="ANCHOR" data-paste-core-version="21.4.0" href="/docs/messaging/guides/track-outbound-message-status#scenario-1-no-messaging-service" title="Scenario 1: No Messaging Service" class="css-lpeit6">Scenario 1: No Messaging Service</a></li>
<li data-paste-element="LIST_ITEM" data-paste-core-version="21.0.1" class="css-1pp5a8v"><a data-paste-element="ANCHOR" data-paste-core-version="21.4.0" href="/docs/messaging/guides/track-outbound-message-status#scenario-2-messaging-service-used" title="Scenario 2: Messaging Service used" class="css-lpeit6">Scenario 2: Messaging Service used</a></li>
</ul>
</li>
</ol><hr data-paste-element="SEPARATOR" data-paste-core-version="21.4.0" aria-orientation="horizontal" class="css-1y5brhz"/></section>
<section id="step-1-set-up-a-status-callback-endpoint-section-indexable"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-m8ey6p"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-gt12nx"><h2 data-paste-element="HEADING" data-paste-core-version="21.0.1" id="step-1-set-up-a-status-callback-endpoint" class="css-132spa5">Step 1. Set up a status callback endpoint</h2><a data-paste-element="BOX" data-paste-core-version="21.4.0" href="#step-1-set-up-a-status-callback-endpoint" class="css-f02h4i"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" fill="none" viewBox="0 0 20 20" aria-labelledby="LinkIcon-_R_2l64r5al5dlbkm_"><title id="LinkIcon-_R_2l64r5al5dlbkm_">step-1-set-up-a-status-callback-endpoint page anchor</title><path fill="currentColor" d="M13.074 5.674a2.3 2.3 0 013.252 3.252l-2.97 2.97A2.3 2.3 0 019.869 8.92a.5.5 0 10-.808-.588 3.3 3.3 0 005.004 4.272l2.97-2.97a3.3 3.3 0 00-4.667-4.666l-.467.466a.5.5 0 10.707.707l.467-.466z"></path><path fill="currentColor" d="M9.18 7.163a2.3 2.3 0 011.952 3.65.5.5 0 10.809.59A3.3 3.3 0 006.936 7.13l-2.97 2.97a3.3 3.3 0 004.667 4.667l.58-.58a.5.5 0 10-.707-.707l-.58.58a2.3 2.3 0 11-3.252-3.252l2.97-2.97c.409-.41.958-.652 1.536-.675z"></path></svg></span></a></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1kam78h"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-knmi57"><button data-paste-element="BUTTON" data-paste-core-version="21.4.0" aria-pressed="false" aria-busy="false" type="button" class="css-qw1tfm"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1lgr57j"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" width="100%" height="100%" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-labelledby="ThumbsUpIcon-_R_j6la4r5al5dlbkm_"><title id="ThumbsUpIcon-_R_j6la4r5al5dlbkm_">Positive Feedback</title><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M6.5 7.45c.194-.216.406-.451.628-.707.799-.922 1.608-1.972 1.898-2.838.314-.938 1.139-1.487 1.966-1.395a1.57 1.57 0 011.085.621c.277.363.423.85.423 1.43 0 .327-.081.645-.174.924-.062.186-.139.383-.208.56l-.088.226c-.092.245-.15.432-.166.582-.014.134.01.19.033.222l.001.001a.415.415 0 00.1.058 1.9 1.9 0 00.371.11c.32.068.725.106 1.152.124.632.026 1.237.01 1.634-.002.147-.004.265-.008.345-.008.25 0 .731.008 1.158.218.224.11.443.28.603.537.159.256.239.567.239.924 0 1.218-.524 3.647-1.553 5.695-.31.616-.693.885-1.18 1.193-.574.364-1.145.575-1.767.575h-3c-1.116 0-2.204-.418-3.002-.883a6.393 6.393 0 01-.498-.322v.372a.5.5 0 01-.5.5H3a.5.5 0 01-.5-.5V7a.5.5 0 01.5-.5h3a.5.5 0 01.5.5v.45zm3.474-3.228c.186-.554.611-.751.909-.718a.57.57 0 01.399.233c.114.15.218.409.218.824 0 .17-.044.37-.123.61a9.287 9.287 0 01-.177.474c-.034.087-.07.177-.105.273-.095.252-.194.542-.225.827-.032.297.005.636.23.935.135.178.322.291.491.367.175.078.372.134.571.176.4.084.869.125 1.317.144.676.028 1.382.008 1.767-.003.118-.003.206-.006.254-.006.25 0 .519.018.717.115.088.044.15.098.194.168.044.07.089.19.089.396 0 1.04-.476 3.316-1.447 5.246-.184.367-.375.516-.82.797-.468.296-.855.42-1.233.42h-3c-.884 0-1.796-.338-2.498-.747a4.464 4.464 0 01-.813-.591 1.36 1.36 0 01-.184-.207l-.005-.008V8.968a7.331 7.331 0 01.329-.39l.308-.343c.223-.246.483-.534.746-.837.788-.909 1.73-2.097 2.091-3.176zM5.5 7.5h-2v7.667h2V7.5z"></path></svg></span></span></button><button data-paste-element="BUTTON" data-paste-core-version="21.4.0" aria-pressed="false" aria-busy="false" type="button" class="css-qw1tfm"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1lgr57j"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" width="100%" height="100%" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-labelledby="ThumbsDownIcon-_R_jala4r5al5dlbkm_"><title id="ThumbsDownIcon-_R_jala4r5al5dlbkm_">Negative Feedback</title><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M13.5 12.55c-.194.215-.406.451-.628.707-.799.921-1.608 1.972-1.898 2.838-.314.938-1.139 1.487-1.966 1.395a1.57 1.57 0 01-1.085-.621c-.277-.363-.423-.85-.423-1.43 0-.327.081-.645.174-.924.062-.186.139-.383.208-.56l.088-.226c.092-.245.15-.432.166-.582.014-.134-.01-.19-.033-.222l-.001-.001a.416.416 0 00-.1-.058 1.902 1.902 0 00-.371-.11 7.35 7.35 0 00-1.152-.124 22.958 22.958 0 00-1.634.002 14.2 14.2 0 01-.345.008c-.25 0-.731-.008-1.158-.218a1.451 1.451 0 01-.603-.537c-.159-.257-.239-.567-.239-.924 0-1.218.524-3.648 1.553-5.696.31-.616.693-.884 1.18-1.192C5.807 3.71 6.378 3.5 7 3.5h3c1.116 0 2.204.417 3.002.883.178.104.345.212.498.321v-.37a.5.5 0 01.5-.5h3a.5.5 0 01.5.5V13a.5.5 0 01-.5.5h-3a.5.5 0 01-.5-.5v-.45zm-3.474 3.227c-.186.554-.611.752-.909.72a.571.571 0 01-.399-.234c-.114-.15-.218-.409-.218-.824a2 2 0 01.123-.61c.054-.16.113-.312.177-.475.034-.086.07-.176.105-.272.095-.252.194-.542.225-.828.032-.296-.005-.635-.23-.934a1.23 1.23 0 00-.491-.367 2.874 2.874 0 00-.571-.176 8.31 8.31 0 00-1.317-.144c-.676-.029-1.381-.008-1.767.003-.118.003-.206.006-.254.006-.25 0-.519-.018-.717-.115a.452.452 0 01-.194-.168c-.044-.07-.089-.19-.089-.396 0-1.04.476-3.316 1.447-5.247.184-.366.375-.515.82-.796.468-.296.855-.42 1.233-.42h3c.884 0 1.796.337 2.498.747.349.203.628.414.813.59.093.09.152.16.184.208l.005.007v4.98a7.245 7.245 0 01-.329.39 54.1 54.1 0 01-.308.342c-.223.247-.483.534-.746.838-.788.909-1.73 2.096-2.091 3.175zM14.5 12.5h2V4.833h-2V12.5z"></path></svg></span></span></button></div></div></div><p data-paste-element="PARAGRAPH" data-paste-core-version="21.0.1" class="css-t3ja6c">To track the message status of an outbound message, you must first create an API endpoint that:</p><ul data-paste-element="UNORDERED_LIST" data-paste-core-version="21.0.1" class="css-q56x2v">
<li data-paste-element="LIST_ITEM" data-paste-core-version="21.0.1" class="css-1pp5a8v">Is served under a publicly accessible URL (the status callback URL)</li>
<li data-paste-element="LIST_ITEM" data-paste-core-version="21.0.1" class="css-1pp5a8v">Implements a status callback handler for Twilio&#x27;s message status callback HTTP requests.</li>
</ul><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-rj5eb"><style data-emotion="css 1tn0jga">.css-1tn0jga{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;padding:1.5rem;border-left-style:solid;border-left-width:2px;-webkit-align-items:start;-webkit-box-align:start;-ms-flex-align:start;align-items:start;-webkit-column-gap:1rem;column-gap:1rem;background-color:rgb(249, 249, 250);color:rgb(141, 49, 24);border-color:rgb(255, 179, 122);}</style><div data-paste-element="CALLOUT" data-paste-core-version="21.4.0" class="css-1tn0jga"><div data-paste-element="CALLOUT_ICON" data-paste-core-version="21.4.0" class="css-roynbj"><style data-emotion="css 5ybmgr">.css-5ybmgr{box-sizing:border-box;line-height:0;display:block;color:rgb(195, 83, 35);width:1.25rem;height:1.25rem;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;}</style><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-5ybmgr"><svg role="img" aria-hidden="true" width="100%" height="100%" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-labelledby="WarningIcon-_R_1jagr5al5dlbkm_"><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M17.798 14.791L11.316 3.744c-.582-.992-2.05-.992-2.632 0L2.202 14.79C1.625 15.776 2.354 17 3.518 17h12.964c1.164 0 1.893-1.224 1.316-2.209zM9.99 8h.02c.611.007 1.073.592.978 1.244l-.428 2.238c-.04.296-.278.518-.557.518h-.006c-.279 0-.516-.222-.557-.518l-.428-2.238C8.917 8.592 9.386 8 9.99 8zm.01 7a1 1 0 100-2 1 1 0 000 2z"></path></svg></span><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1cbdvo6">(warning)</span></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-fkfdww"><h2 data-paste-element="CALLOUT_HEADING" data-paste-core-version="21.0.1" class="css-kevsq9">Warning</h2><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1ircowi"><p data-paste-element="PARAGRAPH" data-paste-core-version="21.0.1" class="css-t3ja6c">A status callback URL must contain a valid hostname. Underscores are <em>not</em> allowed.</p></div></div></div></div><p data-paste-element="PARAGRAPH" data-paste-core-version="21.0.1" class="css-t3ja6c">How you implement your status callback endpoint depends on your use case and technology preferences. This may mean you</p><ul data-paste-element="UNORDERED_LIST" data-paste-core-version="21.0.1" class="css-q56x2v">
<li data-paste-element="LIST_ITEM" data-paste-core-version="21.0.1" class="css-1pp5a8v">Create and host a small web application to handle the requests in the programming language and framework of your choice</li>
<li data-paste-element="LIST_ITEM" data-paste-core-version="21.0.1" class="css-1pp5a8v">Add an additional new endpoint to your existing web application</li>
<li data-paste-element="LIST_ITEM" data-paste-core-version="21.0.1" class="css-1pp5a8v">Use a serverless framework like <a data-paste-element="ANCHOR" data-paste-core-version="21.4.0" href="/docs/serverless/functions-assets/functions" title="Twilio Serverless Functions" class="css-lpeit6">Twilio Serverless Functions</a>.</li>
</ul></section>
<section id="how-are-status-callback-requests-sent-section-indexable"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-m8ey6p"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><style data-emotion="css a8lapc">.css-a8lapc{box-sizing:border-box;-webkit-align-items:start;-webkit-box-align:start;-ms-flex-align:start;align-items:start;margin-bottom:1rem;}</style><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-a8lapc"><style data-emotion="css zlgnaa">.css-zlgnaa{margin:0;padding:0;color:rgb(18, 28, 45);font-size:1.25rem;line-height:1.75rem;margin-bottom:0;font-weight:600;letter-spacing:-.02em;display:inline;word-break:break-word;}</style><h3 data-paste-element="HEADING" data-paste-core-version="21.0.1" id="how-are-status-callback-requests-sent" class="css-zlgnaa">How are status callback requests sent?</h3><a data-paste-element="BOX" data-paste-core-version="21.4.0" href="#how-are-status-callback-requests-sent" class="css-f02h4i"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" fill="none" viewBox="0 0 20 20" aria-labelledby="LinkIcon-_R_5ac4v5al5dlbkm_"><title id="LinkIcon-_R_5ac4v5al5dlbkm_">how-are-status-callback-requests-sent page anchor</title><path fill="currentColor" d="M13.074 5.674a2.3 2.3 0 013.252 3.252l-2.97 2.97A2.3 2.3 0 019.869 8.92a.5.5 0 10-.808-.588 3.3 3.3 0 005.004 4.272l2.97-2.97a3.3 3.3 0 00-4.667-4.666l-.467.466a.5.5 0 10.707.707l.467-.466z"></path><path fill="currentColor" d="M9.18 7.163a2.3 2.3 0 011.952 3.65.5.5 0 10.809.59A3.3 3.3 0 006.936 7.13l-2.97 2.97a3.3 3.3 0 004.667 4.667l.58-.58a.5.5 0 10-.707-.707l-.58.58a2.3 2.3 0 11-3.252-3.252l2.97-2.97c.409-.41.958-.652 1.536-.675z"></path></svg></span></a></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1kam78h"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-knmi57"><button data-paste-element="BUTTON" data-paste-core-version="21.4.0" aria-pressed="false" aria-busy="false" type="button" class="css-qw1tfm"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1lgr57j"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" width="100%" height="100%" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-labelledby="ThumbsUpIcon-_R_16dak4v5al5dlbkm_"><title id="ThumbsUpIcon-_R_16dak4v5al5dlbkm_">Positive Feedback</title><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M6.5 7.45c.194-.216.406-.451.628-.707.799-.922 1.608-1.972 1.898-2.838.314-.938 1.139-1.487 1.966-1.395a1.57 1.57 0 011.085.621c.277.363.423.85.423 1.43 0 .327-.081.645-.174.924-.062.186-.139.383-.208.56l-.088.226c-.092.245-.15.432-.166.582-.014.134.01.19.033.222l.001.001a.415.415 0 00.1.058 1.9 1.9 0 00.371.11c.32.068.725.106 1.152.124.632.026 1.237.01 1.634-.002.147-.004.265-.008.345-.008.25 0 .731.008 1.158.218.224.11.443.28.603.537.159.256.239.567.239.924 0 1.218-.524 3.647-1.553 5.695-.31.616-.693.885-1.18 1.193-.574.364-1.145.575-1.767.575h-3c-1.116 0-2.204-.418-3.002-.883a6.393 6.393 0 01-.498-.322v.372a.5.5 0 01-.5.5H3a.5.5 0 01-.5-.5V7a.5.5 0 01.5-.5h3a.5.5 0 01.5.5v.45zm3.474-3.228c.186-.554.611-.751.909-.718a.57.57 0 01.399.233c.114.15.218.409.218.824 0 .17-.044.37-.123.61a9.287 9.287 0 01-.177.474c-.034.087-.07.177-.105.273-.095.252-.194.542-.225.827-.032.297.005.636.23.935.135.178.322.291.491.367.175.078.372.134.571.176.4.084.869.125 1.317.144.676.028 1.382.008 1.767-.003.118-.003.206-.006.254-.006.25 0 .519.018.717.115.088.044.15.098.194.168.044.07.089.19.089.396 0 1.04-.476 3.316-1.447 5.246-.184.367-.375.516-.82.797-.468.296-.855.42-1.233.42h-3c-.884 0-1.796-.338-2.498-.747a4.464 4.464 0 01-.813-.591 1.36 1.36 0 01-.184-.207l-.005-.008V8.968a7.331 7.331 0 01.329-.39l.308-.343c.223-.246.483-.534.746-.837.788-.909 1.73-2.097 2.091-3.176zM5.5 7.5h-2v7.667h2V7.5z"></path></svg></span></span></button><button data-paste-element="BUTTON" data-paste-core-version="21.4.0" aria-pressed="false" aria-busy="false" type="button" class="css-qw1tfm"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1lgr57j"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" width="100%" height="100%" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-labelledby="ThumbsDownIcon-_R_16lak4v5al5dlbkm_"><title id="ThumbsDownIcon-_R_16lak4v5al5dlbkm_">Negative Feedback</title><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M13.5 12.55c-.194.215-.406.451-.628.707-.799.921-1.608 1.972-1.898 2.838-.314.938-1.139 1.487-1.966 1.395a1.57 1.57 0 01-1.085-.621c-.277-.363-.423-.85-.423-1.43 0-.327.081-.645.174-.924.062-.186.139-.383.208-.56l.088-.226c.092-.245.15-.432.166-.582.014-.134-.01-.19-.033-.222l-.001-.001a.416.416 0 00-.1-.058 1.902 1.902 0 00-.371-.11 7.35 7.35 0 00-1.152-.124 22.958 22.958 0 00-1.634.002 14.2 14.2 0 01-.345.008c-.25 0-.731-.008-1.158-.218a1.451 1.451 0 01-.603-.537c-.159-.257-.239-.567-.239-.924 0-1.218.524-3.648 1.553-5.696.31-.616.693-.884 1.18-1.192C5.807 3.71 6.378 3.5 7 3.5h3c1.116 0 2.204.417 3.002.883.178.104.345.212.498.321v-.37a.5.5 0 01.5-.5h3a.5.5 0 01.5.5V13a.5.5 0 01-.5.5h-3a.5.5 0 01-.5-.5v-.45zm-3.474 3.227c-.186.554-.611.752-.909.72a.571.571 0 01-.399-.234c-.114-.15-.218-.409-.218-.824a2 2 0 01.123-.61c.054-.16.113-.312.177-.475.034-.086.07-.176.105-.272.095-.252.194-.542.225-.828.032-.296-.005-.635-.23-.934a1.23 1.23 0 00-.491-.367 2.874 2.874 0 00-.571-.176 8.31 8.31 0 00-1.317-.144c-.676-.029-1.381-.008-1.767.003-.118.003-.206.006-.254.006-.25 0-.519-.018-.717-.115a.452.452 0 01-.194-.168c-.044-.07-.089-.19-.089-.396 0-1.04.476-3.316 1.447-5.247.184-.366.375-.515.82-.796.468-.296.855-.42 1.233-.42h3c.884 0 1.796.337 2.498.747.349.203.628.414.813.59.093.09.152.16.184.208l.005.007v4.98a7.245 7.245 0 01-.329.39 54.1 54.1 0 01-.308.342c-.223.247-.483.534-.746.838-.788.909-1.73 2.096-2.091 3.175zM14.5 12.5h2V4.833h-2V12.5z"></path></svg></span></span></button></div></div></div><p data-paste-element="PARAGRAPH" data-paste-core-version="21.0.1" class="css-t3ja6c">Twilio sends status callback requests as <style data-emotion="css 1kwd7zr">.css-1kwd7zr{box-sizing:border-box;border-width:1px;border-style:solid;border-radius:4px;font-family:'TwilioSansMono',Courier,monospace;font-size:inherit;line-height:inherit;padding-left:0.25rem;padding-right:0.25rem;color:inherit;background-color:rgb(249, 249, 250);border-color:rgb(202, 205, 216);}</style><code data-paste-element="INLINE_CODE" data-paste-core-version="21.4.0" class="css-1kwd7zr">POST</code> requests with the <code data-paste-element="INLINE_CODE" data-paste-core-version="21.4.0" class="css-1kwd7zr">Content-Type</code> set to <code data-paste-element="INLINE_CODE" data-paste-core-version="21.4.0" class="css-1kwd7zr">application/x-www-form-urlencoded</code>.</p><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-rj5eb"><div data-paste-element="CALLOUT" data-paste-core-version="21.4.0" class="css-1tn0jga"><div data-paste-element="CALLOUT_ICON" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-5ybmgr"><svg role="img" aria-hidden="true" width="100%" height="100%" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-labelledby="WarningIcon-_R_36kcv5al5dlbkm_"><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M17.798 14.791L11.316 3.744c-.582-.992-2.05-.992-2.632 0L2.202 14.79C1.625 15.776 2.354 17 3.518 17h12.964c1.164 0 1.893-1.224 1.316-2.209zM9.99 8h.02c.611.007 1.073.592.978 1.244l-.428 2.238c-.04.296-.278.518-.557.518h-.006c-.279 0-.516-.222-.557-.518l-.428-2.238C8.917 8.592 9.386 8 9.99 8zm.01 7a1 1 0 100-2 1 1 0 000 2z"></path></svg></span><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1cbdvo6">(warning)</span></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-fkfdww"><h2 data-paste-element="CALLOUT_HEADING" data-paste-core-version="21.0.1" class="css-kevsq9">Warning</h2><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1ircowi"><p data-paste-element="PARAGRAPH" data-paste-core-version="21.0.1" class="css-t3ja6c">The properties included in Twilio&#x27;s request to the StatusCallback URL vary by messaging channel and event type and are subject to change.</p><p data-paste-element="PARAGRAPH" data-paste-core-version="21.0.1" class="css-t3ja6c">Twilio occasionally adds new properties without advance notice.</p><p data-paste-element="PARAGRAPH" data-paste-core-version="21.0.1" class="css-t3ja6c">When integrating with status callback requests, it is important that your implementation is able to accept and correctly run <a data-paste-element="ANCHOR" data-paste-core-version="21.4.0" href="/docs/usage/webhooks/webhooks-security" title="signature validation" class="css-lpeit6">signature validation</a> on an evolving set of parameters.</p><p data-paste-element="PARAGRAPH" data-paste-core-version="21.0.1" class="css-t3ja6c">Twilio strongly recommends using the signature validation methods provided in the SDKs and not implementing your own signature validation.</p></div></div></div></div><p data-paste-element="PARAGRAPH" data-paste-core-version="21.0.1" class="css-t3ja6c">In a status callback request, Twilio provides a subset of the <a data-paste-element="ANCHOR" data-paste-core-version="21.4.0" href="/docs/messaging/guides/webhook-request#request-parameters" title="standard request properties" class="css-lpeit6">standard request properties</a>, and additionally <code data-paste-element="INLINE_CODE" data-paste-core-version="21.4.0" class="css-1kwd7zr">MessageStatus</code> and <code data-paste-element="INLINE_CODE" data-paste-core-version="21.4.0" class="css-1kwd7zr">ErrorCode</code>. These properties are described in the table below.</p>
















<style data-emotion="css 161rs34">.css-161rs34{box-sizing:border-box;margin-bottom:1.25rem;}</style><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-161rs34"><style data-emotion="css 1pev1tl">.css-1pev1tl{box-sizing:border-box;overflow-x:auto;}</style><div data-paste-element="TABLE_WRAPPER" data-paste-core-version="21.4.0" class="css-1pev1tl"><style data-emotion="css 1yrg7uf">.css-1yrg7uf{box-sizing:border-box;border-collapse:separate;border-color:rgb(225, 227, 234);border-spacing:0;border-style:solid;border-width:1px;table-layout:auto;width:100%;}</style><table data-paste-element="TABLE" data-paste-core-version="21.4.0" class="css-1yrg7uf"><style data-emotion="css c08gur">.css-c08gur{background-color:rgb(249, 249, 250);color:rgb(96, 107, 133);box-sizing:border-box;}</style><thead data-paste-element="THEAD" data-paste-core-version="21.4.0" class="css-c08gur"><style data-emotion="css 1e22c8r">.css-1e22c8r{box-sizing:border-box;vertical-align:middle;}.css-1e22c8r:nth-of-type(even){background-color:transparent;}.css-1e22c8r:last-of-type{border-width:0;}</style><tr data-paste-element="TR" data-paste-core-version="21.4.0" class="css-1e22c8r"><style data-emotion="css kczchh">.css-kczchh{box-sizing:border-box;border-bottom-style:solid;border-bottom-color:rgb(225, 227, 234);border-bottom-width:1px;font-size:0.875rem;line-height:1.25rem;font-weight:600;padding-bottom:0.75rem;padding-left:1rem;padding-right:1rem;padding-top:0.75rem;position:relative;text-align:left;vertical-align:inherit;word-wrap:break-word;color:inherit;}</style><th data-paste-element="TH" data-paste-core-version="21.4.0" class="css-kczchh">Property</th><th data-paste-element="TH" data-paste-core-version="21.4.0" class="css-kczchh">Description</th></tr></thead><style data-emotion="css dzsvvb">.css-dzsvvb{box-sizing:border-box;color:rgb(18, 28, 45);}</style><style data-emotion="css 1u05hs8">.css-1u05hs8{background-color:rgb(255, 255, 255);box-sizing:border-box;color:rgb(18, 28, 45);}.css-1u05hs8>tr:last-of-type>td{border-bottom-width:0;}.css-1u05hs8>tr:last-of-type>th{border-bottom-width:0;}</style><tbody data-paste-element="TBODY" data-paste-core-version="21.4.0" class="css-1u05hs8"><tr data-paste-element="TR" data-paste-core-version="21.4.0" class="css-1e22c8r"><style data-emotion="css 4rjmal">.css-4rjmal{box-sizing:border-box;border-style:solid;border-color:rgb(225, 227, 234);border-width:0;border-bottom-width:1px;font-size:0.875rem;line-height:1.25rem;padding:1rem;position:relative;text-align:left;vertical-align:inherit;word-wrap:break-word;color:inherit;}</style><td data-paste-element="TD" data-paste-core-version="21.4.0" class="css-4rjmal"><code data-paste-element="INLINE_CODE" data-paste-core-version="21.4.0" class="css-1kwd7zr">MessageStatus</code></td><td data-paste-element="TD" data-paste-core-version="21.4.0" class="css-4rjmal">The <a data-paste-element="ANCHOR" data-paste-core-version="21.4.0" href="/docs/messaging/api/message-resource#message-status-values" title="status" class="css-lpeit6">status</a> of the Message resource at the time the status callback request was sent.</td></tr><tr data-paste-element="TR" data-paste-core-version="21.4.0" class="css-1e22c8r"><td data-paste-element="TD" data-paste-core-version="21.4.0" class="css-4rjmal"><code data-paste-element="INLINE_CODE" data-paste-core-version="21.4.0" class="css-1kwd7zr">ErrorCode</code></td><td data-paste-element="TD" data-paste-core-version="21.4.0" class="css-4rjmal">If an error occurred (i.e. the <code data-paste-element="INLINE_CODE" data-paste-core-version="21.4.0" class="css-1kwd7zr">MessageStatus</code> is <code data-paste-element="INLINE_CODE" data-paste-core-version="21.4.0" class="css-1kwd7zr">failed</code> or <code data-paste-element="INLINE_CODE" data-paste-core-version="21.4.0" class="css-1kwd7zr">undelivered</code>), this property provides additional information about the failure.</td></tr></tbody></table></div></div><p data-paste-element="PARAGRAPH" data-paste-core-version="21.0.1" class="css-t3ja6c">For example, a status callback request sent when the Message resource for an outbound SMS changes <code data-paste-element="INLINE_CODE" data-paste-core-version="21.4.0" class="css-1kwd7zr">status</code> to <code data-paste-element="INLINE_CODE" data-paste-core-version="21.4.0" class="css-1kwd7zr">sent</code>, may contain the following content:</p><style data-emotion="css slcqjs">.css-slcqjs{box-sizing:border-box;margin-bottom:1.5rem;}</style><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-slcqjs"><style data-emotion="css 1ft5k6i">.css-1ft5k6i{box-sizing:border-box;background-color:rgb(31, 48, 76);border-radius:4px;overflow:hidden;}</style><div data-paste-element="CODE_BLOCK_WRAPPER" data-paste-core-version="21.4.0" class="css-1ft5k6i"><style data-emotion="css 1lrte93">.css-1lrte93{box-sizing:border-box;background-color:rgb(18, 28, 45);display:grid;grid-template-rows:auto 1fr;grid-template-areas:"button-group" "code-block";row-gap:0.25rem;padding-top:1rem;}</style><div data-paste-element="CODE_BLOCK" data-paste-core-version="21.4.0" class="css-1lrte93"><style data-emotion="css ba3ttd">.css-ba3ttd{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-column-gap:0.75rem;column-gap:0.75rem;-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end;grid-area:button-group;padding-right:1.5rem;}</style><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-ba3ttd"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><style data-emotion="css 8sx3rd">.css-8sx3rd{box-sizing:border-box;width:auto;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;background:none;display:inline-block;border:none;outline:none;-webkit-transition:background-color 100ms ease-in,box-shadow 100ms ease-in,color 100ms ease-in;transition:background-color 100ms ease-in,box-shadow 100ms ease-in,color 100ms ease-in;font-family:inherit;font-weight:600;-webkit-text-decoration:none;text-decoration:none;position:relative;margin:0;border-radius:8px;cursor:pointer;color:rgb(255, 255, 255);background-color:rgb(18, 28, 45);box-shadow:0 0 0 1px #394762;padding:0.25rem;}.css-8sx3rd:hover{-webkit-text-decoration:none;text-decoration:none;color:rgb(255, 255, 255);background-color:rgb(31, 48, 76);box-shadow:0 0 0 1px #f4f4f6;}.css-8sx3rd:focus{-webkit-text-decoration:none;text-decoration:none;box-shadow:0 0 0 1px #394762,0 0 0 3px #121c2d,0 0 0 4px #ffffff,0 0 0 6px rgba(255, 255, 255, 0.2);}.css-8sx3rd:active,.css-8sx3rd[data-active=true]{-webkit-text-decoration:none;text-decoration:none;box-shadow:0 0 0 1px #ffffff;color:rgb(255, 255, 255);background-color:rgb(31, 48, 76);}</style><button data-paste-element="CODE_BLOCK_COPY_BUTTON" data-paste-core-version="21.4.0" tabindex="0" aria-describedby="_R_j6l0v5al5dlbkm_" aria-busy="false" type="button" class="css-8sx3rd"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1lgr57j"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="CopyIcon-_R_39jj6l0v5al5dlbkm_"><path fill="currentColor" fill-rule="evenodd" d="M13.469 2.5c.63 0 1.15.48 1.212 1.094l.007.125-.001 1.593h1.407c.73 0 1.331.558 1.4 1.271l.006.136v9.375c0 .776-.63 1.406-1.406 1.406H6.719c-.777 0-1.407-.63-1.407-1.406v-1.407H3.719c-.631 0-1.15-.48-1.213-1.094L2.5 13.47v-9.75c0-.631.48-1.15 1.094-1.213L3.72 2.5h9.75zm2.625 3.75H6.719a.469.469 0 00-.469.469v9.375c0 .259.21.468.469.468h9.375c.259 0 .468-.21.468-.468V6.719a.469.469 0 00-.468-.469zm-2.625-2.813h-9.75a.281.281 0 00-.274.217l-.007.065v9.75c0 .133.092.244.216.274l.065.007 1.593-.001v-7.03c0-.731.558-1.332 1.271-1.4l.136-.006 7.031-.001V3.719a.281.281 0 00-.217-.274l-.064-.007z"></path></svg></span><span data-paste-element="BOX" data-paste-core-version="21.4.0" aria-live="polite" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1cbdvo6">Copy code block</span></span></span></span></button></div></div><style data-emotion="css 1yf26d7">.css-1yf26d7{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;overflow-x:auto;grid-area:code-block;}</style><div data-paste-element="CODE_BLOCK_CONTENT" data-paste-core-version="21.4.0" class="css-1yf26d7"><style data-emotion="css 1p78m0">.css-1p78m0{display:grid;}.css-1p78m0:focus{outline:none;box-shadow:inset 0 0 0 1px #006dfa,inset 0 0 0 3px #cce4ff;border-radius:4px;}</style><pre data-theme="github-dark" data-lang="shellscript" style="color:white;font-family:&#x27;TwilioSansMono&#x27;, Courier, monospace;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;font-size:1em;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;margin:0;overflow:auto;background:inherit;width:100%;padding-bottom:2rem" tabindex="0" class="css-1p78m0" data-ch="true"><div style="min-width:fit-content"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><style data-emotion="css 519pyc">.css-519pyc{box-sizing:border-box;display:inline-block;box-sizing:content-box;opacity:0.5;padding-left:1.5rem;padding-right:1.5ch;text-align:right;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;min-width:1ch;}</style><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-519pyc">1</span><style data-emotion="css luzz01">.css-luzz01{box-sizing:border-box;display:inline-block;}</style><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div><span style="color:#FFA657">&quot;AccountSid&quot;</span><span style="color:#79C0FF">:</span> <span style="color:#A5D6FF">&quot;ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&quot;</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-519pyc">2</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div><span style="color:#FFA657">&quot;From&quot;</span><span style="color:#79C0FF">:</span> <span style="color:#A5D6FF">&quot;+15017250604&quot;</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-519pyc">3</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div><span style="color:#FFA657">&quot;MessageSid&quot;</span><span style="color:#79C0FF">:</span> <span style="color:#A5D6FF">&quot;SM1342fe1b2c904d1ab04f0fc7a58abca9&quot;</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-519pyc">4</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div><span style="color:#FFA657">&quot;MessageStatus&quot;</span><span style="color:#79C0FF">:</span> <span style="color:#A5D6FF">&quot;sent&quot;</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-519pyc">5</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div><span style="color:#FFA657">&quot;SmsSid&quot;</span><span style="color:#79C0FF">:</span> <span style="color:#A5D6FF">&quot;SM1342fe1b2c904d1ab04f0fc7a58abca9&quot;</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-519pyc">6</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div><span style="color:#FFA657">&quot;SmsStatus&quot;</span><span style="color:#79C0FF">:</span> <span style="color:#A5D6FF">&quot;sent&quot;</span></div></div></div></div></pre></div></div></div></div></section>
<section id="smsmms-section"><style data-emotion="css 104sreq">.css-104sreq{box-sizing:border-box;-webkit-align-items:start;-webkit-box-align:start;-ms-flex-align:start;align-items:start;margin-bottom:0.75rem;}</style><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-104sreq"><style data-emotion="css cjdtoj">.css-cjdtoj{margin:0;padding:0;color:rgb(18, 28, 45);font-size:1rem;line-height:1.5rem;margin-bottom:0.5rem;font-weight:600;letter-spacing:-.02em;display:inline;word-break:break-word;}</style><h4 data-paste-element="HEADING" data-paste-core-version="21.0.1" id="smsmms" class="css-cjdtoj">SMS/MMS</h4><style data-emotion="css 138wi13">.css-138wi13{box-sizing:border-box;-webkit-text-decoration:none;text-decoration:none;margin-left:0.5rem;color:rgb(96, 107, 133);border-radius:2px;outline:none;display:inline-block;vertical-align:text-bottom;}.css-138wi13:hover{color:rgb(3, 11, 93);}.css-138wi13:focus{box-shadow:0 0 0 2px #ffffff,0 0 0 3px #006dfa,0 0 0 5px #cce4ff;color:rgb(3, 11, 93);}</style><a data-paste-element="BOX" data-paste-core-version="21.4.0" href="#smsmms" class="css-138wi13"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" fill="none" viewBox="0 0 20 20" aria-labelledby="LinkIcon-_R_1a535al5dlbkm_"><title id="LinkIcon-_R_1a535al5dlbkm_">smsmms page anchor</title><path fill="currentColor" d="M13.074 5.674a2.3 2.3 0 013.252 3.252l-2.97 2.97A2.3 2.3 0 019.869 8.92a.5.5 0 10-.808-.588 3.3 3.3 0 005.004 4.272l2.97-2.97a3.3 3.3 0 00-4.667-4.666l-.467.466a.5.5 0 10.707.707l.467-.466z"></path><path fill="currentColor" d="M9.18 7.163a2.3 2.3 0 011.952 3.65.5.5 0 10.809.59A3.3 3.3 0 006.936 7.13l-2.97 2.97a3.3 3.3 0 004.667 4.667l.58-.58a.5.5 0 10-.707-.707l-.58.58a2.3 2.3 0 11-3.252-3.252l2.97-2.97c.409-.41.958-.652 1.536-.675z"></path></svg></span></a></div><p data-paste-element="PARAGRAPH" data-paste-core-version="21.0.1" class="css-t3ja6c">For most SMS/MMS Messages that have a <code data-paste-element="INLINE_CODE" data-paste-core-version="21.4.0" class="css-1kwd7zr">Status</code> of <code data-paste-element="INLINE_CODE" data-paste-core-version="21.4.0" class="css-1kwd7zr">delivered</code> or <code data-paste-element="INLINE_CODE" data-paste-core-version="21.4.0" class="css-1kwd7zr">undelivered</code>, Twilio&#x27;s request to the <code data-paste-element="INLINE_CODE" data-paste-core-version="21.4.0" class="css-1kwd7zr">StatusCallback</code> URL contains an additional property:</p>












<div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-161rs34"><div data-paste-element="TABLE_WRAPPER" data-paste-core-version="21.4.0" class="css-1pev1tl"><table data-paste-element="TABLE" data-paste-core-version="21.4.0" class="css-1yrg7uf"><thead data-paste-element="THEAD" data-paste-core-version="21.4.0" class="css-c08gur"><tr data-paste-element="TR" data-paste-core-version="21.4.0" class="css-1e22c8r"><th data-paste-element="TH" data-paste-core-version="21.4.0" class="css-kczchh">Property</th><th data-paste-element="TH" data-paste-core-version="21.4.0" class="css-kczchh">Description</th></tr></thead><tbody data-paste-element="TBODY" data-paste-core-version="21.4.0" class="css-1u05hs8"><tr data-paste-element="TR" data-paste-core-version="21.4.0" class="css-1e22c8r"><td data-paste-element="TD" data-paste-core-version="21.4.0" class="css-4rjmal"><code data-paste-element="INLINE_CODE" data-paste-core-version="21.4.0" class="css-1kwd7zr">RawDlrDoneDate</code></td><td data-paste-element="TD" data-paste-core-version="21.4.0" class="css-4rjmal">This property is a passthrough of the Done Date included in the DLR (Delivery Receipt) that Twilio received from the carrier.<br/><br/> The value is in <code data-paste-element="INLINE_CODE" data-paste-core-version="21.4.0" class="css-1kwd7zr">YYMMDDhhmm</code> format.<ul data-paste-element="UNORDERED_LIST" data-paste-core-version="21.0.1" class="css-q56x2v"><li data-paste-element="LIST_ITEM" data-paste-core-version="21.0.1" class="css-1pp5a8v"><code data-paste-element="INLINE_CODE" data-paste-core-version="21.4.0" class="css-1kwd7zr">YY</code> is last two digits of the year (00-99)</li><li data-paste-element="LIST_ITEM" data-paste-core-version="21.0.1" class="css-1pp5a8v"><code data-paste-element="INLINE_CODE" data-paste-core-version="21.4.0" class="css-1kwd7zr">MM</code> is the two-digit month (01-12)</li><li data-paste-element="LIST_ITEM" data-paste-core-version="21.0.1" class="css-1pp5a8v"><code data-paste-element="INLINE_CODE" data-paste-core-version="21.4.0" class="css-1kwd7zr">DD</code> is the two-digit day (01-31)</li><li data-paste-element="LIST_ITEM" data-paste-core-version="21.0.1" class="css-1pp5a8v"><code data-paste-element="INLINE_CODE" data-paste-core-version="21.4.0" class="css-1kwd7zr">hh</code> is the two-digit hour (00-23)</li><li data-paste-element="LIST_ITEM" data-paste-core-version="21.0.1" class="css-1pp5a8v"><code data-paste-element="INLINE_CODE" data-paste-core-version="21.4.0" class="css-1kwd7zr">mm</code> is the two-digit minute (00-59).</li></ul> Learn more on the <a data-paste-element="ANCHOR" data-paste-core-version="21.4.0" href="https://www.twilio.com/en-us/changelog/addition-of-rawdlrdonedate-to-delivered-and-undelivered-status-webhooks" rel="noreferrer noopener" target="_blank" title="&quot;Addition of RawDlrDoneDate to Delivered and Undelivered Status Webhooks&quot; Changelog page" class="css-lpeit6"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj">&quot;Addition of RawDlrDoneDate to Delivered and Undelivered Status Webhooks&quot; Changelog page<style data-emotion="css 1ezs782">.css-1ezs782{box-sizing:border-box;display:inline-block;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;vertical-align:middle;}</style><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1ezs782"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="LinkExternalIcon-_R_ladalah35al5dlbkm_"><title id="LinkExternalIcon-_R_ladalah35al5dlbkm_">(link takes you to an external page)</title><path fill="currentColor" fill-rule="evenodd" d="M8.4 4.5a.5.5 0 01.5.5v.1a.5.5 0 01-.5.5H5.6v8.8h8.8v-2.8a.5.5 0 01.41-.492l.09-.008h.1a.5.5 0 01.492.41l.008.09V15a.5.5 0 01-.41.492L15 15.5H5a.5.5 0 01-.492-.41L4.5 15V5a.5.5 0 01.41-.492L5 4.5h3.4zm6.6 0a.5.5 0 01.5.5v.1l-.001.01.001 3.29a.5.5 0 01-.5.5h-.1a.5.5 0 01-.5-.5l-.001-1.935-3.967 3.967a.611.611 0 01-.78.07l-.084-.07a.611.611 0 01-.07-.78l.07-.084L13.534 5.6H11.6a.5.5 0 01-.5-.5V5a.5.5 0 01.5-.5H15z"></path></svg></span></span></span></a>.</td></tr></tbody></table></div></div></section>
<section id="rcs-whatsapp-and-other-messaging-channels-section"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-104sreq"><h4 data-paste-element="HEADING" data-paste-core-version="21.0.1" id="rcs-whatsapp-and-other-messaging-channels" class="css-cjdtoj">RCS, WhatsApp, and other messaging channels</h4><a data-paste-element="BOX" data-paste-core-version="21.4.0" href="#rcs-whatsapp-and-other-messaging-channels" class="css-138wi13"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" fill="none" viewBox="0 0 20 20" aria-labelledby="LinkIcon-_R_1a575al5dlbkm_"><title id="LinkIcon-_R_1a575al5dlbkm_">rcs-whatsapp-and-other-messaging-channels page anchor</title><path fill="currentColor" d="M13.074 5.674a2.3 2.3 0 013.252 3.252l-2.97 2.97A2.3 2.3 0 019.869 8.92a.5.5 0 10-.808-.588 3.3 3.3 0 005.004 4.272l2.97-2.97a3.3 3.3 0 00-4.667-4.666l-.467.466a.5.5 0 10.707.707l.467-.466z"></path><path fill="currentColor" d="M9.18 7.163a2.3 2.3 0 011.952 3.65.5.5 0 10.809.59A3.3 3.3 0 006.936 7.13l-2.97 2.97a3.3 3.3 0 004.667 4.667l.58-.58a.5.5 0 10-.707-.707l-.58.58a2.3 2.3 0 11-3.252-3.252l2.97-2.97c.409-.41.958-.652 1.536-.675z"></path></svg></span></a></div><p data-paste-element="PARAGRAPH" data-paste-core-version="21.0.1" class="css-t3ja6c">If the Message resource uses RCS, WhatsApp, or another messaging channel, Twilio&#x27;s request to the <code data-paste-element="INLINE_CODE" data-paste-core-version="21.4.0" class="css-1kwd7zr">StatusCallback</code> URL contains additional properties. These properties are listed in the table below.</p>
























<div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-161rs34"><div data-paste-element="TABLE_WRAPPER" data-paste-core-version="21.4.0" class="css-1pev1tl"><table data-paste-element="TABLE" data-paste-core-version="21.4.0" class="css-1yrg7uf"><thead data-paste-element="THEAD" data-paste-core-version="21.4.0" class="css-c08gur"><tr data-paste-element="TR" data-paste-core-version="21.4.0" class="css-1e22c8r"><th data-paste-element="TH" data-paste-core-version="21.4.0" class="css-kczchh">Property</th><th data-paste-element="TH" data-paste-core-version="21.4.0" class="css-kczchh">Description</th></tr></thead><tbody data-paste-element="TBODY" data-paste-core-version="21.4.0" class="css-1u05hs8"><tr data-paste-element="TR" data-paste-core-version="21.4.0" class="css-1e22c8r"><td data-paste-element="TD" data-paste-core-version="21.4.0" class="css-4rjmal"><code data-paste-element="INLINE_CODE" data-paste-core-version="21.4.0" class="css-1kwd7zr">ChannelInstallSid</code></td><td data-paste-element="TD" data-paste-core-version="21.4.0" class="css-4rjmal">The <a data-paste-element="ANCHOR" data-paste-core-version="21.4.0" href="/docs/messaging/channels" title="Installed Channel" class="css-lpeit6">Installed Channel</a> SID that was used to send this message</td></tr><tr data-paste-element="TR" data-paste-core-version="21.4.0" class="css-1e22c8r"><td data-paste-element="TD" data-paste-core-version="21.4.0" class="css-4rjmal"><code data-paste-element="INLINE_CODE" data-paste-core-version="21.4.0" class="css-1kwd7zr">ChannelStatusMessage</code></td><td data-paste-element="TD" data-paste-core-version="21.4.0" class="css-4rjmal">The error message returned by the underlying messaging channel if Message delivery failed. This property is present only if the Message delivery failed.</td></tr><tr data-paste-element="TR" data-paste-core-version="21.4.0" class="css-1e22c8r"><td data-paste-element="TD" data-paste-core-version="21.4.0" class="css-4rjmal"><code data-paste-element="INLINE_CODE" data-paste-core-version="21.4.0" class="css-1kwd7zr">ChannelPrefix</code></td><td data-paste-element="TD" data-paste-core-version="21.4.0" class="css-4rjmal">The channel-specific prefix identifying the messaging channel associated with this Message</td></tr><tr data-paste-element="TR" data-paste-core-version="21.4.0" class="css-1e22c8r"><td data-paste-element="TD" data-paste-core-version="21.4.0" class="css-4rjmal"><code data-paste-element="INLINE_CODE" data-paste-core-version="21.4.0" class="css-1kwd7zr">EventType</code></td><td data-paste-element="TD" data-paste-core-version="21.4.0" class="css-4rjmal">This property contains information about post-delivery events. If the channel supports read receipts (currently RCS and WhatsApp), this property&#x27;s value is <code data-paste-element="INLINE_CODE" data-paste-core-version="21.4.0" class="css-1kwd7zr">READ</code> after the recipient has read the message.</td></tr></tbody></table></div></div></section>
<section id="implement-a-status-callback-handler-simplified-example-section-indexable"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-m8ey6p"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-a8lapc"><h3 data-paste-element="HEADING" data-paste-core-version="21.0.1" id="implement-a-status-callback-handler-simplified-example" class="css-zlgnaa">Implement a status callback handler (simplified example)</h3><a data-paste-element="BOX" data-paste-core-version="21.4.0" href="#implement-a-status-callback-handler-simplified-example" class="css-f02h4i"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" fill="none" viewBox="0 0 20 20" aria-labelledby="LinkIcon-_R_5ac5b5al5dlbkm_"><title id="LinkIcon-_R_5ac5b5al5dlbkm_">implement-a-status-callback-handler-simplified-example page anchor</title><path fill="currentColor" d="M13.074 5.674a2.3 2.3 0 013.252 3.252l-2.97 2.97A2.3 2.3 0 019.869 8.92a.5.5 0 10-.808-.588 3.3 3.3 0 005.004 4.272l2.97-2.97a3.3 3.3 0 00-4.667-4.666l-.467.466a.5.5 0 10.707.707l.467-.466z"></path><path fill="currentColor" d="M9.18 7.163a2.3 2.3 0 011.952 3.65.5.5 0 10.809.59A3.3 3.3 0 006.936 7.13l-2.97 2.97a3.3 3.3 0 004.667 4.667l.58-.58a.5.5 0 10-.707-.707l-.58.58a2.3 2.3 0 11-3.252-3.252l2.97-2.97c.409-.41.958-.652 1.536-.675z"></path></svg></span></a></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1kam78h"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-knmi57"><button data-paste-element="BUTTON" data-paste-core-version="21.4.0" aria-pressed="false" aria-busy="false" type="button" class="css-qw1tfm"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1lgr57j"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" width="100%" height="100%" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-labelledby="ThumbsUpIcon-_R_16dak5b5al5dlbkm_"><title id="ThumbsUpIcon-_R_16dak5b5al5dlbkm_">Positive Feedback</title><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M6.5 7.45c.194-.216.406-.451.628-.707.799-.922 1.608-1.972 1.898-2.838.314-.938 1.139-1.487 1.966-1.395a1.57 1.57 0 011.085.621c.277.363.423.85.423 1.43 0 .327-.081.645-.174.924-.062.186-.139.383-.208.56l-.088.226c-.092.245-.15.432-.166.582-.014.134.01.19.033.222l.001.001a.415.415 0 00.1.058 1.9 1.9 0 00.371.11c.32.068.725.106 1.152.124.632.026 1.237.01 1.634-.002.147-.004.265-.008.345-.008.25 0 .731.008 1.158.218.224.11.443.28.603.537.159.256.239.567.239.924 0 1.218-.524 3.647-1.553 5.695-.31.616-.693.885-1.18 1.193-.574.364-1.145.575-1.767.575h-3c-1.116 0-2.204-.418-3.002-.883a6.393 6.393 0 01-.498-.322v.372a.5.5 0 01-.5.5H3a.5.5 0 01-.5-.5V7a.5.5 0 01.5-.5h3a.5.5 0 01.5.5v.45zm3.474-3.228c.186-.554.611-.751.909-.718a.57.57 0 01.399.233c.114.15.218.409.218.824 0 .17-.044.37-.123.61a9.287 9.287 0 01-.177.474c-.034.087-.07.177-.105.273-.095.252-.194.542-.225.827-.032.297.005.636.23.935.135.178.322.291.491.367.175.078.372.134.571.176.4.084.869.125 1.317.144.676.028 1.382.008 1.767-.003.118-.003.206-.006.254-.006.25 0 .519.018.717.115.088.044.15.098.194.168.044.07.089.19.089.396 0 1.04-.476 3.316-1.447 5.246-.184.367-.375.516-.82.797-.468.296-.855.42-1.233.42h-3c-.884 0-1.796-.338-2.498-.747a4.464 4.464 0 01-.813-.591 1.36 1.36 0 01-.184-.207l-.005-.008V8.968a7.331 7.331 0 01.329-.39l.308-.343c.223-.246.483-.534.746-.837.788-.909 1.73-2.097 2.091-3.176zM5.5 7.5h-2v7.667h2V7.5z"></path></svg></span></span></button><button data-paste-element="BUTTON" data-paste-core-version="21.4.0" aria-pressed="false" aria-busy="false" type="button" class="css-qw1tfm"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1lgr57j"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" width="100%" height="100%" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-labelledby="ThumbsDownIcon-_R_16lak5b5al5dlbkm_"><title id="ThumbsDownIcon-_R_16lak5b5al5dlbkm_">Negative Feedback</title><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M13.5 12.55c-.194.215-.406.451-.628.707-.799.921-1.608 1.972-1.898 2.838-.314.938-1.139 1.487-1.966 1.395a1.57 1.57 0 01-1.085-.621c-.277-.363-.423-.85-.423-1.43 0-.327.081-.645.174-.924.062-.186.139-.383.208-.56l.088-.226c.092-.245.15-.432.166-.582.014-.134-.01-.19-.033-.222l-.001-.001a.416.416 0 00-.1-.058 1.902 1.902 0 00-.371-.11 7.35 7.35 0 00-1.152-.124 22.958 22.958 0 00-1.634.002 14.2 14.2 0 01-.345.008c-.25 0-.731-.008-1.158-.218a1.451 1.451 0 01-.603-.537c-.159-.257-.239-.567-.239-.924 0-1.218.524-3.648 1.553-5.696.31-.616.693-.884 1.18-1.192C5.807 3.71 6.378 3.5 7 3.5h3c1.116 0 2.204.417 3.002.883.178.104.345.212.498.321v-.37a.5.5 0 01.5-.5h3a.5.5 0 01.5.5V13a.5.5 0 01-.5.5h-3a.5.5 0 01-.5-.5v-.45zm-3.474 3.227c-.186.554-.611.752-.909.72a.571.571 0 01-.399-.234c-.114-.15-.218-.409-.218-.824a2 2 0 01.123-.61c.054-.16.113-.312.177-.475.034-.086.07-.176.105-.272.095-.252.194-.542.225-.828.032-.296-.005-.635-.23-.934a1.23 1.23 0 00-.491-.367 2.874 2.874 0 00-.571-.176 8.31 8.31 0 00-1.317-.144c-.676-.029-1.381-.008-1.767.003-.118.003-.206.006-.254.006-.25 0-.519-.018-.717-.115a.452.452 0 01-.194-.168c-.044-.07-.089-.19-.089-.396 0-1.04.476-3.316 1.447-5.247.184-.366.375-.515.82-.796.468-.296.855-.42 1.233-.42h3c.884 0 1.796.337 2.498.747.349.203.628.414.813.59.093.09.152.16.184.208l.005.007v4.98a7.245 7.245 0 01-.329.39 54.1 54.1 0 01-.308.342c-.223.247-.483.534-.746.838-.788.909-1.73 2.096-2.091 3.175zM14.5 12.5h2V4.833h-2V12.5z"></path></svg></span></span></button></div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-rj5eb"><div data-paste-element="CALLOUT" data-paste-core-version="21.4.0" class="css-1v816ix"><div data-paste-element="CALLOUT_ICON" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-1cst9vu"><svg role="img" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="NeutralIcon-_R_36k9b5al5dlbkm_"><path fill="currentColor" fill-rule="evenodd" d="M10 2a8 8 0 110 16 8 8 0 010-16zm0 7c-.26.01-.528.08-.707.24-.178.158-.292.355-.292.575v3.37c0 .21.11.428.292.577.173.14.457.247.707.237.26-.008.528-.078.707-.237.178-.16.292-.355.292-.577v-3.37a.766.766 0 00-.292-.575A1.14 1.14 0 0010 9zm0-3l-.266.036c-.17.047-.318.131-.441.253l-.156.198A.958.958 0 009 6.98v.04a.728.728 0 00.086.378c.04.121.108.227.206.315.09.094.197.163.321.202.12.06.248.09.386.084l.266-.035c.17-.047.318-.131.441-.253l.156-.198A.958.958 0 0011 7.02v-.04a.728.728 0 00-.086-.378.721.721 0 00-.206-.315.757.757 0 00-.321-.202.767.767 0 00-.386-.084z"></path></svg></span><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1cbdvo6">(information)</span></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-fkfdww"><h2 data-paste-element="CALLOUT_HEADING" data-paste-core-version="21.0.1" class="css-kevsq9">Info</h2><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1ircowi"><p data-paste-element="PARAGRAPH" data-paste-core-version="21.0.1" class="css-t3ja6c">You may want to explore how status callback requests behave before working through your actual implementation. A lightweight way to accomplish this goal is to use <strong><a data-paste-element="ANCHOR" data-paste-core-version="21.4.0" href="/docs/serverless/functions-assets/functions" title="Twilio Serverless Functions" class="css-lpeit6">Twilio Serverless Functions</a></strong> and inspect status callbacks <a data-paste-element="ANCHOR" data-paste-core-version="21.4.0" href="/docs/serverless/functions-assets/functions/debugging" title="in the Console by using the Function Editor&#x27;s debugging feature" class="css-lpeit6">in the Console by using the Function Editor&#x27;s debugging feature</a>.</p><ol data-paste-element="ORDERED_LIST" data-paste-core-version="21.0.1" type="1" class="css-w38rkw">
<li data-paste-element="LIST_ITEM" data-paste-core-version="21.0.1" class="css-1pp5a8v">Log into your Twilio Account</li>
<li data-paste-element="LIST_ITEM" data-paste-core-version="21.0.1" class="css-1pp5a8v">If you do not already have a suitable <a data-paste-element="ANCHOR" data-paste-core-version="21.4.0" href="https://console.twilio.com/us1/develop/functions/services" rel="noreferrer noopener" target="_blank" title="Functions and Assets Service" class="css-lpeit6"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj">Functions and Assets Service<span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1ezs782"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="LinkExternalIcon-_R_akl4alak9b5al5dlbkm_"><title id="LinkExternalIcon-_R_akl4alak9b5al5dlbkm_">(link takes you to an external page)</title><path fill="currentColor" fill-rule="evenodd" d="M8.4 4.5a.5.5 0 01.5.5v.1a.5.5 0 01-.5.5H5.6v8.8h8.8v-2.8a.5.5 0 01.41-.492l.09-.008h.1a.5.5 0 01.492.41l.008.09V15a.5.5 0 01-.41.492L15 15.5H5a.5.5 0 01-.492-.41L4.5 15V5a.5.5 0 01.41-.492L5 4.5h3.4zm6.6 0a.5.5 0 01.5.5v.1l-.001.01.001 3.29a.5.5 0 01-.5.5h-.1a.5.5 0 01-.5-.5l-.001-1.935-3.967 3.967a.611.611 0 01-.78.07l-.084-.07a.611.611 0 01-.07-.78l.07-.084L13.534 5.6H11.6a.5.5 0 01-.5-.5V5a.5.5 0 01.5-.5H15z"></path></svg></span></span></span></a> in your Console, you can <a data-paste-element="ANCHOR" data-paste-core-version="21.4.0" href="/docs/serverless/functions-assets/functions/create-service" title="create a new service" class="css-lpeit6">create a new service</a> for your status callback handler endpoint. Let&#x27;s assume you created a new service under the name <code data-paste-element="INLINE_CODE" data-paste-core-version="21.4.0" class="css-1kwd7zr">status-callback-prototyping</code>.</li>
<li data-paste-element="LIST_ITEM" data-paste-core-version="21.0.1" class="css-1pp5a8v">From your service go to the <a data-paste-element="ANCHOR" data-paste-core-version="21.4.0" href="/docs/serverless/functions-assets/functions#get-started-with-serverless-and-twilio-functions" title="Functions Editor" class="css-lpeit6">Functions Editor</a> to <strong>Add</strong> a new Function e.g. under the path <code data-paste-element="INLINE_CODE" data-paste-core-version="21.4.0" class="css-1kwd7zr">/message-status</code> with the following handler code:</li>
</ol><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-slcqjs"><div data-paste-element="CODE_BLOCK_WRAPPER" data-paste-core-version="21.4.0" class="css-1ft5k6i"><div data-paste-element="CODE_BLOCK" data-paste-core-version="21.4.0" class="css-1lrte93"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-ba3ttd"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><button data-paste-element="CODE_BLOCK_COPY_BUTTON" data-paste-core-version="21.4.0" tabindex="0" aria-describedby="_R_j6kelak9b5al5dlbkm_" aria-busy="false" type="button" class="css-8sx3rd"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1lgr57j"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="CopyIcon-_R_39jj6kelak9b5al5dlbkm_"><path fill="currentColor" fill-rule="evenodd" d="M13.469 2.5c.63 0 1.15.48 1.212 1.094l.007.125-.001 1.593h1.407c.73 0 1.331.558 1.4 1.271l.006.136v9.375c0 .776-.63 1.406-1.406 1.406H6.719c-.777 0-1.407-.63-1.407-1.406v-1.407H3.719c-.631 0-1.15-.48-1.213-1.094L2.5 13.47v-9.75c0-.631.48-1.15 1.094-1.213L3.72 2.5h9.75zm2.625 3.75H6.719a.469.469 0 00-.469.469v9.375c0 .259.21.468.469.468h9.375c.259 0 .468-.21.468-.468V6.719a.469.469 0 00-.468-.469zm-2.625-2.813h-9.75a.281.281 0 00-.274.217l-.007.065v9.75c0 .133.092.244.216.274l.065.007 1.593-.001v-7.03c0-.731.558-1.332 1.271-1.4l.136-.006 7.031-.001V3.719a.281.281 0 00-.217-.274l-.064-.007z"></path></svg></span><span data-paste-element="BOX" data-paste-core-version="21.4.0" aria-live="polite" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1cbdvo6">Copy code block</span></span></span></span></button></div></div><div data-paste-element="CODE_BLOCK_CONTENT" data-paste-core-version="21.4.0" class="css-1yf26d7"><pre data-theme="github-dark" data-lang="javascript" style="color:white;font-family:&#x27;TwilioSansMono&#x27;, Courier, monospace;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;font-size:1em;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;margin:0;overflow:auto;background:inherit;width:100%;padding-bottom:2rem" tabindex="0" class="css-1p78m0" data-ch="true"><div style="min-width:fit-content"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-519pyc">1</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div><span style="color:#8B949E">// Log Status Callback requests</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-519pyc">2</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-519pyc">3</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div><span style="color:#79C0FF">exports</span><span style="color:#C9D1D9">.</span><span style="color:#D2A8FF">handler</span> <span style="color:#FF7B72">= function</span><span style="color:#C9D1D9">(</span><span style="color:#FFA657">context</span><span style="color:#C9D1D9">,</span> <span style="color:#FFA657">event</span><span style="color:#C9D1D9">,</span> <span style="color:#FFA657">callback</span><span style="color:#C9D1D9">) {</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-519pyc">4</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>  <span style="color:#C9D1D9">console.</span><span style="color:#D2A8FF">log</span><span style="color:#C9D1D9">(</span><span style="color:#A5D6FF">&quot;Invoked with: &quot;</span><span style="color:#C9D1D9">, event);</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-519pyc">5</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>  <span style="color:#FF7B72">return</span> <span style="color:#D2A8FF">callback</span><span style="color:#C9D1D9">(</span><span style="color:#79C0FF">null</span><span style="color:#C9D1D9">,</span> <span style="color:#A5D6FF">&quot;OK&quot;</span><span style="color:#C9D1D9">);</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-519pyc">6</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div><span style="color:#C9D1D9">};</span></div></div></div></div></pre></div></div></div></div><p data-paste-element="PARAGRAPH" data-paste-core-version="21.0.1" class="css-t3ja6c">By default your new serverless function is <a data-paste-element="ANCHOR" data-paste-core-version="21.4.0" href="/docs/serverless/functions-assets/visibility#protected" title="created as a protected endpoint" class="css-lpeit6">created as a protected endpoint</a>, which means Twilio Serverless performs signature validation to ensure only valid Twilio requests invoke your handler.</p><ol data-paste-element="ORDERED_LIST" data-paste-core-version="21.0.1" start="4" type="1" class="css-w38rkw">
<li data-paste-element="LIST_ITEM" data-paste-core-version="21.0.1" class="css-1pp5a8v"><strong>Save</strong> the new function.</li>
<li data-paste-element="LIST_ITEM" data-paste-core-version="21.0.1" class="css-1pp5a8v">Deploy your new serverless function by pressing <strong>Deploy All</strong>.</li>
<li data-paste-element="LIST_ITEM" data-paste-core-version="21.0.1" class="css-1pp5a8v">Change the toggle control above the bottom-right corner logging window to <strong>Live logs on</strong>.</li>
<li data-paste-element="LIST_ITEM" data-paste-core-version="21.0.1" class="css-1pp5a8v">Click on the <strong>Copy URL</strong> link above the bottom-right logging window to copy the URL for your prototype status callback endpoint into your clipboard. The copied URL would look something like this: <code data-paste-element="INLINE_CODE" data-paste-core-version="21.4.0" class="css-1kwd7zr">https://status-callback-prototyping-1234.twil.io/message-status</code>.</li>
</ol><p data-paste-element="PARAGRAPH" data-paste-core-version="21.0.1" class="css-t3ja6c">You can now use your copied status callback URL in the next step of this guide: <a data-paste-element="ANCHOR" data-paste-core-version="21.4.0" href="/docs/messaging/guides/track-outbound-message-status#step-2-send-a-message-with-status-callback-url" title="Step 2. Send a message with status callback URL" class="css-lpeit6">Step 2. Send a message with status callback URL</a>.</p><ol data-paste-element="ORDERED_LIST" data-paste-core-version="21.0.1" start="8" type="1" class="css-w38rkw">
<li data-paste-element="LIST_ITEM" data-paste-core-version="21.0.1" class="css-1pp5a8v">Once you sent a message, you can inspect the logged status callback request in the bottom-right logging window of the Functions Editor in Console.</li>
</ol><style data-emotion="css 1cxfq70">.css-1cxfq70{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;margin-bottom:1.5rem;}li .css-1cxfq70{margin-top:1.5rem;}.css-1cxfq70 div{display:inline-block;position:relative;margin:auto;max-width:100%;height:auto;}.css-1cxfq70 div:hover button{opacity:1;}.css-1cxfq70 div img{display:block;margin:auto;max-width:100%;max-height:31.5rem;height:auto;object-fit:contain;border-radius:4px;cursor:-webkit-zoom-in;cursor:zoom-in;}.css-1cxfq70 div button{opacity:0;position:absolute;top:1rem;right:1rem;-webkit-transition:opacity .2s ease-in-out;transition:opacity .2s ease-in-out;}.css-1cxfq70 div button:focus,.css-1cxfq70 div button:hover{opacity:1;}</style><style data-emotion="css wszb6a">.css-wszb6a{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;margin-bottom:1.5rem;}li .css-wszb6a{margin-top:1.5rem;}.css-wszb6a div{display:inline-block;position:relative;margin:auto;max-width:100%;height:auto;}.css-wszb6a div:hover button{opacity:1;}.css-wszb6a div img{display:block;margin:auto;max-width:100%;max-height:31.5rem;height:auto;object-fit:contain;border-radius:4px;cursor:-webkit-zoom-in;cursor:zoom-in;}.css-wszb6a div button{opacity:0;position:absolute;top:1rem;right:1rem;-webkit-transition:opacity .2s ease-in-out;transition:opacity .2s ease-in-out;}.css-wszb6a div button:focus,.css-wszb6a div button:hover{opacity:1;}</style><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-wszb6a"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><img alt="Twilio Functions Editor showing message-status function with code to log status callback requests." loading="lazy" width="1600" height="836" decoding="async" data-nimg="1" style="color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url(&quot;data:image/svg+xml;charset=utf-8,%3Csvg xmlns=&#x27;http://www.w3.org/2000/svg&#x27; viewBox=&#x27;0 0 1600 836&#x27;%3E%3Cfilter id=&#x27;b&#x27; color-interpolation-filters=&#x27;sRGB&#x27;%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3CfeColorMatrix values=&#x27;1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1&#x27; result=&#x27;s&#x27;/%3E%3CfeFlood x=&#x27;0&#x27; y=&#x27;0&#x27; width=&#x27;100%25&#x27; height=&#x27;100%25&#x27;/%3E%3CfeComposite operator=&#x27;out&#x27; in=&#x27;s&#x27;/%3E%3CfeComposite in2=&#x27;SourceGraphic&#x27;/%3E%3CfeGaussianBlur stdDeviation=&#x27;20&#x27;/%3E%3C/filter%3E%3Cimage width=&#x27;100%25&#x27; height=&#x27;100%25&#x27; x=&#x27;0&#x27; y=&#x27;0&#x27; preserveAspectRatio=&#x27;none&#x27; style=&#x27;filter: url(%23b);&#x27; href=&#x27;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAACCAYAAAB/qH1jAAAACXBIWXMAABibAAAYmwFJdYOUAAAALUlEQVR4nAEiAN3/AJmYmv/Av77/5+Xl//Pz8v8ADw0W/29sbf8hHiH/T0tM/4OTFErCpEhmAAAAAElFTkSuQmCC&#x27;/%3E%3C/svg%3E&quot;)" srcSet="https://docs-resources.prod.twilio.com/f5e1b1b84fb3ab3d2ac3b6005b8477e754a9973116e30dc6478fc9a55762fe4c/1920.webp 1x, https://docs-resources.prod.twilio.com/f5e1b1b84fb3ab3d2ac3b6005b8477e754a9973116e30dc6478fc9a55762fe4c/3840.webp 2x" src="https://docs-resources.prod.twilio.com/f5e1b1b84fb3ab3d2ac3b6005b8477e754a9973116e30dc6478fc9a55762fe4c/3840.webp"/><button data-paste-element="BUTTON" data-paste-core-version="21.4.0" aria-busy="false" type="button" class="css-1x54ie9"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1lgr57j"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" fill="none" viewBox="0 0 20 20" aria-labelledby="ZoomInIcon-_R_6daj2lak9b5al5dlbkm_"><path fill="currentColor" d="M5.5 8a.5.5 0 000 1H8v2.5a.5.5 0 101 0V9h2.5a.5.5 0 000-1H9V5.5a.5.5 0 00-1 0V8H5.5z"></path><path fill="currentColor" fill-rule="evenodd" d="M12.8 13.507a6.543 6.543 0 01-10.303-7.47 6.542 6.542 0 1111.01 6.762l4.347 4.347a.5.5 0 11-.708.707l-4.345-4.346zM5.464 3.933a5.542 5.542 0 016.997 8.526l-.014.015a5.543 5.543 0 11-6.983-8.54z" clip-rule="evenodd"></path></svg></span>Expand image</span></button></div></div></div></div></div></div><p data-paste-element="PARAGRAPH" data-paste-core-version="21.0.1" class="css-t3ja6c">Your response to Twilio&#x27;s status callback request should have an HTTP status code of <code data-paste-element="INLINE_CODE" data-paste-core-version="21.4.0" class="css-1kwd7zr">200</code> (OK). No response content is required.</p><p data-paste-element="PARAGRAPH" data-paste-core-version="21.0.1" class="css-t3ja6c">What your status callback handler should do when receiving a status callback request, depends on your use case.</p><p data-paste-element="PARAGRAPH" data-paste-core-version="21.0.1" class="css-t3ja6c">The following simplified web application illustrates how you could log the <code data-paste-element="INLINE_CODE" data-paste-core-version="21.4.0" class="css-1kwd7zr">MessageSid</code> and <code data-paste-element="INLINE_CODE" data-paste-core-version="21.4.0" class="css-1kwd7zr">MessageStatus</code> of outbound messages as they move through their lifecycle.</p><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-rj5eb"><div data-paste-element="CALLOUT" data-paste-core-version="21.4.0" class="css-1tn0jga"><div data-paste-element="CALLOUT_ICON" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-5ybmgr"><svg role="img" aria-hidden="true" width="100%" height="100%" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-labelledby="WarningIcon-_R_36kpb5al5dlbkm_"><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M17.798 14.791L11.316 3.744c-.582-.992-2.05-.992-2.632 0L2.202 14.79C1.625 15.776 2.354 17 3.518 17h12.964c1.164 0 1.893-1.224 1.316-2.209zM9.99 8h.02c.611.007 1.073.592.978 1.244l-.428 2.238c-.04.296-.278.518-.557.518h-.006c-.279 0-.516-.222-.557-.518l-.428-2.238C8.917 8.592 9.386 8 9.99 8zm.01 7a1 1 0 100-2 1 1 0 000 2z"></path></svg></span><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1cbdvo6">(warning)</span></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-fkfdww"><h2 data-paste-element="CALLOUT_HEADING" data-paste-core-version="21.0.1" class="css-kevsq9">Warning</h2><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1ircowi"><p data-paste-element="PARAGRAPH" data-paste-core-version="21.0.1" class="css-t3ja6c">Status callback requests are HTTP requests and are therefore subject to differences in latency caused by changing network conditions.</p><p data-paste-element="PARAGRAPH" data-paste-core-version="21.0.1" class="css-t3ja6c">Status callback requests are sent in accordance with the message status transitions described in the guide <a data-paste-element="ANCHOR" data-paste-core-version="21.4.0" href="/docs/messaging/guides/outbound-message-status-in-status-callbacks" title="Outbound Message Status in Status Callbacks" class="css-lpeit6">Outbound Message Status in Status Callbacks</a>. Some of these status transitions may occur in quick succession.</p><p data-paste-element="PARAGRAPH" data-paste-core-version="21.0.1" class="css-t3ja6c">As a result, there is no guarantee that the status callback requests always arrive at your endpoint in the order they were sent.</p><p data-paste-element="PARAGRAPH" data-paste-core-version="21.0.1" class="css-t3ja6c">You should bear this consideration in mind when implementing your status callback handler.</p></div></div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-rj5eb"><div data-paste-element="CALLOUT" data-paste-core-version="21.4.0" class="css-1v816ix"><div data-paste-element="CALLOUT_ICON" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-1cst9vu"><svg role="img" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="NeutralIcon-_R_36ktb5al5dlbkm_"><path fill="currentColor" fill-rule="evenodd" d="M10 2a8 8 0 110 16 8 8 0 010-16zm0 7c-.26.01-.528.08-.707.24-.178.158-.292.355-.292.575v3.37c0 .21.11.428.292.577.173.14.457.247.707.237.26-.008.528-.078.707-.237.178-.16.292-.355.292-.577v-3.37a.766.766 0 00-.292-.575A1.14 1.14 0 0010 9zm0-3l-.266.036c-.17.047-.318.131-.441.253l-.156.198A.958.958 0 009 6.98v.04a.728.728 0 00.086.378c.04.121.108.227.206.315.09.094.197.163.321.202.12.06.248.09.386.084l.266-.035c.17-.047.318-.131.441-.253l.156-.198A.958.958 0 0011 7.02v-.04a.728.728 0 00-.086-.378.721.721 0 00-.206-.315.757.757 0 00-.321-.202.767.767 0 00-.386-.084z"></path></svg></span><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1cbdvo6">(information)</span></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-fkfdww"><h2 data-paste-element="CALLOUT_HEADING" data-paste-core-version="21.0.1" class="css-kevsq9">Info</h2><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1ircowi"><p data-paste-element="PARAGRAPH" data-paste-core-version="21.0.1" class="css-t3ja6c">Read our guide <a data-paste-element="ANCHOR" data-paste-core-version="21.4.0" href="/docs/messaging/guides/outbound-message-logging" title="Best Practices for Messaging Delivery Status Logging" class="css-lpeit6">Best Practices for Messaging Delivery Status Logging</a> for advanced considerations when implementing a production-grade status logging solution.</p></div></div></div></div><style data-emotion="css uvbrx2">.css-uvbrx2{box-sizing:border-box;margin-bottom:1.5rem;overflow:hidden;}</style><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-uvbrx2"><div data-paste-element="CODE_BLOCK_WRAPPER" data-paste-core-version="21.4.0" class="css-1ft5k6i"><style data-emotion="css 1vk3mjb">.css-1vk3mjb{box-sizing:border-box;background-color:rgb(31, 48, 76);padding-top:1rem;padding-bottom:1rem;padding-left:1.5rem;padding-right:1.5rem;margin:0;border-top-left-radius:4px;border-top-right-radius:4px;font-weight:600;font-size:0.875rem;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-column-gap:0.75rem;column-gap:0.75rem;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}@media screen and (min-width: 768px){.css-1vk3mjb{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}}</style><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1vk3mjb"><style data-emotion="css 2ib1ps">.css-2ib1ps{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex:auto;-ms-flex:auto;flex:auto;max-width:100%;overflow-x:auto;}</style><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-2ib1ps"><style data-emotion="css eely4y">.css-eely4y{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-bottom:1rem;overflow-x:hidden;}@media screen and (min-width: 768px){.css-eely4y{margin-bottom:0;}}</style><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-eely4y"><style data-emotion="css ztvk33">.css-ztvk33{box-sizing:border-box;color:rgb(255, 255, 255);overflow-x:hidden;}</style><span data-paste-element="BOX" data-paste-core-version="21.4.0" id="code-handle-a-message-status-callback-request" class="css-ztvk33"><style data-emotion="css 9nq3e2">.css-9nq3e2{box-sizing:border-box;display:inline-block;vertical-align:bottom;-webkit-text-decoration:inherit;text-decoration:inherit;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}</style><span data-paste-element="BOX" data-paste-core-version="21.4.0" title="Handle a Message status callback request" class="css-9nq3e2">Handle a Message status callback request</span></span><style data-emotion="css 2tt14g">.css-2tt14g{box-sizing:border-box;-webkit-text-decoration:none;text-decoration:none;margin:0.5rem;color:rgb(96, 107, 133);border-radius:2px;outline:none;display:inline-block;vertical-align:text-bottom;}.css-2tt14g:hover{color:rgb(202, 205, 216);}.css-2tt14g:focus{box-shadow:0 0 0 2px #ffffff,0 0 0 3px #006dfa,0 0 0 5px #cce4ff;color:rgb(202, 205, 216);}</style><a data-paste-element="BOX" data-paste-core-version="21.4.0" href="#code-handle-a-message-status-callback-request" class="css-2tt14g"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" fill="none" viewBox="0 0 20 20" aria-labelledby="LinkIcon-_R_l9jb1b5al5dlbkm_"><title id="LinkIcon-_R_l9jb1b5al5dlbkm_">Link to code sample: Handle a Message status callback request</title><path fill="currentColor" d="M13.074 5.674a2.3 2.3 0 013.252 3.252l-2.97 2.97A2.3 2.3 0 019.869 8.92a.5.5 0 10-.808-.588 3.3 3.3 0 005.004 4.272l2.97-2.97a3.3 3.3 0 00-4.667-4.666l-.467.466a.5.5 0 10.707.707l.467-.466z"></path><path fill="currentColor" d="M9.18 7.163a2.3 2.3 0 011.952 3.65.5.5 0 10.809.59A3.3 3.3 0 006.936 7.13l-2.97 2.97a3.3 3.3 0 004.667 4.667l.58-.58a.5.5 0 10-.707-.707l-.58.58a2.3 2.3 0 11-3.252-3.252l2.97-2.97c.409-.41.958-.652 1.536-.675z"></path></svg></span></a></div></div><style data-emotion="css uedoeu">.css-uedoeu{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end;-webkit-column-gap:0.75rem;column-gap:0.75rem;width:100%;}@media screen and (min-width: 768px){.css-uedoeu{width:auto;}}</style><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-uedoeu"><style data-emotion="css s0z4m">.css-s0z4m{box-sizing:border-box;width:100%;}@media screen and (min-width: 768px){.css-s0z4m{width:auto;}}</style><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-s0z4m"><style data-emotion="css 116z8rp">.css-116z8rp{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%;background-color:rgb(18, 28, 45);box-shadow:0 0 0 1px #8891aa;border-radius:8px;color:rgb(255, 255, 255);-webkit-transition:box-shadow 100ms ease-in;transition:box-shadow 100ms ease-in;cursor:text;}.css-116z8rp:hover{box-shadow:0 0 0 1px #ffffff;}.css-116z8rp:focus-within{background-color:rgb(18, 28, 45);box-shadow:0 0 0 1px #394762,0 0 0 3px #121c2d,0 0 0 4px #ffffff,0 0 0 6px rgba(255, 255, 255, 0.2);}.css-116z8rp:active,.css-116z8rp[data-active=true]{box-shadow:0 0 0 1px #ffffff;}</style><div data-paste-element="SELECT" data-paste-core-version="21.4.0" class="css-116z8rp"><style data-emotion="css 1p04ivx">.css-1p04ivx{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%;position:relative;}</style><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1p04ivx"><style data-emotion="css 1eeu8f4">.css-1eeu8f4{box-sizing:border-box;width:100%;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;background-color:rgb(18, 28, 45);border:none;border-radius:8px;box-shadow:none;color:inherit;cursor:pointer;display:block;font-family:inherit;font-size:0.875rem;font-weight:500;line-height:1.25rem;margin:0;outline:none;padding-bottom:0.5rem;padding-left:0.75rem;padding-right:2.25rem;padding-top:0.5rem;resize:none;}.css-1eeu8f4:disabled,.css-1eeu8f4:disabled:focus,.css-1eeu8f4:disabled:hover,.css-1eeu8f4[aria-disabled=true],.css-1eeu8f4[aria-disabled=true]:focus,.css-1eeu8f4[aria-disabled=true]:hover{color:rgb(75, 86, 113);background-color:transparent;cursor:not-allowed;opacity:1;}</style><select data-paste-element="SELECT_ELEMENT" data-paste-core-version="21.4.0" id="code-sample-code-sample-_R_11b5al5dlbkm_" aria-label="Select sample" tabindex="0" aria-describedby="paste-tooltip-_R_4qjb1b5al5dlbkm_" data-not-selectize="true" class="css-1eeu8f4"><style data-emotion="css 1raivgc">.css-1raivgc{box-sizing:border-box;background-color:inherit;color:inherit;font-family:inherit;line-height:1.75rem;padding-top:0.5rem;padding-bottom:0.5rem;padding-left:0.25rem;}</style><option data-paste-element="OPTION" data-paste-core-version="21.4.0" value="Node.js" class="css-1raivgc" selected="">Node.js</option><option data-paste-element="OPTION" data-paste-core-version="21.4.0" value="Python" class="css-1raivgc">Python</option><option data-paste-element="OPTION" data-paste-core-version="21.4.0" value="C#" class="css-1raivgc">C#</option><option data-paste-element="OPTION" data-paste-core-version="21.4.0" value="Java" class="css-1raivgc">Java</option><option data-paste-element="OPTION" data-paste-core-version="21.4.0" value="Go" class="css-1raivgc">Go</option><option data-paste-element="OPTION" data-paste-core-version="21.4.0" value="PHP" class="css-1raivgc">PHP</option><option data-paste-element="OPTION" data-paste-core-version="21.4.0" value="Ruby" class="css-1raivgc">Ruby</option></select><style data-emotion="css 68zvok">.css-68zvok{box-sizing:border-box;background-color:rgb(24, 37, 60);border-radius:4px;cursor:pointer;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;position:absolute;pointer-events:none;right:0.5rem;top:50%;-webkit-transform:translateY(-50%);-moz-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);z-index:10;}</style><div data-paste-element="SELECT_CHEVRON_WRAPPER" data-paste-core-version="21.4.0" class="css-68zvok"><style data-emotion="css 1v61162">.css-1v61162{box-sizing:border-box;line-height:0;display:block;color:rgb(136, 145, 170);width:1.25rem;height:1.25rem;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;}</style><span data-paste-element="SELECT_ICON" data-paste-core-version="21.4.0" class="css-1v61162"><svg role="img" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="ChevronDownIcon-_R_1aksqjb1b5al5dlbkm_"><path fill="currentColor" fill-rule="evenodd" d="M6.293 8.293a1 1 0 011.32-.083l.094.083L10 10.585l2.293-2.292a1 1 0 011.32-.083l.094.083a1 1 0 01.083 1.32l-.083.094-3 3a1 1 0 01-1.32.083l-.094-.083-3-3a1 1 0 010-1.414z"></path></svg></span></div></div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><button data-paste-element="CODE_BLOCK_REPORT_BUTTON" data-paste-core-version="21.4.0" tabindex="0" aria-describedby="_R_5ajb1b5al5dlbkm_" aria-busy="false" type="button" class="css-s7diru"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1lgr57j"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" fill="none" viewBox="0 0 20 20" aria-labelledby="ProductDebuggerIcon-_R_d6ddajb1b5al5dlbkm_"><path fill="currentColor" fill-rule="evenodd" d="M17.466 11.678a.533.533 0 100-1.064h-1.067a6.35 6.35 0 00-.272-1.835 3.176 3.176 0 011.328-.292h.01a.533.533 0 10.003-1.064h-.013c-.594 0-1.182.124-1.725.365l-.017-.036-.008-.016a6.426 6.426 0 00-2.278-2.507c1.202-.861 1.344-1.86 1.344-3.697a.533.533 0 00-1.066 0c0 1.905-.126 2.458-1.386 3.136a6.33 6.33 0 00-4.67.012c-1.282-.683-1.41-1.232-1.41-3.148a.533.533 0 00-1.067 0c0 1.85.145 2.85 1.371 3.715a6.427 6.427 0 00-2.248 2.489l-.008.016-.017.036a4.244 4.244 0 00-1.725-.365h-.013a.533.533 0 10.013 1.064c.459 0 .912.1 1.328.292a6.35 6.35 0 00-.272 1.835H2.534a.533.533 0 100 1.064h1.163c.144.857.463 1.676.938 2.405a3.196 3.196 0 01-2.098.788h-.003a.533.533 0 100 1.065h.003a4.261 4.261 0 002.753-1.014 6.374 6.374 0 009.42 0 4.261 4.261 0 002.753 1.014h.003a.533.533 0 100-1.065h-.003c-.772 0-1.517-.28-2.098-.788a6.32 6.32 0 00.938-2.405h1.163zM10 5.292c.69 0 1.375.135 2.014.397a.53.53 0 00.206.092 5.35 5.35 0 012.036 1.64H5.744A5.326 5.326 0 0110 5.29zm-5.333 5.322c0-.733.153-1.458.449-2.13h4.35v7.425a5.333 5.333 0 01-4.799-5.295zm5.866 5.295V8.485h4.351a5.306 5.306 0 01-.28 4.818 5.327 5.327 0 01-4.07 2.606z" clip-rule="evenodd"></path></svg></span><span data-paste-element="BOX" data-paste-core-version="21.4.0" aria-live="polite" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1cbdvo6">Report code block</span></span></span></span></button></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><button data-paste-element="CODE_BLOCK_COPY_BUTTON" data-paste-core-version="21.4.0" tabindex="0" aria-describedby="_R_5qjb1b5al5dlbkm_" aria-busy="false" type="button" class="css-s7diru"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1lgr57j"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="CopyIcon-_R_qctqjb1b5al5dlbkm_"><path fill="currentColor" fill-rule="evenodd" d="M13.469 2.5c.63 0 1.15.48 1.212 1.094l.007.125-.001 1.593h1.407c.73 0 1.331.558 1.4 1.271l.006.136v9.375c0 .776-.63 1.406-1.406 1.406H6.719c-.777 0-1.407-.63-1.407-1.406v-1.407H3.719c-.631 0-1.15-.48-1.213-1.094L2.5 13.47v-9.75c0-.631.48-1.15 1.094-1.213L3.72 2.5h9.75zm2.625 3.75H6.719a.469.469 0 00-.469.469v9.375c0 .259.21.468.469.468h9.375c.259 0 .468-.21.468-.468V6.719a.469.469 0 00-.468-.469zm-2.625-2.813h-9.75a.281.281 0 00-.274.217l-.007.065v9.75c0 .133.092.244.216.274l.065.007 1.593-.001v-7.03c0-.731.558-1.332 1.271-1.4l.136-.006 7.031-.001V3.719a.281.281 0 00-.217-.274l-.064-.007z"></path></svg></span><span data-paste-element="BOX" data-paste-core-version="21.4.0" aria-live="polite" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1cbdvo6">Copy code block</span></span></span></span></button></div></div></div><div data-paste-element="CODE_BLOCK" data-paste-core-version="21.4.0" class="css-1lrte93"><div data-paste-element="CODE_BLOCK_CONTENT" data-paste-core-version="21.4.0" class="css-1yf26d7"><pre data-theme="github-dark" data-lang="javascript" style="color:white;font-family:&#x27;TwilioSansMono&#x27;, Courier, monospace;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;font-size:1em;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;margin:0;overflow:auto;background:inherit;width:100%;padding-bottom:2rem" tabindex="0" class="css-1p78m0" data-ch="true"><div style="min-width:fit-content"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><style data-emotion="css 1m136ci">.css-1m136ci{box-sizing:border-box;display:inline-block;box-sizing:content-box;opacity:0.5;padding-left:1.5rem;padding-right:1.5ch;text-align:right;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;min-width:2ch;}</style><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">1</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div><span style="color:#FF7B72">const</span> <span style="color:#79C0FF">http</span> <span style="color:#FF7B72">=</span> <span style="color:#D2A8FF">require</span><span style="color:#C9D1D9">(</span><span style="color:#A5D6FF">&#x27;http&#x27;</span><span style="color:#C9D1D9">);</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">2</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div><span style="color:#FF7B72">const</span> <span style="color:#79C0FF">express</span> <span style="color:#FF7B72">=</span> <span style="color:#D2A8FF">require</span><span style="color:#C9D1D9">(</span><span style="color:#A5D6FF">&#x27;express&#x27;</span><span style="color:#C9D1D9">);</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">3</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div><span style="color:#FF7B72">const</span> <span style="color:#79C0FF">bodyParser</span> <span style="color:#FF7B72">=</span> <span style="color:#D2A8FF">require</span><span style="color:#C9D1D9">(</span><span style="color:#A5D6FF">&#x27;body-parser&#x27;</span><span style="color:#C9D1D9">);</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">4</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">5</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div><span style="color:#FF7B72">const</span> <span style="color:#79C0FF">app</span> <span style="color:#FF7B72">=</span> <span style="color:#D2A8FF">express</span><span style="color:#C9D1D9">();</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">6</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">7</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div><span style="color:#C9D1D9">app.</span><span style="color:#D2A8FF">use</span><span style="color:#C9D1D9">(bodyParser.</span><span style="color:#D2A8FF">urlencoded</span><span style="color:#C9D1D9">({ extended:</span> <span style="color:#79C0FF">true</span> <span style="color:#C9D1D9">}));</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">8</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">9</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div><span style="color:#C9D1D9">app.</span><span style="color:#D2A8FF">post</span><span style="color:#C9D1D9">(</span><span style="color:#A5D6FF">&#x27;/message-status&#x27;</span><span style="color:#C9D1D9">, (</span><span style="color:#FFA657">req</span><span style="color:#C9D1D9">,</span> <span style="color:#FFA657">res</span><span style="color:#C9D1D9">)</span> <span style="color:#FF7B72">=&gt;</span> <span style="color:#C9D1D9">{</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">10</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>  <span style="color:#FF7B72">const</span> <span style="color:#79C0FF">messageSid</span> <span style="color:#FF7B72">=</span> <span style="color:#C9D1D9">req.body.MessageSid;</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">11</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>  <span style="color:#FF7B72">const</span> <span style="color:#79C0FF">messageStatus</span> <span style="color:#FF7B72">=</span> <span style="color:#C9D1D9">req.body.MessageStatus;</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">12</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">13</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>  <span style="color:#C9D1D9">console.</span><span style="color:#D2A8FF">log</span><span style="color:#C9D1D9">(</span><span style="color:#A5D6FF">`SID: ${</span><span style="color:#C9D1D9">messageSid</span><span style="color:#A5D6FF">}, Status: ${</span><span style="color:#C9D1D9">messageStatus</span><span style="color:#A5D6FF">}`</span><span style="color:#C9D1D9">);</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">14</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">15</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>  <span style="color:#C9D1D9">res.</span><span style="color:#D2A8FF">sendStatus</span><span style="color:#C9D1D9">(</span><span style="color:#79C0FF">200</span><span style="color:#C9D1D9">);</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">16</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div><span style="color:#C9D1D9">});</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">17</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">18</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div><span style="color:#C9D1D9">http.</span><span style="color:#D2A8FF">createServer</span><span style="color:#C9D1D9">(app).</span><span style="color:#D2A8FF">listen</span><span style="color:#C9D1D9">(</span><span style="color:#79C0FF">1337</span><span style="color:#C9D1D9">, ()</span> <span style="color:#FF7B72">=&gt;</span> <span style="color:#C9D1D9">{</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">19</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>  <span style="color:#C9D1D9">console.</span><span style="color:#D2A8FF">log</span><span style="color:#C9D1D9">(</span><span style="color:#A5D6FF">&#x27;Express server listening on port 1337&#x27;</span><span style="color:#C9D1D9">);</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">20</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div><span style="color:#C9D1D9">});</span></div></div></div></div></pre></div></div></div></div><hr data-paste-element="SEPARATOR" data-paste-core-version="21.4.0" aria-orientation="horizontal" class="css-1y5brhz"/></section>
<section id="step-2-send-a-message-with-status-callback-url-section-indexable"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-m8ey6p"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-gt12nx"><h2 data-paste-element="HEADING" data-paste-core-version="21.0.1" id="step-2-send-a-message-with-status-callback-url" class="css-132spa5">Step 2. Send a message with status callback URL</h2><a data-paste-element="BOX" data-paste-core-version="21.4.0" href="#step-2-send-a-message-with-status-callback-url" class="css-f02h4i"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" fill="none" viewBox="0 0 20 20" aria-labelledby="LinkIcon-_R_2l65f5al5dlbkm_"><title id="LinkIcon-_R_2l65f5al5dlbkm_">step-2-send-a-message-with-status-callback-url page anchor</title><path fill="currentColor" d="M13.074 5.674a2.3 2.3 0 013.252 3.252l-2.97 2.97A2.3 2.3 0 019.869 8.92a.5.5 0 10-.808-.588 3.3 3.3 0 005.004 4.272l2.97-2.97a3.3 3.3 0 00-4.667-4.666l-.467.466a.5.5 0 10.707.707l.467-.466z"></path><path fill="currentColor" d="M9.18 7.163a2.3 2.3 0 011.952 3.65.5.5 0 10.809.59A3.3 3.3 0 006.936 7.13l-2.97 2.97a3.3 3.3 0 004.667 4.667l.58-.58a.5.5 0 10-.707-.707l-.58.58a2.3 2.3 0 11-3.252-3.252l2.97-2.97c.409-.41.958-.652 1.536-.675z"></path></svg></span></a></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1kam78h"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-knmi57"><button data-paste-element="BUTTON" data-paste-core-version="21.4.0" aria-pressed="false" aria-busy="false" type="button" class="css-qw1tfm"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1lgr57j"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" width="100%" height="100%" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-labelledby="ThumbsUpIcon-_R_j6la5f5al5dlbkm_"><title id="ThumbsUpIcon-_R_j6la5f5al5dlbkm_">Positive Feedback</title><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M6.5 7.45c.194-.216.406-.451.628-.707.799-.922 1.608-1.972 1.898-2.838.314-.938 1.139-1.487 1.966-1.395a1.57 1.57 0 011.085.621c.277.363.423.85.423 1.43 0 .327-.081.645-.174.924-.062.186-.139.383-.208.56l-.088.226c-.092.245-.15.432-.166.582-.014.134.01.19.033.222l.001.001a.415.415 0 00.1.058 1.9 1.9 0 00.371.11c.32.068.725.106 1.152.124.632.026 1.237.01 1.634-.002.147-.004.265-.008.345-.008.25 0 .731.008 1.158.218.224.11.443.28.603.537.159.256.239.567.239.924 0 1.218-.524 3.647-1.553 5.695-.31.616-.693.885-1.18 1.193-.574.364-1.145.575-1.767.575h-3c-1.116 0-2.204-.418-3.002-.883a6.393 6.393 0 01-.498-.322v.372a.5.5 0 01-.5.5H3a.5.5 0 01-.5-.5V7a.5.5 0 01.5-.5h3a.5.5 0 01.5.5v.45zm3.474-3.228c.186-.554.611-.751.909-.718a.57.57 0 01.399.233c.114.15.218.409.218.824 0 .17-.044.37-.123.61a9.287 9.287 0 01-.177.474c-.034.087-.07.177-.105.273-.095.252-.194.542-.225.827-.032.297.005.636.23.935.135.178.322.291.491.367.175.078.372.134.571.176.4.084.869.125 1.317.144.676.028 1.382.008 1.767-.003.118-.003.206-.006.254-.006.25 0 .519.018.717.115.088.044.15.098.194.168.044.07.089.19.089.396 0 1.04-.476 3.316-1.447 5.246-.184.367-.375.516-.82.797-.468.296-.855.42-1.233.42h-3c-.884 0-1.796-.338-2.498-.747a4.464 4.464 0 01-.813-.591 1.36 1.36 0 01-.184-.207l-.005-.008V8.968a7.331 7.331 0 01.329-.39l.308-.343c.223-.246.483-.534.746-.837.788-.909 1.73-2.097 2.091-3.176zM5.5 7.5h-2v7.667h2V7.5z"></path></svg></span></span></button><button data-paste-element="BUTTON" data-paste-core-version="21.4.0" aria-pressed="false" aria-busy="false" type="button" class="css-qw1tfm"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1lgr57j"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" width="100%" height="100%" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-labelledby="ThumbsDownIcon-_R_jala5f5al5dlbkm_"><title id="ThumbsDownIcon-_R_jala5f5al5dlbkm_">Negative Feedback</title><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M13.5 12.55c-.194.215-.406.451-.628.707-.799.921-1.608 1.972-1.898 2.838-.314.938-1.139 1.487-1.966 1.395a1.57 1.57 0 01-1.085-.621c-.277-.363-.423-.85-.423-1.43 0-.327.081-.645.174-.924.062-.186.139-.383.208-.56l.088-.226c.092-.245.15-.432.166-.582.014-.134-.01-.19-.033-.222l-.001-.001a.416.416 0 00-.1-.058 1.902 1.902 0 00-.371-.11 7.35 7.35 0 00-1.152-.124 22.958 22.958 0 00-1.634.002 14.2 14.2 0 01-.345.008c-.25 0-.731-.008-1.158-.218a1.451 1.451 0 01-.603-.537c-.159-.257-.239-.567-.239-.924 0-1.218.524-3.648 1.553-5.696.31-.616.693-.884 1.18-1.192C5.807 3.71 6.378 3.5 7 3.5h3c1.116 0 2.204.417 3.002.883.178.104.345.212.498.321v-.37a.5.5 0 01.5-.5h3a.5.5 0 01.5.5V13a.5.5 0 01-.5.5h-3a.5.5 0 01-.5-.5v-.45zm-3.474 3.227c-.186.554-.611.752-.909.72a.571.571 0 01-.399-.234c-.114-.15-.218-.409-.218-.824a2 2 0 01.123-.61c.054-.16.113-.312.177-.475.034-.086.07-.176.105-.272.095-.252.194-.542.225-.828.032-.296-.005-.635-.23-.934a1.23 1.23 0 00-.491-.367 2.874 2.874 0 00-.571-.176 8.31 8.31 0 00-1.317-.144c-.676-.029-1.381-.008-1.767.003-.118.003-.206.006-.254.006-.25 0-.519-.018-.717-.115a.452.452 0 01-.194-.168c-.044-.07-.089-.19-.089-.396 0-1.04.476-3.316 1.447-5.247.184-.366.375-.515.82-.796.468-.296.855-.42 1.233-.42h3c.884 0 1.796.337 2.498.747.349.203.628.414.813.59.093.09.152.16.184.208l.005.007v4.98a7.245 7.245 0 01-.329.39 54.1 54.1 0 01-.308.342c-.223.247-.483.534-.746.838-.788.909-1.73 2.096-2.091 3.175zM14.5 12.5h2V4.833h-2V12.5z"></path></svg></span></span></button></div></div></div><p data-paste-element="PARAGRAPH" data-paste-core-version="21.0.1" class="css-t3ja6c">In Step 1 you implemented a status callback handler which is publicly available at your status callback URL.</p><p data-paste-element="PARAGRAPH" data-paste-core-version="21.0.1" class="css-t3ja6c">In this step you learn how to ensure Twilio sends status callback requests to your status callback URL for outbound messages.</p><p data-paste-element="PARAGRAPH" data-paste-core-version="21.0.1" class="css-t3ja6c">How you do this may depend on whether you use a Messaging Service to send messages or not.</p></section>
<section id="scenario-1-no-messaging-service-section-indexable"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-m8ey6p"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-a8lapc"><h3 data-paste-element="HEADING" data-paste-core-version="21.0.1" id="scenario-1-no-messaging-service" class="css-zlgnaa">Scenario 1: No Messaging Service</h3><a data-paste-element="BOX" data-paste-core-version="21.4.0" href="#scenario-1-no-messaging-service" class="css-f02h4i"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" fill="none" viewBox="0 0 20 20" aria-labelledby="LinkIcon-_R_2l65j5al5dlbkm_"><title id="LinkIcon-_R_2l65j5al5dlbkm_">scenario-1-no-messaging-service page anchor</title><path fill="currentColor" d="M13.074 5.674a2.3 2.3 0 013.252 3.252l-2.97 2.97A2.3 2.3 0 019.869 8.92a.5.5 0 10-.808-.588 3.3 3.3 0 005.004 4.272l2.97-2.97a3.3 3.3 0 00-4.667-4.666l-.467.466a.5.5 0 10.707.707l.467-.466z"></path><path fill="currentColor" d="M9.18 7.163a2.3 2.3 0 011.952 3.65.5.5 0 10.809.59A3.3 3.3 0 006.936 7.13l-2.97 2.97a3.3 3.3 0 004.667 4.667l.58-.58a.5.5 0 10-.707-.707l-.58.58a2.3 2.3 0 11-3.252-3.252l2.97-2.97c.409-.41.958-.652 1.536-.675z"></path></svg></span></a></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1kam78h"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-knmi57"><button data-paste-element="BUTTON" data-paste-core-version="21.4.0" aria-pressed="false" aria-busy="false" type="button" class="css-qw1tfm"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1lgr57j"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" width="100%" height="100%" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-labelledby="ThumbsUpIcon-_R_j6la5j5al5dlbkm_"><title id="ThumbsUpIcon-_R_j6la5j5al5dlbkm_">Positive Feedback</title><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M6.5 7.45c.194-.216.406-.451.628-.707.799-.922 1.608-1.972 1.898-2.838.314-.938 1.139-1.487 1.966-1.395a1.57 1.57 0 011.085.621c.277.363.423.85.423 1.43 0 .327-.081.645-.174.924-.062.186-.139.383-.208.56l-.088.226c-.092.245-.15.432-.166.582-.014.134.01.19.033.222l.001.001a.415.415 0 00.1.058 1.9 1.9 0 00.371.11c.32.068.725.106 1.152.124.632.026 1.237.01 1.634-.002.147-.004.265-.008.345-.008.25 0 .731.008 1.158.218.224.11.443.28.603.537.159.256.239.567.239.924 0 1.218-.524 3.647-1.553 5.695-.31.616-.693.885-1.18 1.193-.574.364-1.145.575-1.767.575h-3c-1.116 0-2.204-.418-3.002-.883a6.393 6.393 0 01-.498-.322v.372a.5.5 0 01-.5.5H3a.5.5 0 01-.5-.5V7a.5.5 0 01.5-.5h3a.5.5 0 01.5.5v.45zm3.474-3.228c.186-.554.611-.751.909-.718a.57.57 0 01.399.233c.114.15.218.409.218.824 0 .17-.044.37-.123.61a9.287 9.287 0 01-.177.474c-.034.087-.07.177-.105.273-.095.252-.194.542-.225.827-.032.297.005.636.23.935.135.178.322.291.491.367.175.078.372.134.571.176.4.084.869.125 1.317.144.676.028 1.382.008 1.767-.003.118-.003.206-.006.254-.006.25 0 .519.018.717.115.088.044.15.098.194.168.044.07.089.19.089.396 0 1.04-.476 3.316-1.447 5.246-.184.367-.375.516-.82.797-.468.296-.855.42-1.233.42h-3c-.884 0-1.796-.338-2.498-.747a4.464 4.464 0 01-.813-.591 1.36 1.36 0 01-.184-.207l-.005-.008V8.968a7.331 7.331 0 01.329-.39l.308-.343c.223-.246.483-.534.746-.837.788-.909 1.73-2.097 2.091-3.176zM5.5 7.5h-2v7.667h2V7.5z"></path></svg></span></span></button><button data-paste-element="BUTTON" data-paste-core-version="21.4.0" aria-pressed="false" aria-busy="false" type="button" class="css-qw1tfm"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1lgr57j"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" width="100%" height="100%" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-labelledby="ThumbsDownIcon-_R_jala5j5al5dlbkm_"><title id="ThumbsDownIcon-_R_jala5j5al5dlbkm_">Negative Feedback</title><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M13.5 12.55c-.194.215-.406.451-.628.707-.799.921-1.608 1.972-1.898 2.838-.314.938-1.139 1.487-1.966 1.395a1.57 1.57 0 01-1.085-.621c-.277-.363-.423-.85-.423-1.43 0-.327.081-.645.174-.924.062-.186.139-.383.208-.56l.088-.226c.092-.245.15-.432.166-.582.014-.134-.01-.19-.033-.222l-.001-.001a.416.416 0 00-.1-.058 1.902 1.902 0 00-.371-.11 7.35 7.35 0 00-1.152-.124 22.958 22.958 0 00-1.634.002 14.2 14.2 0 01-.345.008c-.25 0-.731-.008-1.158-.218a1.451 1.451 0 01-.603-.537c-.159-.257-.239-.567-.239-.924 0-1.218.524-3.648 1.553-5.696.31-.616.693-.884 1.18-1.192C5.807 3.71 6.378 3.5 7 3.5h3c1.116 0 2.204.417 3.002.883.178.104.345.212.498.321v-.37a.5.5 0 01.5-.5h3a.5.5 0 01.5.5V13a.5.5 0 01-.5.5h-3a.5.5 0 01-.5-.5v-.45zm-3.474 3.227c-.186.554-.611.752-.909.72a.571.571 0 01-.399-.234c-.114-.15-.218-.409-.218-.824a2 2 0 01.123-.61c.054-.16.113-.312.177-.475.034-.086.07-.176.105-.272.095-.252.194-.542.225-.828.032-.296-.005-.635-.23-.934a1.23 1.23 0 00-.491-.367 2.874 2.874 0 00-.571-.176 8.31 8.31 0 00-1.317-.144c-.676-.029-1.381-.008-1.767.003-.118.003-.206.006-.254.006-.25 0-.519-.018-.717-.115a.452.452 0 01-.194-.168c-.044-.07-.089-.19-.089-.396 0-1.04.476-3.316 1.447-5.247.184-.366.375-.515.82-.796.468-.296.855-.42 1.233-.42h3c.884 0 1.796.337 2.498.747.349.203.628.414.813.59.093.09.152.16.184.208l.005.007v4.98a7.245 7.245 0 01-.329.39 54.1 54.1 0 01-.308.342c-.223.247-.483.534-.746.838-.788.909-1.73 2.096-2.091 3.175zM14.5 12.5h2V4.833h-2V12.5z"></path></svg></span></span></button></div></div></div><p data-paste-element="PARAGRAPH" data-paste-core-version="21.0.1" class="css-t3ja6c">For Twilio to send status callback requests, you need to provide your status callback URL in the <code data-paste-element="INLINE_CODE" data-paste-core-version="21.4.0" class="css-1kwd7zr">StatusCallback</code> parameter of each message for which you want to track the <code data-paste-element="INLINE_CODE" data-paste-core-version="21.4.0" class="css-1kwd7zr">MessageStatus</code>.</p><p data-paste-element="PARAGRAPH" data-paste-core-version="21.0.1" class="css-t3ja6c">To get the following code sample to run, replace these values:</p><ol data-paste-element="ORDERED_LIST" data-paste-core-version="21.0.1" type="1" class="css-w38rkw">
<li data-paste-element="LIST_ITEM" data-paste-core-version="21.0.1" class="css-1pp5a8v">Replace the <code data-paste-element="INLINE_CODE" data-paste-core-version="21.4.0" class="css-1kwd7zr">From</code> phone number with <a data-paste-element="ANCHOR" data-paste-core-version="21.4.0" href="/console/phone-numbers/incoming" title="one of your Twilio numbers" class="css-lpeit6">one of your Twilio numbers</a></li>
<li data-paste-element="LIST_ITEM" data-paste-core-version="21.0.1" class="css-1pp5a8v">Replace the <code data-paste-element="INLINE_CODE" data-paste-core-version="21.4.0" class="css-1kwd7zr">To</code> number with your mobile number</li>
<li data-paste-element="LIST_ITEM" data-paste-core-version="21.0.1" class="css-1pp5a8v">Replace the <code data-paste-element="INLINE_CODE" data-paste-core-version="21.4.0" class="css-1kwd7zr">StatusCallback</code> URL with your status callback URL</li>
</ol><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-uvbrx2"><div data-paste-element="CODE_BLOCK_WRAPPER" data-paste-core-version="21.4.0" class="css-1ft5k6i"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1vk3mjb"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-2ib1ps"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-eely4y"><span data-paste-element="BOX" data-paste-core-version="21.4.0" id="code-send-a-message-without-messaging-service-with-a-statuscallback-url" class="css-ztvk33"><span data-paste-element="BOX" data-paste-core-version="21.4.0" title="Send a Message without Messaging Service with a StatusCallback URL" class="css-9nq3e2">Send a Message without Messaging Service with a StatusCallback URL</span></span><a data-paste-element="BOX" data-paste-core-version="21.4.0" href="#code-send-a-message-without-messaging-service-with-a-statuscallback-url" class="css-2tt14g"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" fill="none" viewBox="0 0 20 20" aria-labelledby="LinkIcon-_R_akpllj5al5dlbkm_"><title id="LinkIcon-_R_akpllj5al5dlbkm_">Link to code sample: Send a Message without Messaging Service with a StatusCallback URL</title><path fill="currentColor" d="M13.074 5.674a2.3 2.3 0 013.252 3.252l-2.97 2.97A2.3 2.3 0 019.869 8.92a.5.5 0 10-.808-.588 3.3 3.3 0 005.004 4.272l2.97-2.97a3.3 3.3 0 00-4.667-4.666l-.467.466a.5.5 0 10.707.707l.467-.466z"></path><path fill="currentColor" d="M9.18 7.163a2.3 2.3 0 011.952 3.65.5.5 0 10.809.59A3.3 3.3 0 006.936 7.13l-2.97 2.97a3.3 3.3 0 004.667 4.667l.58-.58a.5.5 0 10-.707-.707l-.58.58a2.3 2.3 0 11-3.252-3.252l2.97-2.97c.409-.41.958-.652 1.536-.675z"></path></svg></span></a></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-uedoeu"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-s0z4m"><div data-paste-element="SELECT" data-paste-core-version="21.4.0" class="css-116z8rp"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1p04ivx"><select data-paste-element="SELECT_ELEMENT" data-paste-core-version="21.4.0" id="code-sample-code-sample-_R_lj5al5dlbkm_" aria-label="Select sample" tabindex="0" aria-describedby="paste-tooltip-_R_2d9llj5al5dlbkm_" data-not-selectize="true" class="css-1eeu8f4"><option data-paste-element="OPTION" data-paste-core-version="21.4.0" value="Node.js" class="css-1raivgc" selected="">Node.js</option><option data-paste-element="OPTION" data-paste-core-version="21.4.0" value="Python" class="css-1raivgc">Python</option><option data-paste-element="OPTION" data-paste-core-version="21.4.0" value="C#" class="css-1raivgc">C#</option><option data-paste-element="OPTION" data-paste-core-version="21.4.0" value="Java" class="css-1raivgc">Java</option><option data-paste-element="OPTION" data-paste-core-version="21.4.0" value="Go" class="css-1raivgc">Go</option><option data-paste-element="OPTION" data-paste-core-version="21.4.0" value="PHP" class="css-1raivgc">PHP</option><option data-paste-element="OPTION" data-paste-core-version="21.4.0" value="Ruby" class="css-1raivgc">Ruby</option><option data-paste-element="OPTION" data-paste-core-version="21.4.0" value="twilio-cli" class="css-1raivgc">twilio-cli</option><option data-paste-element="OPTION" data-paste-core-version="21.4.0" value="curl" class="css-1raivgc">curl</option></select><div data-paste-element="SELECT_CHEVRON_WRAPPER" data-paste-core-version="21.4.0" class="css-68zvok"><span data-paste-element="SELECT_ICON" data-paste-core-version="21.4.0" class="css-1v61162"><svg role="img" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="ChevronDownIcon-_R_laed9llj5al5dlbkm_"><path fill="currentColor" fill-rule="evenodd" d="M6.293 8.293a1 1 0 011.32-.083l.094.083L10 10.585l2.293-2.292a1 1 0 011.32-.083l.094.083a1 1 0 01.083 1.32l-.083.094-3 3a1 1 0 01-1.32.083l-.094-.083-3-3a1 1 0 010-1.414z"></path></svg></span></div></div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><button data-paste-element="CODE_BLOCK_REPORT_BUTTON" data-paste-core-version="21.4.0" tabindex="0" aria-describedby="_R_2l9llj5al5dlbkm_" aria-busy="false" type="button" class="css-s7diru"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1lgr57j"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" fill="none" viewBox="0 0 20 20" aria-labelledby="ProductDebuggerIcon-_R_6j6ml9llj5al5dlbkm_"><path fill="currentColor" fill-rule="evenodd" d="M17.466 11.678a.533.533 0 100-1.064h-1.067a6.35 6.35 0 00-.272-1.835 3.176 3.176 0 011.328-.292h.01a.533.533 0 10.003-1.064h-.013c-.594 0-1.182.124-1.725.365l-.017-.036-.008-.016a6.426 6.426 0 00-2.278-2.507c1.202-.861 1.344-1.86 1.344-3.697a.533.533 0 00-1.066 0c0 1.905-.126 2.458-1.386 3.136a6.33 6.33 0 00-4.67.012c-1.282-.683-1.41-1.232-1.41-3.148a.533.533 0 00-1.067 0c0 1.85.145 2.85 1.371 3.715a6.427 6.427 0 00-2.248 2.489l-.008.016-.017.036a4.244 4.244 0 00-1.725-.365h-.013a.533.533 0 10.013 1.064c.459 0 .912.1 1.328.292a6.35 6.35 0 00-.272 1.835H2.534a.533.533 0 100 1.064h1.163c.144.857.463 1.676.938 2.405a3.196 3.196 0 01-2.098.788h-.003a.533.533 0 100 1.065h.003a4.261 4.261 0 002.753-1.014 6.374 6.374 0 009.42 0 4.261 4.261 0 002.753 1.014h.003a.533.533 0 100-1.065h-.003c-.772 0-1.517-.28-2.098-.788a6.32 6.32 0 00.938-2.405h1.163zM10 5.292c.69 0 1.375.135 2.014.397a.53.53 0 00.206.092 5.35 5.35 0 012.036 1.64H5.744A5.326 5.326 0 0110 5.29zm-5.333 5.322c0-.733.153-1.458.449-2.13h4.35v7.425a5.333 5.333 0 01-4.799-5.295zm5.866 5.295V8.485h4.351a5.306 5.306 0 01-.28 4.818 5.327 5.327 0 01-4.07 2.606z" clip-rule="evenodd"></path></svg></span><span data-paste-element="BOX" data-paste-core-version="21.4.0" aria-live="polite" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1cbdvo6">Report code block</span></span></span></span></button></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><button data-paste-element="CODE_BLOCK_COPY_BUTTON" data-paste-core-version="21.4.0" tabindex="0" aria-describedby="_R_2t9llj5al5dlbkm_" aria-busy="false" type="button" class="css-s7diru"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1lgr57j"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="CopyIcon-_R_d6et9llj5al5dlbkm_"><path fill="currentColor" fill-rule="evenodd" d="M13.469 2.5c.63 0 1.15.48 1.212 1.094l.007.125-.001 1.593h1.407c.73 0 1.331.558 1.4 1.271l.006.136v9.375c0 .776-.63 1.406-1.406 1.406H6.719c-.777 0-1.407-.63-1.407-1.406v-1.407H3.719c-.631 0-1.15-.48-1.213-1.094L2.5 13.47v-9.75c0-.631.48-1.15 1.094-1.213L3.72 2.5h9.75zm2.625 3.75H6.719a.469.469 0 00-.469.469v9.375c0 .259.21.468.469.468h9.375c.259 0 .468-.21.468-.468V6.719a.469.469 0 00-.468-.469zm-2.625-2.813h-9.75a.281.281 0 00-.274.217l-.007.065v9.75c0 .133.092.244.216.274l.065.007 1.593-.001v-7.03c0-.731.558-1.332 1.271-1.4l.136-.006 7.031-.001V3.719a.281.281 0 00-.217-.274l-.064-.007z"></path></svg></span><span data-paste-element="BOX" data-paste-core-version="21.4.0" aria-live="polite" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1cbdvo6">Copy code block</span></span></span></span></button></div></div></div><div data-paste-element="CODE_BLOCK" data-paste-core-version="21.4.0" class="css-1lrte93"><div data-paste-element="CODE_BLOCK_CONTENT" data-paste-core-version="21.4.0" class="css-1yf26d7"><pre data-theme="github-dark" data-lang="javascript" style="color:white;font-family:&#x27;TwilioSansMono&#x27;, Courier, monospace;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;font-size:1em;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;margin:0;overflow:auto;background:inherit;width:100%;padding-bottom:2rem" tabindex="0" class="css-1p78m0" data-ch="true"><div style="min-width:fit-content"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">1</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div><span style="color:#8B949E">// Download the helper library from https://www.twilio.com/docs/node/install</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">2</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div><span style="color:#FF7B72">const</span> <span style="color:#79C0FF">twilio</span> <span style="color:#FF7B72">=</span> <span style="color:#D2A8FF">require</span><span style="color:#C9D1D9">(</span><span style="color:#A5D6FF">&quot;twilio&quot;</span><span style="color:#C9D1D9">);</span> <span style="color:#8B949E">// Or, for ESM: import twilio from &quot;twilio&quot;;</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">3</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">4</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div><span style="color:#8B949E">// Find your Account SID and Auth Token at twilio.com/console</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">5</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div><span style="color:#8B949E">// and set the environment variables. See http://twil.io/secure</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">6</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div><span style="color:#FF7B72">const</span> <span style="color:#79C0FF">accountSid</span> <span style="color:#FF7B72">=</span> <span style="color:#C9D1D9">process.env.</span><span style="color:#79C0FF">TWILIO_ACCOUNT_SID</span><span style="color:#C9D1D9">;</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">7</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div><span style="color:#FF7B72">const</span> <span style="color:#79C0FF">authToken</span> <span style="color:#FF7B72">=</span> <span style="color:#C9D1D9">process.env.</span><span style="color:#79C0FF">TWILIO_AUTH_TOKEN</span><span style="color:#C9D1D9">;</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">8</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div><span style="color:#FF7B72">const</span> <span style="color:#79C0FF">client</span> <span style="color:#FF7B72">=</span> <span style="color:#D2A8FF">twilio</span><span style="color:#C9D1D9">(accountSid, authToken);</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">9</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">10</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div><span style="color:#FF7B72">async function</span> <span style="color:#D2A8FF">createMessage</span><span style="color:#C9D1D9">() {</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">11</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>  <span style="color:#FF7B72">const</span> <span style="color:#79C0FF">message</span> <span style="color:#FF7B72">= await</span> <span style="color:#C9D1D9">client.messages.</span><span style="color:#D2A8FF">create</span><span style="color:#C9D1D9">({</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">12</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>    <span style="color:#C9D1D9">body:</span> <span style="color:#A5D6FF">&quot;McAvoy or Stewart? These timelines can get so confusing.&quot;</span><span style="color:#C9D1D9">,</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">13</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>    <span style="color:#C9D1D9">from:</span> <span style="color:#A5D6FF">&quot;+15017122661&quot;</span><span style="color:#C9D1D9">,</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">14</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>    <span style="color:#C9D1D9">statusCallback:</span> <span style="color:#A5D6FF">&quot;http://example.com/MessageStatus&quot;</span><span style="color:#C9D1D9">,</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">15</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>    <span style="color:#C9D1D9">to:</span> <span style="color:#A5D6FF">&quot;+15558675310&quot;</span><span style="color:#C9D1D9">,</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">16</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>  <span style="color:#C9D1D9">});</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">17</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">18</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>  <span style="color:#C9D1D9">console.</span><span style="color:#D2A8FF">log</span><span style="color:#C9D1D9">(message.body);</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">19</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div><span style="color:#C9D1D9">}</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">20</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">21</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div><span style="color:#D2A8FF">createMessage</span><span style="color:#C9D1D9">();</span></div></div></div></div></pre></div></div><style data-emotion="css 1rx11c4">.css-1rx11c4{box-sizing:border-box;margin-top:0;color:rgb(255, 255, 255);}</style><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1rx11c4"><style data-emotion="css ab5mdd">.css-ab5mdd{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-column-gap:0.25rem;column-gap:0.25rem;}</style><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-ab5mdd"><style data-emotion="css 1tyruju">.css-1tyruju{box-sizing:border-box;background-color:rgb(31, 48, 76);color:rgb(255, 255, 255);padding-top:1rem;padding-bottom:1rem;padding-left:1.5rem;margin:0;border-top-left-radius:4px;border-top-right-radius:4px;font-weight:600;font-size:0.875rem;}</style><h3 data-paste-element="CODE_BLOCK_HEADER" data-paste-core-version="21.4.0" class="css-1tyruju">Response</h3><span data-paste-element="BOX" data-paste-core-version="21.4.0" tabindex="0" aria-describedby="paste-tooltip-_R_krllj5al5dlbkm_" class="css-roynbj"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="InformationIcon-_R_jkrllj5al5dlbkm_"><title id="InformationIcon-_R_jkrllj5al5dlbkm_">Note about this response</title><path fill="currentColor" fill-rule="evenodd" d="M10 2a8 8 0 110 16 8 8 0 010-16zm0 1.25a6.75 6.75 0 100 13.5 6.75 6.75 0 000-13.5zM10 9a1 1 0 011 1v3a1 1 0 01-2 0v-3a1 1 0 011-1zm0-3a1 1 0 110 2 1 1 0 010-2z"></path></svg></span></span></div><div data-paste-element="CODE_BLOCK" data-paste-core-version="21.4.0" class="css-1lrte93"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-ba3ttd"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><button data-paste-element="CODE_BLOCK_COPY_BUTTON" data-paste-core-version="21.4.0" tabindex="0" aria-describedby="_R_16dbllj5al5dlbkm_" aria-busy="false" type="button" class="css-8sx3rd"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1lgr57j"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="CopyIcon-_R_6j76dbllj5al5dlbkm_"><path fill="currentColor" fill-rule="evenodd" d="M13.469 2.5c.63 0 1.15.48 1.212 1.094l.007.125-.001 1.593h1.407c.73 0 1.331.558 1.4 1.271l.006.136v9.375c0 .776-.63 1.406-1.406 1.406H6.719c-.777 0-1.407-.63-1.407-1.406v-1.407H3.719c-.631 0-1.15-.48-1.213-1.094L2.5 13.47v-9.75c0-.631.48-1.15 1.094-1.213L3.72 2.5h9.75zm2.625 3.75H6.719a.469.469 0 00-.469.469v9.375c0 .259.21.468.469.468h9.375c.259 0 .468-.21.468-.468V6.719a.469.469 0 00-.468-.469zm-2.625-2.813h-9.75a.281.281 0 00-.274.217l-.007.065v9.75c0 .133.092.244.216.274l.065.007 1.593-.001v-7.03c0-.731.558-1.332 1.271-1.4l.136-.006 7.031-.001V3.719a.281.281 0 00-.217-.274l-.064-.007z"></path></svg></span><span data-paste-element="BOX" data-paste-core-version="21.4.0" aria-live="polite" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1cbdvo6">Copy response</span></span></span></span></button></div></div><div data-paste-element="CODE_BLOCK_CONTENT" data-paste-core-version="21.4.0" class="css-1yf26d7"><pre data-theme="github-dark" data-lang="json" style="color:white;font-family:&#x27;TwilioSansMono&#x27;, Courier, monospace;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;font-size:1em;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;margin:0;overflow:auto;background:inherit;width:100%;padding-bottom:2rem;max-height:calc(1.5 * 1em * 21 - .25em)" tabindex="0" class="css-1p78m0" data-ch="true"><div style="min-width:fit-content"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">1</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div><span style="color:#C9D1D9">{</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">2</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>  <span style="color:#7EE787">&quot;account_sid&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#A5D6FF">&quot;ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&quot;</span><span style="color:#C9D1D9">,</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">3</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>  <span style="color:#7EE787">&quot;api_version&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#A5D6FF">&quot;2010-04-01&quot;</span><span style="color:#C9D1D9">,</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">4</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>  <span style="color:#7EE787">&quot;body&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#A5D6FF">&quot;McAvoy or Stewart? These timelines can get so confusing.&quot;</span><span style="color:#C9D1D9">,</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">5</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>  <span style="color:#7EE787">&quot;date_created&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#A5D6FF">&quot;Thu, 24 Aug 2023 05:01:45 +0000&quot;</span><span style="color:#C9D1D9">,</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">6</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>  <span style="color:#7EE787">&quot;date_sent&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#A5D6FF">&quot;Thu, 24 Aug 2023 05:01:45 +0000&quot;</span><span style="color:#C9D1D9">,</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">7</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>  <span style="color:#7EE787">&quot;date_updated&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#A5D6FF">&quot;Thu, 24 Aug 2023 05:01:45 +0000&quot;</span><span style="color:#C9D1D9">,</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">8</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>  <span style="color:#7EE787">&quot;direction&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#A5D6FF">&quot;outbound-api&quot;</span><span style="color:#C9D1D9">,</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">9</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>  <span style="color:#7EE787">&quot;error_code&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#79C0FF">null</span><span style="color:#C9D1D9">,</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">10</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>  <span style="color:#7EE787">&quot;error_message&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#79C0FF">null</span><span style="color:#C9D1D9">,</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">11</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>  <span style="color:#7EE787">&quot;from&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#A5D6FF">&quot;+15017122661&quot;</span><span style="color:#C9D1D9">,</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">12</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>  <span style="color:#7EE787">&quot;num_media&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#A5D6FF">&quot;0&quot;</span><span style="color:#C9D1D9">,</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">13</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>  <span style="color:#7EE787">&quot;num_segments&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#A5D6FF">&quot;1&quot;</span><span style="color:#C9D1D9">,</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">14</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>  <span style="color:#7EE787">&quot;price&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#79C0FF">null</span><span style="color:#C9D1D9">,</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">15</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>  <span style="color:#7EE787">&quot;price_unit&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#79C0FF">null</span><span style="color:#C9D1D9">,</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">16</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>  <span style="color:#7EE787">&quot;messaging_service_sid&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#A5D6FF">&quot;MGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa&quot;</span><span style="color:#C9D1D9">,</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">17</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>  <span style="color:#7EE787">&quot;sid&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#A5D6FF">&quot;SMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa&quot;</span><span style="color:#C9D1D9">,</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">18</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>  <span style="color:#7EE787">&quot;status&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#A5D6FF">&quot;queued&quot;</span><span style="color:#C9D1D9">,</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">19</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>  <span style="color:#7EE787">&quot;subresource_uris&quot;</span><span style="color:#C9D1D9">: {</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">20</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>    <span style="color:#7EE787">&quot;media&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#A5D6FF">&quot;/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Messages/SMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Media.json&quot;</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">21</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>  <span style="color:#C9D1D9">},</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">22</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>  <span style="color:#7EE787">&quot;to&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#A5D6FF">&quot;+15558675310&quot;</span><span style="color:#C9D1D9">,</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">23</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>  <span style="color:#7EE787">&quot;uri&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#A5D6FF">&quot;/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Messages/SMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.json&quot;</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">24</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div><span style="color:#C9D1D9">}</span></div></div></div></div></pre></div></div></div></div></div></section>
<section id="scenario-2-messaging-service-used-section-indexable"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-m8ey6p"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-a8lapc"><h3 data-paste-element="HEADING" data-paste-core-version="21.0.1" id="scenario-2-messaging-service-used" class="css-zlgnaa">Scenario 2: Messaging Service used</h3><a data-paste-element="BOX" data-paste-core-version="21.4.0" href="#scenario-2-messaging-service-used" class="css-f02h4i"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" fill="none" viewBox="0 0 20 20" aria-labelledby="LinkIcon-_R_2l65n5al5dlbkm_"><title id="LinkIcon-_R_2l65n5al5dlbkm_">scenario-2-messaging-service-used page anchor</title><path fill="currentColor" d="M13.074 5.674a2.3 2.3 0 013.252 3.252l-2.97 2.97A2.3 2.3 0 019.869 8.92a.5.5 0 10-.808-.588 3.3 3.3 0 005.004 4.272l2.97-2.97a3.3 3.3 0 00-4.667-4.666l-.467.466a.5.5 0 10.707.707l.467-.466z"></path><path fill="currentColor" d="M9.18 7.163a2.3 2.3 0 011.952 3.65.5.5 0 10.809.59A3.3 3.3 0 006.936 7.13l-2.97 2.97a3.3 3.3 0 004.667 4.667l.58-.58a.5.5 0 10-.707-.707l-.58.58a2.3 2.3 0 11-3.252-3.252l2.97-2.97c.409-.41.958-.652 1.536-.675z"></path></svg></span></a></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1kam78h"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-knmi57"><button data-paste-element="BUTTON" data-paste-core-version="21.4.0" aria-pressed="false" aria-busy="false" type="button" class="css-qw1tfm"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1lgr57j"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" width="100%" height="100%" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-labelledby="ThumbsUpIcon-_R_j6la5n5al5dlbkm_"><title id="ThumbsUpIcon-_R_j6la5n5al5dlbkm_">Positive Feedback</title><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M6.5 7.45c.194-.216.406-.451.628-.707.799-.922 1.608-1.972 1.898-2.838.314-.938 1.139-1.487 1.966-1.395a1.57 1.57 0 011.085.621c.277.363.423.85.423 1.43 0 .327-.081.645-.174.924-.062.186-.139.383-.208.56l-.088.226c-.092.245-.15.432-.166.582-.014.134.01.19.033.222l.001.001a.415.415 0 00.1.058 1.9 1.9 0 00.371.11c.32.068.725.106 1.152.124.632.026 1.237.01 1.634-.002.147-.004.265-.008.345-.008.25 0 .731.008 1.158.218.224.11.443.28.603.537.159.256.239.567.239.924 0 1.218-.524 3.647-1.553 5.695-.31.616-.693.885-1.18 1.193-.574.364-1.145.575-1.767.575h-3c-1.116 0-2.204-.418-3.002-.883a6.393 6.393 0 01-.498-.322v.372a.5.5 0 01-.5.5H3a.5.5 0 01-.5-.5V7a.5.5 0 01.5-.5h3a.5.5 0 01.5.5v.45zm3.474-3.228c.186-.554.611-.751.909-.718a.57.57 0 01.399.233c.114.15.218.409.218.824 0 .17-.044.37-.123.61a9.287 9.287 0 01-.177.474c-.034.087-.07.177-.105.273-.095.252-.194.542-.225.827-.032.297.005.636.23.935.135.178.322.291.491.367.175.078.372.134.571.176.4.084.869.125 1.317.144.676.028 1.382.008 1.767-.003.118-.003.206-.006.254-.006.25 0 .519.018.717.115.088.044.15.098.194.168.044.07.089.19.089.396 0 1.04-.476 3.316-1.447 5.246-.184.367-.375.516-.82.797-.468.296-.855.42-1.233.42h-3c-.884 0-1.796-.338-2.498-.747a4.464 4.464 0 01-.813-.591 1.36 1.36 0 01-.184-.207l-.005-.008V8.968a7.331 7.331 0 01.329-.39l.308-.343c.223-.246.483-.534.746-.837.788-.909 1.73-2.097 2.091-3.176zM5.5 7.5h-2v7.667h2V7.5z"></path></svg></span></span></button><button data-paste-element="BUTTON" data-paste-core-version="21.4.0" aria-pressed="false" aria-busy="false" type="button" class="css-qw1tfm"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1lgr57j"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" width="100%" height="100%" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-labelledby="ThumbsDownIcon-_R_jala5n5al5dlbkm_"><title id="ThumbsDownIcon-_R_jala5n5al5dlbkm_">Negative Feedback</title><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M13.5 12.55c-.194.215-.406.451-.628.707-.799.921-1.608 1.972-1.898 2.838-.314.938-1.139 1.487-1.966 1.395a1.57 1.57 0 01-1.085-.621c-.277-.363-.423-.85-.423-1.43 0-.327.081-.645.174-.924.062-.186.139-.383.208-.56l.088-.226c.092-.245.15-.432.166-.582.014-.134-.01-.19-.033-.222l-.001-.001a.416.416 0 00-.1-.058 1.902 1.902 0 00-.371-.11 7.35 7.35 0 00-1.152-.124 22.958 22.958 0 00-1.634.002 14.2 14.2 0 01-.345.008c-.25 0-.731-.008-1.158-.218a1.451 1.451 0 01-.603-.537c-.159-.257-.239-.567-.239-.924 0-1.218.524-3.648 1.553-5.696.31-.616.693-.884 1.18-1.192C5.807 3.71 6.378 3.5 7 3.5h3c1.116 0 2.204.417 3.002.883.178.104.345.212.498.321v-.37a.5.5 0 01.5-.5h3a.5.5 0 01.5.5V13a.5.5 0 01-.5.5h-3a.5.5 0 01-.5-.5v-.45zm-3.474 3.227c-.186.554-.611.752-.909.72a.571.571 0 01-.399-.234c-.114-.15-.218-.409-.218-.824a2 2 0 01.123-.61c.054-.16.113-.312.177-.475.034-.086.07-.176.105-.272.095-.252.194-.542.225-.828.032-.296-.005-.635-.23-.934a1.23 1.23 0 00-.491-.367 2.874 2.874 0 00-.571-.176 8.31 8.31 0 00-1.317-.144c-.676-.029-1.381-.008-1.767.003-.118.003-.206.006-.254.006-.25 0-.519-.018-.717-.115a.452.452 0 01-.194-.168c-.044-.07-.089-.19-.089-.396 0-1.04.476-3.316 1.447-5.247.184-.366.375-.515.82-.796.468-.296.855-.42 1.233-.42h3c.884 0 1.796.337 2.498.747.349.203.628.414.813.59.093.09.152.16.184.208l.005.007v4.98a7.245 7.245 0 01-.329.39 54.1 54.1 0 01-.308.342c-.223.247-.483.534-.746.838-.788.909-1.73 2.096-2.091 3.175zM14.5 12.5h2V4.833h-2V12.5z"></path></svg></span></span></button></div></div></div><p data-paste-element="PARAGRAPH" data-paste-core-version="21.0.1" class="css-t3ja6c">Messaging Services can be configured to have a service-level Delivery Status Callback. When <a data-paste-element="ANCHOR" data-paste-core-version="21.4.0" href="/docs/messaging/tutorials/send-messages-with-messaging-services#create-and-configure-a-messaging-service" title="creating a new Messaging Service in Console" class="css-lpeit6">creating a new Messaging Service in Console</a>, you can specify this service-level Delivery Status Callback in <strong>Step 3 - Set up Integrations</strong>.</p><p data-paste-element="PARAGRAPH" data-paste-core-version="21.0.1" class="css-t3ja6c">You can use the status callback URL from Step 1 of this guide for this Delivery Status Callback integration. If you do so, you do not have to provide the status callback URL as a message-specific parameter.</p><p data-paste-element="PARAGRAPH" data-paste-core-version="21.0.1" class="css-t3ja6c">Alternatively, you can provide a message-specific status callback URL in the <code data-paste-element="INLINE_CODE" data-paste-core-version="21.4.0" class="css-1kwd7zr">StatusCallback</code> parameter for a message created with the Messaging Service.</p><p data-paste-element="PARAGRAPH" data-paste-core-version="21.0.1" class="css-t3ja6c">Which of these two options is more appropriate depends on your use case.</p></section>
<section id="option-1---use-service-level-delivery-status-callback-section"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-104sreq"><h4 data-paste-element="HEADING" data-paste-core-version="21.0.1" id="option-1---use-service-level-delivery-status-callback" class="css-cjdtoj">Option 1 - Use Service-level Delivery Status Callback</h4><a data-paste-element="BOX" data-paste-core-version="21.4.0" href="#option-1---use-service-level-delivery-status-callback" class="css-138wi13"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" fill="none" viewBox="0 0 20 20" aria-labelledby="LinkIcon-_R_1a5r5al5dlbkm_"><title id="LinkIcon-_R_1a5r5al5dlbkm_">option-1---use-service-level-delivery-status-callback page anchor</title><path fill="currentColor" d="M13.074 5.674a2.3 2.3 0 013.252 3.252l-2.97 2.97A2.3 2.3 0 019.869 8.92a.5.5 0 10-.808-.588 3.3 3.3 0 005.004 4.272l2.97-2.97a3.3 3.3 0 00-4.667-4.666l-.467.466a.5.5 0 10.707.707l.467-.466z"></path><path fill="currentColor" d="M9.18 7.163a2.3 2.3 0 011.952 3.65.5.5 0 10.809.59A3.3 3.3 0 006.936 7.13l-2.97 2.97a3.3 3.3 0 004.667 4.667l.58-.58a.5.5 0 10-.707-.707l-.58.58a2.3 2.3 0 11-3.252-3.252l2.97-2.97c.409-.41.958-.652 1.536-.675z"></path></svg></span></a></div><p data-paste-element="PARAGRAPH" data-paste-core-version="21.0.1" class="css-t3ja6c">To get the following code sample to run, replace these values:</p><ol data-paste-element="ORDERED_LIST" data-paste-core-version="21.0.1" type="1" class="css-w38rkw">
<li data-paste-element="LIST_ITEM" data-paste-core-version="21.0.1" class="css-1pp5a8v">Replace the <code data-paste-element="INLINE_CODE" data-paste-core-version="21.4.0" class="css-1kwd7zr">MessagingServiceSid</code> with the SID of one of your Messaging Services that has a Delivery Status Callback integration configured in Console</li>
<li data-paste-element="LIST_ITEM" data-paste-core-version="21.0.1" class="css-1pp5a8v">Replace the <code data-paste-element="INLINE_CODE" data-paste-core-version="21.4.0" class="css-1kwd7zr">To</code> number with your mobile number</li>
</ol><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-uvbrx2"><div data-paste-element="CODE_BLOCK_WRAPPER" data-paste-core-version="21.4.0" class="css-1ft5k6i"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1vk3mjb"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-2ib1ps"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-eely4y"><span data-paste-element="BOX" data-paste-core-version="21.4.0" id="code-send-a-message-using-messaging-service-with-delivery-status-callback-integration" class="css-ztvk33"><span data-paste-element="BOX" data-paste-core-version="21.4.0" title="Send a Message using Messaging Service with Delivery Status Callback Integration" class="css-9nq3e2">Send a Message using Messaging Service with Delivery Status Callback Integration</span></span><a data-paste-element="BOX" data-paste-core-version="21.4.0" href="#code-send-a-message-using-messaging-service-with-delivery-status-callback-integration" class="css-2tt14g"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" fill="none" viewBox="0 0 20 20" aria-labelledby="LinkIcon-_R_akplhr5al5dlbkm_"><title id="LinkIcon-_R_akplhr5al5dlbkm_">Link to code sample: Send a Message using Messaging Service with Delivery Status Callback Integration</title><path fill="currentColor" d="M13.074 5.674a2.3 2.3 0 013.252 3.252l-2.97 2.97A2.3 2.3 0 019.869 8.92a.5.5 0 10-.808-.588 3.3 3.3 0 005.004 4.272l2.97-2.97a3.3 3.3 0 00-4.667-4.666l-.467.466a.5.5 0 10.707.707l.467-.466z"></path><path fill="currentColor" d="M9.18 7.163a2.3 2.3 0 011.952 3.65.5.5 0 10.809.59A3.3 3.3 0 006.936 7.13l-2.97 2.97a3.3 3.3 0 004.667 4.667l.58-.58a.5.5 0 10-.707-.707l-.58.58a2.3 2.3 0 11-3.252-3.252l2.97-2.97c.409-.41.958-.652 1.536-.675z"></path></svg></span></a></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-uedoeu"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-s0z4m"><div data-paste-element="SELECT" data-paste-core-version="21.4.0" class="css-116z8rp"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1p04ivx"><select data-paste-element="SELECT_ELEMENT" data-paste-core-version="21.4.0" id="code-sample-code-sample-_R_hr5al5dlbkm_" aria-label="Select sample" tabindex="0" aria-describedby="paste-tooltip-_R_2d9lhr5al5dlbkm_" data-not-selectize="true" class="css-1eeu8f4"><option data-paste-element="OPTION" data-paste-core-version="21.4.0" value="Node.js" class="css-1raivgc" selected="">Node.js</option><option data-paste-element="OPTION" data-paste-core-version="21.4.0" value="Python" class="css-1raivgc">Python</option><option data-paste-element="OPTION" data-paste-core-version="21.4.0" value="C#" class="css-1raivgc">C#</option><option data-paste-element="OPTION" data-paste-core-version="21.4.0" value="Java" class="css-1raivgc">Java</option><option data-paste-element="OPTION" data-paste-core-version="21.4.0" value="Go" class="css-1raivgc">Go</option><option data-paste-element="OPTION" data-paste-core-version="21.4.0" value="PHP" class="css-1raivgc">PHP</option><option data-paste-element="OPTION" data-paste-core-version="21.4.0" value="Ruby" class="css-1raivgc">Ruby</option><option data-paste-element="OPTION" data-paste-core-version="21.4.0" value="twilio-cli" class="css-1raivgc">twilio-cli</option><option data-paste-element="OPTION" data-paste-core-version="21.4.0" value="curl" class="css-1raivgc">curl</option></select><div data-paste-element="SELECT_CHEVRON_WRAPPER" data-paste-core-version="21.4.0" class="css-68zvok"><span data-paste-element="SELECT_ICON" data-paste-core-version="21.4.0" class="css-1v61162"><svg role="img" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="ChevronDownIcon-_R_laed9lhr5al5dlbkm_"><path fill="currentColor" fill-rule="evenodd" d="M6.293 8.293a1 1 0 011.32-.083l.094.083L10 10.585l2.293-2.292a1 1 0 011.32-.083l.094.083a1 1 0 01.083 1.32l-.083.094-3 3a1 1 0 01-1.32.083l-.094-.083-3-3a1 1 0 010-1.414z"></path></svg></span></div></div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><button data-paste-element="CODE_BLOCK_REPORT_BUTTON" data-paste-core-version="21.4.0" tabindex="0" aria-describedby="_R_2l9lhr5al5dlbkm_" aria-busy="false" type="button" class="css-s7diru"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1lgr57j"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" fill="none" viewBox="0 0 20 20" aria-labelledby="ProductDebuggerIcon-_R_6j6ml9lhr5al5dlbkm_"><path fill="currentColor" fill-rule="evenodd" d="M17.466 11.678a.533.533 0 100-1.064h-1.067a6.35 6.35 0 00-.272-1.835 3.176 3.176 0 011.328-.292h.01a.533.533 0 10.003-1.064h-.013c-.594 0-1.182.124-1.725.365l-.017-.036-.008-.016a6.426 6.426 0 00-2.278-2.507c1.202-.861 1.344-1.86 1.344-3.697a.533.533 0 00-1.066 0c0 1.905-.126 2.458-1.386 3.136a6.33 6.33 0 00-4.67.012c-1.282-.683-1.41-1.232-1.41-3.148a.533.533 0 00-1.067 0c0 1.85.145 2.85 1.371 3.715a6.427 6.427 0 00-2.248 2.489l-.008.016-.017.036a4.244 4.244 0 00-1.725-.365h-.013a.533.533 0 10.013 1.064c.459 0 .912.1 1.328.292a6.35 6.35 0 00-.272 1.835H2.534a.533.533 0 100 1.064h1.163c.144.857.463 1.676.938 2.405a3.196 3.196 0 01-2.098.788h-.003a.533.533 0 100 1.065h.003a4.261 4.261 0 002.753-1.014 6.374 6.374 0 009.42 0 4.261 4.261 0 002.753 1.014h.003a.533.533 0 100-1.065h-.003c-.772 0-1.517-.28-2.098-.788a6.32 6.32 0 00.938-2.405h1.163zM10 5.292c.69 0 1.375.135 2.014.397a.53.53 0 00.206.092 5.35 5.35 0 012.036 1.64H5.744A5.326 5.326 0 0110 5.29zm-5.333 5.322c0-.733.153-1.458.449-2.13h4.35v7.425a5.333 5.333 0 01-4.799-5.295zm5.866 5.295V8.485h4.351a5.306 5.306 0 01-.28 4.818 5.327 5.327 0 01-4.07 2.606z" clip-rule="evenodd"></path></svg></span><span data-paste-element="BOX" data-paste-core-version="21.4.0" aria-live="polite" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1cbdvo6">Report code block</span></span></span></span></button></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><button data-paste-element="CODE_BLOCK_COPY_BUTTON" data-paste-core-version="21.4.0" tabindex="0" aria-describedby="_R_2t9lhr5al5dlbkm_" aria-busy="false" type="button" class="css-s7diru"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1lgr57j"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="CopyIcon-_R_d6et9lhr5al5dlbkm_"><path fill="currentColor" fill-rule="evenodd" d="M13.469 2.5c.63 0 1.15.48 1.212 1.094l.007.125-.001 1.593h1.407c.73 0 1.331.558 1.4 1.271l.006.136v9.375c0 .776-.63 1.406-1.406 1.406H6.719c-.777 0-1.407-.63-1.407-1.406v-1.407H3.719c-.631 0-1.15-.48-1.213-1.094L2.5 13.47v-9.75c0-.631.48-1.15 1.094-1.213L3.72 2.5h9.75zm2.625 3.75H6.719a.469.469 0 00-.469.469v9.375c0 .259.21.468.469.468h9.375c.259 0 .468-.21.468-.468V6.719a.469.469 0 00-.468-.469zm-2.625-2.813h-9.75a.281.281 0 00-.274.217l-.007.065v9.75c0 .133.092.244.216.274l.065.007 1.593-.001v-7.03c0-.731.558-1.332 1.271-1.4l.136-.006 7.031-.001V3.719a.281.281 0 00-.217-.274l-.064-.007z"></path></svg></span><span data-paste-element="BOX" data-paste-core-version="21.4.0" aria-live="polite" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1cbdvo6">Copy code block</span></span></span></span></button></div></div></div><div data-paste-element="CODE_BLOCK" data-paste-core-version="21.4.0" class="css-1lrte93"><div data-paste-element="CODE_BLOCK_CONTENT" data-paste-core-version="21.4.0" class="css-1yf26d7"><pre data-theme="github-dark" data-lang="javascript" style="color:white;font-family:&#x27;TwilioSansMono&#x27;, Courier, monospace;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;font-size:1em;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;margin:0;overflow:auto;background:inherit;width:100%;padding-bottom:2rem" tabindex="0" class="css-1p78m0" data-ch="true"><div style="min-width:fit-content"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">1</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div><span style="color:#8B949E">// Download the helper library from https://www.twilio.com/docs/node/install</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">2</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div><span style="color:#FF7B72">const</span> <span style="color:#79C0FF">twilio</span> <span style="color:#FF7B72">=</span> <span style="color:#D2A8FF">require</span><span style="color:#C9D1D9">(</span><span style="color:#A5D6FF">&quot;twilio&quot;</span><span style="color:#C9D1D9">);</span> <span style="color:#8B949E">// Or, for ESM: import twilio from &quot;twilio&quot;;</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">3</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">4</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div><span style="color:#8B949E">// Find your Account SID and Auth Token at twilio.com/console</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">5</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div><span style="color:#8B949E">// and set the environment variables. See http://twil.io/secure</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">6</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div><span style="color:#FF7B72">const</span> <span style="color:#79C0FF">accountSid</span> <span style="color:#FF7B72">=</span> <span style="color:#C9D1D9">process.env.</span><span style="color:#79C0FF">TWILIO_ACCOUNT_SID</span><span style="color:#C9D1D9">;</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">7</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div><span style="color:#FF7B72">const</span> <span style="color:#79C0FF">authToken</span> <span style="color:#FF7B72">=</span> <span style="color:#C9D1D9">process.env.</span><span style="color:#79C0FF">TWILIO_AUTH_TOKEN</span><span style="color:#C9D1D9">;</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">8</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div><span style="color:#FF7B72">const</span> <span style="color:#79C0FF">client</span> <span style="color:#FF7B72">=</span> <span style="color:#D2A8FF">twilio</span><span style="color:#C9D1D9">(accountSid, authToken);</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">9</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">10</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div><span style="color:#FF7B72">async function</span> <span style="color:#D2A8FF">createMessage</span><span style="color:#C9D1D9">() {</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">11</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>  <span style="color:#FF7B72">const</span> <span style="color:#79C0FF">message</span> <span style="color:#FF7B72">= await</span> <span style="color:#C9D1D9">client.messages.</span><span style="color:#D2A8FF">create</span><span style="color:#C9D1D9">({</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">12</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>    <span style="color:#C9D1D9">body:</span> <span style="color:#A5D6FF">&quot;McAvoy or Stewart? These timelines can get so confusing.&quot;</span><span style="color:#C9D1D9">,</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">13</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>    <span style="color:#C9D1D9">messagingServiceSid:</span> <span style="color:#A5D6FF">&quot;MG9752274e9e519418a7406176694466fa&quot;</span><span style="color:#C9D1D9">,</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">14</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>    <span style="color:#C9D1D9">to:</span> <span style="color:#A5D6FF">&quot;+15558675310&quot;</span><span style="color:#C9D1D9">,</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">15</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>  <span style="color:#C9D1D9">});</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">16</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">17</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>  <span style="color:#C9D1D9">console.</span><span style="color:#D2A8FF">log</span><span style="color:#C9D1D9">(message.body);</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">18</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div><span style="color:#C9D1D9">}</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">19</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">20</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div><span style="color:#D2A8FF">createMessage</span><span style="color:#C9D1D9">();</span></div></div></div></div></pre></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1rx11c4"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-ab5mdd"><h3 data-paste-element="CODE_BLOCK_HEADER" data-paste-core-version="21.4.0" class="css-1tyruju">Response</h3><span data-paste-element="BOX" data-paste-core-version="21.4.0" tabindex="0" aria-describedby="paste-tooltip-_R_krlhr5al5dlbkm_" class="css-roynbj"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="InformationIcon-_R_jkrlhr5al5dlbkm_"><title id="InformationIcon-_R_jkrlhr5al5dlbkm_">Note about this response</title><path fill="currentColor" fill-rule="evenodd" d="M10 2a8 8 0 110 16 8 8 0 010-16zm0 1.25a6.75 6.75 0 100 13.5 6.75 6.75 0 000-13.5zM10 9a1 1 0 011 1v3a1 1 0 01-2 0v-3a1 1 0 011-1zm0-3a1 1 0 110 2 1 1 0 010-2z"></path></svg></span></span></div><div data-paste-element="CODE_BLOCK" data-paste-core-version="21.4.0" class="css-1lrte93"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-ba3ttd"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><button data-paste-element="CODE_BLOCK_COPY_BUTTON" data-paste-core-version="21.4.0" tabindex="0" aria-describedby="_R_16dblhr5al5dlbkm_" aria-busy="false" type="button" class="css-8sx3rd"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1lgr57j"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="CopyIcon-_R_6j76dblhr5al5dlbkm_"><path fill="currentColor" fill-rule="evenodd" d="M13.469 2.5c.63 0 1.15.48 1.212 1.094l.007.125-.001 1.593h1.407c.73 0 1.331.558 1.4 1.271l.006.136v9.375c0 .776-.63 1.406-1.406 1.406H6.719c-.777 0-1.407-.63-1.407-1.406v-1.407H3.719c-.631 0-1.15-.48-1.213-1.094L2.5 13.47v-9.75c0-.631.48-1.15 1.094-1.213L3.72 2.5h9.75zm2.625 3.75H6.719a.469.469 0 00-.469.469v9.375c0 .259.21.468.469.468h9.375c.259 0 .468-.21.468-.468V6.719a.469.469 0 00-.468-.469zm-2.625-2.813h-9.75a.281.281 0 00-.274.217l-.007.065v9.75c0 .133.092.244.216.274l.065.007 1.593-.001v-7.03c0-.731.558-1.332 1.271-1.4l.136-.006 7.031-.001V3.719a.281.281 0 00-.217-.274l-.064-.007z"></path></svg></span><span data-paste-element="BOX" data-paste-core-version="21.4.0" aria-live="polite" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1cbdvo6">Copy response</span></span></span></span></button></div></div><div data-paste-element="CODE_BLOCK_CONTENT" data-paste-core-version="21.4.0" class="css-1yf26d7"><pre data-theme="github-dark" data-lang="json" style="color:white;font-family:&#x27;TwilioSansMono&#x27;, Courier, monospace;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;font-size:1em;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;margin:0;overflow:auto;background:inherit;width:100%;padding-bottom:2rem;max-height:calc(1.5 * 1em * 21 - .25em)" tabindex="0" class="css-1p78m0" data-ch="true"><div style="min-width:fit-content"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">1</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div><span style="color:#C9D1D9">{</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">2</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>  <span style="color:#7EE787">&quot;account_sid&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#A5D6FF">&quot;ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&quot;</span><span style="color:#C9D1D9">,</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">3</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>  <span style="color:#7EE787">&quot;api_version&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#A5D6FF">&quot;2010-04-01&quot;</span><span style="color:#C9D1D9">,</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">4</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>  <span style="color:#7EE787">&quot;body&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#A5D6FF">&quot;McAvoy or Stewart? These timelines can get so confusing.&quot;</span><span style="color:#C9D1D9">,</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">5</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>  <span style="color:#7EE787">&quot;date_created&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#A5D6FF">&quot;Thu, 24 Aug 2023 05:01:45 +0000&quot;</span><span style="color:#C9D1D9">,</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">6</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>  <span style="color:#7EE787">&quot;date_sent&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#A5D6FF">&quot;Thu, 24 Aug 2023 05:01:45 +0000&quot;</span><span style="color:#C9D1D9">,</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">7</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>  <span style="color:#7EE787">&quot;date_updated&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#A5D6FF">&quot;Thu, 24 Aug 2023 05:01:45 +0000&quot;</span><span style="color:#C9D1D9">,</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">8</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>  <span style="color:#7EE787">&quot;direction&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#A5D6FF">&quot;outbound-api&quot;</span><span style="color:#C9D1D9">,</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">9</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>  <span style="color:#7EE787">&quot;error_code&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#79C0FF">null</span><span style="color:#C9D1D9">,</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">10</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>  <span style="color:#7EE787">&quot;error_message&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#79C0FF">null</span><span style="color:#C9D1D9">,</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">11</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>  <span style="color:#7EE787">&quot;from&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#A5D6FF">&quot;+14155552345&quot;</span><span style="color:#C9D1D9">,</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">12</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>  <span style="color:#7EE787">&quot;num_media&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#A5D6FF">&quot;0&quot;</span><span style="color:#C9D1D9">,</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">13</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>  <span style="color:#7EE787">&quot;num_segments&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#A5D6FF">&quot;1&quot;</span><span style="color:#C9D1D9">,</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">14</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>  <span style="color:#7EE787">&quot;price&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#79C0FF">null</span><span style="color:#C9D1D9">,</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">15</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>  <span style="color:#7EE787">&quot;price_unit&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#79C0FF">null</span><span style="color:#C9D1D9">,</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">16</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>  <span style="color:#7EE787">&quot;messaging_service_sid&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#A5D6FF">&quot;MG9752274e9e519418a7406176694466fa&quot;</span><span style="color:#C9D1D9">,</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">17</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>  <span style="color:#7EE787">&quot;sid&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#A5D6FF">&quot;SMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa&quot;</span><span style="color:#C9D1D9">,</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">18</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>  <span style="color:#7EE787">&quot;status&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#A5D6FF">&quot;queued&quot;</span><span style="color:#C9D1D9">,</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">19</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>  <span style="color:#7EE787">&quot;subresource_uris&quot;</span><span style="color:#C9D1D9">: {</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">20</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>    <span style="color:#7EE787">&quot;media&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#A5D6FF">&quot;/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Messages/SMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Media.json&quot;</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">21</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>  <span style="color:#C9D1D9">},</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">22</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>  <span style="color:#7EE787">&quot;to&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#A5D6FF">&quot;+15558675310&quot;</span><span style="color:#C9D1D9">,</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">23</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>  <span style="color:#7EE787">&quot;uri&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#A5D6FF">&quot;/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Messages/SMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.json&quot;</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">24</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div><span style="color:#C9D1D9">}</span></div></div></div></div></pre></div></div></div></div></div></section>
<section id="option-2---use-message-specific-status-callback-url-section"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-104sreq"><h4 data-paste-element="HEADING" data-paste-core-version="21.0.1" id="option-2---use-message-specific-status-callback-url" class="css-cjdtoj">Option 2 - Use Message-specific status callback URL</h4><a data-paste-element="BOX" data-paste-core-version="21.4.0" href="#option-2---use-message-specific-status-callback-url" class="css-138wi13"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" fill="none" viewBox="0 0 20 20" aria-labelledby="LinkIcon-_R_1a5v5al5dlbkm_"><title id="LinkIcon-_R_1a5v5al5dlbkm_">option-2---use-message-specific-status-callback-url page anchor</title><path fill="currentColor" d="M13.074 5.674a2.3 2.3 0 013.252 3.252l-2.97 2.97A2.3 2.3 0 019.869 8.92a.5.5 0 10-.808-.588 3.3 3.3 0 005.004 4.272l2.97-2.97a3.3 3.3 0 00-4.667-4.666l-.467.466a.5.5 0 10.707.707l.467-.466z"></path><path fill="currentColor" d="M9.18 7.163a2.3 2.3 0 011.952 3.65.5.5 0 10.809.59A3.3 3.3 0 006.936 7.13l-2.97 2.97a3.3 3.3 0 004.667 4.667l.58-.58a.5.5 0 10-.707-.707l-.58.58a2.3 2.3 0 11-3.252-3.252l2.97-2.97c.409-.41.958-.652 1.536-.675z"></path></svg></span></a></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-rj5eb"><div data-paste-element="CALLOUT" data-paste-core-version="21.4.0" class="css-1v816ix"><div data-paste-element="CALLOUT_ICON" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-1cst9vu"><svg role="img" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="NeutralIcon-_R_1ja9v5al5dlbkm_"><path fill="currentColor" fill-rule="evenodd" d="M10 2a8 8 0 110 16 8 8 0 010-16zm0 7c-.26.01-.528.08-.707.24-.178.158-.292.355-.292.575v3.37c0 .21.11.428.292.577.173.14.457.247.707.237.26-.008.528-.078.707-.237.178-.16.292-.355.292-.577v-3.37a.766.766 0 00-.292-.575A1.14 1.14 0 0010 9zm0-3l-.266.036c-.17.047-.318.131-.441.253l-.156.198A.958.958 0 009 6.98v.04a.728.728 0 00.086.378c.04.121.108.227.206.315.09.094.197.163.321.202.12.06.248.09.386.084l.266-.035c.17-.047.318-.131.441-.253l.156-.198A.958.958 0 0011 7.02v-.04a.728.728 0 00-.086-.378.721.721 0 00-.206-.315.757.757 0 00-.321-.202.767.767 0 00-.386-.084z"></path></svg></span><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1cbdvo6">(information)</span></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-fkfdww"><h2 data-paste-element="CALLOUT_HEADING" data-paste-core-version="21.0.1" class="css-kevsq9">Info</h2><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1ircowi"><p data-paste-element="PARAGRAPH" data-paste-core-version="21.0.1" class="css-t3ja6c">If your Messaging Service has a service-level Delivery Status Callback configured in the Console and you provide a message-specific <code data-paste-element="INLINE_CODE" data-paste-core-version="21.4.0" class="css-1kwd7zr">StatusCallback</code> URL, Twilio sends status callback requests to the message-specific <code data-paste-element="INLINE_CODE" data-paste-core-version="21.4.0" class="css-1kwd7zr">StatusCallback</code> URL.</p></div></div></div></div><p data-paste-element="PARAGRAPH" data-paste-core-version="21.0.1" class="css-t3ja6c">To get the following code sample to run, replace these values:</p><ol data-paste-element="ORDERED_LIST" data-paste-core-version="21.0.1" type="1" class="css-w38rkw">
<li data-paste-element="LIST_ITEM" data-paste-core-version="21.0.1" class="css-1pp5a8v">Replace the <code data-paste-element="INLINE_CODE" data-paste-core-version="21.4.0" class="css-1kwd7zr">MessagingServiceSid</code> with the SID of one of your Messaging Services</li>
<li data-paste-element="LIST_ITEM" data-paste-core-version="21.0.1" class="css-1pp5a8v">Replace the <code data-paste-element="INLINE_CODE" data-paste-core-version="21.4.0" class="css-1kwd7zr">To</code> number with your mobile number</li>
<li data-paste-element="LIST_ITEM" data-paste-core-version="21.0.1" class="css-1pp5a8v">Replace the <code data-paste-element="INLINE_CODE" data-paste-core-version="21.4.0" class="css-1kwd7zr">StatusCallback</code> URL with your status callback URL</li>
</ol><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-uvbrx2"><div data-paste-element="CODE_BLOCK_WRAPPER" data-paste-core-version="21.4.0" class="css-1ft5k6i"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1vk3mjb"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-2ib1ps"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-eely4y"><span data-paste-element="BOX" data-paste-core-version="21.4.0" id="code-send-a-message-using-messaging-service-and-statuscallback-url" class="css-ztvk33"><span data-paste-element="BOX" data-paste-core-version="21.4.0" title="Send a Message using Messaging Service and StatusCallback URL" class="css-9nq3e2">Send a Message using Messaging Service and StatusCallback URL</span></span><a data-paste-element="BOX" data-paste-core-version="21.4.0" href="#code-send-a-message-using-messaging-service-and-statuscallback-url" class="css-2tt14g"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" fill="none" viewBox="0 0 20 20" aria-labelledby="LinkIcon-_R_akpllv5al5dlbkm_"><title id="LinkIcon-_R_akpllv5al5dlbkm_">Link to code sample: Send a Message using Messaging Service and StatusCallback URL</title><path fill="currentColor" d="M13.074 5.674a2.3 2.3 0 013.252 3.252l-2.97 2.97A2.3 2.3 0 019.869 8.92a.5.5 0 10-.808-.588 3.3 3.3 0 005.004 4.272l2.97-2.97a3.3 3.3 0 00-4.667-4.666l-.467.466a.5.5 0 10.707.707l.467-.466z"></path><path fill="currentColor" d="M9.18 7.163a2.3 2.3 0 011.952 3.65.5.5 0 10.809.59A3.3 3.3 0 006.936 7.13l-2.97 2.97a3.3 3.3 0 004.667 4.667l.58-.58a.5.5 0 10-.707-.707l-.58.58a2.3 2.3 0 11-3.252-3.252l2.97-2.97c.409-.41.958-.652 1.536-.675z"></path></svg></span></a></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-uedoeu"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-s0z4m"><div data-paste-element="SELECT" data-paste-core-version="21.4.0" class="css-116z8rp"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1p04ivx"><select data-paste-element="SELECT_ELEMENT" data-paste-core-version="21.4.0" id="code-sample-code-sample-_R_lv5al5dlbkm_" aria-label="Select sample" tabindex="0" aria-describedby="paste-tooltip-_R_2d9llv5al5dlbkm_" data-not-selectize="true" class="css-1eeu8f4"><option data-paste-element="OPTION" data-paste-core-version="21.4.0" value="Node.js" class="css-1raivgc" selected="">Node.js</option><option data-paste-element="OPTION" data-paste-core-version="21.4.0" value="Python" class="css-1raivgc">Python</option><option data-paste-element="OPTION" data-paste-core-version="21.4.0" value="C#" class="css-1raivgc">C#</option><option data-paste-element="OPTION" data-paste-core-version="21.4.0" value="Java" class="css-1raivgc">Java</option><option data-paste-element="OPTION" data-paste-core-version="21.4.0" value="Go" class="css-1raivgc">Go</option><option data-paste-element="OPTION" data-paste-core-version="21.4.0" value="PHP" class="css-1raivgc">PHP</option><option data-paste-element="OPTION" data-paste-core-version="21.4.0" value="Ruby" class="css-1raivgc">Ruby</option><option data-paste-element="OPTION" data-paste-core-version="21.4.0" value="twilio-cli" class="css-1raivgc">twilio-cli</option><option data-paste-element="OPTION" data-paste-core-version="21.4.0" value="curl" class="css-1raivgc">curl</option></select><div data-paste-element="SELECT_CHEVRON_WRAPPER" data-paste-core-version="21.4.0" class="css-68zvok"><span data-paste-element="SELECT_ICON" data-paste-core-version="21.4.0" class="css-1v61162"><svg role="img" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="ChevronDownIcon-_R_laed9llv5al5dlbkm_"><path fill="currentColor" fill-rule="evenodd" d="M6.293 8.293a1 1 0 011.32-.083l.094.083L10 10.585l2.293-2.292a1 1 0 011.32-.083l.094.083a1 1 0 01.083 1.32l-.083.094-3 3a1 1 0 01-1.32.083l-.094-.083-3-3a1 1 0 010-1.414z"></path></svg></span></div></div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><button data-paste-element="CODE_BLOCK_REPORT_BUTTON" data-paste-core-version="21.4.0" tabindex="0" aria-describedby="_R_2l9llv5al5dlbkm_" aria-busy="false" type="button" class="css-s7diru"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1lgr57j"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" fill="none" viewBox="0 0 20 20" aria-labelledby="ProductDebuggerIcon-_R_6j6ml9llv5al5dlbkm_"><path fill="currentColor" fill-rule="evenodd" d="M17.466 11.678a.533.533 0 100-1.064h-1.067a6.35 6.35 0 00-.272-1.835 3.176 3.176 0 011.328-.292h.01a.533.533 0 10.003-1.064h-.013c-.594 0-1.182.124-1.725.365l-.017-.036-.008-.016a6.426 6.426 0 00-2.278-2.507c1.202-.861 1.344-1.86 1.344-3.697a.533.533 0 00-1.066 0c0 1.905-.126 2.458-1.386 3.136a6.33 6.33 0 00-4.67.012c-1.282-.683-1.41-1.232-1.41-3.148a.533.533 0 00-1.067 0c0 1.85.145 2.85 1.371 3.715a6.427 6.427 0 00-2.248 2.489l-.008.016-.017.036a4.244 4.244 0 00-1.725-.365h-.013a.533.533 0 10.013 1.064c.459 0 .912.1 1.328.292a6.35 6.35 0 00-.272 1.835H2.534a.533.533 0 100 1.064h1.163c.144.857.463 1.676.938 2.405a3.196 3.196 0 01-2.098.788h-.003a.533.533 0 100 1.065h.003a4.261 4.261 0 002.753-1.014 6.374 6.374 0 009.42 0 4.261 4.261 0 002.753 1.014h.003a.533.533 0 100-1.065h-.003c-.772 0-1.517-.28-2.098-.788a6.32 6.32 0 00.938-2.405h1.163zM10 5.292c.69 0 1.375.135 2.014.397a.53.53 0 00.206.092 5.35 5.35 0 012.036 1.64H5.744A5.326 5.326 0 0110 5.29zm-5.333 5.322c0-.733.153-1.458.449-2.13h4.35v7.425a5.333 5.333 0 01-4.799-5.295zm5.866 5.295V8.485h4.351a5.306 5.306 0 01-.28 4.818 5.327 5.327 0 01-4.07 2.606z" clip-rule="evenodd"></path></svg></span><span data-paste-element="BOX" data-paste-core-version="21.4.0" aria-live="polite" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1cbdvo6">Report code block</span></span></span></span></button></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><button data-paste-element="CODE_BLOCK_COPY_BUTTON" data-paste-core-version="21.4.0" tabindex="0" aria-describedby="_R_2t9llv5al5dlbkm_" aria-busy="false" type="button" class="css-s7diru"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1lgr57j"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="CopyIcon-_R_d6et9llv5al5dlbkm_"><path fill="currentColor" fill-rule="evenodd" d="M13.469 2.5c.63 0 1.15.48 1.212 1.094l.007.125-.001 1.593h1.407c.73 0 1.331.558 1.4 1.271l.006.136v9.375c0 .776-.63 1.406-1.406 1.406H6.719c-.777 0-1.407-.63-1.407-1.406v-1.407H3.719c-.631 0-1.15-.48-1.213-1.094L2.5 13.47v-9.75c0-.631.48-1.15 1.094-1.213L3.72 2.5h9.75zm2.625 3.75H6.719a.469.469 0 00-.469.469v9.375c0 .259.21.468.469.468h9.375c.259 0 .468-.21.468-.468V6.719a.469.469 0 00-.468-.469zm-2.625-2.813h-9.75a.281.281 0 00-.274.217l-.007.065v9.75c0 .133.092.244.216.274l.065.007 1.593-.001v-7.03c0-.731.558-1.332 1.271-1.4l.136-.006 7.031-.001V3.719a.281.281 0 00-.217-.274l-.064-.007z"></path></svg></span><span data-paste-element="BOX" data-paste-core-version="21.4.0" aria-live="polite" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1cbdvo6">Copy code block</span></span></span></span></button></div></div></div><div data-paste-element="CODE_BLOCK" data-paste-core-version="21.4.0" class="css-1lrte93"><div data-paste-element="CODE_BLOCK_CONTENT" data-paste-core-version="21.4.0" class="css-1yf26d7"><pre data-theme="github-dark" data-lang="javascript" style="color:white;font-family:&#x27;TwilioSansMono&#x27;, Courier, monospace;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;font-size:1em;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;margin:0;overflow:auto;background:inherit;width:100%;padding-bottom:2rem" tabindex="0" class="css-1p78m0" data-ch="true"><div style="min-width:fit-content"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">1</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div><span style="color:#8B949E">// Download the helper library from https://www.twilio.com/docs/node/install</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">2</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div><span style="color:#FF7B72">const</span> <span style="color:#79C0FF">twilio</span> <span style="color:#FF7B72">=</span> <span style="color:#D2A8FF">require</span><span style="color:#C9D1D9">(</span><span style="color:#A5D6FF">&quot;twilio&quot;</span><span style="color:#C9D1D9">);</span> <span style="color:#8B949E">// Or, for ESM: import twilio from &quot;twilio&quot;;</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">3</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">4</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div><span style="color:#8B949E">// Find your Account SID and Auth Token at twilio.com/console</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">5</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div><span style="color:#8B949E">// and set the environment variables. See http://twil.io/secure</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">6</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div><span style="color:#FF7B72">const</span> <span style="color:#79C0FF">accountSid</span> <span style="color:#FF7B72">=</span> <span style="color:#C9D1D9">process.env.</span><span style="color:#79C0FF">TWILIO_ACCOUNT_SID</span><span style="color:#C9D1D9">;</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">7</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div><span style="color:#FF7B72">const</span> <span style="color:#79C0FF">authToken</span> <span style="color:#FF7B72">=</span> <span style="color:#C9D1D9">process.env.</span><span style="color:#79C0FF">TWILIO_AUTH_TOKEN</span><span style="color:#C9D1D9">;</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">8</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div><span style="color:#FF7B72">const</span> <span style="color:#79C0FF">client</span> <span style="color:#FF7B72">=</span> <span style="color:#D2A8FF">twilio</span><span style="color:#C9D1D9">(accountSid, authToken);</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">9</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">10</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div><span style="color:#FF7B72">async function</span> <span style="color:#D2A8FF">createMessage</span><span style="color:#C9D1D9">() {</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">11</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>  <span style="color:#FF7B72">const</span> <span style="color:#79C0FF">message</span> <span style="color:#FF7B72">= await</span> <span style="color:#C9D1D9">client.messages.</span><span style="color:#D2A8FF">create</span><span style="color:#C9D1D9">({</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">12</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>    <span style="color:#C9D1D9">body:</span> <span style="color:#A5D6FF">&quot;McAvoy or Stewart? These timelines can get so confusing.&quot;</span><span style="color:#C9D1D9">,</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">13</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>    <span style="color:#C9D1D9">messagingServiceSid:</span> <span style="color:#A5D6FF">&quot;MG9752274e9e519418a7406176694466fa&quot;</span><span style="color:#C9D1D9">,</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">14</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>    <span style="color:#C9D1D9">statusCallback:</span> <span style="color:#A5D6FF">&quot;http://example.com/MessageStatus&quot;</span><span style="color:#C9D1D9">,</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">15</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>    <span style="color:#C9D1D9">to:</span> <span style="color:#A5D6FF">&quot;+15558675310&quot;</span><span style="color:#C9D1D9">,</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">16</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>  <span style="color:#C9D1D9">});</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">17</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">18</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>  <span style="color:#C9D1D9">console.</span><span style="color:#D2A8FF">log</span><span style="color:#C9D1D9">(message.body);</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">19</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div><span style="color:#C9D1D9">}</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">20</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">21</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div><span style="color:#D2A8FF">createMessage</span><span style="color:#C9D1D9">();</span></div></div></div></div></pre></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1rx11c4"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-ab5mdd"><h3 data-paste-element="CODE_BLOCK_HEADER" data-paste-core-version="21.4.0" class="css-1tyruju">Response</h3><span data-paste-element="BOX" data-paste-core-version="21.4.0" tabindex="0" aria-describedby="paste-tooltip-_R_krllv5al5dlbkm_" class="css-roynbj"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="InformationIcon-_R_jkrllv5al5dlbkm_"><title id="InformationIcon-_R_jkrllv5al5dlbkm_">Note about this response</title><path fill="currentColor" fill-rule="evenodd" d="M10 2a8 8 0 110 16 8 8 0 010-16zm0 1.25a6.75 6.75 0 100 13.5 6.75 6.75 0 000-13.5zM10 9a1 1 0 011 1v3a1 1 0 01-2 0v-3a1 1 0 011-1zm0-3a1 1 0 110 2 1 1 0 010-2z"></path></svg></span></span></div><div data-paste-element="CODE_BLOCK" data-paste-core-version="21.4.0" class="css-1lrte93"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-ba3ttd"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><button data-paste-element="CODE_BLOCK_COPY_BUTTON" data-paste-core-version="21.4.0" tabindex="0" aria-describedby="_R_16dbllv5al5dlbkm_" aria-busy="false" type="button" class="css-8sx3rd"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1lgr57j"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="CopyIcon-_R_6j76dbllv5al5dlbkm_"><path fill="currentColor" fill-rule="evenodd" d="M13.469 2.5c.63 0 1.15.48 1.212 1.094l.007.125-.001 1.593h1.407c.73 0 1.331.558 1.4 1.271l.006.136v9.375c0 .776-.63 1.406-1.406 1.406H6.719c-.777 0-1.407-.63-1.407-1.406v-1.407H3.719c-.631 0-1.15-.48-1.213-1.094L2.5 13.47v-9.75c0-.631.48-1.15 1.094-1.213L3.72 2.5h9.75zm2.625 3.75H6.719a.469.469 0 00-.469.469v9.375c0 .259.21.468.469.468h9.375c.259 0 .468-.21.468-.468V6.719a.469.469 0 00-.468-.469zm-2.625-2.813h-9.75a.281.281 0 00-.274.217l-.007.065v9.75c0 .133.092.244.216.274l.065.007 1.593-.001v-7.03c0-.731.558-1.332 1.271-1.4l.136-.006 7.031-.001V3.719a.281.281 0 00-.217-.274l-.064-.007z"></path></svg></span><span data-paste-element="BOX" data-paste-core-version="21.4.0" aria-live="polite" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1cbdvo6">Copy response</span></span></span></span></button></div></div><div data-paste-element="CODE_BLOCK_CONTENT" data-paste-core-version="21.4.0" class="css-1yf26d7"><pre data-theme="github-dark" data-lang="json" style="color:white;font-family:&#x27;TwilioSansMono&#x27;, Courier, monospace;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;font-size:1em;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;margin:0;overflow:auto;background:inherit;width:100%;padding-bottom:2rem;max-height:calc(1.5 * 1em * 21 - .25em)" tabindex="0" class="css-1p78m0" data-ch="true"><div style="min-width:fit-content"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">1</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div><span style="color:#C9D1D9">{</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">2</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>  <span style="color:#7EE787">&quot;account_sid&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#A5D6FF">&quot;ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&quot;</span><span style="color:#C9D1D9">,</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">3</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>  <span style="color:#7EE787">&quot;api_version&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#A5D6FF">&quot;2010-04-01&quot;</span><span style="color:#C9D1D9">,</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">4</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>  <span style="color:#7EE787">&quot;body&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#A5D6FF">&quot;McAvoy or Stewart? These timelines can get so confusing.&quot;</span><span style="color:#C9D1D9">,</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">5</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>  <span style="color:#7EE787">&quot;date_created&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#A5D6FF">&quot;Thu, 24 Aug 2023 05:01:45 +0000&quot;</span><span style="color:#C9D1D9">,</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">6</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>  <span style="color:#7EE787">&quot;date_sent&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#A5D6FF">&quot;Thu, 24 Aug 2023 05:01:45 +0000&quot;</span><span style="color:#C9D1D9">,</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">7</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>  <span style="color:#7EE787">&quot;date_updated&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#A5D6FF">&quot;Thu, 24 Aug 2023 05:01:45 +0000&quot;</span><span style="color:#C9D1D9">,</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">8</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>  <span style="color:#7EE787">&quot;direction&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#A5D6FF">&quot;outbound-api&quot;</span><span style="color:#C9D1D9">,</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">9</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>  <span style="color:#7EE787">&quot;error_code&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#79C0FF">null</span><span style="color:#C9D1D9">,</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">10</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>  <span style="color:#7EE787">&quot;error_message&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#79C0FF">null</span><span style="color:#C9D1D9">,</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">11</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>  <span style="color:#7EE787">&quot;from&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#A5D6FF">&quot;+14155552345&quot;</span><span style="color:#C9D1D9">,</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">12</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>  <span style="color:#7EE787">&quot;num_media&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#A5D6FF">&quot;0&quot;</span><span style="color:#C9D1D9">,</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">13</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>  <span style="color:#7EE787">&quot;num_segments&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#A5D6FF">&quot;1&quot;</span><span style="color:#C9D1D9">,</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">14</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>  <span style="color:#7EE787">&quot;price&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#79C0FF">null</span><span style="color:#C9D1D9">,</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">15</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>  <span style="color:#7EE787">&quot;price_unit&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#79C0FF">null</span><span style="color:#C9D1D9">,</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">16</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>  <span style="color:#7EE787">&quot;messaging_service_sid&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#A5D6FF">&quot;MG9752274e9e519418a7406176694466fa&quot;</span><span style="color:#C9D1D9">,</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">17</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>  <span style="color:#7EE787">&quot;sid&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#A5D6FF">&quot;SMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa&quot;</span><span style="color:#C9D1D9">,</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">18</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>  <span style="color:#7EE787">&quot;status&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#A5D6FF">&quot;queued&quot;</span><span style="color:#C9D1D9">,</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">19</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>  <span style="color:#7EE787">&quot;subresource_uris&quot;</span><span style="color:#C9D1D9">: {</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">20</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>    <span style="color:#7EE787">&quot;media&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#A5D6FF">&quot;/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Messages/SMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Media.json&quot;</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">21</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>  <span style="color:#C9D1D9">},</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">22</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>  <span style="color:#7EE787">&quot;to&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#A5D6FF">&quot;+15558675310&quot;</span><span style="color:#C9D1D9">,</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">23</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div>  <span style="color:#7EE787">&quot;uri&quot;</span><span style="color:#C9D1D9">:</span> <span style="color:#A5D6FF">&quot;/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Messages/SMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.json&quot;</span>
</div></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1m136ci">24</span><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-luzz01"><div><span style="color:#C9D1D9">}</span></div></div></div></div></pre></div></div></div></div></div><hr data-paste-element="SEPARATOR" data-paste-core-version="21.4.0" aria-orientation="horizontal" class="css-1y5brhz"/></section>
<section id="whats-next-section-indexable"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-m8ey6p"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-gt12nx"><h2 data-paste-element="HEADING" data-paste-core-version="21.0.1" id="whats-next" class="css-132spa5">What&#x27;s next?</h2><a data-paste-element="BOX" data-paste-core-version="21.4.0" href="#whats-next" class="css-f02h4i"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" fill="none" viewBox="0 0 20 20" aria-labelledby="LinkIcon-_R_1aj635al5dlbkm_"><title id="LinkIcon-_R_1aj635al5dlbkm_">whats-next page anchor</title><path fill="currentColor" d="M13.074 5.674a2.3 2.3 0 013.252 3.252l-2.97 2.97A2.3 2.3 0 019.869 8.92a.5.5 0 10-.808-.588 3.3 3.3 0 005.004 4.272l2.97-2.97a3.3 3.3 0 00-4.667-4.666l-.467.466a.5.5 0 10.707.707l.467-.466z"></path><path fill="currentColor" d="M9.18 7.163a2.3 2.3 0 011.952 3.65.5.5 0 10.809.59A3.3 3.3 0 006.936 7.13l-2.97 2.97a3.3 3.3 0 004.667 4.667l.58-.58a.5.5 0 10-.707-.707l-.58.58a2.3 2.3 0 11-3.252-3.252l2.97-2.97c.409-.41.958-.652 1.536-.675z"></path></svg></span></a></div></div><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1kam78h"><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-knmi57"><button data-paste-element="BUTTON" data-paste-core-version="21.4.0" aria-pressed="false" aria-busy="false" type="button" class="css-qw1tfm"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1lgr57j"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" width="100%" height="100%" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-labelledby="ThumbsUpIcon-_R_9jal635al5dlbkm_"><title id="ThumbsUpIcon-_R_9jal635al5dlbkm_">Positive Feedback</title><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M6.5 7.45c.194-.216.406-.451.628-.707.799-.922 1.608-1.972 1.898-2.838.314-.938 1.139-1.487 1.966-1.395a1.57 1.57 0 011.085.621c.277.363.423.85.423 1.43 0 .327-.081.645-.174.924-.062.186-.139.383-.208.56l-.088.226c-.092.245-.15.432-.166.582-.014.134.01.19.033.222l.001.001a.415.415 0 00.1.058 1.9 1.9 0 00.371.11c.32.068.725.106 1.152.124.632.026 1.237.01 1.634-.002.147-.004.265-.008.345-.008.25 0 .731.008 1.158.218.224.11.443.28.603.537.159.256.239.567.239.924 0 1.218-.524 3.647-1.553 5.695-.31.616-.693.885-1.18 1.193-.574.364-1.145.575-1.767.575h-3c-1.116 0-2.204-.418-3.002-.883a6.393 6.393 0 01-.498-.322v.372a.5.5 0 01-.5.5H3a.5.5 0 01-.5-.5V7a.5.5 0 01.5-.5h3a.5.5 0 01.5.5v.45zm3.474-3.228c.186-.554.611-.751.909-.718a.57.57 0 01.399.233c.114.15.218.409.218.824 0 .17-.044.37-.123.61a9.287 9.287 0 01-.177.474c-.034.087-.07.177-.105.273-.095.252-.194.542-.225.827-.032.297.005.636.23.935.135.178.322.291.491.367.175.078.372.134.571.176.4.084.869.125 1.317.144.676.028 1.382.008 1.767-.003.118-.003.206-.006.254-.006.25 0 .519.018.717.115.088.044.15.098.194.168.044.07.089.19.089.396 0 1.04-.476 3.316-1.447 5.246-.184.367-.375.516-.82.797-.468.296-.855.42-1.233.42h-3c-.884 0-1.796-.338-2.498-.747a4.464 4.464 0 01-.813-.591 1.36 1.36 0 01-.184-.207l-.005-.008V8.968a7.331 7.331 0 01.329-.39l.308-.343c.223-.246.483-.534.746-.837.788-.909 1.73-2.097 2.091-3.176zM5.5 7.5h-2v7.667h2V7.5z"></path></svg></span></span></button><button data-paste-element="BUTTON" data-paste-core-version="21.4.0" aria-pressed="false" aria-busy="false" type="button" class="css-qw1tfm"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1lgr57j"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" width="100%" height="100%" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-labelledby="ThumbsDownIcon-_R_9lal635al5dlbkm_"><title id="ThumbsDownIcon-_R_9lal635al5dlbkm_">Negative Feedback</title><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M13.5 12.55c-.194.215-.406.451-.628.707-.799.921-1.608 1.972-1.898 2.838-.314.938-1.139 1.487-1.966 1.395a1.57 1.57 0 01-1.085-.621c-.277-.363-.423-.85-.423-1.43 0-.327.081-.645.174-.924.062-.186.139-.383.208-.56l.088-.226c.092-.245.15-.432.166-.582.014-.134-.01-.19-.033-.222l-.001-.001a.416.416 0 00-.1-.058 1.902 1.902 0 00-.371-.11 7.35 7.35 0 00-1.152-.124 22.958 22.958 0 00-1.634.002 14.2 14.2 0 01-.345.008c-.25 0-.731-.008-1.158-.218a1.451 1.451 0 01-.603-.537c-.159-.257-.239-.567-.239-.924 0-1.218.524-3.648 1.553-5.696.31-.616.693-.884 1.18-1.192C5.807 3.71 6.378 3.5 7 3.5h3c1.116 0 2.204.417 3.002.883.178.104.345.212.498.321v-.37a.5.5 0 01.5-.5h3a.5.5 0 01.5.5V13a.5.5 0 01-.5.5h-3a.5.5 0 01-.5-.5v-.45zm-3.474 3.227c-.186.554-.611.752-.909.72a.571.571 0 01-.399-.234c-.114-.15-.218-.409-.218-.824a2 2 0 01.123-.61c.054-.16.113-.312.177-.475.034-.086.07-.176.105-.272.095-.252.194-.542.225-.828.032-.296-.005-.635-.23-.934a1.23 1.23 0 00-.491-.367 2.874 2.874 0 00-.571-.176 8.31 8.31 0 00-1.317-.144c-.676-.029-1.381-.008-1.767.003-.118.003-.206.006-.254.006-.25 0-.519-.018-.717-.115a.452.452 0 01-.194-.168c-.044-.07-.089-.19-.089-.396 0-1.04.476-3.316 1.447-5.247.184-.366.375-.515.82-.796.468-.296.855-.42 1.233-.42h3c.884 0 1.796.337 2.498.747.349.203.628.414.813.59.093.09.152.16.184.208l.005.007v4.98a7.245 7.245 0 01-.329.39 54.1 54.1 0 01-.308.342c-.223.247-.483.534-.746.838-.788.909-1.73 2.096-2.091 3.175zM14.5 12.5h2V4.833h-2V12.5z"></path></svg></span></span></button></div></div></div><p data-paste-element="PARAGRAPH" data-paste-core-version="21.0.1" class="css-t3ja6c">Now that you know how to track the message status of your outbound messages, check out the resources below for additional information and related Twilio product documentation:</p><ul data-paste-element="UNORDERED_LIST" data-paste-core-version="21.0.1" class="css-q56x2v">
<li data-paste-element="LIST_ITEM" data-paste-core-version="21.0.1" class="css-1pp5a8v">Read our guide <a data-paste-element="ANCHOR" data-paste-core-version="21.4.0" href="/docs/messaging/guides/outbound-message-logging" title="Best Practices for Messaging Delivery Status Logging" class="css-lpeit6">Best Practices for Messaging Delivery Status Logging</a> for advanced considerations when implementing a production-grade status logging solution.</li>
<li data-paste-element="LIST_ITEM" data-paste-core-version="21.0.1" class="css-1pp5a8v">Explore our guide <a data-paste-element="ANCHOR" data-paste-core-version="21.4.0" href="/docs/messaging/guides/send-message-feedback-to-twilio" title="How to Optimize Message Deliverability with Message Feedback" class="css-lpeit6">How to Optimize Message Deliverability with Message Feedback</a>.</li>
<li data-paste-element="LIST_ITEM" data-paste-core-version="21.0.1" class="css-1pp5a8v">See how Message Feedback supports the <a data-paste-element="ANCHOR" data-paste-core-version="21.4.0" href="/docs/messaging/features/messaging-insights/dashboards#otp-conversion-dashboard" title="Messaging Insights &quot;One-time Password (OTP) Conversion Report&quot;" class="css-lpeit6">Messaging Insights &quot;One-time Password (OTP) Conversion Report&quot;</a>. Learn how to analyze the effectiveness of messages sent to provide two-factor authentication (2FA) or multi-factor authentication (MFA) codes or other one-time passwords for user authentication or account verification.</li>
<li data-paste-element="LIST_ITEM" data-paste-core-version="21.0.1" class="css-1pp5a8v">Shorten links in messages with your own company-branded domain and track click-through-rates with <a data-paste-element="ANCHOR" data-paste-core-version="21.4.0" href="/docs/messaging/features/link-shortening" title="Link Shortening" class="css-lpeit6">Link Shortening</a>.</li>
</ul></section></article></div></main></div><style data-emotion="css gcx02f">.css-gcx02f{box-sizing:border-box;margin-top:2rem;margin-bottom:2rem;margin-left:1.75rem;margin-right:1.75rem;position:relative;}@media screen and (min-width: 768px){.css-gcx02f{margin-top:2rem;margin-bottom:2rem;margin-left:1.75rem;margin-right:1.75rem;}}@media screen and (min-width: 1024px){.css-gcx02f{margin-top:3rem;margin-bottom:3rem;margin-left:2.25rem;margin-right:2.25rem;}}@media screen and (min-width: 1495px){.css-gcx02f{margin-left:2.75rem;margin-right:2.75rem;}}</style><footer data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-gcx02f"><style data-emotion="css hwgdf9">.css-hwgdf9{box-sizing:border-box;border-radius:4px;background-color:rgb(18, 28, 45);margin-top:0;padding-top:0;}</style><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-hwgdf9"><style data-emotion="css 12czydn">.css-12czydn{box-sizing:border-box;max-width:77rem;padding:2rem;margin-top:0.125rem;margin-left:auto;margin-right:auto;position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}@media screen and (min-width: 768px){.css-12czydn{padding:2rem;}}</style><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-12czydn"><style data-emotion="css rsy2t7">.css-rsy2t7{box-sizing:border-box;-webkit-flex-basis:100%;-ms-flex-preferred-size:100%;flex-basis:100%;min-width:0;}@media screen and (min-width: 768px){.css-rsy2t7{-webkit-flex-basis:100%;-ms-flex-preferred-size:100%;flex-basis:100%;}}@media screen and (min-width: 1024px){.css-rsy2t7{-webkit-flex-basis:100%;-ms-flex-preferred-size:100%;flex-basis:100%;}}@media screen and (min-width: 1495px){.css-rsy2t7{-webkit-flex-basis:60%;-ms-flex-preferred-size:60%;flex-basis:60%;}}</style><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-rsy2t7"><style data-emotion="css 1cfvfc1">.css-1cfvfc1{box-sizing:border-box;position:relative;padding:4.25rem;}</style><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1cfvfc1"><style data-emotion="css 1uxvx9z">.css-1uxvx9z{box-sizing:border-box;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;margin-bottom:1.75rem;text-align:center;}@media screen and (min-width: 768px){.css-1uxvx9z{-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;text-align:left;}}</style><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1uxvx9z"><style data-emotion="css 1aljbmp">.css-1aljbmp{margin:0;padding:0;color:rgb(255, 255, 255);font-size:1.25rem;line-height:1.75rem;font-family:'TwilioSansDisplay','Inter var experimental','Inter var',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen-Sans,Ubuntu,Cantarell,'Helvetica Neue',sans-serif;font-weight:800;margin-top:0.75rem;}@media screen and (min-width: 768px){.css-1aljbmp{font-size:2rem;line-height:2.5rem;margin-top:0;}}</style><h2 data-paste-element="TEXT" data-paste-core-version="21.0.1" class="css-1aljbmp">Need some help?</h2></div><style data-emotion="css zys9b">.css-zys9b{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;text-align:center;width:100%;}@media screen and (min-width: 768px){.css-zys9b{-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;text-align:left;}}</style><nav data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-zys9b"><style data-emotion="css 1pnhtm2">.css-1pnhtm2{box-sizing:border-box;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;margin-bottom:1.25rem;margin-right:0;max-width:100%;}@media screen and (min-width: 768px){.css-1pnhtm2{-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;margin-right:3rem;max-width:100%;}}@media screen and (min-width: 1024px){.css-1pnhtm2{-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}}@media screen and (min-width: 1495px){.css-1pnhtm2{-webkit-box-flex:0;-webkit-flex-grow:0;-ms-flex-positive:0;flex-grow:0;max-width:calc(100% - 5rem);}}</style><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1pnhtm2"><style data-emotion="css w6f2uy">.css-w6f2uy{margin:0;padding:0;color:rgb(255, 255, 255);font-size:1rem;line-height:1.25rem;}</style><p data-paste-element="TEXT" data-paste-core-version="21.0.1" class="css-w6f2uy">We all do sometimes; code is hard. Get help now from our <style data-emotion="css 1az6u6g">.css-1az6u6g{box-sizing:border-box;color:rgb(255, 255, 255);font-size:inherit;font-weight:inherit;line-height:inherit;outline:none;-webkit-text-decoration:underline;text-decoration:underline;}.css-1az6u6g:active,.css-1az6u6g[data-active=true]{color:rgb(255, 255, 255);-webkit-text-decoration:none;text-decoration:none;}.css-1az6u6g:focus{box-shadow:0 0 0 1px #394762,0 0 0 3px #121c2d,0 0 0 4px #ffffff,0 0 0 6px rgba(255, 255, 255, 0.2);color:rgb(255, 255, 255);-webkit-text-decoration:underline;text-decoration:underline;border-radius:4px;}.css-1az6u6g:hover{color:rgb(255, 255, 255);-webkit-text-decoration:none;text-decoration:none;}</style><a data-paste-element="ANCHOR" data-paste-core-version="21.4.0" href="https://help.twilio.com" rel="noreferrer noopener" target="_blank" title="support team" class="css-1az6u6g"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj">support team<span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1ezs782"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="LinkExternalIcon-_R_l9al9l7dlbkm_"><title id="LinkExternalIcon-_R_l9al9l7dlbkm_">(link takes you to an external page)</title><path fill="currentColor" fill-rule="evenodd" d="M8.4 4.5a.5.5 0 01.5.5v.1a.5.5 0 01-.5.5H5.6v8.8h8.8v-2.8a.5.5 0 01.41-.492l.09-.008h.1a.5.5 0 01.492.41l.008.09V15a.5.5 0 01-.41.492L15 15.5H5a.5.5 0 01-.492-.41L4.5 15V5a.5.5 0 01.41-.492L5 4.5h3.4zm6.6 0a.5.5 0 01.5.5v.1l-.001.01.001 3.29a.5.5 0 01-.5.5h-.1a.5.5 0 01-.5-.5l-.001-1.935-3.967 3.967a.611.611 0 01-.78.07l-.084-.07a.611.611 0 01-.07-.78l.07-.084L13.534 5.6H11.6a.5.5 0 01-.5-.5V5a.5.5 0 01.5-.5H15z"></path></svg></span></span></span></a>, or lean on the wisdom of the crowd by browsing the <a data-paste-element="ANCHOR" data-paste-core-version="21.4.0" href="https://stackoverflow.com/questions/tagged/twilio" rel="noreferrer noopener" target="_blank" title="Twilio tag" class="css-1az6u6g"><span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-roynbj">Twilio tag<span data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1ezs782"><span data-paste-element="ICON" data-paste-core-version="21.4.0" class="css-pe4vrq"><svg role="img" aria-hidden="false" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 20" aria-labelledby="LinkExternalIcon-_R_laal9l7dlbkm_"><title id="LinkExternalIcon-_R_laal9l7dlbkm_">(link takes you to an external page)</title><path fill="currentColor" fill-rule="evenodd" d="M8.4 4.5a.5.5 0 01.5.5v.1a.5.5 0 01-.5.5H5.6v8.8h8.8v-2.8a.5.5 0 01.41-.492l.09-.008h.1a.5.5 0 01.492.41l.008.09V15a.5.5 0 01-.41.492L15 15.5H5a.5.5 0 01-.492-.41L4.5 15V5a.5.5 0 01.41-.492L5 4.5h3.4zm6.6 0a.5.5 0 01.5.5v.1l-.001.01.001 3.29a.5.5 0 01-.5.5h-.1a.5.5 0 01-.5-.5l-.001-1.935-3.967 3.967a.611.611 0 01-.78.07l-.084-.07a.611.611 0 01-.07-.78l.07-.084L13.534 5.6H11.6a.5.5 0 01-.5-.5V5a.5.5 0 01.5-.5H15z"></path></svg></span></span></span></a> on Stack Overflow.</p></div></nav><style data-emotion="css 1o3xt00">.css-1o3xt00{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;margin-top:2.75rem;text-align:center;}@media screen and (min-width: 768px){.css-1o3xt00{-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;text-align:left;}}</style><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-1o3xt00"><style data-emotion="css 2ch0jy">.css-2ch0jy{box-sizing:border-box;display:block;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;}@media screen and (min-width: 768px){.css-2ch0jy{display:block;}}@media screen and (min-width: 1024px){.css-2ch0jy{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}}</style><div data-paste-element="STACK" data-paste-core-version="21.4.0" class="css-2ch0jy"><style data-emotion="css 1hsc1sb">.css-1hsc1sb{box-sizing:border-box;margin-right:0;margin-bottom:1.25rem;}@media screen and (min-width: 768px){.css-1hsc1sb{margin-right:0;margin-bottom:1.25rem;}}@media screen and (min-width: 1024px){.css-1hsc1sb{margin-right:1.25rem;margin-bottom:0;}}</style><div data-paste-element="STACK_CHILD" data-paste-core-version="21.4.0" class="css-1hsc1sb"><style data-emotion="css 6i08t">.css-6i08t{color:rgb(255, 255, 255);}</style><a class="css-6i08t" href="/en-us/legal/tos">Terms of service</a></div><div data-paste-element="STACK_CHILD" data-paste-core-version="21.4.0" class="css-1hsc1sb"><a class="css-6i08t" href="/en-us/legal/privacy">Privacy Policy</a></div><div data-paste-element="STACK_CHILD" data-paste-core-version="21.4.0" class="css-roynbj"><style data-emotion="css g9v2ra">.css-g9v2ra{margin:0;padding:0;color:rgb(255, 255, 255);font-size:0.875rem;line-height:1.25rem;}</style><p data-paste-element="TEXT" data-paste-core-version="21.0.1" class="css-g9v2ra">Copyright © 2026 Twilio Inc.</p></div></div></div></div></div><style data-emotion="css 9bhu4t">.css-9bhu4t{box-sizing:border-box;-webkit-flex-basis:0%;-ms-flex-preferred-size:0%;flex-basis:0%;display:none;min-width:0;position:relative;}@media screen and (min-width: 768px){.css-9bhu4t{-webkit-flex-basis:0%;-ms-flex-preferred-size:0%;flex-basis:0%;display:none;}}@media screen and (min-width: 1024px){.css-9bhu4t{-webkit-flex-basis:0%;-ms-flex-preferred-size:0%;flex-basis:0%;display:none;}}@media screen and (min-width: 1495px){.css-9bhu4t{-webkit-flex-basis:40%;-ms-flex-preferred-size:40%;flex-basis:40%;display:block;}}</style><div data-paste-element="BOX" data-paste-core-version="21.4.0" class="css-9bhu4t"><img alt="Contact us" loading="lazy" decoding="async" data-nimg="fill" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;object-fit:contain;color:transparent" sizes="100vw" srcSet="/_next/static/media/illo-contact-us.2-4ae6l2b3kv8.png?w=640 640w, /_next/static/media/illo-contact-us.2-4ae6l2b3kv8.png?w=750 750w, /_next/static/media/illo-contact-us.2-4ae6l2b3kv8.png?w=828 828w, /_next/static/media/illo-contact-us.2-4ae6l2b3kv8.png?w=1080 1080w, /_next/static/media/illo-contact-us.2-4ae6l2b3kv8.png?w=1200 1200w, /_next/static/media/illo-contact-us.2-4ae6l2b3kv8.png?w=1920 1920w, /_next/static/media/illo-contact-us.2-4ae6l2b3kv8.png?w=2048 2048w, /_next/static/media/illo-contact-us.2-4ae6l2b3kv8.png?w=3840 3840w" src="/_next/static/media/illo-contact-us.2-4ae6l2b3kv8.png?w=3840"/></div></div></div></footer></div></div></div></div><div id="consent_blackbar"></div><div id="teconsent" style="position:fixed;bottom:0;right:0;z-index:30"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"source":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n  const _components = {\n    a: \"a\",\n    br: \"br\",\n    code: \"code\",\n    em: \"em\",\n    h2: \"h2\",\n    h3: \"h3\",\n    h4: \"h4\",\n    hr: \"hr\",\n    li: \"li\",\n    ol: \"ol\",\n    p: \"p\",\n    section: \"section\",\n    slot: \"slot\",\n    strong: \"strong\",\n    table: \"table\",\n    tbody: \"tbody\",\n    td: \"td\",\n    th: \"th\",\n    thead: \"thead\",\n    tr: \"tr\",\n    ul: \"ul\",\n    ..._provideComponents(),\n    ...props.components\n  }, {CodeBlock, CodeBlockGroup, Image, Info, Warning} = _components;\n  if (!CodeBlock) _missingMdxReference(\"CodeBlock\", true);\n  if (!CodeBlockGroup) _missingMdxReference(\"CodeBlockGroup\", true);\n  if (!Image) _missingMdxReference(\"Image\", true);\n  if (!Info) _missingMdxReference(\"Info\", true);\n  if (!Warning) _missingMdxReference(\"Warning\", true);\n  return _jsxs(_Fragment, {\n    children: [_jsxs(_components.p, {\n      children: [\"This guide shows you how to use Twilio's status callbacks to track changes of the message status of outbound messages you send with \", _jsx(_components.a, {\n        href: \"/docs/messaging\",\n        children: \"Programmable Messaging\"\n      }), \".\"]\n    }), \"\\n\", _jsx(_components.p, {\n      children: \"Message status changes occur throughout the lifecycle of a message from creation, through sending, to delivery, and even read receipt for supporting messaging channels.\"\n    }), \"\\n\", _jsx(Info, {\n      children: _jsxs(_components.p, {\n        children: [\"The guide focuses on outbound messages created using the \", _jsx(_components.a, {\n          href: \"/docs/messaging/api/message-resource\",\n          children: \"Message Resource\"\n        }), \" of the \", _jsx(_components.a, {\n          href: \"/docs/messaging/api\",\n          children: \"Programmable Messaging REST API\"\n        }), \" and covers the necessary considerations when using a \", _jsx(_components.a, {\n          href: \"/docs/messaging/services\",\n          children: \"Messaging Service\"\n        }), \".\"]\n      })\n    }), \"\\n\", _jsx(_components.hr, {}), \"\\n\", _jsxs(_components.section, {\n      id: \"before-you-begin-section-indexable\",\n      children: [_jsx(_components.h2, {\n        id: \"before-you-begin\",\n        children: \"Before you begin\"\n      }), _jsx(_components.p, {\n        children: \"Before you dive into this guide, make sure you're familiar with the following concepts:\"\n      }), _jsxs(_components.ul, {\n        children: [\"\\n\", _jsxs(_components.li, {\n          children: [\"Know how to send a message by using the Programmable Messaging API. You can follow a \", _jsx(_components.a, {\n            href: \"/docs/messaging/quickstart\",\n            children: \"Messaging Quickstart\"\n          }), \" in the programming language of your choice.\"]\n        }), \"\\n\", _jsxs(_components.li, {\n          children: [\"Review our guide \", _jsx(_components.a, {\n            href: \"/docs/messaging/guides/outbound-message-status-in-status-callbacks\",\n            children: \"Outbound Message Status in Status Callbacks\"\n          }), \" to understand for which status changes Twilio sends a status callback request.\"]\n        }), \"\\n\", _jsxs(_components.li, {\n          children: [\"If you send high volumes of messages or schedule messages, learn what a \", _jsx(_components.a, {\n            href: \"/docs/messaging/services\",\n            children: \"Messaging Service\"\n          }), \" is and \", _jsx(_components.a, {\n            href: \"/docs/messaging/api/message-resource#send-a-message-with-a-messaging-service\",\n            children: \"how to use one to send a message\"\n          }), \".\"]\n        }), \"\\n\", _jsxs(_components.li, {\n          children: [\"The status callbacks covered in this guide are Twilio webhooks. Check out our guide to \", _jsx(_components.a, {\n            href: \"/docs/usage/webhooks/getting-started-twilio-webhooks\",\n            children: \"Getting Started with Twilio Webhooks\"\n          }), \". Find other webhook pages, such as a \", _jsx(_components.a, {\n            href: \"/docs/usage/webhooks/webhooks-security\",\n            children: \"security guide\"\n          }), \" and \", _jsx(_components.a, {\n            href: \"/docs/usage/webhooks/webhooks-faq\",\n            children: \"FAQ\"\n          }), \" in the \", _jsx(_components.a, {\n            href: \"/docs/usage/webhooks\",\n            children: \"Webhooks\"\n          }), \" section of the docs.\"]\n        }), \"\\n\"]\n      }), _jsxs(_components.p, {\n        children: [_jsx(_components.strong, {\n          children: \"Note\"\n        }), \": The code samples in this guide require some local setup steps. Select your language of choice below to learn how to set up your development environment:\"]\n      }), _jsxs(_components.ul, {\n        children: [\"\\n\", _jsx(_components.li, {\n          children: _jsx(_components.a, {\n            href: \"/docs/usage/tutorials/how-to-set-up-your-node-js-and-express-development-environment\",\n            children: \"Node.js\"\n          })\n        }), \"\\n\", _jsx(_components.li, {\n          children: _jsx(_components.a, {\n            href: \"/docs/usage/tutorials/how-to-set-up-your-python-and-flask-development-environment\",\n            children: \"Python\"\n          })\n        }), \"\\n\", _jsx(_components.li, {\n          children: _jsx(_components.a, {\n            href: \"/docs/usage/tutorials/how-to-set-up-your-csharp-and-asp-net-mvc-development-environment\",\n            children: \"C# and ASP.NET MVC\"\n          })\n        }), \"\\n\", _jsx(_components.li, {\n          children: _jsx(_components.a, {\n            href: \"/docs/usage/tutorials/how-to-set-up-your-php-development-environment\",\n            children: \"PHP\"\n          })\n        }), \"\\n\", _jsx(_components.li, {\n          children: _jsx(_components.a, {\n            href: \"/docs/usage/tutorials/how-to-set-up-your-java-development-environment\",\n            children: \"Java\"\n          })\n        }), \"\\n\", _jsx(_components.li, {\n          children: _jsx(_components.a, {\n            href: \"/docs/usage/tutorials/how-to-set-up-your-ruby-and-sinatra-development-environment\",\n            children: \"Ruby\"\n          })\n        }), \"\\n\", _jsx(_components.li, {\n          children: _jsx(_components.a, {\n            href: \"/docs/usage/tutorials/how-to-set-up-your-go-and-gin-development-environment\",\n            children: \"Go\"\n          })\n        }), \"\\n\"]\n      }), _jsx(_components.hr, {})]\n    }), \"\\n\", _jsxs(_components.section, {\n      id: \"how-to-track-outbound-message-status-section-indexable\",\n      children: [_jsx(_components.h2, {\n        id: \"how-to-track-outbound-message-status\",\n        children: \"How to track outbound message status\"\n      }), _jsx(_components.p, {\n        children: \"Tracking the message status of an outbound message is a two-step process:\"\n      }), _jsxs(_components.ol, {\n        children: [\"\\n\", _jsxs(_components.li, {\n          children: [\"\\n\", _jsx(_components.p, {\n            children: _jsx(_components.a, {\n              href: \"#step-1-set-up-a-status-callback-endpoint\",\n              children: \"Set up a status callback endpoint\"\n            })\n          }), \"\\n\", _jsxs(_components.ul, {\n            children: [\"\\n\", _jsx(_components.li, {\n              children: _jsx(_components.a, {\n                href: \"#how-are-status-callback-requests-sent\",\n                children: \"How are status callback requests sent?\"\n              })\n            }), \"\\n\", _jsx(_components.li, {\n              children: _jsx(_components.a, {\n                href: \"#implement-a-status-callback-handler-simplified-example\",\n                children: \"Implement a status callback handler (simplified example)\"\n              })\n            }), \"\\n\"]\n          }), \"\\n\"]\n        }), \"\\n\", _jsxs(_components.li, {\n          children: [\"\\n\", _jsx(_components.p, {\n            children: _jsx(_components.a, {\n              href: \"#step-2-send-a-message-with-status-callback-url\",\n              children: \"Send a message with status callback URL\"\n            })\n          }), \"\\n\", _jsxs(_components.ul, {\n            children: [\"\\n\", _jsx(_components.li, {\n              children: _jsx(_components.a, {\n                href: \"#scenario-1-no-messaging-service\",\n                children: \"Scenario 1: No Messaging Service\"\n              })\n            }), \"\\n\", _jsx(_components.li, {\n              children: _jsx(_components.a, {\n                href: \"#scenario-2-messaging-service-used\",\n                children: \"Scenario 2: Messaging Service used\"\n              })\n            }), \"\\n\"]\n          }), \"\\n\"]\n        }), \"\\n\"]\n      }), _jsx(_components.hr, {})]\n    }), \"\\n\", _jsxs(_components.section, {\n      id: \"step-1-set-up-a-status-callback-endpoint-section-indexable\",\n      children: [_jsx(_components.h2, {\n        id: \"step-1-set-up-a-status-callback-endpoint\",\n        children: \"Step 1. Set up a status callback endpoint\"\n      }), _jsx(_components.p, {\n        children: \"To track the message status of an outbound message, you must first create an API endpoint that:\"\n      }), _jsxs(_components.ul, {\n        children: [\"\\n\", _jsx(_components.li, {\n          children: \"Is served under a publicly accessible URL (the status callback URL)\"\n        }), \"\\n\", _jsx(_components.li, {\n          children: \"Implements a status callback handler for Twilio's message status callback HTTP requests.\"\n        }), \"\\n\"]\n      }), _jsx(Warning, {\n        children: _jsxs(_components.p, {\n          children: [\"A status callback URL must contain a valid hostname. Underscores are \", _jsx(_components.em, {\n            children: \"not\"\n          }), \" allowed.\"]\n        })\n      }), _jsx(_components.p, {\n        children: \"How you implement your status callback endpoint depends on your use case and technology preferences. This may mean you\"\n      }), _jsxs(_components.ul, {\n        children: [\"\\n\", _jsx(_components.li, {\n          children: \"Create and host a small web application to handle the requests in the programming language and framework of your choice\"\n        }), \"\\n\", _jsx(_components.li, {\n          children: \"Add an additional new endpoint to your existing web application\"\n        }), \"\\n\", _jsxs(_components.li, {\n          children: [\"Use a serverless framework like \", _jsx(_components.a, {\n            href: \"/docs/serverless/functions-assets/functions\",\n            children: \"Twilio Serverless Functions\"\n          }), \".\"]\n        }), \"\\n\"]\n      })]\n    }), \"\\n\", _jsxs(_components.section, {\n      id: \"how-are-status-callback-requests-sent-section-indexable\",\n      children: [_jsx(_components.h3, {\n        id: \"how-are-status-callback-requests-sent\",\n        children: \"How are status callback requests sent?\"\n      }), _jsxs(_components.p, {\n        children: [\"Twilio sends status callback requests as \", _jsx(_components.code, {\n          children: \"POST\"\n        }), \" requests with the \", _jsx(_components.code, {\n          children: \"Content-Type\"\n        }), \" set to \", _jsx(_components.code, {\n          children: \"application/x-www-form-urlencoded\"\n        }), \".\"]\n      }), _jsxs(Warning, {\n        children: [_jsx(_components.p, {\n          children: \"The properties included in Twilio's request to the StatusCallback URL vary by messaging channel and event type and are subject to change.\"\n        }), _jsx(_components.p, {\n          children: \"Twilio occasionally adds new properties without advance notice.\"\n        }), _jsxs(_components.p, {\n          children: [\"When integrating with status callback requests, it is important that your implementation is able to accept and correctly run \", _jsx(_components.a, {\n            href: \"/docs/usage/webhooks/webhooks-security\",\n            children: \"signature validation\"\n          }), \" on an evolving set of parameters.\"]\n        }), _jsx(_components.p, {\n          children: \"Twilio strongly recommends using the signature validation methods provided in the SDKs and not implementing your own signature validation.\"\n        })]\n      }), _jsxs(_components.p, {\n        children: [\"In a status callback request, Twilio provides a subset of the \", _jsx(_components.a, {\n          href: \"/docs/messaging/guides/webhook-request#request-parameters\",\n          children: \"standard request properties\"\n        }), \", and additionally \", _jsx(_components.code, {\n          children: \"MessageStatus\"\n        }), \" and \", _jsx(_components.code, {\n          children: \"ErrorCode\"\n        }), \". These properties are described in the table below.\"]\n      }), \"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\", _jsxs(_components.table, {\n        children: [_jsx(_components.thead, {\n          children: _jsxs(_components.tr, {\n            children: [_jsx(_components.th, {\n              children: \"Property\"\n            }), _jsx(_components.th, {\n              children: \"Description\"\n            })]\n          })\n        }), _jsxs(_components.tbody, {\n          children: [_jsxs(_components.tr, {\n            children: [_jsx(_components.td, {\n              children: _jsx(_components.code, {\n                children: \"MessageStatus\"\n              })\n            }), _jsxs(_components.td, {\n              children: [\"The \", _jsx(_components.a, {\n                href: \"/docs/messaging/api/message-resource#message-status-values\",\n                children: \"status\"\n              }), \" of the Message resource at the time the status callback request was sent.\"]\n            })]\n          }), _jsxs(_components.tr, {\n            children: [_jsx(_components.td, {\n              children: _jsx(_components.code, {\n                children: \"ErrorCode\"\n              })\n            }), _jsxs(_components.td, {\n              children: [\"If an error occurred (i.e. the \", _jsx(_components.code, {\n                children: \"MessageStatus\"\n              }), \" is \", _jsx(_components.code, {\n                children: \"failed\"\n              }), \" or \", _jsx(_components.code, {\n                children: \"undelivered\"\n              }), \"), this property provides additional information about the failure.\"]\n            })]\n          })]\n        })]\n      }), _jsxs(_components.p, {\n        children: [\"For example, a status callback request sent when the Message resource for an outbound SMS changes \", _jsx(_components.code, {\n          children: \"status\"\n        }), \" to \", _jsx(_components.code, {\n          children: \"sent\"\n        }), \", may contain the following content:\"]\n      }), _jsx(CodeBlock, {\n        codeblock: {\n          \"value\": \"\\\"AccountSid\\\": \\\"ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\\\"\\n\\\"From\\\": \\\"+15017250604\\\"\\n\\\"MessageSid\\\": \\\"SM1342fe1b2c904d1ab04f0fc7a58abca9\\\"\\n\\\"MessageStatus\\\": \\\"sent\\\"\\n\\\"SmsSid\\\": \\\"SM1342fe1b2c904d1ab04f0fc7a58abca9\\\"\\n\\\"SmsStatus\\\": \\\"sent\\\"\",\n          \"lang\": \"shellscript\",\n          \"meta\": \"\",\n          \"code\": \"\\\"AccountSid\\\": \\\"ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\\\"\\n\\\"From\\\": \\\"+15017250604\\\"\\n\\\"MessageSid\\\": \\\"SM1342fe1b2c904d1ab04f0fc7a58abca9\\\"\\n\\\"MessageStatus\\\": \\\"sent\\\"\\n\\\"SmsSid\\\": \\\"SM1342fe1b2c904d1ab04f0fc7a58abca9\\\"\\n\\\"SmsStatus\\\": \\\"sent\\\"\",\n          \"tokens\": [[\"\\\"AccountSid\\\"\", \"#FFA657\"], [\":\", \"#79C0FF\"], \" \", [\"\\\"ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\\\"\", \"#A5D6FF\"], \"\\n\", [\"\\\"From\\\"\", \"#FFA657\"], [\":\", \"#79C0FF\"], \" \", [\"\\\"+15017250604\\\"\", \"#A5D6FF\"], \"\\n\", [\"\\\"MessageSid\\\"\", \"#FFA657\"], [\":\", \"#79C0FF\"], \" \", [\"\\\"SM1342fe1b2c904d1ab04f0fc7a58abca9\\\"\", \"#A5D6FF\"], \"\\n\", [\"\\\"MessageStatus\\\"\", \"#FFA657\"], [\":\", \"#79C0FF\"], \" \", [\"\\\"sent\\\"\", \"#A5D6FF\"], \"\\n\", [\"\\\"SmsSid\\\"\", \"#FFA657\"], [\":\", \"#79C0FF\"], \" \", [\"\\\"SM1342fe1b2c904d1ab04f0fc7a58abca9\\\"\", \"#A5D6FF\"], \"\\n\", [\"\\\"SmsStatus\\\"\", \"#FFA657\"], [\":\", \"#79C0FF\"], \" \", [\"\\\"sent\\\"\", \"#A5D6FF\"]],\n          \"annotations\": [],\n          \"themeName\": \"github-dark\",\n          \"style\": {\n            \"color\": \"#c9d1d9\",\n            \"background\": \"#0d1117\",\n            \"colorScheme\": \"dark\"\n          }\n        }\n      })]\n    }), \"\\n\", _jsxs(_components.section, {\n      id: \"smsmms-section\",\n      children: [_jsx(_components.h4, {\n        id: \"smsmms\",\n        children: \"SMS/MMS\"\n      }), _jsxs(_components.p, {\n        children: [\"For most SMS/MMS Messages that have a \", _jsx(_components.code, {\n          children: \"Status\"\n        }), \" of \", _jsx(_components.code, {\n          children: \"delivered\"\n        }), \" or \", _jsx(_components.code, {\n          children: \"undelivered\"\n        }), \", Twilio's request to the \", _jsx(_components.code, {\n          children: \"StatusCallback\"\n        }), \" URL contains an additional property:\"]\n      }), \"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\", _jsxs(_components.table, {\n        children: [_jsx(_components.thead, {\n          children: _jsxs(_components.tr, {\n            children: [_jsx(_components.th, {\n              children: \"Property\"\n            }), _jsx(_components.th, {\n              children: \"Description\"\n            })]\n          })\n        }), _jsx(_components.tbody, {\n          children: _jsxs(_components.tr, {\n            children: [_jsx(_components.td, {\n              children: _jsx(_components.code, {\n                children: \"RawDlrDoneDate\"\n              })\n            }), _jsxs(_components.td, {\n              children: [\"This property is a passthrough of the Done Date included in the DLR (Delivery Receipt) that Twilio received from the carrier.\", _jsx(_components.br, {}), _jsx(_components.br, {}), \" The value is in \", _jsx(_components.code, {\n                children: \"YYMMDDhhmm\"\n              }), \" format.\", _jsxs(_components.ul, {\n                children: [_jsxs(_components.li, {\n                  children: [_jsx(_components.code, {\n                    children: \"YY\"\n                  }), \" is last two digits of the year (00-99)\"]\n                }), _jsxs(_components.li, {\n                  children: [_jsx(_components.code, {\n                    children: \"MM\"\n                  }), \" is the two-digit month (01-12)\"]\n                }), _jsxs(_components.li, {\n                  children: [_jsx(_components.code, {\n                    children: \"DD\"\n                  }), \" is the two-digit day (01-31)\"]\n                }), _jsxs(_components.li, {\n                  children: [_jsx(_components.code, {\n                    children: \"hh\"\n                  }), \" is the two-digit hour (00-23)\"]\n                }), _jsxs(_components.li, {\n                  children: [_jsx(_components.code, {\n                    children: \"mm\"\n                  }), \" is the two-digit minute (00-59).\"]\n                })]\n              }), \" Learn more on the \", _jsx(_components.a, {\n                href: \"https://www.twilio.com/en-us/changelog/addition-of-rawdlrdonedate-to-delivered-and-undelivered-status-webhooks\",\n                children: \"\\\"Addition of RawDlrDoneDate to Delivered and Undelivered Status Webhooks\\\" Changelog page\"\n              }), \".\"]\n            })]\n          })\n        })]\n      })]\n    }), \"\\n\", _jsxs(_components.section, {\n      id: \"rcs-whatsapp-and-other-messaging-channels-section\",\n      children: [_jsx(_components.h4, {\n        id: \"rcs-whatsapp-and-other-messaging-channels\",\n        children: \"RCS, WhatsApp, and other messaging channels\"\n      }), _jsxs(_components.p, {\n        children: [\"If the Message resource uses RCS, WhatsApp, or another messaging channel, Twilio's request to the \", _jsx(_components.code, {\n          children: \"StatusCallback\"\n        }), \" URL contains additional properties. These properties are listed in the table below.\"]\n      }), \"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\", _jsxs(_components.table, {\n        children: [_jsx(_components.thead, {\n          children: _jsxs(_components.tr, {\n            children: [_jsx(_components.th, {\n              children: \"Property\"\n            }), _jsx(_components.th, {\n              children: \"Description\"\n            })]\n          })\n        }), _jsxs(_components.tbody, {\n          children: [_jsxs(_components.tr, {\n            children: [_jsx(_components.td, {\n              children: _jsx(_components.code, {\n                children: \"ChannelInstallSid\"\n              })\n            }), _jsxs(_components.td, {\n              children: [\"The \", _jsx(_components.a, {\n                href: \"/docs/messaging/channels\",\n                children: \"Installed Channel\"\n              }), \" SID that was used to send this message\"]\n            })]\n          }), _jsxs(_components.tr, {\n            children: [_jsx(_components.td, {\n              children: _jsx(_components.code, {\n                children: \"ChannelStatusMessage\"\n              })\n            }), _jsx(_components.td, {\n              children: \"The error message returned by the underlying messaging channel if Message delivery failed. This property is present only if the Message delivery failed.\"\n            })]\n          }), _jsxs(_components.tr, {\n            children: [_jsx(_components.td, {\n              children: _jsx(_components.code, {\n                children: \"ChannelPrefix\"\n              })\n            }), _jsx(_components.td, {\n              children: \"The channel-specific prefix identifying the messaging channel associated with this Message\"\n            })]\n          }), _jsxs(_components.tr, {\n            children: [_jsx(_components.td, {\n              children: _jsx(_components.code, {\n                children: \"EventType\"\n              })\n            }), _jsxs(_components.td, {\n              children: [\"This property contains information about post-delivery events. If the channel supports read receipts (currently RCS and WhatsApp), this property's value is \", _jsx(_components.code, {\n                children: \"READ\"\n              }), \" after the recipient has read the message.\"]\n            })]\n          })]\n        })]\n      })]\n    }), \"\\n\", _jsxs(_components.section, {\n      id: \"implement-a-status-callback-handler-simplified-example-section-indexable\",\n      children: [_jsx(_components.h3, {\n        id: \"implement-a-status-callback-handler-simplified-example\",\n        children: \"Implement a status callback handler (simplified example)\"\n      }), _jsxs(Info, {\n        children: [_jsxs(_components.p, {\n          children: [\"You may want to explore how status callback requests behave before working through your actual implementation. A lightweight way to accomplish this goal is to use \", _jsx(_components.strong, {\n            children: _jsx(_components.a, {\n              href: \"/docs/serverless/functions-assets/functions\",\n              children: \"Twilio Serverless Functions\"\n            })\n          }), \" and inspect status callbacks \", _jsx(_components.a, {\n            href: \"/docs/serverless/functions-assets/functions/debugging\",\n            children: \"in the Console by using the Function Editor's debugging feature\"\n          }), \".\"]\n        }), _jsxs(_components.ol, {\n          children: [\"\\n\", _jsx(_components.li, {\n            children: \"Log into your Twilio Account\"\n          }), \"\\n\", _jsxs(_components.li, {\n            children: [\"If you do not already have a suitable \", _jsx(_components.a, {\n              href: \"https://console.twilio.com/us1/develop/functions/services\",\n              children: \"Functions and Assets Service\"\n            }), \" in your Console, you can \", _jsx(_components.a, {\n              href: \"/docs/serverless/functions-assets/functions/create-service\",\n              children: \"create a new service\"\n            }), \" for your status callback handler endpoint. Let's assume you created a new service under the name \", _jsx(_components.code, {\n              children: \"status-callback-prototyping\"\n            }), \".\"]\n          }), \"\\n\", _jsxs(_components.li, {\n            children: [\"From your service go to the \", _jsx(_components.a, {\n              href: \"/docs/serverless/functions-assets/functions#get-started-with-serverless-and-twilio-functions\",\n              children: \"Functions Editor\"\n            }), \" to \", _jsx(_components.strong, {\n              children: \"Add\"\n            }), \" a new Function e.g. under the path \", _jsx(_components.code, {\n              children: \"/message-status\"\n            }), \" with the following handler code:\"]\n          }), \"\\n\"]\n        }), _jsx(CodeBlock, {\n          codeblock: {\n            \"value\": \"// Log Status Callback requests\\n\\nexports.handler = function(context, event, callback) {\\n  console.log(\\\"Invoked with: \\\", event);\\n  return callback(null, \\\"OK\\\");\\n};\",\n            \"lang\": \"javascript\",\n            \"meta\": \"\",\n            \"code\": \"// Log Status Callback requests\\n\\nexports.handler = function(context, event, callback) {\\n  console.log(\\\"Invoked with: \\\", event);\\n  return callback(null, \\\"OK\\\");\\n};\",\n            \"tokens\": [[\"// Log Status Callback requests\", \"#8B949E\"], \"\\n\\n\", [\"exports\", \"#79C0FF\"], [\".\", \"#C9D1D9\"], [\"handler\", \"#D2A8FF\"], \" \", [\"= function\", \"#FF7B72\"], [\"(\", \"#C9D1D9\"], [\"context\", \"#FFA657\"], [\",\", \"#C9D1D9\"], \" \", [\"event\", \"#FFA657\"], [\",\", \"#C9D1D9\"], \" \", [\"callback\", \"#FFA657\"], [\") {\", \"#C9D1D9\"], \"\\n  \", [\"console.\", \"#C9D1D9\"], [\"log\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"\\\"Invoked with: \\\"\", \"#A5D6FF\"], [\", event);\", \"#C9D1D9\"], \"\\n  \", [\"return\", \"#FF7B72\"], \" \", [\"callback\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"null\", \"#79C0FF\"], [\",\", \"#C9D1D9\"], \" \", [\"\\\"OK\\\"\", \"#A5D6FF\"], [\");\", \"#C9D1D9\"], \"\\n\", [\"};\", \"#C9D1D9\"]],\n            \"annotations\": [],\n            \"themeName\": \"github-dark\",\n            \"style\": {\n              \"color\": \"#c9d1d9\",\n              \"background\": \"#0d1117\",\n              \"colorScheme\": \"dark\"\n            }\n          }\n        }), _jsxs(_components.p, {\n          children: [\"By default your new serverless function is \", _jsx(_components.a, {\n            href: \"/docs/serverless/functions-assets/visibility#protected\",\n            children: \"created as a protected endpoint\"\n          }), \", which means Twilio Serverless performs signature validation to ensure only valid Twilio requests invoke your handler.\"]\n        }), _jsxs(_components.ol, {\n          start: \"4\",\n          children: [\"\\n\", _jsxs(_components.li, {\n            children: [_jsx(_components.strong, {\n              children: \"Save\"\n            }), \" the new function.\"]\n          }), \"\\n\", _jsxs(_components.li, {\n            children: [\"Deploy your new serverless function by pressing \", _jsx(_components.strong, {\n              children: \"Deploy All\"\n            }), \".\"]\n          }), \"\\n\", _jsxs(_components.li, {\n            children: [\"Change the toggle control above the bottom-right corner logging window to \", _jsx(_components.strong, {\n              children: \"Live logs on\"\n            }), \".\"]\n          }), \"\\n\", _jsxs(_components.li, {\n            children: [\"Click on the \", _jsx(_components.strong, {\n              children: \"Copy URL\"\n            }), \" link above the bottom-right logging window to copy the URL for your prototype status callback endpoint into your clipboard. The copied URL would look something like this: \", _jsx(_components.code, {\n              children: \"https://status-callback-prototyping-1234.twil.io/message-status\"\n            }), \".\"]\n          }), \"\\n\"]\n        }), _jsxs(_components.p, {\n          children: [\"You can now use your copied status callback URL in the next step of this guide: \", _jsx(_components.a, {\n            href: \"#step-2-send-a-message-with-status-callback-url\",\n            children: \"Step 2. Send a message with status callback URL\"\n          }), \".\"]\n        }), _jsxs(_components.ol, {\n          start: \"8\",\n          children: [\"\\n\", _jsx(_components.li, {\n            children: \"Once you sent a message, you can inspect the logged status callback request in the bottom-right logging window of the Functions Editor in Console.\"\n          }), \"\\n\"]\n        }), _jsx(Image, {\n          src: \"https://docs-resources.prod.twilio.com/f5e1b1b84fb3ab3d2ac3b6005b8477e754a9973116e30dc6478fc9a55762fe4c.png\",\n          blurDataURL: \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAACCAYAAAB/qH1jAAAACXBIWXMAABibAAAYmwFJdYOUAAAALUlEQVR4nAEiAN3/AJmYmv/Av77/5+Xl//Pz8v8ADw0W/29sbf8hHiH/T0tM/4OTFErCpEhmAAAAAElFTkSuQmCC\",\n          width: 1600,\n          height: 836,\n          isOpaque: true,\n          placeholder: \"blur\",\n          alt: \"Twilio Functions Editor showing message-status function with code to log status callback requests.\",\n          unoptimized: false\n        })]\n      }), _jsxs(_components.p, {\n        children: [\"Your response to Twilio's status callback request should have an HTTP status code of \", _jsx(_components.code, {\n          children: \"200\"\n        }), \" (OK). No response content is required.\"]\n      }), _jsx(_components.p, {\n        children: \"What your status callback handler should do when receiving a status callback request, depends on your use case.\"\n      }), _jsxs(_components.p, {\n        children: [\"The following simplified web application illustrates how you could log the \", _jsx(_components.code, {\n          children: \"MessageSid\"\n        }), \" and \", _jsx(_components.code, {\n          children: \"MessageStatus\"\n        }), \" of outbound messages as they move through their lifecycle.\"]\n      }), _jsxs(Warning, {\n        children: [_jsx(_components.p, {\n          children: \"Status callback requests are HTTP requests and are therefore subject to differences in latency caused by changing network conditions.\"\n        }), _jsxs(_components.p, {\n          children: [\"Status callback requests are sent in accordance with the message status transitions described in the guide \", _jsx(_components.a, {\n            href: \"/docs/messaging/guides/outbound-message-status-in-status-callbacks\",\n            children: \"Outbound Message Status in Status Callbacks\"\n          }), \". Some of these status transitions may occur in quick succession.\"]\n        }), _jsx(_components.p, {\n          children: \"As a result, there is no guarantee that the status callback requests always arrive at your endpoint in the order they were sent.\"\n        }), _jsx(_components.p, {\n          children: \"You should bear this consideration in mind when implementing your status callback handler.\"\n        })]\n      }), _jsx(Info, {\n        children: _jsxs(_components.p, {\n          children: [\"Read our guide \", _jsx(_components.a, {\n            href: \"/docs/messaging/guides/outbound-message-logging\",\n            children: \"Best Practices for Messaging Delivery Status Logging\"\n          }), \" for advanced considerations when implementing a production-grade status logging solution.\"]\n        })\n      }), _jsx(_Fragment, {\n        children: _jsx(CodeBlockGroup, {\n          \"children\": _jsx(_Fragment, {}),\n          \"title\": \"Handle a Message status callback request\",\n          \"_data\": {\n            \"header\": \"\"\n          },\n          \"groupType\": \"static\",\n          \"slug\": \"code-handle-a-message-status-callback-request\",\n          \"blocks\": [{\n            \"value\": \"const http = require('http');\\nconst express = require('express');\\nconst bodyParser = require('body-parser');\\n\\nconst app = express();\\n\\napp.use(bodyParser.urlencoded({ extended: true }));\\n\\napp.post('/message-status', (req, res) =\u003e {\\n  const messageSid = req.body.MessageSid;\\n  const messageStatus = req.body.MessageStatus;\\n\\n  console.log(`SID: ${messageSid}, Status: ${messageStatus}`);\\n\\n  res.sendStatus(200);\\n});\\n\\nhttp.createServer(app).listen(1337, () =\u003e {\\n  console.log('Express server listening on port 1337');\\n});\",\n            \"lang\": \"javascript\",\n            \"meta\": \"Node.js\",\n            \"code\": \"const http = require('http');\\nconst express = require('express');\\nconst bodyParser = require('body-parser');\\n\\nconst app = express();\\n\\napp.use(bodyParser.urlencoded({ extended: true }));\\n\\napp.post('/message-status', (req, res) =\u003e {\\n  const messageSid = req.body.MessageSid;\\n  const messageStatus = req.body.MessageStatus;\\n\\n  console.log(`SID: ${messageSid}, Status: ${messageStatus}`);\\n\\n  res.sendStatus(200);\\n});\\n\\nhttp.createServer(app).listen(1337, () =\u003e {\\n  console.log('Express server listening on port 1337');\\n});\",\n            \"tokens\": [[\"const\", \"#FF7B72\"], \" \", [\"http\", \"#79C0FF\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"require\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"'http'\", \"#A5D6FF\"], [\");\", \"#C9D1D9\"], \"\\n\", [\"const\", \"#FF7B72\"], \" \", [\"express\", \"#79C0FF\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"require\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"'express'\", \"#A5D6FF\"], [\");\", \"#C9D1D9\"], \"\\n\", [\"const\", \"#FF7B72\"], \" \", [\"bodyParser\", \"#79C0FF\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"require\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"'body-parser'\", \"#A5D6FF\"], [\");\", \"#C9D1D9\"], \"\\n\\n\", [\"const\", \"#FF7B72\"], \" \", [\"app\", \"#79C0FF\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"express\", \"#D2A8FF\"], [\"();\", \"#C9D1D9\"], \"\\n\\n\", [\"app.\", \"#C9D1D9\"], [\"use\", \"#D2A8FF\"], [\"(bodyParser.\", \"#C9D1D9\"], [\"urlencoded\", \"#D2A8FF\"], [\"({ extended:\", \"#C9D1D9\"], \" \", [\"true\", \"#79C0FF\"], \" \", [\"}));\", \"#C9D1D9\"], \"\\n\\n\", [\"app.\", \"#C9D1D9\"], [\"post\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"'/message-status'\", \"#A5D6FF\"], [\", (\", \"#C9D1D9\"], [\"req\", \"#FFA657\"], [\",\", \"#C9D1D9\"], \" \", [\"res\", \"#FFA657\"], [\")\", \"#C9D1D9\"], \" \", [\"=\u003e\", \"#FF7B72\"], \" \", [\"{\", \"#C9D1D9\"], \"\\n  \", [\"const\", \"#FF7B72\"], \" \", [\"messageSid\", \"#79C0FF\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"req.body.MessageSid;\", \"#C9D1D9\"], \"\\n  \", [\"const\", \"#FF7B72\"], \" \", [\"messageStatus\", \"#79C0FF\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"req.body.MessageStatus;\", \"#C9D1D9\"], \"\\n\\n  \", [\"console.\", \"#C9D1D9\"], [\"log\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"`SID: ${\", \"#A5D6FF\"], [\"messageSid\", \"#C9D1D9\"], [\"}, Status: ${\", \"#A5D6FF\"], [\"messageStatus\", \"#C9D1D9\"], [\"}`\", \"#A5D6FF\"], [\");\", \"#C9D1D9\"], \"\\n\\n  \", [\"res.\", \"#C9D1D9\"], [\"sendStatus\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"200\", \"#79C0FF\"], [\");\", \"#C9D1D9\"], \"\\n\", [\"});\", \"#C9D1D9\"], \"\\n\\n\", [\"http.\", \"#C9D1D9\"], [\"createServer\", \"#D2A8FF\"], [\"(app).\", \"#C9D1D9\"], [\"listen\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"1337\", \"#79C0FF\"], [\", ()\", \"#C9D1D9\"], \" \", [\"=\u003e\", \"#FF7B72\"], \" \", [\"{\", \"#C9D1D9\"], \"\\n  \", [\"console.\", \"#C9D1D9\"], [\"log\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"'Express server listening on port 1337'\", \"#A5D6FF\"], [\");\", \"#C9D1D9\"], \"\\n\", [\"});\", \"#C9D1D9\"]],\n            \"annotations\": [],\n            \"themeName\": \"github-dark\",\n            \"style\": {\n              \"color\": \"#c9d1d9\",\n              \"background\": \"#0d1117\",\n              \"colorScheme\": \"dark\"\n            }\n          }, {\n            \"value\": \"from flask import Flask, request\\nimport logging\\n\\nlogging.basicConfig(level=logging.INFO)\\n\\napp = Flask(__name__)\\n\\n\\n@app.route(\\\"/message-status\\\", methods=['POST'])\\ndef incoming_sms():\\n    message_sid = request.values.get('MessageSid', None)\\n    message_status = request.values.get('MessageStatus', None)\\n    logging.info('SID: {}, Status: {}'.format(message_sid, message_status))\\n\\n    return ('', 204)\\n\\n\\nif __name__ == \\\"__main__\\\":\\n    app.run(debug=True)\",\n            \"lang\": \"python\",\n            \"meta\": \"Python\",\n            \"code\": \"from flask import Flask, request\\nimport logging\\n\\nlogging.basicConfig(level=logging.INFO)\\n\\napp = Flask(__name__)\\n\\n\\n@app.route(\\\"/message-status\\\", methods=['POST'])\\ndef incoming_sms():\\n    message_sid = request.values.get('MessageSid', None)\\n    message_status = request.values.get('MessageStatus', None)\\n    logging.info('SID: {}, Status: {}'.format(message_sid, message_status))\\n\\n    return ('', 204)\\n\\n\\nif __name__ == \\\"__main__\\\":\\n    app.run(debug=True)\",\n            \"tokens\": [[\"from\", \"#FF7B72\"], \" \", [\"flask\", \"#C9D1D9\"], \" \", [\"import\", \"#FF7B72\"], \" \", [\"Flask, request\", \"#C9D1D9\"], \"\\n\", [\"import\", \"#FF7B72\"], \" \", [\"logging\", \"#C9D1D9\"], \"\\n\\n\", [\"logging.basicConfig(\", \"#C9D1D9\"], [\"level\", \"#FFA657\"], [\"=\", \"#FF7B72\"], [\"logging.\", \"#C9D1D9\"], [\"INFO\", \"#79C0FF\"], [\")\", \"#C9D1D9\"], \"\\n\\n\", [\"app\", \"#C9D1D9\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"Flask(\", \"#C9D1D9\"], [\"__name__\", \"#79C0FF\"], [\")\", \"#C9D1D9\"], \"\\n\\n\\n\", [\"@app.route\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"\\\"/message-status\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \" \", [\"methods\", \"#FFA657\"], [\"=\", \"#FF7B72\"], [\"[\", \"#C9D1D9\"], [\"'POST'\", \"#A5D6FF\"], [\"])\", \"#C9D1D9\"], \"\\n\", [\"def\", \"#FF7B72\"], \" \", [\"incoming_sms\", \"#D2A8FF\"], [\"():\", \"#C9D1D9\"], \"\\n    \", [\"message_sid\", \"#C9D1D9\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"request.values.get(\", \"#C9D1D9\"], [\"'MessageSid'\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \" \", [\"None\", \"#79C0FF\"], [\")\", \"#C9D1D9\"], \"\\n    \", [\"message_status\", \"#C9D1D9\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"request.values.get(\", \"#C9D1D9\"], [\"'MessageStatus'\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \" \", [\"None\", \"#79C0FF\"], [\")\", \"#C9D1D9\"], \"\\n    \", [\"logging.info(\", \"#C9D1D9\"], [\"'SID:\", \"#A5D6FF\"], \" \", [\"{}\", \"#79C0FF\"], [\", Status:\", \"#A5D6FF\"], \" \", [\"{}\", \"#79C0FF\"], [\"'\", \"#A5D6FF\"], [\".format(message_sid, message_status))\", \"#C9D1D9\"], \"\\n\\n    \", [\"return\", \"#FF7B72\"], \" \", [\"(\", \"#C9D1D9\"], [\"''\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \" \", [\"204\", \"#79C0FF\"], [\")\", \"#C9D1D9\"], \"\\n\\n\\n\", [\"if\", \"#FF7B72\"], \" \", [\"__name__\", \"#79C0FF\"], \" \", [\"==\", \"#FF7B72\"], \" \", [\"\\\"__main__\\\"\", \"#A5D6FF\"], [\":\", \"#C9D1D9\"], \"\\n    \", [\"app.run(\", \"#C9D1D9\"], [\"debug\", \"#FFA657\"], [\"=\", \"#FF7B72\"], [\"True\", \"#79C0FF\"], [\")\", \"#C9D1D9\"]],\n            \"annotations\": [],\n            \"themeName\": \"github-dark\",\n            \"style\": {\n              \"color\": \"#c9d1d9\",\n              \"background\": \"#0d1117\",\n              \"colorScheme\": \"dark\"\n            }\n          }, {\n            \"value\": \"// In Package Manager, run:\\n// Install-Package Twilio.Mvc -DependencyVersion HighestMinor\\n\\nusing System.Diagnostics;\\nusing System.Web.Mvc;\\n\\npublic class MessageStatusController : Controller\\n{\\n    [HttpPost]\\n    public ActionResult Index()\\n    {\\n        // Log the message id and status\\n        var smsSid = Request.Form[\\\"MessageSid\\\"];\\n        var messageStatus = Request.Form[\\\"MessageStatus\\\"];\\n        var logMessage = $\\\"\\\\\\\"{smsSid}\\\\\\\", \\\\\\\"{messageStatus}\\\\\\\"\\\";\\n\\n        Trace.WriteLine(logMessage);\\n        return Content(\\\"Handled\\\");\\n    }\\n}\",\n            \"lang\": \"csharp\",\n            \"meta\": \"C#\",\n            \"code\": \"// In Package Manager, run:\\n// Install-Package Twilio.Mvc -DependencyVersion HighestMinor\\n\\nusing System.Diagnostics;\\nusing System.Web.Mvc;\\n\\npublic class MessageStatusController : Controller\\n{\\n    [HttpPost]\\n    public ActionResult Index()\\n    {\\n        // Log the message id and status\\n        var smsSid = Request.Form[\\\"MessageSid\\\"];\\n        var messageStatus = Request.Form[\\\"MessageStatus\\\"];\\n        var logMessage = $\\\"\\\\\\\"{smsSid}\\\\\\\", \\\\\\\"{messageStatus}\\\\\\\"\\\";\\n\\n        Trace.WriteLine(logMessage);\\n        return Content(\\\"Handled\\\");\\n    }\\n}\",\n            \"tokens\": [[\"// In Package Manager, run:\", \"#8B949E\"], \"\\n\", [\"// Install-Package Twilio.Mvc -DependencyVersion HighestMinor\", \"#8B949E\"], \"\\n\\n\", [\"using\", \"#FF7B72\"], \" \", [\"System\", \"#FFA657\"], [\".\", \"#C9D1D9\"], [\"Diagnostics\", \"#FFA657\"], [\";\", \"#C9D1D9\"], \"\\n\", [\"using\", \"#FF7B72\"], \" \", [\"System\", \"#FFA657\"], [\".\", \"#C9D1D9\"], [\"Web\", \"#FFA657\"], [\".\", \"#C9D1D9\"], [\"Mvc\", \"#FFA657\"], [\";\", \"#C9D1D9\"], \"\\n\\n\", [\"public class\", \"#FF7B72\"], \" \", [\"MessageStatusController\", \"#FFA657\"], \" \", [\":\", \"#C9D1D9\"], \" \", [\"Controller\", \"#FFA657\"], \"\\n\", [\"{\", \"#C9D1D9\"], \"\\n    \", [\"[\", \"#C9D1D9\"], [\"HttpPost\", \"#FFA657\"], [\"]\", \"#C9D1D9\"], \"\\n    \", [\"public\", \"#FF7B72\"], \" \", [\"ActionResult\", \"#FFA657\"], \" \", [\"Index\", \"#D2A8FF\"], [\"()\", \"#C9D1D9\"], \"\\n    \", [\"{\", \"#C9D1D9\"], \"\\n        \", [\"// Log the message id and status\", \"#8B949E\"], \"\\n        \", [\"var\", \"#FF7B72\"], \" \", [\"smsSid\", \"#FFA657\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"Request.Form[\", \"#C9D1D9\"], [\"\\\"MessageSid\\\"\", \"#A5D6FF\"], [\"];\", \"#C9D1D9\"], \"\\n        \", [\"var\", \"#FF7B72\"], \" \", [\"messageStatus\", \"#FFA657\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"Request.Form[\", \"#C9D1D9\"], [\"\\\"MessageStatus\\\"\", \"#A5D6FF\"], [\"];\", \"#C9D1D9\"], \"\\n        \", [\"var\", \"#FF7B72\"], \" \", [\"logMessage\", \"#FFA657\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"$\\\"\", \"#A5D6FF\"], [\"\\\\\\\"\", \"#79C0FF\"], [\"{\", \"#A5D6FF\"], [\"smsSid\", \"#C9D1D9\"], [\"}\", \"#A5D6FF\"], [\"\\\\\\\"\", \"#79C0FF\"], [\",\", \"#A5D6FF\"], \" \", [\"\\\\\\\"\", \"#79C0FF\"], [\"{\", \"#A5D6FF\"], [\"messageStatus\", \"#C9D1D9\"], [\"}\", \"#A5D6FF\"], [\"\\\\\\\"\", \"#79C0FF\"], [\"\\\"\", \"#A5D6FF\"], [\";\", \"#C9D1D9\"], \"\\n\\n        \", [\"Trace.\", \"#C9D1D9\"], [\"WriteLine\", \"#D2A8FF\"], [\"(logMessage);\", \"#C9D1D9\"], \"\\n        \", [\"return\", \"#FF7B72\"], \" \", [\"Content\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"\\\"Handled\\\"\", \"#A5D6FF\"], [\");\", \"#C9D1D9\"], \"\\n    \", [\"}\", \"#C9D1D9\"], \"\\n\", [\"}\", \"#C9D1D9\"]],\n            \"annotations\": [],\n            \"themeName\": \"github-dark\",\n            \"style\": {\n              \"color\": \"#c9d1d9\",\n              \"background\": \"#0d1117\",\n              \"colorScheme\": \"dark\"\n            }\n          }, {\n            \"value\": \"import java.io.IOException;\\nimport javax.servlet.annotation.WebServlet;\\nimport javax.servlet.http.HttpServlet;\\nimport javax.servlet.http.HttpServletRequest;\\nimport javax.servlet.http.HttpServletResponse;\\n\\n@WebServlet(name = \\\"MessageStatus\\\", urlPatterns = {\\\"/message-status\\\"})\\npublic class MessageStatus extends HttpServlet {\\n    public void service(HttpServletRequest request, HttpServletResponse response) throws IOException {\\n        String messageSid = request.getParameter(\\\"MessageSid\\\");\\n        String messageStatus = request.getParameter(\\\"MessageStatus\\\");\\n        \\n        System.out.println(\\\"SID: \\\" + messageSid + \\\", Status:\\\" + messageStatus);\\n    }\\n}\",\n            \"lang\": \"java\",\n            \"meta\": \"Java\",\n            \"code\": \"import java.io.IOException;\\nimport javax.servlet.annotation.WebServlet;\\nimport javax.servlet.http.HttpServlet;\\nimport javax.servlet.http.HttpServletRequest;\\nimport javax.servlet.http.HttpServletResponse;\\n\\n@WebServlet(name = \\\"MessageStatus\\\", urlPatterns = {\\\"/message-status\\\"})\\npublic class MessageStatus extends HttpServlet {\\n    public void service(HttpServletRequest request, HttpServletResponse response) throws IOException {\\n        String messageSid = request.getParameter(\\\"MessageSid\\\");\\n        String messageStatus = request.getParameter(\\\"MessageStatus\\\");\\n        \\n        System.out.println(\\\"SID: \\\" + messageSid + \\\", Status:\\\" + messageStatus);\\n    }\\n}\",\n            \"tokens\": [[\"import\", \"#FF7B72\"], \" \", [\"java.io.IOException;\", \"#C9D1D9\"], \"\\n\", [\"import\", \"#FF7B72\"], \" \", [\"javax.servlet.annotation.WebServlet;\", \"#C9D1D9\"], \"\\n\", [\"import\", \"#FF7B72\"], \" \", [\"javax.servlet.http.HttpServlet;\", \"#C9D1D9\"], \"\\n\", [\"import\", \"#FF7B72\"], \" \", [\"javax.servlet.http.HttpServletRequest;\", \"#C9D1D9\"], \"\\n\", [\"import\", \"#FF7B72\"], \" \", [\"javax.servlet.http.HttpServletResponse;\", \"#C9D1D9\"], \"\\n\\n\", [\"@\", \"#C9D1D9\"], [\"WebServlet\", \"#FF7B72\"], [\"(\", \"#C9D1D9\"], [\"name\", \"#79C0FF\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"\\\"MessageStatus\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \" \", [\"urlPatterns\", \"#79C0FF\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"{\", \"#C9D1D9\"], [\"\\\"/message-status\\\"\", \"#A5D6FF\"], [\"})\", \"#C9D1D9\"], \"\\n\", [\"public class\", \"#FF7B72\"], \" \", [\"MessageStatus\", \"#FFA657\"], \" \", [\"extends\", \"#FF7B72\"], \" \", [\"HttpServlet\", \"#79C0FF\"], \" \", [\"{\", \"#C9D1D9\"], \"\\n    \", [\"public void\", \"#FF7B72\"], \" \", [\"service\", \"#D2A8FF\"], [\"(HttpServletRequest\", \"#C9D1D9\"], \" \", [\"request\", \"#FFA657\"], [\", HttpServletResponse\", \"#C9D1D9\"], \" \", [\"response\", \"#FFA657\"], [\")\", \"#C9D1D9\"], \" \", [\"throws\", \"#FF7B72\"], \" \", [\"IOException {\", \"#C9D1D9\"], \"\\n        \", [\"String messageSid\", \"#C9D1D9\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"request.\", \"#C9D1D9\"], [\"getParameter\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"\\\"MessageSid\\\"\", \"#A5D6FF\"], [\");\", \"#C9D1D9\"], \"\\n        \", [\"String messageStatus\", \"#C9D1D9\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"request.\", \"#C9D1D9\"], [\"getParameter\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"\\\"MessageStatus\\\"\", \"#A5D6FF\"], [\");\", \"#C9D1D9\"], \"\\n        \\n        \", [\"System.out.\", \"#C9D1D9\"], [\"println\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"\\\"SID: \\\"\", \"#A5D6FF\"], \" \", [\"+\", \"#FF7B72\"], \" \", [\"messageSid\", \"#C9D1D9\"], \" \", [\"+\", \"#FF7B72\"], \" \", [\"\\\", Status:\\\"\", \"#A5D6FF\"], \" \", [\"+\", \"#FF7B72\"], \" \", [\"messageStatus);\", \"#C9D1D9\"], \"\\n    \", [\"}\", \"#C9D1D9\"], \"\\n\", [\"}\", \"#C9D1D9\"]],\n            \"annotations\": [],\n            \"themeName\": \"github-dark\",\n            \"style\": {\n              \"color\": \"#c9d1d9\",\n              \"background\": \"#0d1117\",\n              \"colorScheme\": \"dark\"\n            }\n          }, {\n            \"value\": \"package main\\n\\nimport (\\n\\t\\\"fmt\\\"\\n\\t\\\"net/http\\\"\\n\\n\\t\\\"github.com/gin-gonic/gin\\\"\\n)\\n\\nfunc main() {\\n\\trouter := gin.Default()\\n\\n\\trouter.POST(\\\"/message-status\\\", func(c *gin.Context) {\\n\\n\\t\\tmessageSid := c.PostForm(\\\"MessageSid\\\")\\n\\t\\tmessageStatus := c.PostForm(\\\"MessageStatus\\\")\\n\\n\\t\\tfmt.Printf(\\\"MessageSid: %s, MessageStatus: %s \\\", messageSid, messageStatus)\\n\\n\\t\\tc.JSON(http.StatusOK, nil)\\n\\t})\\n\\n\\trouter.Run(\\\":3000\\\")\\n}\",\n            \"lang\": \"go\",\n            \"meta\": \"Go\",\n            \"code\": \"package main\\n\\nimport (\\n\\t\\\"fmt\\\"\\n\\t\\\"net/http\\\"\\n\\n\\t\\\"github.com/gin-gonic/gin\\\"\\n)\\n\\nfunc main() {\\n\\trouter := gin.Default()\\n\\n\\trouter.POST(\\\"/message-status\\\", func(c *gin.Context) {\\n\\n\\t\\tmessageSid := c.PostForm(\\\"MessageSid\\\")\\n\\t\\tmessageStatus := c.PostForm(\\\"MessageStatus\\\")\\n\\n\\t\\tfmt.Printf(\\\"MessageSid: %s, MessageStatus: %s \\\", messageSid, messageStatus)\\n\\n\\t\\tc.JSON(http.StatusOK, nil)\\n\\t})\\n\\n\\trouter.Run(\\\":3000\\\")\\n}\",\n            \"tokens\": [[\"package\", \"#FF7B72\"], \" \", [\"main\", \"#FFA657\"], \"\\n\\n\", [\"import\", \"#FF7B72\"], \" \", [\"(\", \"#C9D1D9\"], \"\\n\\t\", [\"\\\"\", \"#A5D6FF\"], [\"fmt\", \"#FFA657\"], [\"\\\"\", \"#A5D6FF\"], \"\\n\\t\", [\"\\\"\", \"#A5D6FF\"], [\"net/http\", \"#FFA657\"], [\"\\\"\", \"#A5D6FF\"], \"\\n\\n\\t\", [\"\\\"\", \"#A5D6FF\"], [\"github.com/gin-gonic/gin\", \"#FFA657\"], [\"\\\"\", \"#A5D6FF\"], \"\\n\", [\")\", \"#C9D1D9\"], \"\\n\\n\", [\"func\", \"#FF7B72\"], \" \", [\"main\", \"#D2A8FF\"], [\"() {\", \"#C9D1D9\"], \"\\n\\t\", [\"router\", \"#C9D1D9\"], \" \", [\":=\", \"#FF7B72\"], \" \", [\"gin.\", \"#C9D1D9\"], [\"Default\", \"#D2A8FF\"], [\"()\", \"#C9D1D9\"], \"\\n\\n\\t\", [\"router.\", \"#C9D1D9\"], [\"POST\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"\\\"/message-status\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \" \", [\"func\", \"#FF7B72\"], [\"(\", \"#C9D1D9\"], [\"c\", \"#FFA657\"], \" \", [\"*\", \"#FF7B72\"], [\"gin\", \"#FFA657\"], [\".\", \"#C9D1D9\"], [\"Context\", \"#FFA657\"], [\") {\", \"#C9D1D9\"], \"\\n\\n\\t\\t\", [\"messageSid\", \"#C9D1D9\"], \" \", [\":=\", \"#FF7B72\"], \" \", [\"c.\", \"#C9D1D9\"], [\"PostForm\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"\\\"MessageSid\\\"\", \"#A5D6FF\"], [\")\", \"#C9D1D9\"], \"\\n\\t\\t\", [\"messageStatus\", \"#C9D1D9\"], \" \", [\":=\", \"#FF7B72\"], \" \", [\"c.\", \"#C9D1D9\"], [\"PostForm\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"\\\"MessageStatus\\\"\", \"#A5D6FF\"], [\")\", \"#C9D1D9\"], \"\\n\\n\\t\\t\", [\"fmt.\", \"#C9D1D9\"], [\"Printf\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"\\\"MessageSid:\", \"#A5D6FF\"], \" \", [\"%s\", \"#79C0FF\"], [\", MessageStatus:\", \"#A5D6FF\"], \" \", [\"%s\", \"#79C0FF\"], \" \", [\"\\\"\", \"#A5D6FF\"], [\", messageSid, messageStatus)\", \"#C9D1D9\"], \"\\n\\n\\t\\t\", [\"c.\", \"#C9D1D9\"], [\"JSON\", \"#D2A8FF\"], [\"(http.StatusOK,\", \"#C9D1D9\"], \" \", [\"nil\", \"#79C0FF\"], [\")\", \"#C9D1D9\"], \"\\n\\t\", [\"})\", \"#C9D1D9\"], \"\\n\\n\\t\", [\"router.\", \"#C9D1D9\"], [\"Run\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"\\\":3000\\\"\", \"#A5D6FF\"], [\")\", \"#C9D1D9\"], \"\\n\", [\"}\", \"#C9D1D9\"]],\n            \"annotations\": [],\n            \"themeName\": \"github-dark\",\n            \"style\": {\n              \"color\": \"#c9d1d9\",\n              \"background\": \"#0d1117\",\n              \"colorScheme\": \"dark\"\n            }\n          }, {\n            \"value\": \"\u003c?php\\n$sid = $_REQUEST['MessageSid'];\\n$status = $_REQUEST['MessageStatus'];\\n\\nopenlog(\\\"myMessageLog\\\", LOG_PID | LOG_PERROR, LOG_USER);\\nsyslog(LOG_INFO, \\\"SID: $sid, Status: $status\\\");\\ncloselog();\",\n            \"lang\": \"php\",\n            \"meta\": \"PHP\",\n            \"code\": \"\u003c?php\\n$sid = $_REQUEST['MessageSid'];\\n$status = $_REQUEST['MessageStatus'];\\n\\nopenlog(\\\"myMessageLog\\\", LOG_PID | LOG_PERROR, LOG_USER);\\nsyslog(LOG_INFO, \\\"SID: $sid, Status: $status\\\");\\ncloselog();\",\n            \"tokens\": [[\"\u003c?\", \"#FF7B72\"], [\"php\", \"#79C0FF\"], \"\\n\", [\"$sid\", \"#C9D1D9\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"$_REQUEST[\", \"#C9D1D9\"], [\"'MessageSid'\", \"#A5D6FF\"], [\"];\", \"#C9D1D9\"], \"\\n\", [\"$status\", \"#C9D1D9\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"$_REQUEST[\", \"#C9D1D9\"], [\"'MessageStatus'\", \"#A5D6FF\"], [\"];\", \"#C9D1D9\"], \"\\n\\n\", [\"openlog\", \"#79C0FF\"], [\"(\", \"#C9D1D9\"], [\"\\\"myMessageLog\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \" \", [\"LOG_PID\", \"#79C0FF\"], \" \", [\"|\", \"#FF7B72\"], \" \", [\"LOG_PERROR\", \"#79C0FF\"], [\",\", \"#C9D1D9\"], \" \", [\"LOG_USER\", \"#79C0FF\"], [\");\", \"#C9D1D9\"], \"\\n\", [\"syslog\", \"#79C0FF\"], [\"(\", \"#C9D1D9\"], [\"LOG_INFO\", \"#79C0FF\"], [\",\", \"#C9D1D9\"], \" \", [\"\\\"SID:\", \"#A5D6FF\"], \" \", [\"$sid\", \"#C9D1D9\"], [\", Status:\", \"#A5D6FF\"], \" \", [\"$status\", \"#C9D1D9\"], [\"\\\"\", \"#A5D6FF\"], [\");\", \"#C9D1D9\"], \"\\n\", [\"closelog\", \"#79C0FF\"], [\"();\", \"#C9D1D9\"]],\n            \"annotations\": [],\n            \"themeName\": \"github-dark\",\n            \"style\": {\n              \"color\": \"#c9d1d9\",\n              \"background\": \"#0d1117\",\n              \"colorScheme\": \"dark\"\n            }\n          }, {\n            \"value\": \"require 'sinatra'\\n\\n# Handle message status hook,\\n# which is called whenever the message status changes\\npost '/message-status' do\\n  message_sid = params['MessageSid']\\n  message_status = params['MessageStatus']\\n\\n  print \\\"SID: #{message_sid}, Status: #{message_status}\\\\n\\\"\\n\\n  response.status = 204\\nend\",\n            \"lang\": \"ruby\",\n            \"meta\": \"Ruby\",\n            \"code\": \"require 'sinatra'\\n\\n# Handle message status hook,\\n# which is called whenever the message status changes\\npost '/message-status' do\\n  message_sid = params['MessageSid']\\n  message_status = params['MessageStatus']\\n\\n  print \\\"SID: #{message_sid}, Status: #{message_status}\\\\n\\\"\\n\\n  response.status = 204\\nend\",\n            \"tokens\": [[\"require\", \"#FF7B72\"], \" \", [\"'sinatra'\", \"#A5D6FF\"], \"\\n\\n\", [\"# Handle message status hook,\", \"#8B949E\"], \"\\n\", [\"# which is called whenever the message status changes\", \"#8B949E\"], \"\\n\", [\"post\", \"#C9D1D9\"], \" \", [\"'/message-status'\", \"#A5D6FF\"], \" \", [\"do\", \"#FF7B72\"], \"\\n  \", [\"message_sid\", \"#C9D1D9\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"params[\", \"#C9D1D9\"], [\"'MessageSid'\", \"#A5D6FF\"], [\"]\", \"#C9D1D9\"], \"\\n  \", [\"message_status\", \"#C9D1D9\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"params[\", \"#C9D1D9\"], [\"'MessageStatus'\", \"#A5D6FF\"], [\"]\", \"#C9D1D9\"], \"\\n\\n  \", [\"print\", \"#79C0FF\"], \" \", [\"\\\"SID:\", \"#A5D6FF\"], \" \", [\"#{\", \"#FF7B72\"], [\"message_sid}, Status:\", \"#A5D6FF\"], \" \", [\"#{\", \"#FF7B72\"], [\"message_status}\", \"#A5D6FF\"], [\"\\\\n\", \"#79C0FF\"], [\"\\\"\", \"#A5D6FF\"], \"\\n\\n  \", [\"response.status\", \"#C9D1D9\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"204\", \"#79C0FF\"], \"\\n\", [\"end\", \"#FF7B72\"]],\n            \"annotations\": [],\n            \"themeName\": \"github-dark\",\n            \"style\": {\n              \"color\": \"#c9d1d9\",\n              \"background\": \"#0d1117\",\n              \"colorScheme\": \"dark\"\n            }\n          }]\n        })\n      }), _jsx(_components.hr, {})]\n    }), \"\\n\", _jsxs(_components.section, {\n      id: \"step-2-send-a-message-with-status-callback-url-section-indexable\",\n      children: [_jsx(_components.h2, {\n        id: \"step-2-send-a-message-with-status-callback-url\",\n        children: \"Step 2. Send a message with status callback URL\"\n      }), _jsx(_components.p, {\n        children: \"In Step 1 you implemented a status callback handler which is publicly available at your status callback URL.\"\n      }), _jsx(_components.p, {\n        children: \"In this step you learn how to ensure Twilio sends status callback requests to your status callback URL for outbound messages.\"\n      }), _jsx(_components.p, {\n        children: \"How you do this may depend on whether you use a Messaging Service to send messages or not.\"\n      })]\n    }), \"\\n\", _jsxs(_components.section, {\n      id: \"scenario-1-no-messaging-service-section-indexable\",\n      children: [_jsx(_components.h3, {\n        id: \"scenario-1-no-messaging-service\",\n        children: \"Scenario 1: No Messaging Service\"\n      }), _jsxs(_components.p, {\n        children: [\"For Twilio to send status callback requests, you need to provide your status callback URL in the \", _jsx(_components.code, {\n          children: \"StatusCallback\"\n        }), \" parameter of each message for which you want to track the \", _jsx(_components.code, {\n          children: \"MessageStatus\"\n        }), \".\"]\n      }), _jsx(_components.p, {\n        children: \"To get the following code sample to run, replace these values:\"\n      }), _jsxs(_components.ol, {\n        children: [\"\\n\", _jsxs(_components.li, {\n          children: [\"Replace the \", _jsx(_components.code, {\n            children: \"From\"\n          }), \" phone number with \", _jsx(_components.a, {\n            href: \"/console/phone-numbers/incoming\",\n            children: \"one of your Twilio numbers\"\n          })]\n        }), \"\\n\", _jsxs(_components.li, {\n          children: [\"Replace the \", _jsx(_components.code, {\n            children: \"To\"\n          }), \" number with your mobile number\"]\n        }), \"\\n\", _jsxs(_components.li, {\n          children: [\"Replace the \", _jsx(_components.code, {\n            children: \"StatusCallback\"\n          }), \" URL with your status callback URL\"]\n        }), \"\\n\"]\n      }), _jsx(_Fragment, {\n        children: _jsx(CodeBlockGroup, {\n          \"children\": _jsx(_Fragment, {}),\n          \"title\": \"Send a Message without Messaging Service with a StatusCallback URL\",\n          \"_data\": {\n            \"header\": \"\"\n          },\n          \"groupType\": \"dynamic\",\n          \"slug\": \"code-send-a-message-without-messaging-service-with-a-statuscallback-url\",\n          \"blocks\": [{\n            \"value\": \"// Download the helper library from https://www.twilio.com/docs/node/install\\nconst twilio = require(\\\"twilio\\\"); // Or, for ESM: import twilio from \\\"twilio\\\";\\n\\n// Find your Account SID and Auth Token at twilio.com/console\\n// and set the environment variables. See http://twil.io/secure\\nconst accountSid = process.env.TWILIO_ACCOUNT_SID;\\nconst authToken = process.env.TWILIO_AUTH_TOKEN;\\nconst client = twilio(accountSid, authToken);\\n\\nasync function createMessage() {\\n  const message = await client.messages.create({\\n    body: \\\"McAvoy or Stewart? These timelines can get so confusing.\\\",\\n    from: \\\"+15017122661\\\",\\n    statusCallback: \\\"http://example.com/MessageStatus\\\",\\n    to: \\\"+15558675310\\\",\\n  });\\n\\n  console.log(message.body);\\n}\\n\\ncreateMessage();\",\n            \"lang\": \"javascript\",\n            \"meta\": \"Node.js\",\n            \"code\": \"// Download the helper library from https://www.twilio.com/docs/node/install\\nconst twilio = require(\\\"twilio\\\"); // Or, for ESM: import twilio from \\\"twilio\\\";\\n\\n// Find your Account SID and Auth Token at twilio.com/console\\n// and set the environment variables. See http://twil.io/secure\\nconst accountSid = process.env.TWILIO_ACCOUNT_SID;\\nconst authToken = process.env.TWILIO_AUTH_TOKEN;\\nconst client = twilio(accountSid, authToken);\\n\\nasync function createMessage() {\\n  const message = await client.messages.create({\\n    body: \\\"McAvoy or Stewart? These timelines can get so confusing.\\\",\\n    from: \\\"+15017122661\\\",\\n    statusCallback: \\\"http://example.com/MessageStatus\\\",\\n    to: \\\"+15558675310\\\",\\n  });\\n\\n  console.log(message.body);\\n}\\n\\ncreateMessage();\",\n            \"tokens\": [[\"// Download the helper library from https://www.twilio.com/docs/node/install\", \"#8B949E\"], \"\\n\", [\"const\", \"#FF7B72\"], \" \", [\"twilio\", \"#79C0FF\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"require\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"\\\"twilio\\\"\", \"#A5D6FF\"], [\");\", \"#C9D1D9\"], \" \", [\"// Or, for ESM: import twilio from \\\"twilio\\\";\", \"#8B949E\"], \"\\n\\n\", [\"// Find your Account SID and Auth Token at twilio.com/console\", \"#8B949E\"], \"\\n\", [\"// and set the environment variables. See http://twil.io/secure\", \"#8B949E\"], \"\\n\", [\"const\", \"#FF7B72\"], \" \", [\"accountSid\", \"#79C0FF\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"process.env.\", \"#C9D1D9\"], [\"TWILIO_ACCOUNT_SID\", \"#79C0FF\"], [\";\", \"#C9D1D9\"], \"\\n\", [\"const\", \"#FF7B72\"], \" \", [\"authToken\", \"#79C0FF\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"process.env.\", \"#C9D1D9\"], [\"TWILIO_AUTH_TOKEN\", \"#79C0FF\"], [\";\", \"#C9D1D9\"], \"\\n\", [\"const\", \"#FF7B72\"], \" \", [\"client\", \"#79C0FF\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"twilio\", \"#D2A8FF\"], [\"(accountSid, authToken);\", \"#C9D1D9\"], \"\\n\\n\", [\"async function\", \"#FF7B72\"], \" \", [\"createMessage\", \"#D2A8FF\"], [\"() {\", \"#C9D1D9\"], \"\\n  \", [\"const\", \"#FF7B72\"], \" \", [\"message\", \"#79C0FF\"], \" \", [\"= await\", \"#FF7B72\"], \" \", [\"client.messages.\", \"#C9D1D9\"], [\"create\", \"#D2A8FF\"], [\"({\", \"#C9D1D9\"], \"\\n    \", [\"body:\", \"#C9D1D9\"], \" \", [\"\\\"McAvoy or Stewart? These timelines can get so confusing.\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n    \", [\"from:\", \"#C9D1D9\"], \" \", [\"\\\"+15017122661\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n    \", [\"statusCallback:\", \"#C9D1D9\"], \" \", [\"\\\"http://example.com/MessageStatus\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n    \", [\"to:\", \"#C9D1D9\"], \" \", [\"\\\"+15558675310\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n  \", [\"});\", \"#C9D1D9\"], \"\\n\\n  \", [\"console.\", \"#C9D1D9\"], [\"log\", \"#D2A8FF\"], [\"(message.body);\", \"#C9D1D9\"], \"\\n\", [\"}\", \"#C9D1D9\"], \"\\n\\n\", [\"createMessage\", \"#D2A8FF\"], [\"();\", \"#C9D1D9\"]],\n            \"annotations\": [],\n            \"themeName\": \"github-dark\",\n            \"style\": {\n              \"color\": \"#c9d1d9\",\n              \"background\": \"#0d1117\",\n              \"colorScheme\": \"dark\"\n            }\n          }, {\n            \"value\": \"# Download the helper library from https://www.twilio.com/docs/python/install\\nimport os\\nfrom twilio.rest import Client\\n\\n# Find your Account SID and Auth Token at twilio.com/console\\n# and set the environment variables. See http://twil.io/secure\\naccount_sid = os.environ[\\\"TWILIO_ACCOUNT_SID\\\"]\\nauth_token = os.environ[\\\"TWILIO_AUTH_TOKEN\\\"]\\nclient = Client(account_sid, auth_token)\\n\\nmessage = client.messages.create(\\n    body=\\\"McAvoy or Stewart? These timelines can get so confusing.\\\",\\n    from_=\\\"+15017122661\\\",\\n    status_callback=\\\"http://example.com/MessageStatus\\\",\\n    to=\\\"+15558675310\\\",\\n)\\n\\nprint(message.body)\",\n            \"lang\": \"python\",\n            \"meta\": \"Python\",\n            \"code\": \"# Download the helper library from https://www.twilio.com/docs/python/install\\nimport os\\nfrom twilio.rest import Client\\n\\n# Find your Account SID and Auth Token at twilio.com/console\\n# and set the environment variables. See http://twil.io/secure\\naccount_sid = os.environ[\\\"TWILIO_ACCOUNT_SID\\\"]\\nauth_token = os.environ[\\\"TWILIO_AUTH_TOKEN\\\"]\\nclient = Client(account_sid, auth_token)\\n\\nmessage = client.messages.create(\\n    body=\\\"McAvoy or Stewart? These timelines can get so confusing.\\\",\\n    from_=\\\"+15017122661\\\",\\n    status_callback=\\\"http://example.com/MessageStatus\\\",\\n    to=\\\"+15558675310\\\",\\n)\\n\\nprint(message.body)\",\n            \"tokens\": [[\"# Download the helper library from https://www.twilio.com/docs/python/install\", \"#8B949E\"], \"\\n\", [\"import\", \"#FF7B72\"], \" \", [\"os\", \"#C9D1D9\"], \"\\n\", [\"from\", \"#FF7B72\"], \" \", [\"twilio.rest\", \"#C9D1D9\"], \" \", [\"import\", \"#FF7B72\"], \" \", [\"Client\", \"#C9D1D9\"], \"\\n\\n\", [\"# Find your Account SID and Auth Token at twilio.com/console\", \"#8B949E\"], \"\\n\", [\"# and set the environment variables. See http://twil.io/secure\", \"#8B949E\"], \"\\n\", [\"account_sid\", \"#C9D1D9\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"os.environ[\", \"#C9D1D9\"], [\"\\\"TWILIO_ACCOUNT_SID\\\"\", \"#A5D6FF\"], [\"]\", \"#C9D1D9\"], \"\\n\", [\"auth_token\", \"#C9D1D9\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"os.environ[\", \"#C9D1D9\"], [\"\\\"TWILIO_AUTH_TOKEN\\\"\", \"#A5D6FF\"], [\"]\", \"#C9D1D9\"], \"\\n\", [\"client\", \"#C9D1D9\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"Client(account_sid, auth_token)\", \"#C9D1D9\"], \"\\n\\n\", [\"message\", \"#C9D1D9\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"client.messages.create(\", \"#C9D1D9\"], \"\\n    \", [\"body\", \"#FFA657\"], [\"=\", \"#FF7B72\"], [\"\\\"McAvoy or Stewart? These timelines can get so confusing.\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n    \", [\"from_\", \"#FFA657\"], [\"=\", \"#FF7B72\"], [\"\\\"+15017122661\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n    \", [\"status_callback\", \"#FFA657\"], [\"=\", \"#FF7B72\"], [\"\\\"http://example.com/MessageStatus\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n    \", [\"to\", \"#FFA657\"], [\"=\", \"#FF7B72\"], [\"\\\"+15558675310\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n\", [\")\", \"#C9D1D9\"], \"\\n\\n\", [\"print\", \"#79C0FF\"], [\"(message.body)\", \"#C9D1D9\"]],\n            \"annotations\": [],\n            \"themeName\": \"github-dark\",\n            \"style\": {\n              \"color\": \"#c9d1d9\",\n              \"background\": \"#0d1117\",\n              \"colorScheme\": \"dark\"\n            }\n          }, {\n            \"value\": \"// Install the C# / .NET helper library from twilio.com/docs/csharp/install\\n\\nusing System;\\nusing Twilio;\\nusing Twilio.Rest.Api.V2010.Account;\\nusing System.Threading.Tasks;\\n\\nclass Program {\\n    public static async Task Main(string[] args) {\\n        // Find your Account SID and Auth Token at twilio.com/console\\n        // and set the environment variables. See http://twil.io/secure\\n        string accountSid = Environment.GetEnvironmentVariable(\\\"TWILIO_ACCOUNT_SID\\\");\\n        string authToken = Environment.GetEnvironmentVariable(\\\"TWILIO_AUTH_TOKEN\\\");\\n\\n        TwilioClient.Init(accountSid, authToken);\\n\\n        var message = await MessageResource.CreateAsync(\\n            body: \\\"McAvoy or Stewart? These timelines can get so confusing.\\\",\\n            from: new Twilio.Types.PhoneNumber(\\\"+15017122661\\\"),\\n            statusCallback: new Uri(\\\"http://example.com/MessageStatus\\\"),\\n            to: new Twilio.Types.PhoneNumber(\\\"+15558675310\\\"));\\n\\n        Console.WriteLine(message.Body);\\n    }\\n}\",\n            \"lang\": \"csharp\",\n            \"meta\": \"C#\",\n            \"code\": \"// Install the C# / .NET helper library from twilio.com/docs/csharp/install\\n\\nusing System;\\nusing Twilio;\\nusing Twilio.Rest.Api.V2010.Account;\\nusing System.Threading.Tasks;\\n\\nclass Program {\\n    public static async Task Main(string[] args) {\\n        // Find your Account SID and Auth Token at twilio.com/console\\n        // and set the environment variables. See http://twil.io/secure\\n        string accountSid = Environment.GetEnvironmentVariable(\\\"TWILIO_ACCOUNT_SID\\\");\\n        string authToken = Environment.GetEnvironmentVariable(\\\"TWILIO_AUTH_TOKEN\\\");\\n\\n        TwilioClient.Init(accountSid, authToken);\\n\\n        var message = await MessageResource.CreateAsync(\\n            body: \\\"McAvoy or Stewart? These timelines can get so confusing.\\\",\\n            from: new Twilio.Types.PhoneNumber(\\\"+15017122661\\\"),\\n            statusCallback: new Uri(\\\"http://example.com/MessageStatus\\\"),\\n            to: new Twilio.Types.PhoneNumber(\\\"+15558675310\\\"));\\n\\n        Console.WriteLine(message.Body);\\n    }\\n}\",\n            \"tokens\": [[\"// Install the C# / .NET helper library from twilio.com/docs/csharp/install\", \"#8B949E\"], \"\\n\\n\", [\"using\", \"#FF7B72\"], \" \", [\"System\", \"#FFA657\"], [\";\", \"#C9D1D9\"], \"\\n\", [\"using\", \"#FF7B72\"], \" \", [\"Twilio\", \"#FFA657\"], [\";\", \"#C9D1D9\"], \"\\n\", [\"using\", \"#FF7B72\"], \" \", [\"Twilio\", \"#FFA657\"], [\".\", \"#C9D1D9\"], [\"Rest\", \"#FFA657\"], [\".\", \"#C9D1D9\"], [\"Api\", \"#FFA657\"], [\".\", \"#C9D1D9\"], [\"V2010\", \"#FFA657\"], [\".\", \"#C9D1D9\"], [\"Account\", \"#FFA657\"], [\";\", \"#C9D1D9\"], \"\\n\", [\"using\", \"#FF7B72\"], \" \", [\"System\", \"#FFA657\"], [\".\", \"#C9D1D9\"], [\"Threading\", \"#FFA657\"], [\".\", \"#C9D1D9\"], [\"Tasks\", \"#FFA657\"], [\";\", \"#C9D1D9\"], \"\\n\\n\", [\"class\", \"#FF7B72\"], \" \", [\"Program\", \"#FFA657\"], \" \", [\"{\", \"#C9D1D9\"], \"\\n    \", [\"public static async\", \"#FF7B72\"], \" \", [\"Task\", \"#FFA657\"], \" \", [\"Main\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"string\", \"#FF7B72\"], [\"[]\", \"#C9D1D9\"], \" \", [\"args\", \"#FFA657\"], [\") {\", \"#C9D1D9\"], \"\\n        \", [\"// Find your Account SID and Auth Token at twilio.com/console\", \"#8B949E\"], \"\\n        \", [\"// and set the environment variables. See http://twil.io/secure\", \"#8B949E\"], \"\\n        \", [\"string\", \"#FF7B72\"], \" \", [\"accountSid\", \"#FFA657\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"Environment.\", \"#C9D1D9\"], [\"GetEnvironmentVariable\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"\\\"TWILIO_ACCOUNT_SID\\\"\", \"#A5D6FF\"], [\");\", \"#C9D1D9\"], \"\\n        \", [\"string\", \"#FF7B72\"], \" \", [\"authToken\", \"#FFA657\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"Environment.\", \"#C9D1D9\"], [\"GetEnvironmentVariable\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"\\\"TWILIO_AUTH_TOKEN\\\"\", \"#A5D6FF\"], [\");\", \"#C9D1D9\"], \"\\n\\n        \", [\"TwilioClient.\", \"#C9D1D9\"], [\"Init\", \"#D2A8FF\"], [\"(accountSid, authToken);\", \"#C9D1D9\"], \"\\n\\n        \", [\"var\", \"#FF7B72\"], \" \", [\"message\", \"#FFA657\"], \" \", [\"= await\", \"#FF7B72\"], \" \", [\"MessageResource.\", \"#C9D1D9\"], [\"CreateAsync\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], \"\\n            \", [\"body\", \"#FFA657\"], [\":\", \"#C9D1D9\"], \" \", [\"\\\"McAvoy or Stewart? These timelines can get so confusing.\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n            \", [\"from\", \"#FFA657\"], [\":\", \"#C9D1D9\"], \" \", [\"new\", \"#FF7B72\"], \" \", [\"Twilio\", \"#FFA657\"], [\".\", \"#C9D1D9\"], [\"Types\", \"#FFA657\"], [\".\", \"#C9D1D9\"], [\"PhoneNumber\", \"#FFA657\"], [\"(\", \"#C9D1D9\"], [\"\\\"+15017122661\\\"\", \"#A5D6FF\"], [\"),\", \"#C9D1D9\"], \"\\n            \", [\"statusCallback\", \"#FFA657\"], [\":\", \"#C9D1D9\"], \" \", [\"new\", \"#FF7B72\"], \" \", [\"Uri\", \"#FFA657\"], [\"(\", \"#C9D1D9\"], [\"\\\"http://example.com/MessageStatus\\\"\", \"#A5D6FF\"], [\"),\", \"#C9D1D9\"], \"\\n            \", [\"to\", \"#FFA657\"], [\":\", \"#C9D1D9\"], \" \", [\"new\", \"#FF7B72\"], \" \", [\"Twilio\", \"#FFA657\"], [\".\", \"#C9D1D9\"], [\"Types\", \"#FFA657\"], [\".\", \"#C9D1D9\"], [\"PhoneNumber\", \"#FFA657\"], [\"(\", \"#C9D1D9\"], [\"\\\"+15558675310\\\"\", \"#A5D6FF\"], [\"));\", \"#C9D1D9\"], \"\\n\\n        \", [\"Console.\", \"#C9D1D9\"], [\"WriteLine\", \"#D2A8FF\"], [\"(message.Body);\", \"#C9D1D9\"], \"\\n    \", [\"}\", \"#C9D1D9\"], \"\\n\", [\"}\", \"#C9D1D9\"]],\n            \"annotations\": [],\n            \"themeName\": \"github-dark\",\n            \"style\": {\n              \"color\": \"#c9d1d9\",\n              \"background\": \"#0d1117\",\n              \"colorScheme\": \"dark\"\n            }\n          }, {\n            \"value\": \"// Install the Java helper library from twilio.com/docs/java/install\\n\\nimport com.twilio.type.PhoneNumber;\\nimport java.net.URI;\\nimport com.twilio.Twilio;\\nimport com.twilio.rest.api.v2010.account.Message;\\n\\npublic class Example {\\n    // Find your Account SID and Auth Token at twilio.com/console\\n    // and set the environment variables. See http://twil.io/secure\\n    public static final String ACCOUNT_SID = System.getenv(\\\"TWILIO_ACCOUNT_SID\\\");\\n    public static final String AUTH_TOKEN = System.getenv(\\\"TWILIO_AUTH_TOKEN\\\");\\n\\n    public static void main(String[] args) {\\n        Twilio.init(ACCOUNT_SID, AUTH_TOKEN);\\n        Message message = Message\\n                              .creator(new com.twilio.type.PhoneNumber(\\\"+15558675310\\\"),\\n                                  new com.twilio.type.PhoneNumber(\\\"+15017122661\\\"),\\n                                  \\\"McAvoy or Stewart? These timelines can get so confusing.\\\")\\n                              .setStatusCallback(URI.create(\\\"http://example.com/MessageStatus\\\"))\\n                              .create();\\n\\n        System.out.println(message.getBody());\\n    }\\n}\",\n            \"lang\": \"java\",\n            \"meta\": \"Java\",\n            \"code\": \"// Install the Java helper library from twilio.com/docs/java/install\\n\\nimport com.twilio.type.PhoneNumber;\\nimport java.net.URI;\\nimport com.twilio.Twilio;\\nimport com.twilio.rest.api.v2010.account.Message;\\n\\npublic class Example {\\n    // Find your Account SID and Auth Token at twilio.com/console\\n    // and set the environment variables. See http://twil.io/secure\\n    public static final String ACCOUNT_SID = System.getenv(\\\"TWILIO_ACCOUNT_SID\\\");\\n    public static final String AUTH_TOKEN = System.getenv(\\\"TWILIO_AUTH_TOKEN\\\");\\n\\n    public static void main(String[] args) {\\n        Twilio.init(ACCOUNT_SID, AUTH_TOKEN);\\n        Message message = Message\\n                              .creator(new com.twilio.type.PhoneNumber(\\\"+15558675310\\\"),\\n                                  new com.twilio.type.PhoneNumber(\\\"+15017122661\\\"),\\n                                  \\\"McAvoy or Stewart? These timelines can get so confusing.\\\")\\n                              .setStatusCallback(URI.create(\\\"http://example.com/MessageStatus\\\"))\\n                              .create();\\n\\n        System.out.println(message.getBody());\\n    }\\n}\",\n            \"tokens\": [[\"// Install the Java helper library from twilio.com/docs/java/install\", \"#8B949E\"], \"\\n\\n\", [\"import\", \"#FF7B72\"], \" \", [\"com.twilio.type.PhoneNumber;\", \"#C9D1D9\"], \"\\n\", [\"import\", \"#FF7B72\"], \" \", [\"java.net.URI;\", \"#C9D1D9\"], \"\\n\", [\"import\", \"#FF7B72\"], \" \", [\"com.twilio.Twilio;\", \"#C9D1D9\"], \"\\n\", [\"import\", \"#FF7B72\"], \" \", [\"com.twilio.rest.api.v2010.account.Message;\", \"#C9D1D9\"], \"\\n\\n\", [\"public class\", \"#FF7B72\"], \" \", [\"Example\", \"#FFA657\"], \" \", [\"{\", \"#C9D1D9\"], \"\\n    \", [\"// Find your Account SID and Auth Token at twilio.com/console\", \"#8B949E\"], \"\\n    \", [\"// and set the environment variables. See http://twil.io/secure\", \"#8B949E\"], \"\\n    \", [\"public static final\", \"#FF7B72\"], \" \", [\"String ACCOUNT_SID\", \"#C9D1D9\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"System.\", \"#C9D1D9\"], [\"getenv\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"\\\"TWILIO_ACCOUNT_SID\\\"\", \"#A5D6FF\"], [\");\", \"#C9D1D9\"], \"\\n    \", [\"public static final\", \"#FF7B72\"], \" \", [\"String AUTH_TOKEN\", \"#C9D1D9\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"System.\", \"#C9D1D9\"], [\"getenv\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"\\\"TWILIO_AUTH_TOKEN\\\"\", \"#A5D6FF\"], [\");\", \"#C9D1D9\"], \"\\n\\n    \", [\"public static void\", \"#FF7B72\"], \" \", [\"main\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"String\", \"#FF7B72\"], [\"[]\", \"#C9D1D9\"], \" \", [\"args\", \"#FFA657\"], [\") {\", \"#C9D1D9\"], \"\\n        \", [\"Twilio.\", \"#C9D1D9\"], [\"init\", \"#D2A8FF\"], [\"(ACCOUNT_SID, AUTH_TOKEN);\", \"#C9D1D9\"], \"\\n        \", [\"Message message\", \"#C9D1D9\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"Message\", \"#C9D1D9\"], \"\\n                              \", [\".\", \"#C9D1D9\"], [\"creator\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"new\", \"#FF7B72\"], \" \", [\"com.twilio.type.\", \"#C9D1D9\"], [\"PhoneNumber\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"\\\"+15558675310\\\"\", \"#A5D6FF\"], [\"),\", \"#C9D1D9\"], \"\\n                                  \", [\"new\", \"#FF7B72\"], \" \", [\"com.twilio.type.\", \"#C9D1D9\"], [\"PhoneNumber\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"\\\"+15017122661\\\"\", \"#A5D6FF\"], [\"),\", \"#C9D1D9\"], \"\\n                                  \", [\"\\\"McAvoy or Stewart? These timelines can get so confusing.\\\"\", \"#A5D6FF\"], [\")\", \"#C9D1D9\"], \"\\n                              \", [\".\", \"#C9D1D9\"], [\"setStatusCallback\", \"#D2A8FF\"], [\"(URI.\", \"#C9D1D9\"], [\"create\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"\\\"http://example.com/MessageStatus\\\"\", \"#A5D6FF\"], [\"))\", \"#C9D1D9\"], \"\\n                              \", [\".\", \"#C9D1D9\"], [\"create\", \"#D2A8FF\"], [\"();\", \"#C9D1D9\"], \"\\n\\n        \", [\"System.out.\", \"#C9D1D9\"], [\"println\", \"#D2A8FF\"], [\"(message.\", \"#C9D1D9\"], [\"getBody\", \"#D2A8FF\"], [\"());\", \"#C9D1D9\"], \"\\n    \", [\"}\", \"#C9D1D9\"], \"\\n\", [\"}\", \"#C9D1D9\"]],\n            \"annotations\": [],\n            \"themeName\": \"github-dark\",\n            \"style\": {\n              \"color\": \"#c9d1d9\",\n              \"background\": \"#0d1117\",\n              \"colorScheme\": \"dark\"\n            }\n          }, {\n            \"value\": \"// Download the helper library from https://www.twilio.com/docs/go/install\\npackage main\\n\\nimport (\\n\\t\\\"fmt\\\"\\n\\t\\\"github.com/twilio/twilio-go\\\"\\n\\tapi \\\"github.com/twilio/twilio-go/rest/api/v2010\\\"\\n\\t\\\"os\\\"\\n)\\n\\nfunc main() {\\n\\t// Find your Account SID and Auth Token at twilio.com/console\\n\\t// and set the environment variables. See http://twil.io/secure\\n\\t// Make sure TWILIO_ACCOUNT_SID and TWILIO_AUTH_TOKEN exists in your environment\\n\\tclient := twilio.NewRestClient()\\n\\n\\tparams := \u0026api.CreateMessageParams{}\\n\\tparams.SetBody(\\\"McAvoy or Stewart? These timelines can get so confusing.\\\")\\n\\tparams.SetFrom(\\\"+15017122661\\\")\\n\\tparams.SetStatusCallback(\\\"http://example.com/MessageStatus\\\")\\n\\tparams.SetTo(\\\"+15558675310\\\")\\n\\n\\tresp, err := client.Api.CreateMessage(params)\\n\\tif err != nil {\\n\\t\\tfmt.Println(err.Error())\\n\\t\\tos.Exit(1)\\n\\t} else {\\n\\t\\tif resp.Body != nil {\\n\\t\\t\\tfmt.Println(*resp.Body)\\n\\t\\t} else {\\n\\t\\t\\tfmt.Println(resp.Body)\\n\\t\\t}\\n\\t}\\n}\",\n            \"lang\": \"go\",\n            \"meta\": \"Go\",\n            \"code\": \"// Download the helper library from https://www.twilio.com/docs/go/install\\npackage main\\n\\nimport (\\n\\t\\\"fmt\\\"\\n\\t\\\"github.com/twilio/twilio-go\\\"\\n\\tapi \\\"github.com/twilio/twilio-go/rest/api/v2010\\\"\\n\\t\\\"os\\\"\\n)\\n\\nfunc main() {\\n\\t// Find your Account SID and Auth Token at twilio.com/console\\n\\t// and set the environment variables. See http://twil.io/secure\\n\\t// Make sure TWILIO_ACCOUNT_SID and TWILIO_AUTH_TOKEN exists in your environment\\n\\tclient := twilio.NewRestClient()\\n\\n\\tparams := \u0026api.CreateMessageParams{}\\n\\tparams.SetBody(\\\"McAvoy or Stewart? These timelines can get so confusing.\\\")\\n\\tparams.SetFrom(\\\"+15017122661\\\")\\n\\tparams.SetStatusCallback(\\\"http://example.com/MessageStatus\\\")\\n\\tparams.SetTo(\\\"+15558675310\\\")\\n\\n\\tresp, err := client.Api.CreateMessage(params)\\n\\tif err != nil {\\n\\t\\tfmt.Println(err.Error())\\n\\t\\tos.Exit(1)\\n\\t} else {\\n\\t\\tif resp.Body != nil {\\n\\t\\t\\tfmt.Println(*resp.Body)\\n\\t\\t} else {\\n\\t\\t\\tfmt.Println(resp.Body)\\n\\t\\t}\\n\\t}\\n}\",\n            \"tokens\": [[\"// Download the helper library from https://www.twilio.com/docs/go/install\", \"#8B949E\"], \"\\n\", [\"package\", \"#FF7B72\"], \" \", [\"main\", \"#FFA657\"], \"\\n\\n\", [\"import\", \"#FF7B72\"], \" \", [\"(\", \"#C9D1D9\"], \"\\n\\t\", [\"\\\"\", \"#A5D6FF\"], [\"fmt\", \"#FFA657\"], [\"\\\"\", \"#A5D6FF\"], \"\\n\\t\", [\"\\\"\", \"#A5D6FF\"], [\"github.com/twilio/twilio-go\", \"#FFA657\"], [\"\\\"\", \"#A5D6FF\"], \"\\n\\t\", [\"api\", \"#C9D1D9\"], \" \", [\"\\\"\", \"#A5D6FF\"], [\"github.com/twilio/twilio-go/rest/api/v2010\", \"#FFA657\"], [\"\\\"\", \"#A5D6FF\"], \"\\n\\t\", [\"\\\"\", \"#A5D6FF\"], [\"os\", \"#FFA657\"], [\"\\\"\", \"#A5D6FF\"], \"\\n\", [\")\", \"#C9D1D9\"], \"\\n\\n\", [\"func\", \"#FF7B72\"], \" \", [\"main\", \"#D2A8FF\"], [\"() {\", \"#C9D1D9\"], \"\\n\\t\", [\"// Find your Account SID and Auth Token at twilio.com/console\", \"#8B949E\"], \"\\n\\t\", [\"// and set the environment variables. See http://twil.io/secure\", \"#8B949E\"], \"\\n\\t\", [\"// Make sure TWILIO_ACCOUNT_SID and TWILIO_AUTH_TOKEN exists in your environment\", \"#8B949E\"], \"\\n\\t\", [\"client\", \"#C9D1D9\"], \" \", [\":=\", \"#FF7B72\"], \" \", [\"twilio.\", \"#C9D1D9\"], [\"NewRestClient\", \"#D2A8FF\"], [\"()\", \"#C9D1D9\"], \"\\n\\n\\t\", [\"params\", \"#C9D1D9\"], \" \", [\":= \u0026\", \"#FF7B72\"], [\"api\", \"#FFA657\"], [\".\", \"#C9D1D9\"], [\"CreateMessageParams\", \"#FFA657\"], [\"{}\", \"#C9D1D9\"], \"\\n\\t\", [\"params.\", \"#C9D1D9\"], [\"SetBody\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"\\\"McAvoy or Stewart? These timelines can get so confusing.\\\"\", \"#A5D6FF\"], [\")\", \"#C9D1D9\"], \"\\n\\t\", [\"params.\", \"#C9D1D9\"], [\"SetFrom\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"\\\"+15017122661\\\"\", \"#A5D6FF\"], [\")\", \"#C9D1D9\"], \"\\n\\t\", [\"params.\", \"#C9D1D9\"], [\"SetStatusCallback\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"\\\"http://example.com/MessageStatus\\\"\", \"#A5D6FF\"], [\")\", \"#C9D1D9\"], \"\\n\\t\", [\"params.\", \"#C9D1D9\"], [\"SetTo\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"\\\"+15558675310\\\"\", \"#A5D6FF\"], [\")\", \"#C9D1D9\"], \"\\n\\n\\t\", [\"resp, err\", \"#C9D1D9\"], \" \", [\":=\", \"#FF7B72\"], \" \", [\"client.Api.\", \"#C9D1D9\"], [\"CreateMessage\", \"#D2A8FF\"], [\"(params)\", \"#C9D1D9\"], \"\\n\\t\", [\"if\", \"#FF7B72\"], \" \", [\"err\", \"#C9D1D9\"], \" \", [\"!=\", \"#FF7B72\"], \" \", [\"nil\", \"#79C0FF\"], \" \", [\"{\", \"#C9D1D9\"], \"\\n\\t\\t\", [\"fmt.\", \"#C9D1D9\"], [\"Println\", \"#D2A8FF\"], [\"(err.\", \"#C9D1D9\"], [\"Error\", \"#D2A8FF\"], [\"())\", \"#C9D1D9\"], \"\\n\\t\\t\", [\"os.\", \"#C9D1D9\"], [\"Exit\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"1\", \"#79C0FF\"], [\")\", \"#C9D1D9\"], \"\\n\\t\", [\"}\", \"#C9D1D9\"], \" \", [\"else\", \"#FF7B72\"], \" \", [\"{\", \"#C9D1D9\"], \"\\n\\t\\t\", [\"if\", \"#FF7B72\"], \" \", [\"resp.Body\", \"#C9D1D9\"], \" \", [\"!=\", \"#FF7B72\"], \" \", [\"nil\", \"#79C0FF\"], \" \", [\"{\", \"#C9D1D9\"], \"\\n\\t\\t\\t\", [\"fmt.\", \"#C9D1D9\"], [\"Println\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"*\", \"#FF7B72\"], [\"resp.Body)\", \"#C9D1D9\"], \"\\n\\t\\t\", [\"}\", \"#C9D1D9\"], \" \", [\"else\", \"#FF7B72\"], \" \", [\"{\", \"#C9D1D9\"], \"\\n\\t\\t\\t\", [\"fmt.\", \"#C9D1D9\"], [\"Println\", \"#D2A8FF\"], [\"(resp.Body)\", \"#C9D1D9\"], \"\\n\\t\\t\", [\"}\", \"#C9D1D9\"], \"\\n\\t\", [\"}\", \"#C9D1D9\"], \"\\n\", [\"}\", \"#C9D1D9\"]],\n            \"annotations\": [],\n            \"themeName\": \"github-dark\",\n            \"style\": {\n              \"color\": \"#c9d1d9\",\n              \"background\": \"#0d1117\",\n              \"colorScheme\": \"dark\"\n            }\n          }, {\n            \"value\": \"\u003c?php\\n\\n// Update the path below to your autoload.php,\\n// see https://getcomposer.org/doc/01-basic-usage.md\\nrequire_once \\\"/path/to/vendor/autoload.php\\\";\\n\\nuse Twilio\\\\Rest\\\\Client;\\n\\n// Find your Account SID and Auth Token at twilio.com/console\\n// and set the environment variables. See http://twil.io/secure\\n$sid = $_ENV[\\\"TWILIO_ACCOUNT_SID\\\"];\\n$token = $_ENV[\\\"TWILIO_AUTH_TOKEN\\\"];\\n$twilio = new Client($sid, $token);\\n\\n$message = $twilio-\u003emessages-\u003ecreate(\\n    \\\"+15558675310\\\", // To\\n    [\\n        \\\"body\\\" =\u003e \\\"McAvoy or Stewart? These timelines can get so confusing.\\\",\\n        \\\"from\\\" =\u003e \\\"+15017122661\\\",\\n        \\\"statusCallback\\\" =\u003e \\\"http://example.com/MessageStatus\\\",\\n    ],\\n);\\n\\nprint $message-\u003ebody;\",\n            \"lang\": \"php\",\n            \"meta\": \"PHP\",\n            \"code\": \"\u003c?php\\n\\n// Update the path below to your autoload.php,\\n// see https://getcomposer.org/doc/01-basic-usage.md\\nrequire_once \\\"/path/to/vendor/autoload.php\\\";\\n\\nuse Twilio\\\\Rest\\\\Client;\\n\\n// Find your Account SID and Auth Token at twilio.com/console\\n// and set the environment variables. See http://twil.io/secure\\n$sid = $_ENV[\\\"TWILIO_ACCOUNT_SID\\\"];\\n$token = $_ENV[\\\"TWILIO_AUTH_TOKEN\\\"];\\n$twilio = new Client($sid, $token);\\n\\n$message = $twilio-\u003emessages-\u003ecreate(\\n    \\\"+15558675310\\\", // To\\n    [\\n        \\\"body\\\" =\u003e \\\"McAvoy or Stewart? These timelines can get so confusing.\\\",\\n        \\\"from\\\" =\u003e \\\"+15017122661\\\",\\n        \\\"statusCallback\\\" =\u003e \\\"http://example.com/MessageStatus\\\",\\n    ],\\n);\\n\\nprint $message-\u003ebody;\",\n            \"tokens\": [[\"\u003c?\", \"#FF7B72\"], [\"php\", \"#79C0FF\"], \"\\n\\n\", [\"// Update the path below to your autoload.php,\", \"#8B949E\"], \"\\n\", [\"// see https://getcomposer.org/doc/01-basic-usage.md\", \"#8B949E\"], \"\\n\", [\"require_once\", \"#FF7B72\"], \" \", [\"\\\"/path/to/vendor/autoload.php\\\"\", \"#A5D6FF\"], [\";\", \"#C9D1D9\"], \"\\n\\n\", [\"use\", \"#FF7B72\"], \" \", [\"Twilio\\\\Rest\\\\Client\", \"#79C0FF\"], [\";\", \"#C9D1D9\"], \"\\n\\n\", [\"// Find your Account SID and Auth Token at twilio.com/console\", \"#8B949E\"], \"\\n\", [\"// and set the environment variables. See http://twil.io/secure\", \"#8B949E\"], \"\\n\", [\"$sid\", \"#C9D1D9\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"$_ENV[\", \"#C9D1D9\"], [\"\\\"TWILIO_ACCOUNT_SID\\\"\", \"#A5D6FF\"], [\"];\", \"#C9D1D9\"], \"\\n\", [\"$token\", \"#C9D1D9\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"$_ENV[\", \"#C9D1D9\"], [\"\\\"TWILIO_AUTH_TOKEN\\\"\", \"#A5D6FF\"], [\"];\", \"#C9D1D9\"], \"\\n\", [\"$twilio\", \"#C9D1D9\"], \" \", [\"= new\", \"#FF7B72\"], \" \", [\"Client\", \"#79C0FF\"], [\"($sid, $token);\", \"#C9D1D9\"], \"\\n\\n\", [\"$message\", \"#C9D1D9\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"$twilio\", \"#C9D1D9\"], [\"-\u003e\", \"#FF7B72\"], [\"messages\", \"#C9D1D9\"], [\"-\u003e\", \"#FF7B72\"], [\"create\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], \"\\n    \", [\"\\\"+15558675310\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \" \", [\"// To\", \"#8B949E\"], \"\\n    \", [\"[\", \"#C9D1D9\"], \"\\n        \", [\"\\\"body\\\"\", \"#A5D6FF\"], \" \", [\"=\u003e\", \"#FF7B72\"], \" \", [\"\\\"McAvoy or Stewart? These timelines can get so confusing.\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n        \", [\"\\\"from\\\"\", \"#A5D6FF\"], \" \", [\"=\u003e\", \"#FF7B72\"], \" \", [\"\\\"+15017122661\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n        \", [\"\\\"statusCallback\\\"\", \"#A5D6FF\"], \" \", [\"=\u003e\", \"#FF7B72\"], \" \", [\"\\\"http://example.com/MessageStatus\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n    \", [\"],\", \"#C9D1D9\"], \"\\n\", [\");\", \"#C9D1D9\"], \"\\n\\n\", [\"print\", \"#79C0FF\"], \" \", [\"$message\", \"#C9D1D9\"], [\"-\u003e\", \"#FF7B72\"], [\"body;\", \"#C9D1D9\"]],\n            \"annotations\": [],\n            \"themeName\": \"github-dark\",\n            \"style\": {\n              \"color\": \"#c9d1d9\",\n              \"background\": \"#0d1117\",\n              \"colorScheme\": \"dark\"\n            }\n          }, {\n            \"value\": \"# Download the helper library from https://www.twilio.com/docs/ruby/install\\nrequire 'twilio-ruby'\\n\\n# Find your Account SID and Auth Token at twilio.com/console\\n# and set the environment variables. See http://twil.io/secure\\naccount_sid = ENV['TWILIO_ACCOUNT_SID']\\nauth_token = ENV['TWILIO_AUTH_TOKEN']\\n@client = Twilio::REST::Client.new(account_sid, auth_token)\\n\\nmessage = @client\\n          .api\\n          .v2010\\n          .messages\\n          .create(\\n            body: 'McAvoy or Stewart? These timelines can get so confusing.',\\n            from: '+15017122661',\\n            status_callback: 'http://example.com/MessageStatus',\\n            to: '+15558675310'\\n          )\\n\\nputs message.body\",\n            \"lang\": \"ruby\",\n            \"meta\": \"Ruby\",\n            \"code\": \"# Download the helper library from https://www.twilio.com/docs/ruby/install\\nrequire 'twilio-ruby'\\n\\n# Find your Account SID and Auth Token at twilio.com/console\\n# and set the environment variables. See http://twil.io/secure\\naccount_sid = ENV['TWILIO_ACCOUNT_SID']\\nauth_token = ENV['TWILIO_AUTH_TOKEN']\\n@client = Twilio::REST::Client.new(account_sid, auth_token)\\n\\nmessage = @client\\n          .api\\n          .v2010\\n          .messages\\n          .create(\\n            body: 'McAvoy or Stewart? These timelines can get so confusing.',\\n            from: '+15017122661',\\n            status_callback: 'http://example.com/MessageStatus',\\n            to: '+15558675310'\\n          )\\n\\nputs message.body\",\n            \"tokens\": [[\"# Download the helper library from https://www.twilio.com/docs/ruby/install\", \"#8B949E\"], \"\\n\", [\"require\", \"#FF7B72\"], \" \", [\"'twilio-ruby'\", \"#A5D6FF\"], \"\\n\\n\", [\"# Find your Account SID and Auth Token at twilio.com/console\", \"#8B949E\"], \"\\n\", [\"# and set the environment variables. See http://twil.io/secure\", \"#8B949E\"], \"\\n\", [\"account_sid\", \"#C9D1D9\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"ENV\", \"#79C0FF\"], [\"[\", \"#C9D1D9\"], [\"'TWILIO_ACCOUNT_SID'\", \"#A5D6FF\"], [\"]\", \"#C9D1D9\"], \"\\n\", [\"auth_token\", \"#C9D1D9\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"ENV\", \"#79C0FF\"], [\"[\", \"#C9D1D9\"], [\"'TWILIO_AUTH_TOKEN'\", \"#A5D6FF\"], [\"]\", \"#C9D1D9\"], \"\\n\", [\"@client\", \"#C9D1D9\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"Twilio\", \"#79C0FF\"], [\"::\", \"#C9D1D9\"], [\"REST\", \"#79C0FF\"], [\"::\", \"#C9D1D9\"], [\"Client\", \"#79C0FF\"], [\".\", \"#C9D1D9\"], [\"new\", \"#FF7B72\"], [\"(account_sid, auth_token)\", \"#C9D1D9\"], \"\\n\\n\", [\"message\", \"#C9D1D9\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"@client\", \"#C9D1D9\"], \"\\n          \", [\".api\", \"#C9D1D9\"], \"\\n          \", [\".v2010\", \"#C9D1D9\"], \"\\n          \", [\".messages\", \"#C9D1D9\"], \"\\n          \", [\".create(\", \"#C9D1D9\"], \"\\n            \", [\"body:\", \"#79C0FF\"], \" \", [\"'McAvoy or Stewart? These timelines can get so confusing.'\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n            \", [\"from:\", \"#79C0FF\"], \" \", [\"'+15017122661'\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n            \", [\"status_callback:\", \"#79C0FF\"], \" \", [\"'http://example.com/MessageStatus'\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n            \", [\"to:\", \"#79C0FF\"], \" \", [\"'+15558675310'\", \"#A5D6FF\"], \"\\n          \", [\")\", \"#C9D1D9\"], \"\\n\\n\", [\"puts\", \"#79C0FF\"], \" \", [\"message.body\", \"#C9D1D9\"]],\n            \"annotations\": [],\n            \"themeName\": \"github-dark\",\n            \"style\": {\n              \"color\": \"#c9d1d9\",\n              \"background\": \"#0d1117\",\n              \"colorScheme\": \"dark\"\n            }\n          }, {\n            \"value\": \"# Install the twilio-cli from https://twil.io/cli\\n\\ntwilio api:core:messages:create \\\\\\n   --body \\\"McAvoy or Stewart? These timelines can get so confusing.\\\" \\\\\\n   --from +15017122661 \\\\\\n   --status-callback http://example.com/MessageStatus \\\\\\n   --to +15558675310\",\n            \"lang\": \"shellscript\",\n            \"meta\": \"twilio-cli\",\n            \"code\": \"# Install the twilio-cli from https://twil.io/cli\\n\\ntwilio api:core:messages:create \\\\\\n   --body \\\"McAvoy or Stewart? These timelines can get so confusing.\\\" \\\\\\n   --from +15017122661 \\\\\\n   --status-callback http://example.com/MessageStatus \\\\\\n   --to +15558675310\",\n            \"tokens\": [[\"# Install the twilio-cli from https://twil.io/cli\", \"#8B949E\"], \"\\n\\n\", [\"twilio\", \"#FFA657\"], \" \", [\"api:core:messages:create\", \"#A5D6FF\"], \" \", [\"\\\\\", \"#79C0FF\"], \"\\n   \", [\"--body\", \"#79C0FF\"], \" \", [\"\\\"McAvoy or Stewart? These timelines can get so confusing.\\\"\", \"#A5D6FF\"], \" \", [\"\\\\\", \"#79C0FF\"], \"\\n   \", [\"--from\", \"#79C0FF\"], \" \", [\"+15017122661\", \"#A5D6FF\"], \" \", [\"\\\\\", \"#79C0FF\"], \"\\n   \", [\"--status-callback\", \"#79C0FF\"], \" \", [\"http://example.com/MessageStatus\", \"#A5D6FF\"], \" \", [\"\\\\\", \"#79C0FF\"], \"\\n   \", [\"--to\", \"#79C0FF\"], \" \", [\"+15558675310\", \"#A5D6FF\"]],\n            \"annotations\": [],\n            \"themeName\": \"github-dark\",\n            \"style\": {\n              \"color\": \"#c9d1d9\",\n              \"background\": \"#0d1117\",\n              \"colorScheme\": \"dark\"\n            }\n          }, {\n            \"value\": \"curl -X POST \\\"https://api.twilio.com/2010-04-01/Accounts/$TWILIO_ACCOUNT_SID/Messages.json\\\" \\\\\\n--data-urlencode \\\"Body=McAvoy or Stewart? These timelines can get so confusing.\\\" \\\\\\n--data-urlencode \\\"From=+15017122661\\\" \\\\\\n--data-urlencode \\\"StatusCallback=http://example.com/MessageStatus\\\" \\\\\\n--data-urlencode \\\"To=+15558675310\\\" \\\\\\n-u $TWILIO_ACCOUNT_SID:$TWILIO_AUTH_TOKEN\",\n            \"lang\": \"shellscript\",\n            \"meta\": \"curl\",\n            \"code\": \"curl -X POST \\\"https://api.twilio.com/2010-04-01/Accounts/$TWILIO_ACCOUNT_SID/Messages.json\\\" \\\\\\n--data-urlencode \\\"Body=McAvoy or Stewart? These timelines can get so confusing.\\\" \\\\\\n--data-urlencode \\\"From=+15017122661\\\" \\\\\\n--data-urlencode \\\"StatusCallback=http://example.com/MessageStatus\\\" \\\\\\n--data-urlencode \\\"To=+15558675310\\\" \\\\\\n-u $TWILIO_ACCOUNT_SID:$TWILIO_AUTH_TOKEN\",\n            \"tokens\": [[\"curl\", \"#FFA657\"], \" \", [\"-X\", \"#79C0FF\"], \" \", [\"POST \\\"https://api.twilio.com/2010-04-01/Accounts/\", \"#A5D6FF\"], [\"$TWILIO_ACCOUNT_SID\", \"#C9D1D9\"], [\"/Messages.json\\\"\", \"#A5D6FF\"], \" \", [\"\\\\\", \"#79C0FF\"], \"\\n\", [\"--data-urlencode\", \"#C9D1D9\"], \" \", [\"\\\"Body=McAvoy or Stewart? These timelines can get so confusing.\\\"\", \"#A5D6FF\"], \" \", [\"\\\\\", \"#79C0FF\"], \"\\n\", [\"--data-urlencode\", \"#C9D1D9\"], \" \", [\"\\\"From=+15017122661\\\"\", \"#A5D6FF\"], \" \", [\"\\\\\", \"#79C0FF\"], \"\\n\", [\"--data-urlencode\", \"#C9D1D9\"], \" \", [\"\\\"StatusCallback=http://example.com/MessageStatus\\\"\", \"#A5D6FF\"], \" \", [\"\\\\\", \"#79C0FF\"], \"\\n\", [\"--data-urlencode\", \"#C9D1D9\"], \" \", [\"\\\"To=+15558675310\\\"\", \"#A5D6FF\"], \" \", [\"\\\\\", \"#79C0FF\"], \"\\n\", [\"-u $TWILIO_ACCOUNT_SID\", \"#C9D1D9\"], [\":\", \"#A5D6FF\"], [\"$TWILIO_AUTH_TOKEN\", \"#C9D1D9\"]],\n            \"annotations\": [],\n            \"themeName\": \"github-dark\",\n            \"style\": {\n              \"color\": \"#c9d1d9\",\n              \"background\": \"#0d1117\",\n              \"colorScheme\": \"dark\"\n            }\n          }],\n          \"output\": {\n            \"value\": \"{\\n  \\\"account_sid\\\": \\\"ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\\\",\\n  \\\"api_version\\\": \\\"2010-04-01\\\",\\n  \\\"body\\\": \\\"McAvoy or Stewart? These timelines can get so confusing.\\\",\\n  \\\"date_created\\\": \\\"Thu, 24 Aug 2023 05:01:45 +0000\\\",\\n  \\\"date_sent\\\": \\\"Thu, 24 Aug 2023 05:01:45 +0000\\\",\\n  \\\"date_updated\\\": \\\"Thu, 24 Aug 2023 05:01:45 +0000\\\",\\n  \\\"direction\\\": \\\"outbound-api\\\",\\n  \\\"error_code\\\": null,\\n  \\\"error_message\\\": null,\\n  \\\"from\\\": \\\"+15017122661\\\",\\n  \\\"num_media\\\": \\\"0\\\",\\n  \\\"num_segments\\\": \\\"1\\\",\\n  \\\"price\\\": null,\\n  \\\"price_unit\\\": null,\\n  \\\"messaging_service_sid\\\": \\\"MGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\\\",\\n  \\\"sid\\\": \\\"SMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\\\",\\n  \\\"status\\\": \\\"queued\\\",\\n  \\\"subresource_uris\\\": {\\n    \\\"media\\\": \\\"/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Messages/SMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Media.json\\\"\\n  },\\n  \\\"to\\\": \\\"+15558675310\\\",\\n  \\\"uri\\\": \\\"/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Messages/SMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.json\\\"\\n}\",\n            \"lang\": \"json\",\n            \"meta\": \"\",\n            \"code\": \"{\\n  \\\"account_sid\\\": \\\"ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\\\",\\n  \\\"api_version\\\": \\\"2010-04-01\\\",\\n  \\\"body\\\": \\\"McAvoy or Stewart? These timelines can get so confusing.\\\",\\n  \\\"date_created\\\": \\\"Thu, 24 Aug 2023 05:01:45 +0000\\\",\\n  \\\"date_sent\\\": \\\"Thu, 24 Aug 2023 05:01:45 +0000\\\",\\n  \\\"date_updated\\\": \\\"Thu, 24 Aug 2023 05:01:45 +0000\\\",\\n  \\\"direction\\\": \\\"outbound-api\\\",\\n  \\\"error_code\\\": null,\\n  \\\"error_message\\\": null,\\n  \\\"from\\\": \\\"+15017122661\\\",\\n  \\\"num_media\\\": \\\"0\\\",\\n  \\\"num_segments\\\": \\\"1\\\",\\n  \\\"price\\\": null,\\n  \\\"price_unit\\\": null,\\n  \\\"messaging_service_sid\\\": \\\"MGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\\\",\\n  \\\"sid\\\": \\\"SMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\\\",\\n  \\\"status\\\": \\\"queued\\\",\\n  \\\"subresource_uris\\\": {\\n    \\\"media\\\": \\\"/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Messages/SMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Media.json\\\"\\n  },\\n  \\\"to\\\": \\\"+15558675310\\\",\\n  \\\"uri\\\": \\\"/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Messages/SMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.json\\\"\\n}\",\n            \"tokens\": [[\"{\", \"#C9D1D9\"], \"\\n  \", [\"\\\"account_sid\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"\\\"ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n  \", [\"\\\"api_version\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"\\\"2010-04-01\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n  \", [\"\\\"body\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"\\\"McAvoy or Stewart? These timelines can get so confusing.\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n  \", [\"\\\"date_created\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"\\\"Thu, 24 Aug 2023 05:01:45 +0000\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n  \", [\"\\\"date_sent\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"\\\"Thu, 24 Aug 2023 05:01:45 +0000\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n  \", [\"\\\"date_updated\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"\\\"Thu, 24 Aug 2023 05:01:45 +0000\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n  \", [\"\\\"direction\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"\\\"outbound-api\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n  \", [\"\\\"error_code\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"null\", \"#79C0FF\"], [\",\", \"#C9D1D9\"], \"\\n  \", [\"\\\"error_message\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"null\", \"#79C0FF\"], [\",\", \"#C9D1D9\"], \"\\n  \", [\"\\\"from\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"\\\"+15017122661\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n  \", [\"\\\"num_media\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"\\\"0\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n  \", [\"\\\"num_segments\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"\\\"1\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n  \", [\"\\\"price\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"null\", \"#79C0FF\"], [\",\", \"#C9D1D9\"], \"\\n  \", [\"\\\"price_unit\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"null\", \"#79C0FF\"], [\",\", \"#C9D1D9\"], \"\\n  \", [\"\\\"messaging_service_sid\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"\\\"MGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n  \", [\"\\\"sid\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"\\\"SMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n  \", [\"\\\"status\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"\\\"queued\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n  \", [\"\\\"subresource_uris\\\"\", \"#7EE787\"], [\": {\", \"#C9D1D9\"], \"\\n    \", [\"\\\"media\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"\\\"/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Messages/SMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Media.json\\\"\", \"#A5D6FF\"], \"\\n  \", [\"},\", \"#C9D1D9\"], \"\\n  \", [\"\\\"to\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"\\\"+15558675310\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n  \", [\"\\\"uri\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"\\\"/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Messages/SMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.json\\\"\", \"#A5D6FF\"], \"\\n\", [\"}\", \"#C9D1D9\"]],\n            \"annotations\": [],\n            \"themeName\": \"github-dark\",\n            \"style\": {\n              \"color\": \"#c9d1d9\",\n              \"background\": \"#0d1117\",\n              \"colorScheme\": \"dark\"\n            }\n          }\n        })\n      })]\n    }), \"\\n\", _jsxs(_components.section, {\n      id: \"scenario-2-messaging-service-used-section-indexable\",\n      children: [_jsx(_components.h3, {\n        id: \"scenario-2-messaging-service-used\",\n        children: \"Scenario 2: Messaging Service used\"\n      }), _jsxs(_components.p, {\n        children: [\"Messaging Services can be configured to have a service-level Delivery Status Callback. When \", _jsx(_components.a, {\n          href: \"/docs/messaging/tutorials/send-messages-with-messaging-services#create-and-configure-a-messaging-service\",\n          children: \"creating a new Messaging Service in Console\"\n        }), \", you can specify this service-level Delivery Status Callback in \", _jsx(_components.strong, {\n          children: \"Step 3 - Set up Integrations\"\n        }), \".\"]\n      }), _jsx(_components.p, {\n        children: \"You can use the status callback URL from Step 1 of this guide for this Delivery Status Callback integration. If you do so, you do not have to provide the status callback URL as a message-specific parameter.\"\n      }), _jsxs(_components.p, {\n        children: [\"Alternatively, you can provide a message-specific status callback URL in the \", _jsx(_components.code, {\n          children: \"StatusCallback\"\n        }), \" parameter for a message created with the Messaging Service.\"]\n      }), _jsx(_components.p, {\n        children: \"Which of these two options is more appropriate depends on your use case.\"\n      })]\n    }), \"\\n\", _jsxs(_components.section, {\n      id: \"option-1---use-service-level-delivery-status-callback-section\",\n      children: [_jsx(_components.h4, {\n        id: \"option-1---use-service-level-delivery-status-callback\",\n        children: \"Option 1 - Use Service-level Delivery Status Callback\"\n      }), _jsx(_components.p, {\n        children: \"To get the following code sample to run, replace these values:\"\n      }), _jsxs(_components.ol, {\n        children: [\"\\n\", _jsxs(_components.li, {\n          children: [\"Replace the \", _jsx(_components.code, {\n            children: \"MessagingServiceSid\"\n          }), \" with the SID of one of your Messaging Services that has a Delivery Status Callback integration configured in Console\"]\n        }), \"\\n\", _jsxs(_components.li, {\n          children: [\"Replace the \", _jsx(_components.code, {\n            children: \"To\"\n          }), \" number with your mobile number\"]\n        }), \"\\n\"]\n      }), _jsx(_Fragment, {\n        children: _jsx(CodeBlockGroup, {\n          \"children\": _jsx(_Fragment, {}),\n          \"title\": \"Send a Message using Messaging Service with Delivery Status Callback Integration\",\n          \"_data\": {\n            \"header\": \"\"\n          },\n          \"groupType\": \"dynamic\",\n          \"slug\": \"code-send-a-message-using-messaging-service-with-delivery-status-callback-integration\",\n          \"blocks\": [{\n            \"value\": \"// Download the helper library from https://www.twilio.com/docs/node/install\\nconst twilio = require(\\\"twilio\\\"); // Or, for ESM: import twilio from \\\"twilio\\\";\\n\\n// Find your Account SID and Auth Token at twilio.com/console\\n// and set the environment variables. See http://twil.io/secure\\nconst accountSid = process.env.TWILIO_ACCOUNT_SID;\\nconst authToken = process.env.TWILIO_AUTH_TOKEN;\\nconst client = twilio(accountSid, authToken);\\n\\nasync function createMessage() {\\n  const message = await client.messages.create({\\n    body: \\\"McAvoy or Stewart? These timelines can get so confusing.\\\",\\n    messagingServiceSid: \\\"MG9752274e9e519418a7406176694466fa\\\",\\n    to: \\\"+15558675310\\\",\\n  });\\n\\n  console.log(message.body);\\n}\\n\\ncreateMessage();\",\n            \"lang\": \"javascript\",\n            \"meta\": \"Node.js\",\n            \"code\": \"// Download the helper library from https://www.twilio.com/docs/node/install\\nconst twilio = require(\\\"twilio\\\"); // Or, for ESM: import twilio from \\\"twilio\\\";\\n\\n// Find your Account SID and Auth Token at twilio.com/console\\n// and set the environment variables. See http://twil.io/secure\\nconst accountSid = process.env.TWILIO_ACCOUNT_SID;\\nconst authToken = process.env.TWILIO_AUTH_TOKEN;\\nconst client = twilio(accountSid, authToken);\\n\\nasync function createMessage() {\\n  const message = await client.messages.create({\\n    body: \\\"McAvoy or Stewart? These timelines can get so confusing.\\\",\\n    messagingServiceSid: \\\"MG9752274e9e519418a7406176694466fa\\\",\\n    to: \\\"+15558675310\\\",\\n  });\\n\\n  console.log(message.body);\\n}\\n\\ncreateMessage();\",\n            \"tokens\": [[\"// Download the helper library from https://www.twilio.com/docs/node/install\", \"#8B949E\"], \"\\n\", [\"const\", \"#FF7B72\"], \" \", [\"twilio\", \"#79C0FF\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"require\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"\\\"twilio\\\"\", \"#A5D6FF\"], [\");\", \"#C9D1D9\"], \" \", [\"// Or, for ESM: import twilio from \\\"twilio\\\";\", \"#8B949E\"], \"\\n\\n\", [\"// Find your Account SID and Auth Token at twilio.com/console\", \"#8B949E\"], \"\\n\", [\"// and set the environment variables. See http://twil.io/secure\", \"#8B949E\"], \"\\n\", [\"const\", \"#FF7B72\"], \" \", [\"accountSid\", \"#79C0FF\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"process.env.\", \"#C9D1D9\"], [\"TWILIO_ACCOUNT_SID\", \"#79C0FF\"], [\";\", \"#C9D1D9\"], \"\\n\", [\"const\", \"#FF7B72\"], \" \", [\"authToken\", \"#79C0FF\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"process.env.\", \"#C9D1D9\"], [\"TWILIO_AUTH_TOKEN\", \"#79C0FF\"], [\";\", \"#C9D1D9\"], \"\\n\", [\"const\", \"#FF7B72\"], \" \", [\"client\", \"#79C0FF\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"twilio\", \"#D2A8FF\"], [\"(accountSid, authToken);\", \"#C9D1D9\"], \"\\n\\n\", [\"async function\", \"#FF7B72\"], \" \", [\"createMessage\", \"#D2A8FF\"], [\"() {\", \"#C9D1D9\"], \"\\n  \", [\"const\", \"#FF7B72\"], \" \", [\"message\", \"#79C0FF\"], \" \", [\"= await\", \"#FF7B72\"], \" \", [\"client.messages.\", \"#C9D1D9\"], [\"create\", \"#D2A8FF\"], [\"({\", \"#C9D1D9\"], \"\\n    \", [\"body:\", \"#C9D1D9\"], \" \", [\"\\\"McAvoy or Stewart? These timelines can get so confusing.\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n    \", [\"messagingServiceSid:\", \"#C9D1D9\"], \" \", [\"\\\"MG9752274e9e519418a7406176694466fa\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n    \", [\"to:\", \"#C9D1D9\"], \" \", [\"\\\"+15558675310\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n  \", [\"});\", \"#C9D1D9\"], \"\\n\\n  \", [\"console.\", \"#C9D1D9\"], [\"log\", \"#D2A8FF\"], [\"(message.body);\", \"#C9D1D9\"], \"\\n\", [\"}\", \"#C9D1D9\"], \"\\n\\n\", [\"createMessage\", \"#D2A8FF\"], [\"();\", \"#C9D1D9\"]],\n            \"annotations\": [],\n            \"themeName\": \"github-dark\",\n            \"style\": {\n              \"color\": \"#c9d1d9\",\n              \"background\": \"#0d1117\",\n              \"colorScheme\": \"dark\"\n            }\n          }, {\n            \"value\": \"# Download the helper library from https://www.twilio.com/docs/python/install\\nimport os\\nfrom twilio.rest import Client\\n\\n# Find your Account SID and Auth Token at twilio.com/console\\n# and set the environment variables. See http://twil.io/secure\\naccount_sid = os.environ[\\\"TWILIO_ACCOUNT_SID\\\"]\\nauth_token = os.environ[\\\"TWILIO_AUTH_TOKEN\\\"]\\nclient = Client(account_sid, auth_token)\\n\\nmessage = client.messages.create(\\n    body=\\\"McAvoy or Stewart? These timelines can get so confusing.\\\",\\n    to=\\\"+15558675310\\\",\\n    messaging_service_sid=\\\"MG9752274e9e519418a7406176694466fa\\\",\\n)\\n\\nprint(message.body)\",\n            \"lang\": \"python\",\n            \"meta\": \"Python\",\n            \"code\": \"# Download the helper library from https://www.twilio.com/docs/python/install\\nimport os\\nfrom twilio.rest import Client\\n\\n# Find your Account SID and Auth Token at twilio.com/console\\n# and set the environment variables. See http://twil.io/secure\\naccount_sid = os.environ[\\\"TWILIO_ACCOUNT_SID\\\"]\\nauth_token = os.environ[\\\"TWILIO_AUTH_TOKEN\\\"]\\nclient = Client(account_sid, auth_token)\\n\\nmessage = client.messages.create(\\n    body=\\\"McAvoy or Stewart? These timelines can get so confusing.\\\",\\n    to=\\\"+15558675310\\\",\\n    messaging_service_sid=\\\"MG9752274e9e519418a7406176694466fa\\\",\\n)\\n\\nprint(message.body)\",\n            \"tokens\": [[\"# Download the helper library from https://www.twilio.com/docs/python/install\", \"#8B949E\"], \"\\n\", [\"import\", \"#FF7B72\"], \" \", [\"os\", \"#C9D1D9\"], \"\\n\", [\"from\", \"#FF7B72\"], \" \", [\"twilio.rest\", \"#C9D1D9\"], \" \", [\"import\", \"#FF7B72\"], \" \", [\"Client\", \"#C9D1D9\"], \"\\n\\n\", [\"# Find your Account SID and Auth Token at twilio.com/console\", \"#8B949E\"], \"\\n\", [\"# and set the environment variables. See http://twil.io/secure\", \"#8B949E\"], \"\\n\", [\"account_sid\", \"#C9D1D9\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"os.environ[\", \"#C9D1D9\"], [\"\\\"TWILIO_ACCOUNT_SID\\\"\", \"#A5D6FF\"], [\"]\", \"#C9D1D9\"], \"\\n\", [\"auth_token\", \"#C9D1D9\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"os.environ[\", \"#C9D1D9\"], [\"\\\"TWILIO_AUTH_TOKEN\\\"\", \"#A5D6FF\"], [\"]\", \"#C9D1D9\"], \"\\n\", [\"client\", \"#C9D1D9\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"Client(account_sid, auth_token)\", \"#C9D1D9\"], \"\\n\\n\", [\"message\", \"#C9D1D9\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"client.messages.create(\", \"#C9D1D9\"], \"\\n    \", [\"body\", \"#FFA657\"], [\"=\", \"#FF7B72\"], [\"\\\"McAvoy or Stewart? These timelines can get so confusing.\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n    \", [\"to\", \"#FFA657\"], [\"=\", \"#FF7B72\"], [\"\\\"+15558675310\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n    \", [\"messaging_service_sid\", \"#FFA657\"], [\"=\", \"#FF7B72\"], [\"\\\"MG9752274e9e519418a7406176694466fa\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n\", [\")\", \"#C9D1D9\"], \"\\n\\n\", [\"print\", \"#79C0FF\"], [\"(message.body)\", \"#C9D1D9\"]],\n            \"annotations\": [],\n            \"themeName\": \"github-dark\",\n            \"style\": {\n              \"color\": \"#c9d1d9\",\n              \"background\": \"#0d1117\",\n              \"colorScheme\": \"dark\"\n            }\n          }, {\n            \"value\": \"// Install the C# / .NET helper library from twilio.com/docs/csharp/install\\n\\nusing System;\\nusing Twilio;\\nusing Twilio.Rest.Api.V2010.Account;\\nusing System.Threading.Tasks;\\n\\nclass Program {\\n    public static async Task Main(string[] args) {\\n        // Find your Account SID and Auth Token at twilio.com/console\\n        // and set the environment variables. See http://twil.io/secure\\n        string accountSid = Environment.GetEnvironmentVariable(\\\"TWILIO_ACCOUNT_SID\\\");\\n        string authToken = Environment.GetEnvironmentVariable(\\\"TWILIO_AUTH_TOKEN\\\");\\n\\n        TwilioClient.Init(accountSid, authToken);\\n\\n        var message = await MessageResource.CreateAsync(\\n            body: \\\"McAvoy or Stewart? These timelines can get so confusing.\\\",\\n            to: new Twilio.Types.PhoneNumber(\\\"+15558675310\\\"),\\n            messagingServiceSid: \\\"MG9752274e9e519418a7406176694466fa\\\");\\n\\n        Console.WriteLine(message.Body);\\n    }\\n}\",\n            \"lang\": \"csharp\",\n            \"meta\": \"C#\",\n            \"code\": \"// Install the C# / .NET helper library from twilio.com/docs/csharp/install\\n\\nusing System;\\nusing Twilio;\\nusing Twilio.Rest.Api.V2010.Account;\\nusing System.Threading.Tasks;\\n\\nclass Program {\\n    public static async Task Main(string[] args) {\\n        // Find your Account SID and Auth Token at twilio.com/console\\n        // and set the environment variables. See http://twil.io/secure\\n        string accountSid = Environment.GetEnvironmentVariable(\\\"TWILIO_ACCOUNT_SID\\\");\\n        string authToken = Environment.GetEnvironmentVariable(\\\"TWILIO_AUTH_TOKEN\\\");\\n\\n        TwilioClient.Init(accountSid, authToken);\\n\\n        var message = await MessageResource.CreateAsync(\\n            body: \\\"McAvoy or Stewart? These timelines can get so confusing.\\\",\\n            to: new Twilio.Types.PhoneNumber(\\\"+15558675310\\\"),\\n            messagingServiceSid: \\\"MG9752274e9e519418a7406176694466fa\\\");\\n\\n        Console.WriteLine(message.Body);\\n    }\\n}\",\n            \"tokens\": [[\"// Install the C# / .NET helper library from twilio.com/docs/csharp/install\", \"#8B949E\"], \"\\n\\n\", [\"using\", \"#FF7B72\"], \" \", [\"System\", \"#FFA657\"], [\";\", \"#C9D1D9\"], \"\\n\", [\"using\", \"#FF7B72\"], \" \", [\"Twilio\", \"#FFA657\"], [\";\", \"#C9D1D9\"], \"\\n\", [\"using\", \"#FF7B72\"], \" \", [\"Twilio\", \"#FFA657\"], [\".\", \"#C9D1D9\"], [\"Rest\", \"#FFA657\"], [\".\", \"#C9D1D9\"], [\"Api\", \"#FFA657\"], [\".\", \"#C9D1D9\"], [\"V2010\", \"#FFA657\"], [\".\", \"#C9D1D9\"], [\"Account\", \"#FFA657\"], [\";\", \"#C9D1D9\"], \"\\n\", [\"using\", \"#FF7B72\"], \" \", [\"System\", \"#FFA657\"], [\".\", \"#C9D1D9\"], [\"Threading\", \"#FFA657\"], [\".\", \"#C9D1D9\"], [\"Tasks\", \"#FFA657\"], [\";\", \"#C9D1D9\"], \"\\n\\n\", [\"class\", \"#FF7B72\"], \" \", [\"Program\", \"#FFA657\"], \" \", [\"{\", \"#C9D1D9\"], \"\\n    \", [\"public static async\", \"#FF7B72\"], \" \", [\"Task\", \"#FFA657\"], \" \", [\"Main\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"string\", \"#FF7B72\"], [\"[]\", \"#C9D1D9\"], \" \", [\"args\", \"#FFA657\"], [\") {\", \"#C9D1D9\"], \"\\n        \", [\"// Find your Account SID and Auth Token at twilio.com/console\", \"#8B949E\"], \"\\n        \", [\"// and set the environment variables. See http://twil.io/secure\", \"#8B949E\"], \"\\n        \", [\"string\", \"#FF7B72\"], \" \", [\"accountSid\", \"#FFA657\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"Environment.\", \"#C9D1D9\"], [\"GetEnvironmentVariable\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"\\\"TWILIO_ACCOUNT_SID\\\"\", \"#A5D6FF\"], [\");\", \"#C9D1D9\"], \"\\n        \", [\"string\", \"#FF7B72\"], \" \", [\"authToken\", \"#FFA657\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"Environment.\", \"#C9D1D9\"], [\"GetEnvironmentVariable\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"\\\"TWILIO_AUTH_TOKEN\\\"\", \"#A5D6FF\"], [\");\", \"#C9D1D9\"], \"\\n\\n        \", [\"TwilioClient.\", \"#C9D1D9\"], [\"Init\", \"#D2A8FF\"], [\"(accountSid, authToken);\", \"#C9D1D9\"], \"\\n\\n        \", [\"var\", \"#FF7B72\"], \" \", [\"message\", \"#FFA657\"], \" \", [\"= await\", \"#FF7B72\"], \" \", [\"MessageResource.\", \"#C9D1D9\"], [\"CreateAsync\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], \"\\n            \", [\"body\", \"#FFA657\"], [\":\", \"#C9D1D9\"], \" \", [\"\\\"McAvoy or Stewart? These timelines can get so confusing.\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n            \", [\"to\", \"#FFA657\"], [\":\", \"#C9D1D9\"], \" \", [\"new\", \"#FF7B72\"], \" \", [\"Twilio\", \"#FFA657\"], [\".\", \"#C9D1D9\"], [\"Types\", \"#FFA657\"], [\".\", \"#C9D1D9\"], [\"PhoneNumber\", \"#FFA657\"], [\"(\", \"#C9D1D9\"], [\"\\\"+15558675310\\\"\", \"#A5D6FF\"], [\"),\", \"#C9D1D9\"], \"\\n            \", [\"messagingServiceSid\", \"#FFA657\"], [\":\", \"#C9D1D9\"], \" \", [\"\\\"MG9752274e9e519418a7406176694466fa\\\"\", \"#A5D6FF\"], [\");\", \"#C9D1D9\"], \"\\n\\n        \", [\"Console.\", \"#C9D1D9\"], [\"WriteLine\", \"#D2A8FF\"], [\"(message.Body);\", \"#C9D1D9\"], \"\\n    \", [\"}\", \"#C9D1D9\"], \"\\n\", [\"}\", \"#C9D1D9\"]],\n            \"annotations\": [],\n            \"themeName\": \"github-dark\",\n            \"style\": {\n              \"color\": \"#c9d1d9\",\n              \"background\": \"#0d1117\",\n              \"colorScheme\": \"dark\"\n            }\n          }, {\n            \"value\": \"// Install the Java helper library from twilio.com/docs/java/install\\n\\nimport com.twilio.type.PhoneNumber;\\nimport com.twilio.Twilio;\\nimport com.twilio.rest.api.v2010.account.Message;\\n\\npublic class Example {\\n    // Find your Account SID and Auth Token at twilio.com/console\\n    // and set the environment variables. See http://twil.io/secure\\n    public static final String ACCOUNT_SID = System.getenv(\\\"TWILIO_ACCOUNT_SID\\\");\\n    public static final String AUTH_TOKEN = System.getenv(\\\"TWILIO_AUTH_TOKEN\\\");\\n\\n    public static void main(String[] args) {\\n        Twilio.init(ACCOUNT_SID, AUTH_TOKEN);\\n        Message message = Message\\n                              .creator(new com.twilio.type.PhoneNumber(\\\"+15558675310\\\"),\\n                                  \\\"MG9752274e9e519418a7406176694466fa\\\",\\n                                  \\\"McAvoy or Stewart? These timelines can get so confusing.\\\")\\n                              .create();\\n\\n        System.out.println(message.getBody());\\n    }\\n}\",\n            \"lang\": \"java\",\n            \"meta\": \"Java\",\n            \"code\": \"// Install the Java helper library from twilio.com/docs/java/install\\n\\nimport com.twilio.type.PhoneNumber;\\nimport com.twilio.Twilio;\\nimport com.twilio.rest.api.v2010.account.Message;\\n\\npublic class Example {\\n    // Find your Account SID and Auth Token at twilio.com/console\\n    // and set the environment variables. See http://twil.io/secure\\n    public static final String ACCOUNT_SID = System.getenv(\\\"TWILIO_ACCOUNT_SID\\\");\\n    public static final String AUTH_TOKEN = System.getenv(\\\"TWILIO_AUTH_TOKEN\\\");\\n\\n    public static void main(String[] args) {\\n        Twilio.init(ACCOUNT_SID, AUTH_TOKEN);\\n        Message message = Message\\n                              .creator(new com.twilio.type.PhoneNumber(\\\"+15558675310\\\"),\\n                                  \\\"MG9752274e9e519418a7406176694466fa\\\",\\n                                  \\\"McAvoy or Stewart? These timelines can get so confusing.\\\")\\n                              .create();\\n\\n        System.out.println(message.getBody());\\n    }\\n}\",\n            \"tokens\": [[\"// Install the Java helper library from twilio.com/docs/java/install\", \"#8B949E\"], \"\\n\\n\", [\"import\", \"#FF7B72\"], \" \", [\"com.twilio.type.PhoneNumber;\", \"#C9D1D9\"], \"\\n\", [\"import\", \"#FF7B72\"], \" \", [\"com.twilio.Twilio;\", \"#C9D1D9\"], \"\\n\", [\"import\", \"#FF7B72\"], \" \", [\"com.twilio.rest.api.v2010.account.Message;\", \"#C9D1D9\"], \"\\n\\n\", [\"public class\", \"#FF7B72\"], \" \", [\"Example\", \"#FFA657\"], \" \", [\"{\", \"#C9D1D9\"], \"\\n    \", [\"// Find your Account SID and Auth Token at twilio.com/console\", \"#8B949E\"], \"\\n    \", [\"// and set the environment variables. See http://twil.io/secure\", \"#8B949E\"], \"\\n    \", [\"public static final\", \"#FF7B72\"], \" \", [\"String ACCOUNT_SID\", \"#C9D1D9\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"System.\", \"#C9D1D9\"], [\"getenv\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"\\\"TWILIO_ACCOUNT_SID\\\"\", \"#A5D6FF\"], [\");\", \"#C9D1D9\"], \"\\n    \", [\"public static final\", \"#FF7B72\"], \" \", [\"String AUTH_TOKEN\", \"#C9D1D9\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"System.\", \"#C9D1D9\"], [\"getenv\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"\\\"TWILIO_AUTH_TOKEN\\\"\", \"#A5D6FF\"], [\");\", \"#C9D1D9\"], \"\\n\\n    \", [\"public static void\", \"#FF7B72\"], \" \", [\"main\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"String\", \"#FF7B72\"], [\"[]\", \"#C9D1D9\"], \" \", [\"args\", \"#FFA657\"], [\") {\", \"#C9D1D9\"], \"\\n        \", [\"Twilio.\", \"#C9D1D9\"], [\"init\", \"#D2A8FF\"], [\"(ACCOUNT_SID, AUTH_TOKEN);\", \"#C9D1D9\"], \"\\n        \", [\"Message message\", \"#C9D1D9\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"Message\", \"#C9D1D9\"], \"\\n                              \", [\".\", \"#C9D1D9\"], [\"creator\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"new\", \"#FF7B72\"], \" \", [\"com.twilio.type.\", \"#C9D1D9\"], [\"PhoneNumber\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"\\\"+15558675310\\\"\", \"#A5D6FF\"], [\"),\", \"#C9D1D9\"], \"\\n                                  \", [\"\\\"MG9752274e9e519418a7406176694466fa\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n                                  \", [\"\\\"McAvoy or Stewart? These timelines can get so confusing.\\\"\", \"#A5D6FF\"], [\")\", \"#C9D1D9\"], \"\\n                              \", [\".\", \"#C9D1D9\"], [\"create\", \"#D2A8FF\"], [\"();\", \"#C9D1D9\"], \"\\n\\n        \", [\"System.out.\", \"#C9D1D9\"], [\"println\", \"#D2A8FF\"], [\"(message.\", \"#C9D1D9\"], [\"getBody\", \"#D2A8FF\"], [\"());\", \"#C9D1D9\"], \"\\n    \", [\"}\", \"#C9D1D9\"], \"\\n\", [\"}\", \"#C9D1D9\"]],\n            \"annotations\": [],\n            \"themeName\": \"github-dark\",\n            \"style\": {\n              \"color\": \"#c9d1d9\",\n              \"background\": \"#0d1117\",\n              \"colorScheme\": \"dark\"\n            }\n          }, {\n            \"value\": \"// Download the helper library from https://www.twilio.com/docs/go/install\\npackage main\\n\\nimport (\\n\\t\\\"fmt\\\"\\n\\t\\\"github.com/twilio/twilio-go\\\"\\n\\tapi \\\"github.com/twilio/twilio-go/rest/api/v2010\\\"\\n\\t\\\"os\\\"\\n)\\n\\nfunc main() {\\n\\t// Find your Account SID and Auth Token at twilio.com/console\\n\\t// and set the environment variables. See http://twil.io/secure\\n\\t// Make sure TWILIO_ACCOUNT_SID and TWILIO_AUTH_TOKEN exists in your environment\\n\\tclient := twilio.NewRestClient()\\n\\n\\tparams := \u0026api.CreateMessageParams{}\\n\\tparams.SetBody(\\\"McAvoy or Stewart? These timelines can get so confusing.\\\")\\n\\tparams.SetTo(\\\"+15558675310\\\")\\n\\tparams.SetMessagingServiceSid(\\\"MG9752274e9e519418a7406176694466fa\\\")\\n\\n\\tresp, err := client.Api.CreateMessage(params)\\n\\tif err != nil {\\n\\t\\tfmt.Println(err.Error())\\n\\t\\tos.Exit(1)\\n\\t} else {\\n\\t\\tif resp.Body != nil {\\n\\t\\t\\tfmt.Println(*resp.Body)\\n\\t\\t} else {\\n\\t\\t\\tfmt.Println(resp.Body)\\n\\t\\t}\\n\\t}\\n}\",\n            \"lang\": \"go\",\n            \"meta\": \"Go\",\n            \"code\": \"// Download the helper library from https://www.twilio.com/docs/go/install\\npackage main\\n\\nimport (\\n\\t\\\"fmt\\\"\\n\\t\\\"github.com/twilio/twilio-go\\\"\\n\\tapi \\\"github.com/twilio/twilio-go/rest/api/v2010\\\"\\n\\t\\\"os\\\"\\n)\\n\\nfunc main() {\\n\\t// Find your Account SID and Auth Token at twilio.com/console\\n\\t// and set the environment variables. See http://twil.io/secure\\n\\t// Make sure TWILIO_ACCOUNT_SID and TWILIO_AUTH_TOKEN exists in your environment\\n\\tclient := twilio.NewRestClient()\\n\\n\\tparams := \u0026api.CreateMessageParams{}\\n\\tparams.SetBody(\\\"McAvoy or Stewart? These timelines can get so confusing.\\\")\\n\\tparams.SetTo(\\\"+15558675310\\\")\\n\\tparams.SetMessagingServiceSid(\\\"MG9752274e9e519418a7406176694466fa\\\")\\n\\n\\tresp, err := client.Api.CreateMessage(params)\\n\\tif err != nil {\\n\\t\\tfmt.Println(err.Error())\\n\\t\\tos.Exit(1)\\n\\t} else {\\n\\t\\tif resp.Body != nil {\\n\\t\\t\\tfmt.Println(*resp.Body)\\n\\t\\t} else {\\n\\t\\t\\tfmt.Println(resp.Body)\\n\\t\\t}\\n\\t}\\n}\",\n            \"tokens\": [[\"// Download the helper library from https://www.twilio.com/docs/go/install\", \"#8B949E\"], \"\\n\", [\"package\", \"#FF7B72\"], \" \", [\"main\", \"#FFA657\"], \"\\n\\n\", [\"import\", \"#FF7B72\"], \" \", [\"(\", \"#C9D1D9\"], \"\\n\\t\", [\"\\\"\", \"#A5D6FF\"], [\"fmt\", \"#FFA657\"], [\"\\\"\", \"#A5D6FF\"], \"\\n\\t\", [\"\\\"\", \"#A5D6FF\"], [\"github.com/twilio/twilio-go\", \"#FFA657\"], [\"\\\"\", \"#A5D6FF\"], \"\\n\\t\", [\"api\", \"#C9D1D9\"], \" \", [\"\\\"\", \"#A5D6FF\"], [\"github.com/twilio/twilio-go/rest/api/v2010\", \"#FFA657\"], [\"\\\"\", \"#A5D6FF\"], \"\\n\\t\", [\"\\\"\", \"#A5D6FF\"], [\"os\", \"#FFA657\"], [\"\\\"\", \"#A5D6FF\"], \"\\n\", [\")\", \"#C9D1D9\"], \"\\n\\n\", [\"func\", \"#FF7B72\"], \" \", [\"main\", \"#D2A8FF\"], [\"() {\", \"#C9D1D9\"], \"\\n\\t\", [\"// Find your Account SID and Auth Token at twilio.com/console\", \"#8B949E\"], \"\\n\\t\", [\"// and set the environment variables. See http://twil.io/secure\", \"#8B949E\"], \"\\n\\t\", [\"// Make sure TWILIO_ACCOUNT_SID and TWILIO_AUTH_TOKEN exists in your environment\", \"#8B949E\"], \"\\n\\t\", [\"client\", \"#C9D1D9\"], \" \", [\":=\", \"#FF7B72\"], \" \", [\"twilio.\", \"#C9D1D9\"], [\"NewRestClient\", \"#D2A8FF\"], [\"()\", \"#C9D1D9\"], \"\\n\\n\\t\", [\"params\", \"#C9D1D9\"], \" \", [\":= \u0026\", \"#FF7B72\"], [\"api\", \"#FFA657\"], [\".\", \"#C9D1D9\"], [\"CreateMessageParams\", \"#FFA657\"], [\"{}\", \"#C9D1D9\"], \"\\n\\t\", [\"params.\", \"#C9D1D9\"], [\"SetBody\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"\\\"McAvoy or Stewart? These timelines can get so confusing.\\\"\", \"#A5D6FF\"], [\")\", \"#C9D1D9\"], \"\\n\\t\", [\"params.\", \"#C9D1D9\"], [\"SetTo\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"\\\"+15558675310\\\"\", \"#A5D6FF\"], [\")\", \"#C9D1D9\"], \"\\n\\t\", [\"params.\", \"#C9D1D9\"], [\"SetMessagingServiceSid\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"\\\"MG9752274e9e519418a7406176694466fa\\\"\", \"#A5D6FF\"], [\")\", \"#C9D1D9\"], \"\\n\\n\\t\", [\"resp, err\", \"#C9D1D9\"], \" \", [\":=\", \"#FF7B72\"], \" \", [\"client.Api.\", \"#C9D1D9\"], [\"CreateMessage\", \"#D2A8FF\"], [\"(params)\", \"#C9D1D9\"], \"\\n\\t\", [\"if\", \"#FF7B72\"], \" \", [\"err\", \"#C9D1D9\"], \" \", [\"!=\", \"#FF7B72\"], \" \", [\"nil\", \"#79C0FF\"], \" \", [\"{\", \"#C9D1D9\"], \"\\n\\t\\t\", [\"fmt.\", \"#C9D1D9\"], [\"Println\", \"#D2A8FF\"], [\"(err.\", \"#C9D1D9\"], [\"Error\", \"#D2A8FF\"], [\"())\", \"#C9D1D9\"], \"\\n\\t\\t\", [\"os.\", \"#C9D1D9\"], [\"Exit\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"1\", \"#79C0FF\"], [\")\", \"#C9D1D9\"], \"\\n\\t\", [\"}\", \"#C9D1D9\"], \" \", [\"else\", \"#FF7B72\"], \" \", [\"{\", \"#C9D1D9\"], \"\\n\\t\\t\", [\"if\", \"#FF7B72\"], \" \", [\"resp.Body\", \"#C9D1D9\"], \" \", [\"!=\", \"#FF7B72\"], \" \", [\"nil\", \"#79C0FF\"], \" \", [\"{\", \"#C9D1D9\"], \"\\n\\t\\t\\t\", [\"fmt.\", \"#C9D1D9\"], [\"Println\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"*\", \"#FF7B72\"], [\"resp.Body)\", \"#C9D1D9\"], \"\\n\\t\\t\", [\"}\", \"#C9D1D9\"], \" \", [\"else\", \"#FF7B72\"], \" \", [\"{\", \"#C9D1D9\"], \"\\n\\t\\t\\t\", [\"fmt.\", \"#C9D1D9\"], [\"Println\", \"#D2A8FF\"], [\"(resp.Body)\", \"#C9D1D9\"], \"\\n\\t\\t\", [\"}\", \"#C9D1D9\"], \"\\n\\t\", [\"}\", \"#C9D1D9\"], \"\\n\", [\"}\", \"#C9D1D9\"]],\n            \"annotations\": [],\n            \"themeName\": \"github-dark\",\n            \"style\": {\n              \"color\": \"#c9d1d9\",\n              \"background\": \"#0d1117\",\n              \"colorScheme\": \"dark\"\n            }\n          }, {\n            \"value\": \"\u003c?php\\n\\n// Update the path below to your autoload.php,\\n// see https://getcomposer.org/doc/01-basic-usage.md\\nrequire_once \\\"/path/to/vendor/autoload.php\\\";\\n\\nuse Twilio\\\\Rest\\\\Client;\\n\\n// Find your Account SID and Auth Token at twilio.com/console\\n// and set the environment variables. See http://twil.io/secure\\n$sid = $_ENV[\\\"TWILIO_ACCOUNT_SID\\\"];\\n$token = $_ENV[\\\"TWILIO_AUTH_TOKEN\\\"];\\n$twilio = new Client($sid, $token);\\n\\n$message = $twilio-\u003emessages-\u003ecreate(\\n    \\\"+15558675310\\\", // To\\n    [\\n        \\\"body\\\" =\u003e \\\"McAvoy or Stewart? These timelines can get so confusing.\\\",\\n        \\\"messagingServiceSid\\\" =\u003e \\\"MG9752274e9e519418a7406176694466fa\\\",\\n    ],\\n);\\n\\nprint $message-\u003ebody;\",\n            \"lang\": \"php\",\n            \"meta\": \"PHP\",\n            \"code\": \"\u003c?php\\n\\n// Update the path below to your autoload.php,\\n// see https://getcomposer.org/doc/01-basic-usage.md\\nrequire_once \\\"/path/to/vendor/autoload.php\\\";\\n\\nuse Twilio\\\\Rest\\\\Client;\\n\\n// Find your Account SID and Auth Token at twilio.com/console\\n// and set the environment variables. See http://twil.io/secure\\n$sid = $_ENV[\\\"TWILIO_ACCOUNT_SID\\\"];\\n$token = $_ENV[\\\"TWILIO_AUTH_TOKEN\\\"];\\n$twilio = new Client($sid, $token);\\n\\n$message = $twilio-\u003emessages-\u003ecreate(\\n    \\\"+15558675310\\\", // To\\n    [\\n        \\\"body\\\" =\u003e \\\"McAvoy or Stewart? These timelines can get so confusing.\\\",\\n        \\\"messagingServiceSid\\\" =\u003e \\\"MG9752274e9e519418a7406176694466fa\\\",\\n    ],\\n);\\n\\nprint $message-\u003ebody;\",\n            \"tokens\": [[\"\u003c?\", \"#FF7B72\"], [\"php\", \"#79C0FF\"], \"\\n\\n\", [\"// Update the path below to your autoload.php,\", \"#8B949E\"], \"\\n\", [\"// see https://getcomposer.org/doc/01-basic-usage.md\", \"#8B949E\"], \"\\n\", [\"require_once\", \"#FF7B72\"], \" \", [\"\\\"/path/to/vendor/autoload.php\\\"\", \"#A5D6FF\"], [\";\", \"#C9D1D9\"], \"\\n\\n\", [\"use\", \"#FF7B72\"], \" \", [\"Twilio\\\\Rest\\\\Client\", \"#79C0FF\"], [\";\", \"#C9D1D9\"], \"\\n\\n\", [\"// Find your Account SID and Auth Token at twilio.com/console\", \"#8B949E\"], \"\\n\", [\"// and set the environment variables. See http://twil.io/secure\", \"#8B949E\"], \"\\n\", [\"$sid\", \"#C9D1D9\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"$_ENV[\", \"#C9D1D9\"], [\"\\\"TWILIO_ACCOUNT_SID\\\"\", \"#A5D6FF\"], [\"];\", \"#C9D1D9\"], \"\\n\", [\"$token\", \"#C9D1D9\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"$_ENV[\", \"#C9D1D9\"], [\"\\\"TWILIO_AUTH_TOKEN\\\"\", \"#A5D6FF\"], [\"];\", \"#C9D1D9\"], \"\\n\", [\"$twilio\", \"#C9D1D9\"], \" \", [\"= new\", \"#FF7B72\"], \" \", [\"Client\", \"#79C0FF\"], [\"($sid, $token);\", \"#C9D1D9\"], \"\\n\\n\", [\"$message\", \"#C9D1D9\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"$twilio\", \"#C9D1D9\"], [\"-\u003e\", \"#FF7B72\"], [\"messages\", \"#C9D1D9\"], [\"-\u003e\", \"#FF7B72\"], [\"create\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], \"\\n    \", [\"\\\"+15558675310\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \" \", [\"// To\", \"#8B949E\"], \"\\n    \", [\"[\", \"#C9D1D9\"], \"\\n        \", [\"\\\"body\\\"\", \"#A5D6FF\"], \" \", [\"=\u003e\", \"#FF7B72\"], \" \", [\"\\\"McAvoy or Stewart? These timelines can get so confusing.\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n        \", [\"\\\"messagingServiceSid\\\"\", \"#A5D6FF\"], \" \", [\"=\u003e\", \"#FF7B72\"], \" \", [\"\\\"MG9752274e9e519418a7406176694466fa\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n    \", [\"],\", \"#C9D1D9\"], \"\\n\", [\");\", \"#C9D1D9\"], \"\\n\\n\", [\"print\", \"#79C0FF\"], \" \", [\"$message\", \"#C9D1D9\"], [\"-\u003e\", \"#FF7B72\"], [\"body;\", \"#C9D1D9\"]],\n            \"annotations\": [],\n            \"themeName\": \"github-dark\",\n            \"style\": {\n              \"color\": \"#c9d1d9\",\n              \"background\": \"#0d1117\",\n              \"colorScheme\": \"dark\"\n            }\n          }, {\n            \"value\": \"# Download the helper library from https://www.twilio.com/docs/ruby/install\\nrequire 'twilio-ruby'\\n\\n# Find your Account SID and Auth Token at twilio.com/console\\n# and set the environment variables. See http://twil.io/secure\\naccount_sid = ENV['TWILIO_ACCOUNT_SID']\\nauth_token = ENV['TWILIO_AUTH_TOKEN']\\n@client = Twilio::REST::Client.new(account_sid, auth_token)\\n\\nmessage = @client\\n          .api\\n          .v2010\\n          .messages\\n          .create(\\n            body: 'McAvoy or Stewart? These timelines can get so confusing.',\\n            to: '+15558675310',\\n            messaging_service_sid: 'MG9752274e9e519418a7406176694466fa'\\n          )\\n\\nputs message.body\",\n            \"lang\": \"ruby\",\n            \"meta\": \"Ruby\",\n            \"code\": \"# Download the helper library from https://www.twilio.com/docs/ruby/install\\nrequire 'twilio-ruby'\\n\\n# Find your Account SID and Auth Token at twilio.com/console\\n# and set the environment variables. See http://twil.io/secure\\naccount_sid = ENV['TWILIO_ACCOUNT_SID']\\nauth_token = ENV['TWILIO_AUTH_TOKEN']\\n@client = Twilio::REST::Client.new(account_sid, auth_token)\\n\\nmessage = @client\\n          .api\\n          .v2010\\n          .messages\\n          .create(\\n            body: 'McAvoy or Stewart? These timelines can get so confusing.',\\n            to: '+15558675310',\\n            messaging_service_sid: 'MG9752274e9e519418a7406176694466fa'\\n          )\\n\\nputs message.body\",\n            \"tokens\": [[\"# Download the helper library from https://www.twilio.com/docs/ruby/install\", \"#8B949E\"], \"\\n\", [\"require\", \"#FF7B72\"], \" \", [\"'twilio-ruby'\", \"#A5D6FF\"], \"\\n\\n\", [\"# Find your Account SID and Auth Token at twilio.com/console\", \"#8B949E\"], \"\\n\", [\"# and set the environment variables. See http://twil.io/secure\", \"#8B949E\"], \"\\n\", [\"account_sid\", \"#C9D1D9\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"ENV\", \"#79C0FF\"], [\"[\", \"#C9D1D9\"], [\"'TWILIO_ACCOUNT_SID'\", \"#A5D6FF\"], [\"]\", \"#C9D1D9\"], \"\\n\", [\"auth_token\", \"#C9D1D9\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"ENV\", \"#79C0FF\"], [\"[\", \"#C9D1D9\"], [\"'TWILIO_AUTH_TOKEN'\", \"#A5D6FF\"], [\"]\", \"#C9D1D9\"], \"\\n\", [\"@client\", \"#C9D1D9\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"Twilio\", \"#79C0FF\"], [\"::\", \"#C9D1D9\"], [\"REST\", \"#79C0FF\"], [\"::\", \"#C9D1D9\"], [\"Client\", \"#79C0FF\"], [\".\", \"#C9D1D9\"], [\"new\", \"#FF7B72\"], [\"(account_sid, auth_token)\", \"#C9D1D9\"], \"\\n\\n\", [\"message\", \"#C9D1D9\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"@client\", \"#C9D1D9\"], \"\\n          \", [\".api\", \"#C9D1D9\"], \"\\n          \", [\".v2010\", \"#C9D1D9\"], \"\\n          \", [\".messages\", \"#C9D1D9\"], \"\\n          \", [\".create(\", \"#C9D1D9\"], \"\\n            \", [\"body:\", \"#79C0FF\"], \" \", [\"'McAvoy or Stewart? These timelines can get so confusing.'\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n            \", [\"to:\", \"#79C0FF\"], \" \", [\"'+15558675310'\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n            \", [\"messaging_service_sid:\", \"#79C0FF\"], \" \", [\"'MG9752274e9e519418a7406176694466fa'\", \"#A5D6FF\"], \"\\n          \", [\")\", \"#C9D1D9\"], \"\\n\\n\", [\"puts\", \"#79C0FF\"], \" \", [\"message.body\", \"#C9D1D9\"]],\n            \"annotations\": [],\n            \"themeName\": \"github-dark\",\n            \"style\": {\n              \"color\": \"#c9d1d9\",\n              \"background\": \"#0d1117\",\n              \"colorScheme\": \"dark\"\n            }\n          }, {\n            \"value\": \"# Install the twilio-cli from https://twil.io/cli\\n\\ntwilio api:core:messages:create \\\\\\n   --body \\\"McAvoy or Stewart? These timelines can get so confusing.\\\" \\\\\\n   --to +15558675310 \\\\\\n   --messaging-service-sid MG9752274e9e519418a7406176694466fa\",\n            \"lang\": \"shellscript\",\n            \"meta\": \"twilio-cli\",\n            \"code\": \"# Install the twilio-cli from https://twil.io/cli\\n\\ntwilio api:core:messages:create \\\\\\n   --body \\\"McAvoy or Stewart? These timelines can get so confusing.\\\" \\\\\\n   --to +15558675310 \\\\\\n   --messaging-service-sid MG9752274e9e519418a7406176694466fa\",\n            \"tokens\": [[\"# Install the twilio-cli from https://twil.io/cli\", \"#8B949E\"], \"\\n\\n\", [\"twilio\", \"#FFA657\"], \" \", [\"api:core:messages:create\", \"#A5D6FF\"], \" \", [\"\\\\\", \"#79C0FF\"], \"\\n   \", [\"--body\", \"#79C0FF\"], \" \", [\"\\\"McAvoy or Stewart? These timelines can get so confusing.\\\"\", \"#A5D6FF\"], \" \", [\"\\\\\", \"#79C0FF\"], \"\\n   \", [\"--to\", \"#79C0FF\"], \" \", [\"+15558675310\", \"#A5D6FF\"], \" \", [\"\\\\\", \"#79C0FF\"], \"\\n   \", [\"--messaging-service-sid\", \"#79C0FF\"], \" \", [\"MG9752274e9e519418a7406176694466fa\", \"#A5D6FF\"]],\n            \"annotations\": [],\n            \"themeName\": \"github-dark\",\n            \"style\": {\n              \"color\": \"#c9d1d9\",\n              \"background\": \"#0d1117\",\n              \"colorScheme\": \"dark\"\n            }\n          }, {\n            \"value\": \"curl -X POST \\\"https://api.twilio.com/2010-04-01/Accounts/$TWILIO_ACCOUNT_SID/Messages.json\\\" \\\\\\n--data-urlencode \\\"Body=McAvoy or Stewart? These timelines can get so confusing.\\\" \\\\\\n--data-urlencode \\\"To=+15558675310\\\" \\\\\\n--data-urlencode \\\"MessagingServiceSid=MG9752274e9e519418a7406176694466fa\\\" \\\\\\n-u $TWILIO_ACCOUNT_SID:$TWILIO_AUTH_TOKEN\",\n            \"lang\": \"shellscript\",\n            \"meta\": \"curl\",\n            \"code\": \"curl -X POST \\\"https://api.twilio.com/2010-04-01/Accounts/$TWILIO_ACCOUNT_SID/Messages.json\\\" \\\\\\n--data-urlencode \\\"Body=McAvoy or Stewart? These timelines can get so confusing.\\\" \\\\\\n--data-urlencode \\\"To=+15558675310\\\" \\\\\\n--data-urlencode \\\"MessagingServiceSid=MG9752274e9e519418a7406176694466fa\\\" \\\\\\n-u $TWILIO_ACCOUNT_SID:$TWILIO_AUTH_TOKEN\",\n            \"tokens\": [[\"curl\", \"#FFA657\"], \" \", [\"-X\", \"#79C0FF\"], \" \", [\"POST \\\"https://api.twilio.com/2010-04-01/Accounts/\", \"#A5D6FF\"], [\"$TWILIO_ACCOUNT_SID\", \"#C9D1D9\"], [\"/Messages.json\\\"\", \"#A5D6FF\"], \" \", [\"\\\\\", \"#79C0FF\"], \"\\n\", [\"--data-urlencode\", \"#C9D1D9\"], \" \", [\"\\\"Body=McAvoy or Stewart? These timelines can get so confusing.\\\"\", \"#A5D6FF\"], \" \", [\"\\\\\", \"#79C0FF\"], \"\\n\", [\"--data-urlencode\", \"#C9D1D9\"], \" \", [\"\\\"To=+15558675310\\\"\", \"#A5D6FF\"], \" \", [\"\\\\\", \"#79C0FF\"], \"\\n\", [\"--data-urlencode\", \"#C9D1D9\"], \" \", [\"\\\"MessagingServiceSid=MG9752274e9e519418a7406176694466fa\\\"\", \"#A5D6FF\"], \" \", [\"\\\\\", \"#79C0FF\"], \"\\n\", [\"-u $TWILIO_ACCOUNT_SID\", \"#C9D1D9\"], [\":\", \"#A5D6FF\"], [\"$TWILIO_AUTH_TOKEN\", \"#C9D1D9\"]],\n            \"annotations\": [],\n            \"themeName\": \"github-dark\",\n            \"style\": {\n              \"color\": \"#c9d1d9\",\n              \"background\": \"#0d1117\",\n              \"colorScheme\": \"dark\"\n            }\n          }],\n          \"output\": {\n            \"value\": \"{\\n  \\\"account_sid\\\": \\\"ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\\\",\\n  \\\"api_version\\\": \\\"2010-04-01\\\",\\n  \\\"body\\\": \\\"McAvoy or Stewart? These timelines can get so confusing.\\\",\\n  \\\"date_created\\\": \\\"Thu, 24 Aug 2023 05:01:45 +0000\\\",\\n  \\\"date_sent\\\": \\\"Thu, 24 Aug 2023 05:01:45 +0000\\\",\\n  \\\"date_updated\\\": \\\"Thu, 24 Aug 2023 05:01:45 +0000\\\",\\n  \\\"direction\\\": \\\"outbound-api\\\",\\n  \\\"error_code\\\": null,\\n  \\\"error_message\\\": null,\\n  \\\"from\\\": \\\"+14155552345\\\",\\n  \\\"num_media\\\": \\\"0\\\",\\n  \\\"num_segments\\\": \\\"1\\\",\\n  \\\"price\\\": null,\\n  \\\"price_unit\\\": null,\\n  \\\"messaging_service_sid\\\": \\\"MG9752274e9e519418a7406176694466fa\\\",\\n  \\\"sid\\\": \\\"SMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\\\",\\n  \\\"status\\\": \\\"queued\\\",\\n  \\\"subresource_uris\\\": {\\n    \\\"media\\\": \\\"/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Messages/SMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Media.json\\\"\\n  },\\n  \\\"to\\\": \\\"+15558675310\\\",\\n  \\\"uri\\\": \\\"/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Messages/SMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.json\\\"\\n}\",\n            \"lang\": \"json\",\n            \"meta\": \"\",\n            \"code\": \"{\\n  \\\"account_sid\\\": \\\"ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\\\",\\n  \\\"api_version\\\": \\\"2010-04-01\\\",\\n  \\\"body\\\": \\\"McAvoy or Stewart? These timelines can get so confusing.\\\",\\n  \\\"date_created\\\": \\\"Thu, 24 Aug 2023 05:01:45 +0000\\\",\\n  \\\"date_sent\\\": \\\"Thu, 24 Aug 2023 05:01:45 +0000\\\",\\n  \\\"date_updated\\\": \\\"Thu, 24 Aug 2023 05:01:45 +0000\\\",\\n  \\\"direction\\\": \\\"outbound-api\\\",\\n  \\\"error_code\\\": null,\\n  \\\"error_message\\\": null,\\n  \\\"from\\\": \\\"+14155552345\\\",\\n  \\\"num_media\\\": \\\"0\\\",\\n  \\\"num_segments\\\": \\\"1\\\",\\n  \\\"price\\\": null,\\n  \\\"price_unit\\\": null,\\n  \\\"messaging_service_sid\\\": \\\"MG9752274e9e519418a7406176694466fa\\\",\\n  \\\"sid\\\": \\\"SMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\\\",\\n  \\\"status\\\": \\\"queued\\\",\\n  \\\"subresource_uris\\\": {\\n    \\\"media\\\": \\\"/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Messages/SMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Media.json\\\"\\n  },\\n  \\\"to\\\": \\\"+15558675310\\\",\\n  \\\"uri\\\": \\\"/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Messages/SMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.json\\\"\\n}\",\n            \"tokens\": [[\"{\", \"#C9D1D9\"], \"\\n  \", [\"\\\"account_sid\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"\\\"ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n  \", [\"\\\"api_version\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"\\\"2010-04-01\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n  \", [\"\\\"body\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"\\\"McAvoy or Stewart? These timelines can get so confusing.\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n  \", [\"\\\"date_created\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"\\\"Thu, 24 Aug 2023 05:01:45 +0000\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n  \", [\"\\\"date_sent\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"\\\"Thu, 24 Aug 2023 05:01:45 +0000\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n  \", [\"\\\"date_updated\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"\\\"Thu, 24 Aug 2023 05:01:45 +0000\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n  \", [\"\\\"direction\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"\\\"outbound-api\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n  \", [\"\\\"error_code\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"null\", \"#79C0FF\"], [\",\", \"#C9D1D9\"], \"\\n  \", [\"\\\"error_message\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"null\", \"#79C0FF\"], [\",\", \"#C9D1D9\"], \"\\n  \", [\"\\\"from\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"\\\"+14155552345\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n  \", [\"\\\"num_media\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"\\\"0\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n  \", [\"\\\"num_segments\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"\\\"1\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n  \", [\"\\\"price\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"null\", \"#79C0FF\"], [\",\", \"#C9D1D9\"], \"\\n  \", [\"\\\"price_unit\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"null\", \"#79C0FF\"], [\",\", \"#C9D1D9\"], \"\\n  \", [\"\\\"messaging_service_sid\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"\\\"MG9752274e9e519418a7406176694466fa\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n  \", [\"\\\"sid\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"\\\"SMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n  \", [\"\\\"status\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"\\\"queued\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n  \", [\"\\\"subresource_uris\\\"\", \"#7EE787\"], [\": {\", \"#C9D1D9\"], \"\\n    \", [\"\\\"media\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"\\\"/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Messages/SMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Media.json\\\"\", \"#A5D6FF\"], \"\\n  \", [\"},\", \"#C9D1D9\"], \"\\n  \", [\"\\\"to\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"\\\"+15558675310\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n  \", [\"\\\"uri\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"\\\"/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Messages/SMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.json\\\"\", \"#A5D6FF\"], \"\\n\", [\"}\", \"#C9D1D9\"]],\n            \"annotations\": [],\n            \"themeName\": \"github-dark\",\n            \"style\": {\n              \"color\": \"#c9d1d9\",\n              \"background\": \"#0d1117\",\n              \"colorScheme\": \"dark\"\n            }\n          }\n        })\n      })]\n    }), \"\\n\", _jsxs(_components.section, {\n      id: \"option-2---use-message-specific-status-callback-url-section\",\n      children: [_jsx(_components.h4, {\n        id: \"option-2---use-message-specific-status-callback-url\",\n        children: \"Option 2 - Use Message-specific status callback URL\"\n      }), _jsx(Info, {\n        children: _jsxs(_components.p, {\n          children: [\"If your Messaging Service has a service-level Delivery Status Callback configured in the Console and you provide a message-specific \", _jsx(_components.code, {\n            children: \"StatusCallback\"\n          }), \" URL, Twilio sends status callback requests to the message-specific \", _jsx(_components.code, {\n            children: \"StatusCallback\"\n          }), \" URL.\"]\n        })\n      }), _jsx(_components.p, {\n        children: \"To get the following code sample to run, replace these values:\"\n      }), _jsxs(_components.ol, {\n        children: [\"\\n\", _jsxs(_components.li, {\n          children: [\"Replace the \", _jsx(_components.code, {\n            children: \"MessagingServiceSid\"\n          }), \" with the SID of one of your Messaging Services\"]\n        }), \"\\n\", _jsxs(_components.li, {\n          children: [\"Replace the \", _jsx(_components.code, {\n            children: \"To\"\n          }), \" number with your mobile number\"]\n        }), \"\\n\", _jsxs(_components.li, {\n          children: [\"Replace the \", _jsx(_components.code, {\n            children: \"StatusCallback\"\n          }), \" URL with your status callback URL\"]\n        }), \"\\n\"]\n      }), _jsx(_Fragment, {\n        children: _jsx(CodeBlockGroup, {\n          \"children\": _jsx(_Fragment, {}),\n          \"title\": \"Send a Message using Messaging Service and StatusCallback URL\",\n          \"_data\": {\n            \"header\": \"\"\n          },\n          \"groupType\": \"dynamic\",\n          \"slug\": \"code-send-a-message-using-messaging-service-and-statuscallback-url\",\n          \"blocks\": [{\n            \"value\": \"// Download the helper library from https://www.twilio.com/docs/node/install\\nconst twilio = require(\\\"twilio\\\"); // Or, for ESM: import twilio from \\\"twilio\\\";\\n\\n// Find your Account SID and Auth Token at twilio.com/console\\n// and set the environment variables. See http://twil.io/secure\\nconst accountSid = process.env.TWILIO_ACCOUNT_SID;\\nconst authToken = process.env.TWILIO_AUTH_TOKEN;\\nconst client = twilio(accountSid, authToken);\\n\\nasync function createMessage() {\\n  const message = await client.messages.create({\\n    body: \\\"McAvoy or Stewart? These timelines can get so confusing.\\\",\\n    messagingServiceSid: \\\"MG9752274e9e519418a7406176694466fa\\\",\\n    statusCallback: \\\"http://example.com/MessageStatus\\\",\\n    to: \\\"+15558675310\\\",\\n  });\\n\\n  console.log(message.body);\\n}\\n\\ncreateMessage();\",\n            \"lang\": \"javascript\",\n            \"meta\": \"Node.js\",\n            \"code\": \"// Download the helper library from https://www.twilio.com/docs/node/install\\nconst twilio = require(\\\"twilio\\\"); // Or, for ESM: import twilio from \\\"twilio\\\";\\n\\n// Find your Account SID and Auth Token at twilio.com/console\\n// and set the environment variables. See http://twil.io/secure\\nconst accountSid = process.env.TWILIO_ACCOUNT_SID;\\nconst authToken = process.env.TWILIO_AUTH_TOKEN;\\nconst client = twilio(accountSid, authToken);\\n\\nasync function createMessage() {\\n  const message = await client.messages.create({\\n    body: \\\"McAvoy or Stewart? These timelines can get so confusing.\\\",\\n    messagingServiceSid: \\\"MG9752274e9e519418a7406176694466fa\\\",\\n    statusCallback: \\\"http://example.com/MessageStatus\\\",\\n    to: \\\"+15558675310\\\",\\n  });\\n\\n  console.log(message.body);\\n}\\n\\ncreateMessage();\",\n            \"tokens\": [[\"// Download the helper library from https://www.twilio.com/docs/node/install\", \"#8B949E\"], \"\\n\", [\"const\", \"#FF7B72\"], \" \", [\"twilio\", \"#79C0FF\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"require\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"\\\"twilio\\\"\", \"#A5D6FF\"], [\");\", \"#C9D1D9\"], \" \", [\"// Or, for ESM: import twilio from \\\"twilio\\\";\", \"#8B949E\"], \"\\n\\n\", [\"// Find your Account SID and Auth Token at twilio.com/console\", \"#8B949E\"], \"\\n\", [\"// and set the environment variables. See http://twil.io/secure\", \"#8B949E\"], \"\\n\", [\"const\", \"#FF7B72\"], \" \", [\"accountSid\", \"#79C0FF\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"process.env.\", \"#C9D1D9\"], [\"TWILIO_ACCOUNT_SID\", \"#79C0FF\"], [\";\", \"#C9D1D9\"], \"\\n\", [\"const\", \"#FF7B72\"], \" \", [\"authToken\", \"#79C0FF\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"process.env.\", \"#C9D1D9\"], [\"TWILIO_AUTH_TOKEN\", \"#79C0FF\"], [\";\", \"#C9D1D9\"], \"\\n\", [\"const\", \"#FF7B72\"], \" \", [\"client\", \"#79C0FF\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"twilio\", \"#D2A8FF\"], [\"(accountSid, authToken);\", \"#C9D1D9\"], \"\\n\\n\", [\"async function\", \"#FF7B72\"], \" \", [\"createMessage\", \"#D2A8FF\"], [\"() {\", \"#C9D1D9\"], \"\\n  \", [\"const\", \"#FF7B72\"], \" \", [\"message\", \"#79C0FF\"], \" \", [\"= await\", \"#FF7B72\"], \" \", [\"client.messages.\", \"#C9D1D9\"], [\"create\", \"#D2A8FF\"], [\"({\", \"#C9D1D9\"], \"\\n    \", [\"body:\", \"#C9D1D9\"], \" \", [\"\\\"McAvoy or Stewart? These timelines can get so confusing.\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n    \", [\"messagingServiceSid:\", \"#C9D1D9\"], \" \", [\"\\\"MG9752274e9e519418a7406176694466fa\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n    \", [\"statusCallback:\", \"#C9D1D9\"], \" \", [\"\\\"http://example.com/MessageStatus\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n    \", [\"to:\", \"#C9D1D9\"], \" \", [\"\\\"+15558675310\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n  \", [\"});\", \"#C9D1D9\"], \"\\n\\n  \", [\"console.\", \"#C9D1D9\"], [\"log\", \"#D2A8FF\"], [\"(message.body);\", \"#C9D1D9\"], \"\\n\", [\"}\", \"#C9D1D9\"], \"\\n\\n\", [\"createMessage\", \"#D2A8FF\"], [\"();\", \"#C9D1D9\"]],\n            \"annotations\": [],\n            \"themeName\": \"github-dark\",\n            \"style\": {\n              \"color\": \"#c9d1d9\",\n              \"background\": \"#0d1117\",\n              \"colorScheme\": \"dark\"\n            }\n          }, {\n            \"value\": \"# Download the helper library from https://www.twilio.com/docs/python/install\\nimport os\\nfrom twilio.rest import Client\\n\\n# Find your Account SID and Auth Token at twilio.com/console\\n# and set the environment variables. See http://twil.io/secure\\naccount_sid = os.environ[\\\"TWILIO_ACCOUNT_SID\\\"]\\nauth_token = os.environ[\\\"TWILIO_AUTH_TOKEN\\\"]\\nclient = Client(account_sid, auth_token)\\n\\nmessage = client.messages.create(\\n    body=\\\"McAvoy or Stewart? These timelines can get so confusing.\\\",\\n    to=\\\"+15558675310\\\",\\n    messaging_service_sid=\\\"MG9752274e9e519418a7406176694466fa\\\",\\n    status_callback=\\\"http://example.com/MessageStatus\\\",\\n)\\n\\nprint(message.body)\",\n            \"lang\": \"python\",\n            \"meta\": \"Python\",\n            \"code\": \"# Download the helper library from https://www.twilio.com/docs/python/install\\nimport os\\nfrom twilio.rest import Client\\n\\n# Find your Account SID and Auth Token at twilio.com/console\\n# and set the environment variables. See http://twil.io/secure\\naccount_sid = os.environ[\\\"TWILIO_ACCOUNT_SID\\\"]\\nauth_token = os.environ[\\\"TWILIO_AUTH_TOKEN\\\"]\\nclient = Client(account_sid, auth_token)\\n\\nmessage = client.messages.create(\\n    body=\\\"McAvoy or Stewart? These timelines can get so confusing.\\\",\\n    to=\\\"+15558675310\\\",\\n    messaging_service_sid=\\\"MG9752274e9e519418a7406176694466fa\\\",\\n    status_callback=\\\"http://example.com/MessageStatus\\\",\\n)\\n\\nprint(message.body)\",\n            \"tokens\": [[\"# Download the helper library from https://www.twilio.com/docs/python/install\", \"#8B949E\"], \"\\n\", [\"import\", \"#FF7B72\"], \" \", [\"os\", \"#C9D1D9\"], \"\\n\", [\"from\", \"#FF7B72\"], \" \", [\"twilio.rest\", \"#C9D1D9\"], \" \", [\"import\", \"#FF7B72\"], \" \", [\"Client\", \"#C9D1D9\"], \"\\n\\n\", [\"# Find your Account SID and Auth Token at twilio.com/console\", \"#8B949E\"], \"\\n\", [\"# and set the environment variables. See http://twil.io/secure\", \"#8B949E\"], \"\\n\", [\"account_sid\", \"#C9D1D9\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"os.environ[\", \"#C9D1D9\"], [\"\\\"TWILIO_ACCOUNT_SID\\\"\", \"#A5D6FF\"], [\"]\", \"#C9D1D9\"], \"\\n\", [\"auth_token\", \"#C9D1D9\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"os.environ[\", \"#C9D1D9\"], [\"\\\"TWILIO_AUTH_TOKEN\\\"\", \"#A5D6FF\"], [\"]\", \"#C9D1D9\"], \"\\n\", [\"client\", \"#C9D1D9\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"Client(account_sid, auth_token)\", \"#C9D1D9\"], \"\\n\\n\", [\"message\", \"#C9D1D9\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"client.messages.create(\", \"#C9D1D9\"], \"\\n    \", [\"body\", \"#FFA657\"], [\"=\", \"#FF7B72\"], [\"\\\"McAvoy or Stewart? These timelines can get so confusing.\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n    \", [\"to\", \"#FFA657\"], [\"=\", \"#FF7B72\"], [\"\\\"+15558675310\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n    \", [\"messaging_service_sid\", \"#FFA657\"], [\"=\", \"#FF7B72\"], [\"\\\"MG9752274e9e519418a7406176694466fa\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n    \", [\"status_callback\", \"#FFA657\"], [\"=\", \"#FF7B72\"], [\"\\\"http://example.com/MessageStatus\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n\", [\")\", \"#C9D1D9\"], \"\\n\\n\", [\"print\", \"#79C0FF\"], [\"(message.body)\", \"#C9D1D9\"]],\n            \"annotations\": [],\n            \"themeName\": \"github-dark\",\n            \"style\": {\n              \"color\": \"#c9d1d9\",\n              \"background\": \"#0d1117\",\n              \"colorScheme\": \"dark\"\n            }\n          }, {\n            \"value\": \"// Install the C# / .NET helper library from twilio.com/docs/csharp/install\\n\\nusing System;\\nusing Twilio;\\nusing Twilio.Rest.Api.V2010.Account;\\nusing System.Threading.Tasks;\\n\\nclass Program {\\n    public static async Task Main(string[] args) {\\n        // Find your Account SID and Auth Token at twilio.com/console\\n        // and set the environment variables. See http://twil.io/secure\\n        string accountSid = Environment.GetEnvironmentVariable(\\\"TWILIO_ACCOUNT_SID\\\");\\n        string authToken = Environment.GetEnvironmentVariable(\\\"TWILIO_AUTH_TOKEN\\\");\\n\\n        TwilioClient.Init(accountSid, authToken);\\n\\n        var message = await MessageResource.CreateAsync(\\n            body: \\\"McAvoy or Stewart? These timelines can get so confusing.\\\",\\n            to: new Twilio.Types.PhoneNumber(\\\"+15558675310\\\"),\\n            messagingServiceSid: \\\"MG9752274e9e519418a7406176694466fa\\\",\\n            statusCallback: new Uri(\\\"http://example.com/MessageStatus\\\"));\\n\\n        Console.WriteLine(message.Body);\\n    }\\n}\",\n            \"lang\": \"csharp\",\n            \"meta\": \"C#\",\n            \"code\": \"// Install the C# / .NET helper library from twilio.com/docs/csharp/install\\n\\nusing System;\\nusing Twilio;\\nusing Twilio.Rest.Api.V2010.Account;\\nusing System.Threading.Tasks;\\n\\nclass Program {\\n    public static async Task Main(string[] args) {\\n        // Find your Account SID and Auth Token at twilio.com/console\\n        // and set the environment variables. See http://twil.io/secure\\n        string accountSid = Environment.GetEnvironmentVariable(\\\"TWILIO_ACCOUNT_SID\\\");\\n        string authToken = Environment.GetEnvironmentVariable(\\\"TWILIO_AUTH_TOKEN\\\");\\n\\n        TwilioClient.Init(accountSid, authToken);\\n\\n        var message = await MessageResource.CreateAsync(\\n            body: \\\"McAvoy or Stewart? These timelines can get so confusing.\\\",\\n            to: new Twilio.Types.PhoneNumber(\\\"+15558675310\\\"),\\n            messagingServiceSid: \\\"MG9752274e9e519418a7406176694466fa\\\",\\n            statusCallback: new Uri(\\\"http://example.com/MessageStatus\\\"));\\n\\n        Console.WriteLine(message.Body);\\n    }\\n}\",\n            \"tokens\": [[\"// Install the C# / .NET helper library from twilio.com/docs/csharp/install\", \"#8B949E\"], \"\\n\\n\", [\"using\", \"#FF7B72\"], \" \", [\"System\", \"#FFA657\"], [\";\", \"#C9D1D9\"], \"\\n\", [\"using\", \"#FF7B72\"], \" \", [\"Twilio\", \"#FFA657\"], [\";\", \"#C9D1D9\"], \"\\n\", [\"using\", \"#FF7B72\"], \" \", [\"Twilio\", \"#FFA657\"], [\".\", \"#C9D1D9\"], [\"Rest\", \"#FFA657\"], [\".\", \"#C9D1D9\"], [\"Api\", \"#FFA657\"], [\".\", \"#C9D1D9\"], [\"V2010\", \"#FFA657\"], [\".\", \"#C9D1D9\"], [\"Account\", \"#FFA657\"], [\";\", \"#C9D1D9\"], \"\\n\", [\"using\", \"#FF7B72\"], \" \", [\"System\", \"#FFA657\"], [\".\", \"#C9D1D9\"], [\"Threading\", \"#FFA657\"], [\".\", \"#C9D1D9\"], [\"Tasks\", \"#FFA657\"], [\";\", \"#C9D1D9\"], \"\\n\\n\", [\"class\", \"#FF7B72\"], \" \", [\"Program\", \"#FFA657\"], \" \", [\"{\", \"#C9D1D9\"], \"\\n    \", [\"public static async\", \"#FF7B72\"], \" \", [\"Task\", \"#FFA657\"], \" \", [\"Main\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"string\", \"#FF7B72\"], [\"[]\", \"#C9D1D9\"], \" \", [\"args\", \"#FFA657\"], [\") {\", \"#C9D1D9\"], \"\\n        \", [\"// Find your Account SID and Auth Token at twilio.com/console\", \"#8B949E\"], \"\\n        \", [\"// and set the environment variables. See http://twil.io/secure\", \"#8B949E\"], \"\\n        \", [\"string\", \"#FF7B72\"], \" \", [\"accountSid\", \"#FFA657\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"Environment.\", \"#C9D1D9\"], [\"GetEnvironmentVariable\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"\\\"TWILIO_ACCOUNT_SID\\\"\", \"#A5D6FF\"], [\");\", \"#C9D1D9\"], \"\\n        \", [\"string\", \"#FF7B72\"], \" \", [\"authToken\", \"#FFA657\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"Environment.\", \"#C9D1D9\"], [\"GetEnvironmentVariable\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"\\\"TWILIO_AUTH_TOKEN\\\"\", \"#A5D6FF\"], [\");\", \"#C9D1D9\"], \"\\n\\n        \", [\"TwilioClient.\", \"#C9D1D9\"], [\"Init\", \"#D2A8FF\"], [\"(accountSid, authToken);\", \"#C9D1D9\"], \"\\n\\n        \", [\"var\", \"#FF7B72\"], \" \", [\"message\", \"#FFA657\"], \" \", [\"= await\", \"#FF7B72\"], \" \", [\"MessageResource.\", \"#C9D1D9\"], [\"CreateAsync\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], \"\\n            \", [\"body\", \"#FFA657\"], [\":\", \"#C9D1D9\"], \" \", [\"\\\"McAvoy or Stewart? These timelines can get so confusing.\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n            \", [\"to\", \"#FFA657\"], [\":\", \"#C9D1D9\"], \" \", [\"new\", \"#FF7B72\"], \" \", [\"Twilio\", \"#FFA657\"], [\".\", \"#C9D1D9\"], [\"Types\", \"#FFA657\"], [\".\", \"#C9D1D9\"], [\"PhoneNumber\", \"#FFA657\"], [\"(\", \"#C9D1D9\"], [\"\\\"+15558675310\\\"\", \"#A5D6FF\"], [\"),\", \"#C9D1D9\"], \"\\n            \", [\"messagingServiceSid\", \"#FFA657\"], [\":\", \"#C9D1D9\"], \" \", [\"\\\"MG9752274e9e519418a7406176694466fa\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n            \", [\"statusCallback\", \"#FFA657\"], [\":\", \"#C9D1D9\"], \" \", [\"new\", \"#FF7B72\"], \" \", [\"Uri\", \"#FFA657\"], [\"(\", \"#C9D1D9\"], [\"\\\"http://example.com/MessageStatus\\\"\", \"#A5D6FF\"], [\"));\", \"#C9D1D9\"], \"\\n\\n        \", [\"Console.\", \"#C9D1D9\"], [\"WriteLine\", \"#D2A8FF\"], [\"(message.Body);\", \"#C9D1D9\"], \"\\n    \", [\"}\", \"#C9D1D9\"], \"\\n\", [\"}\", \"#C9D1D9\"]],\n            \"annotations\": [],\n            \"themeName\": \"github-dark\",\n            \"style\": {\n              \"color\": \"#c9d1d9\",\n              \"background\": \"#0d1117\",\n              \"colorScheme\": \"dark\"\n            }\n          }, {\n            \"value\": \"// Install the Java helper library from twilio.com/docs/java/install\\n\\nimport com.twilio.type.PhoneNumber;\\nimport java.net.URI;\\nimport com.twilio.Twilio;\\nimport com.twilio.rest.api.v2010.account.Message;\\n\\npublic class Example {\\n    // Find your Account SID and Auth Token at twilio.com/console\\n    // and set the environment variables. See http://twil.io/secure\\n    public static final String ACCOUNT_SID = System.getenv(\\\"TWILIO_ACCOUNT_SID\\\");\\n    public static final String AUTH_TOKEN = System.getenv(\\\"TWILIO_AUTH_TOKEN\\\");\\n\\n    public static void main(String[] args) {\\n        Twilio.init(ACCOUNT_SID, AUTH_TOKEN);\\n        Message message = Message\\n                              .creator(new com.twilio.type.PhoneNumber(\\\"+15558675310\\\"),\\n                                  \\\"MG9752274e9e519418a7406176694466fa\\\",\\n                                  \\\"McAvoy or Stewart? These timelines can get so confusing.\\\")\\n                              .setStatusCallback(URI.create(\\\"http://example.com/MessageStatus\\\"))\\n                              .create();\\n\\n        System.out.println(message.getBody());\\n    }\\n}\",\n            \"lang\": \"java\",\n            \"meta\": \"Java\",\n            \"code\": \"// Install the Java helper library from twilio.com/docs/java/install\\n\\nimport com.twilio.type.PhoneNumber;\\nimport java.net.URI;\\nimport com.twilio.Twilio;\\nimport com.twilio.rest.api.v2010.account.Message;\\n\\npublic class Example {\\n    // Find your Account SID and Auth Token at twilio.com/console\\n    // and set the environment variables. See http://twil.io/secure\\n    public static final String ACCOUNT_SID = System.getenv(\\\"TWILIO_ACCOUNT_SID\\\");\\n    public static final String AUTH_TOKEN = System.getenv(\\\"TWILIO_AUTH_TOKEN\\\");\\n\\n    public static void main(String[] args) {\\n        Twilio.init(ACCOUNT_SID, AUTH_TOKEN);\\n        Message message = Message\\n                              .creator(new com.twilio.type.PhoneNumber(\\\"+15558675310\\\"),\\n                                  \\\"MG9752274e9e519418a7406176694466fa\\\",\\n                                  \\\"McAvoy or Stewart? These timelines can get so confusing.\\\")\\n                              .setStatusCallback(URI.create(\\\"http://example.com/MessageStatus\\\"))\\n                              .create();\\n\\n        System.out.println(message.getBody());\\n    }\\n}\",\n            \"tokens\": [[\"// Install the Java helper library from twilio.com/docs/java/install\", \"#8B949E\"], \"\\n\\n\", [\"import\", \"#FF7B72\"], \" \", [\"com.twilio.type.PhoneNumber;\", \"#C9D1D9\"], \"\\n\", [\"import\", \"#FF7B72\"], \" \", [\"java.net.URI;\", \"#C9D1D9\"], \"\\n\", [\"import\", \"#FF7B72\"], \" \", [\"com.twilio.Twilio;\", \"#C9D1D9\"], \"\\n\", [\"import\", \"#FF7B72\"], \" \", [\"com.twilio.rest.api.v2010.account.Message;\", \"#C9D1D9\"], \"\\n\\n\", [\"public class\", \"#FF7B72\"], \" \", [\"Example\", \"#FFA657\"], \" \", [\"{\", \"#C9D1D9\"], \"\\n    \", [\"// Find your Account SID and Auth Token at twilio.com/console\", \"#8B949E\"], \"\\n    \", [\"// and set the environment variables. See http://twil.io/secure\", \"#8B949E\"], \"\\n    \", [\"public static final\", \"#FF7B72\"], \" \", [\"String ACCOUNT_SID\", \"#C9D1D9\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"System.\", \"#C9D1D9\"], [\"getenv\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"\\\"TWILIO_ACCOUNT_SID\\\"\", \"#A5D6FF\"], [\");\", \"#C9D1D9\"], \"\\n    \", [\"public static final\", \"#FF7B72\"], \" \", [\"String AUTH_TOKEN\", \"#C9D1D9\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"System.\", \"#C9D1D9\"], [\"getenv\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"\\\"TWILIO_AUTH_TOKEN\\\"\", \"#A5D6FF\"], [\");\", \"#C9D1D9\"], \"\\n\\n    \", [\"public static void\", \"#FF7B72\"], \" \", [\"main\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"String\", \"#FF7B72\"], [\"[]\", \"#C9D1D9\"], \" \", [\"args\", \"#FFA657\"], [\") {\", \"#C9D1D9\"], \"\\n        \", [\"Twilio.\", \"#C9D1D9\"], [\"init\", \"#D2A8FF\"], [\"(ACCOUNT_SID, AUTH_TOKEN);\", \"#C9D1D9\"], \"\\n        \", [\"Message message\", \"#C9D1D9\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"Message\", \"#C9D1D9\"], \"\\n                              \", [\".\", \"#C9D1D9\"], [\"creator\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"new\", \"#FF7B72\"], \" \", [\"com.twilio.type.\", \"#C9D1D9\"], [\"PhoneNumber\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"\\\"+15558675310\\\"\", \"#A5D6FF\"], [\"),\", \"#C9D1D9\"], \"\\n                                  \", [\"\\\"MG9752274e9e519418a7406176694466fa\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n                                  \", [\"\\\"McAvoy or Stewart? These timelines can get so confusing.\\\"\", \"#A5D6FF\"], [\")\", \"#C9D1D9\"], \"\\n                              \", [\".\", \"#C9D1D9\"], [\"setStatusCallback\", \"#D2A8FF\"], [\"(URI.\", \"#C9D1D9\"], [\"create\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"\\\"http://example.com/MessageStatus\\\"\", \"#A5D6FF\"], [\"))\", \"#C9D1D9\"], \"\\n                              \", [\".\", \"#C9D1D9\"], [\"create\", \"#D2A8FF\"], [\"();\", \"#C9D1D9\"], \"\\n\\n        \", [\"System.out.\", \"#C9D1D9\"], [\"println\", \"#D2A8FF\"], [\"(message.\", \"#C9D1D9\"], [\"getBody\", \"#D2A8FF\"], [\"());\", \"#C9D1D9\"], \"\\n    \", [\"}\", \"#C9D1D9\"], \"\\n\", [\"}\", \"#C9D1D9\"]],\n            \"annotations\": [],\n            \"themeName\": \"github-dark\",\n            \"style\": {\n              \"color\": \"#c9d1d9\",\n              \"background\": \"#0d1117\",\n              \"colorScheme\": \"dark\"\n            }\n          }, {\n            \"value\": \"// Download the helper library from https://www.twilio.com/docs/go/install\\npackage main\\n\\nimport (\\n\\t\\\"fmt\\\"\\n\\t\\\"github.com/twilio/twilio-go\\\"\\n\\tapi \\\"github.com/twilio/twilio-go/rest/api/v2010\\\"\\n\\t\\\"os\\\"\\n)\\n\\nfunc main() {\\n\\t// Find your Account SID and Auth Token at twilio.com/console\\n\\t// and set the environment variables. See http://twil.io/secure\\n\\t// Make sure TWILIO_ACCOUNT_SID and TWILIO_AUTH_TOKEN exists in your environment\\n\\tclient := twilio.NewRestClient()\\n\\n\\tparams := \u0026api.CreateMessageParams{}\\n\\tparams.SetBody(\\\"McAvoy or Stewart? These timelines can get so confusing.\\\")\\n\\tparams.SetTo(\\\"+15558675310\\\")\\n\\tparams.SetMessagingServiceSid(\\\"MG9752274e9e519418a7406176694466fa\\\")\\n\\tparams.SetStatusCallback(\\\"http://example.com/MessageStatus\\\")\\n\\n\\tresp, err := client.Api.CreateMessage(params)\\n\\tif err != nil {\\n\\t\\tfmt.Println(err.Error())\\n\\t\\tos.Exit(1)\\n\\t} else {\\n\\t\\tif resp.Body != nil {\\n\\t\\t\\tfmt.Println(*resp.Body)\\n\\t\\t} else {\\n\\t\\t\\tfmt.Println(resp.Body)\\n\\t\\t}\\n\\t}\\n}\",\n            \"lang\": \"go\",\n            \"meta\": \"Go\",\n            \"code\": \"// Download the helper library from https://www.twilio.com/docs/go/install\\npackage main\\n\\nimport (\\n\\t\\\"fmt\\\"\\n\\t\\\"github.com/twilio/twilio-go\\\"\\n\\tapi \\\"github.com/twilio/twilio-go/rest/api/v2010\\\"\\n\\t\\\"os\\\"\\n)\\n\\nfunc main() {\\n\\t// Find your Account SID and Auth Token at twilio.com/console\\n\\t// and set the environment variables. See http://twil.io/secure\\n\\t// Make sure TWILIO_ACCOUNT_SID and TWILIO_AUTH_TOKEN exists in your environment\\n\\tclient := twilio.NewRestClient()\\n\\n\\tparams := \u0026api.CreateMessageParams{}\\n\\tparams.SetBody(\\\"McAvoy or Stewart? These timelines can get so confusing.\\\")\\n\\tparams.SetTo(\\\"+15558675310\\\")\\n\\tparams.SetMessagingServiceSid(\\\"MG9752274e9e519418a7406176694466fa\\\")\\n\\tparams.SetStatusCallback(\\\"http://example.com/MessageStatus\\\")\\n\\n\\tresp, err := client.Api.CreateMessage(params)\\n\\tif err != nil {\\n\\t\\tfmt.Println(err.Error())\\n\\t\\tos.Exit(1)\\n\\t} else {\\n\\t\\tif resp.Body != nil {\\n\\t\\t\\tfmt.Println(*resp.Body)\\n\\t\\t} else {\\n\\t\\t\\tfmt.Println(resp.Body)\\n\\t\\t}\\n\\t}\\n}\",\n            \"tokens\": [[\"// Download the helper library from https://www.twilio.com/docs/go/install\", \"#8B949E\"], \"\\n\", [\"package\", \"#FF7B72\"], \" \", [\"main\", \"#FFA657\"], \"\\n\\n\", [\"import\", \"#FF7B72\"], \" \", [\"(\", \"#C9D1D9\"], \"\\n\\t\", [\"\\\"\", \"#A5D6FF\"], [\"fmt\", \"#FFA657\"], [\"\\\"\", \"#A5D6FF\"], \"\\n\\t\", [\"\\\"\", \"#A5D6FF\"], [\"github.com/twilio/twilio-go\", \"#FFA657\"], [\"\\\"\", \"#A5D6FF\"], \"\\n\\t\", [\"api\", \"#C9D1D9\"], \" \", [\"\\\"\", \"#A5D6FF\"], [\"github.com/twilio/twilio-go/rest/api/v2010\", \"#FFA657\"], [\"\\\"\", \"#A5D6FF\"], \"\\n\\t\", [\"\\\"\", \"#A5D6FF\"], [\"os\", \"#FFA657\"], [\"\\\"\", \"#A5D6FF\"], \"\\n\", [\")\", \"#C9D1D9\"], \"\\n\\n\", [\"func\", \"#FF7B72\"], \" \", [\"main\", \"#D2A8FF\"], [\"() {\", \"#C9D1D9\"], \"\\n\\t\", [\"// Find your Account SID and Auth Token at twilio.com/console\", \"#8B949E\"], \"\\n\\t\", [\"// and set the environment variables. See http://twil.io/secure\", \"#8B949E\"], \"\\n\\t\", [\"// Make sure TWILIO_ACCOUNT_SID and TWILIO_AUTH_TOKEN exists in your environment\", \"#8B949E\"], \"\\n\\t\", [\"client\", \"#C9D1D9\"], \" \", [\":=\", \"#FF7B72\"], \" \", [\"twilio.\", \"#C9D1D9\"], [\"NewRestClient\", \"#D2A8FF\"], [\"()\", \"#C9D1D9\"], \"\\n\\n\\t\", [\"params\", \"#C9D1D9\"], \" \", [\":= \u0026\", \"#FF7B72\"], [\"api\", \"#FFA657\"], [\".\", \"#C9D1D9\"], [\"CreateMessageParams\", \"#FFA657\"], [\"{}\", \"#C9D1D9\"], \"\\n\\t\", [\"params.\", \"#C9D1D9\"], [\"SetBody\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"\\\"McAvoy or Stewart? These timelines can get so confusing.\\\"\", \"#A5D6FF\"], [\")\", \"#C9D1D9\"], \"\\n\\t\", [\"params.\", \"#C9D1D9\"], [\"SetTo\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"\\\"+15558675310\\\"\", \"#A5D6FF\"], [\")\", \"#C9D1D9\"], \"\\n\\t\", [\"params.\", \"#C9D1D9\"], [\"SetMessagingServiceSid\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"\\\"MG9752274e9e519418a7406176694466fa\\\"\", \"#A5D6FF\"], [\")\", \"#C9D1D9\"], \"\\n\\t\", [\"params.\", \"#C9D1D9\"], [\"SetStatusCallback\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"\\\"http://example.com/MessageStatus\\\"\", \"#A5D6FF\"], [\")\", \"#C9D1D9\"], \"\\n\\n\\t\", [\"resp, err\", \"#C9D1D9\"], \" \", [\":=\", \"#FF7B72\"], \" \", [\"client.Api.\", \"#C9D1D9\"], [\"CreateMessage\", \"#D2A8FF\"], [\"(params)\", \"#C9D1D9\"], \"\\n\\t\", [\"if\", \"#FF7B72\"], \" \", [\"err\", \"#C9D1D9\"], \" \", [\"!=\", \"#FF7B72\"], \" \", [\"nil\", \"#79C0FF\"], \" \", [\"{\", \"#C9D1D9\"], \"\\n\\t\\t\", [\"fmt.\", \"#C9D1D9\"], [\"Println\", \"#D2A8FF\"], [\"(err.\", \"#C9D1D9\"], [\"Error\", \"#D2A8FF\"], [\"())\", \"#C9D1D9\"], \"\\n\\t\\t\", [\"os.\", \"#C9D1D9\"], [\"Exit\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"1\", \"#79C0FF\"], [\")\", \"#C9D1D9\"], \"\\n\\t\", [\"}\", \"#C9D1D9\"], \" \", [\"else\", \"#FF7B72\"], \" \", [\"{\", \"#C9D1D9\"], \"\\n\\t\\t\", [\"if\", \"#FF7B72\"], \" \", [\"resp.Body\", \"#C9D1D9\"], \" \", [\"!=\", \"#FF7B72\"], \" \", [\"nil\", \"#79C0FF\"], \" \", [\"{\", \"#C9D1D9\"], \"\\n\\t\\t\\t\", [\"fmt.\", \"#C9D1D9\"], [\"Println\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], [\"*\", \"#FF7B72\"], [\"resp.Body)\", \"#C9D1D9\"], \"\\n\\t\\t\", [\"}\", \"#C9D1D9\"], \" \", [\"else\", \"#FF7B72\"], \" \", [\"{\", \"#C9D1D9\"], \"\\n\\t\\t\\t\", [\"fmt.\", \"#C9D1D9\"], [\"Println\", \"#D2A8FF\"], [\"(resp.Body)\", \"#C9D1D9\"], \"\\n\\t\\t\", [\"}\", \"#C9D1D9\"], \"\\n\\t\", [\"}\", \"#C9D1D9\"], \"\\n\", [\"}\", \"#C9D1D9\"]],\n            \"annotations\": [],\n            \"themeName\": \"github-dark\",\n            \"style\": {\n              \"color\": \"#c9d1d9\",\n              \"background\": \"#0d1117\",\n              \"colorScheme\": \"dark\"\n            }\n          }, {\n            \"value\": \"\u003c?php\\n\\n// Update the path below to your autoload.php,\\n// see https://getcomposer.org/doc/01-basic-usage.md\\nrequire_once \\\"/path/to/vendor/autoload.php\\\";\\n\\nuse Twilio\\\\Rest\\\\Client;\\n\\n// Find your Account SID and Auth Token at twilio.com/console\\n// and set the environment variables. See http://twil.io/secure\\n$sid = $_ENV[\\\"TWILIO_ACCOUNT_SID\\\"];\\n$token = $_ENV[\\\"TWILIO_AUTH_TOKEN\\\"];\\n$twilio = new Client($sid, $token);\\n\\n$message = $twilio-\u003emessages-\u003ecreate(\\n    \\\"+15558675310\\\", // To\\n    [\\n        \\\"body\\\" =\u003e \\\"McAvoy or Stewart? These timelines can get so confusing.\\\",\\n        \\\"messagingServiceSid\\\" =\u003e \\\"MG9752274e9e519418a7406176694466fa\\\",\\n        \\\"statusCallback\\\" =\u003e \\\"http://example.com/MessageStatus\\\",\\n    ],\\n);\\n\\nprint $message-\u003ebody;\",\n            \"lang\": \"php\",\n            \"meta\": \"PHP\",\n            \"code\": \"\u003c?php\\n\\n// Update the path below to your autoload.php,\\n// see https://getcomposer.org/doc/01-basic-usage.md\\nrequire_once \\\"/path/to/vendor/autoload.php\\\";\\n\\nuse Twilio\\\\Rest\\\\Client;\\n\\n// Find your Account SID and Auth Token at twilio.com/console\\n// and set the environment variables. See http://twil.io/secure\\n$sid = $_ENV[\\\"TWILIO_ACCOUNT_SID\\\"];\\n$token = $_ENV[\\\"TWILIO_AUTH_TOKEN\\\"];\\n$twilio = new Client($sid, $token);\\n\\n$message = $twilio-\u003emessages-\u003ecreate(\\n    \\\"+15558675310\\\", // To\\n    [\\n        \\\"body\\\" =\u003e \\\"McAvoy or Stewart? These timelines can get so confusing.\\\",\\n        \\\"messagingServiceSid\\\" =\u003e \\\"MG9752274e9e519418a7406176694466fa\\\",\\n        \\\"statusCallback\\\" =\u003e \\\"http://example.com/MessageStatus\\\",\\n    ],\\n);\\n\\nprint $message-\u003ebody;\",\n            \"tokens\": [[\"\u003c?\", \"#FF7B72\"], [\"php\", \"#79C0FF\"], \"\\n\\n\", [\"// Update the path below to your autoload.php,\", \"#8B949E\"], \"\\n\", [\"// see https://getcomposer.org/doc/01-basic-usage.md\", \"#8B949E\"], \"\\n\", [\"require_once\", \"#FF7B72\"], \" \", [\"\\\"/path/to/vendor/autoload.php\\\"\", \"#A5D6FF\"], [\";\", \"#C9D1D9\"], \"\\n\\n\", [\"use\", \"#FF7B72\"], \" \", [\"Twilio\\\\Rest\\\\Client\", \"#79C0FF\"], [\";\", \"#C9D1D9\"], \"\\n\\n\", [\"// Find your Account SID and Auth Token at twilio.com/console\", \"#8B949E\"], \"\\n\", [\"// and set the environment variables. See http://twil.io/secure\", \"#8B949E\"], \"\\n\", [\"$sid\", \"#C9D1D9\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"$_ENV[\", \"#C9D1D9\"], [\"\\\"TWILIO_ACCOUNT_SID\\\"\", \"#A5D6FF\"], [\"];\", \"#C9D1D9\"], \"\\n\", [\"$token\", \"#C9D1D9\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"$_ENV[\", \"#C9D1D9\"], [\"\\\"TWILIO_AUTH_TOKEN\\\"\", \"#A5D6FF\"], [\"];\", \"#C9D1D9\"], \"\\n\", [\"$twilio\", \"#C9D1D9\"], \" \", [\"= new\", \"#FF7B72\"], \" \", [\"Client\", \"#79C0FF\"], [\"($sid, $token);\", \"#C9D1D9\"], \"\\n\\n\", [\"$message\", \"#C9D1D9\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"$twilio\", \"#C9D1D9\"], [\"-\u003e\", \"#FF7B72\"], [\"messages\", \"#C9D1D9\"], [\"-\u003e\", \"#FF7B72\"], [\"create\", \"#D2A8FF\"], [\"(\", \"#C9D1D9\"], \"\\n    \", [\"\\\"+15558675310\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \" \", [\"// To\", \"#8B949E\"], \"\\n    \", [\"[\", \"#C9D1D9\"], \"\\n        \", [\"\\\"body\\\"\", \"#A5D6FF\"], \" \", [\"=\u003e\", \"#FF7B72\"], \" \", [\"\\\"McAvoy or Stewart? These timelines can get so confusing.\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n        \", [\"\\\"messagingServiceSid\\\"\", \"#A5D6FF\"], \" \", [\"=\u003e\", \"#FF7B72\"], \" \", [\"\\\"MG9752274e9e519418a7406176694466fa\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n        \", [\"\\\"statusCallback\\\"\", \"#A5D6FF\"], \" \", [\"=\u003e\", \"#FF7B72\"], \" \", [\"\\\"http://example.com/MessageStatus\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n    \", [\"],\", \"#C9D1D9\"], \"\\n\", [\");\", \"#C9D1D9\"], \"\\n\\n\", [\"print\", \"#79C0FF\"], \" \", [\"$message\", \"#C9D1D9\"], [\"-\u003e\", \"#FF7B72\"], [\"body;\", \"#C9D1D9\"]],\n            \"annotations\": [],\n            \"themeName\": \"github-dark\",\n            \"style\": {\n              \"color\": \"#c9d1d9\",\n              \"background\": \"#0d1117\",\n              \"colorScheme\": \"dark\"\n            }\n          }, {\n            \"value\": \"# Download the helper library from https://www.twilio.com/docs/ruby/install\\nrequire 'twilio-ruby'\\n\\n# Find your Account SID and Auth Token at twilio.com/console\\n# and set the environment variables. See http://twil.io/secure\\naccount_sid = ENV['TWILIO_ACCOUNT_SID']\\nauth_token = ENV['TWILIO_AUTH_TOKEN']\\n@client = Twilio::REST::Client.new(account_sid, auth_token)\\n\\nmessage = @client\\n          .api\\n          .v2010\\n          .messages\\n          .create(\\n            body: 'McAvoy or Stewart? These timelines can get so confusing.',\\n            to: '+15558675310',\\n            messaging_service_sid: 'MG9752274e9e519418a7406176694466fa',\\n            status_callback: 'http://example.com/MessageStatus'\\n          )\\n\\nputs message.body\",\n            \"lang\": \"ruby\",\n            \"meta\": \"Ruby\",\n            \"code\": \"# Download the helper library from https://www.twilio.com/docs/ruby/install\\nrequire 'twilio-ruby'\\n\\n# Find your Account SID and Auth Token at twilio.com/console\\n# and set the environment variables. See http://twil.io/secure\\naccount_sid = ENV['TWILIO_ACCOUNT_SID']\\nauth_token = ENV['TWILIO_AUTH_TOKEN']\\n@client = Twilio::REST::Client.new(account_sid, auth_token)\\n\\nmessage = @client\\n          .api\\n          .v2010\\n          .messages\\n          .create(\\n            body: 'McAvoy or Stewart? These timelines can get so confusing.',\\n            to: '+15558675310',\\n            messaging_service_sid: 'MG9752274e9e519418a7406176694466fa',\\n            status_callback: 'http://example.com/MessageStatus'\\n          )\\n\\nputs message.body\",\n            \"tokens\": [[\"# Download the helper library from https://www.twilio.com/docs/ruby/install\", \"#8B949E\"], \"\\n\", [\"require\", \"#FF7B72\"], \" \", [\"'twilio-ruby'\", \"#A5D6FF\"], \"\\n\\n\", [\"# Find your Account SID and Auth Token at twilio.com/console\", \"#8B949E\"], \"\\n\", [\"# and set the environment variables. See http://twil.io/secure\", \"#8B949E\"], \"\\n\", [\"account_sid\", \"#C9D1D9\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"ENV\", \"#79C0FF\"], [\"[\", \"#C9D1D9\"], [\"'TWILIO_ACCOUNT_SID'\", \"#A5D6FF\"], [\"]\", \"#C9D1D9\"], \"\\n\", [\"auth_token\", \"#C9D1D9\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"ENV\", \"#79C0FF\"], [\"[\", \"#C9D1D9\"], [\"'TWILIO_AUTH_TOKEN'\", \"#A5D6FF\"], [\"]\", \"#C9D1D9\"], \"\\n\", [\"@client\", \"#C9D1D9\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"Twilio\", \"#79C0FF\"], [\"::\", \"#C9D1D9\"], [\"REST\", \"#79C0FF\"], [\"::\", \"#C9D1D9\"], [\"Client\", \"#79C0FF\"], [\".\", \"#C9D1D9\"], [\"new\", \"#FF7B72\"], [\"(account_sid, auth_token)\", \"#C9D1D9\"], \"\\n\\n\", [\"message\", \"#C9D1D9\"], \" \", [\"=\", \"#FF7B72\"], \" \", [\"@client\", \"#C9D1D9\"], \"\\n          \", [\".api\", \"#C9D1D9\"], \"\\n          \", [\".v2010\", \"#C9D1D9\"], \"\\n          \", [\".messages\", \"#C9D1D9\"], \"\\n          \", [\".create(\", \"#C9D1D9\"], \"\\n            \", [\"body:\", \"#79C0FF\"], \" \", [\"'McAvoy or Stewart? These timelines can get so confusing.'\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n            \", [\"to:\", \"#79C0FF\"], \" \", [\"'+15558675310'\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n            \", [\"messaging_service_sid:\", \"#79C0FF\"], \" \", [\"'MG9752274e9e519418a7406176694466fa'\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n            \", [\"status_callback:\", \"#79C0FF\"], \" \", [\"'http://example.com/MessageStatus'\", \"#A5D6FF\"], \"\\n          \", [\")\", \"#C9D1D9\"], \"\\n\\n\", [\"puts\", \"#79C0FF\"], \" \", [\"message.body\", \"#C9D1D9\"]],\n            \"annotations\": [],\n            \"themeName\": \"github-dark\",\n            \"style\": {\n              \"color\": \"#c9d1d9\",\n              \"background\": \"#0d1117\",\n              \"colorScheme\": \"dark\"\n            }\n          }, {\n            \"value\": \"# Install the twilio-cli from https://twil.io/cli\\n\\ntwilio api:core:messages:create \\\\\\n   --body \\\"McAvoy or Stewart? These timelines can get so confusing.\\\" \\\\\\n   --to +15558675310 \\\\\\n   --messaging-service-sid MG9752274e9e519418a7406176694466fa \\\\\\n   --status-callback http://example.com/MessageStatus\",\n            \"lang\": \"shellscript\",\n            \"meta\": \"twilio-cli\",\n            \"code\": \"# Install the twilio-cli from https://twil.io/cli\\n\\ntwilio api:core:messages:create \\\\\\n   --body \\\"McAvoy or Stewart? These timelines can get so confusing.\\\" \\\\\\n   --to +15558675310 \\\\\\n   --messaging-service-sid MG9752274e9e519418a7406176694466fa \\\\\\n   --status-callback http://example.com/MessageStatus\",\n            \"tokens\": [[\"# Install the twilio-cli from https://twil.io/cli\", \"#8B949E\"], \"\\n\\n\", [\"twilio\", \"#FFA657\"], \" \", [\"api:core:messages:create\", \"#A5D6FF\"], \" \", [\"\\\\\", \"#79C0FF\"], \"\\n   \", [\"--body\", \"#79C0FF\"], \" \", [\"\\\"McAvoy or Stewart? These timelines can get so confusing.\\\"\", \"#A5D6FF\"], \" \", [\"\\\\\", \"#79C0FF\"], \"\\n   \", [\"--to\", \"#79C0FF\"], \" \", [\"+15558675310\", \"#A5D6FF\"], \" \", [\"\\\\\", \"#79C0FF\"], \"\\n   \", [\"--messaging-service-sid\", \"#79C0FF\"], \" \", [\"MG9752274e9e519418a7406176694466fa\", \"#A5D6FF\"], \" \", [\"\\\\\", \"#79C0FF\"], \"\\n   \", [\"--status-callback\", \"#79C0FF\"], \" \", [\"http://example.com/MessageStatus\", \"#A5D6FF\"]],\n            \"annotations\": [],\n            \"themeName\": \"github-dark\",\n            \"style\": {\n              \"color\": \"#c9d1d9\",\n              \"background\": \"#0d1117\",\n              \"colorScheme\": \"dark\"\n            }\n          }, {\n            \"value\": \"curl -X POST \\\"https://api.twilio.com/2010-04-01/Accounts/$TWILIO_ACCOUNT_SID/Messages.json\\\" \\\\\\n--data-urlencode \\\"Body=McAvoy or Stewart? These timelines can get so confusing.\\\" \\\\\\n--data-urlencode \\\"To=+15558675310\\\" \\\\\\n--data-urlencode \\\"MessagingServiceSid=MG9752274e9e519418a7406176694466fa\\\" \\\\\\n--data-urlencode \\\"StatusCallback=http://example.com/MessageStatus\\\" \\\\\\n-u $TWILIO_ACCOUNT_SID:$TWILIO_AUTH_TOKEN\",\n            \"lang\": \"shellscript\",\n            \"meta\": \"curl\",\n            \"code\": \"curl -X POST \\\"https://api.twilio.com/2010-04-01/Accounts/$TWILIO_ACCOUNT_SID/Messages.json\\\" \\\\\\n--data-urlencode \\\"Body=McAvoy or Stewart? These timelines can get so confusing.\\\" \\\\\\n--data-urlencode \\\"To=+15558675310\\\" \\\\\\n--data-urlencode \\\"MessagingServiceSid=MG9752274e9e519418a7406176694466fa\\\" \\\\\\n--data-urlencode \\\"StatusCallback=http://example.com/MessageStatus\\\" \\\\\\n-u $TWILIO_ACCOUNT_SID:$TWILIO_AUTH_TOKEN\",\n            \"tokens\": [[\"curl\", \"#FFA657\"], \" \", [\"-X\", \"#79C0FF\"], \" \", [\"POST \\\"https://api.twilio.com/2010-04-01/Accounts/\", \"#A5D6FF\"], [\"$TWILIO_ACCOUNT_SID\", \"#C9D1D9\"], [\"/Messages.json\\\"\", \"#A5D6FF\"], \" \", [\"\\\\\", \"#79C0FF\"], \"\\n\", [\"--data-urlencode\", \"#C9D1D9\"], \" \", [\"\\\"Body=McAvoy or Stewart? These timelines can get so confusing.\\\"\", \"#A5D6FF\"], \" \", [\"\\\\\", \"#79C0FF\"], \"\\n\", [\"--data-urlencode\", \"#C9D1D9\"], \" \", [\"\\\"To=+15558675310\\\"\", \"#A5D6FF\"], \" \", [\"\\\\\", \"#79C0FF\"], \"\\n\", [\"--data-urlencode\", \"#C9D1D9\"], \" \", [\"\\\"MessagingServiceSid=MG9752274e9e519418a7406176694466fa\\\"\", \"#A5D6FF\"], \" \", [\"\\\\\", \"#79C0FF\"], \"\\n\", [\"--data-urlencode\", \"#C9D1D9\"], \" \", [\"\\\"StatusCallback=http://example.com/MessageStatus\\\"\", \"#A5D6FF\"], \" \", [\"\\\\\", \"#79C0FF\"], \"\\n\", [\"-u $TWILIO_ACCOUNT_SID\", \"#C9D1D9\"], [\":\", \"#A5D6FF\"], [\"$TWILIO_AUTH_TOKEN\", \"#C9D1D9\"]],\n            \"annotations\": [],\n            \"themeName\": \"github-dark\",\n            \"style\": {\n              \"color\": \"#c9d1d9\",\n              \"background\": \"#0d1117\",\n              \"colorScheme\": \"dark\"\n            }\n          }],\n          \"output\": {\n            \"value\": \"{\\n  \\\"account_sid\\\": \\\"ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\\\",\\n  \\\"api_version\\\": \\\"2010-04-01\\\",\\n  \\\"body\\\": \\\"McAvoy or Stewart? These timelines can get so confusing.\\\",\\n  \\\"date_created\\\": \\\"Thu, 24 Aug 2023 05:01:45 +0000\\\",\\n  \\\"date_sent\\\": \\\"Thu, 24 Aug 2023 05:01:45 +0000\\\",\\n  \\\"date_updated\\\": \\\"Thu, 24 Aug 2023 05:01:45 +0000\\\",\\n  \\\"direction\\\": \\\"outbound-api\\\",\\n  \\\"error_code\\\": null,\\n  \\\"error_message\\\": null,\\n  \\\"from\\\": \\\"+14155552345\\\",\\n  \\\"num_media\\\": \\\"0\\\",\\n  \\\"num_segments\\\": \\\"1\\\",\\n  \\\"price\\\": null,\\n  \\\"price_unit\\\": null,\\n  \\\"messaging_service_sid\\\": \\\"MG9752274e9e519418a7406176694466fa\\\",\\n  \\\"sid\\\": \\\"SMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\\\",\\n  \\\"status\\\": \\\"queued\\\",\\n  \\\"subresource_uris\\\": {\\n    \\\"media\\\": \\\"/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Messages/SMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Media.json\\\"\\n  },\\n  \\\"to\\\": \\\"+15558675310\\\",\\n  \\\"uri\\\": \\\"/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Messages/SMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.json\\\"\\n}\",\n            \"lang\": \"json\",\n            \"meta\": \"\",\n            \"code\": \"{\\n  \\\"account_sid\\\": \\\"ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\\\",\\n  \\\"api_version\\\": \\\"2010-04-01\\\",\\n  \\\"body\\\": \\\"McAvoy or Stewart? These timelines can get so confusing.\\\",\\n  \\\"date_created\\\": \\\"Thu, 24 Aug 2023 05:01:45 +0000\\\",\\n  \\\"date_sent\\\": \\\"Thu, 24 Aug 2023 05:01:45 +0000\\\",\\n  \\\"date_updated\\\": \\\"Thu, 24 Aug 2023 05:01:45 +0000\\\",\\n  \\\"direction\\\": \\\"outbound-api\\\",\\n  \\\"error_code\\\": null,\\n  \\\"error_message\\\": null,\\n  \\\"from\\\": \\\"+14155552345\\\",\\n  \\\"num_media\\\": \\\"0\\\",\\n  \\\"num_segments\\\": \\\"1\\\",\\n  \\\"price\\\": null,\\n  \\\"price_unit\\\": null,\\n  \\\"messaging_service_sid\\\": \\\"MG9752274e9e519418a7406176694466fa\\\",\\n  \\\"sid\\\": \\\"SMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\\\",\\n  \\\"status\\\": \\\"queued\\\",\\n  \\\"subresource_uris\\\": {\\n    \\\"media\\\": \\\"/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Messages/SMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Media.json\\\"\\n  },\\n  \\\"to\\\": \\\"+15558675310\\\",\\n  \\\"uri\\\": \\\"/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Messages/SMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.json\\\"\\n}\",\n            \"tokens\": [[\"{\", \"#C9D1D9\"], \"\\n  \", [\"\\\"account_sid\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"\\\"ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n  \", [\"\\\"api_version\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"\\\"2010-04-01\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n  \", [\"\\\"body\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"\\\"McAvoy or Stewart? These timelines can get so confusing.\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n  \", [\"\\\"date_created\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"\\\"Thu, 24 Aug 2023 05:01:45 +0000\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n  \", [\"\\\"date_sent\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"\\\"Thu, 24 Aug 2023 05:01:45 +0000\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n  \", [\"\\\"date_updated\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"\\\"Thu, 24 Aug 2023 05:01:45 +0000\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n  \", [\"\\\"direction\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"\\\"outbound-api\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n  \", [\"\\\"error_code\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"null\", \"#79C0FF\"], [\",\", \"#C9D1D9\"], \"\\n  \", [\"\\\"error_message\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"null\", \"#79C0FF\"], [\",\", \"#C9D1D9\"], \"\\n  \", [\"\\\"from\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"\\\"+14155552345\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n  \", [\"\\\"num_media\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"\\\"0\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n  \", [\"\\\"num_segments\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"\\\"1\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n  \", [\"\\\"price\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"null\", \"#79C0FF\"], [\",\", \"#C9D1D9\"], \"\\n  \", [\"\\\"price_unit\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"null\", \"#79C0FF\"], [\",\", \"#C9D1D9\"], \"\\n  \", [\"\\\"messaging_service_sid\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"\\\"MG9752274e9e519418a7406176694466fa\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n  \", [\"\\\"sid\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"\\\"SMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n  \", [\"\\\"status\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"\\\"queued\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n  \", [\"\\\"subresource_uris\\\"\", \"#7EE787\"], [\": {\", \"#C9D1D9\"], \"\\n    \", [\"\\\"media\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"\\\"/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Messages/SMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Media.json\\\"\", \"#A5D6FF\"], \"\\n  \", [\"},\", \"#C9D1D9\"], \"\\n  \", [\"\\\"to\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"\\\"+15558675310\\\"\", \"#A5D6FF\"], [\",\", \"#C9D1D9\"], \"\\n  \", [\"\\\"uri\\\"\", \"#7EE787\"], [\":\", \"#C9D1D9\"], \" \", [\"\\\"/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Messages/SMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.json\\\"\", \"#A5D6FF\"], \"\\n\", [\"}\", \"#C9D1D9\"]],\n            \"annotations\": [],\n            \"themeName\": \"github-dark\",\n            \"style\": {\n              \"color\": \"#c9d1d9\",\n              \"background\": \"#0d1117\",\n              \"colorScheme\": \"dark\"\n            }\n          }\n        })\n      }), _jsx(_components.hr, {})]\n    }), \"\\n\", _jsxs(_components.section, {\n      id: \"whats-next-section-indexable\",\n      children: [_jsx(_components.h2, {\n        id: \"whats-next\",\n        children: \"What's next?\"\n      }), _jsx(_components.p, {\n        children: \"Now that you know how to track the message status of your outbound messages, check out the resources below for additional information and related Twilio product documentation:\"\n      }), _jsxs(_components.ul, {\n        children: [\"\\n\", _jsxs(_components.li, {\n          children: [\"Read our guide \", _jsx(_components.a, {\n            href: \"/docs/messaging/guides/outbound-message-logging\",\n            children: \"Best Practices for Messaging Delivery Status Logging\"\n          }), \" for advanced considerations when implementing a production-grade status logging solution.\"]\n        }), \"\\n\", _jsxs(_components.li, {\n          children: [\"Explore our guide \", _jsx(_components.a, {\n            href: \"/docs/messaging/guides/send-message-feedback-to-twilio\",\n            children: \"How to Optimize Message Deliverability with Message Feedback\"\n          }), \".\"]\n        }), \"\\n\", _jsxs(_components.li, {\n          children: [\"See how Message Feedback supports the \", _jsx(_components.a, {\n            href: \"/docs/messaging/features/messaging-insights/dashboards#otp-conversion-dashboard\",\n            children: \"Messaging Insights \\\"One-time Password (OTP) Conversion Report\\\"\"\n          }), \". Learn how to analyze the effectiveness of messages sent to provide two-factor authentication (2FA) or multi-factor authentication (MFA) codes or other one-time passwords for user authentication or account verification.\"]\n        }), \"\\n\", _jsxs(_components.li, {\n          children: [\"Shorten links in messages with your own company-branded domain and track click-through-rates with \", _jsx(_components.a, {\n            href: \"/docs/messaging/features/link-shortening\",\n            children: \"Link Shortening\"\n          }), \".\"]\n        }), \"\\n\"]\n      })]\n    })]\n  });\n}\nfunction MDXContent(props = {}) {\n  const {wrapper: MDXLayout} = {\n    ..._provideComponents(),\n    ...props.components\n  };\n  return MDXLayout ? _jsx(MDXLayout, {\n    ...props,\n    children: _jsx(_createMdxContent, {\n      ...props\n    })\n  }) : _createMdxContent(props);\n}\nreturn {\n  default: MDXContent\n};\nfunction _missingMdxReference(id, component) {\n  throw new Error(\"Expected \" + (component ? \"component\" : \"object\") + \" `\" + id + \"` to be defined: you likely forgot to import, pass, or provide it.\");\n}\n","frontmatter":{"title":"Track the Message Status of Outbound Messages","seo_description":"Learn how to track the status of outbound messages you send with Programmable Messaging in your web application. Track the sent and delivery status of SMS, MMS, and WhatsApp Messages using status callbacks. Understand the differences when using a Messaging Service.","include_in_llms_txt":true,"page_type":"docs","headings":[{"depth":2,"value":"Before you begin","id":"before-you-begin"},{"depth":2,"value":"How to track outbound message status","id":"how-to-track-outbound-message-status"},{"depth":2,"value":"Step 1. Set up a status callback endpoint","id":"step-1-set-up-a-status-callback-endpoint"},{"depth":3,"value":"How are status callback requests sent?","id":"how-are-status-callback-requests-sent"},{"depth":3,"value":"Implement a status callback handler (simplified example)","id":"implement-a-status-callback-handler-simplified-example"},{"depth":2,"value":"Step 2. Send a message with status callback URL","id":"step-2-send-a-message-with-status-callback-url"},{"depth":3,"value":"Scenario 1: No Messaging Service","id":"scenario-1-no-messaging-service"},{"depth":3,"value":"Scenario 2: Messaging Service used","id":"scenario-2-messaging-service-used"},{"depth":2,"value":"What's next?","id":"whats-next"}]},"scope":{}},"matter":{"title":"Track the Message Status of Outbound Messages","seo_description":"Learn how to track the status of outbound messages you send with Programmable Messaging in your web application. Track the sent and delivery status of SMS, MMS, and WhatsApp Messages using status callbacks. Understand the differences when using a Messaging Service.","include_in_llms_txt":true,"page_type":"docs","headings":[{"depth":2,"value":"Before you begin","id":"before-you-begin"},{"depth":2,"value":"How to track outbound message status","id":"how-to-track-outbound-message-status"},{"depth":2,"value":"Step 1. Set up a status callback endpoint","id":"step-1-set-up-a-status-callback-endpoint"},{"depth":3,"value":"How are status callback requests sent?","id":"how-are-status-callback-requests-sent"},{"depth":3,"value":"Implement a status callback handler (simplified example)","id":"implement-a-status-callback-handler-simplified-example"},{"depth":2,"value":"Step 2. Send a message with status callback URL","id":"step-2-send-a-message-with-status-callback-url"},{"depth":3,"value":"Scenario 1: No Messaging Service","id":"scenario-1-no-messaging-service"},{"depth":3,"value":"Scenario 2: Messaging Service used","id":"scenario-2-messaging-service-used"},{"depth":2,"value":"What's next?","id":"whats-next"}]},"sidebarMenu":{"name":"Programmable Messaging","path":"/docs/messaging","type":"file","children":[{"type":"directory","path":"","name":"Getting Started","children":[{"type":"file","path":"/docs/messaging/quickstart","name":"SMS developer quickstart"},{"type":"file","path":"/docs/messaging/quickstart/no-code-sms-studio-quickstart","name":"SMS no-code quickstart"},{"type":"directory","path":"","name":"Messaging onboarding guide","children":[{"type":"file","path":"/docs/messaging/onboarding","name":"Overview"},{"type":"file","path":"/docs/messaging/onboarding/sms-foundations","name":"1. SMS foundations"},{"type":"file","path":"/docs/messaging/onboarding/prepare-your-sender-strategy","name":"2. Prepare your sender strategy"},{"type":"file","path":"/docs/messaging/onboarding/build-your-account","name":"3. Build your account"},{"type":"file","path":"/docs/messaging/onboarding/monitor-your-application","name":"4. Monitor your application"}]},{"type":"file","path":"/docs/rcs/onboarding","name":"Get started with RCS messaging"},{"type":"file","path":"/docs/whatsapp/quickstart","name":"WhatsApp quickstarts"},{"type":"file","path":"/docs/messaging/channels/facebook-messenger","name":"Get started with Facebook Messenger"}]},{"type":"directory","path":"","name":"API reference","children":[{"type":"file","path":"/docs/messaging/api","name":"API overview"},{"type":"directory","path":"","name":"Messages resource","children":[{"type":"file","path":"/docs/messaging/api/message-resource","name":"Messages"},{"type":"file","path":"/docs/messaging/api/message-feedback-resource","name":"Feedback"},{"type":"file","path":"/docs/messaging/api/media-resource","name":"Media"}]},{"type":"directory","path":"","name":"Services resource","children":[{"type":"file","path":"/docs/messaging/api/service-resource","name":"Services"},{"type":"file","path":"/docs/messaging/api/alphasender-resource","name":"AlphaSenders"},{"type":"file","path":"/docs/messaging/api/messaging-service-channelsender-resource","name":"ChannelSenders"},{"type":"file","path":"/docs/messaging/api/destination-alphasender-resource","name":"DestinationAlphaSenders"},{"type":"file","path":"/docs/messaging/api/phonenumber-resource","name":"PhoneNumbers"},{"type":"file","path":"/docs/messaging/api/services-shortcode-resource","name":"ShortCodes"}]},{"type":"file","path":"/docs/messaging/api/deactivations-resource","name":"Deactivations resource"},{"type":"file","path":"/docs/messaging/api/short-code-resource","name":"ShortCodes resource"},{"type":"file","path":"/docs/messaging/api/tollfree-verification-resource","name":"Toll-free Verifications resource"},{"type":"directory","path":"","name":"A2P 10DLC","children":[{"type":"file","path":"/docs/messaging/api/brand-registration-resource","name":"BrandRegistrations"},{"type":"file","path":"/docs/messaging/api/brand-vetting-resource","name":"Vettings"},{"type":"file","path":"/docs/messaging/api/usapptoperson-resource","name":"Usa2p"},{"type":"file","path":"/docs/messaging/api/usapptopersonusecase-resource","name":"Usecases"}]},{"type":"directory","path":"","name":"Pricing API","children":[{"type":"file","path":"/docs/messaging/api/pricing","name":"Countries"}]}]},{"type":"directory","path":"","name":"Preventing Fraud","children":[{"type":"file","path":"/docs/messaging/guides/preventing-messaging-fraud","name":"Preventing Fraud in Programmable Messaging"},{"type":"file","path":"/docs/messaging/features/sms-pumping-protection-programmable-messaging","name":"SMS Pumping Protection"},{"type":"file","path":"/docs/messaging/features/messaging-insights/sms-pumping-protection-insights","name":"SMS Pumping Protection Insights"}]},{"type":"directory","path":"","name":"Tutorials","children":[{"type":"file","path":"/docs/messaging/tutorials/how-to-receive-and-reply","name":"Receive and reply to incoming messages"},{"type":"file","path":"/docs/messaging/tutorials/how-to-send-sms-messages","name":"Send SMS and MMS messages"},{"type":"file","path":"/docs/messaging/tutorials/appointment-reminders","name":"Send appointment reminders"},{"type":"file","path":"/docs/messaging/tutorials/how-to-retrieve-and-modify-message-history","name":"Retrieve and modify message history"},{"type":"file","path":"/docs/rcs/send-an-rcs-message","name":"Send and receive RCS messages"},{"type":"file","path":"/docs/messaging/tutorials/send-message-with-facebook-messenger","name":"Send messages with Facebook Messenger"},{"type":"file","path":"/docs/messaging/tutorials","name":"Browse all Messaging tutorials"}]},{"type":"directory","path":"","name":"Messaging Services","children":[{"type":"file","path":"/docs/messaging/services","name":"Overview"},{"type":"file","path":"/docs/messaging/tutorials/send-messages-with-messaging-services","name":"Get started with Messaging Services"},{"type":"file","path":"/docs/messaging/tutorials/advanced-opt-out","name":"Manage opt-ins and opt-outs"},{"type":"file","path":"/docs/messaging/guides/best-practices-at-scale","name":"Best Practices for Scaling with Messaging Services"},{"type":"file","path":"/docs/messaging/guides/scaling-queueing-latency","name":"Manage queueing and latency"},{"type":"file","path":"/docs/messaging/services/alphanumeric-sender-ids-in-messaging-services","name":"Alphanumeric Sender IDs"}]},{"type":"directory","path":"","name":"Messaging Features","children":[{"type":"file","path":"/docs/messaging/features/twilio-health-score-for-messaging","name":"Twilio Health Score for Messaging"},{"type":"file","path":"/docs/messaging/features/intelligent-alerts","name":"Intelligent Alerts"},{"type":"file","path":"/docs/messaging/features/intelligent-discovery-ai-assistant","name":"Intelligent Discovery AI Assistant"},{"type":"directory","path":"","name":"Link Shortening","children":[{"type":"file","path":"/docs/messaging/features/link-shortening","name":"Overview"},{"type":"file","path":"/docs/messaging/features/link-shortening/onboarding-guide","name":"Onboarding Guide"},{"type":"link","isExternal":true,"path":"https://www.twilio.com/en-us/blog/setup-link-shortening-click-tracking","name":"Advanced Guide to Link Shortening and Link Tracking with Twilio Messaging"},{"type":"link","isExternal":true,"path":"https://www.twilio.com/en-us/blog/archive/2023/link-shortening-and-click-tracking-ssl-faq","name":"Link Shortening and Click Tracking SSL FAQ"},{"type":"link","isExternal":true,"path":"https://www.twilio.com/en-us/blog/how-to-schedule-and-track-marketing-campaigns","name":"How to Schedule and Track Marketing Campaigns"},{"type":"link","isExternal":true,"path":"https://www.twilio.com/en-us/blog/engagement-suite","name":"Introducing Engagement Suite from Twilio Messaging"}]},{"type":"file","path":"/docs/messaging/features/messaging-logs","name":"Messaging Logs"},{"type":"file","path":"/docs/messaging/features/message-scheduling","name":"Message Scheduling"},{"type":"directory","path":"","name":"Messaging Insights","children":[{"type":"file","path":"/docs/messaging/features/messaging-insights","name":"Overview"},{"type":"file","path":"/docs/messaging/features/messaging-insights/dashboards","name":"Dashboards"}]},{"type":"file","path":"/docs/messaging/features/multi-tenancy","name":"Multi-Tenancy"},{"type":"file","path":"/docs/messaging/features/recommendations","name":"Recommendations"},{"type":"file","path":"/docs/messaging/features/sms-pumping-protection-programmable-messaging","name":"SMS Pumping Protection"},{"type":"file","path":"/docs/messaging/features/traffic-optimization-engine","name":"Traffic Optimization Engine"},{"type":"file","path":"/docs/messaging/features/traffic-shaping","name":"Traffic Shaping"},{"type":"file","path":"/docs/messaging/features/compliance-toolkit","name":"Compliance Toolkit"},{"type":"file","path":"/docs/messaging/features/consent-api","name":"Consent Management API"},{"type":"file","path":"/docs/messaging/features/contact-api","name":"Contact API"}]},{"type":"directory","path":"","name":"Usage Guides","children":[{"type":"file","path":"/docs/usage/tutorials/how-to-use-your-free-trial-account","name":"Get started with your Twilio trial account"},{"type":"file","path":"/docs/messaging/guides/guide-to-using-the-twilio-virtual-phone","name":"Test SMS Messaging with the Virtual Phone"},{"type":"file","path":"/docs/messaging/guides/preventing-messaging-fraud","name":"Preventing Fraud in Programmable Messaging"},{"type":"file","path":"/docs/messaging/guides/sending-international-sms-guide","name":"What to Know Before Sending International SMS Messages"},{"type":"file","path":"/docs/messaging/guides/sms-geo-permissions","name":"SMS Geo Permissions"},{"type":"file","path":"/docs/messaging/guides/webhook-request","name":"Twilio's request to your incoming message Webhook URL"},{"type":"file","path":"/docs/messaging/guides/outbound-message-status-in-status-callbacks","name":"Outbound Message Status in Status Callbacks"},{"type":"file","path":"/docs/messaging/guides/track-outbound-message-status","name":"Track the Message Status of Outbound Messages"},{"type":"file","path":"/docs/messaging/guides/outbound-message-logging","name":"Best Practices for Messaging Delivery Status Logging"},{"type":"file","path":"/docs/messaging/guides/privacy-message-redaction","name":"Safeguard with Message redaction"},{"type":"file","path":"/docs/messaging/guides/debugging-common-issues","name":"Debugging Common Issues with SMS"},{"type":"file","path":"/docs/messaging/guides/send-message-feedback-to-twilio","name":"How to Optimize Message Deliverability with Message Feedback"},{"type":"file","path":"/docs/messaging/guides/market-throughput-overview","name":"Market Throughput Overview"}]},{"type":"directory","path":"","name":"TwiML","children":[{"type":"file","path":"/docs/messaging/twiml","name":"Overview"},{"type":"file","path":"/docs/messaging/twiml/message","name":"\u003cMessage\u003e"},{"type":"file","path":"/docs/messaging/twiml/redirect","name":"\u003cRedirect\u003e"}]},{"type":"directory","path":"","name":"US A2P 10DLC","children":[{"type":"file","path":"/docs/messaging/compliance/a2p-10dlc/quickstart","name":"A2P 10DLC quickstart"},{"type":"file","path":"/docs/messaging/compliance/a2p-10dlc","name":"US A2P 10DLC Overview"},{"type":"file","path":"/docs/messaging/compliance/a2p-10dlc/collect-business-info","name":"Required Business Information"},{"type":"file","path":"/docs/messaging/compliance/a2p-10dlc/onboarding-for-government-and-non-profit-agencies","name":"Registration for Government and Non-Profit Agencies"},{"type":"directory","path":"","name":"Register Your Business","children":[{"type":"file","path":"/docs/messaging/compliance/a2p-10dlc/direct-standard-onboarding","name":"Direct Standard and Low-Volume Standard Registration"},{"type":"file","path":"/docs/messaging/compliance/a2p-10dlc/direct-sole-proprietor-registration-overview","name":"Direct Sole Proprietor Registration"},{"type":"file","path":"/docs/messaging/compliance/a2p-10dlc/transition-sole-proprietor-to-standard-brand","name":"Transition from a Sole Proprietor Brand to a Standard Brand"}]},{"type":"directory","path":"","name":"For ISVs: Register Your Customers","children":[{"type":"file","path":"/docs/messaging/compliance/a2p-10dlc/onboarding-isv","name":"ISV Onboarding Overview"},{"type":"file","path":"/docs/messaging/compliance/a2p-10dlc/onboarding-isv-api","name":"Standard and Low-Volume Standard Registration"},{"type":"file","path":"/docs/messaging/compliance/a2p-10dlc/onboarding-isv-api-sole-prop-new","name":"Sole Proprietor Registration"},{"type":"file","path":"/docs/messaging/compliance/a2p-10dlc/externally-registered-campaigns-api","name":"Use Externally Registered Campaigns"},{"type":"file","path":"/docs/messaging/compliance/a2p-10dlc/mock-brand-api","name":"Create Mock Brands and Campaigns"}]},{"type":"directory","path":"","name":"Troubleshooting A2P 10DLC Registrations","children":[{"type":"file","path":"/docs/messaging/compliance/a2p-10dlc/troubleshooting-a2p-brands","name":"Overview"},{"type":"file","path":"/docs/messaging/compliance/a2p-10dlc/troubleshooting-a2p-brands/troubleshooting-sole-proprietor-brand-registration-failures","name":"Troubleshooting Sole Proprietor Brand Registration Failures"},{"type":"file","path":"/docs/messaging/compliance/a2p-10dlc/troubleshooting-a2p-brands/troubleshooting-and-rectifying-a2p-standardlvs-brands","name":"Troubleshooting A2P 10DLC Standard/LVS Brands"},{"type":"file","path":"/docs/messaging/compliance/a2p-10dlc/troubleshooting-a2p-brands/troubleshooting-and-rectifying-a2p-campaigns-1","name":"Troubleshooting and rectifying Campaigns"},{"type":"file","path":"/docs/messaging/compliance/a2p-10dlc/troubleshooting-a2p-brands/troubleshooting-a2p-phone-number-registration-issues","name":"Troubleshooting A2P Phone Number registration issues"}]},{"type":"file","path":"/docs/messaging/compliance/a2p-10dlc/event-streams-setup","name":"Set Up Notifications for A2P 10DLC"}]},{"type":"directory","path":"","name":"Toll-Free Verification","children":[{"type":"file","path":"/docs/messaging/compliance/toll-free/console-onboarding","name":"Console Onboarding Guide"},{"type":"file","path":"/docs/messaging/compliance/toll-free/api-onboarding","name":"REST API Onboarding Guide"},{"type":"file","path":"/docs/messaging/compliance/toll-free/compliance-embeddable-onboarding","name":"Compliance Embeddable Onboarding Guide"}]},{"type":"directory","path":"","name":"Messaging Channels","children":[{"type":"file","path":"/docs/messaging/channels","name":"Overview"},{"type":"file","path":"/docs/whatsapp","name":"WhatsApp"},{"type":"file","path":"/docs/rcs","name":"RCS"},{"type":"file","path":"/docs/messaging/channels/facebook-messenger","name":"Facebook Messenger (Public Beta)"}]},{"type":"directory","path":"","name":"Other Messaging products","children":[{"type":"file","path":"/docs/content","name":"Content Editor: message templates for any messaging channel"},{"type":"file","path":"/docs/conversations-classic","name":"Conversations: two-way messaging"},{"type":"file","path":"/docs/verify","name":"Verify: user verification and one-time passwords"},{"type":"file","path":"/docs/bulk-messaging","name":"Bulk Messaging: send messages at scale"}]},{"type":"directory","path":"","name":"Related docs","children":[{"type":"file","path":"/docs/phone-numbers","name":"Phone Numbers"},{"type":"file","path":"/docs/usage","name":"General Usage"},{"type":"file","path":"/docs/iam","name":"Identity and Access Management (IAM)"}]}]},"editUrl":"/api/docs/v1/edit-page?p=%2Fmessaging%2Fguides%2Ftrack-outbound-message-status.mdx","isGated":false,"dateModified":"2026-03-09T18:47:22.000Z"},"__N_SSG":true},"page":"/docs/[...path]","query":{"path":["messaging","guides","track-outbound-message-status"]},"buildId":"prod-018f32bb2499f961f0c4781dff05ec4a449233da-33672","isFallback":false,"gsp":true,"scriptLoader":[]}</script></body></html>