Skip to main content
PUT
/
api
/
v1
/
assistants
/
{assistant_id}
{
  "name": "<string>",
  "id": 123,
  "organization_id": 123,
  "user_id": 123,
  "created_at": "2023-11-07T05:31:56Z",
  "updated_at": "2023-11-07T05:31:56Z",
  "description": "<string>",
  "llm_provider": "openai",
  "llm_provider_config": {
    "api_key": "<string>",
    "base_url": "<string>",
    "model": "gpt-4o-mini",
    "custom_config": {}
  },
  "llm_settings": {
    "temperature": 0.5,
    "max_tokens": 1000,
    "system_prompt": "You are a helpful assistant that can answer questions and help with tasks.",
    "welcome_message": "<string>",
    "top_p": 1,
    "frequency_penalty": 0,
    "presence_penalty": 0,
    "stop_sequences": [
      "<string>"
    ]
  },
  "webhook_url": "<string>",
  "sms_webhook_url": "<string>",
  "messaging_service_sid": "<string>",
  "interruption_settings": {
    "interruption_threshold": 3,
    "min_speaking_time": 0.5,
    "interruption_cooldown": 2,
    "interruption_mode": "<string>",
    "min_stt_confidence": 0.65,
    "confirmation_window_ms": 400,
    "tentative_confirm_words": 2,
    "backchannel_filter": true,
    "tail_protection_ms": 2000
  },
  "tts_settings": {
    "provider": "elevenlabs",
    "voice_id": "rachel",
    "model_id": "turbo",
    "latency": 1,
    "stability": 0.5,
    "similarity_boost": 0.75,
    "style": 0,
    "speed": 1,
    "volume": 1,
    "use_speaker_boost": true,
    "provider_config": {},
    "background_sound": {
      "enabled": false,
      "storage_key": "<string>",
      "sound_url": "<string>",
      "volume": 0.3,
      "loop": true
    }
  },
  "stt_settings": {
    "provider": "deepgram",
    "model": "nova-2",
    "language": "en-US",
    "punctuate": true,
    "interim_results": true,
    "endpointing": {
      "silence_threshold": 500,
      "min_silence_duration": 500
    },
    "utterance_end_ms": 1000,
    "smart_format": true,
    "keywords": [
      {
        "keyword": "<string>",
        "intensifier": 1
      }
    ],
    "keyterms": [
      "<string>"
    ],
    "diarize": false,
    "detect_entities": false,
    "audio_denoising": false,
    "flux_config": {
      "eot_timeout_ms": 5005,
      "eager_eot_threshold": 0.6,
      "eot_threshold": 0.7,
      "language_hints": [
        "<string>"
      ],
      "tag": "<string>",
      "mip_opt_out": false
    },
    "elevenlabs_config": {
      "commit_strategy": "vad",
      "vad_threshold": 0.5,
      "vad_silence_threshold_secs": 0.8,
      "min_speech_duration_ms": 100,
      "min_silence_duration_ms": 250,
      "include_timestamps": false,
      "include_language_detection": false,
      "manual_commit_silence_secs": 1.5,
      "manual_commit_short_silence_secs": 0.8
    },
    "speechmatics_config": {
      "region": "us",
      "max_delay": 1,
      "enable_partials": true,
      "remove_disfluencies": true,
      "enable_diarization": false,
      "speaker_diarization_max_speakers": 2,
      "additional_vocab": [
        "<string>"
      ],
      "utterance_silence_timeout": 1
    },
    "soniox_config": {
      "language_hints": [
        "<string>"
      ],
      "enable_endpoint_detection": true,
      "max_endpoint_delay_ms": 2000,
      "enable_speaker_diarization": false,
      "enable_language_identification": false,
      "context_terms": [
        "<string>"
      ],
      "context_text": "<string>",
      "context_general": [
        {}
      ],
      "context_translation_terms": [
        {}
      ],
      "translation_type": "<string>",
      "translation_target_language": "<string>",
      "translation_language_a": "<string>",
      "translation_language_b": "<string>",
      "num_channels": 1,
      "utterance_silence_timeout": 1
    },
    "speculative_config": {
      "enable_speculative_llm": false,
      "speculative_stream_to_tts": true,
      "speculative_debounce_ms": 300,
      "speculative_min_words": 3,
      "speculative_similarity_threshold": 0.85
    },
    "utterance_timeout_seconds": 2.65,
    "incomplete_utterance_detection": false,
    "provider_config": {},
    "prefer_flux_for_english": false,
    "english_flux_config": {
      "eot_timeout_ms": 5005,
      "eager_eot_threshold": 0.6,
      "eot_threshold": 0.7,
      "language_hints": [
        "<string>"
      ],
      "tag": "<string>",
      "mip_opt_out": false
    }
  },
  "end_call_message": "<string>",
  "transfer_call_message": "<string>",
  "idle_message": "Are you still there? I'm here to help if you need anything.",
  "max_idle_messages": 123,
  "idle_timeout": 123,
  "max_call_length": 2,
  "conversation_continuity_enabled": true,
  "tools_settings": {
    "enabled_tools": [
      "<string>"
    ],
    "end_call": {
      "enabled": false,
      "scenarios": [
        "<string>"
      ],
      "custom_message": "<string>"
    },
    "transfer_call": {
      "enabled": false,
      "scenarios": [
        "<string>"
      ],
      "transfer_numbers": [
        "<string>"
      ],
      "custom_message": "<string>",
      "transfer_type": "cold",
      "agent_confirmation": false,
      "unavailable_message": "<string>"
    },
    "dtmf_solver": {
      "enabled": false,
      "scenarios": [
        "<string>"
      ]
    },
    "send_sms": {
      "enabled": false,
      "scenarios": [
        "<string>"
      ],
      "default_message": "<string>"
    },
    "custom_tools": [
      {}
    ]
  },
  "rag_settings": {
    "enabled": false,
    "rag_inject_before_llm": false,
    "search_limit": 3,
    "similarity_threshold": 0.7,
    "embedding_model": "text-embedding-3-small",
    "chunking_strategy": "recursive",
    "chunk_size": 1000,
    "chunk_overlap": 200,
    "auto_process": true,
    "include_metadata": true,
    "context_window_tokens": 4000
  },
  "llm_fallback_providers": {
    "enabled": false,
    "fallbacks": [
      {
        "provider": "<string>",
        "api_key": "<string>",
        "base_url": "<string>",
        "model": "<string>"
      }
    ]
  },
  "bypass_numbers": [
    "<string>"
  ],
  "custom_settings": {},
  "is_active": true,
  "backchannel_settings": {
    "enabled": false,
    "frequency": 3
  },
  "recording_settings": {
    "enabled": true,
    "format": "mp3",
    "sample_rate": 8000,
    "channels": 1,
    "record_user_audio": true,
    "record_assistant_audio": true,
    "record_mixed_audio": true,
    "record_user_only_track": true,
    "auto_save": true,
    "recordings_dir": "recordings",
    "create_database_records": true,
    "disclosure_enabled": false,
    "disclosure_message": "<string>",
    "disclosure_mode": "every_call"
  },
  "api_keys": {},
  "tts_limit": 500,
  "stt_limit": 500,
  "total_calls": 123,
  "avg_call_duration": 123,
  "success_rate": 123
}

