Webhooks
List Delivery Logs
Retrieves the delivery attempt history for a webhook, including response status and timestamps. Supports pagination.
GET
/
webhooks
/
{id}
/
logs
curl --request GET \
--url 'https://api.autosend.com/v1/webhooks/60d5ec49f1b2c72d9c8b1234/logs?page=1&limit=50' \
--header 'Authorization: Bearer AS_your-api-key'
import requests
webhook_id = "60d5ec49f1b2c72d9c8b1234"
url = f"https://api.autosend.com/v1/webhooks/{webhook_id}/logs"
headers = {
"Authorization": "Bearer AS_your-api-key"
}
params = {"page": 1, "limit": 50}
response = requests.get(url, headers=headers, params=params)
print(response.json())
const webhookId = '60d5ec49f1b2c72d9c8b1234';
fetch(`https://api.autosend.com/v1/webhooks/${webhookId}/logs?page=1&limit=50`, {
method: 'GET',
headers: {
'Authorization': 'Bearer AS_your-api-key'
}
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
<?php
$webhookId = '60d5ec49f1b2c72d9c8b1234';
$url = "https://api.autosend.com/v1/webhooks/{$webhookId}/logs?page=1&limit=50";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer AS_your-api-key'
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
webhookID := "60d5ec49f1b2c72d9c8b1234"
url := "https://api.autosend.com/v1/webhooks/" + webhookID + "/logs?page=1&limit=50"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Set("Authorization", "Bearer AS_your-api-key")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
fmt.Println("Error:", err)
return
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class ListDeliveryLogs {
public static void main(String[] args) {
try {
String webhookId = "60d5ec49f1b2c72d9c8b1234";
URL url = new URL("https://api.autosend.com/v1/webhooks/" + webhookId + "/logs?page=1&limit=50");
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setRequestMethod("GET");
con.setRequestProperty("Authorization", "Bearer AS_your-api-key");
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuilder content = new StringBuilder();
while ((inputLine = in.readLine()) != null) {
content.append(inputLine);
}
in.close();
System.out.println(content.toString());
} catch (Exception e) {
e.printStackTrace();
}
}
}
require 'net/http'
require 'uri'
webhook_id = '60d5ec49f1b2c72d9c8b1234'
uri = URI("https://api.autosend.com/v1/webhooks/#{webhook_id}/logs?page=1&limit=50")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Get.new(uri.request_uri)
request['Authorization'] = 'Bearer AS_your-api-key'
response = http.request(request)
puts response.body
{
"success": true,
"data": {
"logs": [
{
"_id": "60d5ec49f1b2c72d9c8b9999",
"webhookId": "60d5ec49f1b2c72d9c8b1234",
"projectId": "60d5ec49f1b2c72d9c8b1111",
"event": "email.delivered",
"url": "https://example.com/webhooks/autosend",
"statusCode": 200,
"success": true,
"attempts": 1,
"duration": 142,
"deliveredAt": "2026-06-12T10:15:00.000Z",
"createdAt": "2026-06-12T10:15:00.000Z",
"updatedAt": "2026-06-12T10:15:00.000Z"
}
],
"total": 1,
"page": 1,
"limit": 50,
"totalPages": 1
}
}
This endpoint accepts a project API key (
AS_ prefix). Returns the delivery attempt history for a webhook, most recent first.curl --request GET \
--url 'https://api.autosend.com/v1/webhooks/60d5ec49f1b2c72d9c8b1234/logs?page=1&limit=50' \
--header 'Authorization: Bearer AS_your-api-key'
import requests
webhook_id = "60d5ec49f1b2c72d9c8b1234"
url = f"https://api.autosend.com/v1/webhooks/{webhook_id}/logs"
headers = {
"Authorization": "Bearer AS_your-api-key"
}
params = {"page": 1, "limit": 50}
response = requests.get(url, headers=headers, params=params)
print(response.json())
const webhookId = '60d5ec49f1b2c72d9c8b1234';
fetch(`https://api.autosend.com/v1/webhooks/${webhookId}/logs?page=1&limit=50`, {
method: 'GET',
headers: {
'Authorization': 'Bearer AS_your-api-key'
}
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
<?php
$webhookId = '60d5ec49f1b2c72d9c8b1234';
$url = "https://api.autosend.com/v1/webhooks/{$webhookId}/logs?page=1&limit=50";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer AS_your-api-key'
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
webhookID := "60d5ec49f1b2c72d9c8b1234"
url := "https://api.autosend.com/v1/webhooks/" + webhookID + "/logs?page=1&limit=50"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Set("Authorization", "Bearer AS_your-api-key")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
fmt.Println("Error:", err)
return
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class ListDeliveryLogs {
public static void main(String[] args) {
try {
String webhookId = "60d5ec49f1b2c72d9c8b1234";
URL url = new URL("https://api.autosend.com/v1/webhooks/" + webhookId + "/logs?page=1&limit=50");
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setRequestMethod("GET");
con.setRequestProperty("Authorization", "Bearer AS_your-api-key");
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuilder content = new StringBuilder();
while ((inputLine = in.readLine()) != null) {
content.append(inputLine);
}
in.close();
System.out.println(content.toString());
} catch (Exception e) {
e.printStackTrace();
}
}
}
require 'net/http'
require 'uri'
webhook_id = '60d5ec49f1b2c72d9c8b1234'
uri = URI("https://api.autosend.com/v1/webhooks/#{webhook_id}/logs?page=1&limit=50")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Get.new(uri.request_uri)
request['Authorization'] = 'Bearer AS_your-api-key'
response = http.request(request)
puts response.body
{
"success": true,
"data": {
"logs": [
{
"_id": "60d5ec49f1b2c72d9c8b9999",
"webhookId": "60d5ec49f1b2c72d9c8b1234",
"projectId": "60d5ec49f1b2c72d9c8b1111",
"event": "email.delivered",
"url": "https://example.com/webhooks/autosend",
"statusCode": 200,
"success": true,
"attempts": 1,
"duration": 142,
"deliveredAt": "2026-06-12T10:15:00.000Z",
"createdAt": "2026-06-12T10:15:00.000Z",
"updatedAt": "2026-06-12T10:15:00.000Z"
}
],
"total": 1,
"page": 1,
"limit": 50,
"totalPages": 1
}
}
Authorizations
Project API key header of the form Bearer
AS_<key>.Path Parameters
The unique identifier of the webhook.Example:
"60d5ec49f1b2c72d9c8b1234"Query Parameters
Page number for pagination.Default:
1Number of logs to return per page.Default:
50Range: 1–100Response
Delivery logs retrieved successfully (200)Indicates if the request was successful
Paginated delivery logs
Show child attributes
Show child attributes
Array of delivery attempt records
Show log attributes
Show log attributes
The event type that was delivered
The destination URL the payload was POSTed to
HTTP status code returned by the destination
Whether the delivery was considered successful
Number of delivery attempts made
Time taken to deliver, in milliseconds
Error detail if the delivery failed
ISO 8601 timestamp of successful delivery
Total number of log entries
Total number of pages
Error Responses
Returned when no webhook with the given ID exists in the project.
{
"success": false,
"error": {
"message": "Webhook not found",
"code": "WEBHOOK_NOT_FOUND",
}
}
Related topics
Was this page helpful?
⌘I
curl --request GET \
--url 'https://api.autosend.com/v1/webhooks/60d5ec49f1b2c72d9c8b1234/logs?page=1&limit=50' \
--header 'Authorization: Bearer AS_your-api-key'
import requests
webhook_id = "60d5ec49f1b2c72d9c8b1234"
url = f"https://api.autosend.com/v1/webhooks/{webhook_id}/logs"
headers = {
"Authorization": "Bearer AS_your-api-key"
}
params = {"page": 1, "limit": 50}
response = requests.get(url, headers=headers, params=params)
print(response.json())
const webhookId = '60d5ec49f1b2c72d9c8b1234';
fetch(`https://api.autosend.com/v1/webhooks/${webhookId}/logs?page=1&limit=50`, {
method: 'GET',
headers: {
'Authorization': 'Bearer AS_your-api-key'
}
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
<?php
$webhookId = '60d5ec49f1b2c72d9c8b1234';
$url = "https://api.autosend.com/v1/webhooks/{$webhookId}/logs?page=1&limit=50";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer AS_your-api-key'
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
webhookID := "60d5ec49f1b2c72d9c8b1234"
url := "https://api.autosend.com/v1/webhooks/" + webhookID + "/logs?page=1&limit=50"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Set("Authorization", "Bearer AS_your-api-key")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
fmt.Println("Error:", err)
return
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class ListDeliveryLogs {
public static void main(String[] args) {
try {
String webhookId = "60d5ec49f1b2c72d9c8b1234";
URL url = new URL("https://api.autosend.com/v1/webhooks/" + webhookId + "/logs?page=1&limit=50");
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setRequestMethod("GET");
con.setRequestProperty("Authorization", "Bearer AS_your-api-key");
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuilder content = new StringBuilder();
while ((inputLine = in.readLine()) != null) {
content.append(inputLine);
}
in.close();
System.out.println(content.toString());
} catch (Exception e) {
e.printStackTrace();
}
}
}
require 'net/http'
require 'uri'
webhook_id = '60d5ec49f1b2c72d9c8b1234'
uri = URI("https://api.autosend.com/v1/webhooks/#{webhook_id}/logs?page=1&limit=50")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Get.new(uri.request_uri)
request['Authorization'] = 'Bearer AS_your-api-key'
response = http.request(request)
puts response.body
{
"success": true,
"data": {
"logs": [
{
"_id": "60d5ec49f1b2c72d9c8b9999",
"webhookId": "60d5ec49f1b2c72d9c8b1234",
"projectId": "60d5ec49f1b2c72d9c8b1111",
"event": "email.delivered",
"url": "https://example.com/webhooks/autosend",
"statusCode": 200,
"success": true,
"attempts": 1,
"duration": 142,
"deliveredAt": "2026-06-12T10:15:00.000Z",
"createdAt": "2026-06-12T10:15:00.000Z",
"updatedAt": "2026-06-12T10:15:00.000Z"
}
],
"total": 1,
"page": 1,
"limit": 50,
"totalPages": 1
}
}