Materialize Agent Profile
curl --request POST \
--url https://api.example.com/api/agent-profiles/{name}/materialize \
--header 'X-Access-Token: <api-key>'import requests
url = "https://api.example.com/api/agent-profiles/{name}/materialize"
headers = {"X-Access-Token": "<api-key>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {'X-Access-Token': '<api-key>'}};
fetch('https://api.example.com/api/agent-profiles/{name}/materialize', 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/agent-profiles/{name}/materialize",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"X-Access-Token: <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"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/api/agent-profiles/{name}/materialize"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("X-Access-Token", "<api-key>")
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/agent-profiles/{name}/materialize")
.header("X-Access-Token", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/agent-profiles/{name}/materialize")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Access-Token"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"agent_kind": "<string>",
"valid": false,
"errors": [
"<string>"
],
"llm_profile_ref": "<string>",
"llm_profile_resolved": false,
"llm_api_key_set": false,
"mcp_server_refs": [
"<string>"
],
"resolved_mcp_config_keys": [
"<string>"
],
"resolved_mcp_servers": [
"<string>"
],
"dangling_mcp_server_refs": [
"<string>"
],
"disabled_skills": [
"<string>"
],
"resolved_skills": [
"<string>"
],
"acp_api_key_secret_name": "<string>",
"acp_base_url_secret_name": "<string>",
"acp_file_secret_names": [
"<string>"
],
"resolved_settings": {}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Agent Profiles
Materialize Agent Profile
Dry-run resolve a profile’s LLM/MCP references into a diagnostics report.
Dangling refs are reported in the body (valid=False), not raised; the
only error status is 404 (unknown profile name). resolved_settings is
redacted. Delegates entirely to resolve_agent_profile_dry_run.
POST
/
api
/
agent-profiles
/
{name}
/
materialize
Materialize Agent Profile
curl --request POST \
--url https://api.example.com/api/agent-profiles/{name}/materialize \
--header 'X-Access-Token: <api-key>'import requests
url = "https://api.example.com/api/agent-profiles/{name}/materialize"
headers = {"X-Access-Token": "<api-key>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {'X-Access-Token': '<api-key>'}};
fetch('https://api.example.com/api/agent-profiles/{name}/materialize', 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/agent-profiles/{name}/materialize",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"X-Access-Token: <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"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/api/agent-profiles/{name}/materialize"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("X-Access-Token", "<api-key>")
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/agent-profiles/{name}/materialize")
.header("X-Access-Token", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/agent-profiles/{name}/materialize")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Access-Token"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"agent_kind": "<string>",
"valid": false,
"errors": [
"<string>"
],
"llm_profile_ref": "<string>",
"llm_profile_resolved": false,
"llm_api_key_set": false,
"mcp_server_refs": [
"<string>"
],
"resolved_mcp_config_keys": [
"<string>"
],
"resolved_mcp_servers": [
"<string>"
],
"dangling_mcp_server_refs": [
"<string>"
],
"disabled_skills": [
"<string>"
],
"resolved_skills": [
"<string>"
],
"acp_api_key_secret_name": "<string>",
"acp_base_url_secret_name": "<string>",
"acp_file_secret_names": [
"<string>"
],
"resolved_settings": {}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Authorizations
Path Parameters
Required string length:
1 - 64Pattern:
^[A-Za-z0-9][A-Za-z0-9._-]{0,63}$Query Parameters
Response
Successful Response
Side-effect-free report of what :func:resolve_agent_profile would do.
Consumed by POST /{id}/materialize (#3719) and the canvas editor. The
verdict (:attr:valid) and the dangling-ref lists match exactly what a real
resolve produces; :attr:resolved_settings is the redacted settings dump
(present only when :attr:valid).
Deprecated alias for resolved_mcp_config_keys.
Was this page helpful?