Documentation Index

Fetch the complete documentation index at: https://docs.burki.dev/llms.txt

Use this file to discover all available pages before exploring further.

This endpoint allows you to modify the configuration of an existing assistant by providing its unique ID. You only need to include the fields you wish to update in the request body; any omitted fields will remain unchanged.

Path Parameters

  • assistant_id (string, required): The unique identifier of the assistant you want to update.

Request Body

The request body is a JSON object containing the fields to update. The structure and available parameters are identical to those used when creating an assistant. Refer to Create Assistant for the full schema and Assistant configuration for how dashboard settings map to runtime behavior.

Examples

Update basic settings:
Request
{
  "name": "Senior Customer Support Specialist",
  "llm_settings": {
    "temperature": 0.5,
    "top_p": 0.9
  }
}
Enable warm transfer:
Request
{
  "transfer_call_message": "Let me brief a specialist and connect you.",
  "tools_settings": {
    "transfer_call": {
      "enabled": true,
      "scenarios": [
        "caller asks for a human",
        "billing dispute requires account team"
      ],
      "transfer_numbers": ["+18005551212"],
      "transfer_type": "warm",
      "agent_confirmation": true,
      "unavailable_message": "I could not reach an agent right now. I can take a message or schedule a callback."
    }
  }
}
Enable speculative LLM for lower latency:
Request
{
  "stt_settings": {
    "provider": "deepgram",
    "model": "nova-3",
    "language": "en-US",
    "interim_results": true,
    "speculative_config": {
      "enable_speculative_llm": true,
      "speculative_stream_to_tts": false,
      "speculative_debounce_ms": 300,
      "speculative_min_words": 3,
      "speculative_similarity_threshold": 0.85
    }
  }
}
Switch from Twilio to Telnyx:
Request
{
  "telnyx_config": {
    "api_key": "KEYxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "connection_id": "1234567890"
  },
  "twilio_config": {
    "account_sid": null,
    "auth_token": null
  }
}
Add Telnyx as backup to Twilio:
Request
{
  "telnyx_config": {
    "api_key": "KEYxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 
    "connection_id": "1234567890"
  }
}

