---
title: "Price a swap video"
method: GET
path: "/personas/swap/quote"
tags: ["Personas"]
---

# Price a swap video

`GET /personas/swap/quote`

## Request

- Base URL: `https://api.cut.pro/api/v1`
- URL: `https://api.cut.pro/api/v1/personas/swap/quote`
- Auth: API key in header `X-Api-Key`

Measures a library video and returns what swapping its person for a persona costs at the given `quality`. Nothing is charged. Pass the returned `credits` to `POST /personas/{id}/videos` with `type: swap` and the same `quality`, which refuses with `PRICE_CHANGED` if the price is different. `replace` does not change the price, except `none` (needs a `style`), which pays no scene for the person. Besides the rate per second, the price can include a small amount for each scene of the video where the person appears, so the person stays the same across cuts, and a `style` adds that same amount again per scene.

`VIDEO_DURATION_OUT_OF_RANGE` and `VIDEO_UNSUPPORTED` (format, size or resolution) follow `video_limits` of `GET /personas/catalog` for that `quality`; a video refused at `standard` may still fit `high`.

## Query parameters

- `media_id` string, required: The `media_id` from `POST /personas/sources/upload`, or any video already in the library.
- `quality` 'economy' | 'standard' | 'high': `economy` is `standard` at a lower resolution, upscaled to 1080p, and the cheapest. `standard` follows the persona's traits, up to `video_limits.standard.max_seconds`. `high` also follows the persona's photos, keeps the face closest to them and takes longer videos, at a higher price; prefer it for personas made from face photos.
- `replace` 'head' | 'person' | 'none': What of the video's main person becomes the persona: `head` changes only the head and hair and keeps the body and outfit, `person` replaces the whole person, body and outfit included, `none` replaces nobody and only applies the `style`, which then is required.
- `style` 'cel' | 'felt' | 'yarn' | 'sketch' | 'toy' | 'grotesque' | 'painterly' | 'graphic' | 'gouache' | 'sculptural' | 'lowpoly' | 'toon' | 'cinematic' | 'flat' | 'neon' | 'editorial' | 'comic' | 'pixel' | 'plush' | 'embroidery' | 'mosaic' | 'stainedglass' | 'chalk' | 'silent' | 'thermal' | 'hologram': Redraws the whole video, people and scene, in an animation, illustration, material or camera look while keeping its camera and motion, for example `cel` (hand-painted 2D animation), `felt` (felt puppet stop motion), `toy` (rounded toy 3D), `pixel` (pixel art), `stainedglass` (stained glass) or `silent` (1920s silent film). The whole person is replaced, whatever `replace` says, unless it is `none`. Not available at `quality: high` past `video_mid_max_seconds`.

## Response `200`

Response for status 200

- object
  - `media_id` string, required
  - `quality` 'economy' | 'standard' | 'high', required: `economy` is `standard` at a lower resolution, upscaled to 1080p, and the cheapest. `standard` follows the persona's traits, up to `video_limits.standard.max_seconds`. `high` also follows the persona's photos, keeps the face closest to them and takes longer videos, at a higher price; prefer it for personas made from face photos.
  - `replace` 'head' | 'person' | 'none', required: What of the video's main person becomes the persona: `head` changes only the head and hair and keeps the body and outfit, `person` replaces the whole person, body and outfit included, `none` replaces nobody and only applies the `style`, which then is required.
  - `style` 'cel' | 'felt' | 'yarn' | 'sketch' | 'toy' | 'grotesque' | 'painterly' | 'graphic' | 'gouache' | 'sculptural' | 'lowpoly' | 'toon' | 'cinematic' | 'flat' | 'neon' | 'editorial' | 'comic' | 'pixel' | 'plush' | 'embroidery' | 'mosaic' | 'stainedglass' | 'chalk' | 'silent' | 'thermal' | 'hologram', nullable, required: Redraws the whole video, people and scene, in an animation, illustration, material or camera look while keeping its camera and motion, for example `cel` (hand-painted 2D animation), `felt` (felt puppet stop motion), `toy` (rounded toy 3D), `pixel` (pixel art), `stainedglass` (stained glass) or `silent` (1920s silent film). The whole person is replaced, whatever `replace` says, unless it is `none`. Not available at `quality: high` past `video_mid_max_seconds`.
  - `seconds` number, required: Measured duration of the video.
  - `credits` number, required: Price of the persona video, in credits.

## Other responses

- `400`: Response for status 400
- `404`: Response for status 404
- `502`: Response for status 502

---

[API](https://skmtc.dev/cut/apis/cutpro-api.md) · [All operations](https://skmtc.dev/cut/apis/cutpro-api/llms.txt) · [OpenAPI document](https://skmtc.dev/cut/apis/cutpro-api/revisions/89d0bafe529c?raw)
