---
title: "Create a personal access token"
method: POST
path: "/v3/personal-access-tokens"
tags: ["PersonalAccessTokens"]
---

# Create a personal access token

`POST /v3/personal-access-tokens`

Creates a new personal access token.

## Request body

- PersonalAccessTokenRequestModel
  - `name` string, required — Name of the access token. Any printable characters, including letters from any script, punctuation and emoji. Cannot contain line breaks, tabs, other control characters, invisible formatting characters (zero-width and bidirectional marks), and cannot start or end with whitespace.
  - `revoked` boolean, nullable — Set true to revoke the token.
  - `expiresAt` string, date-time, nullable — The date (UTC) after which the token will expire.
  - `scopes` string[], required — List of permissions for the token.

## Response `201`

Created

- PersonalAccessTokenSecretDto
  - `accessToken` string, required

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `409` — Conflict
- `429` — Too Many Requests
- `500` — Server Error

## Changes

- **2026-08-18** `66dcb6293180` — 1 breaking
  - added the pattern `^(?!\s)(?!.*\s$)[^\p{Cc}\p{Cf}\p{Zl}\p{Zp}]+$` to the request property `name`

[Change history](https://skmtc.dev/cryptlex/apis/cryptlex-web-api/changes/v3/personal-access-tokens/post.md)

---

[API](https://skmtc.dev/cryptlex/apis/cryptlex-web-api.md) · [All operations](https://skmtc.dev/cryptlex/apis/cryptlex-web-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/cryptlex/cryptlex-web-api/revisions/66dcb6293180/schema)
