---
title: "Update Project"
method: PATCH
path: "/attendance/projects/{projectId}"
tags: ["Projects"]
---

# Update Project

`PATCH /attendance/projects/{projectId}`

Update an existing project with the fields specified in the request body.
<p><b>Note</b>: The `/project/status` field cannot be updated via this endpoint. Use <a href="/reference/patch_attendance-projects-projectid-archive" target="_blank">archive</a>/<a href="/reference/patch_attendance-projects-projectid-restore" target="_blank">restore</a> endpoints instead.</p>
<p><b>Testing notes</b>:</p>
  <ul>
  <li>Use the testing widget's <b>Try It!</b> option to test this endpoint.</li>
  <li>Use the <b>Examples > Request Example</b> option to see how to initiate body parameters.</li>
  <li>For custom fields, use the <b>Examples > Request Example > Update project with fields</b> and copy to an external API client tool to change parameters.</li>
  </ul>

## Path parameters

- `projectId` integer, required

## Request body

- ProjectUpdateRequest — Request schema for updating projects
  - `items` ProjectUpdateRequestObject[], required — List of projects to update (must contain exactly one item)
    - `objectType` 'project', required — Type of the object
    - `fields` object — Project fields for update request (all optional)
      - `/project/name` object — The project name as provided by the user
        - `value` string
      - `/project/description` object — The description of this project
        - `value` string
      - `/project/billable` object — Whether this project is considered billable or not for tracking billing by project.
        - `value` boolean
      - `/project/clientReference` object — This is a reference to a project client. Use the <a href="/reference/post_attendance-project-clients-search" target="_blank">project client search endpoint</a> to get the client ID.
        - `value` integer
      - `/project/audienceSelector` object — Employees assigned to this project. Only assigned employees can log attendance entries for the project. Use `mode=all` to allow all employees or `mode=explicit` to specify employees in `employeeIds`. See <a href="/reference/post_people-search" target="_blank">Search for employees</a> to get the employee IDs.
        - `value` object
          - `mode` 'all' | 'explicit'
          - `employeeIds` string[]
      - `/project/taskIds` object — List of task IDs associated with the project. When `taskIds` is defined, time tracking operates at the task level, and billable behavior is determined by each task. Employees assigned to the project must select both a project and a task when logging attendance entries. Use the <a href="/reference/post_attendance-project-tasks-search" target="_blank">project task search endpoint</a> to get the task IDs.
        - `value` integer[]

## Response `200`

Project updated successfully

## Other responses

- `304` — Not modified
- `400` — The request is malformed or includes invalid parameters
- `401` — Authentication failed. Check your service user credentials
- `403` — The service user or token is missing the required permissions to access the requested data
- `404` — Project not found
- `429` — Rate limit exceeded - see <a href="https://apidocs.hibob.com/reference/projects#rate-limiting">Rate limits</a>
- `500` — An unexpected error occurred. Try again or contact support if the issue persists.

---

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