# Wan 3.0 (https://wanapi.app/de/docs/wan-3-0)





Wan 3.0 unterstützt Text, Bilder und Referenzmedien und liefert Videos in 480p, 720p oder 1080p. Verwende diesen Endpunkt für das Standardmodell; die Auswahl von 1080p wechselt nicht zu Pro. [Modelldetails und Playground](/de/models/wan-3-0).

## Wan API anbinden [#wan-api-anbinden]

Verwende `https://api.wanapi.app` als API-Basis-URL. Erstelle einen Schlüssel in den [API-Schlüsseleinstellungen](/de/settings/apikeys) und sende ihn als `Authorization: Bearer YOUR_API_KEY`. Bewahre Schlüssel auf deinem Server auf. Der Playground verwendet deine Sitzung auf der Website und belastet dasselbe Kontoguthaben; du musst keinen Schlüssel in den Browser einfügen.

Der Zugang erfordert ein freigeschaltetes Konto mit ausreichendem Guthaben. Die aktuellen Tarife findest du unter [Preise](/de/pricing). Jedes Modell hat einen eigenen Endpunkt und eine eigene [Modellseite](/de/models).

`GET /v1/models` listet die Modelle auf, die deinem Schlüssel zur Verfügung stehen. Eine höhere Auflösung wechselt das Modell nicht automatisch.

| Einstellung  | Wan 3.0                                                                |
| ------------ | ---------------------------------------------------------------------- |
| Modell-ID    | `wan3.0-video`                                                         |
| `resolution` | `480p`, `720p`, `1080p`; Standard: `1080p`.                            |
| `duration`   | 2–30 Ausgabesekunden oder `-1` für automatische Dauer; Standard: `5`.  |
| `ratio`      | `adaptive`, `16:9`, `4:3`, `1:1`, `3:4`, `9:16`; Standard: `adaptive`. |
| `audio`      | Standardmäßig `true`. `false` senkt den Tarif nicht.                   |

