---
title: "Create a project deploy token"
method: POST
path: "/api/v4/projects/{id}/deploy_tokens"
tags: ["deploy_resources"]
---

# Create a project deploy token

`POST /api/v4/projects/{id}/deploy_tokens`

## Request

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

Creates a project deploy token.

## Path parameters

- `id` string, required

## Request body

- PostApiV4ProjectsIdDeployTokens: Create a project deploy token
  - `name` string, required: New deploy token's name
  - `scopes` string[], required: Indicates the deploy token scopes. Must be at least one of `read_repository`, `read_registry`, `write_registry`, `read_package_registry`, `write_package_registry`, `read_virtual_registry`, or `write_virtual_registry`.
  - `expires_at` string, date-time: Expiration date for the deploy token. Does not expire if no value is provided. Expected in ISO 8601 format (`2019-03-15T08:00:00Z`).
  - `username` string: Username for deploy token. Default is `gitlab+deploy-token-{n}`

## Response `201`

Create a project deploy token

- APIEntitiesDeployTokenWithToken: API_Entities_DeployTokenWithToken model
  - `id` integer, required
  - `name` string, required
  - `username` string, required
  - `expires_at` string, date-time, required
  - `scopes` unknown[], required
    - unknown
  - `revoked` boolean, required
  - `expired` boolean, required
  - `token` string, required

## Other responses

- `400`: Bad request
- `401`: Unauthorized
- `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)
