---
title: "Update Project"
method: POST
path: "/api/v1/projects/{project_id}"
tags: ["Projects"]
---

# Update Project

`POST /api/v1/projects/{project_id}`

Updates a project and returns it.

## Path parameters

- `project_id` string, required — String ID of the project

## Request body

- BodyCb8d28ec
  - `name` string, nullable — Updated project name. Passing null or omitting this field will leave it unchanged.
  - `description` string, nullable — Updated project description. Passing null or omitting this field will leave it unchanged.
  - `color` union
    - 'berry_red' | 'red' | 'orange' | 'yellow' | 'olive_green' | 'lime_green' | 'green' | 'mint_green' | 'teal' | 'sky_blue' | 'light_blue' | 'blue' | 'grape' | 'violet' | 'lavender' | 'magenta' | 'salmon' | 'charcoal' | 'grey' | 'taupe'
    - 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49
  - `is_favorite` boolean, nullable — Whether the project is marked as a favorite. Passing null or omitting this field will leave it unchanged.
  - `view_style` 'list' | 'board' | 'calendar'
  - `child_order` integer, nullable — Updated position of the project in the hierarchy. Only supported for personal projects. Passing null or omitting this field will leave it unchanged.
  - `is_collapsed` boolean, nullable — Whether the project is collapsed. Passing null or omitting this field will leave it unchanged.
  - `folder_id` integer, nullable — Numeric ID of the folder.

## Response `200`

Successful Response

- union — Can be either a personal or a workspace project.
  - PersonalProjectSyncView — A representation of a Personal Project Sync View, extending the base ProjectSync View, to be returned to clients in a sync (or sync-like) response.
    - `id` string, required — String ID of the project.
    - `can_assign_tasks` boolean, required — Whether the current user can assign tasks in the project.
    - `can_comment` boolean, required — Whether the current user can comment in the project.
    - `child_order` integer, required — Position of the project among sibling projects.
    - `order_key` string, nullable, required — Fractional-indexing order key among sibling projects, or `null` until assigned (backfill in progress). Always `null` for workspace projects, which are ordered via folders instead.
    - `is_collapsed` boolean, required — Whether the project is collapsed in the user's view.
    - `color` string, required — Project color name.
    - `creator_uid` string, nullable, required — String ID of the user who created the project.
    - `created_at` string, date-time, nullable, required — Date and time when the project was created, or `null` if unknown.
    - `is_archived` boolean, required — Whether the project is archived.
    - `is_deleted` boolean, required — Whether the project is deleted.
    - `is_favorite` boolean, required — Whether the project is marked as a favorite.
    - `is_frozen` boolean, required — Whether the project is frozen and cannot be modified.
    - `name` string, required — Project name.
    - `is_shared` boolean, required — Whether the project is shared with other users.
    - `updated_at` string, date-time, nullable, required — Date and time when the project was last updated, or `null` if unknown.
    - `view_style` string, required — Project view style.
    - `default_order` integer, required — Default order of the project in team views.
    - `description` string, required — Project description.
    - `public_key` string, required — Public access key for the project, or an empty string when public access is disabled.
    - `access` ProjectAccessView, required — Contains the details on who can view a project.
      - `visibility` 'restricted' | 'team' | 'public', required — Indicates who can see a project
      - `configuration` union, required — Configuration for the selected visibility level.
        - RestrictedProjectConfiguration — Configuration specific to restricted projects.
        - TeamProjectConfiguration — Configuration specific to team projects.
        - PublicProjectConfiguration — Configuration specific to public projects.
          - `hide_collaborator_details` boolean, required — Whether collaborator details are hidden on the public project.
          - `disable_duplication` boolean, required — Whether public project duplication is disabled.
    - `role` string, nullable, required — Current user's role in the project.
    - `parent_id` string, nullable, required — String ID of the parent project, or `null` for root projects.
    - `inbox_project` boolean, required — Whether this project is the user's Inbox project.
  - WorkspaceProjectSyncView — A representation of a Workspace Project Sync View, extending the base ProjectSync View, to be returned to clients in a sync (or sync-like) response.
    - `id` string, required — String ID of the project.
    - `can_assign_tasks` boolean, required — Whether the current user can assign tasks in the project.
    - `can_comment` boolean, required — Whether the current user can comment in the project.
    - `child_order` integer, required — Position of the project among sibling projects.
    - `order_key` string, nullable, required — Fractional-indexing order key among sibling projects, or `null` until assigned (backfill in progress). Always `null` for workspace projects, which are ordered via folders instead.
    - `is_collapsed` boolean, required — Whether the project is collapsed in the user's view.
    - `color` string, required — Project color name.
    - `creator_uid` string, nullable, required — String ID of the user who created the project.
    - `created_at` string, date-time, nullable, required — Date and time when the project was created, or `null` if unknown.
    - `is_archived` boolean, required — Whether the project is archived.
    - `is_deleted` boolean, required — Whether the project is deleted.
    - `is_favorite` boolean, required — Whether the project is marked as a favorite.
    - `is_frozen` boolean, required — Whether the project is frozen and cannot be modified.
    - `name` string, required — Project name.
    - `is_shared` boolean, required — Whether the project is shared with other users.
    - `updated_at` string, date-time, nullable, required — Date and time when the project was last updated, or `null` if unknown.
    - `view_style` string, required — Project view style.
    - `default_order` integer, required — Default order of the project in team views.
    - `description` string, required — Project description.
    - `public_key` string, required — Public access key for the project, or an empty string when public access is disabled.
    - `access` ProjectAccessView, required — Contains the details on who can view a project.
      - `visibility` 'restricted' | 'team' | 'public', required — Indicates who can see a project
      - `configuration` union, required — Configuration for the selected visibility level.
        - RestrictedProjectConfiguration — Configuration specific to restricted projects.
        - TeamProjectConfiguration — Configuration specific to team projects.
        - PublicProjectConfiguration — Configuration specific to public projects.
          - `hide_collaborator_details` boolean, required — Whether collaborator details are hidden on the public project.
          - `disable_duplication` boolean, required — Whether public project duplication is disabled.
    - `role` string, nullable, required — Current user's role in the project.
    - `collaborator_role_default` string, required — Default collaborator role for the workspace project.
    - `folder_id` string, nullable, required — String ID of the folder that contains the project, or `null`.
    - `is_invite_only` boolean, nullable, required — Whether joining the workspace project requires an invitation.
    - `is_link_sharing_enabled` boolean, required — Whether invitation links are enabled for the project.
    - `status` 'PLANNED' | 'IN_PROGRESS' | 'PAUSED' | 'COMPLETED' | 'CANCELED', required — Project status. At the moment, this is for workspace projects only.
    - `workspace_id` string, required — String ID of the workspace that contains the project.
    - `is_pending_default_collaborator_invites` boolean, required — Whether default collaborator invitations are still being created in the background.
    - `is_project_insights_enabled` boolean, required — Whether project insights are enabled for the project.
    - `parent_id` unknown

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found

---

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