Die [gemeinsamen Anfragefelder](#anfragefelder) beschreiben alle 14 nativen Felder, Medienlimits und Eingabekombinationen. Dieses Modell verwendet `wan3.0-video` bei nativen Anfragen in der URL und bei [Responses-Anfragen](#synchrone-responses-und-hintergrundverarbeitung) als Wert für `model`.

## Eine Aufgabe mit Wan 3.0 starten [#eine-aufgabe-mit-wan-30-starten]

Dies ist eine Text-zu-Video-Anfrage für zwei Sekunden mit der niedrigsten Auflösung dieses Modells. Setze `WAN_API_KEY` auf deinem Server auf deinen Schlüssel. Das Modell wird über die URL ausgewählt; füge diesem nativen JSON-Anfrageinhalt kein `model`-Feld hinzu.

```bash
curl https://api.wanapi.app/wan/v1/wan3.0-video/generation \
  -H "Authorization: Bearer $WAN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "A blue ball rolls across a white table. Static camera.",
    "duration": 2,
    "resolution": "480p",
    "ratio": "16:9",
    "audio": false,
    "prompt_extend": false
  }'
```

## Eine Aufgabe von Wan 3.0 abfragen [#eine-aufgabe-von-wan-30-abfragen]

Speichere die zurückgegebene `task_info.id` als `TASK_ID` und frage anschließend denselben Modellendpunkt ab. Die Antwort auf die Übermittlung bestätigt den Eingang der Aufgabe und enthält noch kein fertiges Video. Beginne mit Statusabfragen alle fünf Sekunden; siehe [Aufgabenstatus und Downloads](#status-abfragen-und-video-herunterladen).

```bash
curl "https://api.wanapi.app/wan/v1/wan3.0-video/generation/$TASK_ID" \
  -H "Authorization: Bearer $WAN_API_KEY"
```

## Preise für Wan 3.0 [#preise-für-wan-30]

Die Tabelle zeigt die aktuellen USD-Tarife pro abrechenbarer Sekunde. Sowohl die Sekunden der Referenzvideoeingabe als auch die generierten Ausgabesekunden zählen. Das Beispiel für fünf Sekunden setzt voraus, dass kein Referenzvideo verwendet wird. Informationen zu Reservierung und Abrechnung findest du unter [Abrechnung und Fehlerbehandlung](#abrechnung-und-fehlerbehandlung).

<WanModelPricing model="findWanModel('wan-3-0')" />

[Preise für Wan 3.0 ansehen](/de/models/wan-3-0#pricing).

## Anfragefelder [#anfragefelder]

Alle vier Modelle verwenden dieselben 14 nativen Felder. Gib einen Prompt oder mindestens eine Medieneingabe an. Start- und Endbilder lassen sich nicht mit Referenzeingaben, `file` oder `link` kombinieren; `file` und `link` schließen sich gegenseitig aus.

| Feld               | Typ       | Vorgaben                                                                                               |
| ------------------ | --------- | ------------------------------------------------------------------------------------------------------ |
| `prompt`           | string    | Bis zu 20.000 Zeichen.                                                                                 |
| `first_frame`      | string    | HTTP(S)-URL eines Bildes, Bild-Daten-URI oder Base64.                                                  |
| `last_frame`       | string    | HTTP(S)-URL eines Bildes, Bild-Daten-URI oder Base64.                                                  |
| `reference_images` | string\[] | Bis zu 10 Bilder in denselben Formen wie bei einem Start- oder Endbild.                                |
| `reference_videos` | string\[] | Bis zu 5 öffentliche MP4/MOV-URLs; 1–15 Sekunden pro Clip und insgesamt höchstens 15 Referenzsekunden. |
| `reference_audios` | string\[] | Bis zu 5 HTTP(S)-URLs für Audio.                                                                       |
| `file`             | string    | Öffentliche Dokument-URL.                                                                              |
| `link`             | string    | Öffentliche Webseiten-URL.                                                                             |
| `resolution`       | string    | Siehe Modelltabelle. Standard: `1080p`.                                                                |
| `ratio`            | string    | `adaptive`, `16:9`, `4:3`, `1:1`, `3:4`, `9:16`. Standard: `adaptive`.                                 |
| `duration`         | integer   | 2–30 Ausgabesekunden oder `-1` für automatische Dauer. Standard: `5`.                                  |
| `audio`            | boolean   | Audio generieren. Standard: `true`. Das Deaktivieren senkt den Tarif nicht.                            |
| `seed`             | integer   | 0–2147483647. Für zufällige Generierung weglassen.                                                     |
| `prompt_extend`    | boolean   | Prompt erweitern. Standard: `true`.                                                                    |

Verwende stabile, direkt erreichbare Medien-URLs, die bis zum Abschluss der Aufgabe verfügbar bleiben. Die Prüfung der Videodauer liest begrenzte Datenbereiche per HTTP-Range-Anfrage; Videoserver müssen diese Anfragen unterstützen und lesbare MP4/MOV-Metadaten zur Dauer bereitstellen. Die Dauerprüfung folgt keinen Weiterleitungen. URLs in privaten Netzwerken werden nicht unterstützt. Referenz- und Ausgabedauer dürfen zusammen 30 Sekunden nicht überschreiten. Der Playground akzeptiert einen JSON-Anfrageinhalt von bis zu 32 MiB; verwende für größere Eingaben URLs.

## Status abfragen und Video herunterladen [#status-abfragen-und-video-herunterladen]

Der Endpunkt zum Starten einer Aufgabe gibt bei jedem Modell eine öffentliche Aufgaben-ID zurück. Speichere sie, bevor du weitere Schritte ausführst.

```json
{
  "task_info": {
    "id": "task_EXAMPLE",
    "status": "pending"
  }
}
```

Verwende das Abfragebeispiel im Kapitel des jeweiligen Modells. Beginne mit einem Intervall von fünf Sekunden und verlängere die Wartezeit nach vorübergehenden Fehlern. Bewahre die Modell-ID jeder Aufgabe zusammen mit ihrer Aufgaben-ID auf; frage sie nicht über den Endpunkt eines anderen Modells ab.

Die nativen Statuswerte sind `pending`, `processing`, `completed` und `failed`. Eine abgeschlossene Antwort enthält `videos`, ein Array mit einer vollständigen signierten Bunny-CDN-URL.

```json
{
  "task_info": { "id": "task_EXAMPLE", "status": "completed" },
  "videos": ["https://reapiflexible.b-cdn.net/flexible/v1/expires/2026-11/20261113T06/wanapi-task_EXAMPLE/video.mp4?token=HS256_SIGNATURE&expires=1794550071"]
}
```

Verwende die zurückgegebene URL direkt zum Abspielen oder Herunterladen; dafür sind weder API-Schlüssel noch Authorization-Header erforderlich. Für Dateien gilt die bestehende Aufbewahrungsrichtlinie des Speichers. Eine erneute Aufgabenabfrage erzeugt kein weiteres Video, verursacht keine weiteren Kosten und verlängert die Verfügbarkeit der Datei nicht. Speichere benötigte Dateien in deinem eigenen Speicher. Aufgabenabfragen benötigen deinen API-Schlüssel und liefern nur Aufgaben deines Kontos.

## Synchrone Responses und Hintergrundverarbeitung [#synchrone-responses-und-hintergrundverarbeitung]

Für Clients mit der Responses API akzeptiert `POST /v1/responses` eine Modell-ID, einen String als `input` und dieselben nativen Generierungsfelder. Verwende `input` statt `prompt`. Native Medienfelder wie `reference_images` bleiben Felder auf der obersten Ebene.

```json
{
  "model": "wan3.0-video",
  "input": "A blue ball rolls across a white table.",
  "resolution": "480p",
  "duration": 2,
  "background": true
}
```

Speichere bei `background: true` die Response-ID und frage `GET /v1/responses/{response_id}` ab. Ohne `background` wartet die HTTP-Anfrage bis zum Abschluss. Mit `stream: true` werden während des Wartens Server-Sent Events verwendet. Die abschließende Assistentenausgabe enthält eine signierte Video-URL; behandle sie als privaten Link, der Zugriff gewährt, und veröffentliche sie nicht versehentlich. Für lange Generierungen und kurze Proxy-Zeitlimits empfehlen sich native Aufgabenanfragen oder Responses im Hintergrund.

Eine unterbrochene oder wegen Zeitüberschreitung beendete synchrone Anfrage bricht die Generierung nicht ab. Die Aufgabe bleibt auf dem Server bestehen. Sende dieselbe Generierung nicht automatisch erneut.

## Abrechnung und Fehlerbehandlung [#abrechnung-und-fehlerbehandlung]

Der Preis ergibt sich aus dem Auflösungstarif des Modells multipliziert mit den abrechenbaren Sekunden. Sowohl Referenzvideosekunden als auch Ausgabesekunden zählen; Text-, Bild- und Audioeingaben fügen keine Videosekunden hinzu. Anfragen mit fester Dauer ohne Referenzvideo reservieren den Betrag für die angeforderte Ausgabedauer. Anfragen mit automatischer Dauer oder Referenzvideo reservieren zunächst bis zu 30 abrechenbare Sekunden. Anschließend wird anhand der gemessenen Nutzung abgerechnet und der nicht genutzte Betrag freigegeben. Schlägt die Generierung fehl, wird die Reservierung freigegeben. Statusabfragen starten keine weitere Generierung und verursachen keine erneute Belastung.

* **Ungültige Parameter:** Korrigiere die Anfrage vor dem erneuten Senden. Unbekannte native Felder werden abgelehnt.
* **Unzureichendes Guthaben:** Lade vor einer neuen kostenpflichtigen Anfrage Guthaben auf. Das Limit eines Schlüssels stellt kein Kontoguthaben bereit.
* **Anfragelimits oder vorübergehende Fehler bei Statusabfragen:** Wiederhole nur die Abfrage, mit zunehmenden Wartezeiten und einer begrenzten Gesamtdauer.
* **Zeitüberschreitung beim Senden, Netzwerkunterbrechung oder fehlende Aufgaben-ID:** Das Ergebnis kann unklar sein. Wiederhole den POST nicht automatisch; dadurch könnte eine zweite kostenpflichtige Aufgabe entstehen.
* **Fehlgeschlagene Aufgabe:** Zeige einen Fehler der Aufgabe getrennt von einer nicht verfügbaren Statusabfrage an.
* **Downloadfehler:** Wiederhole den Download der bereits abgeschlossenen Aufgabe, bevor du eine neue Generierung startest.

Generierungsanfragen werden weder automatisch wiederholt noch an ein anderes Modell umgeleitet. Es gibt keine zugesicherte Schnittstelle für Abbruch, Webhooks oder Idempotenzschlüssel. Bewahre die Aufgaben-ID auf und wende dich an den [Support](/de/contact), wenn eine Anfrage mit unklarem Ergebnis untersucht werden muss.
