---
title: "Rotate a personal access token"
method: POST
path: "/api/v4/personal_access_tokens/self/rotate"
tags: ["access_tokens"]
---

# Rotate a personal access token

`POST /api/v4/personal_access_tokens/self/rotate`

## Request

- Base URL: `https://gitlab.com`
- URL: `https://gitlab.com/api/v4/personal_access_tokens/self/rotate`
- Auth: none declared

Rotates a personal access token by passing it to the API in a header

## Request body

- PostApiV4PersonalAccessTokensSelfRotate: Rotate a personal access token
  - `expires_at` string, date: The expiration date of the token

## Response `200`

Rotate a personal access token

- APIEntitiesPersonalAccessTokenWithToken: API_Entities_PersonalAccessTokenWithToken model
  - `id` integer, required
  - `name` string, required
  - `revoked` boolean, required
  - `created_at` string, date-time, required
  - `description` string, required
  - `scopes` unknown[], required
    - unknown
  - `user_id` integer, required
  - `last_used_at` string, date-time, required
  - `last_used_ips` string[], required: The five most recent unique IP addresses that have authenticated with this token. When the limit is reached, the oldest IP address is removed. The list updates once per minute per token.
  - `active` boolean, required
  - `granular` boolean, required
  - `granular_scopes` APIEntitiesPersonalAccessTokenGranularScope[]
    - `access` string, required
    - `permissions` unknown[], required
      - unknown
    - `project_id` integer, required
    - `group_id` integer, required
  - `expires_at` string, date-time, required
  - `token` string, required

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `403`: Forbidden
- `405`: Method not allowed

---

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