List webhooks
Every endpoint registered on the account.
Not paged. Secrets are never listed.
Response
200 The endpoints.
| Field | Type | Description |
|---|---|---|
| data | WebhookEndpoint[] (WebhookEndpoint reference) | The endpoints, newest first. |
| meta | object | Totals. |
| meta.totalCount | integer | Endpoints registered. |
Examples
Real responses from the production API, recorded on 2026-09-24 by the script that also checks every field above against them. Arrays are shown in full.
All endpoints
curl "https://api.tcggraph.com/v1/webhooks" \
-H "Authorization: Bearer $TCGGRAPH_API_KEY"const response = await fetch("https://api.tcggraph.com/v1/webhooks", {
headers: {
Authorization: `Bearer ${process.env.TCGGRAPH_API_KEY}`,
},
});
const body = await response.json();
if (!response.ok) throw new Error(`${body.error.code}: ${body.error.message}`);import os
import requests
response = requests.get(
"https://api.tcggraph.com/v1/webhooks",
headers={"Authorization": f"Bearer {os.environ['TCGGRAPH_API_KEY']}"},
)
body = response.json()
response.raise_for_status()200 · X-Credits-Cost: 0
{
"data": [
{
"id": "c3290649-ffc6-467c-9470-c5307925ca78",
"url": "https://example.com/tcggraph-docs",
"events": [
"set.published",
"card.legality.changed"
],
"games": [
"pokemon"
],
"description": "docs example",
"status": "active",
"disabledAt": null,
"disabledReason": null,
"failures": 0,
"lastDeliveryAt": null,
"lastStatusCode": null,
"createdAt": "2026-09-24T07:47:43.874Z"
}
],
"meta": {
"totalCount": 1
}
}Errors
Every error has the same body; switch on error.code. Any endpoint can also answer 401, 402, 403 or 429 for reasons of key, plan or rate; those are on Errors.