Elizon Docs
API Reference

Update Agent

PUT /api/v1/agents/:agentId — update an existing agent.

Updates an agent. At least one field is required. config is deep-merged, not replaced — send only the fields you want to change and every other field keeps its current value.

PUT /api/v1/agents/{agentId}

Path parameters

ParameterTypeDescription
agentIdstring (UUID)The agent to update.

Request body

FieldTypeRequiredDescription
namestring (1–128 chars)No*New display name.
descriptionstring | nullNo*New description.
configobjectNo*Partial config, deep-merged onto the agent's existing config.

* At least one of name, description, config must be present.

Deep-merge, not replace

config is merged field-by-field against the agent's current stored config — you never need to (and shouldn't) send the full config object back. Sending { "config": { "model": { "primary": { "temperature": 0.9 } } } } changes only model.primary.temperature; every other field, including sibling fields under model.primary, is left untouched.

Every successful update also records an auto-save version snapshot, same as editing the agent in the Studio UI.

Response

200 OK — the updated agent, same shape as GET /agents/:agentId.

Errors

StatuserrorWhen
400validation error ({ "errors": [{ "path", "message" }] })name/description fails validation, the merged config fails schema validation, or no field was provided
403forbiddenThe agent belongs to a different project than your project-scoped key
404agent_not_foundNo agent with that ID exists in your organization
422llm_configuration_not_foundThe merged config references an llm_config_id that doesn't exist or isn't connected

Example

curl -X PUT https://api.elizon.com/api/v1/agents/3f9c1a2e-... \
  -H "X-API-Key: elz_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{ "config": { "model": { "primary": { "temperature": 0.9 } } } }'