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"
}
}
}'
{
"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
}
}
}
Slideshows
Update Slideshow
Update slideshow metadata, settings, product link, or full slide content
PATCH
/
api
/
partner
/
v1
/
slideshows
/
{slideshowId}
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"
}
}
}'
{
"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
}
}
}
Apply a partial update to a slideshow.
Path Parameters
string
required
Slideshow UUID.
Body Parameters
string
Optional title override.
string
Optional status update:
draft or rendered.string
Optional:
educational or personal.string (UUID) | null
Optional product link update. Set
null to detach.object
Optional partial settings patch.
Show Settings Patch
Show Settings Patch
string (UUID) | null
Image pack for the slideshow, or
null to clear it.string
9:16, 1:1, or 4:5.string
educational or personal.object
font_size (default, small, or numeric 8-200),
text_preset, text_width.object
Per-slide pack overrides.
The camelCase spellings
imagePackId, aspectRatio, slideshowType,
advancedSettings (with fontSize, textPreset, textWidth) and
packAssignments are deprecated. They are still accepted here for existing
clients, but the MCP tools no longer advertise them. Send the snake_case
names.array
Optional full slide replacement array.
Show Slide Payload
Show Slide Payload
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.string | null
required
Background image URL or
null.string[] | null
Optional collage image URLs.
string | null
2x2, 1+2, vertical, or horizontal.object
Optional filter object with numeric fields:
brightness, contrast, saturation, hue, blur, grayscale,
sepia, invert, drop_shadow, opacity. Send only the filters you
change: each omitted filter is stored at its default (brightness,
contrast, saturation and opacity 100, the rest 0). The object
replaces the slide’s filters; unknown filter names are rejected.array
Optional overlays (
id, image_url, x, y, width, height,
rotation, opacity).Body cannot be empty. Send at least one updatable field.
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).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"
}
}
}'
{
"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
}
}
}
Error Responses
400 invalid_json- body is not valid JSON422 invalid_payload- schema validation failed or body is empty404 not_found- slideshow is missing/outside key scope404 product_not_found- referencedproduct_iddoes not exist403 forbidden_product_access- referencedproduct_idis outside key scope401- authentication failed (missing/invalid/revoked token)402 subscription_required- active Creator/Professional/Business plan required403 tier_not_allowed- Scheduler tier cannot use Partner API500 update_failed- unexpected update failure
