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

# Update Project

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

## Request

- Base URL: `https://api.slidemaster.tw` (the document declares no server; this is the origin it was published from)
- URL: `https://api.slidemaster.tw/api/v1/projects/{project_id}`
- Auth: none declared

更新專案資訊（需要認證，只能更新自己的專案）

## Path parameters

- `project_id` string, required

## Headers

- `Authorization` string, nullable

## Request body

- ProjectUpdate
  - `title` string, nullable
  - `description` string, nullable
  - `tts_provider` string, nullable
  - `tts_language` string, nullable
  - `tts_voice` string, nullable
  - `tts_speaking_rate` number, nullable
  - `tts_pitch` number, nullable
  - `script_language` string, nullable
  - `pacing_plan` object, nullable
  - `intro_video_path` string, nullable
  - `outro_video_path` string, nullable
  - `design_yaml` string, nullable
  - `course_experience` object, nullable
  - `course_series` object, nullable
  - `outline_form` object, nullable
  - `source_ocr_provider` string, nullable
  - `source_ocr_providers` string[], nullable
  - `source_provenance` object, nullable
  - `render_mode` string, nullable
  - `series_master_id` string, nullable
  - `session_key` string, nullable
  - `variant_source` object, nullable
  - `variant_brief` object, nullable
  - `transformation_map` object, nullable
  - `derived_projects` object[], nullable
  - `last_opened_at` string, nullable
  - `route` string, nullable
  - `sub_route` string, nullable
  - `route_confidence` number, nullable
  - `source_transcript` object, nullable

## Response `200`

Successful Response

- ProjectResponse
  - `id` string, required
  - `title` string, required
  - `description` string, required
  - `status` string, required
  - `ppt_file_path` string, nullable
  - `folder_id` string, nullable
  - `tts_provider` string, nullable
  - `tts_language` string, nullable
  - `tts_voice` string, nullable
  - `tts_speaking_rate` number, nullable
  - `tts_pitch` number, nullable
  - `script_language` string, nullable
  - `intro_video_path` string, nullable
  - `intro_video_url` string, nullable
  - `outro_video_path` string, nullable
  - `outro_video_url` string, nullable
  - `subtitle_style` object, nullable
  - `type` string
  - `flow_data` object, nullable
  - `design_yaml` string, nullable
  - `course_experience` object, nullable
  - `course_series` object, nullable
  - `outline_form` object, nullable
  - `source_ocr_provider` string, nullable
  - `source_ocr_providers` string[], nullable
  - `source_provenance` object, nullable
  - `render_mode` string, nullable
  - `series_master_id` string, nullable
  - `session_key` string, nullable
  - `variant_source` object, nullable
  - `variant_brief` object, nullable
  - `transformation_map` object, nullable
  - `derived_projects` object[], nullable
  - `source_transcript` object, nullable
  - `route` string, nullable
  - `sub_route` string, nullable
  - `route_confidence` number, nullable
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/slidemaster/apis/slidemaster-ai-api.md) · [All operations](https://skmtc.dev/slidemaster/apis/slidemaster-ai-api/llms.txt) · [OpenAPI document](https://skmtc.dev/slidemaster/apis/slidemaster-ai-api/revisions/a964c005977e?raw)
