---
title: "Restore a project"
method: PATCH
path: "/api/v1/projects/{projectId}"
tags: ["projects"]
---

# Restore a project

`PATCH /api/v1/projects/{projectId}`

## Request

- Base URL: `https://index365.co`
- URL: `https://index365.co/api/v1/projects/{projectId}`
- Auth: HTTP bearer

Restore an archived project to active status while preserving its id, scan history, and API keys. Requires projects:write. The strict request body is exactly { status: 'active' }; retries are state-idempotent.

## Path parameters

- `projectId` string, uuid, required

## Request body

- object
  - `status` 'active', required

## Response `200`

Project is active. restored=true identifies a completed archived-to-active transition; restored=false and idempotent=true identifies an already-active retry.

## Other responses

- `400`: invalid_json | validation_failed.
- `401`: Missing/unknown/revoked API key.
- `403`: Key lacks the required scope (error.code=insufficient_scope).
- `404`: Resource not found in this organization.
- `409`: project_not_archived: the project is paused or otherwise not archived, so no state mutation occurred.
- `429`: Rate limit exceeded (60 req/min per key). Honor Retry-After.

---

[API](https://skmtc.dev/index365/apis/index365-api.md) · [All operations](https://skmtc.dev/index365/apis/index365-api/llms.txt) · [OpenAPI document](https://skmtc.dev/index365/apis/index365-api/revisions/87dd7b85edcb?raw)
