---
title: "Create a personal API token"
method: POST
path: "/api/account/tokens"
tags: ["API tokens"]
---

# Create a personal API token

`POST /api/account/tokens`

## Request

- Base URL: `https://slimlytics.com`
- URL: `https://slimlytics.com/api/account/tokens`
- Auth: HTTP bearer

Requires a short-lived session JWT. A personal API token cannot mint another token.

## Request body

- ApiTokenInput
  - `name` string, required
  - `expiresInDays` integer
  - `scopes` string[]

## Response `201`

Token created; secret is returned exactly once

- ApiTokenCreated
  - `id` string, uuid, required
  - `name` string, required
  - `tokenPrefix` string, required: Non-secret display prefix
  - `scopes` string[], required
  - `lastUsedAt` string, date-time, nullable
  - `expiresAt` string, date-time, required
  - `createdAt` string, date-time, required
  - `token` string, required: Shown once; store securely

## Other responses

- `400`: Invalid request
- `401`: Authentication required or invalid/expired credential
- `403`: Credential lacks permission
- `415`: Request Content-Type is not application/json
- `422`: JSON body could not be deserialized
- `500`: Internal service error

---

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