Resend call webhooks
curl --request POST \
--url https://app.autocalls.ai/api/user/calls/resend-webhooks \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"call_ids": [
123
]
}
'import requests
url = "https://app.autocalls.ai/api/user/calls/resend-webhooks"
payload = { "call_ids": [123] }
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({call_ids: [123]})
};
fetch('https://app.autocalls.ai/api/user/calls/resend-webhooks', 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://app.autocalls.ai/api/user/calls/resend-webhooks",
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([
'call_ids' => [
123
]
]),
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://app.autocalls.ai/api/user/calls/resend-webhooks"
payload := strings.NewReader("{\n \"call_ids\": [\n 123\n ]\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://app.autocalls.ai/api/user/calls/resend-webhooks")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"call_ids\": [\n 123\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.autocalls.ai/api/user/calls/resend-webhooks")
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 \"call_ids\": [\n 123\n ]\n}"
response = http.request(request)
puts response.read_body{
"message": "Webhook resend queued for 1 call(s).",
"queued_call_ids": [12345],
"skipped": [
{
"call_id": 12346,
"reason": "The post-call webhook was not enabled for this call."
}
]
}
{
"message": "One or more calls were not found.",
"errors": {
"call_ids": [
"One or more calls were not found."
]
}
}
{
"message": "Too Many Attempts."
}
Calls
Resend call webhooks
Send the post-call webhook of one or more calls again
POST
/
user
/
calls
/
resend-webhooks
Resend call webhooks
curl --request POST \
--url https://app.autocalls.ai/api/user/calls/resend-webhooks \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"call_ids": [
123
]
}
'import requests
url = "https://app.autocalls.ai/api/user/calls/resend-webhooks"
payload = { "call_ids": [123] }
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({call_ids: [123]})
};
fetch('https://app.autocalls.ai/api/user/calls/resend-webhooks', 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://app.autocalls.ai/api/user/calls/resend-webhooks",
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([
'call_ids' => [
123
]
]),
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://app.autocalls.ai/api/user/calls/resend-webhooks"
payload := strings.NewReader("{\n \"call_ids\": [\n 123\n ]\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://app.autocalls.ai/api/user/calls/resend-webhooks")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"call_ids\": [\n 123\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.autocalls.ai/api/user/calls/resend-webhooks")
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 \"call_ids\": [\n 123\n ]\n}"
response = http.request(request)
puts response.read_body{
"message": "Webhook resend queued for 1 call(s).",
"queued_call_ids": [12345],
"skipped": [
{
"call_id": 12346,
"reason": "The post-call webhook was not enabled for this call."
}
]
}
{
"message": "One or more calls were not found.",
"errors": {
"call_ids": [
"One or more calls were not found."
]
}
}
{
"message": "Too Many Attempts."
}
This endpoint sends the post-call webhook of one or more calls again, with the data stored on each call, to the webhook URL currently configured on the call’s assistant. Use it when your endpoint was down, answered with an error, or lost the payload. For each call it does the same as Re-send webhook on the call page; the call is not evaluated again.
The deliveries are queued and start right after the request returns. Failed deliveries are retried the same way as the original ones (see Delivery and retries). Your endpoint receives each call again, so de-duplicate on the payload’s
id.
Request body
integer[]
required
The identifiers of the calls to resend (from List calls), up to 500 per request. Send one id to resend a single call. Duplicate ids are ignored.
Response
string
A summary of what was queued
integer[]
The calls whose webhook is being sent again
object[]
Error Responses
Show Error Response
Show Error Response
string
call_ids is missing, empty, longer than 500 or not a list of integers, or one or more of the calls do not exist or do not belong to the authenticated user. Nothing is resentShow Error Response
Show Error Response
string
More than 10 requests in a minute. The
Retry-After response header tells you how many seconds to wait{
"message": "Webhook resend queued for 1 call(s).",
"queued_call_ids": [12345],
"skipped": [
{
"call_id": 12346,
"reason": "The post-call webhook was not enabled for this call."
}
]
}
{
"message": "One or more calls were not found.",
"errors": {
"call_ids": [
"One or more calls were not found."
]
}
}
{
"message": "Too Many Attempts."
}
Notes
- Only calls that belong to assistants owned by the authenticated user can be resent
- The payload reflects the call as it is now, including any variables extracted after the original delivery
- The result of each delivery is shown on the call page and returned as
webhook_responseby Get call - Each resend is a new delivery: your endpoint must handle the same
idarriving more than once

