---
title: "Update Project by ID"
method: PATCH
path: "/v1/projects/{id}"
tags: ["Projects"]
---

# Update Project by ID

`PATCH /v1/projects/{id}`

Update a Project in your workspace

## Path parameters

- `id` string, required

## Request body

- ProjectUpdateRequestDto
  - `userId` string — The ID of the user updating the project
  - `name` string — The name of the project
  - `accessLevel` 'PRIVATE' | 'WORKSPACE' — Who can access the project. `PRIVATE` restricts access to the owning user (plus anyone explicitly shared in); `WORKSPACE` shares the project with every member of the calling workspace. Omit to leave the current access level unchanged.
  - `settings` ProjectSettingsDto
    - `goal` string — High-level goal/description for the project (free text).
    - `toneId` string, nullable — Default Brand Voice (Tone) ID, e.g. `ton_...`. Pass `null` to clear.
    - `audienceId` string, nullable — Default Audience ID, e.g. `aud_...`. Pass `null` to clear.
    - `styleId` string, nullable — Default Style Guide ID, e.g. `sty_...`. Pass `null` to clear.
    - `knowledgeIds` string[] — Knowledge IDs (`kno_*`) to attach to the project. Replaces the existing set of knowledge attachments; pass an empty array to clear them. Non-knowledge attachments are not affected.
  - `metadata` object — An optional set of key-value pairs to attach any data you wish to the project, in a structured format. You can specify up to 10 keys, with key names up to 40 characters long and values up to 500 characters long. Provided string values upsert that key; pass `null` for a key to remove it; omit this field entirely to leave the existing metadata unchanged.

## Response `200`

Project updated

- ProjectResponseDto
  - `requestId` string, required
  - `resource` string, required
  - `data` ProjectData[], required
    - `id` string, required — The unique identifier of the project
    - `name` string, required — The name of the project
    - `userId` string, required — The ID of the user creating the project
    - `appUrl` string, required — The client URL to view the project in the Jasper app
    - `accessLevel` 'PRIVATE' | 'WORKSPACE' — Who currently has access to the project. `WORKSPACE` means every member of the calling workspace can access it; `PRIVATE` means access is limited to the owner (and anyone explicitly shared in).
    - `settings` ProjectSettingsDto
      - `goal` string — High-level goal/description for the project (free text).
      - `toneId` string, nullable — Default Brand Voice (Tone) ID, e.g. `ton_...`. Pass `null` to clear.
      - `audienceId` string, nullable — Default Audience ID, e.g. `aud_...`. Pass `null` to clear.
      - `styleId` string, nullable — Default Style Guide ID, e.g. `sty_...`. Pass `null` to clear.
      - `knowledgeIds` string[] — Knowledge IDs (`kno_*`) to attach to the project. Replaces the existing set of knowledge attachments; pass an empty array to clear them. Non-knowledge attachments are not affected.
    - `metadata` object — Set of key-value pairs previously attached to the project via create/update. Omitted from the response when no metadata is set.

## Other responses

- `400` — Bad request. May be missing required inputs or may have badly formatted inputs.
- `401` — Unauthorized access to the workspace.
- `404` — Not found. May have an incorrect URL path.
- `500` — Internal server error. Unable to update project.

---

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