Set 'Your number' — verified immediately, no link to click
curl --request POST \
--url https://{subdomain}.mihu.ai/api/v1/assistant-channels/sms/personal-contact \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"user_email": "<string>",
"personal_contact": "<string>"
}
'import requests
url = "https://{subdomain}.mihu.ai/api/v1/assistant-channels/sms/personal-contact"
payload = {
"user_email": "<string>",
"personal_contact": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({user_email: '<string>', personal_contact: '<string>'})
};
fetch('https://{subdomain}.mihu.ai/api/v1/assistant-channels/sms/personal-contact', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://{subdomain}.mihu.ai/api/v1/assistant-channels/sms/personal-contact",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'user_email' => '<string>',
'personal_contact' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://{subdomain}.mihu.ai/api/v1/assistant-channels/sms/personal-contact"
payload := strings.NewReader("{\n \"user_email\": \"<string>\",\n \"personal_contact\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://{subdomain}.mihu.ai/api/v1/assistant-channels/sms/personal-contact")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"user_email\": \"<string>\",\n \"personal_contact\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{subdomain}.mihu.ai/api/v1/assistant-channels/sms/personal-contact")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"user_email\": \"<string>\",\n \"personal_contact\": \"<string>\"\n}"
response = http.request(request)
puts response.read_bodyAssistant Channels
Set 'Your number' — verified immediately, no link to click
Telnyx already authenticates the sending number at the transport level before its webhook ever reaches this app, so there’s no separate confirmation step like email’s.
POST
/
api
/
v1
/
assistant-channels
/
sms
/
personal-contact
Set 'Your number' — verified immediately, no link to click
curl --request POST \
--url https://{subdomain}.mihu.ai/api/v1/assistant-channels/sms/personal-contact \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"user_email": "<string>",
"personal_contact": "<string>"
}
'import requests
url = "https://{subdomain}.mihu.ai/api/v1/assistant-channels/sms/personal-contact"
payload = {
"user_email": "<string>",
"personal_contact": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({user_email: '<string>', personal_contact: '<string>'})
};
fetch('https://{subdomain}.mihu.ai/api/v1/assistant-channels/sms/personal-contact', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://{subdomain}.mihu.ai/api/v1/assistant-channels/sms/personal-contact",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'user_email' => '<string>',
'personal_contact' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://{subdomain}.mihu.ai/api/v1/assistant-channels/sms/personal-contact"
payload := strings.NewReader("{\n \"user_email\": \"<string>\",\n \"personal_contact\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://{subdomain}.mihu.ai/api/v1/assistant-channels/sms/personal-contact")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"user_email\": \"<string>\",\n \"personal_contact\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{subdomain}.mihu.ai/api/v1/assistant-channels/sms/personal-contact")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"user_email\": \"<string>\",\n \"personal_contact\": \"<string>\"\n}"
response = http.request(request)
puts response.read_bodyList numbers already set up for SMS via an agent that can also feed an assistantConfigure 2FA for a channel
⌘I