---
title: "Update a project webhook"
method: PUT
path: "/api/v4/projects/{id}/hooks/{hook_id}"
tags: ["hooks"]
---

# Update a project webhook

`PUT /api/v4/projects/{id}/hooks/{hook_id}`

## Request

- Base URL: `https://gitlab.com`
- URL: `https://gitlab.com/api/v4/projects/{id}/hooks/{hook_id}`
- Auth: none declared

Updates a specified webhook for a project.

## Path parameters

- `id` string, required
- `hook_id` integer, required

## Request body

- PutApiV4ProjectsIdHooksHookId: Update a project webhook
  - `url` string: The URL to send the request to
  - `name` string: Name of the hook
  - `description` string: Description of the hook
  - `push_events` boolean: Trigger hook on push events
  - `issues_events` boolean: Trigger hook on issues events
  - `confidential_issues_events` boolean: Trigger hook on confidential issues events
  - `merge_requests_events` boolean: Trigger hook on merge request events
  - `tag_push_events` boolean: Trigger hook on tag push events
  - `note_events` boolean: Trigger hook on note (comment) events
  - `confidential_note_events` boolean: Trigger hook on confidential note (comment) events
  - `job_events` boolean: Trigger hook on job events
  - `pipeline_events` boolean: Trigger hook on pipeline events
  - `wiki_page_events` boolean: Trigger hook on wiki events
  - `deployment_events` boolean: Trigger hook on deployment events
  - `feature_flag_events` boolean: Trigger hook on feature flag events
  - `releases_events` boolean: Trigger hook on release events
  - `milestone_events` boolean: Trigger hook on milestone events
  - `emoji_events` boolean: Trigger hook on emoji events
  - `resource_access_token_events` boolean: Trigger hook on project access token expiry events
  - `resource_deploy_token_events` boolean: Trigger hook on deploy token expiry events
  - `enable_ssl_verification` boolean: Do SSL verification when triggering the hook
  - `token` string: Secret token to validate received payloads; this will not be returned in the response
  - `signing_token` string: HMAC signing token used to compute the webhook-signature header. Must be in whsec_<base64> format encoding a 32-byte key. Not returned in the response
  - `push_events_branch_filter` string: Trigger hook on specified branch only
  - `custom_webhook_template` string: Custom template for the request payload
  - `branch_filter_strategy` 'wildcard' | 'regex' | 'all_branches': Filter push events by branch. Possible values are `wildcard` (default), `regex`, and `all_branches`
  - `vulnerability_events` boolean: Trigger hook on vulnerability events
  - `url_variables` object[]: URL variables for interpolation
    - `key` string, required: Name of the variable
    - `value` string, required: Value of the variable
  - `custom_headers` object[]: Custom headers
    - `key` string, required: Name of the header
    - `value` string, required: Value of the header

## Response `200`

Update a project webhook

- APIEntitiesProjectHook: API_Entities_ProjectHook model
  - `id` integer, required
  - `url` string, required
  - `name` string, required
  - `description` string, required
  - `created_at` string, date-time, required
  - `push_events` boolean, required
  - `tag_push_events` boolean, required
  - `merge_requests_events` boolean, required
  - `repository_update_events` boolean, required
  - `enable_ssl_verification` boolean, required
  - `organization_id` integer
  - `alert_status` string, required
  - `disabled_until` string, date-time, required
  - `url_variables` object[]
  - `push_events_branch_filter` string, required
  - `branch_filter_strategy` string, required
  - `custom_webhook_template` string, required
  - `custom_headers` object[]
  - `token_present` boolean, required: Whether a secret token is configured
  - `signing_token_present` boolean, required: Whether an HMAC signing token is configured
  - `project_id` integer, required
  - `issues_events` boolean, required
  - `confidential_issues_events` boolean, required
  - `note_events` boolean, required
  - `confidential_note_events` boolean, required
  - `pipeline_events` boolean, required
  - `wiki_page_events` boolean, required
  - `deployment_events` boolean, required
  - `feature_flag_events` boolean, required
  - `job_events` boolean, required
  - `releases_events` boolean, required
  - `milestone_events` boolean, required
  - `emoji_events` boolean, required
  - `resource_access_token_events` boolean, required
  - `resource_deploy_token_events` boolean, required
  - `vulnerability_events` boolean, required

## Other responses

- `400`: Validation error
- `404`: Not found
- `422`: Unprocessable entity

---

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