Make a call
curl --request POST \
--url https://my.cloudtalk.io/api/calls/create.json \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '
{
"agent_id": 123,
"callee_number": "<string>"
}
'import requests
url = "https://my.cloudtalk.io/api/calls/create.json"
payload = {
"agent_id": 123,
"callee_number": "<string>"
}
headers = {
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Basic <encoded-value>', 'Content-Type': 'application/json'},
body: JSON.stringify({agent_id: 123, callee_number: '<string>'})
};
fetch('https://my.cloudtalk.io/api/calls/create.json', 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://my.cloudtalk.io/api/calls/create.json",
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([
'agent_id' => 123,
'callee_number' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>",
"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://my.cloudtalk.io/api/calls/create.json"
payload := strings.NewReader("{\n \"agent_id\": 123,\n \"callee_number\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Basic <encoded-value>")
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://my.cloudtalk.io/api/calls/create.json")
.header("Authorization", "Basic <encoded-value>")
.header("Content-Type", "application/json")
.body("{\n \"agent_id\": 123,\n \"callee_number\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://my.cloudtalk.io/api/calls/create.json")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Basic <encoded-value>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"agent_id\": 123,\n \"callee_number\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"responseData": {
"status": 200
}
}{
"responseData": {
"status": 403,
"message": "Agent is not online."
}
}{
"responseData": {
"status": 404,
"message": "Not found."
}
}{
"responseData": {
"status": 406,
"message": "Invalid input data."
}
}{
"responseData": {
"status": 409,
"message": "Agent is already calling."
}
}{
"responseData": {
"status": 500,
"message": "Something went wrong."
}
}Calls
Make a call
Make a call using to any phone numbers. To place a new outbound call, make an HTTP POST request. At first it will initiate a call to an agent. Maximum waiting time for an agent to pick up the call is 20 seconds. After an agent picks up, we will automatically call desired phone number.
POST
/
calls
/
create.json
Make a call
curl --request POST \
--url https://my.cloudtalk.io/api/calls/create.json \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '
{
"agent_id": 123,
"callee_number": "<string>"
}
'import requests
url = "https://my.cloudtalk.io/api/calls/create.json"
payload = {
"agent_id": 123,
"callee_number": "<string>"
}
headers = {
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Basic <encoded-value>', 'Content-Type': 'application/json'},
body: JSON.stringify({agent_id: 123, callee_number: '<string>'})
};
fetch('https://my.cloudtalk.io/api/calls/create.json', 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://my.cloudtalk.io/api/calls/create.json",
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([
'agent_id' => 123,
'callee_number' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>",
"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://my.cloudtalk.io/api/calls/create.json"
payload := strings.NewReader("{\n \"agent_id\": 123,\n \"callee_number\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Basic <encoded-value>")
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://my.cloudtalk.io/api/calls/create.json")
.header("Authorization", "Basic <encoded-value>")
.header("Content-Type", "application/json")
.body("{\n \"agent_id\": 123,\n \"callee_number\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://my.cloudtalk.io/api/calls/create.json")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Basic <encoded-value>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"agent_id\": 123,\n \"callee_number\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"responseData": {
"status": 200
}
}{
"responseData": {
"status": 403,
"message": "Agent is not online."
}
}{
"responseData": {
"status": 404,
"message": "Not found."
}
}{
"responseData": {
"status": 406,
"message": "Invalid input data."
}
}{
"responseData": {
"status": 409,
"message": "Agent is already calling."
}
}{
"responseData": {
"status": 500,
"message": "Something went wrong."
}
}Authorizations
HTTP Basic Authentication. Use your API Access Key ID as the username and your API Access Key Secret as the password. Generate keys in the CloudTalk Dashboard under Account -> Settings -> API Keys (https://dashboard.cloudtalk.io/menu/account/settings/API-keys).
Body
application/json
Response
No error
Show child attributes
Show child attributes
Related topics
CloudTalk REST API: Call Center Automation PlatformCloudTalk API Response Envelope Formats and SchemaCloudTalk API HTTP Error Codes: Causes and Resolutions⌘I