List Attempts
Retrieve the delivery attempts for a single webhook event.
GET
/
webhooks
/
:webhook_id
/
events
/
:event_id
/
attempts
import { Resend } from 'resend';
const resend = new Resend('re_xxxxxxxxx');
const { data, error } = await resend.webhooks.events.attempts.list({
eventId: 'msg_1srOrx2ZWZBpBUvZwXKQmoEYga2',
webhookId: '4dd369bc-aa82-4ff3-97de-514ae3000ee0',
});
$resend = Resend::client('re_xxxxxxxxx');
$attempts = $resend->webhooks->events->attempts->list(
'4dd369bc-aa82-4ff3-97de-514ae3000ee0',
'msg_1srOrx2ZWZBpBUvZwXKQmoEYga2'
);
import resend
resend.api_key = 're_xxxxxxxxx'
attempts = resend.Webhooks.list_event_attempts(
webhook_id='4dd369bc-aa82-4ff3-97de-514ae3000ee0',
event_id='msg_1srOrx2ZWZBpBUvZwXKQmoEYga2',
)
require 'resend'
Resend.api_key = 're_xxxxxxxxx'
attempts = Resend::Webhooks.list_event_attempts(
'4dd369bc-aa82-4ff3-97de-514ae3000ee0',
'msg_1srOrx2ZWZBpBUvZwXKQmoEYga2'
)
package main
import "github.com/resend/resend-go/v4"
func main() {
client := resend.NewClient("re_xxxxxxxxx")
client.Webhooks.ListEventAttempts(
"4dd369bc-aa82-4ff3-97de-514ae3000ee0",
"msg_1srOrx2ZWZBpBUvZwXKQmoEYga2",
)
}
use resend_rs::{list_opts::ListOptions, Resend, Result};
#[tokio::main]
async fn main() -> Result<()> {
let resend = Resend::new("re_xxxxxxxxx");
let _attempts = resend
.webhooks
.list_event_attempts(
"4dd369bc-aa82-4ff3-97de-514ae3000ee0",
"msg_1srOrx2ZWZBpBUvZwXKQmoEYga2",
ListOptions::default(),
)
.await?;
Ok(())
}
import com.resend.Resend;
import com.resend.core.exception.ResendException;
import com.resend.services.webhooks.model.ListWebhookEventAttemptsResponseSuccess;
public class Main {
public static void main(String[] args) throws ResendException {
Resend resend = new Resend("re_xxxxxxxxx");
ListWebhookEventAttemptsResponseSuccess attempts = resend.webhooks().listEventAttempts(
"4dd369bc-aa82-4ff3-97de-514ae3000ee0",
"msg_1srOrx2ZWZBpBUvZwXKQmoEYga2"
);
}
}
using Resend;
IResend resend = ResendClient.Create( "re_xxxxxxxxx" ); // Or from DI
var resp = await resend.WebhookEventAttemptListAsync(
new Guid( "4dd369bc-aa82-4ff3-97de-514ae3000ee0" ),
"msg_1srOrx2ZWZBpBUvZwXKQmoEYga2"
);
curl -X GET 'https://api.resend.com/webhooks/4dd369bc-aa82-4ff3-97de-514ae3000ee0/events/msg_1srOrx2ZWZBpBUvZwXKQmoEYga2/attempts' \
-H 'Authorization: Bearer re_xxxxxxxxx'
{
"object": "list",
"has_more": false,
"data": [
{
"id": "atmpt_1srOrx2ZWZBpBUvZwXKQmoEYga2",
"http_status_code": 200,
"response": "{\"ok\":true}",
"sent_at": "2026-08-22T15:33:12.000Z"
},
{
"id": "atmpt_2ZbUCwvGmIT4mLIN6d3Yz0Ainbd",
"http_status_code": 500,
"response": "Internal Server Error",
"sent_at": "2026-08-22T15:28:05.000Z"
}
]
}
Path Parameters
Query Parameters
The attempt ID to fetch the next page after.The
before parameter is not supported for this endpoint.Response Fields
import { Resend } from 'resend';
const resend = new Resend('re_xxxxxxxxx');
const { data, error } = await resend.webhooks.events.attempts.list({
eventId: 'msg_1srOrx2ZWZBpBUvZwXKQmoEYga2',
webhookId: '4dd369bc-aa82-4ff3-97de-514ae3000ee0',
});
$resend = Resend::client('re_xxxxxxxxx');
$attempts = $resend->webhooks->events->attempts->list(
'4dd369bc-aa82-4ff3-97de-514ae3000ee0',
'msg_1srOrx2ZWZBpBUvZwXKQmoEYga2'
);
import resend
resend.api_key = 're_xxxxxxxxx'
attempts = resend.Webhooks.list_event_attempts(
webhook_id='4dd369bc-aa82-4ff3-97de-514ae3000ee0',
event_id='msg_1srOrx2ZWZBpBUvZwXKQmoEYga2',
)
require 'resend'
Resend.api_key = 're_xxxxxxxxx'
attempts = Resend::Webhooks.list_event_attempts(
'4dd369bc-aa82-4ff3-97de-514ae3000ee0',
'msg_1srOrx2ZWZBpBUvZwXKQmoEYga2'
)
package main
import "github.com/resend/resend-go/v4"
func main() {
client := resend.NewClient("re_xxxxxxxxx")
client.Webhooks.ListEventAttempts(
"4dd369bc-aa82-4ff3-97de-514ae3000ee0",
"msg_1srOrx2ZWZBpBUvZwXKQmoEYga2",
)
}
use resend_rs::{list_opts::ListOptions, Resend, Result};
#[tokio::main]
async fn main() -> Result<()> {
let resend = Resend::new("re_xxxxxxxxx");
let _attempts = resend
.webhooks
.list_event_attempts(
"4dd369bc-aa82-4ff3-97de-514ae3000ee0",
"msg_1srOrx2ZWZBpBUvZwXKQmoEYga2",
ListOptions::default(),
)
.await?;
Ok(())
}
import com.resend.Resend;
import com.resend.core.exception.ResendException;
import com.resend.services.webhooks.model.ListWebhookEventAttemptsResponseSuccess;
public class Main {
public static void main(String[] args) throws ResendException {
Resend resend = new Resend("re_xxxxxxxxx");
ListWebhookEventAttemptsResponseSuccess attempts = resend.webhooks().listEventAttempts(
"4dd369bc-aa82-4ff3-97de-514ae3000ee0",
"msg_1srOrx2ZWZBpBUvZwXKQmoEYga2"
);
}
}
using Resend;
IResend resend = ResendClient.Create( "re_xxxxxxxxx" ); // Or from DI
var resp = await resend.WebhookEventAttemptListAsync(
new Guid( "4dd369bc-aa82-4ff3-97de-514ae3000ee0" ),
"msg_1srOrx2ZWZBpBUvZwXKQmoEYga2"
);
curl -X GET 'https://api.resend.com/webhooks/4dd369bc-aa82-4ff3-97de-514ae3000ee0/events/msg_1srOrx2ZWZBpBUvZwXKQmoEYga2/attempts' \
-H 'Authorization: Bearer re_xxxxxxxxx'
{
"object": "list",
"has_more": false,
"data": [
{
"id": "atmpt_1srOrx2ZWZBpBUvZwXKQmoEYga2",
"http_status_code": 200,
"response": "{\"ok\":true}",
"sent_at": "2026-08-22T15:33:12.000Z"
},
{
"id": "atmpt_2ZbUCwvGmIT4mLIN6d3Yz0Ainbd",
"http_status_code": 500,
"response": "Internal Server Error",
"sent_at": "2026-08-22T15:28:05.000Z"
}
]
}
Was this page helpful?
⌘I
import { Resend } from 'resend';
const resend = new Resend('re_xxxxxxxxx');
const { data, error } = await resend.webhooks.events.attempts.list({
eventId: 'msg_1srOrx2ZWZBpBUvZwXKQmoEYga2',
webhookId: '4dd369bc-aa82-4ff3-97de-514ae3000ee0',
});
$resend = Resend::client('re_xxxxxxxxx');
$attempts = $resend->webhooks->events->attempts->list(
'4dd369bc-aa82-4ff3-97de-514ae3000ee0',
'msg_1srOrx2ZWZBpBUvZwXKQmoEYga2'
);
import resend
resend.api_key = 're_xxxxxxxxx'
attempts = resend.Webhooks.list_event_attempts(
webhook_id='4dd369bc-aa82-4ff3-97de-514ae3000ee0',
event_id='msg_1srOrx2ZWZBpBUvZwXKQmoEYga2',
)
require 'resend'
Resend.api_key = 're_xxxxxxxxx'
attempts = Resend::Webhooks.list_event_attempts(
'4dd369bc-aa82-4ff3-97de-514ae3000ee0',
'msg_1srOrx2ZWZBpBUvZwXKQmoEYga2'
)
package main
import "github.com/resend/resend-go/v4"
func main() {
client := resend.NewClient("re_xxxxxxxxx")
client.Webhooks.ListEventAttempts(
"4dd369bc-aa82-4ff3-97de-514ae3000ee0",
"msg_1srOrx2ZWZBpBUvZwXKQmoEYga2",
)
}
use resend_rs::{list_opts::ListOptions, Resend, Result};
#[tokio::main]
async fn main() -> Result<()> {
let resend = Resend::new("re_xxxxxxxxx");
let _attempts = resend
.webhooks
.list_event_attempts(
"4dd369bc-aa82-4ff3-97de-514ae3000ee0",
"msg_1srOrx2ZWZBpBUvZwXKQmoEYga2",
ListOptions::default(),
)
.await?;
Ok(())
}
import com.resend.Resend;
import com.resend.core.exception.ResendException;
import com.resend.services.webhooks.model.ListWebhookEventAttemptsResponseSuccess;
public class Main {
public static void main(String[] args) throws ResendException {
Resend resend = new Resend("re_xxxxxxxxx");
ListWebhookEventAttemptsResponseSuccess attempts = resend.webhooks().listEventAttempts(
"4dd369bc-aa82-4ff3-97de-514ae3000ee0",
"msg_1srOrx2ZWZBpBUvZwXKQmoEYga2"
);
}
}
using Resend;
IResend resend = ResendClient.Create( "re_xxxxxxxxx" ); // Or from DI
var resp = await resend.WebhookEventAttemptListAsync(
new Guid( "4dd369bc-aa82-4ff3-97de-514ae3000ee0" ),
"msg_1srOrx2ZWZBpBUvZwXKQmoEYga2"
);
curl -X GET 'https://api.resend.com/webhooks/4dd369bc-aa82-4ff3-97de-514ae3000ee0/events/msg_1srOrx2ZWZBpBUvZwXKQmoEYga2/attempts' \
-H 'Authorization: Bearer re_xxxxxxxxx'
{
"object": "list",
"has_more": false,
"data": [
{
"id": "atmpt_1srOrx2ZWZBpBUvZwXKQmoEYga2",
"http_status_code": 200,
"response": "{\"ok\":true}",
"sent_at": "2026-08-22T15:33:12.000Z"
},
{
"id": "atmpt_2ZbUCwvGmIT4mLIN6d3Yz0Ainbd",
"http_status_code": 500,
"response": "Internal Server Error",
"sent_at": "2026-08-22T15:28:05.000Z"
}
]
}