Update agent
PATCH
https://app.sulus.ai/api/v1/agents/{agent_id}
Update an agent (PUT also accepted)
Authentication
Send a bearer token created on your dashboard's Developer page:
Authorization: Bearer <YOUR_API_KEY>
Path parameters
agent_id
string
Required
The agent id (UUID).
Validation:
uuid (route-constrained)Stored in
ai_projects.uidRequest body
name
string
Optional
New name. When present it must not be empty.
Validation:
sometimes|required|string|max:255Stored in
ai_projects.namedescription
string
Optional
Nullable
New description; null clears it.
Validation:
sometimes|nullable|string|max:5000Stored in
ai_projects.descriptioninstructions
string
Optional
Nullable
New instructions; null clears them.
Validation:
sometimes|nullable|string|max:10000Stored in
ai_projects.instructionsErrors
| Status | Meaning | Body |
|---|---|---|
404 |
Agent not found, or you do not have access to it | |
422 |
Validation failed | {"message":"…","errors":{"field":["…"]}} |
401 |
Missing or invalid bearer token | |
403 |
Feature ai_chat not enabled for the account |
Notes
- Requires edit access.
- memory is read-only: a memory field in the request body is ignored.
curl --request PATCH \
--url https://app.sulus.ai/api/v1/agents/{agent_id} \
--header 'Authorization: Bearer <YOUR_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"name": "Support Agent",
"description": "Handles pre-sales questions too.",
"instructions": "Be concise, friendly, and offer to connect the caller with a specialist for pricing."
}'
import requests
url = "https://app.sulus.ai/api/v1/agents/{agent_id}"
headers = {"Authorization": "Bearer <YOUR_API_KEY>"}
payload = {
"name": "Support Agent",
"description": "Handles pre-sales questions too.",
"instructions": "Be concise, friendly, and offer to connect the caller with a specialist for pricing."
}
response = requests.patch(url, json=payload, headers=headers)
print(response.json())
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
url := "https://app.sulus.ai/api/v1/agents/{agent_id}"
payload := strings.NewReader(`{
"name": "Support Agent",
"description": "Handles pre-sales questions too.",
"instructions": "Be concise, friendly, and offer to connect the caller with a specialist for pricing."
}`)
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Bearer <YOUR_API_KEY>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}
Response
200
{
"object": "agent",
"data": {
"id": "a1b2c3d4-0000-4000-8000-000000000001",
"object": "agent",
"name": "Support Agent",
"description": "Handles pre-sales questions too.",
"instructions": "Be concise, friendly, and offer to connect the caller with a specialist for pricing.",
"memory": "The customer prefers email follow-ups over phone calls.",
"created_at": "2026-06-01T14:32:07.000000Z",
"last_activity_at": "2026-07-29T09:15:44.000000Z"
}
}
Response — PATCH
/agents/{agent_id}
200
{
"object": "agent",
"data": {
"id": "a1b2c3d4-0000-4000-8000-000000000001",
"object": "agent",
"name": "Support Agent",
"description": "Handles pre-sales questions too.",
"instructions": "Be concise, friendly, and offer to connect the caller with a specialist for pricing.",
"memory": "The customer prefers email follow-ups over phone calls.",
"created_at": "2026-06-01T14:32:07.000000Z",
"last_activity_at": "2026-07-29T09:15:44.000000Z"
}
}