Skip to main content
Manage your webhook endpoints programmatically using the Webhooks API.

Create a Webhook

Register a new webhook endpoint:

Request Body

Event Types

Response

List Webhooks

Get all webhooks for your company:

Response

Update a Webhook

Modify an existing webhook:

Request Body

All fields are optional:

Delete a Webhook

Remove a webhook endpoint:
Returns 204 No Content on success.

Limits

Error: Maximum Webhooks Reached

Solution: Delete unused webhooks before creating new ones.

Testing Webhooks

Local Development

Use a tunneling service for local development: ngrok
localtunnel
Register the tunnel URL as your webhook endpoint during development.

Test with curl

Simulate a webhook delivery to your endpoint:

Webhook Reliability

Delivery Guarantees

  • Webhooks are delivered at least once
  • Failed deliveries are not automatically retried
  • Implement idempotent handlers using the appointment id

Handling Failures

Your endpoint should:
  1. Return 200 quickly - Process asynchronously if needed
  2. Be idempotent - Same webhook delivered twice should have same result
  3. Log all requests - For debugging failed deliveries

Example: Idempotent Handler

Best Practices

Use HTTPS - All production webhook endpoints should use HTTPS
Return 200 immediately - Don’t block the response while processing
Implement idempotency - Handle duplicate deliveries gracefully
Log requests - Keep logs for debugging
Monitor failures - Alert when webhook processing fails
Don’t expose secrets - Never include API keys or secrets in webhook endpoint URLs