---
title: "Reframe a video to a new resolution"
method: POST
path: "/v2/video-to-video-reframe"
tags: ["asyncVideoGeneration"]
---

# Reframe a video to a new resolution

`POST /v2/video-to-video-reframe`

Reframe a video to a new resolution. The model fills in the missing areas with generated content that matches the original. On completion, the result contains `video_url`, the source video reframed to the requested resolution.

Responds immediately with the job `id` and `created_at` timestamp. Poll `GET /v2/video-to-video-reframe/{id}` until the status is `completed`.

Billed per second of input video, by output resolution. See [Pricing](/pricing).

## Headers

- `Authorization` string, required

## Request body

- VideoToVideoReframeRequest
  - `video_uri` string, required — Input video in HTTPS URL or base64 data URI format. See [Input Formats](/input-formats#video-input) for supported formats and codecs. Max 60 seconds and 1800 frames (e.g. 60s at 30fps, or 30s at 60fps).
  - `model` 'ltx-2-3-pro', required — Model used for reframing.
  - `resolution` '720x720' | '1080x1080' | '720x900' | '1080x1350' | '900x720' | '1350x1080' | '720x1280' | '1080x1920' | '1280x720' | '1920x1080', required — Target output resolution. The source video is extended to fill this frame. Pass one of the values below; each maps to an aspect ratio: | Aspect ratio | Resolutions | | --- | --- | | 1:1 (square) | `720x720`, `1080x1080` | | 4:5 (portrait) | `720x900`, `1080x1350` | | 5:4 (landscape) | `900x720`, `1350x1080` | | 9:16 (portrait) | `720x1280`, `1080x1920` | | 16:9 (landscape) | `1280x720`, `1920x1080` |

## Response `202`

Job submitted successfully

- V2JobCreatedResponse — Response returned when a V2 async job is successfully submitted.
  - `id` string, required — Unique job identifier. Use this to poll for status.
  - `created_at` string, date-time, required — ISO 8601 timestamp of when the job was created.

## Other responses

- `400` — The request is invalid or malformed
- `401` — Authentication failed
- `402` — Insufficient credits
- `422` — Content rejected by safety filters
- `429` — Concurrency or queue limit exceeded
- `500` — An unexpected error occurred
- `503` — Service temporarily unavailable

---

[API](https://skmtc.dev/ltx/apis/api-reference.md) · [All operations](https://skmtc.dev/ltx/apis/api-reference/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/ltx/api-reference/revisions/6ad7c87b252c/schema)
