---
title: "Update webhook endpoint"
method: PATCH
path: "/v1/webhook-endpoints/{webhook_endpoint_id}"
---

# Update webhook endpoint

`PATCH /v1/webhook-endpoints/{webhook_endpoint_id}`

## Path parameters

- `webhook_endpoint_id` string, required — The ID of the webhook endpoint

## Request body

- UpdateWebhookEndpointBody
  - `url` string, uri — The publicly reachable HTTPS URL to deliver events to. Omit to leave unchanged.
  - `scopes` string[] — Which notes to receive events for; replaces the current scopes. `personal` covers notes you own, notes shared directly with you, and notes in private folders shared with you. `public` covers notes visible to everyone in the workspace. Pass both for both sets of notes. Workspace admins can disable scopes for non-admin members in the workspace's API settings. Omit to leave unchanged.
  - `events` string[] — Event names to subscribe to; replaces the current subscriptions. Omit to leave unchanged.
  - `folder_ids` string[] — Restrict delivery to notes in these folders or any of their subfolders; replaces the current folder filter. Accepts folder IDs returned by `GET /v1/folders`. Pass an empty array to remove the filter. Omit to leave unchanged.
  - `enabled` boolean — Pause (`false`) or resume (`true`) event deliveries. A paused endpoint keeps its configuration and signing secret; events that occur while paused are not delivered later. Omit to leave unchanged.

## Response `200`

The updated webhook endpoint

- WebhookEndpoint
  - `id` string, required — The ID of the webhook endpoint
  - `object` 'webhook_endpoint', required
  - `url` string, uri, required — The HTTPS URL deliveries are sent to. When `url_redacted` is true, reduced to the URL's origin.
  - `url_redacted` boolean, required — True when this response reduces `url` to its origin because the caller is not the endpoint's creator (the path can carry credentials). Orphaned endpoints whose creator account was deleted are returned unredacted so they can be cleaned up.
  - `events` string[], required — The event names this endpoint is subscribed to
  - `folder_ids` string[], required — Folder IDs this endpoint's delivery is restricted to, or an empty array when unrestricted. Events fire only for notes in these folders or their subfolders.
  - `scopes` string[], required — Which notes this endpoint receives events for. `personal` covers notes the creating user owns, notes shared directly with them, and notes in private folders shared with them. `public` covers notes visible to everyone in the workspace.
  - `created_by` object, required — The user who created this endpoint.
    - `name` string, nullable, required — The name of the user
    - `email` string, email, required — The email of the user
  - `enabled` boolean, required — Whether deliveries are active
  - `created_at` string, date-time, required — The creation time of the webhook endpoint

## Other responses

- `400` — Bad request
- `401` — Unauthorized - Invalid API key
- `403` — Forbidden - A requested scope is disabled by the workspace's API access controls, or the caller is not the endpoint's creator (non-creators can only change enabled)
- `404` — Not found

## Changes

- **2026-07-31** `77eee6191502` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/granola/apis/granola-api/changes/v1/webhook-endpoints/:webhook_endpoint_id/patch.md)

---

[API](https://skmtc.dev/granola/apis/granola-api.md) · [All operations](https://skmtc.dev/granola/apis/granola-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/granola/granola-api/revisions/77eee6191502/schema)
