---
title: "Changes to PUT /v4/projects/{id}"
method: PUT
path: "/v4/projects/{id}"
---

# Changes to PUT /v4/projects/{id}

`PUT /v4/projects/{id}`

> Every recorded change to this operation, newest first.

## Timeline

Changed in 3 of 28 revisions.

- **2026-04-19** `a88d0ed986cf`: 10 breaking, 115 warning, 12 info
- **2026-01-16** `e856eda71f64`: 5 info
- **2025-11-20** `14ad12ae7053`: 2 info

## Changes

- **2026-04-19** `a88d0ed986cf`: 10 breaking, 115 warning, 12 info
  - the `data/name` response property's maxLength was unset from `100` for the response status `200`
  - the `data/note` response property's maxLength was unset from `1000` for the response status `200`
  - the `data/number` response property's maxLength was unset from `50` for the response status `200`
  - added `#/components/schemas/ProjectBudgetV4, subschema #2` to the `data/budget` response property `oneOf` list for the response status `200`
  - the `data/budget` response's property type changed from `object, null` to no type for status `200`
  - removed the required property `data/budget/amount` from the response with the `200` status
  - removed the required property `data/budget/from_subprojects` from the response with the `200` status
  - removed the required property `data/budget/hard` from the response with the `200` status
  - removed the required property `data/budget/interval` from the response with the `200` status
  - removed the required property `data/budget/monetary` from the response with the `200` status
  - removed the optional property `data/budget/notification_thresholds` from the response with the `200` status
  - added the new `AllSubprojectsMustBeCompleted` enum value to the `errors/items/error/anyOf[subschema #15: All subprojects must be completed error]/type` response property for the response status `422`
  - added the new `BilledCanOnlyBeSetWithHourBudget` enum value to the `errors/items/error/anyOf[subschema #2: Billed can only be set with hour budget error]/type` response property for the response status `422`
  - added the new `BilledMoneyCanOnlyBeSetWithHardBudget` enum value to the `errors/items/error/anyOf[subschema #1: Billed money can only be set with hard budget error]/type` response property for the response status `422`
  - added the new `BudgetIsRequiredForRetainerProject` enum value to the `errors/items/error/anyOf[subschema #4: Budget is required for retainer project error -> subschema #7: Budget is required for retainer project error]/type` response property for the response status `422`
  - added the new `BudgetSourceIsNotChangedFromOrToIntervalWhenSubprojectsExist` enum value to the `errors/items/error/anyOf[subschema #8: Cannot change budget source because of subprojects error]/type` response property for the response status `422`
  - added the new `BudgetSourceIsNotChangedToIntervalWhenEntriesExist` enum value to the `errors/items/error/anyOf[subschema #9: Cannot change budget source to interval because of entries error]/type` response property for the response status `422`
  - added the new `BudgetTotalBelowSubprojectBudgetSum` enum value to the `errors/items/error/anyOf[subschema #6: Budget total below subproject budget sum error -> subschema #5: Budget total below subproject budget sum error]/type` response property for the response status `422`
  - added the new `CannotChangeBudgetCommitmentBecauseOfCompletedSubprojects` enum value to the `errors/items/error/anyOf[subschema #11: Cannot change budget commitment because of completed subprojects error]/type` response property for the response status `422`
  - added the new `CannotChangeBudgetTypeBecauseOfSubprojects` enum value to the `errors/items/error/anyOf[subschema #12: Cannot change budget type because of subprojects error]/type` response property for the response status `422`
  - added the new `CannotModifyDemoData` enum value to the `errors/items/error/anyOf[subschema #13: Cannot modify demo data error]/type` response property for the response status `422`
  - added the new `CannotRemoveBudgetBecauseOfSubprojectBudgets` enum value to the `errors/items/error/anyOf[subschema #10: Cannot remove budget because of subproject budgets error]/type` response property for the response status `422`
  - added the new `CompletionIsForbiddenBySubprojectBudget` enum value to the `errors/items/error/anyOf[subschema #18: Completion is forbidden by subproject budget error]/type` response property for the response status `422`
  - added the new `CompletionIsForbiddenBySubprojectCompletion` enum value to the `errors/items/error/anyOf[subschema #14: Completion is forbidden by subproject completion error]/type` response property for the response status `422`
  - added the new `Empty` enum value to the `errors/items/error/anyOf[subschema #7: Empty error -> subschema #6: Empty error]/type` response property for the response status `422`
  - added the new `FieldsShouldBeEmpty` enum value to the `errors/items/error/anyOf[subschema #5: Fields should be empty error -> subschema #4: Fields should be empty error]/type` response property for the response status `422`
  - added the new `HasToBeInactive` enum value to the `errors/items/error/anyOf[subschema #23: Has to be inactive error]/type` response property for the response status `422`
  - added the new `IllegalChangeForCompletedProject` enum value to the `errors/items/error/anyOf[subschema #17: Illegal change for completed project error]/type` response property for the response status `422`
  - added the new `IntervalBudgetRequiresRetainerPlan` enum value to the `errors/items/error/anyOf[subschema #21: Interval budget requires retainer plan error]/type` response property for the response status `422`
  - added the new `IntervalChangeIsForbiddenForIntervalProjectsWithSubprojects` enum value to the `errors/items/error/anyOf[subschema #22: Interval change is forbidden for interval projects with subprojects error]/type` response property for the response status `422`
  - added the new `ProjectCompletionAnyRunningEntries` enum value to the `errors/items/error/anyOf[subschema #20: Project completion any running entries error]/type` response property for the response status `422`
  - added the new `ProjectCompletionNoBillableEntries` enum value to the `errors/items/error/anyOf[subschema #19: Project completion no billable entries error]/type` response property for the response status `422`
  - added the new `ProjectCompletionTooManyLumpSums` enum value to the `errors/items/error/anyOf[subschema #24: Project completion too many lump sums error]/type` response property for the response status `422`
  - added the new `ProjectDeadlineIsNotBeforeProjectStart` enum value to the `errors/items/error/anyOf[subschema #29: Project deadline is not before project start error -> subschema #28: Project deadline is not before project start error]/type` response property for the response status `422`
  - added the new `ProjectPeriodCollidesWithSubprojectPeriods` enum value to the `errors/items/error/anyOf[subschema #31: Project period collides with subproject periods error -> subschema #30: Project period collides with subproject periods error]/type` response property for the response status `422`
  - added the new `ProjectPeriodMustContainAllEntryStarts` enum value to the `errors/items/error/anyOf[subschema #30: Project period must contain all entry starts error -> subschema #29: Project period must contain all entry starts error]/type` response property for the response status `422`
  - added the new `RelationsPreventDeletion` enum value to the `errors/items/error/anyOf[subschema #26: Relations prevent deletion error]/type` response property for the response status `422`
  - added the new `ResourceConflictFound` enum value to the `errors/items/error/anyOf[subschema #25: Resource conflict found error]/type` response property for the response status `422`
  - added the new `ResourceNotFound` enum value to the `errors/items/error/anyOf[subschema #16: Resource not found error]/type` response property for the response status `422`
  - added the new `RunningEntriesPreventDeletion` enum value to the `errors/items/error/anyOf[subschema #27: Running entries prevent deletion error]/type` response property for the response status `422`
  - …97 more
