---
updatedAt: 2025-06-09T23:18:43.000Z
agentTools:
  projectIndex: https://developers.acuityscheduling.com/llms.txt
---

# Dynamic Webhooks

Acuity's Webhooks API supports creating new webhook subscriptions dynamically.  Each subscription consists of an `event` name, and a `target` URL, which must be on port 443 or 80.  Events supported include:

* `appointment.scheduled`
* `appointment.rescheduled`
* `appointment.canceled`
* `appointment.changed`
* `order.completed`

Once a subscription is created, we'll notify your server with the appointment ID when the event occurs.  Retrieve the full appointment details [using our get-appointments API](https://developers.acuityscheduling.com/docs/get-appointments-id).  Existing webhooks can be listed and deleted.  Delete a webhook, and we'll leave you alone!

## Endpoints:

* [<span title="post" class="pg-type type-post">post</span>/webhooks](https://developers.acuityscheduling.com/v1.1/page/webhooks-webhooks-webhooks#webhooks) to create a new webhook.
* [<span title="get" class="pg-type type-get">get</span>/webhooks](https://developers.acuityscheduling.com/v1.1/page/webhooks-webhooks-webhooks#webhooksid) to list all active webhooks.
* [<span title="delete" class="pg-type type-delete">get</span>/webhooks/:id](https://developers.acuityscheduling.com/v1.1/page/webhooks-webhooks-webhooks#webhooksid) to delete a webhook subscription, ending notifications.

<br />

## /webhooks

> 🚧 Webhooks Limit
>
> A maximum of 25 webhooks can be created per Acuity account. A 400 error will be returned when that limit is reached.

```json
POST https://acuityscheduling.com/api/v1/webhooks

>>> 
{
  "event": "appointment.scheduled",
  "target": "https://127.0.0.1/test-create"
}

<<<
{
  "id": 1,
  "event": "appointment.scheduled",
  "target": "https://127.0.0.1/test-create",
  "status": "active"
}
```

## /webhooks

```json
GET https://acuityscheduling.com/api/v1/webhooks
```

## /webhooks/:id

```json
DELETE https://acuityscheduling.com/api/v1/webhooks/:id
```