The Webhooks service allows you to create, manage, and monitor outbound webhooks that send HTTP notifications to external services when data changes.
Overview
import { SnackBaseClient } from "@snackbase/sdk";
const client = new SnackBaseClient({
baseUrl: "https://api.example.com",
});
// Access the webhooks service
const webhooks = client.webhooks;
List Webhooks
const result = await client.webhooks.list();
// result.items - array of webhooks
// result.total - total count
With pagination:
const result = await client.webhooks.list({
limit: 20,
offset: 0,
});
Get a Webhook
const webhook = await client.webhooks.get("webhook-id");
Create a Webhook
const webhook = await client.webhooks.create({
url: "https://your-server.com/webhook",
collection: "orders",
events: ["create", "update"],
headers: {
"X-Custom-Header": "value",
},
});
// IMPORTANT: Save the secret - it's only returned on creation
console.log(webhook.secret);
The secret field is only included in the response when creating a webhook. Store it securely for signature verification.
Update a Webhook
const updated = await client.webhooks.update("webhook-id", {
url: "https://new-server.com/webhook",
events: ["create", "update", "delete"],
enabled: true,
});
Delete a Webhook
await client.webhooks.delete("webhook-id");
Test a Webhook
Send a test payload to verify your webhook endpoint:
const result = await client.webhooks.test("webhook-id");
console.log(result.success); // boolean
console.log(result.status_code); // HTTP status code
console.log(result.response_body); // response body (truncated)
console.log(result.error); // error message if failed
List Deliveries
View the delivery history for a webhook:
const deliveries = await client.webhooks.listDeliveries("webhook-id", {
limit: 50,
offset: 0,
});
for (const delivery of deliveries.items) {
console.log(delivery.event); // "records.create"
console.log(delivery.status); // "delivered", "failed", "retrying", "pending"
console.log(delivery.response_status); // 200
console.log(delivery.attempt_number); // 1
}