---
title: "Resume a paused agent"
method: POST
path: "/api/v1/{forge}/{project}/agents/{id}/resume"
tags: ["Project Agents"]
---

# Resume a paused agent

`POST /api/v1/{forge}/{project}/agents/{id}/resume`

## 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/{forge}/{project}/agents/{id}/resume`
- Auth: none declared. Required headers: `If-Match`

Lets the agent run by itself again. Changes only is_enabled, so the agent's repositories are not revalidated.

## Path parameters

- `forge` 'gh' | 'et', required
- `project` string, required
- `id` string, required

## Headers

- `If-Match` string, required

## Response `200`

The resumed agent

- object
  - `id` string, required
  - `project_id` string, required
  - `version` integer, required
  - `etag` string, required: Write token: send it unchanged as If-Match to replace or archive.
  - `created_at` string, required
  - `created_by` object, required
    - `kind` string, required
    - `id` string, required
  - `updated_at` string, required
  - `archived_at` string, nullable, required
  - `archived_by` object
    - `kind` string, required
    - `id` string, required
  - `name` string, required
  - `description` string, required
  - `harness` string, required
  - `model` string, nullable, required
  - `reasoning_effort` string, nullable, required
  - `timeout_ms` integer, required
  - `instructions` string, required
  - `signal` object, required
    - `value_type` 'boolean' | 'percent' | 'size', required
    - `polarity` 'higher_is_better' | 'lower_is_better' | 'neutral', required
  - `preset` object, nullable, required: The Entire preset the agent runs as it is now; null for a custom agent. A preset agent's name, model, instructions and signal are the preset's.
    - `id` string, required
    - `version` integer, required
  - `is_enabled` boolean, required: Whether its trigger runs it. A paused agent still runs when asked to.
  - `environment_id` string, required
  - `repository_ids` string[], required
  - `triggers` object[], required
    - `id` string, required
    - `kind` 'push', required
    - `when` 'ready' | 'always' | 'not_ready', required: Which Changes the push trigger runs on: ready, only one ready for review (and when one becomes ready); always, every push; not_ready, only one not yet ready for review. In a repository without an approvals gate every open Change is ready. A write that omits it saves ready.
    - `branches` string[], required: Glob patterns over the Change's branch name (main, release/*, feature/**; never refs/…). Empty runs on every branch; a write that omits it saves [].
    - `paths` string[], required: Glob patterns over the repository-relative paths the whole Change changes (frontend/**, **/*.go). Empty runs on every Change; a write that omits it saves []. Manual runs ignore both filters.
  - `stale_repository_ids` string[], required

## Other responses

- `400`: Invalid request
- `401`: Not authenticated
- `403`: Feature disabled, or repository push is missing
- `404`: Project or resource not found
- `409`: Conflict: archived, in use, scope changed, or Idempotency-Key reused
- `412`: If-Match is stale
- `413`: Request body too large
- `422`: Validation failed
- `428`: If-Match is required
- `502`: Agents service unavailable

## Changes

- **2026-10-29** `0827eb9dd401`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/entire/apis/entire-api/changes/api/v1/:forge/:project/agents/:id/resume/post.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)
