---
title: "Write a TikTok/Instagram-style slideshow: hook, per-slide copy, caption, and hashtags, in any supported language"
method: POST
path: "/api/mcp/tools/generate_slideshow"
tags: ["tools"]
---

# Write a TikTok/Instagram-style slideshow: hook, per-slide copy, caption, and hashtags, in any supported language

`POST /api/mcp/tools/generate_slideshow`

## Request

- Base URL: `https://finestructure.ai`
- URL: `https://finestructure.ai/api/mcp/tools/generate_slideshow`
- Auth: HTTP bearer

Write a TikTok/Instagram-style slideshow: hook, per-slide copy, caption, and hashtags, in any supported language. Costs 1 platform credit and returns the script for review. Set render_images=true to start image rendering right away (1 extra credit per slide), then poll get_slideshow until status is 'ready'. Pass slide_images to composite the slides on the account's own photos (Instagram carousel mode) and output_format for 9:16, 4:5, or 1:1 geometry. Call list_media_capabilities for the valid style, template, and collection ids.

## Request body

- object
  - `goal` string, required: What the slideshow should achieve or teach.
  - `language` string: ISO code such as 'en' or 'he'. Defaults to 'en'.
  - `content_style` string: Copy archetype, e.g. x_ways, storytelling, countdown_ranking.
  - `visual_style` string: Visual look, e.g. bold_gradient, tiktok_native_photo.
  - `template` string: Built-in template id whose voice spec dominates the output.
  - `slide_count` integer: Fixed number of slides. Omit for the style's natural range.
  - `narrative_device` string: Framing device, e.g. metaphor or famous_quote.
  - `x_ways_substyle` string: How numbered ways are written (x_ways content style only).
  - `authentic_mode` boolean: Lowercase, unpolished 'real person' voice.
  - `with_graphics` boolean: Rich visuals vs clean text-only slides. Default true.
  - `enhanced` boolean: Use the higher-quality (more expensive) image model.
  - `text_align` string: left, right, or center.
  - `accent_color` string: Hex accent for the chip text style.
  - `collection` string: Saved photo collection id to pull slide photos from.
  - `output_format` 'tiktok' | 'ig_portrait' | 'ig_square': Slide geometry: tiktok 9:16 (default), ig_portrait 4:5 Instagram carousel, ig_square 1:1.
  - `slide_images` string[]: Up to 10 of the account's own photos, in slide order, each a data:image/... URL or public https URL. When present, the slides are composited on these exact photos: one slide per image, no CTA slide appended.
  - `slide_texts` string[]: Per-slide overlay text in slide order, up to 300 chars each. Kept verbatim; leave an entry empty (or omit the array) to have the AI write it.
  - `cta_url` string: Link promoted on the final slide. Omit for pure-value content.
  - `cta_platforms` string[]: What the CTA actually offers.
  - `sales_bridge` boolean: Add pre-sale bridge slides before the offer.
  - `series_part` integer: Part number for a recurring series.
  - `voice_spec` string: A reference voice spec to reproduce exactly.
  - `render_images` boolean: Start rendering images immediately after the script. Default false (review first).

## Response `200`

Tool executed successfully

- ToolResult
  - `ok` boolean, required
  - `tool` string, required
  - `result` object, required

## Other responses

- `400`: Invalid arguments for this tool
- `401`: Missing or invalid bearer token
- `402`: Not enough credits on the account
- `403`: Token scope does not permit this tool
- `404`: Unknown tool name
- `429`: Rate limit exceeded, retry after the indicated delay
- `500`: Internal error while executing the tool

---

[API](https://skmtc.dev/finestructure/apis/fine-structure-api.md) · [All operations](https://skmtc.dev/finestructure/apis/fine-structure-api/llms.txt) · [OpenAPI document](https://skmtc.dev/finestructure/apis/fine-structure-api/revisions/02c50ed5fd70?raw)
