Executions
An execution records one agent run: the prompt, the final output, token usage, the status and when it started and finished. Runs that belong to the same conversation share a session_id; see Sessions for the conversations and their messages.
These endpoints only ever return your own executions.
- GET /api/monitoring/executions List executions
- GET /api/monitoring/executions/classifications List risk classifications
Paths are relative to /agent-hub-api
The execution object
One agent run.
Attributes
-
idstringUnique identifier for the execution (a UUID).
-
session_idnullable stringId of the session the run belongs to.
-
user_idnullable integerId of the user the run was made for.
-
client_idstringIdentifier of the client application that started the run, for example
web, orunknownwhen none was given. -
app_idnullable stringIdentifier of the external application that started the run, or
null. -
agent_idnullable stringId of the agent that ran, when known.
-
agent_namenullable stringName of the agent that ran, kept even if the agent is later renamed or deleted.
-
promptstringThe prompt the agent was given.
-
contextobjectThe run context the agent received, including values the deployment adds, such as
user_id,session_idand workspace details. Empty when your administrator has turned off context logging. -
outputnullable stringThe agent's final answer.
nullwhile the run is pending. -
usage_statsobjectToken usage for the whole run.
Show child attributes Hide child attributes
-
inputintegerInput tokens.
-
outputintegerOutput tokens.
-
totalintegerInput and output tokens together.
-
-
statusstringPENDINGwhile the run is in progress, thenSUCCESSorFAILURE.Possible values-
PENDING -
SUCCESS -
FAILURE
-
-
error_messagenullable stringWhy the run failed, for
FAILUREruns. -
created_atstringWhen the run started (UTC, ISO 8601).
-
completed_atnullable stringWhen the run finished (UTC, ISO 8601), or
nullwhile it is pending.
{
"id": "e4a7c2d9-1b3f-4c8e-9a5d-6f2b8e1c3a70",
"session_id": "5b8e1f3a-2c9d-4a67-b1e4-7f0c3d9a2e58",
"user_id": 42,
"client_id": "web",
"app_id": null,
"agent_id": "9d2f4b61-3a7c-4e15-8b0d-2c6e9f1a7b34",
"agent_name": "Release Manager",
"prompt": "Draft the release notes for version 4.2 from this week's merged changes.",
"context": {
"client_id": "web",
"user_id": 42,
"agent_id": "9d2f4b61-3a7c-4e15-8b0d-2c6e9f1a7b34",
"session_id": "5b8e1f3a-2c9d-4a67-b1e4-7f0c3d9a2e58"
},
"output": "## Release 4.2\n\n### Features\n- Added bulk export for invoices.\n\n### Fixes\n- Fixed rounding in quarterly totals.",
"usage_stats": {
"input": 1840,
"output": 412,
"total": 2252
},
"status": "SUCCESS",
"error_message": null,
"created_at": "2026-09-01T09:29:48.301127",
"completed_at": "2026-09-01T09:30:03.884590"
} List executions
GET /agent-hub-api/api/monitoring/executions
Returns the caller's executions, newest first, with per-status totals.
Filters combine. status_counts counts every execution that matches all the other filters regardless of status, so you can show totals per status while listing only one of them.
- Authentication
- Bearer token How it works
Query parameters
-
limitintegerMaximum number of executions to return.
-
offsetintegerNumber of executions to skip.
-
agent_namestringOnly executions of the agent with exactly this name.
-
statusstringOnly executions with this status:
PENDING,SUCCESSorFAILURE. -
client_idstringOnly executions started by this client application.
-
session_idstringOnly executions in this session. A value that is not a UUID returns an empty list.
-
date_fromstringOnly executions started at or after this time: an ISO 8601 date-time such as
2026-09-01T00:00:00Z, or a date such as2026-09-01. A value that cannot be parsed is ignored. -
date_tostringOnly executions started at or before this time, in the same formats as
date_from.
Returns
Returns data, a page of execution objects; status_counts, the number of matching executions per status; and pagination with total, limit, offset and has_more.
curl "$VDF_BASE_URL/agent-hub-api/api/monitoring/executions?agent_name=Release%20Manager&limit=20" \
-H "Authorization: Bearer $VDF_ACCESS_TOKEN" const response = await fetch(`${process.env.VDF_BASE_URL}/agent-hub-api/api/monitoring/executions?agent_name=Release%20Manager&limit=20`, {
headers: {
Authorization: `Bearer ${process.env.VDF_ACCESS_TOKEN}`,
},
});
if (!response.ok) throw new Error(`Request failed with status ${response.status}`);
const data = await response.json(); import os
import requests
response = requests.get(
f"{os.environ['VDF_BASE_URL']}/agent-hub-api/api/monitoring/executions",
headers={"Authorization": f"Bearer {os.environ['VDF_ACCESS_TOKEN']}"},
params={
"agent_name": "Release Manager",
"limit": 20,
},
timeout=30,
)
response.raise_for_status()
data = response.json() {
"success": true,
"data": [
{
"id": "e4a7c2d9-1b3f-4c8e-9a5d-6f2b8e1c3a70",
"session_id": "5b8e1f3a-2c9d-4a67-b1e4-7f0c3d9a2e58",
"user_id": 42,
"client_id": "web",
"app_id": null,
"agent_id": "9d2f4b61-3a7c-4e15-8b0d-2c6e9f1a7b34",
"agent_name": "Release Manager",
"prompt": "Draft the release notes for version 4.2 from this week's merged changes.",
"context": {
"client_id": "web",
"user_id": 42,
"agent_id": "9d2f4b61-3a7c-4e15-8b0d-2c6e9f1a7b34",
"session_id": "5b8e1f3a-2c9d-4a67-b1e4-7f0c3d9a2e58"
},
"output": "## Release 4.2\n\n### Features\n- Added bulk export for invoices.\n\n### Fixes\n- Fixed rounding in quarterly totals.",
"usage_stats": {
"input": 1840,
"output": 412,
"total": 2252
},
"status": "SUCCESS",
"error_message": null,
"created_at": "2026-09-01T09:29:48.301127",
"completed_at": "2026-09-01T09:30:03.884590"
}
],
"status_counts": {
"SUCCESS": 18,
"FAILURE": 2
},
"pagination": {
"total": 20,
"limit": 20,
"offset": 0,
"has_more": false
}
} List risk classifications
GET /agent-hub-api/api/monitoring/executions/classifications
Returns the latest successful EU AI Act risk classification for each AI system the caller has classified.
A risk classification is a successful run of the risk classification agent whose run context carries the system_id of an AI system in your compliance register. This endpoint looks at your 500 most recent successful runs of that agent and returns the newest one for each system_id, with the agent's answer parsed into a risk tier. The agent name matches in its common spellings, for example risk_classifier, RiskClassifier and Risk Classifier.
- Authentication
- Bearer token How it works
Query parameters
-
agent_namestringName of the agent whose runs count as classifications.
Returns
Returns data, an object keyed by AI system id. Each value has execution_id, classified_at, risk_tier (unacceptable, high, limited, minimal or unclassified), annex_iii_category, rationale and the agent's raw output.
curl "$VDF_BASE_URL/agent-hub-api/api/monitoring/executions/classifications" \
-H "Authorization: Bearer $VDF_ACCESS_TOKEN" const response = await fetch(`${process.env.VDF_BASE_URL}/agent-hub-api/api/monitoring/executions/classifications`, {
headers: {
Authorization: `Bearer ${process.env.VDF_ACCESS_TOKEN}`,
},
});
if (!response.ok) throw new Error(`Request failed with status ${response.status}`);
const data = await response.json(); import os
import requests
response = requests.get(
f"{os.environ['VDF_BASE_URL']}/agent-hub-api/api/monitoring/executions/classifications",
headers={"Authorization": f"Bearer {os.environ['VDF_ACCESS_TOKEN']}"},
timeout=30,
)
response.raise_for_status()
data = response.json() {
"success": true,
"data": {
"a8c4e1f7-2b9d-4c63-9e05-7d1f3b8a2c64": {
"execution_id": "f1b8d3a6-4e2c-4a97-b5d0-8c3e1f6a9b27",
"classified_at": "2026-09-02T14:05:11.208334",
"risk_tier": "high",
"annex_iii_category": "4(a)",
"rationale": "The system ranks job applicants for shortlisting, a use listed in Annex III point 4(a), so it is high-risk under Article 6(2).",
"output": "{\"risk_tier\": \"high\", \"annex_iii_category\": \"4(a)\", \"rationale\": \"The system ranks job applicants for shortlisting, a use listed in Annex III point 4(a), so it is high-risk under Article 6(2).\"}"
}
}
}