Skip to main content
PUT

Authorizations

Authorization
string
header
required

Your API key (ta_live_…) from Settings → API keys, sent as Authorization: Bearer <key>. Keep it on a server: it can message every customer you have. A key is full, build or read-only; a request its level does not allow is refused with 403.

Headers

Thinnest-Workspace
string

Developers only: the customer workspace this request acts in — its org_… id from POST /customers. Leave it out to act in your own workspace.

Example:

"org_3fKq9TzQ1mN8vB2xR7cLpA"

Body

application/json
kind
enum<string>
required

The job this key does: speech-to-text, LLM or voice.

Available options:
stt,
llm,
tts
provider
enum<string>
required

Who does the job. Speech-to-text: deepgram, assemblyai, soniox, speechmatics, gladia, sarvam, elevenlabs, cartesia, openai, groq, mistral, azure. LLM: openai, anthropic, google, groq, mistral, sarvam, deepseek, xai, together, fireworks, cerebras, openrouter, openai_compatible. Voice: deepgram, elevenlabs, cartesia, openai, sarvam, soniox, mistral, azure, rime, inworld, hume, murf, speechify. A provider that does not do the job is refused with the list that does.

Available options:
deepgram,
assemblyai,
soniox,
speechmatics,
gladia,
sarvam,
elevenlabs,
cartesia,
openai,
groq,
mistral,
azure,
rime,
inworld,
hume,
murf,
speechify,
anthropic,
google,
deepseek,
xai,
together,
fireworks,
cerebras,
openrouter,
openai_compatible
credentials
object
required

The provider's fields. Every provider takes apiKey and an optional model; azure also takes region and optionally endpoint; openai_compatible also takes baseUrl. Any other field is refused.

Response

The key as stored, masked.

One of your own provider keys, masked.

kind
enum<string>
required

Its job: speech-to-text, LLM or voice.

Available options:
stt,
llm,
tts
provider
string
required

The provider's id, e.g. deepgram.

label
string
required

The provider's name as the console shows it.

key
string
required

The key's last four characters after … — never more.

Example:

"…k9z2"

fields
object
required

The key's other settings, as stored: model, region, endpoint or baseUrl. The secret is never among them.

model
string | null
required

The model this key runs, or null while one is still to be chosen (or for a provider with no model to choose, such as Azure Speech).

models
string[]
required

What the provider offered this key when it was added or last refreshed.

verifiedAt
string<date-time> | null
required

When the provider last accepted the key.

updatedAt
string<date-time>
required

When the key or its model last changed.