---
title: "Update a project by ID"
method: PATCH
path: "/projects/{id}"
tags: ["Projects"]
---

# Update a project by ID

`PATCH /projects/{id}`

Partially updates a project and its member list. Only provided fields are updated.

## Path parameters

- `id` integer, required

## Request body

- UpdateProjectRequest
  - `project_title` string
  - `owner` integer
  - `start_date` string, date-time
  - `geography` integer
  - `ai_risk_classification` 'Prohibited' | 'High risk' | 'Limited risk' | 'Minimal risk' | 'GPAI' | 'General Risk' — EU AI Act risk classification level
  - `type_of_high_risk_role` 'Deployer' | 'Provider' — Role of the organization under the EU AI Act for high-risk systems
  - `goal` string, nullable
  - `target_industry` string, nullable
  - `description` string, nullable
  - `status` 'Not started' | 'In progress' | 'Under review' | 'Completed' | 'Closed' | 'On hold' | 'Rejected' — Current lifecycle status of the project
  - `last_updated` string, date-time
  - `last_updated_by` integer
  - `members` integer[]

## Response `202`

Project updated successfully

- object
  - `message` string
  - `data` ProjectWithMembers
    - `id` integer
    - `uc_id` string, nullable
    - `project_title` string
    - `owner` integer
    - `start_date` string, date-time, nullable
    - `geography` integer, nullable
    - `ai_risk_classification` 'Prohibited' | 'High risk' | 'Limited risk' | 'Minimal risk' | 'GPAI' | 'General Risk' — EU AI Act risk classification level
    - `type_of_high_risk_role` 'Deployer' | 'Provider' — Role of the organization under the EU AI Act for high-risk systems
    - `use_case_category` string, nullable
    - `use_case_purpose` string, nullable
    - `use_case_audience` string, nullable
    - `deployment_context` string, nullable
    - `goal` string, nullable
    - `target_industry` string, nullable
    - `description` string, nullable
    - `status` 'Not started' | 'In progress' | 'Under review' | 'Completed' | 'Closed' | 'On hold' | 'Rejected' — Current lifecycle status of the project
    - `last_updated` string, date-time, nullable
    - `last_updated_by` integer, nullable
    - `created_at` string, date-time
    - `is_organizational` boolean
    - `is_demo` boolean
    - `_source` string, nullable
    - `framework` ProjectFramework[]
      - `project_framework_id` integer
      - `framework_id` integer
      - `name` string
    - `members` integer[]

## Other responses

- `400` — Validation error
- `401` — Unauthorized
- `403` — Business logic error
- `404` — Project not found
- `500` — Internal server error

---

[API](https://skmtc.dev/verifywise-ai/apis/verifywise-api.md) · [All operations](https://skmtc.dev/verifywise-ai/apis/verifywise-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/verifywise-ai/verifywise-api/revisions/3b138b306b5b/schema)
