Graphe d’exécution d’un agent
GET/api/public/v1/agents/{agent_id}/execution-graph beta
The agent's window as a set-membership graph: runs, surfaces, tools, artifacts. The window is an explicit from/to range of any span (window.key is then custom) or the deprecated rolling window key; with neither, the last 7 days. from wins over window; to without from or from after to is a 422.
curl --fail-with-body -X GET 'https://app.openlatch.ai/api/public/v1/agents/<agent_id>/execution-graph' \ -H "Authorization: Bearer $OPENLATCH_API_KEY"import jsonimport osimport urllib.request
request = urllib.request.Request( 'https://app.openlatch.ai/api/public/v1/agents/<agent_id>/execution-graph', method='GET', headers={ 'Authorization': 'Bearer ' + os.environ['OPENLATCH_API_KEY'], },)with urllib.request.urlopen(request) as response: text = response.read().decode() print(json.dumps(json.loads(text), indent=2) if text else response.status)#!/usr/bin/env bashset -euo pipefail
curl -sS --fail-with-body -X GET 'https://app.openlatch.ai/api/public/v1/agents/<agent_id>/execution-graph' \ -H "Authorization: Bearer $OPENLATCH_API_KEY" | jq .$headers = @{ Authorization = "Bearer $env:OPENLATCH_API_KEY"}Invoke-RestMethod -Method GET -Uri 'https://app.openlatch.ai/api/public/v1/agents/<agent_id>/execution-graph' -Headers $headers | ConvertTo-Json -Depth 20Autorisation
Section intitulée « Autorisation »| Rôle dans l’organisation | Ce point de terminaison |
|---|---|
owner | Autorisé |
admin | Autorisé |
editor | Autorisé |
viewer | Autorisé |
Une clé porte le rôle que son propriétaire détient dans l’organisation. Voir Authentification.
Portée de clé d’API : agents:read
Paramètres de chemin
Section intitulée « Paramètres de chemin »| Paramètre | Type | Description |
|---|---|---|
agent_id | string | Obligatoire. |
Paramètres de requête
Section intitulée « Paramètres de requête »| Paramètre | Type | Description |
|---|---|---|
window | string — one of 24h, 7d, 30d | Deprecated: send from (and optionally to) instead. A rolling window ending now — 24h, 7d or 30d. Ignored when from is sent. |
from | string (date-time) or null | Start of an explicit range (ISO 8601), any distance in the past. Wins over window. Snapped down to 10 seconds; the response's window.key is then custom. |
to | string (date-time) or null | End of the explicit range (ISO 8601), exclusive. Requires from, must not be before it (equal bounds are an empty window); defaults to now and is clamped to it. Snapped down to 10 seconds like from. |
expand | array of string — one of session, tool, artifact or null | |
session_page | integer or null | |
session_page_size | integer or null | |
tool_page | integer or null | |
tool_page_size | integer or null | |
artifact_page | integer or null | |
artifact_page_size | integer or null |
- 200 OK — l’appel a réussi.
- 401 Unauthorized —
UNAUTHORIZED - 402 Payment Required —
license_expired - 403 Forbidden —
FEATURE_DISABLED,FORBIDDEN,INSUFFICIENT_SCOPE - 404 Not Found —
NOT_FOUND - 422 Unprocessable Content —
INVALID_ID,VALIDATION_ERROR - 429 Too Many Requests —
TOO_MANY_REQUESTS - 500 Internal Server Error —
INTERNAL_SERVER_ERROR,tenant_isolation_violation - 503 Service Unavailable —
FEATURE_STATE_UNAVAILABLE,SERVICE_UNAVAILABLE
Champs de la réponse
Section intitulée « Champs de la réponse »| Champ | Type | Description |
|---|---|---|
action_tables_available | boolean | Obligatoire. |
agent | object | Obligatoire. The agent the graph belongs to — the existing `AgentRead` subset. |
agent.agent_id | string | Obligatoire. |
agent.display_name | string or null | Obligatoire. |
agent.first_seen_at | string (date-time) | Obligatoire. |
agent.latest_arch | string or null | Obligatoire. |
agent.latest_os | string or null | Obligatoire. |
agent.platform | string | Obligatoire. |
baseline_suppressed | boolean | Obligatoire. |
edges | array of object | Obligatoire. |
edges[].id | string | Obligatoire. |
edges[].session_ids | array of string | Obligatoire. |
edges[].source | string | Obligatoire. |
edges[].target | string | Obligatoire. |
edges[].weight | number | Obligatoire. |
layer_page | object | Obligatoire. |
nodes | array of object | Obligatoire. |
nodes[].baseline_coverage | number | Obligatoire. |
nodes[].baseline_observations | integer | Obligatoire. |
nodes[].confidence | string — one of high, medium, low | Obligatoire. |
nodes[].coverage | number | Obligatoire. |
nodes[].entity | object | Obligatoire. |
nodes[].id | string | Obligatoire. |
nodes[].label | string | Obligatoire. |
nodes[].layer | string — one of agent, session, surface, tool, artifact | Obligatoire. |
nodes[].metrics | object or null | Obligatoire. |
nodes[].observations | integer | Obligatoire. |
nodes[].session_ids | array of string | Obligatoire. |
nodes[].tier | string — one of hot, warm, rare, novel, fading | Obligatoire. |
totals | object | Obligatoire. Window-wide figures. Never page-scoped (D50). |
totals.baseline_events | integer | Obligatoire. |
totals.baseline_sessions | integer | Obligatoire. |
totals.events | integer | Obligatoire. |
totals.mean_run_cost_tokens | number or null | Obligatoire. |
totals.sessions | integer | Obligatoire. |
totals.toolless_sessions | integer | Obligatoire. |
totals.unidentified_actions | integer | Obligatoire. |
window | object | Obligatoire. `{key, from, to, as_of}`. |
window.as_of | string (date-time) | Obligatoire. |
window.from | string (date-time) | Obligatoire. |
window.key | string | Obligatoire. |
window.to | string (date-time) | Obligatoire. |
Exemple de réponse
Section intitulée « Exemple de réponse »{ "action_tables_available": false, "agent": { "agent_id": "agt_01jbwa2k1vfrn9y42xhgxhmzj2", "display_name": "release-bot", "first_seen_at": "2026-01-15T14:32:05Z", "latest_arch": "string", "latest_os": "string", "platform": "string" }, "baseline_suppressed": false, "edges": [ { "id": "3f6c1a2e-8b4d-4c1f-9a7e-0d5b2c8e4f10", "session_ids": [ "ses_01jbwa2k1vfrn9y42xhgxhmzj2" ], "source": "string", "target": "string", "weight": 0.25 } ], "layer_page": {}, "nodes": [ { "baseline_coverage": 0.25, "baseline_observations": 3, "confidence": "high", "coverage": 0.25, "entity": { "distinct_artifacts": 3, "distinct_tools": 3, "layer": "agent" }, "id": "3f6c1a2e-8b4d-4c1f-9a7e-0d5b2c8e4f10", "label": "string", "layer": "agent", "metrics": { "cost_tokens": 3, "cost_tokens_uncached": 3, "cost_usd": "string", "duration_ms": 3, "requirements": { "business_value": 0.25, "compliance": 0.25, "economics": 0.25, "security": 0.25 }, "session_duration_ms": 3, "verdicts": { "allow": 3, "ask": 3, "block": 3, "optimize": 0, "undecided": 3 } }, "observations": 3, "session_ids": [ "ses_01jbwa2k1vfrn9y42xhgxhmzj2" ], "tier": "hot" } ], "totals": { "baseline_events": 3, "baseline_sessions": 3, "events": 3, "mean_run_cost_tokens": 0.25, "sessions": 3, "toolless_sessions": 3, "unidentified_actions": 3 }, "window": { "as_of": "2026-01-15T14:32:05Z", "from": "2026-01-15T14:32:05Z", "key": "string", "to": "2026-01-15T14:32:05Z" }}