curl --request POST \
--url https://api.example.com/api/manifest/replace \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"manifest_text": "<string>"
}
'import requests
url = "https://api.example.com/api/manifest/replace"
payload = { "manifest_text": "<string>" }
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({manifest_text: '<string>'})
};
fetch('https://api.example.com/api/manifest/replace', 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.example.com/api/manifest/replace",
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([
'manifest_text' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$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.example.com/api/manifest/replace"
payload := strings.NewReader("{\n \"manifest_text\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<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))
}HttpResponse<String> response = Unirest.post("https://api.example.com/api/manifest/replace")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"manifest_text\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/manifest/replace")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"manifest_text\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"env_keys": 123,
"fanout": {
"mode": "<string>",
"error": "<string>",
"local_only": true,
"note": "<string>",
"op": "<string>",
"reachable": true,
"results": [
{
"name": "<string>",
"outcome": "<string>",
"detail": "<string>",
"error": "<string>",
"payload": null
}
]
},
"status": "<string>"
}
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "reloading — the server is applying a config reload; retry shortly",
"reloading": true
}Replace the whole manifest, persist, and reload the fleet
Replace the WHOLE manifest fleet-wide and persist it.
The posted manifest_text is the PRESERVED view (!ENV markers intact); the
server loads it to the preserved document and pushes it through the pipeline —
validate the RESOLVED projection, persist verbatim (no secret bakes to disk),
reload locally, and broadcast the reload so every worker re-reads the persisted
store. The response embeds the per-worker fleet report as its fanout summary.
A persisted replacement reaches the whole fleet, so there is no targets.
Authority-changing — the manifest governs api_tools + module loading — so it
is off the default MCP surface (tier 2), projectable via an explicit
api_tools.include.
curl --request POST \
--url https://api.example.com/api/manifest/replace \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"manifest_text": "<string>"
}
'import requests
url = "https://api.example.com/api/manifest/replace"
payload = { "manifest_text": "<string>" }
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({manifest_text: '<string>'})
};
fetch('https://api.example.com/api/manifest/replace', 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.example.com/api/manifest/replace",
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([
'manifest_text' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$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.example.com/api/manifest/replace"
payload := strings.NewReader("{\n \"manifest_text\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<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))
}HttpResponse<String> response = Unirest.post("https://api.example.com/api/manifest/replace")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"manifest_text\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/manifest/replace")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"manifest_text\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"env_keys": 123,
"fanout": {
"mode": "<string>",
"error": "<string>",
"local_only": true,
"note": "<string>",
"op": "<string>",
"reachable": true,
"results": [
{
"name": "<string>",
"outcome": "<string>",
"detail": "<string>",
"error": "<string>",
"payload": null
}
]
},
"status": "<string>"
}
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "reloading — the server is applying a config reload; retry shortly",
"reloading": true
}Authorizations
Body
A full-manifest replacement carrying the manifest TEXT verbatim — the
PRESERVED view (!ENV markers intact). The server loads it to the preserved
document and persists it through the pipeline, so it owns resolution and no
secret bakes to disk. There is no targets: a persisted replacement reaches
the whole fleet.
Response
Success.
The standard mutation-op response: this worker's local reload result merged
with the fleet fan-out summary. env_keys is the count of env keys the
reload loaded.
Show child attributes
Show child attributes

