Lists execution sessions for an agent — one item per spawn tree, newest activity first.
The grouped counterpart of the flat list: each item is a whole session (a root run plus every sub-task and consult descending from it) collapsed to its root, carrying the same rollups the `/tree` endpoint computes — run count, failures, combined cost, wall-clock span. A session of one is just a run that spawned nothing. Filters apply at the run level and lift to the session: a session is returned when ANY of its runs matches, and `matchedRuns` reports how many did — so filtering by a tool error surfaces the whole session containing the hit, with its root for context. Rollups always cover the whole session regardless of the filter. Pagination counts sessions, not runs.
Authorization
Bearer JWT Authorization header using the Bearer scheme. Enter 'Bearer' [space] and then your token.
In: header
Path Parameters
The unique identifier of the agent.
The tenant identifier
Query Parameters
The maximum number of items to return per page
int32int32Opaque cursor token from an external system (e.g. RAG API). When set, M:Fruxon.Common.Collections.PageToken.AsString returns this value directly instead of encoding Fruxon.Common.Collections.PageToken.Skip.
Filter start time (Unix timestamp in milliseconds, inclusive). Omit to return records from any start time.
int64Filter end time (Unix timestamp in milliseconds, inclusive). Omit to return records up to the current time.
int64Filter by environment slug. Omit to return records from all environments.
Filter by execution status. Repeat the query parameter (e.g. ?status=Completed&status=Failed)
to match any of the provided statuses. Omit to return records in any status.
Filter by agent revision number. Repeat the query parameter (e.g. ?agentRevision=1&agentRevision=2)
to match any of the provided revisions. Omit to return records across all revisions.
Filter by execution origin. Defaults to Fruxon.Model.AgentSessions.ExecutionOrigin.Production so
monitoring dashboards see live traffic by default — test-origin executions
(draft-test runs) only show up when explicitly requested via ?origin=Test.
This matches the convention used by the cost / budget / model-usage endpoints.
"UNSPECIFIED" | "PRODUCTION" | "TEST"Filter by trigger id — Fruxon.Model.ExecutionTraces.AgentExecutionRecord.TriggerId. Powers the Trigger detail "Recent Executions" card. Matches connector and scheduler fires; never matches API or sample-generation runs (which have null TriggerId).
Filter by session id — Fruxon.Model.ExecutionTraces.AgentExecutionRecord.SessionId. Powers conversation-scoped views ("everything that ran in this conversation").
Filter to the runs spawned by a specific execution —
Fruxon.Model.ExecutionTraces.AgentExecutionRecord.ParentExecutionRecordId. The list-endpoint equivalent of the
dedicated /children route, usable in combination with the other filters (status, time
window, run type) that /children does not accept.
uuidFilter to the runs produced by one specific spawning call — Fruxon.Model.ExecutionTraces.AgentExecutionRecord.ParentAsyncOperationId. This is the step-level counterpart to Fruxon.Model.ExecutionTraces.ExecutionRecordsFilter.ParentExecutionRecordId: a parent that spawned three batches has three operations, and this narrows to the children of exactly one of them. Pairs with Fruxon.Model.ExecutionTraces.ToolTrace.AsyncOperationId on the step that dispatched it.
uuidFilter to every run in one spawn tree — Fruxon.Model.ExecutionTraces.AgentExecutionRecord.RootExecutionId.
One hop from every node in the tree (unlike the parent id, which only reaches direct children),
so this is the filter that answers "everything that ran for this request". Backed by the
(RootExecutionId, TenantId, CreatedAt) index. For the assembled tree with per-node rollups,
prefer the /tree endpoint.
uuidFilter by spawn-tree role — Fruxon.Model.ExecutionTraces.AgentExecutionRecord.RunType. Repeat the query
parameter (e.g. ?runType=SUB_TASK&runType=CONSULT) to match any of the listed types.
Lets a caller separate top-level runs from the delegated work they fanned out, which the
trigger-type filter cannot express — a spawned child carries no trigger source and so reads as
Fruxon.Model.ExecutionTraces.ExecutionTriggerType.Api.
Filter by resolved participant id — Fruxon.Model.ExecutionTraces.AgentExecutionRecord.ParticipantId.
Powers the Participant detail "Recent Executions" card and the Executions-tab
participant filter. Repeat the query parameter (e.g.
?participantId={a}&participantId={b}) to match executions resolved to
any of the listed participants. Only matches connector-sourced runs where
the inbound message resolved to a participant before fan-out.
Filter by the Fruxon.Model.Triggers.TriggerFireAttempt.Id that produced the run — Fruxon.Model.ExecutionTraces.AgentExecutionRecord.TriggerFireAttemptId. Powers the Events-tab "View N traces" drill-down: scopes results to the exact executions a single inbound delivery produced, not the full history of the trigger. Matches nothing for API, sample, connector-only runs, or any execution that predates the column.
uuidFilter to executions that invoked specific tools. Each entry is a tool key in the same
integrationId.toolId form the tool-usage rollup emits (e.g. slack.send_message;
built-ins have no integration prefix, e.g. web_search). Repeat the query parameter
(e.g. ?tools=slack.send_message&tools=web_search) to match executions that used
any of the listed tools. Backed by the denormalized
Fruxon.Model.ExecutionTraces.AgentExecutionToolUsage projection, so it only sees executions the tool-usage
projection job has already processed (a ~1-minute lag on the newest runs — the same lag the
Tool usage card shows).
When true, narrows the match to executions where the tool(s) errored. Combine with Fruxon.Model.ExecutionTraces.ExecutionRecordsFilter.Tools for "executions where tool X failed" (the Tool usage card's error drill-down), or use it alone for "executions where any tool failed". Like Fruxon.Model.ExecutionTraces.ExecutionRecordsFilter.Tools, resolved against the Fruxon.Model.ExecutionTraces.AgentExecutionToolUsage projection.
When true, matches executions that invoked at least one tool (any tool) — i.e. excludes pure-LLM runs. Redundant when Fruxon.Model.ExecutionTraces.ExecutionRecordsFilter.Tools or Fruxon.Model.ExecutionTraces.ExecutionRecordsFilter.WithToolErrors is set (those already imply a tool invocation).
Filter by source / trigger type. Repeat the query parameter
(e.g. ?triggerType=Connector&triggerType=Scheduler) to match any of the listed types.
The user-facing source types are Fruxon.Model.ExecutionTraces.ExecutionTriggerType.Api (API call),
Fruxon.Model.ExecutionTraces.ExecutionTriggerType.Scheduler (scheduled), Fruxon.Model.ExecutionTraces.ExecutionTriggerType.Connector
(a messaging connector) and Fruxon.Model.ExecutionTraces.ExecutionTriggerType.CollectionItem (a pipeline per-item
run). Pipeline runs are hidden from the default list but opted in by listing
Fruxon.Model.ExecutionTraces.ExecutionTriggerType.CollectionItem here; the cost-only bookkeeping types
(sample-generation, relevance-check, document-enrichment) stay excluded regardless of this filter.
Filter by connector provider — Fruxon.Model.ExecutionTraces.AgentExecutionRecord.TriggerProvider
(e.g. telegram, slack). Repeat the query parameter to match any of the listed
providers. Only connector-sourced runs carry a provider, so API / scheduler runs never match.
Filter to executions whose wall-clock duration (end − start, in milliseconds) is at least
this value. In-flight runs (no end time) count as zero duration and are excluded by any positive
minimum.
int64Filter to executions whose wall-clock duration (end − start, in milliseconds) is at most
this value.
int64When true, also computes the total number of matching sessions and returns
it in totalCount. Opt-in so the default per-page scroll skips the COUNT.
falseResponse Body
curl -X GET "https://api.fruxon.com/v1/tenants/string/agents/string/executionRecords/sessions"{
"items": [
{
"root": {
"id": "00000000-0000-0000-0000-000000000000",
"agentId": "string",
"agentRevision": 0,
"remoteAgentRevision": "string",
"startTime": 0,
"endTime": null,
"status": "UNSPECIFIED",
"deliveryStatus": "UNSPECIFIED",
"inputTokens": 0,
"outputTokens": 0,
"cachedTokens": 0,
"cacheWriteTokens": 0,
"webSearchCalls": 0,
"hasResult": false,
"hasTrace": false,
"isSample": false,
"trigger": null,
"destinations": null,
"environmentSlug": "string",
"networkId": null,
"createdAt": 0,
"tenantId": "00000000-0000-0000-0000-000000000000",
"parentExecutionRecordId": null,
"parentAgentId": "string",
"parentSubject": "string",
"parentAsyncOperationId": null,
"rootExecutionId": null,
"runType": "UNSPECIFIED",
"subject": "string",
"inputCost": null,
"outputCost": null,
"cachedCost": null,
"cacheWriteCost": null,
"thinkingCost": null,
"webSearchCost": null,
"totalCost": null,
"creditsCharged": 0,
"waitingFor": null,
"relevanceOutcome": null,
"relevanceReason": "string",
"groupParticipantId": null,
"wasAddressed": null,
"rejectionReason": null,
"rejectionDetail": "string",
"rejectionAttemptCount": 0
},
"totals": {
"runs": 0,
"failed": 0,
"cost": 0,
"credits": 0,
"elapsedMs": null
},
"matchedRuns": 0
}
],
"nextPageToken": "string",
"totalCount": 0
}{
"type": "string",
"title": "string",
"status": 0,
"detail": "string",
"instance": "string",
"property1": null,
"property2": null
}Gets the cross-config sandbox impact of this execution.
Returns one row per integration config the run touched in sandbox mode, with the pre-run snapshot id (if the session was auto-snapshotted), the diff against current state (added/modified/removed entities), and the simulator tool-call count. Backs the "Sandbox impact" card in AgentLab and on the execution detail page. Vendor-routed configs do not appear here — they are surfaced on the frontend from the agent revision's bound configs.
Gets the detailed trace of a specific execution.
Returns the full execution trace including all intermediate steps, tool calls, AI model interactions, and timing breakdowns.