---
title: "Plan a creator-style reel (title + subtitles, labels, do/don't board, numbered points, product review) — estimate"
method: POST
path: "/v1/studio/reel-style/estimate"
tags: ["Edit"]
---

# Plan a creator-style reel (title + subtitles, labels, do/don't board, numbered points, product review) — estimate

`POST /v1/studio/reel-style/estimate`

## Request

- Base URL: `https://apihub.co.il`
- URL: `https://apihub.co.il/v1/studio/reel-style/estimate`
- Auth: HTTP bearer

Price the request without executing it. Same body as `POST /v1/studio/reel-style`.

## Request body

- object
  - `cta` object, nullable: The first word of the closing call to action → his outro (one word at a time + a message card)
    - `word` integer, required
  - `cut` union: The silence cut; false keeps every pause
    - false
    - object
      - `from` 'audio' | 'words': audio = the render finds the pauses in the sound and cuts them; every element rides along on its words. words = the plan cuts from the word timings (only with real gaps) and sends `keep` spans
      - `padding_ms` number
      - `min_pause_ms` number
  - `card` object, nullable: review: the product card — a grey card, the product photo on top, the qualities ticked one by one as he says them
    - `items` object[], required: The product's qualities as he names them (2–6 words each)
      - `to` integer, required: last word (index)
      - `from` integer, required: first word (index)
  - `face` object: Where the face is in the 9:16 frame: x = its centre (0…1), top / bottom = % of the height. The text stays off it
    - `x` number
    - `top` number
    - `bottom` number
  - `hand` boolean: labels: hand-written labels (Amatic SC — Hebrew, Latin and Cyrillic), each a little tilted, and tilted stickers — a scrapbook
  - `hook` object: review: the opening — every part appears on its own words
    - `line` object, required: The hook phrase (2–5 words): huge white italic, typed in
      - `to` integer, required: last word (index)
      - `from` integer, required: first word (index)
    - `punch` object, nullable: The twist right after it (1–3 words: a question, a verdict): huge red italic after a whip
      - `to` integer, required: last word (index)
      - `from` integer, required: first word (index)
    - `number` object, nullable: A price or number said in the opening: a big green number that counts up
      - `to` integer, required: last word (index)
      - `from` integer, required: first word (index)
      - `text` string: How the number is shown ("₪5,500") — the digits he says
  - `seed` integer
  - `broll` object[]: review: where each clip covers the speaker (a span of words)
    - `to` integer, required
    - `clip` integer, required: Index into `clips`
    - `from` integer, required
  - `clips` object[]: review: your own b-roll of the product (clips or photos) — the picker places them
    - `url` string, uri, required
    - `type` 'video' | 'image': Detected from the file name when omitted
    - `about` string, required: What it shows, for the picker
  - `icons` object
    - `burst` string, uri: The starburst behind a chapter number
    - `check` string, uri: ✅ for the board's header
    - `cross` string, uri: ❌ for a 'don't' column
  - `lists` object[]: board: what the speaker enumerates — each item a span of words, filled in when it is said
    - `items` object[], required
      - `to` integer, required
      - `from` integer, required
      - `column` union
        - 0
        - 1
    - `header` string: The list's name (column 0)
    - `header2` string: Column 1's name — two columns only
  - `music` object
    - `url` string, uri, required
    - `volume` number: Omit: ≈ 13 dB under the measured voice
  - `speed` number
  - `style` 'headline' | 'labels' | 'board' | 'chapters' | 'review', required: headline · labels · board · chapters — see /skills/full-<style>.md
  - `title` object: The opening title, written from what is said
    - `sub` string
    - `tag` string
    - `text` string, required
    - `until_word` integer: The title stays until this word is said (default: the end of the first sentence, 2.2–5.5 s)
  - `words` object[]: Or the video's timed words yourself (ms, the video's clock)
    - `id` string: Stable id (w0001…); given in order when missing
    - `end` number, required: ms
    - `text` string, required
    - `start` number, required: ms
    - `spoken` string
    - `speaker` string, nullable
  - `coupon` object, nullable: review: a discount code or a keyword to write — a dark card with the code in green
    - `code` string, required
    - `word` integer, required: The word where the code is said
    - `label` string: The line over it ("קוד הנחה:")
  - `sounds` object: Two effects, each reused (review: five, the free CC0 kit when omitted)
    - `pop` string, uri
    - `cash` string, uri: review: the price counts up
    - `ding` string, uri: review: a tick on the card
    - `glitch` string, uri: review: the card arrives
    - `whoosh` string, uri
  - `source` object: The video's length and frame rate. The endpoint fills it (a probe of the video)
    - `fps` number, required
    - `duration` number, required: seconds
  - `palette` 'orange' | 'blue' | 'purple' | 'yellow' | 'paper': labels: the label colour
  - `product` object: review: the product
    - `name` string
    - `aspect` '4:3' | '1:1' | '3:4' | '16:9' | '9:16' | '4:5': The photo's shape (it is cropped to it; default 4:3)
    - `image_url` string, uri: A photo of the product (JPG / PNG) — the card and the spotlight
  - `chapters` object[]: chapters: where each point starts and its name
    - `word` integer, required
    - `title` string, required
  - `emphasis` object[]: headline / labels: the beats in big type (1–3 words each)
    - `to` integer, required: last word (index)
    - `from` integer, required: first word (index)
  - `stickers` object[]
    - `url` string, uri: A transparent PNG — POST /v1/stock/icon
    - `icon` string: The picker's icon name (kept for your records; `url` is what is drawn)
    - `size` number
    - `word` integer, required
  - `takeaway` object, nullable: board: the line the video builds to — one big peach word and the rest under it
    - `to` integer, required: last word (index)
    - `from` integer, required: first word (index)
  - `spotlight` object, nullable: review: the product in a frame over the blurred speaker while he names it (needs `product.image_url`)
    - `to` integer, required: last word (index)
    - `from` integer, required: first word (index)
    - `label` string: The blue label over the photo (default: the span's words)
  - `video_url` string, uri, required: The source video (a public link or an upload's url)
  - `resolution` '720' | '1080'
  - `voice_lufs` number
  - `corrections` object[]: Fix a misheard word by its index ("" removes a word that was not said)
    - `text` string, required
    - `word` integer, required
  - `cut_audio_url` string, uri: A WAV of the voice (POST /v1/studio/convert with `output.format: "wav"`, or a sound-only pass of POST /v1/studio/remove-silence): the voice is measured there so the music sits ≈ 13 dB under it
  - `transcript_id` string: The transcript of the video itself (POST /v1/speech/transcripts on its url): every element is anchored to its words, and the render cuts the pauses around them

## Response `200`

Estimate

- Estimate
  - `operation` string
  - `estimated_credits` number
  - `credits_to_reserve` number
  - `estimated_usage` object
  - `note` string, nullable
  - `balance` object
    - `available` number
  - `sufficient` boolean

---

[API](https://skmtc.dev/apihub/apis/apihub-one-api-for-chat-image-video-ai.md) · [All operations](https://skmtc.dev/apihub/apis/apihub-one-api-for-chat-image-video-ai/llms.txt) · [OpenAPI document](https://skmtc.dev/apihub/apis/apihub-one-api-for-chat-image-video-ai/revisions/a8caa42835ce?raw)
