Every run one item caused, across all of its stages.
The item's combined execution record: each claim of the item as an attempt — its stage, what the ledger made of it — with the runs it caused, and the whole set as one run tree. It reaches runs the transition log never names: the one running now, one whose lease ran out before it finished, and the sub-tasks and consults a stage agent spawned. Totals are the item's own: its runs and their children, and its share of each batch run it was a member of. Run summaries only. A run's trace is read through its agent, under that agent's own access check.
Authorization
Bearer JWT Authorization header using the Bearer scheme. Enter 'Bearer' [space] and then your token.
In: header
Path Parameters
The trigger identifier.
uuidThe ledger item identifier.
uuidThe tenant identifier
Response Body
curl -X GET "https://api.fruxon.com/v1/tenants/string/triggers/497f6eca-6276-4993-bfeb-53cbbbba6f08/ledger/items/497f6eca-6276-4993-bfeb-53cbbbba6f08/runs"{
"itemId": "00000000-0000-0000-0000-000000000000",
"itemKey": "string",
"label": "string",
"status": "READY",
"stageId": "string",
"admittedAt": 0,
"terminalAt": 0,
"totals": {
"cost": 0,
"runs": 0,
"elapsedMs": 0,
"waitingOnPeopleMs": 0,
"truncatedByRetention": false
},
"attempts": [
{
"claimToken": "00000000-0000-0000-0000-000000000000",
"stageId": "string",
"stageName": "string",
"attempt": 0,
"claimedAt": 0,
"outcome": {
"cause": "string",
"toStatus": "UNSPECIFIED",
"detail": "string",
"executionRecordId": null,
"at": 0
},
"runIds": [
"00000000-0000-0000-0000-000000000000"
],
"missingRunIds": [
"00000000-0000-0000-0000-000000000000"
],
"cost": 0,
"runs": 0,
"batch": {
"batchRunId": "00000000-0000-0000-0000-000000000000",
"memberCount": 0
},
"ask": {
"batchId": "00000000-0000-0000-0000-000000000000",
"topicId": null,
"settledCause": "string",
"settledAt": null,
"waitingMs": 0
}
}
],
"tree": {
"rootExecutionId": "00000000-0000-0000-0000-000000000000",
"nodes": [
{
"id": "00000000-0000-0000-0000-000000000000",
"agentId": "string",
"rootExecutionId": null,
"parentExecutionRecordId": null,
"parentAsyncOperationId": null,
"depth": 0,
"joinedByConversation": false,
"runType": "UNSPECIFIED",
"status": "UNSPECIFIED",
"startTime": 0,
"endTime": null,
"durationMs": null,
"totalCost": null,
"creditsCharged": 0,
"subject": "string",
"trigger": null
}
],
"totals": {
"runs": 0,
"failed": 0,
"cost": 0,
"credits": 0,
"elapsedMs": 0,
"truncatedByRetention": false
}
},
"unpairedRunIds": [
"00000000-0000-0000-0000-000000000000"
],
"truncated": false
}{
"type": "string",
"title": "string",
"status": 0,
"detail": "string",
"instance": "string",
"property1": null,
"property2": null
}Returns a stuck or excluded work item to the queue.
The dead-letter escape hatch. A DEAD item has exhausted its attempts, a FAILED one is waiting out a backoff, and an IGNORED one was set aside by a business rule; re-driving any of the three resets its attempt count so it gets a full budget again rather than dying on the next failure, and hastens a sweep so it is picked up now instead of at the next scheduled window. The item returns to the stage it left, exclusions included. Returns 409 when the item is not in a state an operator may act on — notably while a pass still holds its claim.
One item's attempt history.
The append-only transition log (§6.6) — the accountability grain, answering "what happened to this item and why". The run tree answers the different question of why one attempt behaved badly; neither grain is asked to do the other's job.