---
title: "Create a deploy key"
method: POST
path: "/api/v4/deploy_keys"
tags: ["deploy_resources"]
---

# Create a deploy key

`POST /api/v4/deploy_keys`

## Request

- Base URL: `https://gitlab.com`
- URL: `https://gitlab.com/api/v4/deploy_keys`
- Auth: none declared

Creates a deploy key for the GitLab instance. Requires administrator access.

## Request body

- PostApiV4DeployKeys: Create a deploy key
  - `key` string, required: New deploy key
  - `title` string, required: New deploy key's title
  - `expires_at` string, date-time: The expiration date of the SSH key in ISO 8601 format (YYYY-MM-DDTHH:MM:SSZ)

## Response `201`

Create 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

---

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