---
title: "Control a character"
method: POST
path: "/v1/character_performance"
tags: ["Start generating"]
---

# Control a character

`POST /v1/character_performance`

This endpoint will start a new task to control a character's facial expressions and body movements using a reference video.

## Headers

- `X-Runway-Version` '2024-11-06', required

## Request body

- object
  - `seed` integer — If unspecified, a random number is chosen. Varying the seed integer is a way to get different results for the same other request parameters. Using the same seed integer for an identical request will produce similar results.
  - `character` union, required — The character to control. You can either provide a video or an image. A visually recognizable face must be visible and stay within the frame.
    - object — An image of your character. In the output, the character will use the reference video performance in its original static environment.
      - `type` 'image', required
      - `uri` union, required — A HTTPS URL, Runway or data URI containing an encoded image. See [our docs](/assets/inputs#images) on image inputs for more information.
        - string — A HTTPS URL.
        - string — A Runway upload URI. See https://docs.dev.runwayml.com/assets/uploads for more information.
        - string — A data URI containing encoded media.
    - object — A video of your character. In the output, the character will use the reference video performance in its original animated environment and some of the character's own movements.
      - `type` 'video', required
      - `uri` union, required — A HTTPS URL, Runway or data URI containing an encoded video. See [our docs](/assets/inputs#videos) on video inputs for more information.
        - string — A HTTPS URL.
        - string — A Runway upload URI. See https://docs.dev.runwayml.com/assets/uploads for more information.
        - string — A data URI containing encoded media.
  - `reference` object, required — A video of a person performing in the manner that you would like your character to perform. The video must be between 3 and 30 seconds in duration.
    - `type` 'video', required
    - `uri` union, required — A video of a person performing in the manner that you would like your character to perform. The video must be between 3 and 30 seconds in duration. See [our docs](/assets/inputs#videos) on video inputs for more information.
      - string — A HTTPS URL.
      - string — A Runway upload URI. See https://docs.dev.runwayml.com/assets/uploads for more information.
      - string — A data URI containing encoded media.
  - `bodyControl` boolean — A boolean indicating whether to enable body control. When enabled, non-facial movements and gestures will be applied to the character in addition to facial expressions.
  - `expressionIntensity` integer — An integer between 1 and 5 (inclusive). A larger value increases the intensity of the character's expression.
  - `ratio` '1280:720' | '720:1280' | '960:960' | '1104:832' | '832:1104' | '1584:672' — The resolution of the output video.
  - `contentModeration` object — Settings that affect the behavior of the content moderation system.
    - `publicFigureThreshold` 'auto' | 'low' — When set to `low`, the content moderation system will be less strict about preventing generations that include recognizable public figures.
  - `model` 'act_two', required

## Response `200`

The task that was created.

- object
  - `id` string, uuid, required — The ID of the task that was created. Use this to retrieve the task later.

## Other responses

- `429` — You have exceeded the rate limit for this endpoint.

## Changes

- **2025-12-04** `6dab1bdab5d3` — 5 info
  - the `model` request property default value `act_two` was removed
  - the `type` request property default value `image` was removed
  - the `type` request property default value `video` was removed
  - the `type` request property default value `video` was removed
  - …1 more
- **2025-12-03** `c2a88516fa0c` — 4 info
  - the `model` request property default value `act_two` was added
  - the `type` request property default value `image` was added
  - the `type` request property default value `video` was added
  - the `type` request property default value `video` was added
- **2025-12-03** `76b3962cf49e` — 4 info
  - the `model` request property default value `act_two` was removed
  - the `type` request property default value `image` was removed
  - the `type` request property default value `video` was removed
  - the `type` request property default value `video` was removed
- …earlier changes not shown

[Full history](https://skmtc.dev/runwayml/apis/runwayml-api/changes/v1/character_performance/post.md)

---

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