Skip to main content
The Projects API is for platforms that serve many end customers. Give each end customer its own KugelAudio project, with its own pronunciation dictionaries and its own API key, and automate onboarding and offboarding without the dashboard. A synthesis request made with a project’s API key applies that project’s dictionaries without naming the project, so each end customer’s vocabulary is used automatically. See project_id for the details.

Organization admin key

Every endpoint on this page needs an API key with the Organization projects permission. Create it like any other key (see Getting your API key), choose the permission setting Restricted, and set Organization projects to Read (list projects) or Write (everything on this page).
  • Only organization owners and admins can grant this permission.
  • It is never part of the All setting; it must be granted explicitly.
  • The key acts as the person who created it, and only while that person is an owner or admin of the organization. Otherwise every call answers 403 PERMISSION_DENIED; create a new key.
Send the key in the same Authorization: Bearer header as every other endpoint. Keep it on your server: it can create and delete projects.

Onboard an end customer

1. Create a project with your admin key:
2. Issue the customer’s API key. For a key that only synthesizes speech and maintains its own dictionaries, grant tts and dictionaries:
Store secret from the response now; it is never shown again. 3. Create a dictionary and add an entry with the new key (see the Dictionaries API):
4. Generate speech with the new key and no project_id. The customer’s active dictionaries apply:

Offboard an end customer

Delete the project. This revokes its API keys and deletes its dictionaries and request logs in one call.

Response Objects

Project responses contain: API key responses contain:

List Projects

Return every project of the key’s organization, oldest first. Needs Organization projects: Read.

Response

Example

cURL

Create Project

Needs Organization projects: Write. Returns 201 with the project object. An organization can have at most 1000 projects.

Body

string
required
Display name (1-200 characters, not blank).

Example

cURL

Delete Project

Needs Organization projects: Write.
Deleting a project is irreversible. It deletes the project’s API keys, dictionaries and request logs. A key cannot delete the project it belongs to.

Response

Example

cURL

Issue API Key

Issue a new API key for a project of your organization. Needs Organization projects: Write. Returns 201 with the API key object, including secret.

Body

string
Display name (maximum 200 characters).
object
Resource to level. Omit it for full access within the project (text to speech, realtime sessions, speech enhancement, voices and dictionaries). Resources and levels:What each resource covers is in Key permissions. An issued key can never hold the projects permission. For a text-to-speech key per end customer, use {"tts": "write", "dictionaries": "write"}.

Response

Example

cURL

Revoke API Key

Revoke an active API key of a project of your organization. Needs Organization projects: Write. A key cannot revoke itself.
API keys are cached briefly, so a revoked key can keep working for about a minute.

Response

Example

cURL

Error responses

Errors use the standard error body.

Next steps

Dictionaries

How dictionaries shape pronunciation

Dictionaries API

Manage each customer’s dictionaries
Last modified on October 9, 2026