Appearance
List webhooks
Every webhook on your team. No signing secrets — see below.
http
GET /v1/webhooksRequires a Full access API key.
Query parameters
| Parameter | Type | Description |
|---|---|---|
limit | number | How many to return. Default 20, min 1, max 100. |
after | string | Return webhooks after this id. Cannot be combined with before. |
before | string | Return webhooks before this id. Cannot be combined with after. |
Newest first. Cursor-paginated.
Example
bash
curl "https://api.sendgrail.com/v1/webhooks" \
-H "Authorization: Bearer $SENDGRAIL_API_KEY"js
const res = await fetch('https://api.sendgrail.com/v1/webhooks', {
headers: { Authorization: `Bearer ${process.env.SENDGRAIL_API_KEY}` },
});
const { data, has_more } = await res.json();Response
json
{
"object": "list",
"has_more": false,
"data": [
{
"object": "webhook",
"id": "4dd369bc-aa82-4ff3-97de-514ae3000ee0",
"name": "Production handler",
"endpoint": "https://example.com/handler",
"events": ["email.sent", "email.bounced"],
"status": "enabled",
"created_at": "2026-08-22T15:28:00+00:00"
}
]
}No secrets in the list
A list is the call you make casually — on a dashboard load, in a health check — and there is no reason for every one of them to hand back every signing secret you own. So signing_secret is omitted here. Fetch a single webhook with Retrieve a webhook when you actually need its secret, or rotate it for a fresh one.