Realtime TTS-2 is live. Built for realtime conversation that feels human. Read the Realtime TTS-2 announcement

VoiceService

Issue a voice copy token

Issue a token that lets the listed workspaces copy a custom voice. Requires voice write permission in the source workspace. The token expires after seven days.

POST/voices/v1/voices/{voiceId}:issueCopyToken

Create a token that lets specific workspaces copy one of your custom voices. Use the source workspace's API key with voice write permission (api.dsgnt.voices::rw).

Issue and share a token

Send the source voice's voiceId, such as source-workspace__narrator, in the URL. Set allowedWorkspaces to at least one destination workspace ID:

bash
curl --request POST 'https://api.inworld.ai/voices/v1/voices/source-workspace__narrator:issueCopyToken' \
  --header "Authorization: Basic $SOURCE_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{"allowedWorkspaces":["destination-workspace"]}'

Use bare workspace IDs in allowedWorkspaces, such as destination-workspace. The server trims whitespace, ignores blank entries, and removes duplicate IDs. The response returns bare workspace IDs.

An illustrative response, with other fields omitted:

json
{
  "name": "workspaces/source-workspace/voiceCopyTokens/00000000-0000-4000-8000-000000000001",
  "allowedWorkspaces": ["destination-workspace"]
}

Share the final segment of name, here 00000000-0000-4000-8000-000000000001, with the destination workspace. Pass that token ID to Redeem a voice copy token, not the full resource name.

The token expires seven days after creation. It can be redeemed more than once before expiry. Treat it as a secret. Each successful redemption creates a new, independent private voice; later edits to the original do not update the copies.

Token types

These tokens grant access to workspaces. The email-based tokens created by Voice export in Portal use a separate flow. Workspace-scoped tokens cannot be imported through Portal's email-based flow, and Portal's email-based tokens cannot be redeemed by this API.

Authorizations

Authorizationstringrequired

Your API key. Read permissions are required for GET endpoints. Write permissions are required for POST, PATCH, and DELETE endpoints.

For Basic authentication, please populate Basic $INWORLD_API_KEY. You can create a key in one command with the Inworld CLI: inworld workspace add-key.

Path Parameters

voiceIdstringrequired

Custom voice ID in the form {workspace}{voice}, such as source-workspacenarrator.

Body

application/json

allowedWorkspacesstring[]required

Destination workspace IDs allowed to redeem the token, such as destination-workspace. Blank entries are ignored; at least one non-blank, valid workspace ID is required. Duplicate IDs are removed. The response returns bare workspace IDs.

Response

200 - application/json

namestring

Token resource name: workspaces/{workspace}/voiceCopyTokens/{token}. Pass only the final segment to redeemCopyToken.

voiceNamestring

Source voice resource name: workspaces/{workspace}/voices/{voice}.

allowedWorkspacesstring[]

Bare IDs of the workspaces allowed to redeem this token. Duplicate IDs are removed.

allowedEmailsstring[]

Empty or omitted for tokens issued by this endpoint. Email-based Portal tokens cannot be redeemed with redeemCopyToken.