Update a webhook subscription

PATCH
/v1/webhooks/subscriptions/{id}

Changes the URL, the event types or the description, or pauses deliveries with enabled: false. Fields you leave out stay as they are.

Requires an API key with the webhooks:manage scope.

Authorization

apiKey
headerAuthorizationBearer <token>

A secret API key from the dashboard (Developers → API keys): vl_live_…, or vl_test_… for test mode. Each operation says which scope the key needs.

Path Parameters

id*string

The subscription id.

Request Body

application/json
  1. body
url?string

A new HTTPS endpoint.

Formaturi
eventTypes?array<>

The new list of event types (replaces the old one).

Itemsitems <= 100
description?|

A new label, or null to clear it.

Lengthlength <= 500
enabled?boolean

false pauses deliveries; true resumes them.

Response Body

The subscription after the change

application/json
  1. response
subscription*
Example Request
curl -X PATCH "https://api.vlayers.ai/v1/webhooks/subscriptions/$SUBSCRIPTION_ID" \  -H "Authorization: Bearer $VOICELAYER_API_KEY" \  -H "Content-Type: application/json" \  -d '{    "enabled": false  }'
Example Response
{  "subscription": {    "id": "0192f5a7-3c4d-7e5f-8a6b-7c8d9e0f1a23",    "projectId": "0192f5a1-5e6f-7a7b-8c8d-9e0f1a2b3c45",    "url": "https://example.com/voicelayer/webhooks",    "eventTypes": [      "message.*",      "conversation.*"    ],    "description": "Production receiver",    "enabled": false,    "createdByKeyId": "key_7f2a91",    "restrictTags": [],    "createdAt": "2026-10-20T15:04:05.000Z",    "updatedAt": "2026-10-20T15:04:05.000Z"  }}