---
title: "🔒 Выдача персонального API-токена (PAT) для доступа агентов/интеграций от имени пользователя. Сырой токен возвращается только один раз."
method: POST
path: "/user/token/create"
tags: ["Users: API Tokens"]
---

# 🔒 Выдача персонального API-токена (PAT) для доступа агентов/интеграций от имени пользователя. Сырой токен возвращается только один раз.

`POST /user/token/create`

## Request

- Base URL: `http://localhost`
- URL: `http://localhost/user/token/create`
- Auth: API key in header `sid` and API key in header `rts` and API key in header `sig`

Выдача персонального API-токена (PAT) для доступа агентов/интеграций от имени пользователя. Сырой токен возвращается только один раз.

**Access:** `authorized` (10 ) · **Scope:** `write` · **только веб-сессия**

**Allows:** `user:ai-tokens` (все обязательны; ресурс — `<тип>ID` / `ID` из запроса, `user:*` — `userID` или сам пользователь)

### TypeScript (copy-paste)

**`POST /user/token/create`**

<details open><summary><b>Body</b></summary>

```typescript
export interface UserTokenCreateBody {
  title: string
  /** Day key (YYYYMMDD or internal day index) */
  expDayKey?: number | null
  scopes?: Array<any> | null
  cID?: string | null
  type?: ApiToken_type | null
}
```

</details>

<details open><summary><b>Response</b></summary>

```typescript
export type UserTokenCreateResponse = IServerResponse<Resp_user_token_create>

export interface IServerResponse<T = any> {
  code: number
  data: T
  srvTS: number
  rkey: string
}
```

</details>

> Полный файл типов: [`/docs/types`](/docs/types) · raw: [`/docs/api-types.ts`](/docs/api-types.ts)

## Headers

- `devID` string, uuid, required
- `tz` string, required
- `app` string, required
- `appVer` string, required
- `rKey` string

## Request body

- UserTokenCreateBody: JSON body for `user/token/create`
  - `title` string, required
  - `expDayKey` integer, nullable: Day key (YYYYMMDD or internal day index)
  - `scopes` unknown[], nullable
    - unknown
  - `cID` string, uuid, nullable
  - `type` 'agent' | 'integration' | 'test': `agent` = "agent", `integration` = "integration", `test` = "test"

## Response `200`

OK — `IServerResponse<Resp_user_token_create>`

- object
  - `code` integer, required
  - `data` RespUserTokenCreate, required: ResponseData for user/token/create
    - `token` string, required: Сырой токен - показывается ТОЛЬКО в этом ответе, дальше хранится лишь хэш
    - `item` ApiTokenDto, required: Stub schema for unresolved $ref ApiTokenDto (from ResponseData AST)
  - `srvTS` integer, required: Server timestamp (ms)
  - `rkey` string, required: Request key

## Other responses

- `400`: BadRequest / Validation — неверные params/body/headers
- `401`: Unauthorized: Active user session required
- `403`: AccessNotAllowed — privilegeRequired: нет привилегии; data.params = { code: 'privilegeRequired', allow, relation? }
- `406`: TimeResync — расхождение rts с сервером

---

[API](https://skmtc.dev/kosmodrom/apis/kosmodrom-backend-api.md) · [All operations](https://skmtc.dev/kosmodrom/apis/kosmodrom-backend-api/llms.txt) · [OpenAPI document](https://skmtc.dev/kosmodrom/apis/kosmodrom-backend-api/revisions/a143b51ba29a?raw)
