---
title: "Resume a paused project"
method: POST
path: "/v1/orgs/{orgId}/projects/{projectId}/resume"
tags: ["Projects"]
---

# Resume a paused project

`POST /v1/orgs/{orgId}/projects/{projectId}/resume`

## Request

- Base URL: `https://api.spice.ai`
- URL: `https://api.spice.ai/v1/orgs/{orgId}/projects/{projectId}/resume`
- Auth: HTTP bearer

The org is `orgId` in the path. Clears the paused state on the project's spicepod and creates a new
deployment to bring the runtime back up. A project connected to a
GitHub repository deploys spicepod.yaml from its root directory on its
production branch, read when the project resumes. Requires
`apps:write`.

## Path parameters

- `orgId` integer, required
- `projectId` integer, required

## Headers

- `X-Org-Name` string

## Response `200`

Project resumed, deployment created

- object
  - `id` integer, required: The project ID
  - `name` string, required: The project name
  - `paused_at` string, date-time, nullable, required: Always null after a successful resume
  - `deployment_id` integer, required: ID of the deployment created to bring the runtime back up

## Other responses

- `400`: Invalid project ID, missing API key, missing project organization, no spicepod configured, spicepod has been deleted, or the spicepod `name`, `kind` or `version` is missing or not valid (the body carries an `issues` array of `{path, message}`). For a project connected to a GitHub repository, also returned when the root directory has no spicepod.yaml or it is invalid or too large (`code: spicepod_not_found`, `spicepod_invalid` or `spicepod_too_large`). The project stays paused. orgId is not a valid org id (`invalid_org_id`), or X-Org-Name does not name that org (`org_path_mismatch`).
- `401`: Unauthorized
- `403`: Insufficient scope, or the org's GitHub App installation cannot read the connected repository (`code: github_unauthorized` or `github_forbidden`). The project stays paused. The caller is not a member of the org (`org_forbidden`). A machine credential named a different org (`org_assertion_mismatch`). The org is deleted (`org_deleted`).
- `404`: Project not found, or the connected GitHub repository or its production branch was not found (`code: github_not_found`). The project stays paused.
- `409`: Project is not paused, or its spicepod was deleted after the request read it. Also returned when another deployment of the project is queued (`code: deployment_in_progress`); the project then stays paused. Also returned when the project's repository, root directory, or production branch changes while the spicepod is read from the repository; the project then stays paused. Resume again.
- `422`: No runtime version in the catalog matches this project’s version range (`code: version_no_match`), or the spicepod uses version v1beta1, which the Spice 2 runtime cannot load (`code: spicepod_version_unsupported`). Also returned when the spicepod uses a connection credential that holds a secret reference deploy cannot resolve (`code: connection_credentials_unresolved`, with an `unresolved_credentials` array of `{connection, field}`). The project stays paused.
- `429`: GitHub rate-limited the read of the connected repository (`code: github_rate_limited`). The project stays paused.
- `500`: Internal server error
- `502`: GitHub did not answer while the connected repository was read (`code: github_unavailable`). The project stays paused.
- `503`: The runtime version catalog is unavailable or empty (`code: version_source_unavailable`), so an unpinned stable or preview resume cannot resolve an image tag.

---

[API](https://skmtc.dev/spice/apis/spice-cloud-control-plane-api.md) - [All operations](https://skmtc.dev/spice/apis/spice-cloud-control-plane-api/llms.txt) - [OpenAPI document](https://skmtc.dev/spice/apis/spice-cloud-control-plane-api/revisions/5f3b75dd847d?raw)
