List webhook endpoints
curl --request GET \
--url https://api.bachs.io/v1/webhooks/endpointsconst options = {method: 'GET'};
fetch('https://api.bachs.io/v1/webhooks/endpoints', 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"
response = requests.get(url)
print(response.text)package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.bachs.io/v1/webhooks/endpoints"
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": [
{
"endpoint_id": "whe_a1e823c073ab743ce5969ceef2db4d42",
"name": "Production events",
"url": "https://api.example.com/webhooks/bachs",
"enabled": true,
"disabled_at": null,
"disabled_reason": null,
"event_types": [
"checkout.completed",
"collection.succeeded",
"payout.paid",
"refund.paid"
],
"event_source": "account",
"created_at": "2026-03-09T10:00:00.000Z",
"updated_at": "2026-03-09T10:00:00.000Z"
},
{
"endpoint_id": "whe_e1eae19222ebc5e7e2b4270eaf6f4dec",
"name": "Account monitor",
"url": "https://api.example.com/webhooks/bachs/connected",
"enabled": false,
"disabled_at": "2026-03-12T14:05:00.000Z",
"disabled_reason": "consecutive_failures",
"event_types": [
"account.updated",
"capability.updated",
"transfer.created"
],
"event_source": "connect",
"created_at": "2026-02-14T08:30:00.000Z",
"updated_at": "2026-03-12T14:05:00.000Z"
}
],
"pagination": {
"next_cursor": null,
"prev_cursor": null,
"has_more": false,
"limit": 50,
"offset": 0,
"returned": 2,
"total": 2
}
}{
"detail": "Invalid API key",
"error_code": "UNAUTHORIZED"
}{
"detail": "API key does not have permission for this operation",
"error_code": "FORBIDDEN"
}{
"detail": "Rate limit exceeded. Please retry after a few seconds.",
"error_code": "TOO_MANY_REQUESTS"
}Endpoint API
List webhook endpoints
List all webhook endpoints for your account. Requires the webhooks:read scope.
GET
/
v1
/
webhooks
/
endpoints
List webhook endpoints
curl --request GET \
--url https://api.bachs.io/v1/webhooks/endpointsconst options = {method: 'GET'};
fetch('https://api.bachs.io/v1/webhooks/endpoints', 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"
response = requests.get(url)
print(response.text)package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.bachs.io/v1/webhooks/endpoints"
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": [
{
"endpoint_id": "whe_a1e823c073ab743ce5969ceef2db4d42",
"name": "Production events",
"url": "https://api.example.com/webhooks/bachs",
"enabled": true,
"disabled_at": null,
"disabled_reason": null,
"event_types": [
"checkout.completed",
"collection.succeeded",
"payout.paid",
"refund.paid"
],
"event_source": "account",
"created_at": "2026-03-09T10:00:00.000Z",
"updated_at": "2026-03-09T10:00:00.000Z"
},
{
"endpoint_id": "whe_e1eae19222ebc5e7e2b4270eaf6f4dec",
"name": "Account monitor",
"url": "https://api.example.com/webhooks/bachs/connected",
"enabled": false,
"disabled_at": "2026-03-12T14:05:00.000Z",
"disabled_reason": "consecutive_failures",
"event_types": [
"account.updated",
"capability.updated",
"transfer.created"
],
"event_source": "connect",
"created_at": "2026-02-14T08:30:00.000Z",
"updated_at": "2026-03-12T14:05:00.000Z"
}
],
"pagination": {
"next_cursor": null,
"prev_cursor": null,
"has_more": false,
"limit": 50,
"offset": 0,
"returned": 2,
"total": 2
}
}{
"detail": "Invalid API key",
"error_code": "UNAUTHORIZED"
}{
"detail": "API key does not have permission for this operation",
"error_code": "FORBIDDEN"
}{
"detail": "Rate limit exceeded. Please retry after a few seconds.",
"error_code": "TOO_MANY_REQUESTS"
}Query Parameters
Number of endpoints to return per page.
Required range:
1 <= x <= 100Number of endpoints to skip before the page starts.
Required range:
x >= 0Cursor from a previous page's pagination.next_cursor. Takes precedence over offset when both are sent.
Response
Your webhook endpoints.
The webhook endpoints registered on this account, newest first. One page of them, bounded by limit.
Show child attributes
Show child attributes
Where this page sits in the full set, and the cursor for the next one. See Pagination.
Show child attributes
Show child attributes

