# Read a webhook Read a webhook in the authenticated project environment. ## Requirements A secret API key with `webhooks:read`. Resources are restricted to the key's project and environment. ## Path parameters | Name | Type | Required / default | Description | | --- | --- | --- | --- | | endpointId | string | Required | ID returned when creating the webhook. | ## Query parameters | Name | Type | Required / default | Description | | --- | --- | --- | --- | | projectId | string | Key project | Must match the key's project. | | environmentId | string | Key environment | Must match the key's environment. | ## Example Set `RELAYRTC_API_URL` to your API base including `/v1`, such as `http://localhost:8082/v1`. ```bash curl -X GET "$RELAYRTC_API_URL/webhooks/webhook_example" \ -H "Authorization: Bearer $RELAYRTC_SECRET_KEY" ``` ## Response `200` with a [webhook endpoint](/reference/api/v1/schemas/webhook-endpoint), without its secret. ```json { "id": "webhook_example", "projectId": "project_example", "environmentId": "environment_example", "url": "https://your-app.example/webhooks/relayrtc", "eventTypes": [ "room.ended" ], "status": "enabled", "signingSecretVersion": 1, "signingSecretRotatedAt": "2026-01-01T12:00:00.000Z", "createdAt": "2026-01-01T12:00:00.000Z", "updatedAt": "2026-01-01T12:00:00.000Z" } ``` ## Errors Invalid fields return `400`. Invalid credentials return `401`; a missing scope returns `403`. A missing resource returns `404`. See [error responses](/reference/api/v1/errors).