Trigger an assistant call
curl --request POST \
--url https://api.altahq.com/v1/assistant/calls \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"assistantId": "<string>",
"name": "<string>",
"phoneNumber": "<string>",
"email": "<string>",
"timezone": "<string>",
"data": {}
}
'import requests
url = "https://api.altahq.com/v1/assistant/calls"
payload = {
"assistantId": "<string>",
"name": "<string>",
"phoneNumber": "<string>",
"email": "<string>",
"timezone": "<string>",
"data": {}
}
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({
assistantId: '<string>',
name: '<string>',
phoneNumber: '<string>',
email: '<string>',
timezone: '<string>',
data: {}
})
};
fetch('https://api.altahq.com/v1/assistant/calls', 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://api.altahq.com/v1/assistant/calls",
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([
'assistantId' => '<string>',
'name' => '<string>',
'phoneNumber' => '<string>',
'email' => '<string>',
'timezone' => '<string>',
'data' => [
]
]),
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://api.altahq.com/v1/assistant/calls"
payload := strings.NewReader("{\n \"assistantId\": \"<string>\",\n \"name\": \"<string>\",\n \"phoneNumber\": \"<string>\",\n \"email\": \"<string>\",\n \"timezone\": \"<string>\",\n \"data\": {}\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://api.altahq.com/v1/assistant/calls")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"assistantId\": \"<string>\",\n \"name\": \"<string>\",\n \"phoneNumber\": \"<string>\",\n \"email\": \"<string>\",\n \"timezone\": \"<string>\",\n \"data\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.altahq.com/v1/assistant/calls")
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 \"assistantId\": \"<string>\",\n \"name\": \"<string>\",\n \"phoneNumber\": \"<string>\",\n \"email\": \"<string>\",\n \"timezone\": \"<string>\",\n \"data\": {}\n}"
response = http.request(request)
puts response.read_body{
"error": "ValidationError",
"message": "Invalid request body"
}{
"error": "Unauthorized",
"message": "Invalid API token"
}{
"error": "TooManyRequests",
"message": "Rate limit exceeded. Please retry after 60 seconds."
}Assistant
Trigger an assistant call
Triggers an outbound phone call from an AI assistant to the specified phone number.
POST
/
assistant
/
calls
Trigger an assistant call
curl --request POST \
--url https://api.altahq.com/v1/assistant/calls \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"assistantId": "<string>",
"name": "<string>",
"phoneNumber": "<string>",
"email": "<string>",
"timezone": "<string>",
"data": {}
}
'import requests
url = "https://api.altahq.com/v1/assistant/calls"
payload = {
"assistantId": "<string>",
"name": "<string>",
"phoneNumber": "<string>",
"email": "<string>",
"timezone": "<string>",
"data": {}
}
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({
assistantId: '<string>',
name: '<string>',
phoneNumber: '<string>',
email: '<string>',
timezone: '<string>',
data: {}
})
};
fetch('https://api.altahq.com/v1/assistant/calls', 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://api.altahq.com/v1/assistant/calls",
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([
'assistantId' => '<string>',
'name' => '<string>',
'phoneNumber' => '<string>',
'email' => '<string>',
'timezone' => '<string>',
'data' => [
]
]),
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://api.altahq.com/v1/assistant/calls"
payload := strings.NewReader("{\n \"assistantId\": \"<string>\",\n \"name\": \"<string>\",\n \"phoneNumber\": \"<string>\",\n \"email\": \"<string>\",\n \"timezone\": \"<string>\",\n \"data\": {}\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://api.altahq.com/v1/assistant/calls")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"assistantId\": \"<string>\",\n \"name\": \"<string>\",\n \"phoneNumber\": \"<string>\",\n \"email\": \"<string>\",\n \"timezone\": \"<string>\",\n \"data\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.altahq.com/v1/assistant/calls")
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 \"assistantId\": \"<string>\",\n \"name\": \"<string>\",\n \"phoneNumber\": \"<string>\",\n \"email\": \"<string>\",\n \"timezone\": \"<string>\",\n \"data\": {}\n}"
response = http.request(request)
puts response.read_body{
"error": "ValidationError",
"message": "Invalid request body"
}{
"error": "Unauthorized",
"message": "Invalid API token"
}{
"error": "TooManyRequests",
"message": "Rate limit exceeded. Please retry after 60 seconds."
}See Error for the error response format.
Authorizations
API token authentication. Generate a token from the Alta dashboard and pass it as a Bearer token in the Authorization header.
Body
application/json
The ID of the assistant to use for the call.
The name of the person being called.
The phone number to call (E.164 format recommended).
The email address of the person being called.
The timezone of the person being called (e.g. America/New_York).
Custom data to pass to the assistant during the call.
Call transfer configuration.
Show child attributes
Show child attributes
Response
Call triggered successfully