---
title: "PUT /webhooks/{id}"
method: PUT
path: "/webhooks/{id}"
---

# PUT /webhooks/{id}

`PUT /webhooks/{id}`

## Request

- Base URL: `https://api.useanima.sh/v1`
- URL: `https://api.useanima.sh/v1/webhooks/{id}`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-API-Key`

## Path parameters

- `id` string, required: Unique identifier of the webhook to update

## Request body

- object: Request body for updating an existing webhook subscription
  - `url` string, uri: New HTTPS endpoint URL for webhook delivery
  - `events` string[]: Updated list of subscribed event types
  - `description` string: Updated human-readable label for this webhook
  - `active` boolean: Set to false to pause webhook delivery without deleting
  - `authConfig` union: Replace the endpoint auth; pass { type: 'none' } to remove it
    - object: No customer auth header (the HMAC signature is still sent)
      - `type` 'none', required
    - object
      - `type` 'bearer', required
      - `token` string, required: Sent as `Authorization: Bearer <token>`
    - object: Sent as `Authorization: Basic <base64(username:password)>`
      - `type` 'basic', required
      - `username` string, required
      - `password` string, required
    - object: Sent as a custom header `<headerName>: <value>`
      - `type` 'custom_header', required
      - `headerName` string, required
      - `value` string, required
  - `rateLimitPerMinute` integer, nullable: Max deliveries/minute; null clears it (unlimited)
  - `maxAttempts` integer, nullable: Max delivery attempts; null resets to platform default (3)

## Response `200`

OK

- object: Webhook subscription resource
  - `id` string, required: Unique identifier for the webhook
  - `orgId` string, required: Organization that owns this webhook
  - `url` string, uri, required: HTTPS endpoint URL receiving webhook payloads
  - `events` string[], required: Event types this webhook is subscribed to
  - `active` boolean, required: Whether the webhook is currently active
  - `description` string, nullable, required: Human-readable label for this webhook
  - `consecutiveFailures` integer, required: Number of consecutive delivery failures across all events
  - `disabledReason` string, nullable, required: Reason the webhook was auto-disabled, null if manually disabled or active
  - `disabledAt` string, date-time, nullable, required: ISO 8601 timestamp when the webhook was auto-disabled
  - `createdAt` string, date-time, required: ISO 8601 timestamp when the webhook was created
  - `updatedAt` string, date-time, required: ISO 8601 timestamp when the webhook was last modified
  - `authType` 'NONE' | 'BEARER' | 'BASIC' | 'CUSTOM_HEADER', required: Auth scheme the platform presents to your endpoint (never includes the secret)
  - `authHeaderName` string, nullable, required: Header name for CUSTOM_HEADER auth; null for other schemes
  - `rateLimitPerMinute` integer, nullable, required: Per-endpoint delivery rate cap in requests/minute; null = unlimited
  - `maxAttempts` integer, nullable, required: Per-webhook max delivery attempts; null = platform default (3)

---

[API](https://skmtc.dev/useanima/apis/anima-api.md) · [All operations](https://skmtc.dev/useanima/apis/anima-api/llms.txt) · [OpenAPI document](https://skmtc.dev/useanima/apis/anima-api/revisions/aaa148188980?raw)
