> ## Documentation Index
> Fetch the complete documentation index at: https://docs.qoder.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Unpause a deployment

> Resume a paused deployment.

`POST /api/v1/cloud/deployments/{id}/unpause`

Resumes a paused deployment. The deployment returns to `active` status, `paused_reason` is cleared to `null`, and the next trigger time is recomputed from the current time. Manual-only deployments are restored with `schedule: null`.

## Path parameters

| Parameter | Type   | Description                          |
| --------- | ------ | ------------------------------------ |
| `id`      | string | Deployment ID with the `dep_` prefix |

## Headers

| Header          | Required | Description         |
| --------------- | -------- | ------------------- |
| `Authorization` | Yes      | `Bearer $QODER_PAT` |
| `Content-Type`  | Yes      | `application/json`  |

## Request body

No request body is required.

## Example request

```bash theme={null}
curl -X POST "https://api.qoder.com/api/v1/cloud/deployments/dep_019ec55a2b687b3f94eee77dd77e4b2a/unpause" \
  -H "Authorization: Bearer $QODER_PAT" \
  -H "Content-Type: application/json"
```

## Example response

**HTTP 200 OK**

Returns the full Deployment object with restored `active` status.

```json theme={null}
{
  "agent": {
    "id": "agent_019ebb21ef8e7df6a559052c94875160",
    "type": "agent",
    "version": 1
  },
  "archived_at": null,
  "created_at": "2026-06-14T08:58:01Z",
  "description": "Deployment created for API documentation verification",
  "environment_id": "env_019e49a1780171daac1e6b01f290ac2b",
  "environment_variables": "",
  "id": "dep_019ec55a2b687b3f94eee77dd77e4b2a",
  "initial_events": [
    {
      "content": [
        {
          "type": "text",
          "text": "Generate today's status report"
        }
      ],
      "type": "user.message"
    }
  ],
  "metadata": {},
  "name": "api-doc-verification-deployment-v2",
  "paused_reason": null,
  "resources": [],
  "schedule": {
    "expression": "30 9 * * 1-5",
    "last_run_at": "2026-06-14T08:58:17Z",
    "timezone": "Asia/Shanghai",
    "type": "cron",
    "upcoming_runs_at": [
      "2026-06-15T01:30:00Z",
      "2026-06-16T01:30:00Z",
      "2026-06-17T01:30:00Z",
      "2026-06-18T01:30:00Z",
      "2026-06-19T01:30:00Z"
    ]
  },
  "status": "active",
  "type": "deployment",
  "updated_at": "2026-06-14T08:58:27Z",
  "vault_ids": []
}
```

## Errors

| HTTP | Type                   | Trigger                   |
| ---- | ---------------------- | ------------------------- |
| 401  | `authentication_error` | PAT invalid or expired    |
| 404  | `not_found_error`      | Deployment does not exist |
| 409  | `conflict_error`       | Deployment is not paused  |

See [Errors](/cloud-agents/api/conventions/errors) for the full error envelope.

## Related

<CardGroup cols={2}>
  <Card title="Pause a deployment" icon="pause" href="/cloud-agents/api/deployments/pause">
    Temporarily stop scheduling while preserving configuration.
  </Card>

  <Card title="Manually trigger a deployment" icon="play" href="/cloud-agents/api/deployments/run">
    Kick off a deployment run immediately.
  </Card>

  <Card title="Get a deployment" icon="layer-group" href="/cloud-agents/api/deployments/get">
    Inspect the deployment's current status and next scheduled time.
  </Card>

  <Card title="Errors reference" icon="circle-exclamation" href="/cloud-agents/api/conventions/errors">
    All API error codes and the error envelope convention.
  </Card>
</CardGroup>
