curl --request PATCH \
--url https://api.agentsfleet.net/v1/workspaces/{workspace_id}/fleets/{fleet_id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"config_json": "<string>",
"trigger_markdown": "<string>",
"source_markdown": "<string>"
}
'import requests
url = "https://api.agentsfleet.net/v1/workspaces/{workspace_id}/fleets/{fleet_id}"
payload = {
"config_json": "<string>",
"trigger_markdown": "<string>",
"source_markdown": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
config_json: '<string>',
trigger_markdown: '<string>',
source_markdown: '<string>'
})
};
fetch('https://api.agentsfleet.net/v1/workspaces/{workspace_id}/fleets/{fleet_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.agentsfleet.net/v1/workspaces/{workspace_id}/fleets/{fleet_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([
'config_json' => '<string>',
'trigger_markdown' => '<string>',
'source_markdown' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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.agentsfleet.net/v1/workspaces/{workspace_id}/fleets/{fleet_id}"
payload := strings.NewReader("{\n \"config_json\": \"<string>\",\n \"trigger_markdown\": \"<string>\",\n \"source_markdown\": \"<string>\"\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.patch("https://api.agentsfleet.net/v1/workspaces/{workspace_id}/fleets/{fleet_id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"config_json\": \"<string>\",\n \"trigger_markdown\": \"<string>\",\n \"source_markdown\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.agentsfleet.net/v1/workspaces/{workspace_id}/fleets/{fleet_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"config_json\": \"<string>\",\n \"trigger_markdown\": \"<string>\",\n \"source_markdown\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"fleet_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"config_revision": 123,
"etag": "<string>"
}{
"docs_uri": "https://docs.agentsfleet.net/api-reference/error-codes#UZ-AGT-009",
"title": "Fleet not found",
"detail": "No fleet with id 'abc123' in this workspace.",
"error_code": "UZ-AGT-009",
"request_id": "<string>",
"current_state": "paused",
"user_message": "We couldn't find that Fleet. It may have been deleted, or the ID doesn't match one in this workspace.",
"etag": "<string>"
}{
"docs_uri": "https://docs.agentsfleet.net/api-reference/error-codes#UZ-AGT-009",
"title": "Fleet not found",
"detail": "No fleet with id 'abc123' in this workspace.",
"error_code": "UZ-AGT-009",
"request_id": "<string>",
"current_state": "paused",
"user_message": "We couldn't find that Fleet. It may have been deleted, or the ID doesn't match one in this workspace.",
"etag": "<string>"
}{
"docs_uri": "https://docs.agentsfleet.net/api-reference/error-codes#UZ-AGT-009",
"title": "Fleet not found",
"detail": "No fleet with id 'abc123' in this workspace.",
"error_code": "UZ-AGT-009",
"request_id": "<string>",
"current_state": "paused",
"user_message": "We couldn't find that Fleet. It may have been deleted, or the ID doesn't match one in this workspace.",
"etag": "<string>"
}{
"docs_uri": "https://docs.agentsfleet.net/api-reference/error-codes#UZ-AGT-009",
"title": "Fleet not found",
"detail": "No fleet with id 'abc123' in this workspace.",
"error_code": "UZ-AGT-009",
"request_id": "<string>",
"current_state": "paused",
"user_message": "We couldn't find that Fleet. It may have been deleted, or the ID doesn't match one in this workspace.",
"etag": "<string>"
}{
"docs_uri": "https://docs.agentsfleet.net/api-reference/error-codes#UZ-AGT-009",
"title": "Fleet not found",
"detail": "No fleet with id 'abc123' in this workspace.",
"error_code": "UZ-AGT-009",
"request_id": "<string>",
"current_state": "paused",
"user_message": "We couldn't find that Fleet. It may have been deleted, or the ID doesn't match one in this workspace.",
"etag": "<string>"
}{
"docs_uri": "https://docs.agentsfleet.net/api-reference/error-codes#UZ-AGT-009",
"title": "Fleet not found",
"detail": "No fleet with id 'abc123' in this workspace.",
"error_code": "UZ-AGT-009",
"request_id": "<string>",
"current_state": "paused",
"user_message": "We couldn't find that Fleet. It may have been deleted, or the ID doesn't match one in this workspace.",
"etag": "<string>"
}{
"docs_uri": "https://docs.agentsfleet.net/api-reference/error-codes#UZ-AGT-009",
"title": "Fleet not found",
"detail": "No fleet with id 'abc123' in this workspace.",
"error_code": "UZ-AGT-009",
"request_id": "<string>",
"current_state": "paused",
"user_message": "We couldn't find that Fleet. It may have been deleted, or the ID doesn't match one in this workspace.",
"etag": "<string>"
}{
"docs_uri": "https://docs.agentsfleet.net/api-reference/error-codes#UZ-AGT-009",
"title": "Fleet not found",
"detail": "No fleet with id 'abc123' in this workspace.",
"error_code": "UZ-AGT-009",
"request_id": "<string>",
"current_state": "paused",
"user_message": "We couldn't find that Fleet. It may have been deleted, or the ID doesn't match one in this workspace.",
"etag": "<string>"
}Update a fleet
Updates fleet files or status. Every request field is optional.
config_json and trigger_markdown cannot be used together. A killed fleet cannot be changed.
Source editors can send If-Match with the ETag from GET. A stale tag returns 412 with the current tag in the problem body; omitting the header preserves last-write-wins behavior.
Status changes require an operator role. Config changes require workspace membership.
curl --request PATCH \
--url https://api.agentsfleet.net/v1/workspaces/{workspace_id}/fleets/{fleet_id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"config_json": "<string>",
"trigger_markdown": "<string>",
"source_markdown": "<string>"
}
'import requests
url = "https://api.agentsfleet.net/v1/workspaces/{workspace_id}/fleets/{fleet_id}"
payload = {
"config_json": "<string>",
"trigger_markdown": "<string>",
"source_markdown": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
config_json: '<string>',
trigger_markdown: '<string>',
source_markdown: '<string>'
})
};
fetch('https://api.agentsfleet.net/v1/workspaces/{workspace_id}/fleets/{fleet_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.agentsfleet.net/v1/workspaces/{workspace_id}/fleets/{fleet_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([
'config_json' => '<string>',
'trigger_markdown' => '<string>',
'source_markdown' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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.agentsfleet.net/v1/workspaces/{workspace_id}/fleets/{fleet_id}"
payload := strings.NewReader("{\n \"config_json\": \"<string>\",\n \"trigger_markdown\": \"<string>\",\n \"source_markdown\": \"<string>\"\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.patch("https://api.agentsfleet.net/v1/workspaces/{workspace_id}/fleets/{fleet_id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"config_json\": \"<string>\",\n \"trigger_markdown\": \"<string>\",\n \"source_markdown\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.agentsfleet.net/v1/workspaces/{workspace_id}/fleets/{fleet_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"config_json\": \"<string>\",\n \"trigger_markdown\": \"<string>\",\n \"source_markdown\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"fleet_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"config_revision": 123,
"etag": "<string>"
}{
"docs_uri": "https://docs.agentsfleet.net/api-reference/error-codes#UZ-AGT-009",
"title": "Fleet not found",
"detail": "No fleet with id 'abc123' in this workspace.",
"error_code": "UZ-AGT-009",
"request_id": "<string>",
"current_state": "paused",
"user_message": "We couldn't find that Fleet. It may have been deleted, or the ID doesn't match one in this workspace.",
"etag": "<string>"
}{
"docs_uri": "https://docs.agentsfleet.net/api-reference/error-codes#UZ-AGT-009",
"title": "Fleet not found",
"detail": "No fleet with id 'abc123' in this workspace.",
"error_code": "UZ-AGT-009",
"request_id": "<string>",
"current_state": "paused",
"user_message": "We couldn't find that Fleet. It may have been deleted, or the ID doesn't match one in this workspace.",
"etag": "<string>"
}{
"docs_uri": "https://docs.agentsfleet.net/api-reference/error-codes#UZ-AGT-009",
"title": "Fleet not found",
"detail": "No fleet with id 'abc123' in this workspace.",
"error_code": "UZ-AGT-009",
"request_id": "<string>",
"current_state": "paused",
"user_message": "We couldn't find that Fleet. It may have been deleted, or the ID doesn't match one in this workspace.",
"etag": "<string>"
}{
"docs_uri": "https://docs.agentsfleet.net/api-reference/error-codes#UZ-AGT-009",
"title": "Fleet not found",
"detail": "No fleet with id 'abc123' in this workspace.",
"error_code": "UZ-AGT-009",
"request_id": "<string>",
"current_state": "paused",
"user_message": "We couldn't find that Fleet. It may have been deleted, or the ID doesn't match one in this workspace.",
"etag": "<string>"
}{
"docs_uri": "https://docs.agentsfleet.net/api-reference/error-codes#UZ-AGT-009",
"title": "Fleet not found",
"detail": "No fleet with id 'abc123' in this workspace.",
"error_code": "UZ-AGT-009",
"request_id": "<string>",
"current_state": "paused",
"user_message": "We couldn't find that Fleet. It may have been deleted, or the ID doesn't match one in this workspace.",
"etag": "<string>"
}{
"docs_uri": "https://docs.agentsfleet.net/api-reference/error-codes#UZ-AGT-009",
"title": "Fleet not found",
"detail": "No fleet with id 'abc123' in this workspace.",
"error_code": "UZ-AGT-009",
"request_id": "<string>",
"current_state": "paused",
"user_message": "We couldn't find that Fleet. It may have been deleted, or the ID doesn't match one in this workspace.",
"etag": "<string>"
}{
"docs_uri": "https://docs.agentsfleet.net/api-reference/error-codes#UZ-AGT-009",
"title": "Fleet not found",
"detail": "No fleet with id 'abc123' in this workspace.",
"error_code": "UZ-AGT-009",
"request_id": "<string>",
"current_state": "paused",
"user_message": "We couldn't find that Fleet. It may have been deleted, or the ID doesn't match one in this workspace.",
"etag": "<string>"
}{
"docs_uri": "https://docs.agentsfleet.net/api-reference/error-codes#UZ-AGT-009",
"title": "Fleet not found",
"detail": "No fleet with id 'abc123' in this workspace.",
"error_code": "UZ-AGT-009",
"request_id": "<string>",
"current_state": "paused",
"user_message": "We couldn't find that Fleet. It may have been deleted, or the ID doesn't match one in this workspace.",
"etag": "<string>"
}Authorizations
Obtain a token via the CLI auth flow (POST /v1/auth/sessions) or GitHub OAuth
Headers
Optional source-version tag from GET. Stale values return 412 with the current etag.
Path Parameters
UUIDv7 of the workspace.
UUIDv7 of the fleet.
Body
Replaces the fleet config with a JSON string.
Mutually exclusive with trigger_markdown.
Replaces TRIGGER.md and updates the fleet name and triggers.
Must be non-empty. Mutually exclusive with config_json.
Replaces SKILL.md and its settings. Must be non-empty.
The skill name must match the current fleet name.
New fleet state. active resumes, and stopped can resume later.
killed is final. Only the service can set paused.
active, stopped, killed