> ## Documentation Index
> Fetch the complete documentation index at: https://docs.granola.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Update webhook endpoint



## OpenAPI

````yaml patch /v1/webhook-endpoints/{webhook_endpoint_id}
openapi: 3.1.0
info:
  title: Granola API
  version: 1.0.0
  description: API for accessing meeting data from Granola
servers:
  - url: https://public-api.granola.ai
    description: Production
security: []
paths:
  /v1/webhook-endpoints/{webhook_endpoint_id}:
    patch:
      summary: Update webhook endpoint
      parameters:
        - schema:
            type: string
            pattern: ^whe_[a-zA-Z0-9]{14}$
            description: The ID of the webhook endpoint
            example: whe_2mKr8fQxLp7Ta3
          required: true
          name: webhook_endpoint_id
          in: path
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateWebhookEndpointBody'
      responses:
        '200':
          description: The updated webhook endpoint
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookEndpoint'
        '400':
          description: Bad request
        '401':
          description: Unauthorized - Invalid API key
        '403':
          description: >-
            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':
          description: Not found
      security:
        - ApiKeyAuth: []
components:
  schemas:
    UpdateWebhookEndpointBody:
      type: object
      properties:
        url:
          type: string
          format: uri
          description: >-
            The publicly reachable HTTPS URL to deliver events to. Omit to leave
            unchanged.
          example: https://example.com/granola-webhooks
        scopes:
          type: array
          items:
            type: string
            enum:
              - personal
              - public
          minItems: 1
          description: >-
            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.
          example:
            - personal
            - public
        events:
          type: array
          items:
            type: string
            enum:
              - note.access_granted
              - note.edited
              - note.generated
              - note.regenerated
          minItems: 1
          description: >-
            Event names to subscribe to; replaces the current subscriptions.
            Omit to leave unchanged.
          example:
            - note.access_granted
            - note.edited
            - note.generated
            - note.regenerated
        enabled:
          type: boolean
          description: >-
            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
    WebhookEndpoint:
      type: object
      properties:
        id:
          type: string
          pattern: ^whe_[a-zA-Z0-9]{14}$
          description: The ID of the webhook endpoint
          example: whe_2mKr8fQxLp7Ta3
        object:
          type: string
          enum:
            - webhook_endpoint
        url:
          type: string
          format: uri
          description: >-
            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:
          type: boolean
          description: >-
            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:
          type: array
          items:
            type: string
            enum:
              - note.access_granted
              - note.edited
              - note.generated
              - note.regenerated
          description: The event names this endpoint is subscribed to
          example:
            - note.access_granted
            - note.edited
            - note.generated
            - note.regenerated
        folder_ids:
          type: array
          items:
            type: string
            pattern: ^fol_[a-zA-Z0-9]{14}$
          description: >-
            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.
          example: []
        scopes:
          type: array
          items:
            type: string
            enum:
              - personal
              - public
          description: >-
            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.
          example:
            - personal
            - public
        created_by:
          allOf:
            - $ref: '#/components/schemas/User'
            - description: The user who created this endpoint.
              example:
                name: Oat Benson
                email: oat@granola.ai
        enabled:
          type: boolean
          description: Whether deliveries are active
          example: true
        created_at:
          type: string
          format: date-time
          description: The creation time of the webhook endpoint
          example: '2026-01-27T15:30:00Z'
      required:
        - id
        - object
        - url
        - url_redacted
        - events
        - folder_ids
        - scopes
        - created_by
        - enabled
        - created_at
    User:
      type: object
      properties:
        name:
          type:
            - string
            - 'null'
          description: The name of the user
          example: Oat Benson
        email:
          type: string
          format: email
          description: The email of the user
          example: oat@granola.ai
      required:
        - name
        - email
  securitySchemes:
    ApiKeyAuth:
      type: http
      scheme: bearer
      bearerFormat: apiKey

````