Invoke new call attempt
curl --request POST \
--url https://api.instaview.sk/conversations/{id}/call-attempts \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"scheduledAt": "2026-05-01T10:00:00Z"
}
'import requests
url = "https://api.instaview.sk/conversations/{id}/call-attempts"
payload = { "scheduledAt": "2026-05-01T10:00:00Z" }
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({scheduledAt: '2026-05-01T10:00:00Z'})
};
fetch('https://api.instaview.sk/conversations/{id}/call-attempts', 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.instaview.sk/conversations/{id}/call-attempts",
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([
'scheduledAt' => '2026-05-01T10:00:00Z'
]),
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.instaview.sk/conversations/{id}/call-attempts"
payload := strings.NewReader("{\n \"scheduledAt\": \"2026-05-01T10:00:00Z\"\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.instaview.sk/conversations/{id}/call-attempts")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"scheduledAt\": \"2026-05-01T10:00:00Z\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.instaview.sk/conversations/{id}/call-attempts")
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 \"scheduledAt\": \"2026-05-01T10:00:00Z\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"message": "<string>"
}Conversations
Invoke New Call Attempt
Creates a new call attempt on a conversation. Optionally schedules it for a future time. Individual call attempt management is forbidden for ONLINE conversations.
POST
/
conversations
/
{id}
/
call-attempts
Invoke new call attempt
curl --request POST \
--url https://api.instaview.sk/conversations/{id}/call-attempts \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"scheduledAt": "2026-05-01T10:00:00Z"
}
'import requests
url = "https://api.instaview.sk/conversations/{id}/call-attempts"
payload = { "scheduledAt": "2026-05-01T10:00:00Z" }
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({scheduledAt: '2026-05-01T10:00:00Z'})
};
fetch('https://api.instaview.sk/conversations/{id}/call-attempts', 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.instaview.sk/conversations/{id}/call-attempts",
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([
'scheduledAt' => '2026-05-01T10:00:00Z'
]),
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.instaview.sk/conversations/{id}/call-attempts"
payload := strings.NewReader("{\n \"scheduledAt\": \"2026-05-01T10:00:00Z\"\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.instaview.sk/conversations/{id}/call-attempts")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"scheduledAt\": \"2026-05-01T10:00:00Z\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.instaview.sk/conversations/{id}/call-attempts")
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 \"scheduledAt\": \"2026-05-01T10:00:00Z\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"message": "<string>"
}POST /interviews/{id}/call-attempts is a permanent alias of this endpoint and keeps working unchanged, with the same scopes and the same response. See Resource names.ONLINE conversations: managing individual call attempts is forbidden on an
ONLINE conversation. There, the whole conversation is the unit — use Delete Conversation.Overview
This endpoint places a new call on a phone conversation. It is useful when:- A previous call attempt failed (e.g., no answer, busy) and you want to try again manually.
- You want to override the automatic retry logic and trigger a call immediately.
- You want to schedule a specific time for the next call attempt.
Constraints and Behavior
- Queue management: invoking a new attempt cancels any attempt already scheduled on that conversation and replaces it.
- In-progress protection: while a call is in progress on the conversation, a new attempt cannot be invoked.
- Transactional Integrity: The creation of a call attempt and its synchronization with the processing queue is handled transactionally.
Examples
Immediate Call
OmitscheduledAt to trigger a call attempt as soon as possible:
{
"scheduledAt": null
}
Scheduled Call Attempt
Provide a future ISO 8601 timestamp to schedule the call for a specific time:{
"scheduledAt": "2026-05-01T10:00:00Z"
}
This endpoint does not apply the agent’s calling
window either way. A
scheduledAt you send is used exactly as given, including when it falls outside those hours.
Omitting it dials as soon as capacity allows, which is the point of an explicit invoke, so that
is not held back to the window either. Both are deliberate: you are asking for this call now,
and the window governs the calls we schedule ourselves.Next steps: follow the attempt by fetching the conversation through Get Conversation and reading its
callAttempts array.Authorizations
API key for authentication using Bearer scheme
Path Parameters
Query Parameters
Required for ATS API keys to specify which company to access. Ignored for standard company API keys.
Body
application/json
Optional scheduled time for the call attempt (ISO string). If not provided, call will be invoked immediately. When provided it is used exactly as sent, including when it falls outside the agent's calling window.
Example:
"2026-05-01T10:00:00Z"