# Slides

5 endpoints for slides, with parameters and a real response example.

## PATCH /slides/{id}

**Update a slide's fields**

Changes one or more text fields of a single slide: title, body, or any other text field the slide's layout has. Use `GET /posts/{id}/slides` first to learn the field names and current values, and send them exactly as they appeared there. Does not change color, font, texture (`POST /slides/{id}/style`) or the photo. Carousel only.

| Parameter | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | Opaque id from a previous response. |
| `fields` | body | object | yes | Field name to new value, only for fields the slide's layout accepts. Values are text, up to 2200 characters each, at most 20 fields per request. |

## DELETE /slides/{id}

**Delete a slide**

Removes a slide from the carousel and renumbers the rest. Deleting the only remaining slide is rejected: a carousel needs at least one.

| Parameter | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | Opaque id from a previous response. |

## POST /slides/{id}/style

**Update a slide's visual style**

Changes the font, colors (background, text, brand), or background texture of a single slide, never the whole post and never the project's brand. Send only the fields that need to change; colors must be hex (#rrggbb).

| Parameter | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | Opaque id from a previous response. |
| `titleFont` | body | string | no |  |
| `bodyFont` | body | string | no |  |
| `backgroundColor` | body | string | no | Hex, e.g. #112233. |
| `textColor` | body | string | no | Hex, e.g. #112233. |
| `brandColor` | body | string | no | Hex, e.g. #112233. |
| `texture` | body | string | no |  |

## POST /slides/{id}/variant

**Change a slide's layout variant**

Swaps a single slide's layout variant for another one from the catalog.

| Parameter | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | Opaque id from a previous response. |
| `layoutId` | body | string | yes |  |

## POST /slides/{id}/reimagine

**Reimagine a slide with AI**

Only for the formats whose slide is a finished image (`premium_carousel` and `infographic`), where the whole slide is AI-designed and the text is baked into the image, so there is no field for `PATCH /slides/{id}` to change. Describe the change in one sentence and the slide is redesigned, preserving the rest. Limited edits per carousel; `GET /posts/{id}/edit-budget` reports how many remain.

| Parameter | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | Opaque id from a previous response. |
| `instruction` | body | string | yes | The change, in one sentence. |
