---
title: "Estimate Segment Video"
method: POST
path: "/generate/segment_video/estimate"
tags: ["generate"]
---

# Estimate Segment Video

`POST /generate/segment_video/estimate`

## Request

- Base URL: `https://api.framesail.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.framesail.com/generate/segment_video/estimate`
- Auth: HTTP bearer

Quote one video generation without queueing it.

Video is the only job whose price varies with its subject — the clip has to
cover the segment's narration, and a 15s segment costs three times a 5s one.
A flat per-model figure would leave the Generate button enabled on a job the
server then refuses, so the drawer gates on this instead. `credits` is
exactly what queue_ai_job checks for the same (subject, model, settings).

Pure read: no ai_jobs row, no provider call, no credits touched.

## Request body

- SegmentVideoEstimateRequest
  - `subject_id` string, required
  - `model` string, required
  - `settings` object

## Response `200`

Successful Response

- SegmentVideoEstimateResponse
  - `credits` integer, required
  - `byok` boolean, required
  - `clip_seconds` integer, required
  - `segment_seconds` number, required

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/framesail/apis/framesail-api.md) · [All operations](https://skmtc.dev/framesail/apis/framesail-api/llms.txt) · [OpenAPI document](https://skmtc.dev/framesail/apis/framesail-api/revisions/12602eae0820?raw)
