---
title: "Update a project"
method: POST
path: "/projects/{id}/update"
tags: ["Projects"]
---

# Update a project

`POST /projects/{id}/update`

Updates an existing project's name and description.
Only the project owner can update their projects.

If a URL is provided without a description, the API will:
1. Fetch the website content
2. Use AI to generate a comprehensive project description in markdown format

Either description or url must be provided.

## Path parameters

- `id` string, required

## Request body

- UpdateProjectRequest
  - `name` string, required — Updated name of the project (max 200 characters)
  - `description` string — Updated description of the project. Either description or url must be provided.
  - `url` string — Optional URL to fetch website content for auto-generating description. If provided without a description, AI will generate one.
  - `imageData` string, nullable — Optional base64 encoded PNG/JPG. Provide `null` to remove the current brand image. The source image must be fully opaque; images containing any fully or partially transparent pixels are rejected. Any size is accepted and will be resized to 200x50 on upload.
  - `imageUrl` string, uri, nullable — Optional HTTP/HTTPS URL pointing to a PNG or JPG brand image. Provide `null` to remove the stored image. The source image must be fully opaque; images containing any fully or partially transparent pixels are rejected. The API stores a 200x50 version. Cannot be combined with `imageData`.
  - `textColor` string, nullable — Optional hex color (format
  - `backgroundColor` string, nullable — Optional hex color (format
  - `brandColor` string, nullable — Optional primary accent hex color (format
  - `accentColor` string, nullable — Optional secondary accent hex color (format

## Response `200`

Project updated successfully

- object
  - `success` boolean
  - `project` Project
    - `id` string — Unique identifier for the project (GUID)
    - `name` string — Name of the project
    - `description` string — Detailed description of the project
    - `url` string — Optional URL associated with the project
    - `token` string — Client token (owner of the project)
    - `createdOn` string, date-time — Creation timestamp
    - `updatedOn` string, date-time — Last update timestamp
    - `active` boolean — Whether the project is active
    - `imageUrl` string, uri — Optional URL of the 200x50 brand image associated with the project
    - `textColor` string, nullable — Hex color (e.g.
    - `backgroundColor` string, nullable — Hex color (e.g.
    - `brandColor` string, nullable — Primary branding accent color applied to overlay shapes when branding is configured
    - `accentColor` string, nullable — Secondary accent color applied to overlay highlights and subtitles when branding is configured

## Other responses

- `400` — Bad request - Missing required fields or validation error
- `401` — Unauthorized - valid API token required
- `404` — Project not found or unauthorized
- `500` — Internal server error

---

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