- **2026-01-16** `e856eda71f64`: 5 info
  - added the new optional request property `budget/interval`
  - added the new optional request property `start_date`
  - added the optional property `data/automatic_completion` to the response with the `200` status
  - added `#/components/schemas/BudgetIsRequiredForRetainerProjectError, #/components/schemas/CannotChangeBudgetSourceToIntervalBecauseOfEntriesError, #/components/schemas/AllSubprojectsMustBeCompletedError, #/components/schemas/ProjectCompletionAnyRunningEntriesError` to the `errors/items/error` response property `anyOf` list for the response status `422`
  - removed `#/components/schemas/CannotChangeBudgetSourceForBilledIntervalProjectsError, #/components/schemas/ProjectCompletionRunningEntriesError` from the `errors/items/error` response property `anyOf` list for the response status `422`
- **2025-11-20** `14ad12ae7053`: 2 info
  - added `#/components/schemas/ProjectPeriodCollidesWithSubprojectPeriodsError, #/components/schemas/ProjectPeriodMustContainAllEntryStartsError` to the `errors/items/error` response property `anyOf` list for the response status `422`
  - removed `#/components/schemas/ProjectDeadlineIsNotInPastError` from the `errors/items/error` response property `anyOf` list for the response status `422`

---

[Operation](https://skmtc.dev/clockodo/apis/clockodo-api-documentation/docs/v4/projects/:id/put.md) - [API](https://skmtc.dev/clockodo/apis/clockodo-api-documentation.md) - [Page](https://skmtc.dev/clockodo/apis/clockodo-api-documentation/changes/v4/projects/:id/put)
