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