curl --request GET \
--url https://api.bachs.io/v1/webhooks/endpoints/{endpoint_id}/eventsconst options = {method: 'GET'};
fetch('https://api.bachs.io/v1/webhooks/endpoints/{endpoint_id}/events', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.bachs.io/v1/webhooks/endpoints/{endpoint_id}/events"
response = requests.get(url)
print(response.text)package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.bachs.io/v1/webhooks/endpoints/{endpoint_id}/events"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"items": [
{
"event_id": "evt_5d50b401e3e47948235c374ae57b8807",
"event_type": "customer.created",
"entity_id": "cust_9ae63038729d2d6b793423bdbc27c19a",
"attempts": 2,
"success": 1,
"failed": 1,
"last_attempt_status": "succeeded",
"last_attempt_http_status": 200,
"last_attempt_error": null,
"last_attempt_at": "2026-03-09T10:02:41.000Z"
},
{
"event_id": "evt_2a960a1d977989742bbdceee5c7cc398",
"event_type": "checkout.completed",
"entity_id": "9d7c1f0b-4a52-4f0e-9d3b-6b8e2c11a4f7",
"attempts": 1,
"success": 0,
"failed": 1,
"last_attempt_status": "failed",
"last_attempt_http_status": null,
"last_attempt_error": "Connection timed out after 10s",
"last_attempt_at": "2026-03-09T09:41:18.000Z"
}
],
"total": 2,
"limit": 50,
"offset": 0
}{
"detail": "Invalid API key",
"error_code": "UNAUTHORIZED"
}{
"detail": "API key does not have permission for this operation",
"error_code": "FORBIDDEN"
}{
"detail": "Resource not found",
"error_code": "NOT_FOUND"
}{
"detail": "Rate limit exceeded. Please retry after a few seconds.",
"error_code": "TOO_MANY_REQUESTS"
}List events for an endpoint
List the events delivered (or attempted) to a specific endpoint. Requires the webhooks:read scope.
curl --request GET \
--url https://api.bachs.io/v1/webhooks/endpoints/{endpoint_id}/eventsconst options = {method: 'GET'};
fetch('https://api.bachs.io/v1/webhooks/endpoints/{endpoint_id}/events', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.bachs.io/v1/webhooks/endpoints/{endpoint_id}/events"
response = requests.get(url)
print(response.text)package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.bachs.io/v1/webhooks/endpoints/{endpoint_id}/events"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"items": [
{
"event_id": "evt_5d50b401e3e47948235c374ae57b8807",
"event_type": "customer.created",
"entity_id": "cust_9ae63038729d2d6b793423bdbc27c19a",
"attempts": 2,
"success": 1,
"failed": 1,
"last_attempt_status": "succeeded",
"last_attempt_http_status": 200,
"last_attempt_error": null,
"last_attempt_at": "2026-03-09T10:02:41.000Z"
},
{
"event_id": "evt_2a960a1d977989742bbdceee5c7cc398",
"event_type": "checkout.completed",
"entity_id": "9d7c1f0b-4a52-4f0e-9d3b-6b8e2c11a4f7",
"attempts": 1,
"success": 0,
"failed": 1,
"last_attempt_status": "failed",
"last_attempt_http_status": null,
"last_attempt_error": "Connection timed out after 10s",
"last_attempt_at": "2026-03-09T09:41:18.000Z"
}
],
"total": 2,
"limit": 50,
"offset": 0
}{
"detail": "Invalid API key",
"error_code": "UNAUTHORIZED"
}{
"detail": "API key does not have permission for this operation",
"error_code": "FORBIDDEN"
}{
"detail": "Resource not found",
"error_code": "NOT_FOUND"
}{
"detail": "Rate limit exceeded. Please retry after a few seconds.",
"error_code": "TOO_MANY_REQUESTS"
}Path Parameters
The webhook endpoint's ID.
Query Parameters
Maximum results to return (1–100, default 50).
1 <= x <= 100Number of results to skip.
x >= 0Response
Events for the endpoint.
A paginated list of events delivered to an endpoint.
The events this endpoint has been sent, newest attempt first. Each entry summarises delivery to this one endpoint; fetch the full payload and every attempt with Get Endpoint Event.
Show child attributes
Show child attributes
How many distinct events this endpoint has delivery attempts for, ignoring limit and offset. Use it to decide whether another page is worth requesting.
2
The page size actually applied, which is clamped to between 1 and 100 whatever you request.
50
How many events were skipped before this page. Add limit to it to request the next page.
0

