Update agent
Full URL: PUT https://api.kupe.in/api/v1/agents/{agent_id} (optional ?force_update=true)
Send partial AgentUpdateRequest fields. Active agents may require force_update=true on dashboard flows.
To change behavior only, send agent_specific_config with the keys to update — values are merged onto the stored
configuration (other keys are unchanged).
Authorizations
Kupe dashboard API key for your user.
Path Parameters
Query Parameters
Body
Body for PUT /api/v1/agents/{agent_id} (partial update). Send only the sections you want to change; omitted top-level keys are left unchanged. agent_specific_config is deep-merged onto the stored configuration (omitted fields keep their current values). Active agents may require ?force_update=true. See AgentSpecificConfigInput for all behavior keys.
model_name: LLM catalog code or row UUID. Requests may also send the legacy property model_provider_id with the same meaning (OpenAPI lists one field to avoid duplicate inputs).
tts_model_name selects the TTS row (catalog code or UUID). Optional language sets voice_parameters.language (e.g. en, hi-IN). Legacy body key tts_provider_id is accepted as an alias for tts_model_name only (not listed as a second field).
transcriber_model_name selects the STT row (catalog code or UUID, e.g. saarika:2.5). language is a locale string (e.g. hi-IN); a single-element array ["hi-IN"] is coerced to that string. The pipeline STT model id is derived from the catalog row only — it is not sent in this object. Legacy provider_id is an alias for transcriber_model_name.
Per-agent behavior stored in agent_specific_configs.configuration. On create (POST /api/v1/agents) and update (PUT /api/v1/agents/{agent_id}), send under agent_specific_config; omitted keys keep platform or existing values (partial PUT merges). Returned on GET /api/v1/agents/{agent_id} under configurations.agent_specific_config. Dashboard may use camelCase aliases (e.g. autoTerminate → auto_terminate_call).