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

# Wan 3.0 Text to Video API

> Generate videos from text prompts with Alibaba Wan 3.0.

<div className="models-color-scope" aria-hidden="true" />

<div className="model-workflow-tabs" aria-label="Wan 3.0 endpoints">
  <a className="model-workflow-tab is-active" href="/docs/models/wan-3/text-to-video">Text to video</a>
  <a className="model-workflow-tab" href="/docs/models/wan-3/image-to-video">Image to video</a>
  <a className="model-workflow-tab" href="/docs/models/wan-3/reference-to-video">References</a>
</div>

**Endpoint:** `POST https://api.higgsfield.ai/alibaba/wan-3.0/text-to-video`

**Endpoint ID:** `alibaba/wan-3.0/text-to-video`

<a className="model-playground-card" href="https://console.higgsfield.ai/models/alibaba%2Fwan-3.0%2Ftext-to-video/playground" target="_blank" rel="noreferrer">
  <span className="model-playground-icon">▶</span>
  <span className="model-playground-copy"><span className="model-playground-title">Try Wan 3.0 Text to Video</span><span>Open this endpoint in the Higgsfield API Playground.</span></span>
  <span className="model-card-arrow">↗</span>
</a>

## Quick Start

<CodeGroup>
  ```python Python theme={"dark"}
  import higgsfield_client

  result = higgsfield_client.subscribe(
      "alibaba/wan-3.0/text-to-video",
      arguments={
          "prompt": "A paper boat crosses a rain-soaked miniature city at night",
          "resolution": "1080p",
          "aspect_ratio": "16:9",
          "duration": 8,
          "generate_audio": True,
      },
  )

  print(result["video"]["url"])
  ```

  ```typescript TypeScript theme={"dark"}
  import { config, higgsfield } from "@higgsfield/client/v2";

  config({ credentials: process.env.HF_CREDENTIALS });

  const result = await higgsfield.subscribe(
    "alibaba/wan-3.0/text-to-video",
    {
      input: {
        prompt: "A paper boat crosses a rain-soaked miniature city at night",
        resolution: "1080p",
        aspect_ratio: "16:9",
        duration: 8,
        generate_audio: true,
      },
      withPolling: true,
    },
  );

  if (result.isCompleted) console.log(result.jobs[0].results?.raw.url);
  ```

  ```bash cURL theme={"dark"}
  curl --request POST \
    --url https://api.higgsfield.ai/alibaba/wan-3.0/text-to-video \
    --header "Authorization: Key ${HF_API_KEY_ID}:${HF_API_KEY_SECRET}" \
    --header "Content-Type: application/json" \
    --data '{
      "prompt": "A paper boat crosses a rain-soaked miniature city at night",
      "resolution": "1080p",
      "aspect_ratio": "16:9",
      "duration": 8,
      "generate_audio": true
    }'
  ```
</CodeGroup>

## Input Schema

<ParamField body="prompt" type="string" required>
  Text instructions for the video. You can describe multiple shots and synchronized dialogue, ambience, or music.
</ParamField>

<ParamField body="resolution" type="string" default="1080p">
  Supported values: `480p`, `720p`, `1080p`.
</ParamField>

<ParamField body="aspect_ratio" type="string" default="adaptive">
  Supported values: `adaptive`, `16:9`, `4:3`, `1:1`, `3:4`, `9:16`.
</ParamField>

<ParamField body="duration" type="integer" default="5">
  Output duration in seconds. Supported range: `2`–`30`.
</ParamField>

<ParamField body="generate_audio" type="boolean" default="true">
  Generate synchronized dialogue, ambience, sound effects, and music.
</ParamField>

<ParamField body="enable_thinking" type="boolean" default="false">
  Enable additional reasoning for complex instructions.
</ParamField>

<ParamField body="seed" type="integer">
  Optional integer seed from `0` to `2147483647` for reproducibility.
</ParamField>

## Output Schema

<ResponseField name="status" type="string" required>
  Request state. A newly accepted request returns `queued`.
</ResponseField>

<ResponseField name="request_id" type="string" required>
  Stable identifier used for polling, cancellation, and support.
</ResponseField>

<ResponseField name="status_url" type="string" required>
  URL to poll until the request reaches a terminal state.
</ResponseField>

<ResponseField name="cancel_url" type="string" required>
  URL used to cancel a request before processing starts.
</ResponseField>

<ResponseField name="video" type="object">
  Completed video output containing its download `url`.
</ResponseField>

## Input Example

```json theme={"dark"}
{
  "prompt": "A paper boat crosses a rain-soaked miniature city at night",
  "resolution": "1080p",
  "aspect_ratio": "16:9",
  "duration": 8,
  "generate_audio": true
}
```

## Output Example

<CodeGroup>
  ```json Accepted theme={"dark"}
  {
    "status": "queued",
    "request_id": "d7e6c0f3-6699-4f6c-bb45-2ad7fd9158ff",
    "status_url": "https://api.higgsfield.ai/requests/d7e6c0f3-6699-4f6c-bb45-2ad7fd9158ff/status",
    "cancel_url": "https://api.higgsfield.ai/requests/d7e6c0f3-6699-4f6c-bb45-2ad7fd9158ff/cancel"
  }
  ```

  ```json Completed theme={"dark"}
  {
    "status": "completed",
    "request_id": "d7e6c0f3-6699-4f6c-bb45-2ad7fd9158ff",
    "video": { "url": "https://cdn.example.com/wan-3-text-to-video.mp4" }
  }
  ```
</CodeGroup>

<Tip>
  Use an SDK for automatic polling, or poll the returned [status URL](/docs/concepts/polling).
</Tip>


## Related topics

- [Wan 3.0 API](/docs/models/wan-3.md)
- [Wan 3.0 Image to Video API](/docs/models/wan-3/image-to-video.md)
- [Wan 3.0 Reference to Video API](/docs/models/wan-3/reference-to-video.md)
- [Kling 3.0 Pro Text to Video API](/docs/models/kling-3/pro-text-to-video.md)
- [Kling 3.0 Turbo Text to Video API](/docs/models/kling-3/turbo-text-to-video.md)
