---
title: "Update, archive, or restore a Project"
description: "Applies a partial Project update. Set `status` to `archived` or `active` for the reversible lifecycle transition. Archiving pauses active bound Automations."
canonical: https://y2.dev/docs/api/reference/projects/patchProject/
---

Endpoint Reference[Projects](https://y2.dev/docs/api/reference/projects)

# Update, archive, or restore a Project

Applies a partial Project update. Set \`status\` to \`archived\` or \`active\` for the reversible lifecycle transition. Archiving pauses active bound Automations.

`PATCH https://api.y2.dev/api/v1/projects/{projectId}`

- Operation ID: `patchProject`
- Required scopes: `projects:write`
- Contract: https://y2.dev/openapi.json

## Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `projectId` | path | string | Yes |  |
| `If-Match` | header | string | No | Strong ETag from the latest representation. A mismatch returns 412. |

## Request body

`application/json`: `ProjectPatchRequest` (required)

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `name` | string | No |  |
| `objective` | string or null | No |  |
| `instructions` | string or null | No |  |
| `icon` | string or null | No |  |
| `color` | string or null | No |  |
| `defaultView` | `graph`, `timeline`, `situation`, `reports`, `evidence`, `knowledge` | No |  |
| `defaultTimeWindow` | `24h`, `7d`, `30d`, `custom` | No |  |
| `status` | `ProjectStatus` | No |  |
| `pinned` | boolean | No |  |

## Responses

| Status | Description | Body |
| --- | --- | --- |
| 200 | Project updated | `ProjectMutationResponse` |
| 400 | Invalid request parameters |  |
| 401 | Missing or invalid API key |  |
| 403 | Insufficient permissions or access denied |  |
| 404 | Resource not found |  |
| 409 | Resource conflict (e.g., webhook in use) |  |
| 412 | The supplied If-Match validator does not match the current representation. |  |
| 429 | Rate limit exceeded (per-key or per-account aggregate) |  |
| 500 | Internal server error |  |

### 200 response fields

| Field | Type | Description |
| --- | --- | --- |
| `data` | `Project` |  |
| `data.id` | string |  |
| `data.type` | string |  |
| `data.name` | string |  |
| `data.objective` | string or null |  |
| `data.instructions` | string or null |  |
| `data.status` | `ProjectStatus` |  |
| `data.contextPolicy` | string |  |
| `data.icon` | string or null |  |
| `data.color` | string or null |  |
| `data.revision` | integer |  |
| `data.defaultView` | `graph`, `timeline`, `situation`, `reports`, `evidence`, `knowledge` |  |
| `data.defaultTimeWindow` | `24h`, `7d`, `30d`, `custom` |  |
| `data.pinned` | boolean |  |
| `data.lastActivityAt` | string (date-time) |  |
| `data.createdAt` | string (date-time) |  |
| `data.updatedAt` | string (date-time) |  |
| `data.links` | object |  |
| `meta` | object |  |
| `meta.message` | string |  |
