Skip to main content
PATCH
/
v1
/
webhooks
/
{id}
Update Webhook
curl --request PATCH \
  --url https://api.example.com/v1/webhooks/{id} \
  --header 'Content-Type: application/json' \
  --data '
{
  "url": "<string>",
  "events": [
    {}
  ],
  "active": true,
  "description": "<string>"
}
'
{
  "data": {
    "webhook": {
      "id": "<string>",
      "url": "<string>",
      "events": [
        {}
      ],
      "description": "<string>",
      "active": true,
      "updated_at": "<string>"
    }
  }
}

Request

Path Parameters

id
string
required
The webhook’s unique ID (UUID)

Headers

Authorization: Bearer wbk_your_api_key_here
Content-Type: application/json
Requires an API key with the webhooks:write permission. All body fields are optional — only include the fields you want to change.

Body Parameters

url
string
New HTTPS target URL. Must start with https:// and not resolve to a private IP.
events
array
Replacement array of event type strings. This replaces the full list — it is not merged. To remove an event, send the array without it.
active
boolean
Pause (false) or resume (true) deliveries without changing configuration.
description
string
Update the human-readable description.

Response

data
object
The signing secret does not change on update. To rotate the secret, delete and recreate the webhook.
curl -X PATCH https://data.leadlex.com/functions/v1/api-gateway/v1/webhooks/7f3c4d2a-1b8e-4a9c-9d6f-2e5b8c7a1f3d \
  -H "Authorization: Bearer wbk_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "events": ["contact.created", "contact.updated", "deal.updated"],
    "active": true
  }'

Example Response

{
  "data": {
    "webhook": {
      "id": "7f3c4d2a-1b8e-4a9c-9d6f-2e5b8c7a1f3d",
      "url": "https://example.com/leadlex/webhook",
      "events": ["contact.created", "contact.updated", "deal.updated"],
      "description": "Production CRM sync",
      "active": true,
      "updated_at": "2026-04-17T14:30:00Z"
    }
  }
}

Errors

StatusCodeDescription
400invalid_urlURL is not HTTPS, malformed, or resolves to a private IP
400invalid_eventsOne or more event names are not recognized
401invalid_keyInvalid or expired API key
403insufficient_permissionsMissing webhooks:write permission
404webhook_not_foundNo webhook with this ID in your workspace
429rate_limitedRate limit exceeded