---
title: "Update Webhook"
method: PUT
path: "/v1/webhooks/{id}"
tags: ["v1"]
---

# Update Webhook

`PUT /v1/webhooks/{id}`

## Request

- Base URL: `https://api.ellipsis.dev`
- URL: `https://api.ellipsis.dev/v1/webhooks/{id}`
- Auth: HTTP bearer

Replace a webhook's configuration.

Changing the URL cancels outstanding deliveries, clears verification
and approval, and sends another ping. State and signing secret cannot
be set here. Updating description or subscriptions preserves approval.

## Path parameters

- `id` string, required

## Headers

- `user-agent` string, nullable

## Request body

- WebhookConfigRequest
  - `description` string, nullable
  - `events` string[], required: Explicit event subscriptions. Currently only session.create is supported. Pings are sent independently of subscriptions.
  - `url` string, required: The single public HTTPS URL to receive signed POST requests. Changing it requires verification and approval again.

## Response `200`

Successful Response

- WebhookResponse
  - `webhook` Webhook, required
    - `activated_at` string, date-time, nullable, required
    - `created_at` string, date-time, required
    - `description` string, nullable, required
    - `events` string[], required
    - `id` string, required
    - `last_delivery` WebhookDelivery
      - `attempt_count` integer, required
      - `completed_at` string, date-time, nullable, required
      - `created_at` string, date-time, required
      - `event_id` string, required: The stable event id shared by all destinations and retries.
      - `event_type` 'session.create' | 'webhook.ping', required
      - `id` string, required
      - `last_error` string, nullable, required
      - `last_http_status` integer, nullable, required
      - `next_attempt_at` string, date-time, nullable, required
      - `status` 'pending' | 'delivering' | 'retrying' | 'succeeded' | 'failed' | 'cancelled', required
      - `url` string, required: The destination frozen when this delivery was created.
      - `webhook_id` string, required
    - `state` 'unverified' | 'pending' | 'active', required
    - `updated_at` string, date-time, required
    - `url` string, required
    - `verified_at` string, date-time, nullable, required

## Other responses

- `401`: The bearer token is missing, invalid, or revoked.
- `403`: The credential may not perform this action, or the account is blocked.
- `404`: No such resource in your account.
- `422`: Validation Error
- `429`: A quota or rate limit was exceeded.

---

[API](https://skmtc.dev/ellipsis/apis/ellipsis-rest-api.md) - [All operations](https://skmtc.dev/ellipsis/apis/ellipsis-rest-api/llms.txt) - [OpenAPI document](https://skmtc.dev/ellipsis/apis/ellipsis-rest-api/revisions/344b16df9a1a?raw)
