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

# Update a webhook endpoint

> Change `url`, `events`, `agent_ids`, `description`, or `enabled`.

Only the fields you send are changed. Set `enabled` to `false` to pause
deliveries without losing the endpoint's configuration or history.



## OpenAPI

````yaml api-reference/openapi.json PATCH /v1/webhook-endpoints/{endpoint_id}
openapi: 3.1.0
info:
  description: >-
    Programmatic access to Contour from your own backend: place outbound calls,
    read their results, and manage the webhook endpoints that receive signed
    `call.started`, `call.ended` and `call.analyzed` events.
  title: Contour API
  version: '1.0'
servers:
  - url: https://api.contourvoice.com
security:
  - HTTPBearer: []
tags:
  - description: Place outbound calls and read their state and recordings.
    name: Calls
  - description: >-
      Register URLs to receive signed events, send test events, and inspect or
      retry deliveries.
    name: Webhook Endpoints
paths:
  /v1/webhook-endpoints/{endpoint_id}:
    patch:
      tags:
        - Webhook Endpoints
      summary: Update a webhook endpoint
      description: |-
        Change `url`, `events`, `agent_ids`, `description`, or `enabled`.

        Only the fields you send are changed. Set `enabled` to `false` to pause
        deliveries without losing the endpoint's configuration or history.
      operationId: update_webhook_endpoint
      parameters:
        - in: path
          name: endpoint_id
          required: true
          schema:
            format: uuid
            title: Endpoint Id
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WebhookEndpointUpdate'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookEndpointResponse'
          description: Successful Response
        '401':
          content:
            application/json:
              example:
                detail: Invalid or expired API key
          description: Missing or invalid API key.
        '404':
          content:
            application/json:
              example:
                detail: Webhook endpoint not found.
          description: No webhook endpoint with this id in your organization.
        '422':
          content:
            application/json:
              example:
                detail: url must use https.
          description: >-
            The URL is not https or not publicly reachable, an agent id is not
            yours, or an event name is unknown.
      security:
        - HTTPBearer: []
components:
  schemas:
    WebhookEndpointUpdate:
      description: Only the fields you send are changed.
      properties:
        agent_ids:
          anyOf:
            - items:
                format: uuid
                type: string
              type: array
            - type: 'null'
          description: >-
            Replace the agent filter. Send null to receive events for every call
            in your organization.
          title: Agent Ids
        description:
          anyOf:
            - maxLength: 500
              type: string
            - type: 'null'
          description: A label for your own reference.
          title: Description
        enabled:
          anyOf:
            - type: boolean
            - type: 'null'
          description: >-
            Set false to pause deliveries without deleting the endpoint. Events
            that occur while paused are not queued.
          title: Enabled
        events:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          description: >-
            Replace the subscribed events. Any subset of `call.started`,
            `call.ended`, `call.analyzed`.
          title: Events
        url:
          anyOf:
            - type: string
            - type: 'null'
          description: New HTTPS URL to deliver to.
          title: Url
      title: WebhookEndpointUpdate
      type: object
    WebhookEndpointResponse:
      examples:
        - agent_ids:
            - 3f1c1b2e-6d1a-4c0e-9b2f-1a2b3c4d5e6f
          created_at: '2026-09-10T14:00:00Z'
          description: Production
          enabled: true
          events:
            - call.started
            - call.ended
            - call.analyzed
          id: b7e1c2d3-4f5a-4b6c-8d7e-9f0a1b2c3d4e
          secret_hint: k9Qz
          updated_at: '2026-09-10T14:00:00Z'
          url: https://example.com/webhooks/contour
      properties:
        agent_ids:
          anyOf:
            - items:
                format: uuid
                type: string
              type: array
            - type: 'null'
          description: Agent filter, or null for all calls in the organization.
          title: Agent Ids
        created_at:
          format: date-time
          title: Created At
          type: string
        description:
          anyOf:
            - type: string
            - type: 'null'
          description: Your label.
          title: Description
        enabled:
          description: False while deliveries are paused.
          title: Enabled
          type: boolean
        events:
          description: Subscribed events.
          items:
            type: string
          title: Events
          type: array
        id:
          description: Endpoint id; use it in every other endpoint call.
          format: uuid
          title: Id
          type: string
        secret_hint:
          description: >-
            The last four characters of the signing secret, so you can tell
            which secret an endpoint is using without exposing it.
          title: Secret Hint
          type: string
        updated_at:
          format: date-time
          title: Updated At
          type: string
        url:
          description: Where events are delivered.
          title: Url
          type: string
      required:
        - id
        - url
        - events
        - enabled
        - secret_hint
        - created_at
        - updated_at
      title: WebhookEndpointResponse
      type: object
  securitySchemes:
    HTTPBearer:
      description: >-
        Your organization's API key (`sk_cont_...`), sent as `Authorization:
        Bearer sk_cont_...`. Keep it server-side.
      scheme: bearer
      type: http

````