curl --request POST \
--url 'https://api.flashcat.cloud/safari/a2a-agent/update?app_key=' \
--header 'Content-Type: application/json' \
--data '
{
"agent_id": "a2a_6mWqZ2pK9nLcR3tY8uVb4D",
"instructions": "Inspect deployment pipelines and propose rollbacks."
}
'import requests
url = "https://api.flashcat.cloud/safari/a2a-agent/update?app_key="
payload = {
"agent_id": "a2a_6mWqZ2pK9nLcR3tY8uVb4D",
"instructions": "Inspect deployment pipelines and propose rollbacks."
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
agent_id: 'a2a_6mWqZ2pK9nLcR3tY8uVb4D',
instructions: 'Inspect deployment pipelines and propose rollbacks.'
})
};
fetch('https://api.flashcat.cloud/safari/a2a-agent/update?app_key=', 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.flashcat.cloud/safari/a2a-agent/update?app_key=",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'agent_id' => 'a2a_6mWqZ2pK9nLcR3tY8uVb4D',
'instructions' => 'Inspect deployment pipelines and propose rollbacks.'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$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.flashcat.cloud/safari/a2a-agent/update?app_key="
payload := strings.NewReader("{\n \"agent_id\": \"a2a_6mWqZ2pK9nLcR3tY8uVb4D\",\n \"instructions\": \"Inspect deployment pipelines and propose rollbacks.\"\n}")
req, _ := http.NewRequest("POST", url, payload)
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))
}HttpResponse<String> response = Unirest.post("https://api.flashcat.cloud/safari/a2a-agent/update?app_key=")
.header("Content-Type", "application/json")
.body("{\n \"agent_id\": \"a2a_6mWqZ2pK9nLcR3tY8uVb4D\",\n \"instructions\": \"Inspect deployment pipelines and propose rollbacks.\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.flashcat.cloud/safari/a2a-agent/update?app_key=")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"agent_id\": \"a2a_6mWqZ2pK9nLcR3tY8uVb4D\",\n \"instructions\": \"Inspect deployment pipelines and propose rollbacks.\"\n}"
response = http.request(request)
puts response.read_body{
"request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
"data": null
}{
"request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
"error": {
"code": "InvalidParameter",
"message": "The specified parameter skill_id is not valid."
}
}{
"request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
"error": {
"code": "Unauthorized",
"message": "You are unauthorized."
}
}{
"request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
"error": {
"code": "AccessDenied",
"message": "Access Denied."
}
}{
"request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
"error": {
"code": "RequestTooFrequently",
"message": "Request too frequently."
}
}{
"request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
"error": {
"code": "InternalError",
"message": "We encountered an internal error, and it has been reported. Please try again later."
}
}Update A2A agent
Apply a partial update to an A2A agent. Omit a field to leave it unchanged.
curl --request POST \
--url 'https://api.flashcat.cloud/safari/a2a-agent/update?app_key=' \
--header 'Content-Type: application/json' \
--data '
{
"agent_id": "a2a_6mWqZ2pK9nLcR3tY8uVb4D",
"instructions": "Inspect deployment pipelines and propose rollbacks."
}
'import requests
url = "https://api.flashcat.cloud/safari/a2a-agent/update?app_key="
payload = {
"agent_id": "a2a_6mWqZ2pK9nLcR3tY8uVb4D",
"instructions": "Inspect deployment pipelines and propose rollbacks."
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
agent_id: 'a2a_6mWqZ2pK9nLcR3tY8uVb4D',
instructions: 'Inspect deployment pipelines and propose rollbacks.'
})
};
fetch('https://api.flashcat.cloud/safari/a2a-agent/update?app_key=', 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.flashcat.cloud/safari/a2a-agent/update?app_key=",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'agent_id' => 'a2a_6mWqZ2pK9nLcR3tY8uVb4D',
'instructions' => 'Inspect deployment pipelines and propose rollbacks.'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$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.flashcat.cloud/safari/a2a-agent/update?app_key="
payload := strings.NewReader("{\n \"agent_id\": \"a2a_6mWqZ2pK9nLcR3tY8uVb4D\",\n \"instructions\": \"Inspect deployment pipelines and propose rollbacks.\"\n}")
req, _ := http.NewRequest("POST", url, payload)
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))
}HttpResponse<String> response = Unirest.post("https://api.flashcat.cloud/safari/a2a-agent/update?app_key=")
.header("Content-Type", "application/json")
.body("{\n \"agent_id\": \"a2a_6mWqZ2pK9nLcR3tY8uVb4D\",\n \"instructions\": \"Inspect deployment pipelines and propose rollbacks.\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.flashcat.cloud/safari/a2a-agent/update?app_key=")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"agent_id\": \"a2a_6mWqZ2pK9nLcR3tY8uVb4D\",\n \"instructions\": \"Inspect deployment pipelines and propose rollbacks.\"\n}"
response = http.request(request)
puts response.read_body{
"request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
"data": null
}{
"request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
"error": {
"code": "InvalidParameter",
"message": "The specified parameter skill_id is not valid."
}
}{
"request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
"error": {
"code": "Unauthorized",
"message": "You are unauthorized."
}
}{
"request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
"error": {
"code": "AccessDenied",
"message": "Access Denied."
}
}{
"request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
"error": {
"code": "RequestTooFrequently",
"message": "Request too frequently."
}
}{
"request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
"error": {
"code": "InternalError",
"message": "We encountered an internal error, and it has been reported. Please try again later."
}
}Restrictions
| Aspect | Value |
|---|---|
| Rate limits | 300 requests/minute; 20 requests/second per account |
| Permissions | Agent Manage (ai-sre) |
Usage
- Requires edit permission (
access.CanEdit) on the agent’s current team before any field may change. - Reassigning
team_idrequires rights on the destination team; if the team changes without also sending a new environment binding, the existing runner binding must remain selectable by the caller or the update is rejected. - Changing
auth_modealways rewritessecret_schematogether with it; omittingoauth_metadataalongside a newauth_modeclears it to empty. - Sending back a masked or empty value for a sensitive
auth_configkey (api_key,token,client_secret) keeps the stored secret instead of overwriting it. - Every call is recorded in the account audit log.
Authorizations
App key issued from the Flashduty console. Required on every public API call. Keep it secret — it grants the same access as the owning account.
Body
Partial update of an A2A agent. A null/omitted field is left unchanged.
Target agent ID.
New display name. Omit to leave unchanged.
128New instructions. Omit to leave unchanged. A deprecated description field is also accepted; if both are sent they must match.
2000New card URL. Omit to leave unchanged.
New auth type. Omit to leave unchanged.
Replace the auth config. Omit to leave unchanged. Sending back the masked value (or an empty string) for a sensitive key keeps the stored secret instead of overwriting it.
Show child attributes
Show child attributes
Toggle streaming support. Omit to leave unchanged.
Reassign team scope. Omit to leave unchanged. Reassigning requires rights on the destination team; if the team changes without also sending a new environment binding, the existing runner binding must remain selectable by the caller or the update is rejected.
New execution environment binding: empty for automatic, byoc for a specific runner. cloud is rejected. Omit to leave unchanged.
New BYOC runner ID. Required alongside environment_kind=byoc. Omit to leave unchanged.
New auth mode: shared, per_user_secret, or per_user_oauth. Changing it always rewrites secret_schema together with it.
New JSON secret schema.
New JSON OAuth metadata. If omitted while auth_mode changes, it is cleared to empty.
Toggle non-loopback HTTP OAuth discovery for this agent. Omit to leave unchanged.
Toggle TLS certificate verification skipping for this agent. Omit to leave unchanged.
Response
Success
Standard response envelope used by every Flashduty public API. On success data contains the endpoint-specific payload and error is absent. On failure error is present and data is absent. request_id is always present and is also mirrored in the Flashcat-Request-Id response header.
Unique ID for this request. Mirrored in the Flashcat-Request-Id header. Include it when reporting issues.
"01HK8XQE3Z7JM2NTFQ5YJ8P9R4"
Error payload inside the response envelope. Present only on non-2xx responses.
Show child attributes
Show child attributes
Always null on success.
Was this page helpful?