---
title: "GET /projects/{projectId}/agent-runs/{runId}/result"
method: GET
path: "/projects/{projectId}/agent-runs/{runId}/result"
---

# GET /projects/{projectId}/agent-runs/{runId}/result

`GET /projects/{projectId}/agent-runs/{runId}/result`

## Request

- Base URL: `https://api.caveman.so/api/v1`
- URL: `https://api.caveman.so/api/v1/projects/{projectId}/agent-runs/{runId}/result`
- Auth: one of:
  - OAuth 2
    - Authorization code: `/api/v1/oauth/authorize`
    - Token URL: `/api/v1/oauth/token` scopes: `trace:read_metadata`
  - HTTP bearer
  - API key in cookie `cave_access`
  - API key in cookie `__Secure-cave_identity.session_token`

GET /api/v1/projects/{projectId}/agent-runs/{runId}/result on the Caveman Cloud control plane. Requires the trace:read_metadata scope. Exposed to autonomous agents as the agent_run_result action of the caveman_context tool (read access). Who am I, which project am I bound to, what is turned on, and which providers and models are wired. Start here — every other tool assumes this context.

## Response `200`

Current authorized result disclosure with separately recorded delivery metadata.

- AgentRunResult
  - `operations` object[], required
    - `schema_version` unknown, required
    - `operation` string, required
    - `ok` unknown, required
    - `status` 'completed' | 'accepted', required
    - `data` object, required: Recorded resource identities only. Resource pages hydrate content under current access.
    - `receipt_id` string, uuid, required
  - `evaluators` object[], required
    - `evaluator_id` string, uuid, required
    - `version` integer, required
    - `config_sha256` string, required
    - `resource_status` 'draft' | 'active' | 'archived', required
  - `scenarios` object[], required
    - `dataset_id` string, uuid, required
    - `version` integer, required
    - `scenario_sha256` string, required
    - `resource_status` string, required
  - `run_id` string, uuid, required
  - `result_ref` string, uuid, required
  - `result` unknown, required
  - `delivery` AgentPublicationReceipt, required
    - `id` string, uuid, required
    - `state` 'pending' | 'publishing' | 'uncertain' | 'published' | 'stale' | 'unavailable', required
    - `reason` string, required
    - `recorded_at` string, date-time, required
    - `pull_request_url` string, required: Recorded GitHub PR URL or empty. Does not assert current PR/CI state.
    - `target_branch` string, required
    - `parent_sha` string, required
    - `execution_verified` boolean, required: Broker-verified frozen synthetic task: baseline failed, fresh candidate and verifier passed. Does not assert full test-suite or remote CI success.

## Other responses

- `401`: Authentication required.
- `403`: Native user required.
- `404`: Result, source or current permission unavailable.
- `4XX`: Structured failure. `error.code` is stable; `error.request_id` is echoed in the x-cave-request-id header.
- `5XX`: Structured failure. `error.code` is stable; `error.request_id` is echoed in the x-cave-request-id header.

---

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