---
title: "Get tool call"
method: GET
path: "/v1/admin/tool-calls/{id}"
tags: ["admin"]
---

# Get tool call

`GET /v1/admin/tool-calls/{id}`

## Request

- Base URL: `https://api.patricia.app` (the document declares no server; this is the origin it was published from)
- URL: `https://api.patricia.app/v1/admin/tool-calls/{id}`
- Auth: HTTP bearer

Retrieve a single tool call by ID.

## Path parameters

- `id` string, uuid, required

## Response `200`

The requested tool call.

- ModelsRunToolCallFullValidator: Read-only response shape for the run's tool-call timeline. All fields optional so ``fields=`` projection validates (runflow read pattern). ``input_`` reads the ORM attr by name and serializes under the public key ``input`` via ``serialization_alias``. Append-only, with no Create/Update/Merge validators. ``input`` values are shaped per caller by the route's post-serialize hook (``routers/run_tool_calls_nested.py``): sanitized for approval-scope callers, nulled with ``input_summary`` populated for plain ``runs:read`` callers.
  - `id` string, uuid, nullable
  - `tenant_id` string, uuid, nullable
  - `run_id` string, uuid, nullable
  - `tool_name` string, nullable
  - `kind_code` string, nullable
  - `risk_tier_code` string, nullable
  - `input` object, nullable: Tool arguments, sanitized. Present only for callers holding runs:execute; null for read-only callers, which receive input_summary instead. Null with no input_summary means the call had no stored arguments.
  - `input_summary` ArgSummaryEntry[], nullable: Value-free per-argument summary, populated in place of input for callers without runs:execute.
    - `key` string, required: Argument name (schema-level, never customer data).
    - `type` string, required: JSON type of the hidden value: string, number, boolean, object, array, or null.
    - `size` integer, nullable: Size of the hidden value: characters for a string, item count for an array, key count for an object. Null for other scalars, and always null for a credential-named argument.
  - `output` object, nullable: Tool result, sanitized like input: visible (control-token-stripped, size-capped) only for callers holding runs:execute, null for read-only callers. Results often echo the arguments, so they follow the same visibility rule.
  - `status_code` string, nullable
  - `duration_ms` integer, nullable
  - `error` string, nullable: Failure diagnostic, sanitized like input: visible only for callers holding runs:execute, null for read-only callers. Error messages routinely quote the failing call's arguments, so they follow the same visibility rule.
  - `created_at` string, date-time, nullable

## Other responses

- `401`: Unauthorized
- `403`: Permission denied (PERMISSION_DENIED) or email not verified (EMAIL_NOT_VERIFIED)
- `404`: Not found
- `422`: Validation error

---

[API](https://skmtc.dev/patricia/apis/patricia-api.md) · [All operations](https://skmtc.dev/patricia/apis/patricia-api/llms.txt) · [OpenAPI document](https://skmtc.dev/patricia/apis/patricia-api/revisions/0dfb44495ea1?raw)
