> ## 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 Face

> Creates a new face from training video or image URL for use in conversations. See [Which training path?](/sections/faces/which-training-path) for footage requirements and [Face overview](/sections/faces/overview#platform-policies) for rights and permissions.

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


## OpenAPI

````yaml post /v2/faces
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: Faces
  - name: Voices
  - name: Conversations
  - name: Deployments
  - name: PALs
  - name: Tools
  - name: PAL Tools
  - name: Pronunciation Dictionaries
  - name: Replacements
  - name: Transcriptions
  - name: Documents
paths:
  /v2/faces:
    post:
      tags:
        - Faces
      summary: Create Face
      description: >-
        Creates a new face from training video or image URL for use in
        conversations. See [Which training
        path?](/sections/faces/which-training-path) for footage requirements and
        [Face overview](/sections/faces/overview#platform-policies) for rights
        and permissions.
      operationId: createFace
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                consent_video_url:
                  deprecated: true
                  x-mint:
                    groups:
                      - legacy
                  type: string
                  description: >
                    **Legacy.** Optional URL to a separate consent recording
                    used with older video-training flows. New integrations
                    should not send this field. Ensure you have the necessary
                    rights and permissions to use any training footage - see
                    [Platform
                    Policies](/sections/faces/overview#platform-policies).
                  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 face
                    training. Do not send `train_image_url` in the same request.


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


                    You must have the necessary rights and permissions to use
                    the likeness, voice, and footage you submit. See [Platform
                    Policies](/sections/faces/overview#platform-policies).
                  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-face training. Requires `voice_name`. Do not send
                    `train_video_url` in the same request. You must have the
                    necessary rights and permissions to use the likeness and
                    image. See [Training from an
                    image](/sections/faces/train-with-an-image) and [Platform
                    Policies](/sections/faces/overview#platform-policies).
                  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 face
                    (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/faces/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/faces/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 face
                    training or on error.
                  example: https://yourwebsite.com/webhook
                face_name:
                  type: string
                  description: A name for the face.
                  example: Rio
                model_name:
                  type: string
                  description: >-
                    The Phoenix model version used to train the face. 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 face will have a green screen
                        background.
                      example: false
            examples:
              Video training:
                value:
                  callback_url: https://yourwebsite.com/webhook
                  face_name: Rio
                  train_video_url: >-
                    https://my-example-bucket.s3.us-east-1.amazonaws.com/your-train-video.mp4
              Non-Human Face:
                value:
                  callback_url: https://yourwebsite.com/webhook
                  face_name: AI
                  train_video_url: >-
                    https://my-example-bucket.s3.us-east-1.amazonaws.com/your-train-video.mp4
              Older Model Face:
                value:
                  model_name: phoenix-3
                  callback_url: https://yourwebsite.com/webhook
                  face_name: My phoenix-3 Face
                  train_video_url: >-
                    https://my-example-bucket.s3.us-east-1.amazonaws.com/your-train-video.mp4
              Image to Face:
                value:
                  callback_url: https://yourwebsite.com/webhook
                  face_name: Image Face
                  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:
                  face_id:
                    type: string
                    example: r90bbd427f71
                    description: A unique identifier for the face.
                  status:
                    type: string
                    example: started
                    description: >-
                      The status of the face. 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

````