---
title: "Update project"
method: PUT
path: "/projects/{projectId}"
tags: ["Projects"]
---

# Update project

`PUT /projects/{projectId}`

## Path parameters

- `projectId` string, required

## Request body

- ProjectInput
  - `name` string, required
  - `status` 'PLANNING' | 'ACTIVE' | 'COMPLETED' | 'ON_HOLD', required — Status of the ongoing project's workflow
  - `budget` number, required — Monetary value in EUR
  - `startDate` string, date, required
  - `endDate` string, date, required
  - `team` object[], required
    - `id` integer, required
    - `name` string, required
  - `manager` integer, required
  - `description` string, required

## Response `200`

Project updated successfully

- Project
  - `id` string, required
  - `name` string, required
  - `status` 'PLANNING' | 'ACTIVE' | 'COMPLETED' | 'ON_HOLD', required — Status of the ongoing project's workflow
  - `budget` number, required — Monetary value in EUR
  - `startDate` string, date, required
  - `endDate` string, date
  - `manager` integer, required
  - `description` string, required
  - `teamSize` integer, required

## Other responses

- `400` — Invalid project input request body @see {@link ProjectInput}
- `404` — Project not found
- `409` — Project name already taken by another project in given time period
- `422` — Invalid data state (e.g. manager not found, team members don't exist, invalid date range)
- `500` — An internal server error occurred.
- `503` — The service is temporarily unavailable. Maybe there is maintenance?

## Changes

> 28 revisions in range; 1 could not be searched.

- **2025-09-10** `36d88bab3a14` — 1 breaking, 1 info
  - removed the required property `team` from the response with the `200` status
  - added the required property `teamSize` to the response with the `200` status
- **2025-09-10** `417afc890070` — 1 info
  - added the required property `team` to the response with the `200` status
- **2025-02-03** `91c1a6d49e80` — 1 breaking
  - removed the required property `team` from the response with the `200` status
- **2025-01-17** `4573748c6338` — 6 info
  - added the optional property `errorGUID` to the response with the `400` status
  - added the optional property `errorGUID` to the response with the `404` status
  - added the optional property `errorGUID` to the response with the `409` status
  - added the optional property `errorGUID` to the response with the `422` status
  - …2 more
- **2025-01-14** `6807ebb4161f` — 1 breaking
  - the response property `endDate` became optional for the status `200`

[Full history](https://skmtc.dev/ducin-public/apis/itcorpo-api/changes/projects/:projectId/put.md)

---

[API](https://skmtc.dev/ducin-public/apis/itcorpo-api.md) · [All operations](https://skmtc.dev/ducin-public/apis/itcorpo-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/ducin-public/itcorpo-api/revisions/80675117301b/schema)
