v1
Get Network Topology
Get the full network topology for the current workspace.
Returns all agents, skills, MCP instances, and triggers as nodes, with edges representing their relationships.
Each entity type is fetched in its own DB session so the four queries
can run concurrently via asyncio.gather without sharing a single
async session (which is not safe for concurrent use).
GET
/
v1
/
network
/
topology
Get Network Topology
curl --request GET \
--url https://api.example.com/v1/network/topology \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.example.com/v1/network/topology"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.example.com/v1/network/topology', 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/v1/network/topology",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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/v1/network/topology"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.example.com/v1/network/topology")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v1/network/topology")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"edges": [
{
"id": "<string>",
"relation": "<string>",
"source": "<string>",
"target": "<string>"
}
],
"governance": [
{
"category": "<string>",
"interceptor_name": "<string>",
"phases": [
"<string>"
]
}
],
"nodes": [
{
"id": "<string>",
"label": "<string>",
"metadata": {},
"status": "<string>"
}
],
"deployment_mode": "oss"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
⌘I
Get Network Topology
curl --request GET \
--url https://api.example.com/v1/network/topology \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.example.com/v1/network/topology"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.example.com/v1/network/topology', 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/v1/network/topology",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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/v1/network/topology"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.example.com/v1/network/topology")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v1/network/topology")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"edges": [
{
"id": "<string>",
"relation": "<string>",
"source": "<string>",
"target": "<string>"
}
],
"governance": [
{
"category": "<string>",
"interceptor_name": "<string>",
"phases": [
"<string>"
]
}
],
"nodes": [
{
"id": "<string>",
"label": "<string>",
"metadata": {},
"status": "<string>"
}
],
"deployment_mode": "oss"
}