---
title: "Update project"
method: PUT
path: "/v1/projects/{id}"
tags: ["Project"]
---

# Update project

`PUT /v1/projects/{id}`

Updates an existing project with the provided details. Only the project owner, team owner, or users with manager permissions can update project details. Fields not included in the request will retain their current values. The project ID cannot be changed, and team association changes may affect member permissions.

## Path parameters

- `id` string, required

## Request body

- ProjectUpdateDto
  - `title` string
  - `description` string
  - `employer` string
  - `office` string
  - `color` integer
  - `taskDefaultBillable` boolean
  - `taskDefaultRateId` string
  - `archived` boolean
  - `salaryVisibility` integer
  - `salary` string, decimal
  - `deleted` boolean

## Response `200`

Project successfully updated

- ProjectDto
  - `id` string
  - `user` string
  - `lastUpdate` integer
  - `created` integer
  - `deleted` boolean
  - `title` string
  - `description` string
  - `employer` string
  - `office` string
  - `color` integer
  - `taskDefaultBillable` boolean
  - `archived` boolean
  - `salaryVisibility` integer
  - `salary` string, decimal
  - `team` TeamDto
    - `id` string
    - `organization` OrganizationDto
      - `id` string
      - `name` string
      - `description` string
      - `image` string
      - `color` integer
      - `subscription` CustomerSubscriptionDto
        - `id` string
        - `user` string
        - `expires` integer
        - `status` integer
        - `plan` integer
        - `licenses` integer
        - `paymentOption` string
        - `business` string
        - `email` string
        - `firstname` string
        - `lastname` string
        - `vatId` string
        - `displayName` string
        - `street` string
        - `city` string
        - `state` string
        - `zip` string
        - `country` string
        - `countryIso` string
        - `language` string
        - `includeTaxForBusiness` boolean
        - `activated` boolean
        - `pastDue` boolean
        - `cancellationOffer` boolean
        - `subscriptionActive` boolean
        - `subscriptionCancelled` boolean
        - `subscriptionInactive` boolean
        - `paymentProviderActive` boolean
        - `startedTestimonial` string, date-time
        - `activationDate` string, date-time
        - `cancellationDate` string, date-time
        - `permissionAdmin` boolean
        - `valid` boolean
        - `expired` boolean
        - `validAndActivated` boolean
        - `payPalPayment` boolean
        - `stripePayment` boolean
        - `invoicePayment` boolean
        - `googlePlayPayment` boolean
        - `appleStorePayment` boolean
        - `currency` string
        - `businessCustomer` boolean
        - `euCustomer` boolean
        - `eu` boolean
        - `at` boolean
        - `ch` boolean
        - `uk` boolean
        - `product` string
        - `licenseQuantity` integer
        - `active` boolean
        - `trial` boolean
        - `cancelled` boolean
        - `member` boolean
        - `businessOrTrial` boolean
        - `pro` boolean
        - `planEnterprise` boolean
        - `planBusiness` boolean
        - `planPro` boolean
        - `planPlus` boolean
        - `planBasic` boolean
        - `monthlyPlan` boolean
        - `yearlyPlan` boolean
        - `organization` boolean
      - `user` string
      - `aiChatEnabled` boolean
      - `lastUpdate` integer
      - `created` integer
      - `deleted` boolean
      - `permission` OrganizationPermissionDto
        - `invoicing` boolean
        - `billing` boolean
        - `admin` boolean
    - `organizationId` string
    - `name` string
    - `description` string
    - `image` string
    - `color` integer
    - `projectSalaryVisibility` integer
    - `user` string
    - `lastUpdate` integer
    - `created` integer
    - `deleted` boolean
    - `permission` TeamPermissionDto
      - `role` string
      - `manager` boolean
      - `owner` boolean
      - `member` boolean
      - `managerOrOwner` boolean
    - `projects` integer
    - `members` integer
    - `projectSalaryVisible` boolean
  - `permission` ProjectPermissionDto
    - `role` string
    - `manager` boolean
    - `owner` boolean
    - `member` boolean
    - `managerOrOwner` boolean
  - `duration` integer
  - `durationBreak` integer
  - `salaryTotal` string, decimal
  - `salaryBreak` string, decimal
  - `expenses` string, decimal
  - `expensesPaid` string, decimal
  - `mileage` string, decimal
  - `todoEstimatedDuration` integer
  - `todoTrackedDuration` integer
  - `todoCount` integer
  - `titleAndClient` string
  - `salaryVisible` boolean

## Other responses

- `400` — Invalid request data or validation errors
- `401` — Authentication required
- `403` — Insufficient permissions to update this project
- `404` — Project not found or has been deleted

---

[API](https://skmtc.net/timesheet/apis/timesheet-api.md) · [All operations](https://skmtc.net/timesheet/apis/timesheet-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/timesheet/timesheet-api/versions/fbe59bacb638/schema)
