> ## Documentation Index
> Fetch the complete documentation index at: https://docs.genviral.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Update Slideshow

> Update slideshow metadata, settings, product link, or full slide content

Apply a partial update to a slideshow.

## Path Parameters

<ParamField path="slideshowId" type="string" required>
  Slideshow UUID.
</ParamField>

## Body Parameters

<ParamField body="title" type="string">
  Optional title override.
</ParamField>

<ParamField body="status" type="string">
  Optional status update: `draft` or `rendered`.
</ParamField>

<ParamField body="slideshow_type" type="string">
  Optional: `educational` or `personal`.
</ParamField>

<ParamField body="product_id" type="string (UUID) | null">
  Optional product link update. Set `null` to detach.
</ParamField>

<ParamField body="settings" type="object">
  Optional partial settings patch.

  <Expandable title="Settings Patch">
    <ParamField body="image_pack_id" type="string (UUID) | null">
      Also accepts legacy camelCase `imagePackId`.
    </ParamField>

    <ParamField body="aspect_ratio" type="string">
      `9:16`, `1:1`, or `4:5`.
    </ParamField>

    <ParamField body="slideshow_type" type="string">
      `educational` or `personal`.
    </ParamField>

    <ParamField body="advanced_settings" type="object">
      `font_size` (`default`, `small`, or numeric `8-200`),
      `text_preset`, `text_width`.
    </ParamField>

    <ParamField body="pack_assignments" type="object">
      Per-slide pack overrides.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="slides" type="array">
  Optional full slide replacement array.

  <Expandable title="Slide Payload">
    <ParamField body="text_elements" type="array" required>
      At least one element per slide. Element fields: `content`, `x`, `y`,
      optional `id`, `font_size`, `width`, `height`, `editable`, `style_preset`,
      `font_family`, `background_color`, `text_color`, `border_radius`.
    </ParamField>

    <ParamField body="image_url" type="string | null" required>
      Background image URL or `null`.
    </ParamField>

    <ParamField body="grid_images" type="string[] | null">
      Optional collage image URLs.
    </ParamField>

    <ParamField body="grid_type" type="string | null">
      `2x2`, `1+2`, `vertical`, or `horizontal`.
    </ParamField>

    <ParamField body="background_filters" type="object">
      Optional filter object with numeric fields:
      `brightness`, `contrast`, `saturation`, `hue`, `blur`, `grayscale`,
      `sepia`, `invert`, `drop_shadow`, `opacity`.
    </ParamField>

    <ParamField body="image_overlays" type="array">
      Optional overlays (`id`, `image_url`, `x`, `y`, `width`, `height`,
      `rotation`, `opacity`).
    </ParamField>
  </Expandable>
</ParamField>

<Warning>
  Body cannot be empty. Send at least one updatable field.
</Warning>

<Note>
  If you update `slides` on a slideshow currently in `rendered` status, the API
  automatically resets it to `draft` and clears render artifacts
  (`preview_image_url`, `last_rendered_at`, and per-slide `rendered_image_url`).
</Note>

<RequestExample>
  ```bash cURL theme={null}
  curl --request PATCH \
    --url https://www.genviral.io/api/partner/v1/slideshows/2ab58bb0-0c39-45c0-a4d5-b6852f9d7fc0 \
    --header 'Authorization: Bearer <token>' \
    --header 'Content-Type: application/json' \
    --data '{
    "title": "5 discipline quotes (v2)",
    "settings": {
      "aspect_ratio": "9:16",
      "advanced_settings": {
        "text_width": "narrow"
      }
    }
  }'
  ```
</RequestExample>

<ResponseExample>
  ```json Response theme={null}
  {
    "ok": true,
    "code": 200,
    "message": "Slideshow updated",
    "data": {
      "id": "2ab58bb0-0c39-45c0-a4d5-b6852f9d7fc0",
      "title": "5 discipline quotes (v2)",
      "status": "draft",
      "slideshow_type": "educational",
      "product_id": null,
      "slide_count": 5,
      "settings": {
        "image_pack_id": "11111111-1111-1111-1111-111111111111",
        "aspect_ratio": "9:16",
        "slideshow_type": "educational",
        "advanced_settings": {
          "font_size": 44,
          "text_preset": "tiktok",
          "text_width": "narrow"
        },
        "pack_assignments": null
      }
    }
  }
  ```
</ResponseExample>

## Error Responses

* `400 invalid_json` - body is not valid JSON
* `422 invalid_payload` - schema validation failed or body is empty
* `404 not_found` - slideshow is missing/outside key scope
* `404 product_not_found` - referenced `product_id` does not exist
* `403 forbidden_product_access` - referenced `product_id` is outside key scope
* `401` - authentication failed (missing/invalid/revoked token)
* `402 subscription_required` - active Creator/Professional/Business plan required
* `403 tier_not_allowed` - Scheduler tier cannot use Partner API
* `500 update_failed` - unexpected update failure
