---
title: "Web demo · הדגמת אתר — estimate"
method: POST
path: "/v1/effects/web-demo/estimate"
tags: ["Effects · Overlays & graphics"]
---

# Web demo · הדגמת אתר — estimate

`POST /v1/effects/web-demo/estimate`

## Request

- Base URL: `https://apihub.co.il`
- URL: `https://apihub.co.il/v1/effects/web-demo/estimate`
- Auth: HTTP bearer

Price the request without executing it. Same body as `POST /v1/effects/web-demo`.

## Request body

- object
  - `at` object: Start at a word (instead of a time)
    - `edge` 'start' | 'end', required: The moment the word starts, or the moment it ends
    - `word` string, required: The word's id (w0001…)
    - `offset_ms` number: Shift in ms, applied after the cuts (default 0)
  - `keep` object[]: Keep only these spans of the video (seconds) — every join between them is a cut a transition plays on
    - `end` number, required
    - `start` number, required
  - `trim` object: Use only this part of the video (seconds)
    - `end` number
    - `start` number
  - `start` number: seconds on the output — when it starts (default: the effect's own)
  - `words` object[]: Your own timed words (ms) instead of a transcript
    - `id` string
    - `end` number, required
    - `text` string, required
    - `start` number, required
  - `during` object: Start and end with a stretch of words (instead of a time and a duration)
    - `to` string, required: Id of the last word
    - `from` string, required: Id of the first word
    - `pad_end_ms` number: End this much later (default 0)
    - `pad_start_ms` number: Start this much earlier (default 0)
  - `output` object
    - `fit` 'crop' | 'blur' | 'pad': When the aspect ratio changes: crop the edges, blurred copy behind, or solid bars
    - `fps` number
    - `format` 'mp4' | 'webm' | 'mov' | 'gif' | 'mp3' | 'wav' | 'm4a' | 'jpg' | 'png'
    - `quality` 'draft' | 'standard' | 'high': high (default) = best picture; draft renders fastest for previews
    - `background` string: Bar colour for fit=pad
    - `resolution` '480' | '720' | '1080' | 'source': Short side in pixels (1080 = Full HD). `source` keeps the input size, max 1080
    - `aspect_ratio` 'original' | '9:16' | '16:9' | '1:1' | '4:5' | '4:3': 9:16 for Reels/TikTok/Shorts, 1:1 or 4:5 for feed, 16:9 for YouTube
  - `params` object: The effect's own settings (every field has a default)
    - `cps` number: Typing speed, letters per second
    - `url` string, uri: The page's screenshot (PNG / JPG, a full-page capture scrolls)
    - `title` string: The terminal's title
    - `layout` 'split' | 'over': split = the speaker moves to the bottom, the panel takes the top · over = the panel is drawn over the video
    - `prompt` string: What the terminal types
    - `status` string: The terminal's status line when the typing ends ("" = none)
    - `zoom_x` number: The region: 0 left … 1 right
    - `zoom_y` number: The region: 0 top … 1 bottom of the window
    - `address` string: The address typed into the browser ("" = none)
    - `focus_y` number: split: the band of the speaker's picture kept at the bottom, round this height (0 top … 1 bottom)
    - `zoom_to` number: The zoom into the region at the end (1 = none)
    - `highlight` object, nullable: After the zoom, box this area and dim the rest (its centre x, y and size w, h — % of the frame; null = none)
      - `h` number, required
      - `w` number, required
      - `x` number, required
      - `y` number, required
    - `scroll_to` number: How far down the page it whips (0 = no scroll, 1 = the bottom)
    - `panel_height` number: The panel's height, % of the frame
  - `duration` number: seconds — how long it lasts
  - `image_url` string, uri: The photo (JPG / PNG) — same as params.url
  - `video_url` string, uri: The video to put it on — leave out for the plain canvas
  - `language_code` string: Spoken language for the automatic transcript, e.g. he, en
  - `transcript_id` string: Reuse a transcript (captions effects)

## 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)
