---
title: "Make video"
method: POST
path: "/api/v1/tools/make_video"
---

# Make video

`POST /api/v1/tools/make_video`

## Request

- Base URL: `https://www.trezalabs.com`
- URL: `https://www.trezalabs.com/api/v1/tools/make_video`
- Auth: HTTP bearer

The quickest way to make a video from a description: no template, node types or graph to wire. Picks a video model that renders the shape and length asked for (Veo 3.1 Lite unless a model is named or it cannot), prepares the render, and answers like estimate_run_cost: the price, whether the balance covers it, and a quoteId. It does NOT start the render: tell the person what it makes and the price, and once they accept, call run_pipeline with the returned pipelineId and quoteId (no inputs; the prompt is saved). Clients that show panels put the price in front of them with a Start render button. Use 9:16 for Shorts, Reels and TikTok. With maxPriceUsd, a video over it is refused with its price rather than shortened. For anything beyond one generated clip (clipping a long video, music, narration, editing a file) use a template, assemble_video or edit_asset instead. Needs the pipelines:write scope; the run needs pipelines:run.

## Request body

- object
  - `prompt` string, required: What the video shows, in the person's words or a fuller description of them.
  - `durationSec` number: Length in seconds. A model that renders fixed takes uses the next one up (at most 2s longer), and says so. Defaults to 4.
  - `aspectRatio` '16:9' | '9:16' | '1:1': "9:16" vertical (Shorts, Reels, TikTok), "16:9" horizontal (the default), "1:1" square.
  - `withAudio` boolean: Generate sound with the video where the model can. Defaults to true.
  - `maxPriceUsd` number: The most the person will pay for this render, if they said.
  - `model` string: A video model id from get_node_type video-gen, only when the person asked for a specific model.
  - `name` string: What to call the render.

## Response `200`

The tool's result.

- object

## Other responses

- `400`: The arguments were refused. `error` says why.
- `401`: No API key, or one that is not valid.
- `402`: The credit balance does not cover this run.
- `403`: The API key lacks a permission this tool needs.
- `404`: No such tool, or the pipeline, run or asset is not on this account.
- `429`: Too many runs started or in progress. Wait, then try again.

---

[API](https://skmtc.dev/trezalabs/apis/treza-pipelines-api.md) · [All operations](https://skmtc.dev/trezalabs/apis/treza-pipelines-api/llms.txt) · [OpenAPI document](https://skmtc.dev/trezalabs/apis/treza-pipelines-api/revisions/a76574c1731b?raw)
