# Create token v2

```http
POST /auth/v2/tenants/{tenantId}/tokens
```

Base URL: `https://api-portal.aur.lu/api`

Operation ID: `CreateTokenV2`

Authentication: ApiKeyAuth (API key in header `X-Api-Key`)

Required permission: `create:portal:tokens`

Creates a new token with the requested portal permissions. At least one permission is required, and the requested permissions must not exceed those of the caller (403 otherwise).

## Parameters

### Path parameters

- `tenantId` (string, required) — Tenant ID

## Request body (required)

Token creation request

Content type: `application/json`

- `description` (string)
- `expiresAt` (string)
- `name` (string)
- `permissions` (array of string, required, items one of: `read:s3:access_keys`, `create:s3:access_keys`, `delete:s3:access_keys`, `read:s3:buckets`, `create:s3:buckets`, `update:s3:buckets`, `delete:s3:buckets`, `clone:s3:bucket_objects`, `read:s3:bucket_shares`, `create:s3:bucket_shares`, `delete:s3:bucket_shares`, `read:s3:storage_analytics`, `read:s3:operations_analytics`, `read:compute:analytics`, `read:compute:catalog`, `read:compute:jobs`, `read:compute:events`, `read:compute:instances`, `create:compute:instances`, `update:compute:instances`, `operate:compute:instances`, `delete:compute:instances`, `read:compute:ssh_keys`, `create:compute:ssh_keys`, `delete:compute:ssh_keys`, `read:compute:vpcs`, `create:compute:vpcs`, `delete:compute:vpcs`, `read:compute:public_ips`, `create:compute:public_ips`, `delete:compute:public_ips`, `read:compute:networks`, `create:compute:networks`, `delete:compute:networks`, `read:compute:volumes`, `create:compute:volumes`, `update:compute:volumes`, `delete:compute:volumes`, `read:compute:snapshots`, `create:compute:snapshots`, `restore:compute:snapshots`, `delete:compute:snapshots`, `execute:inference:requests`, `read:inference:analytics`, `read:portal:tenants`, `read:portal:tags`, `update:portal:tags`, `read:portal:messages`, `update:portal:messages`, `read:portal:tokens`, `create:portal:tokens`, `delete:portal:tokens`)

Example request body:

```json
{
  "description": "string",
  "expiresAt": "string",
  "name": "string",
  "permissions": [
    "read:s3:access_keys"
  ]
}
```

## Responses

### 201 — Token created

Content type: `application/json`

- `createdAt` (string)
- `description` (string)
- `expiresAt` (string)
- `id` (string)
- `lastUsedAt` (string)
- `name` (string)
- `permissions` (array of string, items one of: `read:s3:access_keys`, `create:s3:access_keys`, `delete:s3:access_keys`, `read:s3:buckets`, `create:s3:buckets`, `update:s3:buckets`, `delete:s3:buckets`, `clone:s3:bucket_objects`, `read:s3:bucket_shares`, `create:s3:bucket_shares`, `delete:s3:bucket_shares`, `read:s3:storage_analytics`, `read:s3:operations_analytics`, `read:compute:analytics`, `read:compute:catalog`, `read:compute:jobs`, `read:compute:events`, `read:compute:instances`, `create:compute:instances`, `update:compute:instances`, `operate:compute:instances`, `delete:compute:instances`, `read:compute:ssh_keys`, `create:compute:ssh_keys`, `delete:compute:ssh_keys`, `read:compute:vpcs`, `create:compute:vpcs`, `delete:compute:vpcs`, `read:compute:public_ips`, `create:compute:public_ips`, `delete:compute:public_ips`, `read:compute:networks`, `create:compute:networks`, `delete:compute:networks`, `read:compute:volumes`, `create:compute:volumes`, `update:compute:volumes`, `delete:compute:volumes`, `read:compute:snapshots`, `create:compute:snapshots`, `restore:compute:snapshots`, `delete:compute:snapshots`, `execute:inference:requests`, `read:inference:analytics`, `read:portal:tenants`, `read:portal:tags`, `update:portal:tags`, `read:portal:messages`, `update:portal:messages`, `read:portal:tokens`, `create:portal:tokens`, `delete:portal:tokens`)
- `token` (string)

### 400 — Invalid request body or parameters

Content type: `application/json`

- `message` (string)

### 409 — Token with this name already exists

Content type: `application/json`

- `message` (string)
