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
string | header
required
Project API key header of the form Bearer
AS_<key>.Path Parameters
string
required
The unique identifier of the webhook.Example:
"60d5ec49f1b2c72d9c8b1234"Query Parameters
integer
Page number for pagination.Default:
1integer
Number of logs to return per page.Default:
50Range: 1–100Response
Delivery logs retrieved successfully (200)boolean
Indicates if the request was successful
object
Paginated delivery logs
Show child attributes
Show child attributes
object[]
Array of delivery attempt records
Show log attributes
Show log attributes
string
The event type that was delivered
string
The destination URL the payload was POSTed to
integer | null
HTTP status code returned by the destination
boolean
Whether the delivery was considered successful
integer
Number of delivery attempts made
integer | null
Time taken to deliver, in milliseconds
string | null
Error detail if the delivery failed
string | null
ISO 8601 timestamp of successful delivery
integer
Total number of log entries
integer
Total number of pages
Error Responses
object
Returned when no webhook with the given ID exists in the project.
{
"success": false,
"error": {
"message": "Webhook not found",
"code": "WEBHOOK_NOT_FOUND",
}
}
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
}
}