Docs
GuidesAPI referenceWebhooksWeb widget

Assistants

Update an assistant

PATCH/assistants/{assistant_id}

Send name, config or both. config replaces the whole configuration, and any setting you leave out goes back to its default. To change one setting, get the assistant, edit its config and send all of it back.

#Parameters

assistant_idinteger · pathrequired

#Request body

namestring
≤ 120 chars
configobject
Show 17 fields
first_message_mode"assistant_first" | "wait_for_user" | "model_generated"default "assistant_first"
first_messagestringdefault ""
≤ 1000 chars
system_promptstringdefault ""
≤ 30000 chars
business_contextbooleandefault true
languagestringdefault "en"
≤ 16 chars
mode"standard" | "live"default "standard"
live_voicestringdefault "marin"
modelobject
Show 8 fields
provider"openai" | "custom"default "openai"
modelstringdefault "gpt-5.6-luna"
≤ 80 chars
temperaturenumberdefault 0.4
min 0, max 1.5
max_tokensintegerdefault 300
min 40, max 2000
custom_urlstringdefault ""
≤ 300 chars
custom_key_setbooleandefault false
prioritybooleandefault true
racebooleandefault true
transcriberobject
Show 5 fields
provider"deepgram" | "openai"default "deepgram"
modelstringdefault "flux-general-en"
≤ 60 chars
keytermsarray of string
eot_thresholdnumberdefault 0.7
min 0.5, max 0.9
eagerbooleandefault true
voiceobject
Show 2 fields
voice_idstringdefault ""
≤ 80 chars
speednumberdefault 1
min 0.7, max 1.2
builtinobject
Show 7 fields
bookingbooleandefault true
messagesbooleandefault true
transferbooleandefault true
smsbooleandefault true
payment_linksbooleandefault true
knowledgebooleandefault true
end_callbooleandefault true
tool_idsarray of integer
knowledge_idsarray of integer
analysisobject
Show 4 fields
summary_promptstringdefault ""
≤ 2000 chars
success_rubricstringdefault ""
≤ 2000 chars
success_scale"pass_fail" | "score_10" | "descriptive"default "score_10"
structuredarray of StructuredField
advancedobject
Show 14 fields
max_duration_sintegerdefault 600
min 30, max 3600
silence_timeout_sintegerdefault 12
min 5, max 120
idle_messagesarray of string
idle_maxintegerdefault 2
min 1, max 5
end_call_messagestringdefault ""
≤ 300 chars
end_call_phrasesarray of string
recordingbooleandefault true
recording_noticebooleandefault true
interrupt_min_wordsintegerdefault 1
min 1, max 5
background"off" | "office"default "off"
voicemail_detectionbooleandefault true
voicemail_messagestringdefault ""
≤ 600 chars
server_urlstringdefault ""
≤ 500 chars
hipaabooleandefault false
variablesobject
workflow_idinteger

#Example request

curl -X PATCH https://app.bluepenguin.io/api/v1/assistants/12 \
  -H "Authorization: Bearer $BLUEPENGUIN_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Front desk (evenings)"
}'

#Example response

200 OK
{
  "id": 12,
  "name": "Front desk",
  "is_default": true,
  "created_at": "2026-09-30T10:12:00Z",
  "updated_at": "2026-10-02T08:40:11Z",
  "config": {
    "first_message_mode": "assistant_first",
    "first_message": "Thanks for calling Brightside Dental, this is Ava.",
    "system_prompt": "You are Ava…",
    "language": "en",
    "mode": "standard",
    "voice": {
      "voice_id": "cartesia:…",
      "speed": 1
    },
    "builtin": {
      "booking": true,
      "messages": true,
      "transfer": true,
      "sms": true,
      "payment_links": true,
      "knowledge": true,
      "end_call": true
    },
    "…": "…"
  }
}

#Errors

StatusWhen
401Missing or invalid API key.
404not_found: it doesn't exist or belongs to another business.
422A parameter or field is invalid; the reply lists which.
429More than 240 requests a minute on this key.