Skip to main content
If your conversation involves rare or domain-specific words, like a person’s name, company name, or product, add them to the agent’s key terms to improve transcription accuracy. This works like a word boost, biasing the speech recognition model toward these terms. Key terms live on the agent under input.keyterms, set when you create or update it, or inline over the WebSocket via session.update.

Set key terms

Pass keyterms inside the input object:
curl -X POST https://agents.assemblyai.com/v1/agents \
  -H "Authorization: $ASSEMBLYAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Support Assistant",
    "system_prompt": "You are a friendly support agent. Keep replies under two sentences.",
    "voice": { "voice_id": "ivy" },
    "input": { "keyterms": ["AssemblyAI", "Lemur", "Ozempic"] }
  }'
FieldTypeRequiredNotes
input.keytermsstring[] | nullNoUp to 100 transcription-bias strings. null or [] clears the boost.

What to add

  • Brand, product, and feature names that aren’t in everyday English ("AssemblyAI", "Lemur", "Ozempic").
  • Proper nouns specific to this caller: their full name, their account holder’s name, the agent’s name if it’s unusual.
  • Domain jargon that the model might otherwise transcribe as a common-word homophone ("hemochromatosis", "polysomnography").
  • Acronyms you want spelled in full ("PCI DSS", "FedRAMP").

What NOT to add

  • Common English words. Each entry boosts that string, and adding common words at the same weight as your rare terms dilutes the boost.
  • Whole sentences or phrases. The boost is per-term, not per-phrase.
  • Punctuation, formatting, or instructions. The list is treated as transcription hints, not as prompt context.

Update the list

Replace the list by sending a new keyterms array. The new list takes effect on the next user utterance:
curl -X PUT https://agents.assemblyai.com/v1/agents/$AGENT_ID \
  -H "Authorization: $ASSEMBLYAI_API_KEY" -H "Content-Type: application/json" \
  -d '{ "input": { "keyterms": ["AssemblyAI", "Universal", "hemochromatosis"] } }'
When to refresh the list: when the conversation enters a new domain. If an inbound support call switches from “billing” to “technical”, swap the toolset and the key terms list together.
input.keyterms accepts up to 100 strings. Passing null or [] clears the boost. When configured inline via session.update, the list can also be replaced mid-session and takes effect on the next user utterance.