Skip to main content
PATCH
Update webhook endpoint

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Path Parameters

webhook_endpoint_id
string
required

The ID of the webhook endpoint

Pattern: ^whe_[a-zA-Z0-9]{14}$
Example:

"whe_2mKr8fQxLp7Ta3"

Body

application/json
url
string<uri>

The publicly reachable HTTPS URL to deliver events to. Omit to leave unchanged.

Example:

"https://example.com/granola-webhooks"

scopes
enum<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. A workspace-managed endpoint's scope is fixed: only ["workspace"] is accepted. Omit to leave unchanged.

Minimum array length: 1
Available options:
personal,
public,
workspace
Example:
events
enum<string>[]

Event names to subscribe to; replaces the current subscriptions. Omit to leave unchanged.

Minimum array length: 1
Available options:
note.access_granted,
note.edited,
note.generated
Example:
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.

Maximum array length: 100
Pattern: ^fol_[a-zA-Z0-9]{14}$
Example:
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.

Example:

true

Response

The updated webhook endpoint

id
string
required

The ID of the webhook endpoint

Pattern: ^whe_[a-zA-Z0-9]{14}$
Example:

"whe_2mKr8fQxLp7Ta3"

object
enum<string>
required
Available options:
webhook_endpoint
url
string<uri>
required

The HTTPS URL deliveries are sent to. When url_redacted is true, reduced to the URL's origin.

Example:

"https://example.com/granola-webhooks"

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.

Example:

false

events
enum<string>[]
required

The event names this endpoint is subscribed to

Available options:
note.access_granted,
note.edited,
note.generated
Example:
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.

Pattern: ^fol_[a-zA-Z0-9]{14}$
Example:
scopes
enum<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. workspace is reported for endpoints created with a workspace API key: public workspace notes plus notes in spaces with Granola API access enabled.

Available options:
personal,
public,
workspace
Example:
created_by
object
required

The user who created this endpoint. Null for a workspace-managed endpoint (scopes is ["workspace"]), or when the creator's account was deleted.

Example:
enabled
boolean
required

Whether deliveries are active

Example:

true

created_at
string<date-time>
required

The creation time of the webhook endpoint

Example:

"2026-01-27T15:30:00Z"