Response

A successful update will return the complete, updated assistant object.
Response
{
  "id": "asst_a1b2c3d4e5f67890",
  "user_id": "user_12345",
  "organization_id": "org_67890",
  "name": "Senior Customer Support Specialist",
  "description": "Handles inbound customer queries and provides support.",
  "is_active": true,
  "llm_settings": {
    "temperature": 0.5,
    "max_tokens": 1000,
    "top_p": 0.9,
    "system_prompt": "You are a senior customer support specialist.",
    "welcome_message": "Hello, how can I help today?"
  },
  "llm_provider": "openai",
  "llm_provider_config": {
    "model": "gpt-5",
    "api_key": "********"
  },
  "tts_settings": {
    "provider": "openai",
    "model_id": "tts-1",
    "voice_id": "alloy"
  },
  "stt_settings": {
    "provider": "deepgram",
    "language": "en-US",
    "model": "nova-3",
    "interim_results": true
  },
  "interruption_settings": {
    "interruption_mode": "balanced",
    "interruption_threshold": 3,
    "min_speaking_time": 0.8,
    "interruption_cooldown": 2.0
  },
  "tools_settings": {
    "end_call": {
      "enabled": true,
      "scenarios": ["The user says goodbye.", "The issue is fully resolved."]
    },
    "transfer_call": {
      "enabled": true,
      "transfer_type": "warm",
      "transfer_numbers": ["+18005551212"]
    }
  },
  "created_at": "2023-10-26T10:00:00Z",
  "updated_at": "2023-10-26T10:15:00Z"
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Path Parameters

assistant_id
integer
required

Body

application/json

Schema for updating an assistant.

name
string | null
description
string | null
llm_provider
string | null
llm_provider_config
LLMProviderConfig · object

Configuration for the LLM provider.

llm_settings
LLMSettings · object

Settings for the Large Language Model.

webhook_url
string | null
sms_webhook_url
string | null

URL to receive SMS webhook events

messaging_service_sid
string | null

Twilio Messaging Service SID for SMS handling

interruption_settings
InterruptionSettings · object

Settings for call interruption behavior.

tts_settings
TTSSettings · object

Settings for Text-to-Speech (TTS) service.

stt_settings
STTSettings · object

Settings for Speech-to-Text (STT) service.

end_call_message
string | null
transfer_call_message
string | null
idle_message
string | null
max_idle_messages
integer | null
idle_timeout
integer | null
max_call_length
integer | null
conversation_continuity_enabled
boolean | null
tools_settings
ToolsSettings · object

Settings for integrated tools.

rag_settings
RAGSettings · object

Settings for Retrieval-Augmented Generation (RAG).

llm_fallback_providers
LLMFallbackSettings · object

Settings for LLM fallback providers.

bypass_numbers
string[] | null

Phone numbers in E.164 format (e.g. +12345678900) that bypass AI and transfer directly to the configured transfer number

custom_settings
Custom Settings · object
is_active
boolean | null
backchannel_settings
BackchannelGenerationSettings · object

Settings for AI backchannel generation (active listening cues).

When enabled, the AI produces short verbal acknowledgments like "uh-huh", "mm-hmm", "I see" while the user is speaking to signal active listening.

recording_settings
RecordingSettings · object

Recording settings including enabled flag and disclosure options

api_keys
Api Keys · object

Assistant-specific API keys (overrides organization keys). Keys: elevenlabs_api_key, deepgram_api_key, cartesia_api_key, etc.

tts_limit
integer | null

TTS slot limit for this assistant (only used if assistant has own TTS key)

Required range: 1 <= x <= 1000
stt_limit
integer | null

STT slot limit for this assistant (only used if assistant has own STT key)

Required range: 1 <= x <= 1000
change_description
string | null

Optional description of what changed and why (stored in settings history).

Maximum string length: 500

Response

Successful Response

Schema for assistant response.

name
string
required
id
integer
required
organization_id
integer
required
user_id
integer
required
created_at
string<date-time>
required
updated_at
string<date-time>
required
description
string | null
llm_provider
string | null
default:openai

LLM provider: openai, azure, anthropic, gemini, xai, groq, custom

llm_provider_config
LLMProviderConfig · object

Configuration for the selected LLM provider.

llm_settings
LLMSettings · object

Settings for the Large Language Model.

webhook_url
string | null
sms_webhook_url
string | null

URL to receive SMS webhook events

messaging_service_sid
string | null

Twilio Messaging Service SID for SMS handling

interruption_settings
InterruptionSettings · object

Settings for call interruption behavior.

tts_settings
TTSSettings · object

Settings for Text-to-Speech (TTS) service.

stt_settings
STTSettings · object

Settings for Speech-to-Text (STT) service.

end_call_message
string | null
transfer_call_message
string | null
idle_message
string | null
default:Are you still there? I'm here to help if you need anything.
max_idle_messages
integer | null
idle_timeout
integer | null
max_call_length
integer | null

Maximum call length in seconds. Calls will be automatically ended when this limit is reached. None means unlimited.

Required range: x >= 1
conversation_continuity_enabled
boolean | null
default:true

Enable conversation history continuity across calls from same number within 15 minutes

tools_settings
ToolsSettings · object

Settings for integrated tools.

rag_settings
RAGSettings · object

Settings for Retrieval-Augmented Generation (RAG).

llm_fallback_providers
LLMFallbackSettings · object

Settings for LLM fallback providers.

bypass_numbers
string[] | null

Phone numbers in E.164 format (e.g. +12345678900) that bypass AI and transfer directly to the configured transfer number

custom_settings
Custom Settings · object
is_active
boolean | null
default:true
backchannel_settings
BackchannelGenerationSettings · object

AI backchannel generation settings for active listening cues

recording_settings
RecordingSettings · object

Recording settings including enabled flag and disclosure options

api_keys
Api Keys · object

Assistant-specific API keys (overrides organization keys). Keys: elevenlabs_api_key, deepgram_api_key, cartesia_api_key, etc.

tts_limit
integer | null

TTS slot limit for this assistant (only used if assistant has own TTS key)

Required range: 1 <= x <= 1000
stt_limit
integer | null

STT slot limit for this assistant (only used if assistant has own STT key)

Required range: 1 <= x <= 1000
total_calls
integer | null

Total number of calls for this assistant

avg_call_duration
integer | null

Average call duration in seconds

success_rate
number | null

Success rate percentage