---
title: "List another user's agent thread runs"
method: GET
path: "/api/observed-agent-threads/{threadId}/runs"
tags: ["Agent Runs"]
---

# List another user's agent thread runs

`GET /api/observed-agent-threads/{threadId}/runs`

## Request

- The document declares no server URL.
- Auth: HTTP bearer

Read-only, whoever owns the thread. Takes can.observe(agent.threads); the response matches the owner's route.

## Path parameters

- `threadId` string, required

## Query parameters

- `status` 'queued' | 'running' | 'succeeded' | 'failed' | 'cancelled'
- `limit` string
- `offset` string
- `order` 'asc' | 'desc'

## Response `200`

Response for status 200

- object
  - `runs` object[], required
    - `id` string, required
    - `projectId` string, required
    - `threadId` string, required
    - `triggerMessageId` string, required
    - `requestedBy` object
      - `type` 'user' | 'serviceAccount', required
      - `id` string, required
    - `status` 'queued' | 'running' | 'succeeded' | 'failed' | 'cancelled', required
    - `model` object
      - `provider` string, required
      - `modelId` string, required
    - `reasoning` union
      - 'provider-default' | 'none' | 'minimal' | 'low' | 'medium' | 'high' | 'xhigh' | 'max'
      - object
        - `budgetTokens` integer, required
    - `modelId` string
    - `finishReason` 'stop' | 'length' | 'content-filter' | 'tool-calls' | 'timeout' | 'interrupted' | 'error' | 'other' | 'unknown'
    - `usage` object
      - `inputTokens` integer
      - `outputTokens` integer
      - `totalTokens` integer
      - `uncachedInputTokens` integer
      - `cacheReadInputTokens` integer
      - `cacheWriteInputTokens` integer
      - `textOutputTokens` integer
      - `reasoningOutputTokens` integer
      - `audioDurationMs` integer: Audio content duration in milliseconds; not billed duration.
      - `imageOutputTokens` integer: Output tokens that encode generated images, within outputTokens.
      - `audioOutputTokens` integer: Output tokens that encode generated audio, within outputTokens.
      - `outputImages` integer: Images the call returned.
      - `inputCharacters` integer: Input characters, counted by the provider's own billing rule.
      - `reportingStatus` 'complete' | 'partial' | 'unavailable', required
    - `cost` object
      - `amounts` object[], required
        - `currency` string, required
        - `amountNanos` string, required
      - `ratedCallCount` integer, required
      - `unpriceableCallCount` integer, required
      - `unvaluedCallCount` integer, required
    - `diagnostics` object[]
      - `code` 'step_limit_reached' | 'output_limit_reached', required
      - `severity` 'warning' | 'error', required
      - `scope` 'run', required
      - `message` string, required
    - `error` object
      - `code` 'internal.unexpected' | 'runtime.cancelled' | 'agent.execution_failed' | 'ai.usage_limit_exceeded' | 'ai.usage_limit_unavailable', required
      - `message` string, required
      - `retryable` boolean, required
      - `at` string, date-time, required
      - `details` union: Any JSON-compatible value.
        - string
        - number
        - boolean
        - unknown[]
          - unknown
        - object
      - `httpStatus` integer
      - `redacted` true
      - `truncated` true
    - `attempt` number, required
    - `streamId` string, required
    - `createdAt` string, required
    - `startedAt` string
    - `completedAt` string
  - `hasMore` boolean, required
  - `total` number, required

## Other responses

- `400`: Response for status 400
- `403`: Response for status 403
- `404`: Response for status 404
- `501`: Response for status 501

## Changes

- **2026-10-21** `54deed43546b`: 1 warning, 4 info
  - added the new `output_limit_reached` enum value to the `runs/items/diagnostics/items/code` response property for the response status `200`
  - added the optional property `runs/items/usage/audioOutputTokens` to the response with the `200` status
  - added the optional property `runs/items/usage/imageOutputTokens` to the response with the `200` status
  - added the optional property `runs/items/usage/inputCharacters` to the response with the `200` status
  - …1 more
- **2026-10-20** `ebeab1520daa`: 1 info
  - endpoint added
- **2026-10-20** `2529bf887ba6`: 1 breaking
  - api path removed without deprecation
- **2026-10-20** `8df745541b3a`: 1 info
  - endpoint added
- **2026-10-14** `59a844bdcb75`: 1 breaking
  - api path removed without deprecation

[Operation history](https://skmtc.dev/sixb-ai/apis/sixb-api/changes/api/observed-agent-threads/:threadId/runs/get.md)

---

[API](https://skmtc.dev/sixb-ai/apis/sixb-api.md) - [All operations](https://skmtc.dev/sixb-ai/apis/sixb-api/llms.txt) - [OpenAPI document](https://skmtc.dev/sixb-ai/apis/sixb-api/revisions/a227d682eaa2?raw)
