# Retrieve a webhook subscription

Source: https://docs.vlayers.ai/reference/webhooks/get-webhook-subscription

`GET /v1/webhooks/subscriptions/{id}` · scope `webhooks:manage`

Returns one webhook subscription: its URL, event types and whether it is enabled. The signing secret is not included.

Requires an API key with the `webhooks:manage` scope.

| Name | In | Type | Required | Description |
|---|---|---|---|---|
| `id` | path | string | yes | The subscription id. Example: `"0192f5a7-3c4d-7e5f-8a6b-7c8d9e0f1a23"` |

## Request

cURL:

```bash
curl "https://api.vlayers.ai/v1/webhooks/subscriptions/$SUBSCRIPTION_ID" \
  -H "Authorization: Bearer $VOICELAYER_API_KEY"
```

TypeScript:

```ts
import { createVoiceLayerClient, getWebhookSubscription } from '@voicelayer/api';

const client = createVoiceLayerClient({ apiKey: process.env.VOICELAYER_API_KEY!, throwOnError: true });

const { data } = await getWebhookSubscription({
  client,
  path: {
    id: process.env.SUBSCRIPTION_ID!
  }
});
console.log(data.subscription);
```

Python:

```python
import os
import voicelayer

config = voicelayer.Configuration(access_token=os.environ["VOICELAYER_API_KEY"])
with voicelayer.ApiClient(config) as client:
    api = voicelayer.WebhooksApi(client)
    result = api.get_webhook_subscription(
        id=os.environ["SUBSCRIPTION_ID"],
    )
    print(result.subscription)
```

## Response `200`

```json
{
  "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": true,
    "createdByKeyId": "key_7f2a91",
    "restrictTags": [],
    "createdAt": "2026-10-20T15:04:05.000Z",
    "updatedAt": "2026-10-20T15:04:05.000Z"
  }
}
```
