---
title: "Update a deploy key"
method: PUT
path: "/api/v4/projects/{id}/deploy_keys/{key_id}"
tags: ["deploy_resources"]
---

# Update a deploy key

`PUT /api/v4/projects/{id}/deploy_keys/{key_id}`

## Request

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

Updates a deploy key for a project.

## Path parameters

- `id` string, required
- `key_id` integer, required

## Request body

- PutApiV4ProjectsIdDeployKeysKeyId: Update a deploy key
  - `title` string: New deploy key's title
  - `can_push` boolean: Can deploy key push to the project's repository

## Response `200`

Update a deploy key

- APIEntitiesDeployKey: API_Entities_DeployKey model
  - `id` integer, required
  - `title` string, required
  - `created_at` string, date-time, required
  - `expires_at` string, date-time, required
  - `last_used_at` string, date-time, required
  - `key` string, required
  - `usage_type` string, required
  - `fingerprint` string
  - `fingerprint_sha256` string, required
  - `projects_with_write_access` APIEntitiesProjectIdentity
    - `id` integer, required
    - `description` string, required
    - `name` string, required
    - `name_with_namespace` string, required
    - `path` string, required
    - `path_with_namespace` string, required
    - `created_at` string, date-time, required
  - `projects_with_readonly_access` APIEntitiesProjectIdentity
    - `id` integer, required
    - `description` string, required
    - `name` string, required
    - `name_with_namespace` string, required
    - `path` string, required
    - `path_with_namespace` string, required
    - `created_at` string, date-time, required

## Other responses

- `400`: Bad request
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not found

---

[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)
