Update
Partial update of a Nairi agent's display name, description, and system prompt. Only the fields you include in the request body are actually changed.
Partial update. Send only the fields you want to change.
PATCH /api/public/v1/agents/{agent_id}{agent_id} accepts either the ULID (cci_...) or the human-readable slug (the agent's agent_id field).
Request body
Prop
Type
Example
curl -X PATCH https://api.nairi.ai/api/public/v1/agents/AGENT_ID \
-H "Authorization: Bearer $NAIRI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"description": "Updated description",
"system_prompt": "You are a helpful coding assistant."
}'const res = await fetch(`https://api.nairi.ai/api/public/v1/agents/${agentId}`, {
method: "PATCH",
headers: {
Authorization: `Bearer ${process.env.NAIRI_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
description: "Updated description",
system_prompt: "You are a helpful coding assistant.",
}),
});
const data = await res.json();require "net/http"
require "json"
require "uri"
uri = URI("https://api.nairi.ai/api/public/v1/agents/#{agent_id}")
req = Net::HTTP::Patch.new(uri)
req["Authorization"] = "Bearer #{ENV['NAIRI_API_KEY']}"
req["Content-Type"] = "application/json"
req.body = {
description: "Updated description",
system_prompt: "You are a helpful coding assistant.",
}.to_json
res = Net::HTTP.start(uri.host, uri.port, use_ssl: true) { |h| h.request(req) }
data = JSON.parse(res.body)import os
import requests
res = requests.patch(
f"https://api.nairi.ai/api/public/v1/agents/{agent_id}",
headers={
"Authorization": f"Bearer {os.environ['NAIRI_API_KEY']}",
"Content-Type": "application/json",
},
json={
"description": "Updated description",
"system_prompt": "You are a helpful coding assistant.",
},
)
data = res.json()package main
import (
"bytes"
"encoding/json"
"fmt"
"io"
"net/http"
"os"
)
func main() {
agentID := os.Getenv("AGENT_ID")
body, _ := json.Marshal(map[string]any{
"description": "Updated description",
"system_prompt": "You are a helpful coding assistant.",
})
req, _ := http.NewRequest("PATCH", "https://api.nairi.ai/api/public/v1/agents/"+agentID, bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer "+os.Getenv("NAIRI_API_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
raw, _ := io.ReadAll(res.Body)
var data map[string]any
json.Unmarshal(raw, &data)
fmt.Println(data)
}Response
{
"id": "cci_01KEQ6963XS96YDP3NF9NKB7QJ",
"name": "My Agent",
"agent_id": "my-agent",
"instances_count": 1,
"description": "Updated description",
"is_self_hosted": false,
"system_prompt": "You are a helpful coding assistant.",
"created_at": "2026-04-12T18:45:12.000Z",
"updated_at": "2026-04-12T18:50:00.000Z"
}Get
Fetch a single Nairi agent by its agent_id slug. Returns the agent's metadata, deployment status, system prompt, and the full list of attached artifacts.
Delete
Permanently delete an agent from your Nairi organization. Tears down the container and removes the agent's history, artifacts, and assignments.