> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tavus.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Create Replica

> Creates a new replica from a training video or image URL for use in conversations—see [Which training path?](/sections/replica/which-training-path) for preparation, consent, and media requirements.

<Info>
  For AI agents, use `https://docs.tavus.io/openapi.yaml` for the full HTTP API contract.
</Info>


## OpenAPI

````yaml post /v2/replicas
openapi: 3.0.3
info:
  title: Tavus Developer API Collection
  version: 1.0.0
  contact: {}
servers:
  - url: https://tavusapi.com
security:
  - apiKey: []
tags:
  - name: Videos
  - name: Replicas
  - name: Voices
  - name: Conversations
  - name: Personas
  - name: Pronunciation Dictionaries
  - name: Replacements
  - name: Transcriptions
  - name: Documents
paths:
  /v2/replicas:
    post:
      tags:
        - Replicas
      summary: Create Replica
      description: >-
        Creates a new replica from a training video or image URL for use in
        conversations—see [Which training
        path?](/sections/replica/which-training-path) for preparation, consent,
        and media requirements.
      operationId: createReplica
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                consent_video_url:
                  type: string
                  description: >
                    Optional direct link to a **separate** video that contains
                    only the consent statement when it is not spoken at the
                    start of `train_video_url`.


                    **Required** when your flow uses a standalone consent
                    recording alongside `train_video_url` for likeness-based
                    training from video. See [Training from a
                    video](/sections/replica/train-with-a-video) and [consent
                    statement
                    requirements](/sections/troubleshooting/consent-statement)
                    for exact wording and troubleshooting.


                    If omitted, the opening of `train_video_url` must include
                    the consent statement instead (see `train_video_url`).
                  example: >-
                    https://my-example-bucket.s3.us-east-1.amazonaws.com/your-consent-video.mp4
                train_video_url:
                  type: string
                  description: >
                    A direct download link such as a **presigned S3 URL** or
                    other publicly reachable file used for video-based replica
                    training. Do not send `train_image_url` in the same request.


                    The file must meet [training video
                    requirements](/sections/troubleshooting/training-video-size).


                    When you **do not** send `consent_video_url`, this training
                    clip **must** open with the following statement (verbatim),
                    or training will fail:


                    > I, [FULL NAME], am currently speaking and consent Tavus to
                    create an AI clone of me by using the audio and video
                    samples I provide. I understand that this AI clone can be
                    used to create videos that look and sound like me.


                    See [consent statement
                    requirements](/sections/troubleshooting/consent-statement)
                    for formatting tips and troubleshooting.
                  example: >-
                    https://my-example-bucket.s3.us-east-1.amazonaws.com/your-train-video.mp4
                train_image_url:
                  type: string
                  description: >-
                    A direct link to a publicly accessible image used for
                    image-to-replica training. Requires `voice_name`. Do not
                    send `train_video_url` in the same request. See [Training
                    from an image](/sections/replica/train-with-an-image) for
                    image training, voice selection, and consent.
                  example: >-
                    https://my-example-bucket.s3.us-east-1.amazonaws.com/your-train-image.png
                voice_name:
                  type: string
                  description: >-
                    Required when `train_image_url` is set. Slug that selects
                    the voice from an existing Tavus stock replica
                    (case-insensitive, e.g. `anna`). If supplied with
                    `train_video_url`, the name is still validated when present.
                    Use [List Voices](/api-reference/voices/list-voices) to
                    discover valid slugs; see also [example `voice_name`
                    values](/sections/replica/train-with-an-image#example-voice-name-table).
                  example: anna
                auto_fix_training_image:
                  type: boolean
                  description: >-
                    When set to `true`, Tavus's AI Image Fixer instantly fixes
                    any uploaded image to fit our [image
                    requirements](/sections/replica/train-with-an-image#image-requirements),
                    eliminating the need for editing or recapturing photos. Only
                    applies to image-based training (`train_image_url`).
                  example: true
                callback_url:
                  type: string
                  description: >-
                    A url that will receive a callback on completion of replica
                    training or on error.
                  example: https://yourwebsite.com/webhook
                replica_name:
                  type: string
                  description: A name for the replica.
                  example: Rio
                model_name:
                  type: string
                  description: >-
                    The Phoenix model version used to train the replica.
                    Defaults to `phoenix-4`; set to `phoenix-3` for the older
                    model.
                  example: phoenix-4
                properties:
                  type: object
                  properties:
                    background_green_screen:
                      type: boolean
                      description: >-
                        If set to true, the replica will have a green screen
                        background.
                      example: false
            examples:
              Video with consent videos:
                value:
                  callback_url: https://yourwebsite.com/webhook
                  replica_name: Rio
                  train_video_url: >-
                    https://my-example-bucket.s3.us-east-1.amazonaws.com/your-train-video.mp4
                  consent_video_url: >-
                    https://my-example-bucket.s3.us-east-1.amazonaws.com/your-consent-video.mp4
              Non-Human Replica:
                value:
                  callback_url: https://yourwebsite.com/webhook
                  replica_name: AI
                  train_video_url: >-
                    https://my-example-bucket.s3.us-east-1.amazonaws.com/your-train-video.mp4
              Older Model Replica:
                value:
                  model_name: phoenix-3
                  callback_url: https://yourwebsite.com/webhook
                  replica_name: My phoenix-3 Replica
                  train_video_url: >-
                    https://my-example-bucket.s3.us-east-1.amazonaws.com/your-train-video.mp4
                  consent_video_url: >-
                    https://my-example-bucket.s3.us-east-1.amazonaws.com/your-consent-video.mp4
              Image to Replica:
                value:
                  callback_url: https://yourwebsite.com/webhook
                  replica_name: Image Replica
                  train_image_url: >-
                    https://my-example-bucket.s3.us-east-1.amazonaws.com/your-train-image.png
                  voice_name: anna
                  auto_fix_training_image: true
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  replica_id:
                    type: string
                    example: r90bbd427f71
                    description: A unique identifier for the replica.
                  status:
                    type: string
                    example: started
                    description: >-
                      The status of the replica. Possible values: `started`,
                      `completed`, `error`.
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: The error message.
                    example: >-
                      Either train_video_url or train_image_url must be
                      provided.
        '401':
          description: UNAUTHORIZED
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: The error message.
                    example: Invalid access token
      security:
        - apiKey: []
components:
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: x-api-key

````