# List run calls (/en/docs/api/native/automation/listRunCalls)





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 [#authentication]

`Authorization: Bearer $PRAXIS_API_KEY`

## Request fields [#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 [#examples]

[SDK installation and example environment](/en/docs/api/native/automation)

Set these environment variables to your own resources:

| Variable | Source |
| --- | --- |
| RUN_ID | [Run id; suspend/resume require a workflow; cancel requires a nonterminal run](/en/docs/api/native/automation/createRun) |

```bash
: "${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"
```

```typescript
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 [#response]

### HTTP 200 [#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: &#123;kind, name, revision?, version?&#125;. 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 &#123;name, revision&#125;; 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 [#measured-response]

HTTP 200

```json
{
  "data": [],
  "next_cursor": null
}
```

## Errors [#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](/en/docs/api/errors) · Retain the `X-Request-Id` response header for troubleshooting.
