---
title: "Issue Api Key"
method: POST
path: "/v1/projects/{project_id}/api-keys"
---

# Issue Api Key

`POST /v1/projects/{project_id}/api-keys`

## Request

- Base URL: `https://api.kugelaudio.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.kugelaudio.com/v1/projects/{project_id}/api-keys`
- Auth: none declared
- TypeScript: <https://skmtc.dev/kugelaudio/apis/kugelaudio-tts-api/docs/v1/projects/:project_id/api-keys/post.ts> (a function with typed inputs; its response is checked against the schema)

Issue an API key for a project of the key's organization.

## Path parameters

- `project_id` integer, required

## Request body

- IssueApiKeyRequest
  - `name` string, nullable
  - `permissions` object, nullable: Resource to level, e.g. {'tts': 'write'}; omit for full access to the project.

## Response `201`

Successful Response

- ApiKeyResponse
  - `id` integer, required
  - `project_id` integer, required
  - `name` string, nullable
  - `key_prefix` string, required
  - `key_last4` string, required
  - `permissions` object, nullable
  - `created_at` string, required
  - `secret` string, required: The full API key. Shown once; store it now.

## Other responses

- `422`: Validation Error

## Changes

- **2026-10-10** `3b047252b342`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/kugelaudio/apis/kugelaudio-tts-api/changes/v1/projects/:project_id/api-keys/post.md)

---

[API](https://skmtc.dev/kugelaudio/apis/kugelaudio-tts-api.md) - [All operations](https://skmtc.dev/kugelaudio/apis/kugelaudio-tts-api/llms.txt) - [OpenAPI document](https://skmtc.dev/kugelaudio/apis/kugelaudio-tts-api/revisions/711945519e5c?raw)
