---
title: "Get one of a repository's agent runs"
method: GET
path: "/api/v1/agents/{forge}/{owner}/{repo}/runs/{id}"
tags: ["Project Agents"]
---

# Get one of a repository's agent runs

`GET /api/v1/agents/{forge}/{owner}/{repo}/runs/{id}`

## Request

- Base URL: `https://entire.io` (the document declares no server; this is the origin it was published from)
- URL: `https://entire.io/api/v1/agents/{forge}/{owner}/{repo}/runs/{id}`
- Auth: none declared

The run as the project's run route returns it, for anyone who can read the repository. Who pays, the raw logs and the agent's configuration follow that route's rules.

## Path parameters

- `forge` 'gh' | 'et', required
- `owner` string, required
- `repo` string, required
- `id` string, required

## Response `200`

The run

- object
  - `id` string, required
  - `project_id` string, required
  - `repository_id` string, required
  - `status` 'queued' | 'running' | 'succeeded' | 'failed' | 'timed_out' | 'canceled', required
  - `error` object, nullable, required: Why the run failed, timed out or was canceled.
    - `code` string, nullable, required
    - `message` string, required
  - `billing_subject` object, nullable, required
    - `type` 'org' | 'account', required
    - `id` string, required
  - `agent` object, required: The agent, at the version and under the name the run pinned.
    - `id` string, required
    - `version` integer, required
    - `name` string, required
  - `environment` object, required
    - `id` string, required
    - `version` integer, required
  - `trigger` object, required
    - `kind` 'push' | 'manual' | 'retry', required
    - `id` string, nullable, required
  - `actor` object, required
    - `kind` string, required
    - `id` string, required
  - `attempt` integer, required
  - `retry_of` string, nullable, required
  - `created_at` string, required
  - `updated_at` string, required
  - `diagnostic` string, nullable, required
  - `target` object, required
    - `repository_id` string, required
    - `trail_id` string, required
    - `change_id` string, required
    - `ref` string, required
    - `head_sha` string, required
    - `base_ref` string, required
    - `base_sha` string, required
  - `runtime` object, required
    - `harness` string, required
    - `model` string, nullable, required
    - `reasoning_effort` string, nullable, required
    - `timeout_ms` integer, required
    - `provider` string, required
    - `checkout` string, required
    - `git_access` string, required
    - `auto_stop_minutes` integer, nullable, required
  - `preset` object, nullable, required
    - `id` string, required
    - `version` integer, nullable, required
    - `sha256` string, nullable, required
  - `mode` object, required
    - `kind` 'review', required
    - `contract_version` string, required
    - `output_mode` 'claude_json_schema' | 'codex_output_schema', required
    - `output_schema_sha256` string, required
    - `signal` object, required
      - `value_type` 'boolean' | 'percent' | 'size', required
      - `polarity` 'higher_is_better' | 'lower_is_better' | 'neutral', required
    - `reviewed` object, required
      - `head_sha` string, required
      - `base_sha` string, required
      - `diff_base_sha` string, required
  - `review_changes_result` object, nullable, required
    - `summary` string, nullable, required
    - `signal` object, required
      - `value_type` 'boolean' | 'percent' | 'size', required
      - `polarity` 'higher_is_better' | 'lower_is_better' | 'neutral', required
      - `value` union, required
        - boolean
        - integer
        - 'small' | 'medium' | 'large'
      - `rationale` string, required
    - `findings` object[], required
      - `body` string, required
      - `severity` 'high' | 'medium' | 'low', required
      - `confidence` number, required
      - `location` object, required
        - `granularity` 'line' | 'range' | 'file', required
        - `file_path` string, required
        - `start_line` integer, nullable, required
        - `end_line` integer, nullable, required
    - `prior_findings` object[], required
      - `finding_id` string, required
      - `verdict` 'fixed' | 'still_present' | 'no_longer_applies', required
      - `evidence` string, required
      - `outcome` 'resolved' | 'dismissed' | 'kept' | 'awaiting_confirmation' | 'reopened_by_person' | 'already_closed', nullable, required: What the server did with the verdict: resolved or dismissed the finding, kept it open, left a high severity one for a person to close, or let a person's decision stand.
    - `review_id` string, nullable, required
  - `dispatch` object, nullable, required
    - `state` 'pending' | 'published' | 'refused' | 'abandoned', required
    - `attempts` integer, required
    - `next_attempt_at` string, nullable, required
    - `published_at` string, nullable, required
  - `result` object, nullable, required
    - `result_type` string, required
    - `data` unknown, required
    - `created_at` string, required
  - `output` object, nullable, required
    - `text` string, nullable, required
    - `truncated` boolean, required
  - `events` object[], nullable, required
    - `kind` string, required
    - `type` string, required
    - `detail` string, required
    - `created_at` string, required

## Other responses

- `401`: Not authenticated
- `403`: Agents feature disabled
- `404`: Repository not found, or repository pull is missing
- `502`: Agents service unavailable

## Changes

- **2026-10-26** `82deb2eae7c6`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/entire/apis/entire-api/changes/api/v1/agents/:forge/:owner/:repo/runs/:id/get.md)

---

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