---
title: "List hook runs"
method: GET
path: "/v1/environments/{environment_id}/hook-runs"
tags: ["Environments"]
---

# List hook runs

`GET /v1/environments/{environment_id}/hook-runs`

## Request

- Base URL: `https://api.replicas.dev`
- URL: `https://api.replicas.dev/v1/environments/{environment_id}/hook-runs`
- Auth: HTTP bearer

Recent warm hook runs (one per warm pool build attempt) and start hook runs (one per workspace start), newest first. The last 20 of each kind are kept.

## Path parameters

- `environment_id` string, required

## Query parameters

- `kind` 'warm' | 'start'
- `limit` integer

## Headers

- `X-Replicas-Api-Version` '2026-10-07'

## Response `200`

Hook runs

- ListEnvironmentHookRunsResponse
  - `runs` EnvironmentHookRunSummary[], required
    - `id` string, uuid, required
    - `environment_id` string, uuid, required
    - `kind` 'warm' | 'start', required
    - `status` 'running' | 'succeeded' | 'failed' | 'cancelled', required
    - `exit_code` integer, nullable, required
    - `timed_out` boolean, required
    - `warm_pool_build_id` string, uuid, nullable, required: Set on warm hook runs
    - `workspace_id` string, uuid, nullable, required: Set on start hook runs
    - `workspace_name` string, nullable, required
    - `builder_workspace_id` string, uuid, nullable, required: While a warm hook runs, the warm pool workspace whose output stream shows it live
    - `started_at` string, date-time, required
    - `finished_at` string, date-time, nullable, required

## Other responses

- `400`: Bad request - Missing or invalid parameters
- `401`: Unauthorized - Invalid or missing API key
- `404`: Resource not found
- `500`: Internal server error

---

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