---
title: "Update a webhook endpoint"
method: PATCH
path: "/v1/webhook-endpoints/{webhookEndpointId}"
tags: ["Webhooks"]
---

# Update a webhook endpoint

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

## Request

- Base URL: `https://hyperscale0.ai`
- URL: `https://hyperscale0.ai/v1/webhook-endpoints/{webhookEndpointId}`
- Auth: one of:
  - HTTP bearer
  - HTTP bearer

Updates an endpoint's delivery URL, enabled event set, or description. The signing secret and product scope never change here: rotate the secret with webhook.endpoint.secret.rotate, and create a new endpoint to target a different product. The new URL must satisfy the same host policy as create (HTTPS in live, no private or loopback addresses). Deleted endpoints are terminal and cannot be updated.

Needs a Product key made in the browser. A key made from a CLI login or an agent token cannot call this operation.

## Path parameters

- `webhookEndpointId` string, required: Hyperscale outbound webhook endpoint ID

## Headers

- `X-Hyperscale-Environment` 'sandbox' | 'live'
- `Idempotency-Key` string, required

## Request body

- object
  - `reason` string, required
  - `url` string
  - `enabledEvents` union[]
    - union
      - '*'
      - string: Hyperscale audit event type emitted from an operation policy
  - `description` string, nullable

## Response `200`

Success

- WebhookEndpointUpdateOutput
  - `tenantId` string, required: Organization tenant ID
  - `webhookEndpointId` string, required: Hyperscale outbound webhook endpoint ID
  - `productId` string, required: Hyperscale product ID
  - `url` string, required
  - `status` 'deleted' | 'disabled' | 'enabled', required
  - `audience` 'entity' | 'tenant', required
  - `entityAccountId` string, nullable, required: Hyperscale account ID
  - `enabledEvents` union[], required
    - union
      - '*'
      - string: Hyperscale audit event type emitted from an operation policy
  - `secretLast4` string, required
  - `description` string, nullable, required
  - `lastDeliveryStatus` 'exhausted' | 'failed' | 'pending' | 'succeeded', nullable, required
  - `lastDeliveryAt` string, date-time, nullable, required
  - `createdAt` string, date-time, required
  - `updatedAt` string, date-time, required
  - `reason` string, required

## Other responses

- `default`: ErrorResponse. See x-error-codes and x-errors for codes, HTTP statuses and retry guidance.

---

[API](https://skmtc.dev/hyperscale0/apis/hyperscale-product-api.md) · [All operations](https://skmtc.dev/hyperscale0/apis/hyperscale-product-api/llms.txt) · [OpenAPI document](https://skmtc.dev/hyperscale0/apis/hyperscale-product-api/revisions/e9e8faa044d5?raw)
