Automation
List run calls
Page through the call ledger with execution results.
Page through the call ledger with execution results. Entries follow ledger order and include targets, argument/result previews, statuses and durations. Script runs read the call ledger; a workflow run records its action calls on its tasks, so this lists the action tasks (skipped ones excluded), matching counters.action_calls.
GET /automation/v1/runs/{id}/calls
Authentication
Authorization: Bearer $PRAXIS_API_KEY
Request fields
| Parameter | Type | Description |
|---|---|---|
| path: id | string | required; Run ID (run_). |
| query: limit | integer | optional; Run ledger page size: integer 1–200, default 50; other collections are capped at 100. minimum: 1; maximum: 200 |
| query: cursor | string | optional; Opaque next_cursor from the previous page; keep the original filters when paging. |
Examples
Set these environment variables to your own resources:
| Variable | Source |
|---|---|
| RUN_ID | Run id; suspend/resume require a workflow; cancel requires a nonterminal run |
: "${RUN_ID:?Set RUN_ID}"
curl --fail-with-body -X GET "https://api.deepraxis.ai/automation/v1/runs/${RUN_ID}/calls" \
-H "Authorization: Bearer $PRAXIS_API_KEY"import { createAutomationClient } from '@deepraxis/sdk/automation';
function env(name: string): string {
const value = process.env[name];
if (!value) throw new Error(`Set ${name}`);
return value;
}
const automation = createAutomationClient({
apiKey: env('PRAXIS_API_KEY'),
baseUrl: 'https://api.deepraxis.ai',
maxRetries: 0,
timeoutMs: 90_000,
});
const result = await automation.runs.calls.list({
"path": {
"id": env("RUN_ID")
}
});
console.log(result);Response
HTTP 200
Success
application/json
| Field | Type | Description |
|---|---|---|
| data | object[] | required; Script call records on this page, ordered by seq. |
| data[].id | string | required; Call id, prefixed call_. |
| data[].run_id | string | required; Id (run_) of the script run that made the call. |
| data[].seq | number | required; Position of the call within the run, increasing in call order; together with run_id it locates the call. |
| data[].target | object | required; The target that was called: {kind, name, revision?, version?}. no additional fields. |
| data[].target.kind | "action" / "script" / "workflow" / "platform_api" | required; Target kind. action is an action; platform_api is a platform API operation; script is a script; workflow is a workflow. |
| data[].target.name | string | required; Target name: ns/name for an action, the operation name for a platform API, ns/name for a script or workflow. |
| data[].target.revision | string | optional; Id (actr_) of the action revision that executed; present only for action calls. |
| data[].target.version | string | optional; Exact version that ran; present only for script and workflow calls. |
| data[].args_preview | string | required; Single-line preview of the call arguments, truncated on the server; payloads over 32 KB are kept in object storage rather than inline. |
| data[].result_preview | null / string | required; Single-line preview of the returned value, truncated on the server; null until the call ends. |
| data[].status | "running" / "completed" / "faulted" / "cancelled" | required; Call status. running means still executing; completed means it returned normally; faulted means it failed and error explains why; cancelled means it was stopped because the run was cancelled. |
| data[].started_at | string | required; Time the call started (RFC 3339 UTC). |
| data[].ended_at | null / string | required; Time the call ended (RFC 3339 UTC), or null while it is running. |
| data[].duration_ms | null / number | required; Milliseconds from start to end, or null while the call is running. |
| data[].error | null / object | required; Error details when the call failed; null if it succeeded or is still running. |
| data[].error (variant 2).type | string | required; Platform error category, or the verbatim URI defined by a workflow raise. |
| data[].error (variant 2).code | null / string | required; Stable error code callers can branch on, or null. |
| data[].error (variant 2).title | string | required; Short error title. |
| data[].error (variant 2).detail | null / string | required; Detailed explanation of the error, or null. |
| data[].error (variant 2).source | null / object | required; Where the error happened: a workflow step or script call; null when unknown. |
| data[].error (variant 2).source (variant 2).kind | "call" / "task" | required; Location kind. task is a workflow step; call is a call in a script. |
| data[].error (variant 2).source (variant 2).reference | string | optional; For task: the JSON Pointer of the failing step. |
| data[].error (variant 2).source (variant 2).seq | number | optional; For call: sequence number of the failing call (matches Call.seq). |
| data[].error (variant 2).source (variant 2).action | object | optional; The failing action {name, revision}; present only when the error came from an action. no additional fields. |
| data[].error (variant 2).source (variant 2).action.name | string | required; Full action name, ns/name. |
| data[].error (variant 2).source (variant 2).action.revision | string | required; Id (actr_) of the action revision that ran. |
| data[].error (variant 2).request_id | string / null | optional; X-Request-Id of the downstream response that caused the failure; null or omitted when unavailable. |
| data[].error (variant 2).errors | object[] | optional; Field validation errors with RFC 6901 pointers and Chinese correction details. |
| data[].error (variant 2).errors[].pointer | string | required; RFC 6901 field pointer. TypeScript source diagnostics use /source for scripts or /implementation/source for actions; line/column are separate, not pointer segments. |
| data[].error (variant 2).errors[].detail | string | required; Chinese correction text saying what is wrong at this location and how to fix it. |
| data[].error (variant 2).errors[].hint | string | optional; Optional extra hint giving an actionable next step, such as using a different endpoint. |
| data[].error (variant 2).errors[].line | integer | optional; Line number, 1-based; present only when a source location is available. minimum: 1 |
| data[].error (variant 2).errors[].column | integer | optional; Column number, 1-based; present only when a source location is available. minimum: 1 |
| data[].error (variant 2).status | number | optional; Optional HTTP-style status declared by a workflow raise; platform errors may omit it. |
| data[].child_run_id | null / string | required; When the target is a script or workflow, the id of the child run this call started; null for action and platform API calls. |
| data[].invocation_key | string | required; Key identifying this logical call, sent downstream so that retries under at-least-once delivery can be deduplicated. |
| data[].request_id | string / null | required; Downstream response X-Request-Id, or null before a response or when the header is absent. |
| next_cursor | null / string | required; Cursor for the next page: pass it unchanged as cursor with the same filters; null when there are no more pages. No total is returned. |
Measured response
HTTP 200
{
"data": [],
"next_cursor": null
}Errors
| HTTP | Codes and description |
|---|---|
| 400 | INVALID_PARAMS: Invalid request parameters, path, cursor, or body format. |
| 404 | RUN_NOT_FOUND: The run does not exist or is not visible to this tenant. |
| default | RFC 9457 automation problem. 429 includes Retry-After. |
Authentication and common errors · Retain the X-Request-Id response header for troubleshooting.