APITopology
Get topology graph
Aggregated topology graph: nodes per tier with counts, and the edges between them.
GET
Aggregated topology graph: nodes per tier with counts, and the edges between them.
ApiKeyAuthheader
AuthorizationBearer <token>Bearer token authentication. Send an API key (a saai_api_-prefixed token) as Authorization: Bearer <token>.
Required permission
view_topologyuser_id?stringScope the graph to one user: their agent instances, with policy effects resolved for their groups and instances.
Format
uuidstart_time?stringStart of the activity window, inclusive. Set together with end_time; defaults to the last 7 days.
Format
date-timeend_time?stringEnd of the activity window, exclusive. Set together with start_time.
Format
date-timeThe request has succeeded.
application/json- response
The full aggregated topology graph for the caller's org.
subjects*array<>agents*array<>policies*array<>mcps*array<>subject_agent_edges*array<>access_edges*array<>activity_edges*array<>tags*array<>curl -X GET "https://example.com/topology/graph"{ "subjects": [ { "id": "string", "name": "string", "kind": "group", "user_count": 0 } ], "agents": [ { "slug": "string", "display_name": "string", "instance_count": 0, "tag_ids": [ "string" ] } ], "policies": [ { "id": "string", "name": "string", "effect": "allow", "status": "string" } ], "mcps": [ { "id": "string", "display_name": "string", "tag_ids": [ "string" ] } ], "subject_agent_edges": [ { "subject_id": "string", "agent_slug": "string", "user_count": 0 } ], "access_edges": [ { "agent_slug": "string", "policy_id": "string", "mcp_id": "string", "effect": "allow" } ], "activity_edges": [ { "subject_id": "string", "agent_slug": "string", "policy_id": "string", "mcp_id": "string", "calls": 0, "blocked": 0 } ], "tags": [ { "id": "string", "name": "string", "color": "string" } ]}