[{"data":1,"prerenderedAt":2087},["ShallowReactive",2],{"docs-page:\u002Fdocs\u002Fhttp-api\u002Fkeyword-register":3,"docs-navigation":1719,"docs-surround:\u002Fdocs\u002Fhttp-api\u002Fkeyword-register":1860,"icon:building-bank":1865,"icon:building-store":1891,"icon:chart-bar":1906,"icon:chart-pie":1919,"icon:code":1926,"icon:discount":1936,"icon:heart-handshake":1950,"icon:mail-forward":1963,"icon:messages":1976,"icon:microphone-2":1983,"icon:photo":1990,"icon:plug-connected":2003,"icon:school":2022,"icon:speakerphone":2029,"icon:stethoscope":2039,"icon:trophy":2055,"icon:user-plus":2074},{"id":4,"title":5,"body":6,"description":1708,"extension":1709,"group":1710,"meta":1711,"navTitle":1710,"navigation":254,"path":1712,"rawbody":1713,"seo":1714,"status":1715,"stem":1716,"updated":1717,"__hash__":1718},"docs\u002Fdocs\u002F09.http-api\u002F07.keyword-register.md","Keyword register",{"type":7,"value":8,"toc":1703},"minimark",[9,16,43,60,65,70,85,89,1498,1501,1509,1699],[10,11],"endpoint",{"auth":12,"method":13,"response":14,"url":15},"userid","POST, GET","Plain text","https:\u002F\u002Fmzone.wire2air.com\u002Fmserver\u002Fservicemanager\u002Fapi\u002FRegisterKeywordAPI.aspx",[17,18,20],"callout",{"type":19},"note",[21,22,23,24,28,29,32,33,36,37,42],"p",{},"The previous docs gave this URL as ",[25,26,27],"code",{},"http:\u002F\u002F",". The ",[25,30,31],{},"mzone.wire2air.com"," host accepts ",[25,34,35],{},"https:\u002F\u002F",", so use it. See ",[38,39,41],"a",{"href":40},"\u002Fdocs\u002Fhttp-api\u002F#https","HTTPS"," and OQ-4.",[21,44,45,46,50,51,54,55,59],{},"Check that the keyword is free first with ",[38,47,49],{"href":48},"\u002Fdocs\u002Fhttp-api\u002Fkeyword-lookup\u002F","keyword lookup",". If registration fails with ",[25,52,53],{},"Err:711:Keyword credits not enough",", add credits with ",[38,56,58],{"href":57},"\u002Fdocs\u002Fhttp-api\u002Fkeyword-credits\u002F","keyword credits",".",[61,62,64],"h2",{"id":63},"parameters","Parameters",[66,67],"param-table",{":params":68,"id":69},"[{\"name\":\"USERID\",\"in\":\"body\",\"type\":\"string\",\"required\":true,\"description\":\"Your Wire2Air user ID.\"},{\"name\":\"PASSWORD\",\"in\":\"body\",\"type\":\"string\",\"required\":true,\"description\":\"Your Wire2Air password.\"},{\"name\":\"VASID\",\"in\":\"body\",\"type\":\"string\",\"required\":true,\"description\":\"Your VASID.\"},{\"name\":\"SHORTCODE\",\"in\":\"body\",\"type\":\"string\",\"required\":true,\"example\":\"27126\",\"description\":\"The short code to register the keyword on.\"},{\"name\":\"SERVICE NAME\",\"in\":\"body\",\"type\":\"string\",\"required\":true,\"example\":\"Order updates\",\"description\":\"A name for the service. See the note below about this parameter's name.\"},{\"name\":\"KEYWORD\",\"in\":\"body\",\"type\":\"string\",\"required\":true,\"example\":\"orders\",\"description\":\"The keyword. At least 4 characters (`Err:710`).\"},{\"name\":\"PROCESSORURL\",\"in\":\"body\",\"type\":\"string\",\"required\":true,\"example\":\"https:\u002F\u002Fexample.com\u002Fwire2air\u002Finbound\",\"description\":\"The URL of your web service that receives this keyword's messages. See [inbound SMS](\u002Fdocs\u002Fwebhooks\u002Finbound-sms\u002F).\"},{\"name\":\"HELPMSG\",\"in\":\"body\",\"type\":\"string\",\"required\":true,\"description\":\"The reply sent when someone texts HELP.\"},{\"name\":\"STOPMSG\",\"in\":\"body\",\"type\":\"string\",\"required\":true,\"description\":\"The reply sent when someone opts out (STOP).\"},{\"name\":\"ACTION\",\"in\":\"body\",\"type\":\"string\",\"required\":false,\"default\":\"ADD\",\"description\":\"`ADD` registers a new service with the keyword; `DELETE` deletes the keyword from the service.\"}]","param",[17,71,74],{"type":72,"question":73},"pending","OQ-22",[21,75,76,77,80,81,84],{},"The documentation names this parameter ",[25,78,79],{},"SERVICE NAME",", with a space, which cannot be told apart from other names once URL-encoded. The examples send ",[25,82,83],{},"SERVICENAME",", following the pattern of the other parameter names. Engineering has been asked for the exact name.",[61,86,88],{"id":87},"examples","Examples",[90,91,92,219,535,732,1086],"code-group",{},[93,94,100],"pre",{"className":95,"code":96,"filename":97,"language":98,"meta":99,"style":99},"language-bash shiki shiki-themes github-light-high-contrast github-dark-high-contrast","curl \"https:\u002F\u002Fmzone.wire2air.com\u002Fmserver\u002Fservicemanager\u002Fapi\u002FRegisterKeywordAPI.aspx\" \\\n  --data-urlencode \"USERID=YOUR_USERID\" \\\n  --data-urlencode \"PASSWORD=YOUR_PASSWORD\" \\\n  --data-urlencode \"VASID=YOUR_VASID\" \\\n  --data-urlencode \"SHORTCODE=27126\" \\\n  --data-urlencode \"SERVICENAME=Order updates\" \\\n  --data-urlencode \"KEYWORD=orders\" \\\n  --data-urlencode \"PROCESSORURL=https:\u002F\u002Fexample.com\u002Fwire2air\u002Finbound\" \\\n  --data-urlencode \"HELPMSG=Order updates from Example Co. Reply STOP to cancel.\" \\\n  --data-urlencode \"STOPMSG=You will no longer receive order updates.\" \\\n  --data-urlencode \"ACTION=ADD\"\n","cURL","bash","",[25,101,102,119,131,141,151,161,171,181,191,201,211],{"__ignoreMap":99},[103,104,107,111,115],"span",{"class":105,"line":106},"line",1,[103,108,110],{"class":109},"soyes","curl",[103,112,114],{"class":113},"sT6z2"," \"https:\u002F\u002Fmzone.wire2air.com\u002Fmserver\u002Fservicemanager\u002Fapi\u002FRegisterKeywordAPI.aspx\"",[103,116,118],{"class":117},"sHUrx"," \\\n",[103,120,122,126,129],{"class":105,"line":121},2,[103,123,125],{"class":124},"s-5SL","  --data-urlencode",[103,127,128],{"class":113}," \"USERID=YOUR_USERID\"",[103,130,118],{"class":117},[103,132,134,136,139],{"class":105,"line":133},3,[103,135,125],{"class":124},[103,137,138],{"class":113}," \"PASSWORD=YOUR_PASSWORD\"",[103,140,118],{"class":117},[103,142,144,146,149],{"class":105,"line":143},4,[103,145,125],{"class":124},[103,147,148],{"class":113}," \"VASID=YOUR_VASID\"",[103,150,118],{"class":117},[103,152,154,156,159],{"class":105,"line":153},5,[103,155,125],{"class":124},[103,157,158],{"class":113}," \"SHORTCODE=27126\"",[103,160,118],{"class":117},[103,162,164,166,169],{"class":105,"line":163},6,[103,165,125],{"class":124},[103,167,168],{"class":113}," \"SERVICENAME=Order updates\"",[103,170,118],{"class":117},[103,172,174,176,179],{"class":105,"line":173},7,[103,175,125],{"class":124},[103,177,178],{"class":113}," \"KEYWORD=orders\"",[103,180,118],{"class":117},[103,182,184,186,189],{"class":105,"line":183},8,[103,185,125],{"class":124},[103,187,188],{"class":113}," \"PROCESSORURL=https:\u002F\u002Fexample.com\u002Fwire2air\u002Finbound\"",[103,190,118],{"class":117},[103,192,194,196,199],{"class":105,"line":193},9,[103,195,125],{"class":124},[103,197,198],{"class":113}," \"HELPMSG=Order updates from Example Co. Reply STOP to cancel.\"",[103,200,118],{"class":117},[103,202,204,206,209],{"class":105,"line":203},10,[103,205,125],{"class":124},[103,207,208],{"class":113}," \"STOPMSG=You will no longer receive order updates.\"",[103,210,118],{"class":117},[103,212,214,216],{"class":105,"line":213},11,[103,215,125],{"class":124},[103,217,218],{"class":113}," \"ACTION=ADD\"\n",[93,220,225],{"className":221,"code":222,"filename":223,"language":224,"meta":99,"style":99},"language-python shiki shiki-themes github-light-high-contrast github-dark-high-contrast","import urllib.error\nimport urllib.parse\nimport urllib.request\n\nparams = urllib.parse.urlencode({\n    \"USERID\": \"YOUR_USERID\",\n    \"PASSWORD\": \"YOUR_PASSWORD\",\n    \"VASID\": \"YOUR_VASID\",\n    \"SHORTCODE\": \"27126\",\n    \"SERVICENAME\": \"Order updates\",\n    \"KEYWORD\": \"orders\",\n    \"PROCESSORURL\": \"https:\u002F\u002Fexample.com\u002Fwire2air\u002Finbound\",\n    \"HELPMSG\": \"Order updates from Example Co. Reply STOP to cancel.\",\n    \"STOPMSG\": \"You will no longer receive order updates.\",\n    \"ACTION\": \"ADD\",\n})\nrequest = urllib.request.Request(\n    \"https:\u002F\u002Fmzone.wire2air.com\u002Fmserver\u002Fservicemanager\u002Fapi\u002FRegisterKeywordAPI.aspx\",\n    data=params.encode(\"utf-8\"),\n    method=\"POST\",\n)\n\ntry:\n    with urllib.request.urlopen(request, timeout=30) as response:\n        print(response.status, response.read().decode(\"utf-8\"))\nexcept urllib.error.HTTPError as error:\n    print(error.code, error.read().decode(\"utf-8\"))\n","Python 3","python",[25,226,227,236,243,250,256,267,281,293,305,317,329,341,354,367,380,393,399,410,418,435,448,454,459,468,494,508,522],{"__ignoreMap":99},[103,228,229,232],{"class":105,"line":106},[103,230,231],{"class":117},"import",[103,233,235],{"class":234},"suds8"," urllib.error\n",[103,237,238,240],{"class":105,"line":121},[103,239,231],{"class":117},[103,241,242],{"class":234}," urllib.parse\n",[103,244,245,247],{"class":105,"line":133},[103,246,231],{"class":117},[103,248,249],{"class":234}," urllib.request\n",[103,251,252],{"class":105,"line":143},[103,253,255],{"emptyLinePlaceholder":254},true,"\n",[103,257,258,261,264],{"class":105,"line":153},[103,259,260],{"class":234},"params ",[103,262,263],{"class":117},"=",[103,265,266],{"class":234}," urllib.parse.urlencode({\n",[103,268,269,272,275,278],{"class":105,"line":163},[103,270,271],{"class":113},"    \"USERID\"",[103,273,274],{"class":234},": ",[103,276,277],{"class":113},"\"YOUR_USERID\"",[103,279,280],{"class":234},",\n",[103,282,283,286,288,291],{"class":105,"line":173},[103,284,285],{"class":113},"    \"PASSWORD\"",[103,287,274],{"class":234},[103,289,290],{"class":113},"\"YOUR_PASSWORD\"",[103,292,280],{"class":234},[103,294,295,298,300,303],{"class":105,"line":183},[103,296,297],{"class":113},"    \"VASID\"",[103,299,274],{"class":234},[103,301,302],{"class":113},"\"YOUR_VASID\"",[103,304,280],{"class":234},[103,306,307,310,312,315],{"class":105,"line":193},[103,308,309],{"class":113},"    \"SHORTCODE\"",[103,311,274],{"class":234},[103,313,314],{"class":113},"\"27126\"",[103,316,280],{"class":234},[103,318,319,322,324,327],{"class":105,"line":203},[103,320,321],{"class":113},"    \"SERVICENAME\"",[103,323,274],{"class":234},[103,325,326],{"class":113},"\"Order updates\"",[103,328,280],{"class":234},[103,330,331,334,336,339],{"class":105,"line":213},[103,332,333],{"class":113},"    \"KEYWORD\"",[103,335,274],{"class":234},[103,337,338],{"class":113},"\"orders\"",[103,340,280],{"class":234},[103,342,344,347,349,352],{"class":105,"line":343},12,[103,345,346],{"class":113},"    \"PROCESSORURL\"",[103,348,274],{"class":234},[103,350,351],{"class":113},"\"https:\u002F\u002Fexample.com\u002Fwire2air\u002Finbound\"",[103,353,280],{"class":234},[103,355,357,360,362,365],{"class":105,"line":356},13,[103,358,359],{"class":113},"    \"HELPMSG\"",[103,361,274],{"class":234},[103,363,364],{"class":113},"\"Order updates from Example Co. Reply STOP to cancel.\"",[103,366,280],{"class":234},[103,368,370,373,375,378],{"class":105,"line":369},14,[103,371,372],{"class":113},"    \"STOPMSG\"",[103,374,274],{"class":234},[103,376,377],{"class":113},"\"You will no longer receive order updates.\"",[103,379,280],{"class":234},[103,381,383,386,388,391],{"class":105,"line":382},15,[103,384,385],{"class":113},"    \"ACTION\"",[103,387,274],{"class":234},[103,389,390],{"class":113},"\"ADD\"",[103,392,280],{"class":234},[103,394,396],{"class":105,"line":395},16,[103,397,398],{"class":234},"})\n",[103,400,402,405,407],{"class":105,"line":401},17,[103,403,404],{"class":234},"request ",[103,406,263],{"class":117},[103,408,409],{"class":234}," urllib.request.Request(\n",[103,411,413,416],{"class":105,"line":412},18,[103,414,415],{"class":113},"    \"https:\u002F\u002Fmzone.wire2air.com\u002Fmserver\u002Fservicemanager\u002Fapi\u002FRegisterKeywordAPI.aspx\"",[103,417,280],{"class":234},[103,419,421,424,426,429,432],{"class":105,"line":420},19,[103,422,423],{"class":109},"    data",[103,425,263],{"class":117},[103,427,428],{"class":234},"params.encode(",[103,430,431],{"class":113},"\"utf-8\"",[103,433,434],{"class":234},"),\n",[103,436,438,441,443,446],{"class":105,"line":437},20,[103,439,440],{"class":109},"    method",[103,442,263],{"class":117},[103,444,445],{"class":113},"\"POST\"",[103,447,280],{"class":234},[103,449,451],{"class":105,"line":450},21,[103,452,453],{"class":234},")\n",[103,455,457],{"class":105,"line":456},22,[103,458,255],{"emptyLinePlaceholder":254},[103,460,462,465],{"class":105,"line":461},23,[103,463,464],{"class":117},"try",[103,466,467],{"class":234},":\n",[103,469,471,474,477,480,482,485,488,491],{"class":105,"line":470},24,[103,472,473],{"class":117},"    with",[103,475,476],{"class":234}," urllib.request.urlopen(request, ",[103,478,479],{"class":109},"timeout",[103,481,263],{"class":117},[103,483,484],{"class":124},"30",[103,486,487],{"class":234},") ",[103,489,490],{"class":117},"as",[103,492,493],{"class":234}," response:\n",[103,495,497,500,503,505],{"class":105,"line":496},25,[103,498,499],{"class":124},"        print",[103,501,502],{"class":234},"(response.status, response.read().decode(",[103,504,431],{"class":113},[103,506,507],{"class":234},"))\n",[103,509,511,514,517,519],{"class":105,"line":510},26,[103,512,513],{"class":117},"except",[103,515,516],{"class":234}," urllib.error.HTTPError ",[103,518,490],{"class":117},[103,520,521],{"class":234}," error:\n",[103,523,525,528,531,533],{"class":105,"line":524},27,[103,526,527],{"class":124},"    print",[103,529,530],{"class":234},"(error.code, error.read().decode(",[103,532,431],{"class":113},[103,534,507],{"class":234},[93,536,541],{"className":537,"code":538,"filename":539,"language":540,"meta":99,"style":99},"language-javascript shiki shiki-themes github-light-high-contrast github-dark-high-contrast","const params = new URLSearchParams({\n  USERID: \"YOUR_USERID\",\n  PASSWORD: \"YOUR_PASSWORD\",\n  VASID: \"YOUR_VASID\",\n  SHORTCODE: \"27126\",\n  SERVICENAME: \"Order updates\",\n  KEYWORD: \"orders\",\n  PROCESSORURL: \"https:\u002F\u002Fexample.com\u002Fwire2air\u002Finbound\",\n  HELPMSG: \"Order updates from Example Co. Reply STOP to cancel.\",\n  STOPMSG: \"You will no longer receive order updates.\",\n  ACTION: \"ADD\",\n});\n\nconst response = await fetch(\"https:\u002F\u002Fmzone.wire2air.com\u002Fmserver\u002Fservicemanager\u002Fapi\u002FRegisterKeywordAPI.aspx\", {\n  method: \"POST\",\n  body: params, \u002F\u002F sent as application\u002Fx-www-form-urlencoded\n});\nconsole.log(response.status, await response.text());\n","Node","javascript",[25,542,543,564,573,582,591,600,609,618,627,636,645,654,659,663,687,696,705,709],{"__ignoreMap":99},[103,544,545,548,551,554,557,561],{"class":105,"line":106},[103,546,547],{"class":117},"const",[103,549,550],{"class":124}," params",[103,552,553],{"class":117}," =",[103,555,556],{"class":117}," new",[103,558,560],{"class":559},"sKwhi"," URLSearchParams",[103,562,563],{"class":234},"({\n",[103,565,566,569,571],{"class":105,"line":121},[103,567,568],{"class":234},"  USERID: ",[103,570,277],{"class":113},[103,572,280],{"class":234},[103,574,575,578,580],{"class":105,"line":133},[103,576,577],{"class":234},"  PASSWORD: ",[103,579,290],{"class":113},[103,581,280],{"class":234},[103,583,584,587,589],{"class":105,"line":143},[103,585,586],{"class":234},"  VASID: ",[103,588,302],{"class":113},[103,590,280],{"class":234},[103,592,593,596,598],{"class":105,"line":153},[103,594,595],{"class":234},"  SHORTCODE: ",[103,597,314],{"class":113},[103,599,280],{"class":234},[103,601,602,605,607],{"class":105,"line":163},[103,603,604],{"class":234},"  SERVICENAME: ",[103,606,326],{"class":113},[103,608,280],{"class":234},[103,610,611,614,616],{"class":105,"line":173},[103,612,613],{"class":234},"  KEYWORD: ",[103,615,338],{"class":113},[103,617,280],{"class":234},[103,619,620,623,625],{"class":105,"line":183},[103,621,622],{"class":234},"  PROCESSORURL: ",[103,624,351],{"class":113},[103,626,280],{"class":234},[103,628,629,632,634],{"class":105,"line":193},[103,630,631],{"class":234},"  HELPMSG: ",[103,633,364],{"class":113},[103,635,280],{"class":234},[103,637,638,641,643],{"class":105,"line":203},[103,639,640],{"class":234},"  STOPMSG: ",[103,642,377],{"class":113},[103,644,280],{"class":234},[103,646,647,650,652],{"class":105,"line":213},[103,648,649],{"class":234},"  ACTION: ",[103,651,390],{"class":113},[103,653,280],{"class":234},[103,655,656],{"class":105,"line":343},[103,657,658],{"class":234},"});\n",[103,660,661],{"class":105,"line":356},[103,662,255],{"emptyLinePlaceholder":254},[103,664,665,667,670,672,675,678,681,684],{"class":105,"line":369},[103,666,547],{"class":117},[103,668,669],{"class":124}," response",[103,671,553],{"class":117},[103,673,674],{"class":117}," await",[103,676,677],{"class":559}," fetch",[103,679,680],{"class":234},"(",[103,682,683],{"class":113},"\"https:\u002F\u002Fmzone.wire2air.com\u002Fmserver\u002Fservicemanager\u002Fapi\u002FRegisterKeywordAPI.aspx\"",[103,685,686],{"class":234},", {\n",[103,688,689,692,694],{"class":105,"line":382},[103,690,691],{"class":234},"  method: ",[103,693,445],{"class":113},[103,695,280],{"class":234},[103,697,698,701],{"class":105,"line":395},[103,699,700],{"class":234},"  body: params, ",[103,702,704],{"class":703},"sLBg1","\u002F\u002F sent as application\u002Fx-www-form-urlencoded\n",[103,706,707],{"class":105,"line":401},[103,708,658],{"class":234},[103,710,711,714,717,720,723,726,729],{"class":105,"line":412},[103,712,713],{"class":234},"console.",[103,715,716],{"class":559},"log",[103,718,719],{"class":234},"(response.status, ",[103,721,722],{"class":117},"await",[103,724,725],{"class":234}," response.",[103,727,728],{"class":559},"text",[103,730,731],{"class":234},"());\n",[93,733,738],{"className":734,"code":735,"filename":736,"language":737,"meta":99,"style":99},"language-php shiki shiki-themes github-light-high-contrast github-dark-high-contrast","\u003C?php\n\n$params = http_build_query([\n    'USERID' => 'YOUR_USERID',\n    'PASSWORD' => 'YOUR_PASSWORD',\n    'VASID' => 'YOUR_VASID',\n    'SHORTCODE' => '27126',\n    'SERVICENAME' => 'Order updates',\n    'KEYWORD' => 'orders',\n    'PROCESSORURL' => 'https:\u002F\u002Fexample.com\u002Fwire2air\u002Finbound',\n    'HELPMSG' => 'Order updates from Example Co. Reply STOP to cancel.',\n    'STOPMSG' => 'You will no longer receive order updates.',\n    'ACTION' => 'ADD',\n]);\n\n$ch = curl_init('https:\u002F\u002Fmzone.wire2air.com\u002Fmserver\u002Fservicemanager\u002Fapi\u002FRegisterKeywordAPI.aspx');\ncurl_setopt_array($ch, [\n    CURLOPT_POST => true,\n    CURLOPT_POSTFIELDS => $params,\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_TIMEOUT => 30,\n]);\n\n$body = curl_exec($ch);\nif ($body === false) {\n    echo 'Request failed: ' . curl_error($ch) . PHP_EOL;\n} else {\n    echo curl_getinfo($ch, CURLINFO_HTTP_CODE) . ' ' . $body . PHP_EOL;\n}\ncurl_close($ch);\n","PHP","php",[25,739,740,748,752,765,778,790,802,814,826,838,850,862,874,886,891,895,913,921,933,943,954,966,970,974,987,1004,1029,1040,1072,1078],{"__ignoreMap":99},[103,741,742,745],{"class":105,"line":106},[103,743,744],{"class":117},"\u003C?",[103,746,747],{"class":124},"php\n",[103,749,750],{"class":105,"line":121},[103,751,255],{"emptyLinePlaceholder":254},[103,753,754,757,759,762],{"class":105,"line":133},[103,755,756],{"class":234},"$params ",[103,758,263],{"class":117},[103,760,761],{"class":124}," http_build_query",[103,763,764],{"class":234},"([\n",[103,766,767,770,773,776],{"class":105,"line":143},[103,768,769],{"class":113},"    'USERID'",[103,771,772],{"class":117}," =>",[103,774,775],{"class":113}," 'YOUR_USERID'",[103,777,280],{"class":234},[103,779,780,783,785,788],{"class":105,"line":153},[103,781,782],{"class":113},"    'PASSWORD'",[103,784,772],{"class":117},[103,786,787],{"class":113}," 'YOUR_PASSWORD'",[103,789,280],{"class":234},[103,791,792,795,797,800],{"class":105,"line":163},[103,793,794],{"class":113},"    'VASID'",[103,796,772],{"class":117},[103,798,799],{"class":113}," 'YOUR_VASID'",[103,801,280],{"class":234},[103,803,804,807,809,812],{"class":105,"line":173},[103,805,806],{"class":113},"    'SHORTCODE'",[103,808,772],{"class":117},[103,810,811],{"class":113}," '27126'",[103,813,280],{"class":234},[103,815,816,819,821,824],{"class":105,"line":183},[103,817,818],{"class":113},"    'SERVICENAME'",[103,820,772],{"class":117},[103,822,823],{"class":113}," 'Order updates'",[103,825,280],{"class":234},[103,827,828,831,833,836],{"class":105,"line":193},[103,829,830],{"class":113},"    'KEYWORD'",[103,832,772],{"class":117},[103,834,835],{"class":113}," 'orders'",[103,837,280],{"class":234},[103,839,840,843,845,848],{"class":105,"line":203},[103,841,842],{"class":113},"    'PROCESSORURL'",[103,844,772],{"class":117},[103,846,847],{"class":113}," 'https:\u002F\u002Fexample.com\u002Fwire2air\u002Finbound'",[103,849,280],{"class":234},[103,851,852,855,857,860],{"class":105,"line":213},[103,853,854],{"class":113},"    'HELPMSG'",[103,856,772],{"class":117},[103,858,859],{"class":113}," 'Order updates from Example Co. Reply STOP to cancel.'",[103,861,280],{"class":234},[103,863,864,867,869,872],{"class":105,"line":343},[103,865,866],{"class":113},"    'STOPMSG'",[103,868,772],{"class":117},[103,870,871],{"class":113}," 'You will no longer receive order updates.'",[103,873,280],{"class":234},[103,875,876,879,881,884],{"class":105,"line":356},[103,877,878],{"class":113},"    'ACTION'",[103,880,772],{"class":117},[103,882,883],{"class":113}," 'ADD'",[103,885,280],{"class":234},[103,887,888],{"class":105,"line":369},[103,889,890],{"class":234},"]);\n",[103,892,893],{"class":105,"line":382},[103,894,255],{"emptyLinePlaceholder":254},[103,896,897,900,902,905,907,910],{"class":105,"line":395},[103,898,899],{"class":234},"$ch ",[103,901,263],{"class":117},[103,903,904],{"class":124}," curl_init",[103,906,680],{"class":234},[103,908,909],{"class":113},"'https:\u002F\u002Fmzone.wire2air.com\u002Fmserver\u002Fservicemanager\u002Fapi\u002FRegisterKeywordAPI.aspx'",[103,911,912],{"class":234},");\n",[103,914,915,918],{"class":105,"line":401},[103,916,917],{"class":124},"curl_setopt_array",[103,919,920],{"class":234},"($ch, [\n",[103,922,923,926,928,931],{"class":105,"line":412},[103,924,925],{"class":124},"    CURLOPT_POST",[103,927,772],{"class":117},[103,929,930],{"class":124}," true",[103,932,280],{"class":234},[103,934,935,938,940],{"class":105,"line":420},[103,936,937],{"class":124},"    CURLOPT_POSTFIELDS",[103,939,772],{"class":117},[103,941,942],{"class":234}," $params,\n",[103,944,945,948,950,952],{"class":105,"line":437},[103,946,947],{"class":124},"    CURLOPT_RETURNTRANSFER",[103,949,772],{"class":117},[103,951,930],{"class":124},[103,953,280],{"class":234},[103,955,956,959,961,964],{"class":105,"line":450},[103,957,958],{"class":124},"    CURLOPT_TIMEOUT",[103,960,772],{"class":117},[103,962,963],{"class":124}," 30",[103,965,280],{"class":234},[103,967,968],{"class":105,"line":456},[103,969,890],{"class":234},[103,971,972],{"class":105,"line":461},[103,973,255],{"emptyLinePlaceholder":254},[103,975,976,979,981,984],{"class":105,"line":470},[103,977,978],{"class":234},"$body ",[103,980,263],{"class":117},[103,982,983],{"class":124}," curl_exec",[103,985,986],{"class":234},"($ch);\n",[103,988,989,992,995,998,1001],{"class":105,"line":496},[103,990,991],{"class":117},"if",[103,993,994],{"class":234}," ($body ",[103,996,997],{"class":117},"===",[103,999,1000],{"class":124}," false",[103,1002,1003],{"class":234},") {\n",[103,1005,1006,1009,1012,1015,1018,1021,1023,1026],{"class":105,"line":510},[103,1007,1008],{"class":124},"    echo",[103,1010,1011],{"class":113}," 'Request failed: '",[103,1013,1014],{"class":117}," .",[103,1016,1017],{"class":124}," curl_error",[103,1019,1020],{"class":234},"($ch) ",[103,1022,59],{"class":117},[103,1024,1025],{"class":124}," PHP_EOL",[103,1027,1028],{"class":234},";\n",[103,1030,1031,1034,1037],{"class":105,"line":524},[103,1032,1033],{"class":234},"} ",[103,1035,1036],{"class":117},"else",[103,1038,1039],{"class":234}," {\n",[103,1041,1043,1045,1048,1051,1054,1056,1058,1061,1063,1066,1068,1070],{"class":105,"line":1042},28,[103,1044,1008],{"class":124},[103,1046,1047],{"class":124}," curl_getinfo",[103,1049,1050],{"class":234},"($ch, ",[103,1052,1053],{"class":124},"CURLINFO_HTTP_CODE",[103,1055,487],{"class":234},[103,1057,59],{"class":117},[103,1059,1060],{"class":113}," ' '",[103,1062,1014],{"class":117},[103,1064,1065],{"class":234}," $body ",[103,1067,59],{"class":117},[103,1069,1025],{"class":124},[103,1071,1028],{"class":234},[103,1073,1075],{"class":105,"line":1074},29,[103,1076,1077],{"class":234},"}\n",[103,1079,1081,1084],{"class":105,"line":1080},30,[103,1082,1083],{"class":124},"curl_close",[103,1085,986],{"class":234},[93,1087,1092],{"className":1088,"code":1089,"filename":1090,"language":1091,"meta":99,"style":99},"language-csharp shiki shiki-themes github-light-high-contrast github-dark-high-contrast","using System;\nusing System.Collections.Generic;\nusing System.Net.Http;\n\nvar parameters = new Dictionary\u003Cstring, string>\n{\n    [\"USERID\"] = \"YOUR_USERID\",\n    [\"PASSWORD\"] = \"YOUR_PASSWORD\",\n    [\"VASID\"] = \"YOUR_VASID\",\n    [\"SHORTCODE\"] = \"27126\",\n    [\"SERVICENAME\"] = \"Order updates\",\n    [\"KEYWORD\"] = \"orders\",\n    [\"PROCESSORURL\"] = \"https:\u002F\u002Fexample.com\u002Fwire2air\u002Finbound\",\n    [\"HELPMSG\"] = \"Order updates from Example Co. Reply STOP to cancel.\",\n    [\"STOPMSG\"] = \"You will no longer receive order updates.\",\n    [\"ACTION\"] = \"ADD\",\n};\n\nusing var client = new HttpClient();\nusing var request = new HttpRequestMessage(HttpMethod.Post, \"https:\u002F\u002Fmzone.wire2air.com\u002Fmserver\u002Fservicemanager\u002Fapi\u002FRegisterKeywordAPI.aspx\")\n{\n    Content = new FormUrlEncodedContent(parameters),\n};\n\nusing var response = await client.SendAsync(request);\nConsole.WriteLine($\"{(int)response.StatusCode} {await response.Content.ReadAsStringAsync()}\");\n","C#","csharp",[25,1093,1094,1104,1122,1140,1144,1173,1178,1196,1212,1228,1244,1260,1276,1292,1308,1324,1340,1345,1349,1369,1392,1396,1411,1415,1419,1440],{"__ignoreMap":99},[103,1095,1096,1099,1102],{"class":105,"line":106},[103,1097,1098],{"class":117},"using",[103,1100,1101],{"class":109}," System",[103,1103,1028],{"class":234},[103,1105,1106,1108,1110,1112,1115,1117,1120],{"class":105,"line":121},[103,1107,1098],{"class":117},[103,1109,1101],{"class":109},[103,1111,59],{"class":234},[103,1113,1114],{"class":109},"Collections",[103,1116,59],{"class":234},[103,1118,1119],{"class":109},"Generic",[103,1121,1028],{"class":234},[103,1123,1124,1126,1128,1130,1133,1135,1138],{"class":105,"line":133},[103,1125,1098],{"class":117},[103,1127,1101],{"class":109},[103,1129,59],{"class":234},[103,1131,1132],{"class":109},"Net",[103,1134,59],{"class":234},[103,1136,1137],{"class":109},"Http",[103,1139,1028],{"class":234},[103,1141,1142],{"class":105,"line":143},[103,1143,255],{"emptyLinePlaceholder":254},[103,1145,1146,1149,1152,1154,1156,1159,1162,1165,1168,1170],{"class":105,"line":153},[103,1147,1148],{"class":117},"var",[103,1150,1151],{"class":109}," parameters",[103,1153,553],{"class":117},[103,1155,556],{"class":117},[103,1157,1158],{"class":109}," Dictionary",[103,1160,1161],{"class":234},"\u003C",[103,1163,1164],{"class":117},"string",[103,1166,1167],{"class":234},", ",[103,1169,1164],{"class":117},[103,1171,1172],{"class":234},">\n",[103,1174,1175],{"class":105,"line":163},[103,1176,1177],{"class":234},"{\n",[103,1179,1180,1183,1186,1189,1191,1194],{"class":105,"line":173},[103,1181,1182],{"class":234},"    [",[103,1184,1185],{"class":113},"\"USERID\"",[103,1187,1188],{"class":234},"] ",[103,1190,263],{"class":117},[103,1192,1193],{"class":113}," \"YOUR_USERID\"",[103,1195,280],{"class":234},[103,1197,1198,1200,1203,1205,1207,1210],{"class":105,"line":183},[103,1199,1182],{"class":234},[103,1201,1202],{"class":113},"\"PASSWORD\"",[103,1204,1188],{"class":234},[103,1206,263],{"class":117},[103,1208,1209],{"class":113}," \"YOUR_PASSWORD\"",[103,1211,280],{"class":234},[103,1213,1214,1216,1219,1221,1223,1226],{"class":105,"line":193},[103,1215,1182],{"class":234},[103,1217,1218],{"class":113},"\"VASID\"",[103,1220,1188],{"class":234},[103,1222,263],{"class":117},[103,1224,1225],{"class":113}," \"YOUR_VASID\"",[103,1227,280],{"class":234},[103,1229,1230,1232,1235,1237,1239,1242],{"class":105,"line":203},[103,1231,1182],{"class":234},[103,1233,1234],{"class":113},"\"SHORTCODE\"",[103,1236,1188],{"class":234},[103,1238,263],{"class":117},[103,1240,1241],{"class":113}," \"27126\"",[103,1243,280],{"class":234},[103,1245,1246,1248,1251,1253,1255,1258],{"class":105,"line":213},[103,1247,1182],{"class":234},[103,1249,1250],{"class":113},"\"SERVICENAME\"",[103,1252,1188],{"class":234},[103,1254,263],{"class":117},[103,1256,1257],{"class":113}," \"Order updates\"",[103,1259,280],{"class":234},[103,1261,1262,1264,1267,1269,1271,1274],{"class":105,"line":343},[103,1263,1182],{"class":234},[103,1265,1266],{"class":113},"\"KEYWORD\"",[103,1268,1188],{"class":234},[103,1270,263],{"class":117},[103,1272,1273],{"class":113}," \"orders\"",[103,1275,280],{"class":234},[103,1277,1278,1280,1283,1285,1287,1290],{"class":105,"line":356},[103,1279,1182],{"class":234},[103,1281,1282],{"class":113},"\"PROCESSORURL\"",[103,1284,1188],{"class":234},[103,1286,263],{"class":117},[103,1288,1289],{"class":113}," \"https:\u002F\u002Fexample.com\u002Fwire2air\u002Finbound\"",[103,1291,280],{"class":234},[103,1293,1294,1296,1299,1301,1303,1306],{"class":105,"line":369},[103,1295,1182],{"class":234},[103,1297,1298],{"class":113},"\"HELPMSG\"",[103,1300,1188],{"class":234},[103,1302,263],{"class":117},[103,1304,1305],{"class":113}," \"Order updates from Example Co. Reply STOP to cancel.\"",[103,1307,280],{"class":234},[103,1309,1310,1312,1315,1317,1319,1322],{"class":105,"line":382},[103,1311,1182],{"class":234},[103,1313,1314],{"class":113},"\"STOPMSG\"",[103,1316,1188],{"class":234},[103,1318,263],{"class":117},[103,1320,1321],{"class":113}," \"You will no longer receive order updates.\"",[103,1323,280],{"class":234},[103,1325,1326,1328,1331,1333,1335,1338],{"class":105,"line":395},[103,1327,1182],{"class":234},[103,1329,1330],{"class":113},"\"ACTION\"",[103,1332,1188],{"class":234},[103,1334,263],{"class":117},[103,1336,1337],{"class":113}," \"ADD\"",[103,1339,280],{"class":234},[103,1341,1342],{"class":105,"line":401},[103,1343,1344],{"class":234},"};\n",[103,1346,1347],{"class":105,"line":412},[103,1348,255],{"emptyLinePlaceholder":254},[103,1350,1351,1353,1356,1359,1361,1363,1366],{"class":105,"line":420},[103,1352,1098],{"class":117},[103,1354,1355],{"class":117}," var",[103,1357,1358],{"class":109}," client",[103,1360,553],{"class":117},[103,1362,556],{"class":117},[103,1364,1365],{"class":109}," HttpClient",[103,1367,1368],{"class":234},"();\n",[103,1370,1371,1373,1375,1378,1380,1382,1385,1388,1390],{"class":105,"line":437},[103,1372,1098],{"class":117},[103,1374,1355],{"class":117},[103,1376,1377],{"class":109}," request",[103,1379,553],{"class":117},[103,1381,556],{"class":117},[103,1383,1384],{"class":109}," HttpRequestMessage",[103,1386,1387],{"class":234},"(HttpMethod.Post, ",[103,1389,683],{"class":113},[103,1391,453],{"class":234},[103,1393,1394],{"class":105,"line":450},[103,1395,1177],{"class":234},[103,1397,1398,1401,1403,1405,1408],{"class":105,"line":456},[103,1399,1400],{"class":234},"    Content ",[103,1402,263],{"class":117},[103,1404,556],{"class":117},[103,1406,1407],{"class":109}," FormUrlEncodedContent",[103,1409,1410],{"class":234},"(parameters),\n",[103,1412,1413],{"class":105,"line":461},[103,1414,1344],{"class":234},[103,1416,1417],{"class":105,"line":470},[103,1418,255],{"emptyLinePlaceholder":254},[103,1420,1421,1423,1425,1427,1429,1431,1434,1437],{"class":105,"line":496},[103,1422,1098],{"class":117},[103,1424,1355],{"class":117},[103,1426,669],{"class":109},[103,1428,553],{"class":117},[103,1430,674],{"class":117},[103,1432,1433],{"class":234}," client.",[103,1435,1436],{"class":559},"SendAsync",[103,1438,1439],{"class":234},"(request);\n",[103,1441,1442,1445,1448,1450,1453,1456,1459,1462,1465,1467,1470,1473,1476,1478,1480,1482,1485,1487,1490,1493,1496],{"class":105,"line":510},[103,1443,1444],{"class":234},"Console.",[103,1446,1447],{"class":559},"WriteLine",[103,1449,680],{"class":234},[103,1451,1452],{"class":113},"$\"",[103,1454,1455],{"class":113},"{(",[103,1457,1458],{"class":117},"int",[103,1460,1461],{"class":113},")",[103,1463,1464],{"class":234},"response",[103,1466,59],{"class":113},[103,1468,1469],{"class":234},"StatusCode",[103,1471,1472],{"class":113},"}",[103,1474,1475],{"class":113}," {",[103,1477,722],{"class":117},[103,1479,669],{"class":234},[103,1481,59],{"class":113},[103,1483,1484],{"class":234},"Content",[103,1486,59],{"class":113},[103,1488,1489],{"class":559},"ReadAsStringAsync",[103,1491,1492],{"class":113},"()}",[103,1494,1495],{"class":113},"\"",[103,1497,912],{"class":234},[61,1499,1500],{"id":1464},"Response",[93,1502,1507],{"className":1503,"code":1505,"filename":1506,"language":728,"meta":99},[1504],"language-text","SERVICEID:SYSTEM GENERATED SERVICEID\n","Success",[25,1508,1505],{"__ignoreMap":99},[1510,1511,1512,1525],"table",{},[1513,1514,1515],"thead",{},[1516,1517,1518,1522],"tr",{},[1519,1520,1521],"th",{},"Error",[1519,1523,1524],{},"Meaning",[1526,1527,1528,1539,1552,1564,1576,1588,1600,1610,1620,1632,1644,1656,1666,1675,1685],"tbody",{},[1516,1529,1530,1536],{},[1531,1532,1533],"td",{},[25,1534,1535],{},"Err:300:Invalid Userid or password",[1531,1537,1538],{},"Wrong user ID or password.",[1516,1540,1541,1546],{},[1531,1542,1543],{},[25,1544,1545],{},"Err:700:Missing Shortcode",[1531,1547,1548,1551],{},[25,1549,1550],{},"SHORTCODE"," is missing.",[1516,1553,1554,1559],{},[1531,1555,1556],{},[25,1557,1558],{},"Err:701:Missing VASID",[1531,1560,1561,1551],{},[25,1562,1563],{},"VASID",[1516,1565,1566,1571],{},[1531,1567,1568],{},[25,1569,1570],{},"Err:702:Missing Keyword",[1531,1572,1573,1551],{},[25,1574,1575],{},"KEYWORD",[1516,1577,1578,1583],{},[1531,1579,1580],{},[25,1581,1582],{},"Err:703:Missing User Name",[1531,1584,1585,1551],{},[25,1586,1587],{},"USERID",[1516,1589,1590,1595],{},[1531,1591,1592],{},[25,1593,1594],{},"Err:704:Missing Password",[1531,1596,1597,1551],{},[25,1598,1599],{},"PASSWORD",[1516,1601,1602,1607],{},[1531,1603,1604],{},[25,1605,1606],{},"Err:705:Keyword is taken, Please try another keyword",[1531,1608,1609],{},"The keyword is already in use on this short code.",[1516,1611,1612,1617],{},[1531,1613,1614],{},[25,1615,1616],{},"Err:706:Service Name is required",[1531,1618,1619],{},"The service name is missing.",[1516,1621,1622,1627],{},[1531,1623,1624],{},[25,1625,1626],{},"Err:707:Help Message is required",[1531,1628,1629,1551],{},[25,1630,1631],{},"HELPMSG",[1516,1633,1634,1639],{},[1531,1635,1636],{},[25,1637,1638],{},"Err:708:Unsubscribe Message is required",[1531,1640,1641,1551],{},[25,1642,1643],{},"STOPMSG",[1516,1645,1646,1651],{},[1531,1647,1648],{},[25,1649,1650],{},"Err:709:Processor URL is required",[1531,1652,1653,1551],{},[25,1654,1655],{},"PROCESSORURL",[1516,1657,1658,1663],{},[1531,1659,1660],{},[25,1661,1662],{},"Err:710:Keyword length should be minimum 4 characters",[1531,1664,1665],{},"The keyword is shorter than 4 characters.",[1516,1667,1668,1672],{},[1531,1669,1670],{},[25,1671,53],{},[1531,1673,1674],{},"No keyword credits left.",[1516,1676,1677,1682],{},[1531,1678,1679],{},[25,1680,1681],{},"Err:712:Sticky Session not allowed",[1531,1683,1684],{},"Not described further in the documentation.",[1516,1686,1687,1692],{},[1531,1688,1689],{},[25,1690,1691],{},"Err:714:Missing Keyword",[1531,1693,1694,1695,1698],{},"Listed as well as ",[25,1696,1697],{},"702"," with the same message.",[1700,1701,1702],"style",{},"html pre.shiki code .soyes, html code.shiki .soyes{--shiki-default:#702C00;--shiki-dark:#FFB757}html pre.shiki code .sT6z2, html code.shiki .sT6z2{--shiki-default:#032563;--shiki-dark:#ADDCFF}html pre.shiki code .sHUrx, html code.shiki .sHUrx{--shiki-default:#A0111F;--shiki-dark:#FF9492}html pre.shiki code .s-5SL, html code.shiki .s-5SL{--shiki-default:#023B95;--shiki-dark:#91CBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .suds8, html code.shiki .suds8{--shiki-default:#0E1116;--shiki-dark:#F0F3F6}html pre.shiki code .sKwhi, html code.shiki .sKwhi{--shiki-default:#622CBC;--shiki-dark:#DBB7FF}html pre.shiki code .sLBg1, html code.shiki .sLBg1{--shiki-default:#66707B;--shiki-dark:#BDC4CC}",{"title":99,"searchDepth":133,"depth":133,"links":1704},[1705,1706,1707],{"id":63,"depth":121,"text":64},{"id":87,"depth":121,"text":88},{"id":1464,"depth":121,"text":1500},"Register a keyword on a short code, point its incoming messages at your URL, or delete it, with the legacy HTTP API.","md",null,{},"\u002Fdocs\u002Fhttp-api\u002Fkeyword-register","---\ntitle: Keyword register\ndescription: Register a keyword on a short code, point its incoming messages at your URL, or delete it, with the legacy HTTP API.\nstatus: legacy\nupdated: '2026-10-06'\n---\n\n::endpoint{method=\"POST, GET\" url=\"https:\u002F\u002Fmzone.wire2air.com\u002Fmserver\u002Fservicemanager\u002Fapi\u002FRegisterKeywordAPI.aspx\" auth=\"userid\" response=\"Plain text\"}\n::\n\n::callout{type=\"note\"}\nThe previous docs gave this URL as `http:\u002F\u002F`. The `mzone.wire2air.com` host accepts `https:\u002F\u002F`, so use it. See [HTTPS](\u002Fdocs\u002Fhttp-api\u002F#https) and OQ-4.\n::\n\nCheck that the keyword is free first with [keyword lookup](\u002Fdocs\u002Fhttp-api\u002Fkeyword-lookup\u002F). If registration fails with `Err:711:Keyword credits not enough`, add credits with [keyword credits](\u002Fdocs\u002Fhttp-api\u002Fkeyword-credits\u002F).\n\n## Parameters\n\n::param-table{id=\"param\"}\n---\nparams:\n  - name: USERID\n    in: body\n    type: string\n    required: true\n    description: \"Your Wire2Air user ID.\"\n  - name: PASSWORD\n    in: body\n    type: string\n    required: true\n    description: \"Your Wire2Air password.\"\n  - name: VASID\n    in: body\n    type: string\n    required: true\n    description: \"Your VASID.\"\n  - name: SHORTCODE\n    in: body\n    type: string\n    required: true\n    example: \"27126\"\n    description: \"The short code to register the keyword on.\"\n  - name: SERVICE NAME\n    in: body\n    type: string\n    required: true\n    example: Order updates\n    description: \"A name for the service. See the note below about this parameter's name.\"\n  - name: KEYWORD\n    in: body\n    type: string\n    required: true\n    example: orders\n    description: \"The keyword. At least 4 characters (`Err:710`).\"\n  - name: PROCESSORURL\n    in: body\n    type: string\n    required: true\n    example: \"https:\u002F\u002Fexample.com\u002Fwire2air\u002Finbound\"\n    description: \"The URL of your web service that receives this keyword's messages. See [inbound SMS](\u002Fdocs\u002Fwebhooks\u002Finbound-sms\u002F).\"\n  - name: HELPMSG\n    in: body\n    type: string\n    required: true\n    description: \"The reply sent when someone texts HELP.\"\n  - name: STOPMSG\n    in: body\n    type: string\n    required: true\n    description: \"The reply sent when someone opts out (STOP).\"\n  - name: ACTION\n    in: body\n    type: string\n    required: false\n    default: ADD\n    description: \"`ADD` registers a new service with the keyword; `DELETE` deletes the keyword from the service.\"\n---\n::\n\n::callout{type=\"pending\" question=\"OQ-22\"}\nThe documentation names this parameter `SERVICE NAME`, with a space, which cannot be told apart from other names once URL-encoded. The examples send `SERVICENAME`, following the pattern of the other parameter names. Engineering has been asked for the exact name.\n::\n\n## Examples\n\n::code-group\n```bash [cURL]\ncurl \"https:\u002F\u002Fmzone.wire2air.com\u002Fmserver\u002Fservicemanager\u002Fapi\u002FRegisterKeywordAPI.aspx\" \\\n  --data-urlencode \"USERID=YOUR_USERID\" \\\n  --data-urlencode \"PASSWORD=YOUR_PASSWORD\" \\\n  --data-urlencode \"VASID=YOUR_VASID\" \\\n  --data-urlencode \"SHORTCODE=27126\" \\\n  --data-urlencode \"SERVICENAME=Order updates\" \\\n  --data-urlencode \"KEYWORD=orders\" \\\n  --data-urlencode \"PROCESSORURL=https:\u002F\u002Fexample.com\u002Fwire2air\u002Finbound\" \\\n  --data-urlencode \"HELPMSG=Order updates from Example Co. Reply STOP to cancel.\" \\\n  --data-urlencode \"STOPMSG=You will no longer receive order updates.\" \\\n  --data-urlencode \"ACTION=ADD\"\n```\n```python [Python 3]\nimport urllib.error\nimport urllib.parse\nimport urllib.request\n\nparams = urllib.parse.urlencode({\n    \"USERID\": \"YOUR_USERID\",\n    \"PASSWORD\": \"YOUR_PASSWORD\",\n    \"VASID\": \"YOUR_VASID\",\n    \"SHORTCODE\": \"27126\",\n    \"SERVICENAME\": \"Order updates\",\n    \"KEYWORD\": \"orders\",\n    \"PROCESSORURL\": \"https:\u002F\u002Fexample.com\u002Fwire2air\u002Finbound\",\n    \"HELPMSG\": \"Order updates from Example Co. Reply STOP to cancel.\",\n    \"STOPMSG\": \"You will no longer receive order updates.\",\n    \"ACTION\": \"ADD\",\n})\nrequest = urllib.request.Request(\n    \"https:\u002F\u002Fmzone.wire2air.com\u002Fmserver\u002Fservicemanager\u002Fapi\u002FRegisterKeywordAPI.aspx\",\n    data=params.encode(\"utf-8\"),\n    method=\"POST\",\n)\n\ntry:\n    with urllib.request.urlopen(request, timeout=30) as response:\n        print(response.status, response.read().decode(\"utf-8\"))\nexcept urllib.error.HTTPError as error:\n    print(error.code, error.read().decode(\"utf-8\"))\n```\n```javascript [Node]\nconst params = new URLSearchParams({\n  USERID: \"YOUR_USERID\",\n  PASSWORD: \"YOUR_PASSWORD\",\n  VASID: \"YOUR_VASID\",\n  SHORTCODE: \"27126\",\n  SERVICENAME: \"Order updates\",\n  KEYWORD: \"orders\",\n  PROCESSORURL: \"https:\u002F\u002Fexample.com\u002Fwire2air\u002Finbound\",\n  HELPMSG: \"Order updates from Example Co. Reply STOP to cancel.\",\n  STOPMSG: \"You will no longer receive order updates.\",\n  ACTION: \"ADD\",\n});\n\nconst response = await fetch(\"https:\u002F\u002Fmzone.wire2air.com\u002Fmserver\u002Fservicemanager\u002Fapi\u002FRegisterKeywordAPI.aspx\", {\n  method: \"POST\",\n  body: params, \u002F\u002F sent as application\u002Fx-www-form-urlencoded\n});\nconsole.log(response.status, await response.text());\n```\n```php [PHP]\n\u003C?php\n\n$params = http_build_query([\n    'USERID' => 'YOUR_USERID',\n    'PASSWORD' => 'YOUR_PASSWORD',\n    'VASID' => 'YOUR_VASID',\n    'SHORTCODE' => '27126',\n    'SERVICENAME' => 'Order updates',\n    'KEYWORD' => 'orders',\n    'PROCESSORURL' => 'https:\u002F\u002Fexample.com\u002Fwire2air\u002Finbound',\n    'HELPMSG' => 'Order updates from Example Co. Reply STOP to cancel.',\n    'STOPMSG' => 'You will no longer receive order updates.',\n    'ACTION' => 'ADD',\n]);\n\n$ch = curl_init('https:\u002F\u002Fmzone.wire2air.com\u002Fmserver\u002Fservicemanager\u002Fapi\u002FRegisterKeywordAPI.aspx');\ncurl_setopt_array($ch, [\n    CURLOPT_POST => true,\n    CURLOPT_POSTFIELDS => $params,\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_TIMEOUT => 30,\n]);\n\n$body = curl_exec($ch);\nif ($body === false) {\n    echo 'Request failed: ' . curl_error($ch) . PHP_EOL;\n} else {\n    echo curl_getinfo($ch, CURLINFO_HTTP_CODE) . ' ' . $body . PHP_EOL;\n}\ncurl_close($ch);\n```\n```csharp [C#]\nusing System;\nusing System.Collections.Generic;\nusing System.Net.Http;\n\nvar parameters = new Dictionary\u003Cstring, string>\n{\n    [\"USERID\"] = \"YOUR_USERID\",\n    [\"PASSWORD\"] = \"YOUR_PASSWORD\",\n    [\"VASID\"] = \"YOUR_VASID\",\n    [\"SHORTCODE\"] = \"27126\",\n    [\"SERVICENAME\"] = \"Order updates\",\n    [\"KEYWORD\"] = \"orders\",\n    [\"PROCESSORURL\"] = \"https:\u002F\u002Fexample.com\u002Fwire2air\u002Finbound\",\n    [\"HELPMSG\"] = \"Order updates from Example Co. Reply STOP to cancel.\",\n    [\"STOPMSG\"] = \"You will no longer receive order updates.\",\n    [\"ACTION\"] = \"ADD\",\n};\n\nusing var client = new HttpClient();\nusing var request = new HttpRequestMessage(HttpMethod.Post, \"https:\u002F\u002Fmzone.wire2air.com\u002Fmserver\u002Fservicemanager\u002Fapi\u002FRegisterKeywordAPI.aspx\")\n{\n    Content = new FormUrlEncodedContent(parameters),\n};\n\nusing var response = await client.SendAsync(request);\nConsole.WriteLine($\"{(int)response.StatusCode} {await response.Content.ReadAsStringAsync()}\");\n```\n::\n\n## Response\n\n```text [Success]\nSERVICEID:SYSTEM GENERATED SERVICEID\n```\n\n| Error | Meaning |\n|---|---|\n| `Err:300:Invalid Userid or password` | Wrong user ID or password. |\n| `Err:700:Missing Shortcode` | `SHORTCODE` is missing. |\n| `Err:701:Missing VASID` | `VASID` is missing. |\n| `Err:702:Missing Keyword` | `KEYWORD` is missing. |\n| `Err:703:Missing User Name` | `USERID` is missing. |\n| `Err:704:Missing Password` | `PASSWORD` is missing. |\n| `Err:705:Keyword is taken, Please try another keyword` | The keyword is already in use on this short code. |\n| `Err:706:Service Name is required` | The service name is missing. |\n| `Err:707:Help Message is required` | `HELPMSG` is missing. |\n| `Err:708:Unsubscribe Message is required` | `STOPMSG` is missing. |\n| `Err:709:Processor URL is required` | `PROCESSORURL` is missing. |\n| `Err:710:Keyword length should be minimum 4 characters` | The keyword is shorter than 4 characters. |\n| `Err:711:Keyword credits not enough` | No keyword credits left. |\n| `Err:712:Sticky Session not allowed` | Not described further in the documentation. |\n| `Err:714:Missing Keyword` | Listed as well as `702` with the same message. |\n",{"title":5,"description":1708},"legacy","docs\u002F09.http-api\u002F07.keyword-register","2026-10-06","73k5e88kJN-kNNmPkj2pj-Mb5-LLG_I6squoLfA6MVc",[1720],{"title":1721,"path":1722,"stem":1723,"children":1724,"navTitle":1726,"group":1710,"status":1727},"Wire2Air developer docs","\u002Fdocs","docs\u002F01.index",[1725,1728,1732,1736,1740,1744,1763,1786,1804,1843,1856],{"title":1721,"path":1722,"stem":1723,"navTitle":1726,"group":1710,"status":1727},"Overview","current",{"title":1729,"path":1730,"stem":1731,"navTitle":1710,"group":1729,"status":1727},"Getting started","\u002Fdocs\u002Fgetting-started","docs\u002F02.getting-started",{"title":1733,"path":1734,"stem":1735,"navTitle":1710,"group":1729,"status":1727},"Authentication","\u002Fdocs\u002Fauthentication","docs\u002F03.authentication",{"title":1737,"path":1738,"stem":1739,"navTitle":1710,"group":1729,"status":1727},"Errors","\u002Fdocs\u002Ferrors","docs\u002F04.errors",{"title":1741,"path":1742,"stem":1743,"navTitle":1710,"group":1729,"status":1727},"Rate limits","\u002Fdocs\u002Frate-limits","docs\u002F05.rate-limits",{"title":1745,"navTitle":1710,"group":1710,"status":1727,"path":1746,"stem":1747,"children":1748,"page":1762},"Guides","\u002Fdocs\u002Fguides","docs\u002F06.guides",[1749,1754,1758],{"title":1750,"path":1751,"stem":1752,"navTitle":1753,"group":1710,"status":1727},"Character encoding and message length","\u002Fdocs\u002Fguides\u002Fencoding","docs\u002F06.guides\u002F01.encoding","Encoding and length",{"title":1755,"path":1756,"stem":1757,"navTitle":1710,"group":1710,"status":1727},"Bulk messaging","\u002Fdocs\u002Fguides\u002Fbulk-messaging","docs\u002F06.guides\u002F02.bulk-messaging",{"title":1759,"path":1760,"stem":1761,"navTitle":1710,"group":1710,"status":1727},"Scheduling messages","\u002Fdocs\u002Fguides\u002Fscheduling","docs\u002F06.guides\u002F03.scheduling",false,{"title":1764,"path":1765,"stem":1766,"children":1767,"navTitle":1710,"group":1710,"status":1727},"REST API v1","\u002Fdocs\u002Frest","docs\u002F07.rest\u002F01.index",[1768,1769,1782],{"title":1764,"path":1765,"stem":1766,"navTitle":1726,"group":1710,"status":1727},{"title":1770,"navTitle":1710,"group":1710,"status":1727,"path":1771,"stem":1772,"children":1773,"page":1762},"Messages","\u002Fdocs\u002Frest\u002Fmessages","docs\u002F07.rest\u002F02.messages",[1774,1778],{"title":1775,"path":1776,"stem":1777,"navTitle":1710,"group":1710,"status":1727},"Send a message","\u002Fdocs\u002Frest\u002Fmessages\u002Fsend","docs\u002F07.rest\u002F02.messages\u002F01.send",{"title":1779,"path":1780,"stem":1781,"navTitle":1710,"group":1710,"status":1727},"List received messages","\u002Fdocs\u002Frest\u002Fmessages\u002Flist","docs\u002F07.rest\u002F02.messages\u002F02.list",{"title":1783,"path":1784,"stem":1785,"navTitle":1710,"group":1710,"status":1727},"Campaigns","\u002Fdocs\u002Frest\u002Fcampaigns","docs\u002F07.rest\u002F03.campaigns",{"title":1787,"path":1788,"stem":1789,"children":1790,"navTitle":1710,"group":1710,"status":1727},"Webhooks","\u002Fdocs\u002Fwebhooks","docs\u002F08.webhooks\u002F01.index",[1791,1792,1796,1800],{"title":1787,"path":1788,"stem":1789,"navTitle":1726,"group":1710,"status":1727},{"title":1793,"path":1794,"stem":1795,"navTitle":1710,"group":1710,"status":1727},"Inbound SMS","\u002Fdocs\u002Fwebhooks\u002Finbound-sms","docs\u002F08.webhooks\u002F02.inbound-sms",{"title":1797,"path":1798,"stem":1799,"navTitle":1710,"group":1710,"status":1727},"Inbound SMS and MMS","\u002Fdocs\u002Fwebhooks\u002Finbound-mms","docs\u002F08.webhooks\u002F03.inbound-mms",{"title":1801,"path":1802,"stem":1803,"navTitle":1710,"group":1710,"status":1727},"Delivery reports","\u002Fdocs\u002Fwebhooks\u002Fdelivery-reports","docs\u002F08.webhooks\u002F04.delivery-reports",{"title":1805,"path":1806,"stem":1807,"children":1808,"navTitle":1710,"group":1710,"status":1715},"HTTP API","\u002Fdocs\u002Fhttp-api","docs\u002F09.http-api\u002F01.index",[1809,1810,1814,1818,1822,1826,1830,1831,1835,1839],{"title":1805,"path":1806,"stem":1807,"navTitle":1726,"group":1710,"status":1715},{"title":1811,"path":1812,"stem":1813,"navTitle":1710,"group":1710,"status":1715},"Send SMS","\u002Fdocs\u002Fhttp-api\u002Fsend-sms","docs\u002F09.http-api\u002F02.send-sms",{"title":1815,"path":1816,"stem":1817,"navTitle":1710,"group":1710,"status":1715},"Send MMS","\u002Fdocs\u002Fhttp-api\u002Fsend-mms","docs\u002F09.http-api\u002F03.send-mms",{"title":1819,"path":1820,"stem":1821,"navTitle":1710,"group":1710,"status":1715},"Credit balance","\u002Fdocs\u002Fhttp-api\u002Fcredit-balance","docs\u002F09.http-api\u002F04.credit-balance",{"title":1823,"path":1824,"stem":1825,"navTitle":1710,"group":1710,"status":1715},"Carrier lookup","\u002Fdocs\u002Fhttp-api\u002Fcarrier-lookup","docs\u002F09.http-api\u002F05.carrier-lookup",{"title":1827,"path":1828,"stem":1829,"navTitle":1710,"group":1710,"status":1715},"Keyword lookup","\u002Fdocs\u002Fhttp-api\u002Fkeyword-lookup","docs\u002F09.http-api\u002F06.keyword-lookup",{"title":5,"path":1712,"stem":1716,"navTitle":1710,"group":1710,"status":1715},{"title":1832,"path":1833,"stem":1834,"navTitle":1710,"group":1710,"status":1715},"Keyword credits","\u002Fdocs\u002Fhttp-api\u002Fkeyword-credits","docs\u002F09.http-api\u002F08.keyword-credits",{"title":1836,"path":1837,"stem":1838,"navTitle":1710,"group":1710,"status":1715},"Subscribe user","\u002Fdocs\u002Fhttp-api\u002Fsubscribe-user","docs\u002F09.http-api\u002F09.subscribe-user",{"title":1840,"path":1841,"stem":1842,"navTitle":1710,"group":1710,"status":1715},"Send invitation","\u002Fdocs\u002Fhttp-api\u002Fsend-invitation","docs\u002F09.http-api\u002F10.send-invitation",{"title":1844,"navTitle":1710,"group":1710,"status":1727,"path":1845,"stem":1846,"children":1847,"page":1762},"Integrations","\u002Fdocs\u002Fintegrations","docs\u002F10.integrations",[1848,1852],{"title":1849,"path":1850,"stem":1851,"navTitle":1710,"group":1710,"status":1727},"RSA Authentication Manager","\u002Fdocs\u002Fintegrations\u002Frsa-authentication-manager","docs\u002F10.integrations\u002F01.rsa-authentication-manager",{"title":1853,"path":1854,"stem":1855,"navTitle":1710,"group":1710,"status":1727},"Zapier","\u002Fdocs\u002Fintegrations\u002Fzapier","docs\u002F10.integrations\u002F02.zapier",{"title":1857,"path":1858,"stem":1859,"navTitle":1710,"group":1710,"status":1727},"Changelog","\u002Fdocs\u002Fchangelog","docs\u002F11.changelog",[1861,1863],{"title":1827,"path":1828,"stem":1829,"description":1862,"children":-1},"Check whether a keyword is still free on a short code before you register it, with the legacy HTTP API.",{"title":1832,"path":1833,"stem":1834,"description":1864,"children":-1},"Buy keyword credits with the card stored on your account, or remove unused credits, with the legacy HTTP API (subscribekeywords.aspx).",[1866,1870,1873,1876,1879,1882,1885,1888],[1867,1868],"path",{"d":1869},"M3 21l18 0",[1867,1871],{"d":1872},"M3 10l18 0",[1867,1874],{"d":1875},"M5 6l7 -3l7 3",[1867,1877],{"d":1878},"M4 10l0 11",[1867,1880],{"d":1881},"M20 10l0 11",[1867,1883],{"d":1884},"M8 14l0 3",[1867,1886],{"d":1887},"M12 14l0 3",[1867,1889],{"d":1890},"M16 14l0 3",[1892,1894,1897,1900,1903],[1867,1893],{"d":1869},[1867,1895],{"d":1896},"M3 7v1a3 3 0 0 0 6 0v-1m0 1a3 3 0 0 0 6 0v-1m0 1a3 3 0 0 0 6 0v-1h-18l2 -4h14l2 4",[1867,1898],{"d":1899},"M5 21l0 -10.15",[1867,1901],{"d":1902},"M19 21l0 -10.15",[1867,1904],{"d":1905},"M9 21v-4a2 2 0 0 1 2 -2h2a2 2 0 0 1 2 2v4",[1907,1910,1913,1916],[1867,1908],{"d":1909},"M3 13a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v6a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1l0 -6",[1867,1911],{"d":1912},"M15 9a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v10a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1l0 -10",[1867,1914],{"d":1915},"M9 5a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v14a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1l0 -14",[1867,1917],{"d":1918},"M4 20h14",[1920,1923],[1867,1921],{"d":1922},"M10 3.2a9 9 0 1 0 10.8 10.8a1 1 0 0 0 -1 -1h-6.8a2 2 0 0 1 -2 -2v-7a.9 .9 0 0 0 -1 -.8",[1867,1924],{"d":1925},"M15 3.5a9 9 0 0 1 5.5 5.5h-4.5a1 1 0 0 1 -1 -1v-4.5",[1927,1930,1933],[1867,1928],{"d":1929},"M7 8l-4 4l4 4",[1867,1931],{"d":1932},"M17 8l4 4l-4 4",[1867,1934],{"d":1935},"M14 4l-4 16",[1937,1940,1944,1947],[1867,1938],{"d":1939},"M9 15l6 -6",[1867,1941],{"d":1942,"fill":1943},"M9 9.5a.5 .5 0 1 0 1 0a.5 .5 0 1 0 -1 0","currentColor",[1867,1945],{"d":1946,"fill":1943},"M14 14.5a.5 .5 0 1 0 1 0a.5 .5 0 1 0 -1 0",[1867,1948],{"d":1949},"M3 12a9 9 0 1 0 18 0a9 9 0 1 0 -18 0",[1951,1954,1957,1960],[1867,1952],{"d":1953},"M19.5 12.572l-7.5 7.428l-7.5 -7.428a5 5 0 1 1 7.5 -6.566a5 5 0 1 1 7.5 6.572",[1867,1955],{"d":1956},"M12 6l-3.293 3.293a1 1 0 0 0 0 1.414l.543 .543c.69 .69 1.81 .69 2.5 0l1 -1a3.182 3.182 0 0 1 4.5 0l2.25 2.25",[1867,1958],{"d":1959},"M12.5 15.5l2 2",[1867,1961],{"d":1962},"M15 13l2 2",[1964,1967,1970,1973],[1867,1965],{"d":1966},"M12 18h-7a2 2 0 0 1 -2 -2v-10a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v7.5",[1867,1968],{"d":1969},"M3 6l9 6l9 -6",[1867,1971],{"d":1972},"M15 18h6",[1867,1974],{"d":1975},"M18 15l3 3l-3 3",[1977,1980],[1867,1978],{"d":1979},"M21 14l-3 -3h-7a1 1 0 0 1 -1 -1v-6a1 1 0 0 1 1 -1h9a1 1 0 0 1 1 1v10",[1867,1981],{"d":1982},"M14 15v2a1 1 0 0 1 -1 1h-7l-3 3v-10a1 1 0 0 1 1 -1h2",[1984,1987],[1867,1985],{"d":1986},"M15 12.9a5 5 0 1 0 -3.902 -3.9",[1867,1988],{"d":1989},"M15 12.9l-3.902 -3.899l-7.513 8.584a2 2 0 1 0 2.827 2.83l8.588 -7.515",[1991,1994,1997,2000],[1867,1992],{"d":1993},"M15 8h.01",[1867,1995],{"d":1996},"M3 6a3 3 0 0 1 3 -3h12a3 3 0 0 1 3 3v12a3 3 0 0 1 -3 3h-12a3 3 0 0 1 -3 -3v-12",[1867,1998],{"d":1999},"M3 16l5 -5c.928 -.893 2.072 -.893 3 0l5 5",[1867,2001],{"d":2002},"M14 14l1 -1c.928 -.893 2.072 -.893 3 0l3 3",[2004,2007,2010,2013,2016,2019],[1867,2005],{"d":2006},"M7 12l5 5l-1.5 1.5a3.536 3.536 0 1 1 -5 -5l1.5 -1.5",[1867,2008],{"d":2009},"M17 12l-5 -5l1.5 -1.5a3.536 3.536 0 1 1 5 5l-1.5 1.5",[1867,2011],{"d":2012},"M3 21l2.5 -2.5",[1867,2014],{"d":2015},"M18.5 5.5l2.5 -2.5",[1867,2017],{"d":2018},"M10 11l-2 2",[1867,2020],{"d":2021},"M13 14l-2 2",[2023,2026],[1867,2024],{"d":2025},"M22 9l-10 -4l-10 4l10 4l10 -4v6",[1867,2027],{"d":2028},"M6 10.6v5.4a6 3 0 0 0 12 0v-5.4",[2030,2033,2036],[1867,2031],{"d":2032},"M18 8a3 3 0 0 1 0 6",[1867,2034],{"d":2035},"M10 8v11a1 1 0 0 1 -1 1h-1a1 1 0 0 1 -1 -1v-5",[1867,2037],{"d":2038},"M12 8l4.524 -3.77a.9 .9 0 0 1 1.476 .692v12.156a.9 .9 0 0 1 -1.476 .692l-4.524 -3.77h-8a1 1 0 0 1 -1 -1v-4a1 1 0 0 1 1 -1h8",[2040,2043,2046,2049,2052],[1867,2041],{"d":2042},"M6 4h-1a2 2 0 0 0 -2 2v3.5a5.5 5.5 0 0 0 11 0v-3.5a2 2 0 0 0 -2 -2h-1",[1867,2044],{"d":2045},"M8 15a6 6 0 1 0 12 0v-3",[1867,2047],{"d":2048},"M11 3v2",[1867,2050],{"d":2051},"M6 3v2",[1867,2053],{"d":2054},"M18 10a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",[2056,2059,2062,2065,2068,2071],[1867,2057],{"d":2058},"M8 21l8 0",[1867,2060],{"d":2061},"M12 17l0 4",[1867,2063],{"d":2064},"M7 4l10 0",[1867,2066],{"d":2067},"M17 4v8a5 5 0 0 1 -10 0v-8",[1867,2069],{"d":2070},"M3 9a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",[1867,2072],{"d":2073},"M17 9a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",[2075,2078,2081,2084],[1867,2076],{"d":2077},"M8 7a4 4 0 1 0 8 0a4 4 0 0 0 -8 0",[1867,2079],{"d":2080},"M16 19h6",[1867,2082],{"d":2083},"M19 16v6",[1867,2085],{"d":2086},"M6 21v-2a4 4 0 0 1 4 -4h4",3529977955]