[{"data":1,"prerenderedAt":1863},["ShallowReactive",2],{"docs-page:\u002Fdocs\u002Fgetting-started":3,"docs-navigation":1500,"docs-surround:\u002Fdocs\u002Fgetting-started":1636,"icon:building-bank":1641,"icon:building-store":1667,"icon:chart-bar":1682,"icon:chart-pie":1695,"icon:code":1702,"icon:discount":1712,"icon:heart-handshake":1726,"icon:mail-forward":1739,"icon:messages":1752,"icon:microphone-2":1759,"icon:photo":1766,"icon:plug-connected":1779,"icon:school":1798,"icon:speakerphone":1805,"icon:stethoscope":1815,"icon:trophy":1831,"icon:user-plus":1850},{"id":4,"title":5,"body":6,"description":1489,"extension":1490,"group":5,"meta":1491,"navTitle":1492,"navigation":356,"path":1493,"rawbody":1494,"seo":1495,"status":1496,"stem":1497,"updated":1498,"__hash__":1499},"docs\u002Fdocs\u002F02.getting-started.md","Getting started",{"type":7,"value":8,"toc":1478},"minimark",[9,14,46,50,65,70,102,106,141,149,156,160,224,228,250,1321,1328,1391,1401,1437,1441,1447,1451,1474],[10,11,13],"h2",{"id":12},"what-you-need","What you need",[15,16,17,34,43],"ul",{},[18,19,20,21,25,26,29,30,33],"li",{},"A Wire2Air account with a texting number: a short code (for example ",[22,23,24],"code",{},"27126",") or another number Wire2Air has assigned to you. Wherever these docs say ",[22,27,28],{},"from"," or ",[22,31,32],{},"SHORTCODE",", they mean this number.",[18,35,36,37,42],{},"Message credits on the account. Every sent message part uses credits; see ",[38,39,41],"a",{"href":40},"\u002Fdocs\u002Fguides\u002Fencoding\u002F#message-length","message length",".",[18,44,45],{},"A server that can make HTTPS requests. Keep all calls server-side, so your credentials never reach a browser or a phone.",[10,47,49],{"id":48},"get-your-credentials","Get your credentials",[51,52,53,54,60,61,64],"p",{},"Log in to the Wire2Air dashboard at ",[38,55,59],{"href":56,"rel":57},"https:\u002F\u002Fapp.wire2air.com\u002Fmserver\u002Fclientlogin.aspx",[58],"nofollow","app.wire2air.com"," with your username and password. (The old address, ",[22,62,63],{},"mzone.wire2air.com",", now redirects there.)",[66,67,69],"h3",{"id":68},"rest-api-key","REST API key",[71,72,73,80,86,89,96],"ol",{},[18,74,75,76,42],{},"Go to ",[77,78,79],"strong",{},"Manage Account → Manage API Keys",[18,81,82,83,42],{},"Select ",[77,84,85],{},"Generate New API Key",[18,87,88],{},"Enter a name for the key. It is only a label, so pick anything that tells you where the key is used.",[18,90,91,92,95],{},"Copy the key with the ",[77,93,94],{},"Copy to Clipboard"," icon.",[18,97,82,98,101],{},[77,99,100],{},"Save Changes",". The message \"API Key saved successfully\" appears above the table.",[66,103,105],{"id":104},"http-api-credentials","HTTP API credentials",[51,107,108,109,112,113,116,117,120,121,124,125,128,129,132,133,137,138,140],{},"The legacy HTTP API uses your account ",[77,110,111],{},"user ID"," and ",[77,114,115],{},"password"," together with a ",[77,118,119],{},"VASID",". Find the VASID under ",[77,122,123],{},"Manage Account → API Information",". Some HTTP API endpoints use an ",[77,126,127],{},"app key"," (",[22,130,131],{},"APPKEY",") instead; the ",[38,134,136],{"href":135},"\u002Fdocs\u002Fhttp-api\u002Fcarrier-lookup\u002F","carrier lookup"," page says it is under ",[77,139,123],{}," too.",[142,143,146],"callout",{"question":144,"type":145},"OQ-19","pending",[51,147,148],{},"The dashboard menu paths above are copied from the previous docs and have not been re-checked against the current dashboard.",[51,150,151,155],{},[38,152,154],{"href":153},"\u002Fdocs\u002Fauthentication\u002F","Authentication"," explains which credential each endpoint takes.",[10,157,159],{"id":158},"base-urls","Base URLs",[161,162,163,176],"table",{},[164,165,166],"thead",{},[167,168,169,173],"tr",{},[170,171,172],"th",{},"API",[170,174,175],{},"Base URL",[177,178,179,190,200,216],"tbody",{},[167,180,181,185],{},[182,183,184],"td",{},"REST API v1",[182,186,187],{},[22,188,189],{},"https:\u002F\u002Fmsgapi.wire2air.com\u002Frest\u002Fv1",[167,191,192,195],{},[182,193,194],{},"HTTP API, send SMS",[182,196,197],{},[22,198,199],{},"https:\u002F\u002Fmsgapi.wire2air.com\u002Fsmsapi\u002Fsubmitsm.aspx",[167,201,202,205],{},[182,203,204],{},"HTTP API, send MMS",[182,206,207,210,211,215],{},[22,208,209],{},"http:\u002F\u002Fmms.wire2air.com\u002Fmms\u002Fsubmitmms.aspx"," (plain HTTP; see ",[38,212,214],{"href":213},"\u002Fdocs\u002Fhttp-api\u002Fsend-mms\u002F","Send MMS",")",[167,217,218,221],{},[182,219,220],{},"HTTP API, other endpoints",[182,222,223],{},"Listed on each endpoint's page",[10,225,227],{"id":226},"send-your-first-message","Send your first message",[51,229,230,231,234,235,238,239,242,243,246,247,249],{},"Send a ",[22,232,233],{},"POST"," to ",[22,236,237],{},"\u002Fmessage"," with your API key in the ",[22,240,241],{},"apikey"," header. Replace ",[22,244,245],{},"YOUR_API_KEY",", the destination number and the ",[22,248,28],{}," number with your own.",[251,252,253,321,574,718,1004],"code-group",{},[254,255,261],"pre",{"className":256,"code":257,"filename":258,"language":259,"meta":260,"style":260},"language-bash shiki shiki-themes github-light-high-contrast github-dark-high-contrast","curl \"https:\u002F\u002Fmsgapi.wire2air.com\u002Frest\u002Fv1\u002Fmessage\" \\\n  -H \"apikey: YOUR_API_KEY\" \\\n  --data-urlencode \"to=12121234567\" \\\n  --data-urlencode \"from=27126\" \\\n  --data-urlencode \"text=Your order has shipped.\"\n","cURL","bash","",[22,262,263,280,292,303,313],{"__ignoreMap":260},[264,265,268,272,276],"span",{"class":266,"line":267},"line",1,[264,269,271],{"class":270},"soyes","curl",[264,273,275],{"class":274},"sT6z2"," \"https:\u002F\u002Fmsgapi.wire2air.com\u002Frest\u002Fv1\u002Fmessage\"",[264,277,279],{"class":278},"sHUrx"," \\\n",[264,281,283,287,290],{"class":266,"line":282},2,[264,284,286],{"class":285},"s-5SL","  -H",[264,288,289],{"class":274}," \"apikey: YOUR_API_KEY\"",[264,291,279],{"class":278},[264,293,295,298,301],{"class":266,"line":294},3,[264,296,297],{"class":285},"  --data-urlencode",[264,299,300],{"class":274}," \"to=12121234567\"",[264,302,279],{"class":278},[264,304,306,308,311],{"class":266,"line":305},4,[264,307,297],{"class":285},[264,309,310],{"class":274}," \"from=27126\"",[264,312,279],{"class":278},[264,314,316,318],{"class":266,"line":315},5,[264,317,297],{"class":285},[264,319,320],{"class":274}," \"text=Your order has shipped.\"\n",[254,322,327],{"className":323,"code":324,"filename":325,"language":326,"meta":260,"style":260},"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    \"to\": \"12121234567\",\n    \"from\": \"27126\",\n    \"text\": \"Your order has shipped.\",\n})\nrequest = urllib.request.Request(\n    \"https:\u002F\u002Fmsgapi.wire2air.com\u002Frest\u002Fv1\u002Fmessage\",\n    data=params.encode(\"utf-8\"),\n    headers={\"apikey\": \"YOUR_API_KEY\"},\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",[22,328,329,338,345,352,358,369,384,397,410,416,427,435,452,474,487,493,498,507,533,547,561],{"__ignoreMap":260},[264,330,331,334],{"class":266,"line":267},[264,332,333],{"class":278},"import",[264,335,337],{"class":336},"suds8"," urllib.error\n",[264,339,340,342],{"class":266,"line":282},[264,341,333],{"class":278},[264,343,344],{"class":336}," urllib.parse\n",[264,346,347,349],{"class":266,"line":294},[264,348,333],{"class":278},[264,350,351],{"class":336}," urllib.request\n",[264,353,354],{"class":266,"line":305},[264,355,357],{"emptyLinePlaceholder":356},true,"\n",[264,359,360,363,366],{"class":266,"line":315},[264,361,362],{"class":336},"params ",[264,364,365],{"class":278},"=",[264,367,368],{"class":336}," urllib.parse.urlencode({\n",[264,370,372,375,378,381],{"class":266,"line":371},6,[264,373,374],{"class":274},"    \"to\"",[264,376,377],{"class":336},": ",[264,379,380],{"class":274},"\"12121234567\"",[264,382,383],{"class":336},",\n",[264,385,387,390,392,395],{"class":266,"line":386},7,[264,388,389],{"class":274},"    \"from\"",[264,391,377],{"class":336},[264,393,394],{"class":274},"\"27126\"",[264,396,383],{"class":336},[264,398,400,403,405,408],{"class":266,"line":399},8,[264,401,402],{"class":274},"    \"text\"",[264,404,377],{"class":336},[264,406,407],{"class":274},"\"Your order has shipped.\"",[264,409,383],{"class":336},[264,411,413],{"class":266,"line":412},9,[264,414,415],{"class":336},"})\n",[264,417,419,422,424],{"class":266,"line":418},10,[264,420,421],{"class":336},"request ",[264,423,365],{"class":278},[264,425,426],{"class":336}," urllib.request.Request(\n",[264,428,430,433],{"class":266,"line":429},11,[264,431,432],{"class":274},"    \"https:\u002F\u002Fmsgapi.wire2air.com\u002Frest\u002Fv1\u002Fmessage\"",[264,434,383],{"class":336},[264,436,438,441,443,446,449],{"class":266,"line":437},12,[264,439,440],{"class":270},"    data",[264,442,365],{"class":278},[264,444,445],{"class":336},"params.encode(",[264,447,448],{"class":274},"\"utf-8\"",[264,450,451],{"class":336},"),\n",[264,453,455,458,460,463,466,468,471],{"class":266,"line":454},13,[264,456,457],{"class":270},"    headers",[264,459,365],{"class":278},[264,461,462],{"class":336},"{",[264,464,465],{"class":274},"\"apikey\"",[264,467,377],{"class":336},[264,469,470],{"class":274},"\"YOUR_API_KEY\"",[264,472,473],{"class":336},"},\n",[264,475,477,480,482,485],{"class":266,"line":476},14,[264,478,479],{"class":270},"    method",[264,481,365],{"class":278},[264,483,484],{"class":274},"\"POST\"",[264,486,383],{"class":336},[264,488,490],{"class":266,"line":489},15,[264,491,492],{"class":336},")\n",[264,494,496],{"class":266,"line":495},16,[264,497,357],{"emptyLinePlaceholder":356},[264,499,501,504],{"class":266,"line":500},17,[264,502,503],{"class":278},"try",[264,505,506],{"class":336},":\n",[264,508,510,513,516,519,521,524,527,530],{"class":266,"line":509},18,[264,511,512],{"class":278},"    with",[264,514,515],{"class":336}," urllib.request.urlopen(request, ",[264,517,518],{"class":270},"timeout",[264,520,365],{"class":278},[264,522,523],{"class":285},"30",[264,525,526],{"class":336},") ",[264,528,529],{"class":278},"as",[264,531,532],{"class":336}," response:\n",[264,534,536,539,542,544],{"class":266,"line":535},19,[264,537,538],{"class":285},"        print",[264,540,541],{"class":336},"(response.status, response.read().decode(",[264,543,448],{"class":274},[264,545,546],{"class":336},"))\n",[264,548,550,553,556,558],{"class":266,"line":549},20,[264,551,552],{"class":278},"except",[264,554,555],{"class":336}," urllib.error.HTTPError ",[264,557,529],{"class":278},[264,559,560],{"class":336}," error:\n",[264,562,564,567,570,572],{"class":266,"line":563},21,[264,565,566],{"class":285},"    print",[264,568,569],{"class":336},"(error.code, error.read().decode(",[264,571,448],{"class":274},[264,573,546],{"class":336},[254,575,580],{"className":576,"code":577,"filename":578,"language":579,"meta":260,"style":260},"language-javascript shiki shiki-themes github-light-high-contrast github-dark-high-contrast","const params = new URLSearchParams({\n  to: \"12121234567\",\n  from: \"27126\",\n  text: \"Your order has shipped.\",\n});\n\nconst response = await fetch(\"https:\u002F\u002Fmsgapi.wire2air.com\u002Frest\u002Fv1\u002Fmessage\", {\n  method: \"POST\",\n  headers: { apikey: \"YOUR_API_KEY\" },\n  body: params, \u002F\u002F sent as application\u002Fx-www-form-urlencoded\n});\nconsole.log(response.status, await response.text());\n","Node","javascript",[22,581,582,603,612,621,630,635,639,663,672,682,691,695],{"__ignoreMap":260},[264,583,584,587,590,593,596,600],{"class":266,"line":267},[264,585,586],{"class":278},"const",[264,588,589],{"class":285}," params",[264,591,592],{"class":278}," =",[264,594,595],{"class":278}," new",[264,597,599],{"class":598},"sKwhi"," URLSearchParams",[264,601,602],{"class":336},"({\n",[264,604,605,608,610],{"class":266,"line":282},[264,606,607],{"class":336},"  to: ",[264,609,380],{"class":274},[264,611,383],{"class":336},[264,613,614,617,619],{"class":266,"line":294},[264,615,616],{"class":336},"  from: ",[264,618,394],{"class":274},[264,620,383],{"class":336},[264,622,623,626,628],{"class":266,"line":305},[264,624,625],{"class":336},"  text: ",[264,627,407],{"class":274},[264,629,383],{"class":336},[264,631,632],{"class":266,"line":315},[264,633,634],{"class":336},"});\n",[264,636,637],{"class":266,"line":371},[264,638,357],{"emptyLinePlaceholder":356},[264,640,641,643,646,648,651,654,657,660],{"class":266,"line":386},[264,642,586],{"class":278},[264,644,645],{"class":285}," response",[264,647,592],{"class":278},[264,649,650],{"class":278}," await",[264,652,653],{"class":598}," fetch",[264,655,656],{"class":336},"(",[264,658,659],{"class":274},"\"https:\u002F\u002Fmsgapi.wire2air.com\u002Frest\u002Fv1\u002Fmessage\"",[264,661,662],{"class":336},", {\n",[264,664,665,668,670],{"class":266,"line":399},[264,666,667],{"class":336},"  method: ",[264,669,484],{"class":274},[264,671,383],{"class":336},[264,673,674,677,679],{"class":266,"line":412},[264,675,676],{"class":336},"  headers: { apikey: ",[264,678,470],{"class":274},[264,680,681],{"class":336}," },\n",[264,683,684,687],{"class":266,"line":418},[264,685,686],{"class":336},"  body: params, ",[264,688,690],{"class":689},"sLBg1","\u002F\u002F sent as application\u002Fx-www-form-urlencoded\n",[264,692,693],{"class":266,"line":429},[264,694,634],{"class":336},[264,696,697,700,703,706,709,712,715],{"class":266,"line":437},[264,698,699],{"class":336},"console.",[264,701,702],{"class":598},"log",[264,704,705],{"class":336},"(response.status, ",[264,707,708],{"class":278},"await",[264,710,711],{"class":336}," response.",[264,713,714],{"class":598},"text",[264,716,717],{"class":336},"());\n",[254,719,724],{"className":720,"code":721,"filename":722,"language":723,"meta":260,"style":260},"language-php shiki shiki-themes github-light-high-contrast github-dark-high-contrast","\u003C?php\n\n$params = http_build_query([\n    'to' => '12121234567',\n    'from' => '27126',\n    'text' => 'Your order has shipped.',\n]);\n\n$ch = curl_init('https:\u002F\u002Fmsgapi.wire2air.com\u002Frest\u002Fv1\u002Fmessage');\ncurl_setopt_array($ch, [\n    CURLOPT_POST => true,\n    CURLOPT_POSTFIELDS => $params,\n    CURLOPT_HTTPHEADER => ['apikey: YOUR_API_KEY'],\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",[22,725,726,734,738,751,764,776,788,793,797,815,823,835,845,861,872,884,888,892,905,922,947,958,990,996],{"__ignoreMap":260},[264,727,728,731],{"class":266,"line":267},[264,729,730],{"class":278},"\u003C?",[264,732,733],{"class":285},"php\n",[264,735,736],{"class":266,"line":282},[264,737,357],{"emptyLinePlaceholder":356},[264,739,740,743,745,748],{"class":266,"line":294},[264,741,742],{"class":336},"$params ",[264,744,365],{"class":278},[264,746,747],{"class":285}," http_build_query",[264,749,750],{"class":336},"([\n",[264,752,753,756,759,762],{"class":266,"line":305},[264,754,755],{"class":274},"    'to'",[264,757,758],{"class":278}," =>",[264,760,761],{"class":274}," '12121234567'",[264,763,383],{"class":336},[264,765,766,769,771,774],{"class":266,"line":315},[264,767,768],{"class":274},"    'from'",[264,770,758],{"class":278},[264,772,773],{"class":274}," '27126'",[264,775,383],{"class":336},[264,777,778,781,783,786],{"class":266,"line":371},[264,779,780],{"class":274},"    'text'",[264,782,758],{"class":278},[264,784,785],{"class":274}," 'Your order has shipped.'",[264,787,383],{"class":336},[264,789,790],{"class":266,"line":386},[264,791,792],{"class":336},"]);\n",[264,794,795],{"class":266,"line":399},[264,796,357],{"emptyLinePlaceholder":356},[264,798,799,802,804,807,809,812],{"class":266,"line":412},[264,800,801],{"class":336},"$ch ",[264,803,365],{"class":278},[264,805,806],{"class":285}," curl_init",[264,808,656],{"class":336},[264,810,811],{"class":274},"'https:\u002F\u002Fmsgapi.wire2air.com\u002Frest\u002Fv1\u002Fmessage'",[264,813,814],{"class":336},");\n",[264,816,817,820],{"class":266,"line":418},[264,818,819],{"class":285},"curl_setopt_array",[264,821,822],{"class":336},"($ch, [\n",[264,824,825,828,830,833],{"class":266,"line":429},[264,826,827],{"class":285},"    CURLOPT_POST",[264,829,758],{"class":278},[264,831,832],{"class":285}," true",[264,834,383],{"class":336},[264,836,837,840,842],{"class":266,"line":437},[264,838,839],{"class":285},"    CURLOPT_POSTFIELDS",[264,841,758],{"class":278},[264,843,844],{"class":336}," $params,\n",[264,846,847,850,852,855,858],{"class":266,"line":454},[264,848,849],{"class":285},"    CURLOPT_HTTPHEADER",[264,851,758],{"class":278},[264,853,854],{"class":336}," [",[264,856,857],{"class":274},"'apikey: YOUR_API_KEY'",[264,859,860],{"class":336},"],\n",[264,862,863,866,868,870],{"class":266,"line":476},[264,864,865],{"class":285},"    CURLOPT_RETURNTRANSFER",[264,867,758],{"class":278},[264,869,832],{"class":285},[264,871,383],{"class":336},[264,873,874,877,879,882],{"class":266,"line":489},[264,875,876],{"class":285},"    CURLOPT_TIMEOUT",[264,878,758],{"class":278},[264,880,881],{"class":285}," 30",[264,883,383],{"class":336},[264,885,886],{"class":266,"line":495},[264,887,792],{"class":336},[264,889,890],{"class":266,"line":500},[264,891,357],{"emptyLinePlaceholder":356},[264,893,894,897,899,902],{"class":266,"line":509},[264,895,896],{"class":336},"$body ",[264,898,365],{"class":278},[264,900,901],{"class":285}," curl_exec",[264,903,904],{"class":336},"($ch);\n",[264,906,907,910,913,916,919],{"class":266,"line":535},[264,908,909],{"class":278},"if",[264,911,912],{"class":336}," ($body ",[264,914,915],{"class":278},"===",[264,917,918],{"class":285}," false",[264,920,921],{"class":336},") {\n",[264,923,924,927,930,933,936,939,941,944],{"class":266,"line":549},[264,925,926],{"class":285},"    echo",[264,928,929],{"class":274}," 'Request failed: '",[264,931,932],{"class":278}," .",[264,934,935],{"class":285}," curl_error",[264,937,938],{"class":336},"($ch) ",[264,940,42],{"class":278},[264,942,943],{"class":285}," PHP_EOL",[264,945,946],{"class":336},";\n",[264,948,949,952,955],{"class":266,"line":563},[264,950,951],{"class":336},"} ",[264,953,954],{"class":278},"else",[264,956,957],{"class":336}," {\n",[264,959,961,963,966,969,972,974,976,979,981,984,986,988],{"class":266,"line":960},22,[264,962,926],{"class":285},[264,964,965],{"class":285}," curl_getinfo",[264,967,968],{"class":336},"($ch, ",[264,970,971],{"class":285},"CURLINFO_HTTP_CODE",[264,973,526],{"class":336},[264,975,42],{"class":278},[264,977,978],{"class":274}," ' '",[264,980,932],{"class":278},[264,982,983],{"class":336}," $body ",[264,985,42],{"class":278},[264,987,943],{"class":285},[264,989,946],{"class":336},[264,991,993],{"class":266,"line":992},23,[264,994,995],{"class":336},"}\n",[264,997,999,1002],{"class":266,"line":998},24,[264,1000,1001],{"class":285},"curl_close",[264,1003,904],{"class":336},[254,1005,1010],{"className":1006,"code":1007,"filename":1008,"language":1009,"meta":260,"style":260},"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    [\"to\"] = \"12121234567\",\n    [\"from\"] = \"27126\",\n    [\"text\"] = \"Your order has shipped.\",\n};\n\nusing var client = new HttpClient();\nusing var request = new HttpRequestMessage(HttpMethod.Post, \"https:\u002F\u002Fmsgapi.wire2air.com\u002Frest\u002Fv1\u002Fmessage\")\n{\n    Content = new FormUrlEncodedContent(parameters),\n};\nrequest.Headers.Add(\"apikey\", \"YOUR_API_KEY\");\n\nusing var response = await client.SendAsync(request);\nConsole.WriteLine($\"{(int)response.StatusCode} {await response.Content.ReadAsStringAsync()}\");\n","C#","csharp",[22,1011,1012,1022,1040,1058,1062,1091,1096,1114,1130,1146,1151,1155,1175,1198,1202,1217,1221,1239,1243,1264],{"__ignoreMap":260},[264,1013,1014,1017,1020],{"class":266,"line":267},[264,1015,1016],{"class":278},"using",[264,1018,1019],{"class":270}," System",[264,1021,946],{"class":336},[264,1023,1024,1026,1028,1030,1033,1035,1038],{"class":266,"line":282},[264,1025,1016],{"class":278},[264,1027,1019],{"class":270},[264,1029,42],{"class":336},[264,1031,1032],{"class":270},"Collections",[264,1034,42],{"class":336},[264,1036,1037],{"class":270},"Generic",[264,1039,946],{"class":336},[264,1041,1042,1044,1046,1048,1051,1053,1056],{"class":266,"line":294},[264,1043,1016],{"class":278},[264,1045,1019],{"class":270},[264,1047,42],{"class":336},[264,1049,1050],{"class":270},"Net",[264,1052,42],{"class":336},[264,1054,1055],{"class":270},"Http",[264,1057,946],{"class":336},[264,1059,1060],{"class":266,"line":305},[264,1061,357],{"emptyLinePlaceholder":356},[264,1063,1064,1067,1070,1072,1074,1077,1080,1083,1086,1088],{"class":266,"line":315},[264,1065,1066],{"class":278},"var",[264,1068,1069],{"class":270}," parameters",[264,1071,592],{"class":278},[264,1073,595],{"class":278},[264,1075,1076],{"class":270}," Dictionary",[264,1078,1079],{"class":336},"\u003C",[264,1081,1082],{"class":278},"string",[264,1084,1085],{"class":336},", ",[264,1087,1082],{"class":278},[264,1089,1090],{"class":336},">\n",[264,1092,1093],{"class":266,"line":371},[264,1094,1095],{"class":336},"{\n",[264,1097,1098,1101,1104,1107,1109,1112],{"class":266,"line":386},[264,1099,1100],{"class":336},"    [",[264,1102,1103],{"class":274},"\"to\"",[264,1105,1106],{"class":336},"] ",[264,1108,365],{"class":278},[264,1110,1111],{"class":274}," \"12121234567\"",[264,1113,383],{"class":336},[264,1115,1116,1118,1121,1123,1125,1128],{"class":266,"line":399},[264,1117,1100],{"class":336},[264,1119,1120],{"class":274},"\"from\"",[264,1122,1106],{"class":336},[264,1124,365],{"class":278},[264,1126,1127],{"class":274}," \"27126\"",[264,1129,383],{"class":336},[264,1131,1132,1134,1137,1139,1141,1144],{"class":266,"line":412},[264,1133,1100],{"class":336},[264,1135,1136],{"class":274},"\"text\"",[264,1138,1106],{"class":336},[264,1140,365],{"class":278},[264,1142,1143],{"class":274}," \"Your order has shipped.\"",[264,1145,383],{"class":336},[264,1147,1148],{"class":266,"line":418},[264,1149,1150],{"class":336},"};\n",[264,1152,1153],{"class":266,"line":429},[264,1154,357],{"emptyLinePlaceholder":356},[264,1156,1157,1159,1162,1165,1167,1169,1172],{"class":266,"line":437},[264,1158,1016],{"class":278},[264,1160,1161],{"class":278}," var",[264,1163,1164],{"class":270}," client",[264,1166,592],{"class":278},[264,1168,595],{"class":278},[264,1170,1171],{"class":270}," HttpClient",[264,1173,1174],{"class":336},"();\n",[264,1176,1177,1179,1181,1184,1186,1188,1191,1194,1196],{"class":266,"line":454},[264,1178,1016],{"class":278},[264,1180,1161],{"class":278},[264,1182,1183],{"class":270}," request",[264,1185,592],{"class":278},[264,1187,595],{"class":278},[264,1189,1190],{"class":270}," HttpRequestMessage",[264,1192,1193],{"class":336},"(HttpMethod.Post, ",[264,1195,659],{"class":274},[264,1197,492],{"class":336},[264,1199,1200],{"class":266,"line":476},[264,1201,1095],{"class":336},[264,1203,1204,1207,1209,1211,1214],{"class":266,"line":489},[264,1205,1206],{"class":336},"    Content ",[264,1208,365],{"class":278},[264,1210,595],{"class":278},[264,1212,1213],{"class":270}," FormUrlEncodedContent",[264,1215,1216],{"class":336},"(parameters),\n",[264,1218,1219],{"class":266,"line":495},[264,1220,1150],{"class":336},[264,1222,1223,1226,1229,1231,1233,1235,1237],{"class":266,"line":500},[264,1224,1225],{"class":336},"request.Headers.",[264,1227,1228],{"class":598},"Add",[264,1230,656],{"class":336},[264,1232,465],{"class":274},[264,1234,1085],{"class":336},[264,1236,470],{"class":274},[264,1238,814],{"class":336},[264,1240,1241],{"class":266,"line":509},[264,1242,357],{"emptyLinePlaceholder":356},[264,1244,1245,1247,1249,1251,1253,1255,1258,1261],{"class":266,"line":535},[264,1246,1016],{"class":278},[264,1248,1161],{"class":278},[264,1250,645],{"class":270},[264,1252,592],{"class":278},[264,1254,650],{"class":278},[264,1256,1257],{"class":336}," client.",[264,1259,1260],{"class":598},"SendAsync",[264,1262,1263],{"class":336},"(request);\n",[264,1265,1266,1269,1272,1274,1277,1280,1283,1285,1288,1290,1293,1296,1299,1301,1303,1305,1308,1310,1313,1316,1319],{"class":266,"line":549},[264,1267,1268],{"class":336},"Console.",[264,1270,1271],{"class":598},"WriteLine",[264,1273,656],{"class":336},[264,1275,1276],{"class":274},"$\"",[264,1278,1279],{"class":274},"{(",[264,1281,1282],{"class":278},"int",[264,1284,215],{"class":274},[264,1286,1287],{"class":336},"response",[264,1289,42],{"class":274},[264,1291,1292],{"class":336},"StatusCode",[264,1294,1295],{"class":274},"}",[264,1297,1298],{"class":274}," {",[264,1300,708],{"class":278},[264,1302,645],{"class":336},[264,1304,42],{"class":274},[264,1306,1307],{"class":336},"Content",[264,1309,42],{"class":274},[264,1311,1312],{"class":598},"ReadAsStringAsync",[264,1314,1315],{"class":274},"()}",[264,1317,1318],{"class":274},"\"",[264,1320,814],{"class":336},[51,1322,1323,1324,1327],{},"A queued message returns HTTP ",[22,1325,1326],{},"201"," and a JSON body with the message ID:",[254,1329,1334],{"className":1330,"code":1331,"filename":1332,"language":1333,"meta":260,"style":260},"language-json shiki shiki-themes github-light-high-contrast github-dark-high-contrast","{\n  \"Response\": \"Message Queued successfully\",\n  \"URI\": \"v1\u002Fmessage\u002Foutbox\u002F85582790\",\n  \"ID\": \"85582790\",\n  \"Type\": \"Out\"\n}\n","201 Created","json",[22,1335,1336,1340,1353,1365,1377,1387],{"__ignoreMap":260},[264,1337,1338],{"class":266,"line":267},[264,1339,1095],{"class":336},[264,1341,1342,1346,1348,1351],{"class":266,"line":282},[264,1343,1345],{"class":1344},"sne4z","  \"Response\"",[264,1347,377],{"class":336},[264,1349,1350],{"class":274},"\"Message Queued successfully\"",[264,1352,383],{"class":336},[264,1354,1355,1358,1360,1363],{"class":266,"line":294},[264,1356,1357],{"class":1344},"  \"URI\"",[264,1359,377],{"class":336},[264,1361,1362],{"class":274},"\"v1\u002Fmessage\u002Foutbox\u002F85582790\"",[264,1364,383],{"class":336},[264,1366,1367,1370,1372,1375],{"class":266,"line":305},[264,1368,1369],{"class":1344},"  \"ID\"",[264,1371,377],{"class":336},[264,1373,1374],{"class":274},"\"85582790\"",[264,1376,383],{"class":336},[264,1378,1379,1382,1384],{"class":266,"line":315},[264,1380,1381],{"class":1344},"  \"Type\"",[264,1383,377],{"class":336},[264,1385,1386],{"class":274},"\"Out\"\n",[264,1388,1389],{"class":266,"line":371},[264,1390,995],{"class":336},[51,1392,1393,1394,1397,1398,1400],{},"If something is wrong, the response is HTTP ",[22,1395,1396],{},"400"," with an application error, for example a missing ",[22,1399,714],{},":",[254,1402,1405],{"className":1330,"code":1403,"filename":1404,"language":1333,"meta":260,"style":260},"{\n  \"StatusCode\": 703,\n  \"StatusMessage\": \"Text Message missing.\"\n}\n","400 Bad Request",[22,1406,1407,1411,1423,1433],{"__ignoreMap":260},[264,1408,1409],{"class":266,"line":267},[264,1410,1095],{"class":336},[264,1412,1413,1416,1418,1421],{"class":266,"line":282},[264,1414,1415],{"class":1344},"  \"StatusCode\"",[264,1417,377],{"class":336},[264,1419,1420],{"class":285},"703",[264,1422,383],{"class":336},[264,1424,1425,1428,1430],{"class":266,"line":294},[264,1426,1427],{"class":1344},"  \"StatusMessage\"",[264,1429,377],{"class":336},[264,1431,1432],{"class":274},"\"Text Message missing.\"\n",[264,1434,1435],{"class":266,"line":305},[264,1436,995],{"class":336},[10,1438,1440],{"id":1439},"testing","Testing",[142,1442,1444],{"question":1443,"type":145},"OQ-32",[51,1445,1446],{},"The documentation describes no sandbox, test mode or test numbers. Until engineering confirms otherwise, assume every successful request sends a real message and uses credits.",[10,1448,1450],{"id":1449},"next-steps","Next steps",[15,1452,1453,1460,1467],{},[18,1454,1455,1459],{},[38,1456,1458],{"href":1457},"\u002Fdocs\u002Frest\u002Fmessages\u002Fsend\u002F","Send a message",": every parameter, scheduling and bulk sends.",[18,1461,1462,1466],{},[38,1463,1465],{"href":1464},"\u002Fdocs\u002Fwebhooks\u002Finbound-sms\u002F","Receive replies"," on your server.",[18,1468,1469,1473],{},[38,1470,1472],{"href":1471},"\u002Fdocs\u002Ferrors\u002F","Errors",": the status codes and application error codes to handle.",[1475,1476,1477],"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}html pre.shiki code .sne4z, html code.shiki .sne4z{--shiki-default:#024C1A;--shiki-dark:#72F088}",{"title":260,"searchDepth":294,"depth":294,"links":1479},[1480,1481,1485,1486,1487,1488],{"id":12,"depth":282,"text":13},{"id":48,"depth":282,"text":49,"children":1482},[1483,1484],{"id":68,"depth":294,"text":69},{"id":104,"depth":294,"text":105},{"id":158,"depth":282,"text":159},{"id":226,"depth":282,"text":227},{"id":1439,"depth":282,"text":1440},{"id":1449,"depth":282,"text":1450},"Get your Wire2Air API credentials, find the base URLs and send your first text message.","md",{},null,"\u002Fdocs\u002Fgetting-started","---\ntitle: Getting started\ndescription: Get your Wire2Air API credentials, find the base URLs and send your first text message.\ngroup: Getting started\nupdated: '2026-10-06'\n---\n\n## What you need\n\n- A Wire2Air account with a texting number: a short code (for example `27126`) or another number Wire2Air has assigned to you. Wherever these docs say `from` or `SHORTCODE`, they mean this number.\n- Message credits on the account. Every sent message part uses credits; see [message length](\u002Fdocs\u002Fguides\u002Fencoding\u002F#message-length).\n- A server that can make HTTPS requests. Keep all calls server-side, so your credentials never reach a browser or a phone.\n\n## Get your credentials\n\nLog in to the Wire2Air dashboard at [app.wire2air.com](https:\u002F\u002Fapp.wire2air.com\u002Fmserver\u002Fclientlogin.aspx) with your username and password. (The old address, `mzone.wire2air.com`, now redirects there.)\n\n### REST API key\n\n1. Go to **Manage Account → Manage API Keys**.\n2. Select **Generate New API Key**.\n3. Enter a name for the key. It is only a label, so pick anything that tells you where the key is used.\n4. Copy the key with the **Copy to Clipboard** icon.\n5. Select **Save Changes**. The message \"API Key saved successfully\" appears above the table.\n\n### HTTP API credentials\n\nThe legacy HTTP API uses your account **user ID** and **password** together with a **VASID**. Find the VASID under **Manage Account → API Information**. Some HTTP API endpoints use an **app key** (`APPKEY`) instead; the [carrier lookup](\u002Fdocs\u002Fhttp-api\u002Fcarrier-lookup\u002F) page says it is under **Manage Account → API Information** too.\n\n::callout{type=\"pending\" question=\"OQ-19\"}\nThe dashboard menu paths above are copied from the previous docs and have not been re-checked against the current dashboard.\n::\n\n[Authentication](\u002Fdocs\u002Fauthentication\u002F) explains which credential each endpoint takes.\n\n## Base URLs\n\n| API | Base URL |\n|---|---|\n| REST API v1 | `https:\u002F\u002Fmsgapi.wire2air.com\u002Frest\u002Fv1` |\n| HTTP API, send SMS | `https:\u002F\u002Fmsgapi.wire2air.com\u002Fsmsapi\u002Fsubmitsm.aspx` |\n| HTTP API, send MMS | `http:\u002F\u002Fmms.wire2air.com\u002Fmms\u002Fsubmitmms.aspx` (plain HTTP; see [Send MMS](\u002Fdocs\u002Fhttp-api\u002Fsend-mms\u002F)) |\n| HTTP API, other endpoints | Listed on each endpoint's page |\n\n## Send your first message\n\nSend a `POST` to `\u002Fmessage` with your API key in the `apikey` header. Replace `YOUR_API_KEY`, the destination number and the `from` number with your own.\n\n::code-group\n```bash [cURL]\ncurl \"https:\u002F\u002Fmsgapi.wire2air.com\u002Frest\u002Fv1\u002Fmessage\" \\\n  -H \"apikey: YOUR_API_KEY\" \\\n  --data-urlencode \"to=12121234567\" \\\n  --data-urlencode \"from=27126\" \\\n  --data-urlencode \"text=Your order has shipped.\"\n```\n```python [Python 3]\nimport urllib.error\nimport urllib.parse\nimport urllib.request\n\nparams = urllib.parse.urlencode({\n    \"to\": \"12121234567\",\n    \"from\": \"27126\",\n    \"text\": \"Your order has shipped.\",\n})\nrequest = urllib.request.Request(\n    \"https:\u002F\u002Fmsgapi.wire2air.com\u002Frest\u002Fv1\u002Fmessage\",\n    data=params.encode(\"utf-8\"),\n    headers={\"apikey\": \"YOUR_API_KEY\"},\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  to: \"12121234567\",\n  from: \"27126\",\n  text: \"Your order has shipped.\",\n});\n\nconst response = await fetch(\"https:\u002F\u002Fmsgapi.wire2air.com\u002Frest\u002Fv1\u002Fmessage\", {\n  method: \"POST\",\n  headers: { apikey: \"YOUR_API_KEY\" },\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    'to' => '12121234567',\n    'from' => '27126',\n    'text' => 'Your order has shipped.',\n]);\n\n$ch = curl_init('https:\u002F\u002Fmsgapi.wire2air.com\u002Frest\u002Fv1\u002Fmessage');\ncurl_setopt_array($ch, [\n    CURLOPT_POST => true,\n    CURLOPT_POSTFIELDS => $params,\n    CURLOPT_HTTPHEADER => ['apikey: YOUR_API_KEY'],\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    [\"to\"] = \"12121234567\",\n    [\"from\"] = \"27126\",\n    [\"text\"] = \"Your order has shipped.\",\n};\n\nusing var client = new HttpClient();\nusing var request = new HttpRequestMessage(HttpMethod.Post, \"https:\u002F\u002Fmsgapi.wire2air.com\u002Frest\u002Fv1\u002Fmessage\")\n{\n    Content = new FormUrlEncodedContent(parameters),\n};\nrequest.Headers.Add(\"apikey\", \"YOUR_API_KEY\");\n\nusing var response = await client.SendAsync(request);\nConsole.WriteLine($\"{(int)response.StatusCode} {await response.Content.ReadAsStringAsync()}\");\n```\n::\n\nA queued message returns HTTP `201` and a JSON body with the message ID:\n\n```json [201 Created]\n{\n  \"Response\": \"Message Queued successfully\",\n  \"URI\": \"v1\u002Fmessage\u002Foutbox\u002F85582790\",\n  \"ID\": \"85582790\",\n  \"Type\": \"Out\"\n}\n```\n\nIf something is wrong, the response is HTTP `400` with an application error, for example a missing `text`:\n\n```json [400 Bad Request]\n{\n  \"StatusCode\": 703,\n  \"StatusMessage\": \"Text Message missing.\"\n}\n```\n\n## Testing\n\n::callout{type=\"pending\" question=\"OQ-32\"}\nThe documentation describes no sandbox, test mode or test numbers. Until engineering confirms otherwise, assume every successful request sends a real message and uses credits.\n::\n\n## Next steps\n\n- [Send a message](\u002Fdocs\u002Frest\u002Fmessages\u002Fsend\u002F): every parameter, scheduling and bulk sends.\n- [Receive replies](\u002Fdocs\u002Fwebhooks\u002Finbound-sms\u002F) on your server.\n- [Errors](\u002Fdocs\u002Ferrors\u002F): the status codes and application error codes to handle.\n",{"title":5,"description":1489},"current","docs\u002F02.getting-started","2026-10-06","q3uPL9vU7zU4C2ua_sn6toA9NpKV07mSw6pgThXS9Qc",[1501],{"title":1502,"path":1503,"stem":1504,"children":1505,"navTitle":1507,"group":1492,"status":1496},"Wire2Air developer docs","\u002Fdocs","docs\u002F01.index",[1506,1508,1509,1512,1515,1519,1538,1559,1577,1619,1632],{"title":1502,"path":1503,"stem":1504,"navTitle":1507,"group":1492,"status":1496},"Overview",{"title":5,"path":1493,"stem":1497,"navTitle":1492,"group":5,"status":1496},{"title":154,"path":1510,"stem":1511,"navTitle":1492,"group":5,"status":1496},"\u002Fdocs\u002Fauthentication","docs\u002F03.authentication",{"title":1472,"path":1513,"stem":1514,"navTitle":1492,"group":5,"status":1496},"\u002Fdocs\u002Ferrors","docs\u002F04.errors",{"title":1516,"path":1517,"stem":1518,"navTitle":1492,"group":5,"status":1496},"Rate limits","\u002Fdocs\u002Frate-limits","docs\u002F05.rate-limits",{"title":1520,"navTitle":1492,"group":1492,"status":1496,"path":1521,"stem":1522,"children":1523,"page":1537},"Guides","\u002Fdocs\u002Fguides","docs\u002F06.guides",[1524,1529,1533],{"title":1525,"path":1526,"stem":1527,"navTitle":1528,"group":1492,"status":1496},"Character encoding and message length","\u002Fdocs\u002Fguides\u002Fencoding","docs\u002F06.guides\u002F01.encoding","Encoding and length",{"title":1530,"path":1531,"stem":1532,"navTitle":1492,"group":1492,"status":1496},"Bulk messaging","\u002Fdocs\u002Fguides\u002Fbulk-messaging","docs\u002F06.guides\u002F02.bulk-messaging",{"title":1534,"path":1535,"stem":1536,"navTitle":1492,"group":1492,"status":1496},"Scheduling messages","\u002Fdocs\u002Fguides\u002Fscheduling","docs\u002F06.guides\u002F03.scheduling",false,{"title":184,"path":1539,"stem":1540,"children":1541,"navTitle":1492,"group":1492,"status":1496},"\u002Fdocs\u002Frest","docs\u002F07.rest\u002F01.index",[1542,1543,1555],{"title":184,"path":1539,"stem":1540,"navTitle":1507,"group":1492,"status":1496},{"title":1544,"navTitle":1492,"group":1492,"status":1496,"path":1545,"stem":1546,"children":1547,"page":1537},"Messages","\u002Fdocs\u002Frest\u002Fmessages","docs\u002F07.rest\u002F02.messages",[1548,1551],{"title":1458,"path":1549,"stem":1550,"navTitle":1492,"group":1492,"status":1496},"\u002Fdocs\u002Frest\u002Fmessages\u002Fsend","docs\u002F07.rest\u002F02.messages\u002F01.send",{"title":1552,"path":1553,"stem":1554,"navTitle":1492,"group":1492,"status":1496},"List received messages","\u002Fdocs\u002Frest\u002Fmessages\u002Flist","docs\u002F07.rest\u002F02.messages\u002F02.list",{"title":1556,"path":1557,"stem":1558,"navTitle":1492,"group":1492,"status":1496},"Campaigns","\u002Fdocs\u002Frest\u002Fcampaigns","docs\u002F07.rest\u002F03.campaigns",{"title":1560,"path":1561,"stem":1562,"children":1563,"navTitle":1492,"group":1492,"status":1496},"Webhooks","\u002Fdocs\u002Fwebhooks","docs\u002F08.webhooks\u002F01.index",[1564,1565,1569,1573],{"title":1560,"path":1561,"stem":1562,"navTitle":1507,"group":1492,"status":1496},{"title":1566,"path":1567,"stem":1568,"navTitle":1492,"group":1492,"status":1496},"Inbound SMS","\u002Fdocs\u002Fwebhooks\u002Finbound-sms","docs\u002F08.webhooks\u002F02.inbound-sms",{"title":1570,"path":1571,"stem":1572,"navTitle":1492,"group":1492,"status":1496},"Inbound SMS and MMS","\u002Fdocs\u002Fwebhooks\u002Finbound-mms","docs\u002F08.webhooks\u002F03.inbound-mms",{"title":1574,"path":1575,"stem":1576,"navTitle":1492,"group":1492,"status":1496},"Delivery reports","\u002Fdocs\u002Fwebhooks\u002Fdelivery-reports","docs\u002F08.webhooks\u002F04.delivery-reports",{"title":1578,"path":1579,"stem":1580,"children":1581,"navTitle":1492,"group":1492,"status":1583},"HTTP API","\u002Fdocs\u002Fhttp-api","docs\u002F09.http-api\u002F01.index",[1582,1584,1588,1591,1595,1599,1603,1607,1611,1615],{"title":1578,"path":1579,"stem":1580,"navTitle":1507,"group":1492,"status":1583},"legacy",{"title":1585,"path":1586,"stem":1587,"navTitle":1492,"group":1492,"status":1583},"Send SMS","\u002Fdocs\u002Fhttp-api\u002Fsend-sms","docs\u002F09.http-api\u002F02.send-sms",{"title":214,"path":1589,"stem":1590,"navTitle":1492,"group":1492,"status":1583},"\u002Fdocs\u002Fhttp-api\u002Fsend-mms","docs\u002F09.http-api\u002F03.send-mms",{"title":1592,"path":1593,"stem":1594,"navTitle":1492,"group":1492,"status":1583},"Credit balance","\u002Fdocs\u002Fhttp-api\u002Fcredit-balance","docs\u002F09.http-api\u002F04.credit-balance",{"title":1596,"path":1597,"stem":1598,"navTitle":1492,"group":1492,"status":1583},"Carrier lookup","\u002Fdocs\u002Fhttp-api\u002Fcarrier-lookup","docs\u002F09.http-api\u002F05.carrier-lookup",{"title":1600,"path":1601,"stem":1602,"navTitle":1492,"group":1492,"status":1583},"Keyword lookup","\u002Fdocs\u002Fhttp-api\u002Fkeyword-lookup","docs\u002F09.http-api\u002F06.keyword-lookup",{"title":1604,"path":1605,"stem":1606,"navTitle":1492,"group":1492,"status":1583},"Keyword register","\u002Fdocs\u002Fhttp-api\u002Fkeyword-register","docs\u002F09.http-api\u002F07.keyword-register",{"title":1608,"path":1609,"stem":1610,"navTitle":1492,"group":1492,"status":1583},"Keyword credits","\u002Fdocs\u002Fhttp-api\u002Fkeyword-credits","docs\u002F09.http-api\u002F08.keyword-credits",{"title":1612,"path":1613,"stem":1614,"navTitle":1492,"group":1492,"status":1583},"Subscribe user","\u002Fdocs\u002Fhttp-api\u002Fsubscribe-user","docs\u002F09.http-api\u002F09.subscribe-user",{"title":1616,"path":1617,"stem":1618,"navTitle":1492,"group":1492,"status":1583},"Send invitation","\u002Fdocs\u002Fhttp-api\u002Fsend-invitation","docs\u002F09.http-api\u002F10.send-invitation",{"title":1620,"navTitle":1492,"group":1492,"status":1496,"path":1621,"stem":1622,"children":1623,"page":1537},"Integrations","\u002Fdocs\u002Fintegrations","docs\u002F10.integrations",[1624,1628],{"title":1625,"path":1626,"stem":1627,"navTitle":1492,"group":1492,"status":1496},"RSA Authentication Manager","\u002Fdocs\u002Fintegrations\u002Frsa-authentication-manager","docs\u002F10.integrations\u002F01.rsa-authentication-manager",{"title":1629,"path":1630,"stem":1631,"navTitle":1492,"group":1492,"status":1496},"Zapier","\u002Fdocs\u002Fintegrations\u002Fzapier","docs\u002F10.integrations\u002F02.zapier",{"title":1633,"path":1634,"stem":1635,"navTitle":1492,"group":1492,"status":1496},"Changelog","\u002Fdocs\u002Fchangelog","docs\u002F11.changelog",[1637,1639],{"title":1502,"path":1503,"stem":1504,"description":1638,"children":-1},"Send and receive SMS and MMS from your own software with the Wire2Air REST API, the legacy HTTP API and webhooks.",{"title":154,"path":1510,"stem":1511,"description":1640,"children":-1},"The three Wire2Air credentials (REST API key, user ID with password and VASID, and app key), which endpoint takes which, and how to keep them safe.",[1642,1646,1649,1652,1655,1658,1661,1664],[1643,1644],"path",{"d":1645},"M3 21l18 0",[1643,1647],{"d":1648},"M3 10l18 0",[1643,1650],{"d":1651},"M5 6l7 -3l7 3",[1643,1653],{"d":1654},"M4 10l0 11",[1643,1656],{"d":1657},"M20 10l0 11",[1643,1659],{"d":1660},"M8 14l0 3",[1643,1662],{"d":1663},"M12 14l0 3",[1643,1665],{"d":1666},"M16 14l0 3",[1668,1670,1673,1676,1679],[1643,1669],{"d":1645},[1643,1671],{"d":1672},"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",[1643,1674],{"d":1675},"M5 21l0 -10.15",[1643,1677],{"d":1678},"M19 21l0 -10.15",[1643,1680],{"d":1681},"M9 21v-4a2 2 0 0 1 2 -2h2a2 2 0 0 1 2 2v4",[1683,1686,1689,1692],[1643,1684],{"d":1685},"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",[1643,1687],{"d":1688},"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",[1643,1690],{"d":1691},"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",[1643,1693],{"d":1694},"M4 20h14",[1696,1699],[1643,1697],{"d":1698},"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",[1643,1700],{"d":1701},"M15 3.5a9 9 0 0 1 5.5 5.5h-4.5a1 1 0 0 1 -1 -1v-4.5",[1703,1706,1709],[1643,1704],{"d":1705},"M7 8l-4 4l4 4",[1643,1707],{"d":1708},"M17 8l4 4l-4 4",[1643,1710],{"d":1711},"M14 4l-4 16",[1713,1716,1720,1723],[1643,1714],{"d":1715},"M9 15l6 -6",[1643,1717],{"d":1718,"fill":1719},"M9 9.5a.5 .5 0 1 0 1 0a.5 .5 0 1 0 -1 0","currentColor",[1643,1721],{"d":1722,"fill":1719},"M14 14.5a.5 .5 0 1 0 1 0a.5 .5 0 1 0 -1 0",[1643,1724],{"d":1725},"M3 12a9 9 0 1 0 18 0a9 9 0 1 0 -18 0",[1727,1730,1733,1736],[1643,1728],{"d":1729},"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",[1643,1731],{"d":1732},"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",[1643,1734],{"d":1735},"M12.5 15.5l2 2",[1643,1737],{"d":1738},"M15 13l2 2",[1740,1743,1746,1749],[1643,1741],{"d":1742},"M12 18h-7a2 2 0 0 1 -2 -2v-10a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v7.5",[1643,1744],{"d":1745},"M3 6l9 6l9 -6",[1643,1747],{"d":1748},"M15 18h6",[1643,1750],{"d":1751},"M18 15l3 3l-3 3",[1753,1756],[1643,1754],{"d":1755},"M21 14l-3 -3h-7a1 1 0 0 1 -1 -1v-6a1 1 0 0 1 1 -1h9a1 1 0 0 1 1 1v10",[1643,1757],{"d":1758},"M14 15v2a1 1 0 0 1 -1 1h-7l-3 3v-10a1 1 0 0 1 1 -1h2",[1760,1763],[1643,1761],{"d":1762},"M15 12.9a5 5 0 1 0 -3.902 -3.9",[1643,1764],{"d":1765},"M15 12.9l-3.902 -3.899l-7.513 8.584a2 2 0 1 0 2.827 2.83l8.588 -7.515",[1767,1770,1773,1776],[1643,1768],{"d":1769},"M15 8h.01",[1643,1771],{"d":1772},"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",[1643,1774],{"d":1775},"M3 16l5 -5c.928 -.893 2.072 -.893 3 0l5 5",[1643,1777],{"d":1778},"M14 14l1 -1c.928 -.893 2.072 -.893 3 0l3 3",[1780,1783,1786,1789,1792,1795],[1643,1781],{"d":1782},"M7 12l5 5l-1.5 1.5a3.536 3.536 0 1 1 -5 -5l1.5 -1.5",[1643,1784],{"d":1785},"M17 12l-5 -5l1.5 -1.5a3.536 3.536 0 1 1 5 5l-1.5 1.5",[1643,1787],{"d":1788},"M3 21l2.5 -2.5",[1643,1790],{"d":1791},"M18.5 5.5l2.5 -2.5",[1643,1793],{"d":1794},"M10 11l-2 2",[1643,1796],{"d":1797},"M13 14l-2 2",[1799,1802],[1643,1800],{"d":1801},"M22 9l-10 -4l-10 4l10 4l10 -4v6",[1643,1803],{"d":1804},"M6 10.6v5.4a6 3 0 0 0 12 0v-5.4",[1806,1809,1812],[1643,1807],{"d":1808},"M18 8a3 3 0 0 1 0 6",[1643,1810],{"d":1811},"M10 8v11a1 1 0 0 1 -1 1h-1a1 1 0 0 1 -1 -1v-5",[1643,1813],{"d":1814},"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",[1816,1819,1822,1825,1828],[1643,1817],{"d":1818},"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",[1643,1820],{"d":1821},"M8 15a6 6 0 1 0 12 0v-3",[1643,1823],{"d":1824},"M11 3v2",[1643,1826],{"d":1827},"M6 3v2",[1643,1829],{"d":1830},"M18 10a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",[1832,1835,1838,1841,1844,1847],[1643,1833],{"d":1834},"M8 21l8 0",[1643,1836],{"d":1837},"M12 17l0 4",[1643,1839],{"d":1840},"M7 4l10 0",[1643,1842],{"d":1843},"M17 4v8a5 5 0 0 1 -10 0v-8",[1643,1845],{"d":1846},"M3 9a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",[1643,1848],{"d":1849},"M17 9a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",[1851,1854,1857,1860],[1643,1852],{"d":1853},"M8 7a4 4 0 1 0 8 0a4 4 0 0 0 -8 0",[1643,1855],{"d":1856},"M16 19h6",[1643,1858],{"d":1859},"M19 16v6",[1643,1861],{"d":1862},"M6 21v-2a4 4 0 0 1 4 -4h4",3529977955]