---
title: "Update product metadata"
method: PATCH
path: "/api/products/{productId}"
tags: ["Products"]
---

# Update product metadata

`PATCH /api/products/{productId}`

## Path parameters

- `productId` string, required

## Request body

- ProductUpdateRequest — Payload for updating product metadata. A product must have at least one payment plan before it can be published.
  - `title` string — Product title shown in CourseLit.
  - `slug` string — Optional URL slug.
  - `description` string — Optional product/blog description. Send this as a JSON-stringified Tiptap/ProseMirror document, for example `JSON.stringify({ type: "doc", content: [] })`. Do not use a `content` field on this endpoint.
  - `published` boolean — Whether the product is published. Existing CourseLit publishing checks still apply.
  - `privacy` string — Existing CourseLit product privacy value.
  - `tags` string[]
  - `featuredImage` object

## Response `200`

Success.

- Product
  - `productId` string
  - `type` 'course' | 'download' | 'blog'
  - `title` string
  - `slug` string
  - `description` string
  - `published` boolean
  - `privacy` string
  - `tags` string[]
  - `featuredImage` object
  - `pageId` string
  - `defaultPaymentPlan` string
  - `paymentPlans` PaymentPlan[]
    - `planId` string
    - `name` string
    - `type` 'free' | 'onetime' | 'emi' | 'subscription'
    - `entityId` string
    - `entityType` string
    - `oneTimeAmount` number
    - `emiAmount` number
    - `emiTotalInstallments` number
    - `subscriptionMonthlyAmount` number
    - `subscriptionYearlyAmount` number
    - `description` string
    - `isDefault` boolean
  - `createdAt` string, date-time
  - `updatedAt` string, date-time

## Other responses

- `400` — Malformed JSON body, non-object body, or unsupported product field.
- `422` — Product could not be updated.

---

[API](https://skmtc.net/codelitdev/apis/courselit-rest-api.md) · [All operations](https://skmtc.net/codelitdev/apis/courselit-rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/codelitdev/courselit-rest-api/versions/3b48f60910dc/schema)
