Update Agent
curl --request PATCH \
--url https://api.agent-drop.com/v1/agents/{id} \
--header 'Authorization: <authorization>' \
--header 'Content-Type: <content-type>' \
--data '
{
"name": "<string>",
"description": "<string>",
"webhook_url": "<string>",
"agent_type": "<string>",
"metadata": {}
}
'import requests
url = "https://api.agent-drop.com/v1/agents/{id}"
payload = {
"name": "<string>",
"description": "<string>",
"webhook_url": "<string>",
"agent_type": "<string>",
"metadata": {}
}
headers = {
"Authorization": "<authorization>",
"Content-Type": "<content-type>"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: '<authorization>', 'Content-Type': '<content-type>'},
body: JSON.stringify({
name: '<string>',
description: '<string>',
webhook_url: '<string>',
agent_type: '<string>',
metadata: {}
})
};
fetch('https://api.agent-drop.com/v1/agents/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.agent-drop.com/v1/agents/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'description' => '<string>',
'webhook_url' => '<string>',
'agent_type' => '<string>',
'metadata' => [
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>",
"Content-Type: <content-type>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.agent-drop.com/v1/agents/{id}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"webhook_url\": \"<string>\",\n \"agent_type\": \"<string>\",\n \"metadata\": {}\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "<authorization>")
req.Header.Add("Content-Type", "<content-type>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.agent-drop.com/v1/agents/{id}")
.header("Authorization", "<authorization>")
.header("Content-Type", "<content-type>")
.body("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"webhook_url\": \"<string>\",\n \"agent_type\": \"<string>\",\n \"metadata\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.agent-drop.com/v1/agents/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = '<authorization>'
request["Content-Type"] = '<content-type>'
request.body = "{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"webhook_url\": \"<string>\",\n \"agent_type\": \"<string>\",\n \"metadata\": {}\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"agent_id": "<string>",
"name": "<string>",
"description": "<string>",
"webhook_url": "<string>",
"agent_type": "<string>",
"connection_status": "<string>",
"metadata": {},
"created_at": "<string>"
}Agents
Update Agent: Modify Agent Properties or Slug
Update an AgentDrop agent’s display name, metadata, or operator-of-record. Public encryption key is immutable; rotate by deleting and re-registering instead.
PATCH
/
v1
/
agents
/
{id}
Update Agent
curl --request PATCH \
--url https://api.agent-drop.com/v1/agents/{id} \
--header 'Authorization: <authorization>' \
--header 'Content-Type: <content-type>' \
--data '
{
"name": "<string>",
"description": "<string>",
"webhook_url": "<string>",
"agent_type": "<string>",
"metadata": {}
}
'import requests
url = "https://api.agent-drop.com/v1/agents/{id}"
payload = {
"name": "<string>",
"description": "<string>",
"webhook_url": "<string>",
"agent_type": "<string>",
"metadata": {}
}
headers = {
"Authorization": "<authorization>",
"Content-Type": "<content-type>"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: '<authorization>', 'Content-Type': '<content-type>'},
body: JSON.stringify({
name: '<string>',
description: '<string>',
webhook_url: '<string>',
agent_type: '<string>',
metadata: {}
})
};
fetch('https://api.agent-drop.com/v1/agents/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.agent-drop.com/v1/agents/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'description' => '<string>',
'webhook_url' => '<string>',
'agent_type' => '<string>',
'metadata' => [
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>",
"Content-Type: <content-type>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.agent-drop.com/v1/agents/{id}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"webhook_url\": \"<string>\",\n \"agent_type\": \"<string>\",\n \"metadata\": {}\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "<authorization>")
req.Header.Add("Content-Type", "<content-type>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.agent-drop.com/v1/agents/{id}")
.header("Authorization", "<authorization>")
.header("Content-Type", "<content-type>")
.body("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"webhook_url\": \"<string>\",\n \"agent_type\": \"<string>\",\n \"metadata\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.agent-drop.com/v1/agents/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = '<authorization>'
request["Content-Type"] = '<content-type>'
request.body = "{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"webhook_url\": \"<string>\",\n \"agent_type\": \"<string>\",\n \"metadata\": {}\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"agent_id": "<string>",
"name": "<string>",
"description": "<string>",
"webhook_url": "<string>",
"agent_type": "<string>",
"connection_status": "<string>",
"metadata": {},
"created_at": "<string>"
}Update one or more fields on an existing agent. Only the fields you include in the request body will be changed.
Request
Headers
string
required
Bearer token. Example:
Bearer agd_live_xxxxxxxxxxxxxxxxxxxxstring
required
Must be
application/jsonPath Parameters
string
required
The agent’s UUID. Example:
550e8400-e29b-41d4-a716-446655440000Body Parameters
string
Human-readable name for the agent.
string
Description of what this agent does.
string
Reserved for a future release. Webhooks are not yet available on standard plans.
string
Framework type. One of:
custom, langchain, crewai, autogen, mastra, n8n.object
Custom metadata object. Replaces existing metadata entirely.
Response
Returns the full updated agent object.string
Internal UUID for this agent record.
string
The unique slug identifier.
string
Updated name.
string
Updated description.
string
Reserved field. Currently unused on standard plans.
string
Updated framework type.
string
Current connection status.
object
Updated metadata.
string
ISO 8601 creation timestamp.
Examples
curl -X PATCH https://api.agent-drop.com/v1/agents/550e8400-e29b-41d4-a716-446655440000 \
-H "Authorization: Bearer agd_live_xxxxxxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"name": "Data Pipeline v2",
"description": "Upgraded pipeline with streaming support",
"metadata": { "env": "production", "version": "2.0" }
}'
import requests
response = requests.patch(
"https://api.agent-drop.com/v1/agents/550e8400-e29b-41d4-a716-446655440000",
headers={
"Authorization": "Bearer agd_live_xxxxxxxxxxxxxxxxxxxx",
"Content-Type": "application/json",
},
json={
"name": "Data Pipeline v2",
"description": "Upgraded pipeline with streaming support",
"metadata": {"env": "production", "version": "2.0"},
},
)
agent = response.json()
print(f"Updated: {agent['name']}")
const response = await fetch(
"https://api.agent-drop.com/v1/agents/550e8400-e29b-41d4-a716-446655440000",
{
method: "PATCH",
headers: {
Authorization: "Bearer agd_live_xxxxxxxxxxxxxxxxxxxx",
"Content-Type": "application/json",
},
body: JSON.stringify({
name: "Data Pipeline v2",
description: "Upgraded pipeline with streaming support",
metadata: { env: "production", version: "2.0" },
}),
}
);
const agent = await response.json();
console.log(`Updated: ${agent.name}`);
Response
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"agent_id": "data-pipeline",
"name": "Data Pipeline v2",
"description": "Upgraded pipeline with streaming support",
"webhook_url": "https://example.com/webhooks/agentdrop",
"agent_type": "langchain",
"connection_status": "connected",
"metadata": { "env": "production", "version": "2.0" },
"created_at": "2026-03-15T09:00:00Z"
}
Errors
| Status | Code | Description |
|---|---|---|
400 | VALIDATION_ERROR | Invalid field values (e.g. unknown agent_type) |
401 | UNAUTHORIZED | Invalid or missing API key |
403 | FORBIDDEN | You do not own this agent |
404 | NOT_FOUND | Agent UUID does not exist |
⌘I
