---
title: "Patch Project"
method: PATCH
path: "/projects/{project_id}"
tags: ["projects"]
---

# Patch Project

`PATCH /projects/{project_id}`

## Request

- Base URL: `https://api.presentations.ai/api/v1`
- URL: `https://api.presentations.ai/api/v1/projects/{project_id}`
- Auth: HTTP bearer

Update a project's name, slug, or default member role.

## Path parameters

- `project_id` string, uuid, required

## Request body

- UpdateProjectRequest: Partial update of a project. Archive is handled by DELETE.
  - `name` string, nullable
  - `slug` string, nullable
  - `default_member_role` 'LEAD' | 'EDITOR' | 'VIEWER': Project membership role.

## Response `200`

Successful Response

- Project: Project response shape.
  - `id` string, uuid, required
  - `workspace_id` string, uuid, required
  - `name` string, required
  - `slug` string, required
  - `default_member_role` 'LEAD' | 'EDITOR' | 'VIEWER', required: Project membership role.
  - `workspace_visible` boolean, required
  - `created_by` string, uuid, nullable, required
  - `archived_at` string, date-time, nullable, required
  - `created_at` string, date-time, required
  - `knowledge_id` string, uuid, nullable
  - `has_share_link` boolean

## Other responses

- `401`: Missing, malformed, expired, or revoked Bearer API key.
- `403`: The API key, workspace role, project scope, or plan lacks permission.
- `404`: The resource does not exist or is outside the caller's scope.
- `422`: A path, query, header, or request-body field failed validation.
- `429`: The caller exceeded the API rate limit.
- `500`: Unexpected server failure. Retry only idempotent operations and retain trace_id.

---

[API](https://skmtc.dev/presentations/apis/presentation-services-api.md) · [All operations](https://skmtc.dev/presentations/apis/presentation-services-api/llms.txt) · [OpenAPI document](https://skmtc.dev/presentations/apis/presentation-services-api/revisions/da06cb2e2f32?raw)
