curl --request GET \
--url https://api.video2ctx.dev/v1/agent/{sessionId}/runs/{runId}/events \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.video2ctx.dev/v1/agent/{sessionId}/runs/{runId}/events', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.video2ctx.dev/v1/agent/{sessionId}/runs/{runId}/events"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)<string>{
"error": {
"code": "QUERY_REQUIRED",
"message": "<string>",
"details": "<unknown>",
"requestId": "<string>"
}
}{
"error": {
"code": "QUERY_REQUIRED",
"message": "<string>",
"details": "<unknown>",
"requestId": "<string>"
}
}{
"error": {
"code": "QUERY_REQUIRED",
"message": "<string>",
"details": "<unknown>",
"requestId": "<string>"
}
}{
"error": {
"code": "QUERY_REQUIRED",
"message": "<string>",
"details": "<unknown>",
"requestId": "<string>"
}
}{
"error": {
"code": "QUERY_REQUIRED",
"message": "<string>",
"details": "<unknown>",
"requestId": "<string>"
}
}{
"error": {
"code": "QUERY_REQUIRED",
"message": "<string>",
"details": "<unknown>",
"requestId": "<string>"
}
}Watch an agent run and its tool activity
Streams persisted snapshots as SSE. Live admin browser sessions can observe another user’s run for debugging without an Agent rollout grant. API keys and CLI sessions remain owner-scoped. Each snapshot contains the compact run, phase, and tool trace with public inputs and bounded evidence summaries. During finalization an active snapshot can include a bounded draft object whose answer replaces the previous draft and whose state is streaming or revising. Its optional activity is gathering while stored context is read, thinking while the model reasons before any answer text, or writing once answer text arrives. Draft text is provisional and excludes citations. The first event restores the current state, including completed runs. Connections rotate after about 25 seconds; reconnect with GET while the run is pending or running. Reconnecting does not start work or incur another run charge. Disconnecting does not cancel durable execution. A terminal snapshot atomically replaces any draft with the validated answer. Internal reasoning, raw provider payloads, and transcript diagnostics are excluded.
curl --request GET \
--url https://api.video2ctx.dev/v1/agent/{sessionId}/runs/{runId}/events \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.video2ctx.dev/v1/agent/{sessionId}/runs/{runId}/events', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.video2ctx.dev/v1/agent/{sessionId}/runs/{runId}/events"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)<string>{
"error": {
"code": "QUERY_REQUIRED",
"message": "<string>",
"details": "<unknown>",
"requestId": "<string>"
}
}{
"error": {
"code": "QUERY_REQUIRED",
"message": "<string>",
"details": "<unknown>",
"requestId": "<string>"
}
}{
"error": {
"code": "QUERY_REQUIRED",
"message": "<string>",
"details": "<unknown>",
"requestId": "<string>"
}
}{
"error": {
"code": "QUERY_REQUIRED",
"message": "<string>",
"details": "<unknown>",
"requestId": "<string>"
}
}{
"error": {
"code": "QUERY_REQUIRED",
"message": "<string>",
"details": "<unknown>",
"requestId": "<string>"
}
}{
"error": {
"code": "QUERY_REQUIRED",
"message": "<string>",
"details": "<unknown>",
"requestId": "<string>"
}
}Authorizations
Permanent personal API key created in the dashboard. Example: curl -H "Authorization: Bearer aty_…" https://your-host/v1/projects
Path Parameters
Session UUID returned by agent admission.
1Agent run UUID returned by agent admission.
1Response
SSE events: snapshot (AgentRunProgress JSON), heartbeat (empty object), unavailable (message). Replace the previous snapshot; close the connection on a terminal run status. Reconnect after EOF for an active run.
The response is of type string.