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

# Quickstart

> Learn how to quickly generate high-quality videos using your personalized replica.

## Prerequisites

Before starting, ensure you have:

* A [replica](/sections/replica/overview) to be used for the video.

- Script:
  * **Text** format.
  * **Audio**: `.mp3` or `.wav` format.

## Generate a video

<Steps>
  <Step title="Step 1: Generate Your Video">
    Use the following request to generate a video:

    <Note>
      You can also customize the video background to suit your needs. See the [Background Customizations](/sections/video/background-customizations) article for more details.
    </Note>

    <CodeGroup>
      ```sh Generate from Text theme={null}
      curl --request POST \
        --url https://tavusapi.com/v2/videos \
        --header 'Content-Type: application/json' \
        --header 'x-api-key: <api-key>' \
        --data '{
        "replica_id": "<replica_id>",
        "script": "<text_script>",
        "callback_url": ""
      }'
      ```

      ```sh Generate from Audio File theme={null}
      curl --request POST \
        --url https://tavusapi.com/v2/videos \
        --header 'Content-Type: application/json' \
        --header 'x-api-key: <api-key>' \
        --data '{
        "replica_id": "<replica_id>",
        "audio_url": "<audio_url>",
        "callback_url": ""
      }'
      ```
    </CodeGroup>

    <Note>
      * Replace `<api_key>` with your actual API key. You can generate one in the <a href="https://platform.tavus.io/api-keys" target="_blank">Developer Portal</a>.
      * Replace `<replica_id>` with the Replica ID you want to use.
      * Replace `<text_script>` with your video script.
      * Replace `<audio_url>` with the downloadable URL of your audio script.
    </Note>
  </Step>

  <Step title="Step 2: Check Video Generation Status">
    You can monitor the training status using the <a href="/api-reference/video-request/get-video" target="_blank" rel="noopener noreferrer">Get Video</a> endpoint:

    ```sh  theme={null}
    curl --request GET \
      --url https://tavusapi.com/v2/videos/<video_id> \
      --header 'x-api-key: <api-key>'
    ```

    <Note>
      Replace `<api_key>` with your actual API key.
    </Note>

    If the video is still being generated, the response will include a `status` field set to `generating`.

    <CodeGroup>
      ```json Generate from Text theme={null}
      {
        "video_id": "<video_id>",
        "video_name": "replica_id: <replica_id> - June 24, 2025 - video: <video_id>",
        "status": "generating",
        "data": {
          "script": "<text_script>",
          "start_with_wave": true
        },
        "replica_id": "<replica_id>",
        "download_url": null,
        "hosted_url": "<hosted_url>",
        "stream_url": null,
        "status_details": "",
        "created_at": "Tue, 24 Jun 2025 07:01:57 GMT",
        "updated_at": "Tue, 24 Jun 2025 07:02:25 GMT",
        "generation_progress": "37/100"
      }
      ```

      ```json Generate from Audio File theme={null}
      {
        "video_id": "<video_id>",
        "video_name": "replica_id: <replica_id> - June 24, 2025 - video: <video_id>",
        "status": "generating",
        "data": {
          "audio_url": "<audio_url>",
          "start_with_wave": true
        },
        "replica_id": "<replica_id>",
        "download_url": null,
        "hosted_url": "<hosted_url>",
        "stream_url": null,
        "status_details": "",
        "created_at": "Tue, 24 Jun 2025 07:01:57 GMT",
        "updated_at": "Tue, 24 Jun 2025 07:02:25 GMT",
        "generation_progress": "37/100"
      }
      ```
    </CodeGroup>

    Once the video is fully generated, the response will return a `status` field set to `ready`.

    <CodeGroup>
      ```json Generate from Text theme={null}
      {
        "video_id": "<video_id>",
        "video_name": "replica_id: <replica_id> - June 24, 2025 - video: <video_id>",
        "status": "ready",
        "data": {
          "script": "<text_script>",
          "start_with_wave": true
        },
        "replica_id": "<replica_id>",
        "download_url": "<download_url>",
        "hosted_url": "<hosted_url>",
        "stream_url": "<stream_url>",
        "status_details": "Your request has processed successfully!",
        "created_at": "Tue, 24 Jun 2025 07:01:57 GMT",
        "updated_at": "Tue, 24 Jun 2025 07:04:56 GMT",
        "generation_progress": "100/100"
      }
      ```

      ```json Generate from Audio File theme={null}
      {
        "video_id": "<video_id>",
        "video_name": "replica_id: <replica_id> - June 24, 2025 - video: <video_id>",
        "status": "ready",
        "data": {
          "audio_url": "<audio_url>",
          "start_with_wave": true
        },
        "replica_id": "<replica_id>",
        "download_url": "<download_url>",
        "hosted_url": "<hosted_url>",
        "stream_url": "<stream_url>",
        "status_details": "Your request has processed successfully!",
        "created_at": "Tue, 24 Jun 2025 07:01:57 GMT",
        "updated_at": "Tue, 24 Jun 2025 07:04:56 GMT",
        "generation_progress": "100/100"
      }
      ```
    </CodeGroup>
  </Step>

  <Step title="Step 3: Accessing Your Video">
    Once generated, videos can be:

    * **Streamed or Downloaded**: Generated video is hosted on a shareable URL. If a callback is set, a download link is returned when the video generated.
    * **Embedded or Shared**: Use the provided links to distribute your videos across social media, internal tools, or customer platforms.
  </Step>
</Steps>


Built with [Mintlify](https://mintlify.com).