{
  "aboutHtml": "<p>FLUX 3 Video ist das multimodale Modell von Black Forest Labs zur Videogenerierung mit synchronisiertem Audio. Es erstellt Szenen aus einem Textbriefing, entwickelt Bewegung rund um festgelegte Bilder oder setzt einen vorhandenen Clip fort. Gesprochener Text, Effekte und Atmosphäre können gemeinsam mit den Bildern erzeugt werden und unterstützen eine kurze Szene, deren Kamerabewegung, Handlung und Ton als eine Abfolge gestaltet sind.</p><p>Beschreiben Sie für Text-zu-Video Motiv, Umgebung, sichtbare Handlung, Kameraverhalten und Ton. Eine nützliche Produktszene kann mit einer weiten Ansicht beginnen, sich einem Materialdetail nähern und mit dem Produkt in Verwendung enden. Briefings für mehrere Einstellungen können jede Einstellung und den Übergang zwischen Kamerawinkeln benennen und dabei Motiv und visuellen Stil über die Abfolge hinweg konsistent halten. Typografie kann in der Szene erscheinen; geben Sie deshalb genaue Wörter und Platzierung an, wenn ein Schild oder Titel wichtig ist. Das Modell deckt Realfilm, Animation, Motion Graphics und stilisierte Darstellungen ab.</p><p>Bild-zu-Video verwendet ein bis zehn Keyframe-Bilder. Ein einzelnes Bild legt das Eröffnungsbild fest; ein Paar fixiert Anfang und Ende, während geordnete Bilder mit Zeitstempeln bestimmte Momente im Clip steuern. Diese Bilder werden zu Videobildern und dienen nicht nur als allgemeine Stilreferenzen. Bei drei oder mehr Bildern ohne Zeitstempel verlangt der Hersteller eine ausdrückliche Dauer: Erstes und letztes Bild fixieren die Endpunkte, die anderen werden gleichmässig dazwischen platziert. Bilder mit Zeitstempeln müssen zeitlich geordnet sein; automatische Dauer läuft bis zum aufgerundeten letzten Zeitstempel innerhalb des Maximums von 20 Sekunden. Bereiten Sie Keyframes mit kompatiblen Motiven, Bildausschnitten und visuellen Details vor und beschreiben Sie dann die Bewegung dazwischen. Für eine Produktenthüllung kann das erste Bild das geschlossene Objekt zeigen und das letzte die geöffnete Anordnung; die dazwischenliegende Handlung wird im Prompt festgelegt.</p><p>Videofortsetzung knüpft an die letzten Bilder des bereitgestellten Clips an. Der Einführungsworkflow verwendet bis zu vier Sekunden vorhandenes Video und Audio als Kontext für die nächste Handlung und übernimmt Kameraverhalten, Bewegung und Ton über die Nahtstelle hinweg. Wählen Sie ein Quellende, das klar festlegt, wohin Motiv und Kamera sich bewegen, und beschreiben Sie, was danach geschieht. Fortsetzung unterscheidet sich vom Umschreiben einer vorhandenen Einstellung: FLUX Video Edit ist ein separates Bearbeitungsmodell und wird nicht Teil des Generierungsmodells, nur weil beide Video akzeptieren.</p><p>Text- und bildgesteuerte Generierung unterstützen Clips von 5 bis 20 Sekunden. Die modusspezifische Übersicht gibt Videofortsetzung einen Ausgabebereich von 5–15 Sekunden. Dauer und Seitenverhältnis lassen sich automatisch wählen; das Briefing kann auch ein unterstütztes Quer-, Quadrat- oder Hochformat angeben, darunter 21:9, 2:1, 16:9, 4:3, 1:1, 3:4, 9:16 und 9:21. Die Ausgabe hat 24 Bilder pro Sekunde. Wählen Sie die Dauer anhand weniger sichtbarer Handlungen, statt eine ganze Geschichte in eine kurze Generierung zu pressen.</p><p>HD-Ausgabe entsteht direkt bei der Generierung; FHD, QHD und UHD stellen dieselbe Szene mit einem Video-Upsampler fertig. Für 16:9 betragen die gelieferten Abmessungen entsprechend 1280 × 704, 1920 × 1088, 2560 × 1440 und 3840 × 2176. Die Abmessungen sind an Vielfachen von 32 ausgerichtet, sodass eine benannte Auflösungsklasse von einer üblichen Ausgabegrösse abweichen kann. Beschneiden Sie das fertige Bild, wenn eine genaue Standardfläche benötigt wird, und bewahren Sie dabei die wichtigen Randinhalte. Höhere Auflösung ist ein Fertigstellungsschritt, keine andere Interpretation der Einstellung.</p><p>Natives Audio ist standardmässig aktiviert und lässt sich für einen stummen Clip deaktivieren. Zitieren Sie für Dialog die Zeile, identifizieren Sie den Sprecher und beschreiben Sie die Sprechweise; mehrsprachige Sprachausgabe, Akzente und Lippensynchronisierung gehören zu den Audio-Video-Fähigkeiten des Modells. Verbinden Sie Dialog und Klanghinweise mit dem sichtbaren Ereignis, etwa einem sich schliessenden Deckel oder sich entfernenden Schritten. Prüfen Sie Stimme, Timing und gesprochenen Wortlaut gemeinsam mit dem Bild, statt Ton als eine nach der Generierung ergänzte unabhängige Ebene zu behandeln.</p><p>Der Draft-Modus erzeugt eine HD-Vorschau und ein Draft-Bundle. Verbessern Sie das ausgewählte Bundle, um diese Generierung in voller Qualität zu rendern; denselben Prompt als neue Anfrage für ein vollständiges Rendering zu senden, ist eine neue Interpretation und kann einen anderen Take erzeugen. Drafts verwenden nur HD; die Verbesserung kann dagegen die vier Auflösungsklassen auswählen und verwendet standardmässig FHD. Dies ergibt eine praktische Abfolge: zunächst Handlung und Komposition erkunden, dann den gewählten Take in der vorgesehenen Ausgabegrösse fertigstellen.</p><p>Der Herstellerworkflow liefert eine Aufgabenkennung, bevor das MP4 fertig ist, und stellt den abgeschlossenen Clip nach Ende der Verarbeitung bereit. Signierte Ergebnisadressen laufen nach ungefähr zwei Stunden ab; bewahren Sie deshalb die tatsächliche Datei auf, sobald die Einstellung ausgewählt ist. Prüfen Sie Keyframe-Übergänge, Schnitte, Typografie, Motivdetails und Audionahtstelle anhand des Briefings. Bewahren Sie für eine längere Abfolge die Referenzen und den Endkontext der gelungenen Einstellung als Eingabe für den nächsten Clip, statt anzunehmen, dass eine kurze Anfrage die gesamte Produktion enthält.</p>",
  "aboutText": "FLUX 3 Video ist das multimodale Modell von Black Forest Labs zur Videogenerierung mit synchronisiertem Audio. Es erstellt Szenen aus einem Textbriefing, entwickelt Bewegung rund um festgelegte Bilder oder setzt einen vorhandenen Clip fort. Gesprochener Text, Effekte und Atmosphäre können gemeinsam mit den Bildern erzeugt werden und unterstützen eine kurze Szene, deren Kamerabewegung, Handlung und Ton als eine Abfolge gestaltet sind.\n\nBeschreiben Sie für Text-zu-Video Motiv, Umgebung, sichtbare Handlung, Kameraverhalten und Ton. Eine nützliche Produktszene kann mit einer weiten Ansicht beginnen, sich einem Materialdetail nähern und mit dem Produkt in Verwendung enden. Briefings für mehrere Einstellungen können jede Einstellung und den Übergang zwischen Kamerawinkeln benennen und dabei Motiv und visuellen Stil über die Abfolge hinweg konsistent halten. Typografie kann in der Szene erscheinen; geben Sie deshalb genaue Wörter und Platzierung an, wenn ein Schild oder Titel wichtig ist. Das Modell deckt Realfilm, Animation, Motion Graphics und stilisierte Darstellungen ab.\n\nBild-zu-Video verwendet ein bis zehn Keyframe-Bilder. Ein einzelnes Bild legt das Eröffnungsbild fest; ein Paar fixiert Anfang und Ende, während geordnete Bilder mit Zeitstempeln bestimmte Momente im Clip steuern. Diese Bilder werden zu Videobildern und dienen nicht nur als allgemeine Stilreferenzen. Bei drei oder mehr Bildern ohne Zeitstempel verlangt der Hersteller eine ausdrückliche Dauer: Erstes und letztes Bild fixieren die Endpunkte, die anderen werden gleichmässig dazwischen platziert. Bilder mit Zeitstempeln müssen zeitlich geordnet sein; automatische Dauer läuft bis zum aufgerundeten letzten Zeitstempel innerhalb des Maximums von 20 Sekunden. Bereiten Sie Keyframes mit kompatiblen Motiven, Bildausschnitten und visuellen Details vor und beschreiben Sie dann die Bewegung dazwischen. Für eine Produktenthüllung kann das erste Bild das geschlossene Objekt zeigen und das letzte die geöffnete Anordnung; die dazwischenliegende Handlung wird im Prompt festgelegt.\n\nVideofortsetzung knüpft an die letzten Bilder des bereitgestellten Clips an. Der Einführungsworkflow verwendet bis zu vier Sekunden vorhandenes Video und Audio als Kontext für die nächste Handlung und übernimmt Kameraverhalten, Bewegung und Ton über die Nahtstelle hinweg. Wählen Sie ein Quellende, das klar festlegt, wohin Motiv und Kamera sich bewegen, und beschreiben Sie, was danach geschieht. Fortsetzung unterscheidet sich vom Umschreiben einer vorhandenen Einstellung: FLUX Video Edit ist ein separates Bearbeitungsmodell und wird nicht Teil des Generierungsmodells, nur weil beide Video akzeptieren.\n\nText- und bildgesteuerte Generierung unterstützen Clips von 5 bis 20 Sekunden. Die modusspezifische Übersicht gibt Videofortsetzung einen Ausgabebereich von 5–15 Sekunden. Dauer und Seitenverhältnis lassen sich automatisch wählen; das Briefing kann auch ein unterstütztes Quer-, Quadrat- oder Hochformat angeben, darunter 21:9, 2:1, 16:9, 4:3, 1:1, 3:4, 9:16 und 9:21. Die Ausgabe hat 24 Bilder pro Sekunde. Wählen Sie die Dauer anhand weniger sichtbarer Handlungen, statt eine ganze Geschichte in eine kurze Generierung zu pressen.\n\nHD-Ausgabe entsteht direkt bei der Generierung; FHD, QHD und UHD stellen dieselbe Szene mit einem Video-Upsampler fertig. Für 16:9 betragen die gelieferten Abmessungen entsprechend 1280 × 704, 1920 × 1088, 2560 × 1440 und 3840 × 2176. Die Abmessungen sind an Vielfachen von 32 ausgerichtet, sodass eine benannte Auflösungsklasse von einer üblichen Ausgabegrösse abweichen kann. Beschneiden Sie das fertige Bild, wenn eine genaue Standardfläche benötigt wird, und bewahren Sie dabei die wichtigen Randinhalte. Höhere Auflösung ist ein Fertigstellungsschritt, keine andere Interpretation der Einstellung.\n\nNatives Audio ist standardmässig aktiviert und lässt sich für einen stummen Clip deaktivieren. Zitieren Sie für Dialog die Zeile, identifizieren Sie den Sprecher und beschreiben Sie die Sprechweise; mehrsprachige Sprachausgabe, Akzente und Lippensynchronisierung gehören zu den Audio-Video-Fähigkeiten des Modells. Verbinden Sie Dialog und Klanghinweise mit dem sichtbaren Ereignis, etwa einem sich schliessenden Deckel oder sich entfernenden Schritten. Prüfen Sie Stimme, Timing und gesprochenen Wortlaut gemeinsam mit dem Bild, statt Ton als eine nach der Generierung ergänzte unabhängige Ebene zu behandeln.\n\nDer Draft-Modus erzeugt eine HD-Vorschau und ein Draft-Bundle. Verbessern Sie das ausgewählte Bundle, um diese Generierung in voller Qualität zu rendern; denselben Prompt als neue Anfrage für ein vollständiges Rendering zu senden, ist eine neue Interpretation und kann einen anderen Take erzeugen. Drafts verwenden nur HD; die Verbesserung kann dagegen die vier Auflösungsklassen auswählen und verwendet standardmässig FHD. Dies ergibt eine praktische Abfolge: zunächst Handlung und Komposition erkunden, dann den gewählten Take in der vorgesehenen Ausgabegrösse fertigstellen.\n\nDer Herstellerworkflow liefert eine Aufgabenkennung, bevor das MP4 fertig ist, und stellt den abgeschlossenen Clip nach Ende der Verarbeitung bereit. Signierte Ergebnisadressen laufen nach ungefähr zwei Stunden ab; bewahren Sie deshalb die tatsächliche Datei auf, sobald die Einstellung ausgewählt ist. Prüfen Sie Keyframe-Übergänge, Schnitte, Typografie, Motivdetails und Audionahtstelle anhand des Briefings. Bewahren Sie für eine längere Abfolge die Referenzen und den Endkontext der gelungenen Einstellung als Eingabe für den nächsten Clip, statt anzunehmen, dass eine kurze Anfrage die gesamte Produktion enthält.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "e9fd0ed975c3672f63e37c33db615666be0ac82128d69a4f995564135a065981",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "de-ch",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">•</span><h2 id=\"sheet-title\">Black Forest Labs: FLUX.3 Video</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Schliessen\">×</button></div><div class=\"idline\"><span>Black Forest Labs /</span><code>black-forest-labs/flux-3-video</code><button type=\"button\" id=\"copy-id\">ID kopieren</button></div><nav class=\"card-jump-nav\" aria-label=\"Bereiche der Modellkarte\"><button type=\"button\" data-card-jump=\"overview\">Einstieg</button><button type=\"button\" data-card-jump=\"methods\">Eingaben und Methoden</button><button type=\"button\" data-card-jump=\"pricing\">Tarife</button><button type=\"button\" data-card-jump=\"examples\">Beispiele</button><button type=\"button\" data-card-jump=\"results\">Ergebnisse</button><button type=\"button\" data-card-jump=\"aliases\">Aliasnamen</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"API-Methoden\"><button type=\"button\" role=\"tab\" tabindex=\"0\" aria-controls=\"card-method-content\" aria-selected=\"true\" id=\"card-method-tab-0\" data-card-method=\"Ultra|videos|/v1/videos|black-forest-labs%2Fflux-3-video\">Video</button></div><div id=\"card-method-content\" role=\"tabpanel\" aria-labelledby=\"card-method-tab-0\"><section class=\"card-section\" data-card-section=\"overview\"><h3 tabindex=\"-1\">Einstieg</h3><p class=\"mdesc-full\">FLUX 3 Video erzeugt Clips mit synchronisiertem Dialog, Effekten und Atmosphäre aus Text, festgelegten Bildern oder einem fortzusetzenden Clip. Keyframes, Gestaltung mit mehreren Einstellungen und Draft-Verbesserung helfen, eine kontrollierte Abfolge zu entwickeln und den ausgewählten Take beizubehalten.</p><dl class=\"card-io\" data-card-io><div><dt>Zulässige Eingaben</dt><dd>Text · Bilder</dd></div><div><dt>Ergebnisse</dt><dd>Video</dd></div></dl><details class=\"card-about\"><summary>Über das Modell</summary><p class=\"note-s\" data-model-method-boundary>Diese Beschreibung erläutert die Fähigkeiten des Modells. Die über Ailoot verfügbaren Eingaben, Ausgaben und Optionen sind unten für die ausgewählte Methode aufgeführt.</p><div class=\"mabout\" id=\"m-about\"><p>FLUX 3 Video ist das multimodale Modell von Black Forest Labs zur Videogenerierung mit synchronisiertem Audio. Es erstellt Szenen aus einem Textbriefing, entwickelt Bewegung rund um festgelegte Bilder oder setzt einen vorhandenen Clip fort. Gesprochener Text, Effekte und Atmosphäre können gemeinsam mit den Bildern erzeugt werden und unterstützen eine kurze Szene, deren Kamerabewegung, Handlung und Ton als eine Abfolge gestaltet sind.</p><p>Beschreiben Sie für Text-zu-Video Motiv, Umgebung, sichtbare Handlung, Kameraverhalten und Ton. Eine nützliche Produktszene kann mit einer weiten Ansicht beginnen, sich einem Materialdetail nähern und mit dem Produkt in Verwendung enden. Briefings für mehrere Einstellungen können jede Einstellung und den Übergang zwischen Kamerawinkeln benennen und dabei Motiv und visuellen Stil über die Abfolge hinweg konsistent halten. Typografie kann in der Szene erscheinen; geben Sie deshalb genaue Wörter und Platzierung an, wenn ein Schild oder Titel wichtig ist. Das Modell deckt Realfilm, Animation, Motion Graphics und stilisierte Darstellungen ab.</p><p>Bild-zu-Video verwendet ein bis zehn Keyframe-Bilder. Ein einzelnes Bild legt das Eröffnungsbild fest; ein Paar fixiert Anfang und Ende, während geordnete Bilder mit Zeitstempeln bestimmte Momente im Clip steuern. Diese Bilder werden zu Videobildern und dienen nicht nur als allgemeine Stilreferenzen. Bei drei oder mehr Bildern ohne Zeitstempel verlangt der Hersteller eine ausdrückliche Dauer: Erstes und letztes Bild fixieren die Endpunkte, die anderen werden gleichmässig dazwischen platziert. Bilder mit Zeitstempeln müssen zeitlich geordnet sein; automatische Dauer läuft bis zum aufgerundeten letzten Zeitstempel innerhalb des Maximums von 20 Sekunden. Bereiten Sie Keyframes mit kompatiblen Motiven, Bildausschnitten und visuellen Details vor und beschreiben Sie dann die Bewegung dazwischen. Für eine Produktenthüllung kann das erste Bild das geschlossene Objekt zeigen und das letzte die geöffnete Anordnung; die dazwischenliegende Handlung wird im Prompt festgelegt.</p><p>Videofortsetzung knüpft an die letzten Bilder des bereitgestellten Clips an. Der Einführungsworkflow verwendet bis zu vier Sekunden vorhandenes Video und Audio als Kontext für die nächste Handlung und übernimmt Kameraverhalten, Bewegung und Ton über die Nahtstelle hinweg. Wählen Sie ein Quellende, das klar festlegt, wohin Motiv und Kamera sich bewegen, und beschreiben Sie, was danach geschieht. Fortsetzung unterscheidet sich vom Umschreiben einer vorhandenen Einstellung: FLUX Video Edit ist ein separates Bearbeitungsmodell und wird nicht Teil des Generierungsmodells, nur weil beide Video akzeptieren.</p><p>Text- und bildgesteuerte Generierung unterstützen Clips von 5 bis 20 Sekunden. Die modusspezifische Übersicht gibt Videofortsetzung einen Ausgabebereich von 5–15 Sekunden. Dauer und Seitenverhältnis lassen sich automatisch wählen; das Briefing kann auch ein unterstütztes Quer-, Quadrat- oder Hochformat angeben, darunter 21:9, 2:1, 16:9, 4:3, 1:1, 3:4, 9:16 und 9:21. Die Ausgabe hat 24 Bilder pro Sekunde. Wählen Sie die Dauer anhand weniger sichtbarer Handlungen, statt eine ganze Geschichte in eine kurze Generierung zu pressen.</p><p>HD-Ausgabe entsteht direkt bei der Generierung; FHD, QHD und UHD stellen dieselbe Szene mit einem Video-Upsampler fertig. Für 16:9 betragen die gelieferten Abmessungen entsprechend 1280 × 704, 1920 × 1088, 2560 × 1440 und 3840 × 2176. Die Abmessungen sind an Vielfachen von 32 ausgerichtet, sodass eine benannte Auflösungsklasse von einer üblichen Ausgabegrösse abweichen kann. Beschneiden Sie das fertige Bild, wenn eine genaue Standardfläche benötigt wird, und bewahren Sie dabei die wichtigen Randinhalte. Höhere Auflösung ist ein Fertigstellungsschritt, keine andere Interpretation der Einstellung.</p><p>Natives Audio ist standardmässig aktiviert und lässt sich für einen stummen Clip deaktivieren. Zitieren Sie für Dialog die Zeile, identifizieren Sie den Sprecher und beschreiben Sie die Sprechweise; mehrsprachige Sprachausgabe, Akzente und Lippensynchronisierung gehören zu den Audio-Video-Fähigkeiten des Modells. Verbinden Sie Dialog und Klanghinweise mit dem sichtbaren Ereignis, etwa einem sich schliessenden Deckel oder sich entfernenden Schritten. Prüfen Sie Stimme, Timing und gesprochenen Wortlaut gemeinsam mit dem Bild, statt Ton als eine nach der Generierung ergänzte unabhängige Ebene zu behandeln.</p><p>Der Draft-Modus erzeugt eine HD-Vorschau und ein Draft-Bundle. Verbessern Sie das ausgewählte Bundle, um diese Generierung in voller Qualität zu rendern; denselben Prompt als neue Anfrage für ein vollständiges Rendering zu senden, ist eine neue Interpretation und kann einen anderen Take erzeugen. Drafts verwenden nur HD; die Verbesserung kann dagegen die vier Auflösungsklassen auswählen und verwendet standardmässig FHD. Dies ergibt eine praktische Abfolge: zunächst Handlung und Komposition erkunden, dann den gewählten Take in der vorgesehenen Ausgabegrösse fertigstellen.</p><p>Der Herstellerworkflow liefert eine Aufgabenkennung, bevor das MP4 fertig ist, und stellt den abgeschlossenen Clip nach Ende der Verarbeitung bereit. Signierte Ergebnisadressen laufen nach ungefähr zwei Stunden ab; bewahren Sie deshalb die tatsächliche Datei auf, sobald die Einstellung ausgewählt ist. Prüfen Sie Keyframe-Übergänge, Schnitte, Typografie, Motivdetails und Audionahtstelle anhand des Briefings. Bewahren Sie für eine längere Abfolge die Referenzen und den Endkontext der gelungenen Einstellung als Eingabe für den nächsten Clip, statt anzunehmen, dass eine kurze Anfrage die gesamte Produktion enthält.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">In Ailoot verfügbar · Eingaben und Methoden</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · Video</b> <code>POST /v1/videos</code></summary><dl class=\"method-capabilities\"><div><dt>Eingabe</dt><dd><code>text</code>, <code>image</code></dd></div><div><dt>Ausgabe</dt><dd><code>video</code></dd></div><div><dt>Ausgabeformat</dt><dd>Originale MP4-Bytes; keine Normalisierung/Transkodierung</dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Feld</th><th>Typ</th><th>Anforderung</th><th>Werte und Limits</th><th>Standard</th></tr></thead><tbody><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>string</code></td><td data-cell-label=\"Anforderung\"><span class=\"card-cell-label\">Anforderung</span>Erforderlich</td><td data-cell-label=\"Werte und Limits\"><span class=\"card-cell-label\">Werte und Limits</span><div>black-forest-labs/flux-3-video</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">prompt</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>string</code></td><td data-cell-label=\"Anforderung\"><span class=\"card-cell-label\">Anforderung</span>Erforderlich</td><td data-cell-label=\"Werte und Limits\"><span class=\"card-cell-label\">Werte und Limits</span></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">duration</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>integer</code></td><td data-cell-label=\"Anforderung\"><span class=\"card-cell-label\">Anforderung</span>Erforderlich</td><td data-cell-label=\"Werte und Limits\"><span class=\"card-cell-label\">Werte und Limits</span><div>5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20</div><div>Minimum: 1</div><div>Maximum: 600</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">resolution</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>string</code></td><td data-cell-label=\"Anforderung\"><span class=\"card-cell-label\">Anforderung</span>Optional</td><td data-cell-label=\"Werte und Limits\"><span class=\"card-cell-label\">Werte und Limits</span><div>720p, 1080p</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">aspect_ratio</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>string</code></td><td data-cell-label=\"Anforderung\"><span class=\"card-cell-label\">Anforderung</span>Optional</td><td data-cell-label=\"Werte und Limits\"><span class=\"card-cell-label\">Werte und Limits</span><div>21:9, 16:9, 4:3, 1:1, 3:4, 9:16</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">generate_audio</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>boolean</code></td><td data-cell-label=\"Anforderung\"><span class=\"card-cell-label\">Anforderung</span>Optional</td><td data-cell-label=\"Werte und Limits\"><span class=\"card-cell-label\">Werte und Limits</span><div>false, true</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">frame_images</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>array</code></td><td data-cell-label=\"Anforderung\"><span class=\"card-cell-label\">Anforderung</span>Optional</td><td data-cell-label=\"Werte und Limits\"><span class=\"card-cell-label\">Werte und Limits</span><div>Mindestanzahl Elemente: 1</div><div>Maximale Anzahl Elemente: 2</div><div>Eingabeinhalt: Array von Bildobjekten. Jedes Objekt enthält type=image_url, image_url mit url und frame_type. Verwenden Sie eine HTTPS-Bild-URL und setzen Sie frame_type auf first_frame oder last_frame. Jede Bildrolle darf höchstens einmal vorkommen.</div><div>Exakte Schlüssel: type, image_url, frame_type</div><div>Bedingungen: Diese Schlüssel beschreiben jedes Bildobjekt; image_url enthält ausschliesslich url. Lassen Sie frame_images bei einer reinen Textanfrage weg.</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">input_references</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>array</code></td><td data-cell-label=\"Anforderung\"><span class=\"card-cell-label\">Anforderung</span>Optional</td><td data-cell-label=\"Werte und Limits\"><span class=\"card-cell-label\">Werte und Limits</span></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">previous_job_id</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>string</code></td><td data-cell-label=\"Anforderung\"><span class=\"card-cell-label\">Anforderung</span>Optional</td><td data-cell-label=\"Werte und Limits\"><span class=\"card-cell-label\">Werte und Limits</span><div>Muster: ^video_[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">callback_url</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>string</code></td><td data-cell-label=\"Anforderung\"><span class=\"card-cell-label\">Anforderung</span>Optional</td><td data-cell-label=\"Werte und Limits\"><span class=\"card-cell-label\">Werte und Limits</span><div>Muster: ^https://</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">session_id</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>string</code></td><td data-cell-label=\"Anforderung\"><span class=\"card-cell-label\">Anforderung</span>Optional</td><td data-cell-label=\"Werte und Limits\"><span class=\"card-cell-label\">Werte und Limits</span></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">trace</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>object</code></td><td data-cell-label=\"Anforderung\"><span class=\"card-cell-label\">Anforderung</span>Optional</td><td data-cell-label=\"Werte und Limits\"><span class=\"card-cell-label\">Werte und Limits</span></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">user</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>string</code></td><td data-cell-label=\"Anforderung\"><span class=\"card-cell-label\">Anforderung</span>Optional</td><td data-cell-label=\"Werte und Limits\"><span class=\"card-cell-label\">Werte und Limits</span></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>Kombinationen von Eingabematerialien</summary><p class=\"note-s\"><b>Text zu Video</b> · Eine schriftliche Beschreibung. · Erforderlich: model, prompt, duration</p><p class=\"note-s\"><code>Geben Sie prompt als Text und duration in ganzen Sekunden an. Wählen Sie eine unterstützte Auflösung und bei Bedarf ein Seitenverhältnis.</code></p><p class=\"note-s\"><code class=\"card-field-name\">model</code>: Typ: string · black-forest-labs/flux-3-video</p><p class=\"note-s\"><code class=\"card-field-name\">prompt</code>: Typ: string · Maximale Anzahl UTF-8-Bytes: 10'000 · Mindestens ein Zeichen ausser Leerraum erforderlich: Ja</p><p class=\"note-s\"><b>Bild zu Video</b> · Eine schriftliche Beschreibung und ein Bild für das erste Einzelbild. · Erforderlich: model, prompt, duration, frame_images</p><p class=\"note-s\"><code>frame_images ist ein Array. Jedes Bildobjekt enthält type, image_url und frame_type; image_url enthält url. Setzen Sie type auf image_url. Verwenden Sie first_frame mit einem optionalen last_frame. Jede Bildrolle darf höchstens einmal vorkommen. Geben Sie für jedes Bild eine öffentliche HTTPS-Bild-URL an. Wählen Sie eine unterstützte Auflösung und bei Bedarf ein Seitenverhältnis.</code></p><p class=\"note-s\">Exakte Schlüssel: type, image_url, frame_type</p><p class=\"note-s\"><code class=\"card-field-name\">model</code>: Typ: string · black-forest-labs/flux-3-video</p><p class=\"note-s\"><code class=\"card-field-name\">prompt</code>: Typ: string · Maximale Anzahl UTF-8-Bytes: 10'000 · Mindestens ein Zeichen ausser Leerraum erforderlich: Ja</p><p class=\"note-s\"><b>Continue a video</b> · Eine schriftliche Beschreibung und Ihr fertiggestelltes Originalvideo. · Erforderlich: model, prompt, duration, previous_job_id</p><p class=\"note-s\"><code>Setzen Sie previous_job_id auf die öffentliche Video-ID Ihres fertiggestellten Originals. Verwenden Sie dasselbe Modell, Konto und denselben API-Schlüssel. Bewahren Sie die bestehende Aufgabenkennung auf; diese Anfrage erstellt eine separate Fortsetzungsaufgabe. Wählen Sie eine unterstützte Auflösung und bei Bedarf ein Seitenverhältnis.</code></p><p class=\"note-s\"><code class=\"card-field-name\">model</code>: Typ: string · black-forest-labs/flux-3-video</p><p class=\"note-s\"><code class=\"card-field-name\">prompt</code>: Typ: string · Maximale Anzahl UTF-8-Bytes: 10'000 · Mindestens ein Zeichen ausser Leerraum erforderlich: Ja</p></details><details class=\"note-s\" data-method-contract><summary>Methodenparameter und Lebenszyklus</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Parameter</th><th>Vertrag</th></tr></thead><tbody><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>content_type</code></th><td data-cell-label=\"Vertrag\"><span class=\"card-cell-label\">Vertrag</span>application/json</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>required</code></th><td data-cell-label=\"Vertrag\"><span class=\"card-cell-label\">Vertrag</span>model, prompt, duration</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>material_types</code></th><td data-cell-label=\"Vertrag\"><span class=\"card-cell-label\">Vertrag</span>text, image</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>additional_properties</code></th><td data-cell-label=\"Vertrag\"><span class=\"card-cell-label\">Vertrag</span>false</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>optional_controls</code></th><td data-cell-label=\"Vertrag\"><span class=\"card-cell-label\">Vertrag</span>resolution, aspect_ratio, generate_audio, frame_images, input_references, previous_job_id, callback_url, session_id, trace, user</td></tr></tbody></table></div><p>Lebenszyklus: <code>submit_once_poll_original</code></p><p class=\"note-s\"><code>GET /v1/videos/{public_id}</code></p><p class=\"note-s\"><code>GET /v1/videos/{public_id}/content</code></p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Tarife</h3><div class=\"card-result-process\" data-billing-basis><h5>So wird die endgültige Gebühr berechnet</h5><p class=\"note-s\">Die angezeigten Tarife dienen zur Kostenschätzung vor der Generierung. Der endgültige Betrag wird aus den für die ursprüngliche Generierung erfassten Kosten berechnet. Die gemessene Ausgabedauer und prognostizierte Mengen sind nicht die endgültige abrechenbare Menge.</p></div><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>Tarifangaben erweitern die Anfrageoptionen nicht. Unterstützte Parameter stehen bei der ausgewählten Methode.</p><dl data-price-conditions><dt>Schnellmodus</dt><dd>Nicht angegeben <span class=\"note-s\">Wenn der Schnellmodus ausgewählt ist</span></dd><dt>Flex-Modus</dt><dd>Nicht angegeben <span class=\"note-s\">Wenn der Modus flex ausgewählt ist</span></dd><dt>Maximaler Denkaufwand</dt><dd>Nicht angegeben <span class=\"note-s\">Wenn beim maximalen Denkaufwand die Standardanpassung (default) verwendet wird</span></dd></dl></div><div data-declared-tariff-pricing><h4>Geschätzte Tarife zum Vergleich</h4><h4>Preise nach Konfiguration</h4><p class=\"note-s\">Ordnen Sie jede Gebühr den angezeigten Bedingungen zu. Verwenden Sie für jede Gruppe alternativer Konfigurationen einen Tarif.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Konfiguration</th><th>Tarifstaffel</th><th>Prognostizierte Menge</th><th>Gebührenkomponente</th><th>Referenzmodus</th><th>Abrechnungseinheit</th><th>Abrechnungsbedingungen</th><th>Gebühr</th></tr></thead><tbody><tr><th data-cell-label=\"Konfiguration\" scope=\"row\"><span class=\"card-cell-label\">Konfiguration</span>Token-Basistarife</th><td data-cell-label=\"Tarifstaffel\"><span class=\"card-cell-label\">Tarifstaffel</span>Grundtarif</td><td data-cell-label=\"Prognostizierte Menge\"><span class=\"card-cell-label\">Prognostizierte Menge</span>—</td><td data-cell-label=\"Gebührenkomponente\"><span class=\"card-cell-label\">Gebührenkomponente</span>—</td><td data-cell-label=\"Referenzmodus\"><span class=\"card-cell-label\">Referenzmodus</span>—</td><td data-cell-label=\"Abrechnungseinheit\"><span class=\"card-cell-label\">Abrechnungseinheit</span>—</td><td data-cell-label=\"Abrechnungsbedingungen\"><span class=\"card-cell-label\">Abrechnungsbedingungen</span>—</td><td data-cell-label=\"Gebühr\"><span class=\"card-cell-label\">Gebühr</span><div><span>Eingabe · Eingabetoken · Schätzung nur zum Vergleich</span> <b>—</b> <span class=\"price-unit\">/ 1K Tokens</span></div><div><span>Ausgabe · Ausgabetoken · Schätzung nur zum Vergleich</span> <b>—</b> <span class=\"price-unit\">/ 1K Tokens</span></div><div><span>Eingabe · Cache lesen · Schätzung nur zum Vergleich</span> <b>—</b> <span class=\"price-unit\">/ 1K Tokens</span></div><div><span>Eingabe · Cache schreiben · Schätzung nur zum Vergleich</span> <b>—</b> <span class=\"price-unit\">/ 1K Tokens</span></div><div><span>Eingabe · Cache schreiben, 1 Stunde · Schätzung nur zum Vergleich</span> <b>—</b> <span class=\"price-unit\">/ 1K Tokens</span></div></td></tr><tr><th data-cell-label=\"Konfiguration\" scope=\"row\"><span class=\"card-cell-label\">Konfiguration</span>Text zu Video · Bild zu Video (Einzelbilder) · Referenzpreis</th><td data-cell-label=\"Tarifstaffel\"><span class=\"card-cell-label\">Tarifstaffel</span>—</td><td data-cell-label=\"Prognostizierte Menge\"><span class=\"card-cell-label\">Prognostizierte Menge</span>—</td><td data-cell-label=\"Gebührenkomponente\"><span class=\"card-cell-label\">Gebührenkomponente</span><code>reference_output_rate</code></td><td data-cell-label=\"Referenzmodus\"><span class=\"card-cell-label\">Referenzmodus</span>Text zu Video · Bild zu Video (Einzelbilder)</td><td data-cell-label=\"Abrechnungseinheit\"><span class=\"card-cell-label\">Abrechnungseinheit</span>pro Ausgabesekunde</td><td data-cell-label=\"Abrechnungsbedingungen\"><span class=\"card-cell-label\">Abrechnungsbedingungen</span>—</td><td data-cell-label=\"Gebühr\"><span class=\"card-cell-label\">Gebühr</span><div><span>Ausgabe · Referenztarif pro Ausgabevideo-Sekunde · Schätzung nur zum Vergleich</span> <b>$0.34</b> <span class=\"price-unit\">pro Ausgabesekunde</span></div></td></tr><tr><th data-cell-label=\"Konfiguration\" scope=\"row\"><span class=\"card-cell-label\">Konfiguration</span>Videopreis</th><td data-cell-label=\"Tarifstaffel\"><span class=\"card-cell-label\">Tarifstaffel</span>—</td><td data-cell-label=\"Prognostizierte Menge\"><span class=\"card-cell-label\">Prognostizierte Menge</span>—</td><td data-cell-label=\"Gebührenkomponente\"><span class=\"card-cell-label\">Gebührenkomponente</span>—</td><td data-cell-label=\"Referenzmodus\"><span class=\"card-cell-label\">Referenzmodus</span>—</td><td data-cell-label=\"Abrechnungseinheit\"><span class=\"card-cell-label\">Abrechnungseinheit</span>pro Videosekunde</td><td data-cell-label=\"Abrechnungsbedingungen\"><span class=\"card-cell-label\">Abrechnungsbedingungen</span>resolution: 1080p</td><td data-cell-label=\"Gebühr\"><span class=\"card-cell-label\">Gebühr</span><div><span>Ausgabe · Videopreis · Schätzung nur zum Vergleich</span> <b>$0.58</b> <span class=\"price-unit\">pro Videosekunde</span></div></td></tr><tr><th data-cell-label=\"Konfiguration\" scope=\"row\"><span class=\"card-cell-label\">Konfiguration</span>Videopreis</th><td data-cell-label=\"Tarifstaffel\"><span class=\"card-cell-label\">Tarifstaffel</span>—</td><td data-cell-label=\"Prognostizierte Menge\"><span class=\"card-cell-label\">Prognostizierte Menge</span>—</td><td data-cell-label=\"Gebührenkomponente\"><span class=\"card-cell-label\">Gebührenkomponente</span>—</td><td data-cell-label=\"Referenzmodus\"><span class=\"card-cell-label\">Referenzmodus</span>—</td><td data-cell-label=\"Abrechnungseinheit\"><span class=\"card-cell-label\">Abrechnungseinheit</span>pro Videosekunde</td><td data-cell-label=\"Abrechnungsbedingungen\"><span class=\"card-cell-label\">Abrechnungsbedingungen</span>resolution: 720p</td><td data-cell-label=\"Gebühr\"><span class=\"card-cell-label\">Gebühr</span><div><span>Ausgabe · Videopreis · Schätzung nur zum Vergleich</span> <b>$0.34</b> <span class=\"price-unit\">pro Videosekunde</span></div></td></tr><tr><th data-cell-label=\"Konfiguration\" scope=\"row\"><span class=\"card-cell-label\">Konfiguration</span>Videopreis</th><td data-cell-label=\"Tarifstaffel\"><span class=\"card-cell-label\">Tarifstaffel</span>—</td><td data-cell-label=\"Prognostizierte Menge\"><span class=\"card-cell-label\">Prognostizierte Menge</span>—</td><td data-cell-label=\"Gebührenkomponente\"><span class=\"card-cell-label\">Gebührenkomponente</span>—</td><td data-cell-label=\"Referenzmodus\"><span class=\"card-cell-label\">Referenzmodus</span>—</td><td data-cell-label=\"Abrechnungseinheit\"><span class=\"card-cell-label\">Abrechnungseinheit</span>pro Videosekunde</td><td data-cell-label=\"Abrechnungsbedingungen\"><span class=\"card-cell-label\">Abrechnungsbedingungen</span>Eingabe: video_continuation; Auflösung: 1080p</td><td data-cell-label=\"Gebühr\"><span class=\"card-cell-label\">Gebühr</span><div><span>Ausgabe · Videopreis · Schätzung nur zum Vergleich</span> <b>$1.06</b> <span class=\"price-unit\">pro Videosekunde</span></div></td></tr><tr><th data-cell-label=\"Konfiguration\" scope=\"row\"><span class=\"card-cell-label\">Konfiguration</span>Videopreis</th><td data-cell-label=\"Tarifstaffel\"><span class=\"card-cell-label\">Tarifstaffel</span>—</td><td data-cell-label=\"Prognostizierte Menge\"><span class=\"card-cell-label\">Prognostizierte Menge</span>—</td><td data-cell-label=\"Gebührenkomponente\"><span class=\"card-cell-label\">Gebührenkomponente</span>—</td><td data-cell-label=\"Referenzmodus\"><span class=\"card-cell-label\">Referenzmodus</span>—</td><td data-cell-label=\"Abrechnungseinheit\"><span class=\"card-cell-label\">Abrechnungseinheit</span>pro Videosekunde</td><td data-cell-label=\"Abrechnungsbedingungen\"><span class=\"card-cell-label\">Abrechnungsbedingungen</span>Eingabe: video_continuation; Auflösung: 720p</td><td data-cell-label=\"Gebühr\"><span class=\"card-cell-label\">Gebühr</span><div><span>Ausgabe · Videopreis · Schätzung nur zum Vergleich</span> <b>$0.82</b> <span class=\"price-unit\">pro Videosekunde</span></div></td></tr><tr><th data-cell-label=\"Konfiguration\" scope=\"row\"><span class=\"card-cell-label\">Konfiguration</span>Geschätzte Erzeugungskosten</th><td data-cell-label=\"Tarifstaffel\"><span class=\"card-cell-label\">Tarifstaffel</span>—</td><td data-cell-label=\"Prognostizierte Menge\"><span class=\"card-cell-label\">Prognostizierte Menge</span>Schätzung für eine Generierung</td><td data-cell-label=\"Gebührenkomponente\"><span class=\"card-cell-label\">Gebührenkomponente</span>—</td><td data-cell-label=\"Referenzmodus\"><span class=\"card-cell-label\">Referenzmodus</span>—</td><td data-cell-label=\"Abrechnungseinheit\"><span class=\"card-cell-label\">Abrechnungseinheit</span>—</td><td data-cell-label=\"Abrechnungsbedingungen\"><span class=\"card-cell-label\">Abrechnungsbedingungen</span>—</td><td data-cell-label=\"Gebühr\"><span class=\"card-cell-label\">Gebühr</span><div><span>Ausgabe · Geschätzte Generierungskosten · Schätzung nur zum Vergleich</span> <b>$1.7</b> <span class=\"price-unit\">Schätzung vor der Generierung</span></div><p class=\"note-s\">Diese Schätzung ist weder eine zusätzliche Gebühr noch ein fester Tarif für die abgeschlossene Generierung.</p></td></tr></tbody></table></div></div><p class=\"note-s\">Ailoot reserviert vor einer Anfrage einen geschätzten Betrag. Nach dem Ergebnis rechnet Ailoot die endgültige Gebühr anhand des gemessenen Verbrauchs ab. Bei Streaming erfolgt die Abrechnung anhand des abschliessenden Verbrauchsdatensatzes. <a href=\"/docs/de-ch/billing/reserve/\">So funktionieren Reservierung und Abrechnung →</a></p><div data-declared-reference-pricing><h4>Details zum Referenztarif</h4><p class=\"note-s\">Referenztarifstaffeln auf Modellebene ändern weder Methodenauswahl noch Kostenvoranschläge oder Gebühren. Für die aktive Abrechnung gelten die Tarife der ausgewählten Ailoot-Methode.</p><details class=\"card-price-reference\" data-declared-reference-group data-client-selectable=\"false\"><summary>Preisreferenzen für Videokonfigurationen</summary><h4>Preise nach Konfiguration</h4><p class=\"note-s\">Ordnen Sie jede Gebühr den angezeigten Bedingungen zu. Verwenden Sie für jede Gruppe alternativer Konfigurationen einen Tarif.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Konfiguration</th><th>Abrechnungsbedingungen</th><th>Gebühr</th></tr></thead><tbody><tr><th data-cell-label=\"Konfiguration\" scope=\"row\"><span class=\"card-cell-label\">Konfiguration</span>Videopreis</th><td data-cell-label=\"Abrechnungsbedingungen\"><span class=\"card-cell-label\">Abrechnungsbedingungen</span>In diesem Preisschlüssel ist keine zusätzliche Bedingung angegeben.</td><td data-cell-label=\"Gebühr\"><span class=\"card-cell-label\">Gebühr</span><div><span>Ausgabe · Videopreis</span> <b>$0.34</b> <span class=\"price-unit\">pro Videosekunde</span></div><p class=\"note-s\">Veröffentlichte Preisreferenz für die angezeigte Konfiguration. Die endgültige Abrechnung folgt der tatsächlich abgerechneten Konfiguration.</p></td></tr><tr><th data-cell-label=\"Konfiguration\" scope=\"row\"><span class=\"card-cell-label\">Konfiguration</span>Videopreis</th><td data-cell-label=\"Abrechnungsbedingungen\"><span class=\"card-cell-label\">Abrechnungsbedingungen</span>resolution: 720p</td><td data-cell-label=\"Gebühr\"><span class=\"card-cell-label\">Gebühr</span><div><span>Ausgabe · Videopreis</span> <b>$0.34</b> <span class=\"price-unit\">pro Videosekunde</span></div><p class=\"note-s\">Veröffentlichte Preisreferenz für die angezeigte Konfiguration. Die endgültige Abrechnung folgt der tatsächlich abgerechneten Konfiguration.</p></td></tr><tr><th data-cell-label=\"Konfiguration\" scope=\"row\"><span class=\"card-cell-label\">Konfiguration</span>Videopreis</th><td data-cell-label=\"Abrechnungsbedingungen\"><span class=\"card-cell-label\">Abrechnungsbedingungen</span>resolution: 1080p</td><td data-cell-label=\"Gebühr\"><span class=\"card-cell-label\">Gebühr</span><div><span>Ausgabe · Videopreis</span> <b>$0.58</b> <span class=\"price-unit\">pro Videosekunde</span></div><p class=\"note-s\">Veröffentlichte Preisreferenz für die angezeigte Konfiguration. Die endgültige Abrechnung folgt der tatsächlich abgerechneten Konfiguration.</p></td></tr><tr><th data-cell-label=\"Konfiguration\" scope=\"row\"><span class=\"card-cell-label\">Konfiguration</span>Videopreis</th><td data-cell-label=\"Abrechnungsbedingungen\"><span class=\"card-cell-label\">Abrechnungsbedingungen</span>Eingabe: video_continuation; Auflösung: 720p</td><td data-cell-label=\"Gebühr\"><span class=\"card-cell-label\">Gebühr</span><div><span>Ausgabe · Videopreis</span> <b>$0.82</b> <span class=\"price-unit\">pro Videosekunde</span></div><p class=\"note-s\">Veröffentlichte Preisreferenz für die angezeigte Konfiguration. Die endgültige Abrechnung folgt der tatsächlich abgerechneten Konfiguration.</p></td></tr><tr><th data-cell-label=\"Konfiguration\" scope=\"row\"><span class=\"card-cell-label\">Konfiguration</span>Videopreis</th><td data-cell-label=\"Abrechnungsbedingungen\"><span class=\"card-cell-label\">Abrechnungsbedingungen</span>Eingabe: video_continuation; Auflösung: 1080p</td><td data-cell-label=\"Gebühr\"><span class=\"card-cell-label\">Gebühr</span><div><span>Ausgabe · Videopreis</span> <b>$1.06</b> <span class=\"price-unit\">pro Videosekunde</span></div><p class=\"note-s\">Veröffentlichte Preisreferenz für die angezeigte Konfiguration. Die endgültige Abrechnung folgt der tatsächlich abgerechneten Konfiguration.</p></td></tr></tbody></table></div></details></div></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Beispielanfragen</h3><h4>Ailoot Ultra · Video</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Codevarianten\"><button class=\"cg-tab\" id=\"model-code-1092-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1092-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl · Video erstellen</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Code kopieren\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-1092-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1092-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nfrom pathlib import Path\nPath(&#39;request.json&#39;).write_text(&#39;{&quot;aspect_ratio&quot;:&quot;16:9&quot;,&quot;duration&quot;:8,&quot;model&quot;:&quot;black-forest-labs/flux-3-video&quot;,&quot;prompt&quot;:&quot;A serene mountain landscape at sunset&quot;,&quot;resolution&quot;:&quot;720p&quot;}&#39;, encoding=&#39;utf-8&#39;)\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - &lt;&lt;&#39;PY_RESULT&#39;\nimport json\nfrom pathlib import Path\nr=json.loads(Path(&#39;result.json&#39;).read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint(&#39;Keep the complete JSON and response headers; do not resubmit an unknown creation.&#39;)\nPY_RESULT\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">Ergebnisse abrufen und speichern</h3><h4>Ailoot Ultra · Video</h4><p class=\"note-s\">Signierte Inhalts-URLs der Ihnen zugeordneten Ausgaben</p><ul class=\"card-result-paths\"><li><code>GET /v1/videos/{public_id}</code></li><li><code>GET /v1/videos/{public_id}/content</code></li></ul><h5>Auftragsstatus prüfen</h5><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Codevarianten\"><button class=\"cg-tab\" id=\"model-code-1093-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1093-panel-0\" aria-selected=\"true\" tabindex=\"0\">GET · Status des ursprünglichen Vorgangs</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Code kopieren\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-1093-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1093-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\npython3 - &lt;&lt;&#39;PY_STATUS_URL&#39;\nimport json\nfrom pathlib import Path\nfrom urllib.parse import quote\nr=json.loads(Path(&#39;result.json&#39;).read_text())\nif not isinstance(r.get(&#39;id&#39;),str) or not r[&#39;id&#39;]:raise SystemExit(&#39;Keep the original response and headers for reconciliation; no returned ID&#39;)\nPath(&#39;status-url.txt&#39;).write_text(&#39;https://api.ailoot.ai/v1/videos/&#39;+quote(r[&#39;id&#39;],safe=&#39;&#39;))\nPY_STATUS_URL\ncurl --fail-with-body --silent --show-error &quot;$(cat status-url.txt)&quot; \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -D status-headers.txt -o status.json\npython3 - &lt;&lt;&#39;PY_RESULT&#39;\nimport json\nfrom pathlib import Path\nr=json.loads(Path(&#39;status.json&#39;).read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint(&#39;Keep the complete JSON and response headers; do not resubmit an unknown creation.&#39;)\nPY_RESULT\n</code></pre></div></div></div><details class=\"card-about\"><summary>Abrufe anderer Inhalte</summary><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Codevarianten\"><button class=\"cg-tab\" id=\"model-code-1094-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1094-panel-0\" aria-selected=\"true\" tabindex=\"0\">Jede fertiggestellte eigene Ausgabe speichern</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Code kopieren\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-1094-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1094-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\nexport AILOOT_API_KEY\npython3 - &lt;&lt;&#39;PY_ASSETS&#39;\nimport json,os,subprocess\nfrom pathlib import Path\nfrom urllib.parse import urljoin,urlsplit\nr=json.loads(Path(&#39;status.json&#39;).read_text())\nif r.get(&#39;status&#39;)!=&#39;completed&#39;:raise SystemExit(&#39;Keep the original ID and read its status; never recreate an unknown job&#39;)\nif not isinstance(r.get(&#39;data&#39;),list) or not r[&#39;data&#39;]:raise SystemExit(&#39;Keep the complete original status; no completed outputs supplied&#39;)\nurls=[]\nfor i,u in enumerate(r.get(&#39;data&#39;,[])):\n    if not isinstance(u,str):raise SystemExit(&#39;Keep the original response; unexpected asset shape&#39;)\n    urls.append((str(i),u))\nfor label,path in urls:\n    u=urljoin(&#39;https://api.ailoot.ai&#39;,path);z=urlsplit(u)\n    if z.scheme!=&#39;https&#39; or z.netloc!=&#39;api.ailoot.ai&#39; or z.username or z.password:raise SystemExit(&#39;Use the actual returned Ailoot owned content URL&#39;)\n    target=Path(&#39;owned-&#39;+label+&#39;.bin&#39;)\n    subprocess.run([&#39;curl&#39;,&#39;--fail-with-body&#39;,&#39;--silent&#39;,&#39;--show-error&#39;,u,&#39;-H&#39;,&#39;Authorization: Bearer &#39;+os.environ[&#39;AILOOT_API_KEY&#39;],&#39;-D&#39;,str(target)+&#39;.headers&#39;,&#39;-o&#39;,str(target)],check=True)\nprint(&#39;All returned owned URLs saved; complete metadata, timing and usage remain in the JSON.&#39;)\nPY_ASSETS\n</code></pre></div></div></div></details><div class=\"card-result-process\" data-all-results><h5>Alle fertiggestellten Ergebnisse aufbewahren</h5><p class=\"note-s\">Speichern Sie jedes fertiggestellte Video oder jede zurückgegebene Datei; rufen Sie jede tatsächlich zurückgegebene Datei-URL ab.</p><p class=\"note-s\">Bewahren Sie jede tatsächliche, Ihnen zugeordnete Ausgabe und die zurückgegebenen gemessenen Metadaten auf.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Wenn die ursprüngliche Antwort geprüft werden muss</h5><p class=\"note-s\">503 result_pending_check + ursprüngliche id + X-Should-Retry:false; ursprüngliche Anfrage niemals wiederholen</p></div><details class=\"card-about\" data-output-fields><summary>Antwortfelder</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>Feld</th><th>Typ</th><th>Bedeutung</th></tr></thead><tbody><tr><th data-cell-label=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">index</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span>integer</td><td data-cell-label=\"Bedeutung\"><span class=\"card-cell-label\">Bedeutung</span>Bei null beginnende Position dieses Videos in der Ausgabeliste.</td></tr><tr><th data-cell-label=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">content_url</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span>string</td><td data-cell-label=\"Bedeutung\"><span class=\"card-cell-label\">Bedeutung</span>Signierte HTTPS-URL zum Herunterladen dieses fertiggestellten Videos.</td></tr><tr><th data-cell-label=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">sha256</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span>string | null</td><td data-cell-label=\"Bedeutung\"><span class=\"card-cell-label\">Bedeutung</span>SHA-256-Prüfsumme der ursprünglichen Videobytes; null, falls nicht verfügbar.</td></tr><tr><th data-cell-label=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">size_bytes</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span>integer | null</td><td data-cell-label=\"Bedeutung\"><span class=\"card-cell-label\">Bedeutung</span>Grösse der ursprünglichen Videodatei in Bytes; null, falls nicht verfügbar.</td></tr><tr><th data-cell-label=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">duration_ms</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span>integer | null</td><td data-cell-label=\"Bedeutung\"><span class=\"card-cell-label\">Bedeutung</span>Gemessene Videodauer in Millisekunden; null, falls nicht verfügbar.</td></tr><tr><th data-cell-label=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">width</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span>integer | null</td><td data-cell-label=\"Bedeutung\"><span class=\"card-cell-label\">Bedeutung</span>Videobreite in Pixeln; null, falls nicht verfügbar.</td></tr><tr><th data-cell-label=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">height</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span>integer | null</td><td data-cell-label=\"Bedeutung\"><span class=\"card-cell-label\">Bedeutung</span>Videohöhe in Pixeln; null, falls nicht verfügbar.</td></tr><tr><th data-cell-label=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">video_codec</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span>string | null</td><td data-cell-label=\"Bedeutung\"><span class=\"card-cell-label\">Bedeutung</span>Kennung des Videocodecs; null, falls nicht aufgezeichnet.</td></tr><tr><th data-cell-label=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">has_audio</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span>boolean | null</td><td data-cell-label=\"Bedeutung\"><span class=\"card-cell-label\">Bedeutung</span>Gibt an, ob das Video eine Audiospur enthält; null, falls nicht gemessen.</td></tr><tr><th data-cell-label=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">audio_codec</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span>string | null</td><td data-cell-label=\"Bedeutung\"><span class=\"card-cell-label\">Bedeutung</span>Kennung des Audiocodecs; null, wenn keine Kennung aufgezeichnet wurde.</td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>Fehler und nächste Schritte</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>Antwort</th><th>Bedingung</th><th>Nächster Schritt</th></tr></thead><tbody><tr><th data-cell-label=\"Antwort\" scope=\"row\"><span class=\"card-cell-label\">Antwort</span>404 · <code>not_found_error</code></th><td data-cell-label=\"Bedingung\"><span class=\"card-cell-label\">Bedingung</span>Der Videozugriff ist nicht verfügbar oder diese Video-ID wurde nicht gefunden.</td><td data-cell-label=\"Nächster Schritt\"><span class=\"card-cell-label\">Nächster Schritt</span>Prüfen Sie den Videozugriff. Verwenden Sie bei einem bestehenden Video dessen ursprüngliche öffentliche ID und denselben API-Schlüssel.</td></tr><tr><th data-cell-label=\"Antwort\" scope=\"row\"><span class=\"card-cell-label\">Antwort</span>401 · <code>authentication_error</code></th><td data-cell-label=\"Bedingung\"><span class=\"card-cell-label\">Bedingung</span>Der API-Schlüssel stimmt nicht mit dem authentifizierten Konto überein.</td><td data-cell-label=\"Nächster Schritt\"><span class=\"card-cell-label\">Nächster Schritt</span>Prüfen Sie vor dem Einreichen Ihren API-Schlüssel und den Kontozugriff.</td></tr><tr><th data-cell-label=\"Antwort\" scope=\"row\"><span class=\"card-cell-label\">Antwort</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"Bedingung\"><span class=\"card-cell-label\">Bedingung</span>Die Anfrage konnte nicht gelesen werden oder der Downloadindex ist ungültig.</td><td data-cell-label=\"Nächster Schritt\"><span class=\"card-cell-label\">Nächster Schritt</span>Korrigieren Sie den Anfragetext. Wählen Sie für einen Download einen Ausgabeindex, den die ursprüngliche Aufgabe zurückgegeben hat.</td></tr><tr><th data-cell-label=\"Antwort\" scope=\"row\"><span class=\"card-cell-label\">Antwort</span>422 · <code>price_unavailable</code></th><td data-cell-label=\"Bedingung\"><span class=\"card-cell-label\">Bedingung</span>Für die ausgewählte Videokonfiguration lässt sich kein Preis ermitteln.</td><td data-cell-label=\"Nächster Schritt\"><span class=\"card-cell-label\">Nächster Schritt</span>Wählen Sie eine unterstützte Videokonfiguration und ergänzen Sie die erforderlichen Optionen, bevor Sie eine korrigierte Anfrage einreichen.</td></tr><tr><th data-cell-label=\"Antwort\" scope=\"row\"><span class=\"card-cell-label\">Antwort</span>422 · <code>invalid_request_error</code></th><td data-cell-label=\"Bedingung\"><span class=\"card-cell-label\">Bedingung</span>Eine Videoeingabe oder eine ursprüngliche Fortsetzungsaufgabe ist ungültig.</td><td data-cell-label=\"Nächster Schritt\"><span class=\"card-cell-label\">Nächster Schritt</span>Verwenden Sie gültige HTTPS-Eingaben. Verwenden Sie für eine Fortsetzung die ursprüngliche öffentliche Video-ID Ihres fertiggestellten Videos mit demselben API-Schlüssel.</td></tr><tr><th data-cell-label=\"Antwort\" scope=\"row\"><span class=\"card-cell-label\">Antwort</span>402 · <code>billing_error</code></th><td data-cell-label=\"Bedingung\"><span class=\"card-cell-label\">Bedingung</span>Das verfügbare Guthaben oder die geltenden Limiten erlauben keine Reservierung.</td><td data-cell-label=\"Nächster Schritt\"><span class=\"card-cell-label\">Nächster Schritt</span>Prüfen Sie Ihr verfügbares Guthaben und Ihre Limiten, bevor Sie eine neue Anfrage senden.</td></tr><tr><th data-cell-label=\"Antwort\" scope=\"row\"><span class=\"card-cell-label\">Antwort</span>503 · <code>server_error</code></th><td data-cell-label=\"Bedingung\"><span class=\"card-cell-label\">Bedingung</span>Videoprüfung, Speicher oder Dienstzugriff ist vorübergehend nicht verfügbar.</td><td data-cell-label=\"Nächster Schritt\"><span class=\"card-cell-label\">Nächster Schritt</span>Warten Sie, bis der Dienst verfügbar ist. Falls Sie bereits eine Video-ID besitzen, prüfen Sie diese ursprüngliche Aufgabe, statt eine weitere Erzeugung zu erstellen.</td></tr><tr><th data-cell-label=\"Antwort\" scope=\"row\"><span class=\"card-cell-label\">Antwort</span>503 · <code>result_pending_check</code></th><td data-cell-label=\"Bedingung\"><span class=\"card-cell-label\">Bedingung</span>Das ursprüngliche Videoergebnis und die Abbuchung müssen geprüft werden.</td><td data-cell-label=\"Nächster Schritt\"><span class=\"card-cell-label\">Nächster Schritt</span>Bewahren Sie die zurückgegebene Video-ID auf und prüfen Sie diese Aufgabe. Senden Sie während der Prüfung keine ersetzende Erzeugungsanfrage.</td></tr><tr><th data-cell-label=\"Antwort\" scope=\"row\"><span class=\"card-cell-label\">Antwort</span>503 · <code>owned_result_unavailable</code></th><td data-cell-label=\"Bedingung\"><span class=\"card-cell-label\">Bedingung</span>Der Download des bestehenden Videos ist vorübergehend nicht verfügbar.</td><td data-cell-label=\"Nächster Schritt\"><span class=\"card-cell-label\">Nächster Schritt</span>Prüfen Sie später dieselbe Videoaufgabe und laden Sie deren bestehende Ausgabe herunter. Eine neue Erzeugung erstellt einen separaten Vorgang.</td></tr><tr><th data-cell-label=\"Antwort\" scope=\"row\"><span class=\"card-cell-label\">Antwort</span>409 · <code>video_not_ready</code></th><td data-cell-label=\"Bedingung\"><span class=\"card-cell-label\">Bedingung</span>Der Videoinhalt wurde nicht veröffentlicht.</td><td data-cell-label=\"Nächster Schritt\"><span class=\"card-cell-label\">Nächster Schritt</span>Prüfen Sie den ursprünglichen Aufgabenstatus. Laden Sie die Ausgabe herunter, nachdem completed gemeldet wird; bei failed befolgen Sie den Hinweis zur Prüfung der Abbuchung.</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Aliasnamen</h3><h4>Modellaliasnamen</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=black-forest-labs%2Fflux-3-video&amp;route=Ultra&amp;caller=black-forest-labs%2Fflux-3-video&amp;fmt=videos\"><code>black-forest-labs/flux-3-video</code></a></span></p><h4>Aliasnamen für Methodenpfade</h4><p class=\"note-s\">Verwenden Sie die oben angezeigten Methodenpfade.</p><h4>Zugehörige Aufrufer-IDs</h4><p class=\"note-s\"><a href=\"#m=black-forest-labs%2Fflux-3-video&amp;route=Ultra&amp;caller=black-forest-labs%2Fflux-3-video&amp;fmt=videos\"><code>black-forest-labs/flux-3-video</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "black-forest-labs/flux-3-video",
        "fmt": "videos",
        "http": "POST",
        "path": "/v1/videos",
        "request_model_id": "black-forest-labs/flux-3-video",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|videos|/v1/videos|black-forest-labs%2Fflux-3-video",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "billing_basis": {
          "basis": "original_invoice_usd",
          "description": "Die angezeigten Tarife dienen zur Kostenschätzung vor der Generierung. Der endgültige Betrag wird aus den für die ursprüngliche Generierung erfassten Kosten berechnet. Die gemessene Ausgabedauer und prognostizierte Mengen sind nicht die endgültige abrechenbare Menge.",
          "forecast_quantity_is_estimate": true,
          "physical_output_is_billable_quantity": false,
          "version": "original_invoice_usd_v1"
        },
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Bewahren Sie jede tatsächliche, Ihnen zugeordnete Ausgabe und die zurückgegebenen gemessenen Metadaten auf.",
            "defaults": {
              "aspect_ratio": null,
              "duration": null,
              "generate_audio": "endpoint capability flag when published; omitted unknown stays unknown; never guarantees audio track",
              "resolution": null,
              "seed": null,
              "size": null,
              "wire_omissions_preserved": true
            },
            "errors": [
              {
                "condition": "Der Videozugriff ist nicht verfügbar oder diese Video-ID wurde nicht gefunden.",
                "http_status": 404,
                "public_identifier_field": "error.type",
                "recovery": "Prüfen Sie den Videozugriff. Verwenden Sie bei einem bestehenden Video dessen ursprüngliche öffentliche ID und denselben API-Schlüssel.",
                "type": "not_found_error"
              },
              {
                "condition": "Der API-Schlüssel stimmt nicht mit dem authentifizierten Konto überein.",
                "http_status": 401,
                "public_identifier_field": "error.type",
                "recovery": "Prüfen Sie vor dem Einreichen Ihren API-Schlüssel und den Kontozugriff.",
                "type": "authentication_error"
              },
              {
                "condition": "Die Anfrage konnte nicht gelesen werden oder der Downloadindex ist ungültig.",
                "http_status": 400,
                "public_identifier_field": "error.type",
                "recovery": "Korrigieren Sie den Anfragetext. Wählen Sie für einen Download einen Ausgabeindex, den die ursprüngliche Aufgabe zurückgegeben hat.",
                "type": "invalid_request_error"
              },
              {
                "condition": "Für die ausgewählte Videokonfiguration lässt sich kein Preis ermitteln.",
                "http_status": 422,
                "public_identifier_field": "error.type",
                "recovery": "Wählen Sie eine unterstützte Videokonfiguration und ergänzen Sie die erforderlichen Optionen, bevor Sie eine korrigierte Anfrage einreichen.",
                "type": "price_unavailable"
              },
              {
                "condition": "Eine Videoeingabe oder eine ursprüngliche Fortsetzungsaufgabe ist ungültig.",
                "http_status": 422,
                "public_identifier_field": "error.type",
                "recovery": "Verwenden Sie gültige HTTPS-Eingaben. Verwenden Sie für eine Fortsetzung die ursprüngliche öffentliche Video-ID Ihres fertiggestellten Videos mit demselben API-Schlüssel.",
                "type": "invalid_request_error"
              },
              {
                "condition": "Das verfügbare Guthaben oder die geltenden Limiten erlauben keine Reservierung.",
                "http_status": 402,
                "public_identifier_field": "error.type",
                "recovery": "Prüfen Sie Ihr verfügbares Guthaben und Ihre Limiten, bevor Sie eine neue Anfrage senden.",
                "type": "billing_error"
              },
              {
                "condition": "Videoprüfung, Speicher oder Dienstzugriff ist vorübergehend nicht verfügbar.",
                "http_status": 503,
                "public_identifier_field": "error.type",
                "recovery": "Warten Sie, bis der Dienst verfügbar ist. Falls Sie bereits eine Video-ID besitzen, prüfen Sie diese ursprüngliche Aufgabe, statt eine weitere Erzeugung zu erstellen.",
                "type": "server_error"
              },
              {
                "code": "result_pending_check",
                "condition": "Das ursprüngliche Videoergebnis und die Abbuchung müssen geprüft werden.",
                "http_status": 503,
                "public_identifier_field": "error.code",
                "recovery": "Bewahren Sie die zurückgegebene Video-ID auf und prüfen Sie diese Aufgabe. Senden Sie während der Prüfung keine ersetzende Erzeugungsanfrage.",
                "type": "server_error"
              },
              {
                "code": "owned_result_unavailable",
                "condition": "Der Download des bestehenden Videos ist vorübergehend nicht verfügbar.",
                "http_status": 503,
                "public_identifier_field": "error.code",
                "recovery": "Prüfen Sie später dieselbe Videoaufgabe und laden Sie deren bestehende Ausgabe herunter. Eine neue Erzeugung erstellt einen separaten Vorgang.",
                "type": "server_error"
              },
              {
                "condition": "Der Videoinhalt wurde nicht veröffentlicht.",
                "http_status": 409,
                "public_identifier_field": "error.type",
                "recovery": "Prüfen Sie den ursprünglichen Aufgabenstatus. Laden Sie die Ausgabe herunter, nachdem completed gemeldet wird; bei failed befolgen Sie den Hinweis zur Prüfung der Abbuchung.",
                "type": "video_not_ready"
              }
            ],
            "hints": [
              "No null values or duplicate keys at any JSON object level",
              "No duration/resolution/aspect default is inserted",
              "Prompt required for all21 despite broader official image-only schema",
              "A request must also pass model membership, exact price card, SKU selection and frozen quote construction",
              "Non-string known trace fields reject; other trace keys retain arbitrary JSON",
              "No n/output-count/client price fields accepted",
              "Provider passthrough disabled for all21; feed allowlist names do not supply provider slug/value contract"
            ],
            "ignored_fields": [],
            "lifecycle": {
              "cancel_endpoint": null,
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{public_id}/content",
                  "query": {
                    "index": "actual output index"
                  }
                }
              ],
              "create": {
                "http": "POST",
                "path": "/v1/videos"
              },
              "mode": "submit_once_poll_original",
              "public_id": "video_<uuid>; owner user/key/group scope",
              "status": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{public_id}"
                }
              ],
              "submit_status": 202,
              "terminal_failure_public": "200 failed + charge_pending_check=true; inspect original operation",
              "terminal_provider_states": [
                "failed",
                "cancelled",
                "expired"
              ],
              "unknown": "503 result_pending_check + ursprüngliche id + X-Should-Retry:false; ursprüngliche Anfrage niemals wiederholen"
            },
            "material_combinations": [
              {
                "mode": "text_to_video",
                "model": {
                  "enum": [
                    "black-forest-labs/flux-3-video"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "Geben Sie prompt als Text und duration in ganzen Sekunden an. Wählen Sie eine unterstützte Auflösung und bei Bedarf ein Seitenverhältnis.",
                "required": [
                  "model",
                  "prompt",
                  "duration"
                ],
                "required_material": "Eine schriftliche Beschreibung."
              },
              {
                "exact_keys": [
                  "type",
                  "image_url",
                  "frame_type"
                ],
                "mode": "image_to_video",
                "model": {
                  "enum": [
                    "black-forest-labs/flux-3-video"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "frame_images ist ein Array. Jedes Bildobjekt enthält type, image_url und frame_type; image_url enthält url. Setzen Sie type auf image_url. Verwenden Sie first_frame mit einem optionalen last_frame. Jede Bildrolle darf höchstens einmal vorkommen. Geben Sie für jedes Bild eine öffentliche HTTPS-Bild-URL an. Wählen Sie eine unterstützte Auflösung und bei Bedarf ein Seitenverhältnis.",
                "required": [
                  "model",
                  "prompt",
                  "duration",
                  "frame_images"
                ],
                "required_material": "Eine schriftliche Beschreibung und ein Bild für das erste Einzelbild."
              },
              {
                "mode": "Continue a video",
                "model": {
                  "enum": [
                    "black-forest-labs/flux-3-video"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "Setzen Sie previous_job_id auf die öffentliche Video-ID Ihres fertiggestellten Originals. Verwenden Sie dasselbe Modell, Konto und denselben API-Schlüssel. Bewahren Sie die bestehende Aufgabenkennung auf; diese Anfrage erstellt eine separate Fortsetzungsaufgabe. Wählen Sie eine unterstützte Auflösung und bei Bedarf ein Seitenverhältnis.",
                "required": [
                  "model",
                  "prompt",
                  "duration",
                  "previous_job_id"
                ],
                "required_material": "Eine schriftliche Beschreibung und Ihr fertiggestelltes Originalvideo."
              }
            ],
            "operation_modes": [
              "text_to_video",
              "image_to_video_frame_images",
              "video_extension_or_continuation"
            ],
            "outputs": {
              "content_range_supported": true,
              "every_actual_output": true,
              "family": "video",
              "fields": [
                {
                  "condition": "Always present for each completed output.",
                  "description": "Bei null beginnende Position dieses Videos in der Ausgabeliste.",
                  "field_path": "outputs[].index",
                  "json_schema": {
                    "type": "integer"
                  },
                  "name": "index",
                  "nullable": false,
                  "type": "integer"
                },
                {
                  "condition": "Present after the owned result is available and a signed URL is created.",
                  "description": "Signierte HTTPS-URL zum Herunterladen dieses fertiggestellten Videos.",
                  "field_path": "outputs[].content_url",
                  "json_schema": {
                    "type": "string"
                  },
                  "name": "content_url",
                  "nullable": false,
                  "type": "string"
                },
                {
                  "condition": "A nonempty recorded digest is returned; otherwise null.",
                  "description": "SHA-256-Prüfsumme der ursprünglichen Videobytes; null, falls nicht verfügbar.",
                  "field_path": "outputs[].sha256",
                  "json_schema": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": "sha256",
                  "nullable": true,
                  "type": "string | null"
                },
                {
                  "condition": "Returned when the recorded file size is positive.",
                  "description": "Grösse der ursprünglichen Videodatei in Bytes; null, falls nicht verfügbar.",
                  "field_path": "outputs[].size_bytes",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "size_bytes",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Returned when the measured duration is positive.",
                  "description": "Gemessene Videodauer in Millisekunden; null, falls nicht verfügbar.",
                  "field_path": "outputs[].duration_ms",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "duration_ms",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Width, height and the video codec are returned together when recorded.",
                  "description": "Videobreite in Pixeln; null, falls nicht verfügbar.",
                  "field_path": "outputs[].width",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "width",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Width, height and the video codec are returned together when recorded.",
                  "description": "Videohöhe in Pixeln; null, falls nicht verfügbar.",
                  "field_path": "outputs[].height",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "height",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Returned together with positive recorded width and height.",
                  "description": "Kennung des Videocodecs; null, falls nicht aufgezeichnet.",
                  "field_path": "outputs[].video_codec",
                  "json_schema": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": "video_codec",
                  "nullable": true,
                  "type": "string | null"
                },
                {
                  "condition": "Returned when width, height and the video codec are recorded; false is a known result.",
                  "description": "Gibt an, ob das Video eine Audiospur enthält; null, falls nicht gemessen.",
                  "field_path": "outputs[].has_audio",
                  "json_schema": {
                    "type": [
                      "boolean",
                      "null"
                    ]
                  },
                  "name": "has_audio",
                  "nullable": true,
                  "type": "boolean | null"
                },
                {
                  "condition": "Returned when video metadata is recorded and the audio codec identifier is nonempty.",
                  "description": "Kennung des Audiocodecs; null, wenn keine Kennung aufgezeichnet wurde.",
                  "field_path": "outputs[].audio_codec",
                  "json_schema": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": "audio_codec",
                  "nullable": true,
                  "type": "string | null"
                }
              ],
              "format": "original MP4 bytes; no normalization/transcode",
              "max_aggregate_seconds": 2400,
              "max_bytes_per_output": 67108864,
              "max_seconds_per_output": 600,
              "result": "Signierte Inhalts-URLs der Ihnen zugeordneten Ausgaben",
              "unmeasured_fields_nullable": true
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "black-forest-labs/flux-3-video"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "schema": {
                  "const": "black-forest-labs/flux-3-video"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "minLength": 1,
                "name": "prompt",
                "required": true,
                "schema": {
                  "minLength": 1,
                  "type": "string",
                  "x-source-max-utf8-bytes": 10000,
                  "x-source-non-whitespace": true
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  5,
                  6,
                  7,
                  8,
                  9,
                  10,
                  11,
                  12,
                  13,
                  14,
                  15,
                  16,
                  17,
                  18,
                  19,
                  20
                ],
                "enum_known": true,
                "maximum": 600,
                "minimum": 1,
                "name": "duration",
                "required": true,
                "schema": {
                  "enum": [
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12,
                    13,
                    14,
                    15,
                    16,
                    17,
                    18,
                    19,
                    20
                  ],
                  "maximum": 600,
                  "minimum": 1,
                  "type": "integer"
                },
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "720p",
                  "1080p"
                ],
                "enum_known": true,
                "name": "resolution",
                "required": false,
                "schema": {
                  "enum": [
                    "720p",
                    "1080p"
                  ]
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "21:9",
                  "16:9",
                  "4:3",
                  "1:1",
                  "3:4",
                  "9:16"
                ],
                "enum_known": true,
                "name": "aspect_ratio",
                "required": false,
                "schema": {
                  "enum": [
                    "21:9",
                    "16:9",
                    "4:3",
                    "1:1",
                    "3:4",
                    "9:16"
                  ]
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  false,
                  true
                ],
                "enum_known": true,
                "name": "generate_audio",
                "required": false,
                "schema": {
                  "enum": [
                    false,
                    true
                  ],
                  "x-omitted-default": "published audio capability when true/false; unknown if null; output audio must be measured"
                },
                "type": "boolean"
              },
              {
                "availability": "source_interface",
                "conditions": "Diese Schlüssel beschreiben jedes Bildobjekt; image_url enthält ausschliesslich url. Lassen Sie frame_images bei einer reinen Textanfrage weg.",
                "content": "Array von Bildobjekten. Jedes Objekt enthält type=image_url, image_url mit url und frame_type. Verwenden Sie eine HTTPS-Bild-URL und setzen Sie frame_type auf first_frame oder last_frame. Jede Bildrolle darf höchstens einmal vorkommen.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "exact_keys": [
                  "type",
                  "image_url",
                  "frame_type"
                ],
                "maxItems": 2,
                "max_items": 2,
                "minItems": 1,
                "min_items": 1,
                "name": "frame_images",
                "required": false,
                "schema": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "frame_type": {
                        "enum": [
                          "first_frame",
                          "last_frame"
                        ]
                      },
                      "image_url": {
                        "additionalProperties": false,
                        "properties": {
                          "url": {
                            "format": "uri",
                            "pattern": "^https://",
                            "type": "string",
                            "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "type": "object"
                      },
                      "type": {
                        "const": "image_url"
                      }
                    },
                    "required": [
                      "type",
                      "image_url",
                      "frame_type"
                    ],
                    "type": "object"
                  },
                  "maxItems": 2,
                  "minItems": 1,
                  "type": "array",
                  "x-source-unique-role": "frame_type"
                },
                "type": "array"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maxItems": 0,
                "name": "input_references",
                "required": false,
                "schema": {
                  "items": false,
                  "maxItems": 0,
                  "type": "array"
                },
                "type": "array"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "previous_job_id",
                "pattern": "^video_[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
                "required": false,
                "schema": {
                  "pattern": "^video_[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
                  "type": "string",
                  "x-source-rule": "real public original id, sameowner/account/proxy/model and published/completed"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "callback_url",
                "pattern": "^https://",
                "required": false,
                "schema": {
                  "format": "uri",
                  "pattern": "^https://",
                  "type": "string",
                  "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maxLength": 256,
                "name": "session_id",
                "required": false,
                "schema": {
                  "maxLength": 256,
                  "type": "string"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "trace",
                "required": false,
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "generation_name": {
                      "type": "string"
                    },
                    "parent_span_id": {
                      "type": "string"
                    },
                    "span_name": {
                      "type": "string"
                    },
                    "trace_id": {
                      "type": "string"
                    },
                    "trace_name": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "type": "object"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maxLength": 256,
                "name": "user",
                "required": false,
                "schema": {
                  "maxLength": 256,
                  "type": "string"
                },
                "type": "string"
              }
            ],
            "request_schema": {
              "$schema": "https://json-schema.org/draft/2020-12/schema",
              "additionalProperties": false,
              "properties": {
                "aspect_ratio": {
                  "enum": [
                    "21:9",
                    "16:9",
                    "4:3",
                    "1:1",
                    "3:4",
                    "9:16"
                  ]
                },
                "callback_url": {
                  "format": "uri",
                  "pattern": "^https://",
                  "type": "string",
                  "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                },
                "creativity": false,
                "duration": {
                  "enum": [
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12,
                    13,
                    14,
                    15,
                    16,
                    17,
                    18,
                    19,
                    20
                  ],
                  "maximum": 600,
                  "minimum": 1,
                  "type": "integer"
                },
                "frame_images": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "frame_type": {
                        "enum": [
                          "first_frame",
                          "last_frame"
                        ]
                      },
                      "image_url": {
                        "additionalProperties": false,
                        "properties": {
                          "url": {
                            "format": "uri",
                            "pattern": "^https://",
                            "type": "string",
                            "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "type": "object"
                      },
                      "type": {
                        "const": "image_url"
                      }
                    },
                    "required": [
                      "type",
                      "image_url",
                      "frame_type"
                    ],
                    "type": "object"
                  },
                  "maxItems": 2,
                  "minItems": 1,
                  "type": "array",
                  "x-source-unique-role": "frame_type"
                },
                "generate_audio": {
                  "enum": [
                    false,
                    true
                  ],
                  "x-omitted-default": "published audio capability when true/false; unknown if null; output audio must be measured"
                },
                "input_references": {
                  "items": false,
                  "maxItems": 0,
                  "type": "array"
                },
                "model": {
                  "const": "black-forest-labs/flux-3-video"
                },
                "previous_job_id": {
                  "pattern": "^video_[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
                  "type": "string",
                  "x-source-rule": "real public original id, sameowner/account/proxy/model and published/completed"
                },
                "prompt": {
                  "minLength": 1,
                  "type": "string",
                  "x-source-max-utf8-bytes": 10000,
                  "x-source-non-whitespace": true
                },
                "provider": false,
                "resolution": {
                  "enum": [
                    "720p",
                    "1080p"
                  ]
                },
                "seed": false,
                "session_id": {
                  "maxLength": 256,
                  "type": "string"
                },
                "size": false,
                "trace": {
                  "additionalProperties": true,
                  "properties": {
                    "generation_name": {
                      "type": "string"
                    },
                    "parent_span_id": {
                      "type": "string"
                    },
                    "span_name": {
                      "type": "string"
                    },
                    "trace_id": {
                      "type": "string"
                    },
                    "trace_name": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "upscale_factor": false,
                "user": {
                  "maxLength": 256,
                  "type": "string"
                }
              },
              "required": [
                "model",
                "prompt",
                "duration"
              ],
              "title": "Video generation request",
              "type": "object",
              "x-source-global-rules": [
                "No null values or duplicate keys at any JSON object level",
                "No duration/resolution/aspect default is inserted",
                "Prompt required for all21 despite broader official image-only schema",
                "A request must also pass model membership, exact price card, SKU selection and frozen quote construction",
                "Non-string known trace fields reject; other trace keys retain arbitrary JSON",
                "No n/output-count/client price fields accepted",
                "Provider passthrough disabled for all21; feed allowlist names do not supply provider slug/value contract"
              ],
              "x-source-material-combinations": [
                "Exact model/card, positive published duration, model resolution/aspect membership and valid frozen quote are all required; independent enum arrays are not proven provider Cartesian combinations.",
                "Use exact published size or compatible resolution/aspect. Omitted options stay omitted; no guessed geometry.",
                "first_frame/last_frame roles each occur at most once; frame_images wins mode precedence over input_references.",
                "provider options are unavailable for this model despite any published passthrough-name allowlist.",
                "Continuation uses a real same-owner/account/proxy/model published completed public Ailoot video ID; constructible continuation is absent from current discovery profile projection."
              ]
            },
            "unsupported": [
              "size",
              "seed",
              "provider",
              "upscale_factor",
              "creativity"
            ]
          },
          "input": {
            "additional_properties": false,
            "content_type": "application/json",
            "material_types": [
              "text",
              "image"
            ],
            "optional_controls": [
              "resolution",
              "aspect_ratio",
              "generate_audio",
              "frame_images",
              "input_references",
              "previous_job_id",
              "callback_url",
              "session_id",
              "trace",
              "user"
            ],
            "required": [
              "model",
              "prompt",
              "duration"
            ]
          },
          "lifecycle": {
            "cancel_endpoint": null,
            "content": [
              {
                "http": "GET",
                "path": "/v1/videos/{public_id}/content",
                "query": {
                  "index": "actual output index"
                }
              }
            ],
            "create": {
              "http": "POST",
              "path": "/v1/videos"
            },
            "mode": "submit_once_poll_original",
            "public_id": "video_<uuid>; owner user/key/group scope",
            "status": [
              {
                "http": "GET",
                "path": "/v1/videos/{public_id}"
              }
            ],
            "submit_status": 202,
            "terminal_failure_public": "200 failed + charge_pending_check=true; inspect original operation",
            "terminal_provider_states": [
              "failed",
              "cancelled",
              "expired"
            ],
            "unknown": "503 result_pending_check + originalid + X-Should-Retry:false; never replay original"
          },
          "method": {
            "http": "POST",
            "path": "/v1/videos"
          },
          "method_aliases": [],
          "operation_modes": [
            "text_to_video",
            "image_to_video_frame_images",
            "video_extension_or_continuation"
          ],
          "output": {
            "content_range_supported": true,
            "every_actual_output": true,
            "family": "video",
            "fields": [
              {
                "condition": "Always present for each completed output.",
                "description": "Zero-based position of this video in the outputs list.",
                "field_path": "outputs[].index",
                "json_schema": {
                  "type": "integer"
                },
                "name": "index",
                "nullable": false,
                "type": "integer"
              },
              {
                "condition": "Present after the owned result is available and a signed URL is created.",
                "description": "Signed HTTPS download URL for this completed video.",
                "field_path": "outputs[].content_url",
                "json_schema": {
                  "type": "string"
                },
                "name": "content_url",
                "nullable": false,
                "type": "string"
              },
              {
                "condition": "A nonempty recorded digest is returned; otherwise null.",
                "description": "SHA-256 digest of the original video bytes; null if unavailable.",
                "field_path": "outputs[].sha256",
                "json_schema": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": "sha256",
                "nullable": true,
                "type": "string | null"
              },
              {
                "condition": "Returned when the recorded file size is positive.",
                "description": "Size of the original video file in bytes; null if unavailable.",
                "field_path": "outputs[].size_bytes",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "size_bytes",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Returned when the measured duration is positive.",
                "description": "Measured video duration in milliseconds; null if unavailable.",
                "field_path": "outputs[].duration_ms",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "duration_ms",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Width, height and the video codec are returned together when recorded.",
                "description": "Video width in pixels; null if unavailable.",
                "field_path": "outputs[].width",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "width",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Width, height and the video codec are returned together when recorded.",
                "description": "Video height in pixels; null if unavailable.",
                "field_path": "outputs[].height",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "height",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Returned together with positive recorded width and height.",
                "description": "Video codec identifier; null if not recorded.",
                "field_path": "outputs[].video_codec",
                "json_schema": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": "video_codec",
                "nullable": true,
                "type": "string | null"
              },
              {
                "condition": "Returned when width, height and the video codec are recorded; false is a known result.",
                "description": "Whether the video contains an audio track; null if not measured.",
                "field_path": "outputs[].has_audio",
                "json_schema": {
                  "type": [
                    "boolean",
                    "null"
                  ]
                },
                "name": "has_audio",
                "nullable": true,
                "type": "boolean | null"
              },
              {
                "condition": "Returned when video metadata is recorded and the audio codec identifier is nonempty.",
                "description": "Audio codec identifier; null when no identifier is recorded.",
                "field_path": "outputs[].audio_codec",
                "json_schema": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": "audio_codec",
                "nullable": true,
                "type": "string | null"
              }
            ],
            "format": "original MP4 bytes; no normalization/transcode",
            "max_aggregate_seconds": 2400,
            "max_bytes_per_output": 67108864,
            "max_seconds_per_output": 600,
            "result": "signed owned content URLs",
            "unmeasured_fields_nullable": true
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "billing_component_role": "reference_output_rate",
              "billing_input": false,
              "estimate_only": true,
              "fallback_reference": true,
              "quoted_unit": "per output second",
              "rate_modes": [
                "text_to_video",
                "image_to_video_frame_images"
              ],
              "selectable_request_branch": false,
              "selector_reference_only": true
            },
            "label": "Text zu Video · Bild zu Video (Einzelbilder) · Referenzpreis",
            "units": [
              {
                "amount": "0.34",
                "amount_unit": "usd_per_exact_physical_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "cents_per_second_output",
                "label": "Output video second reference rate",
                "native_amount_usd_per_unit": "0.34",
                "native_quantity": 1,
                "public_unit_label": "per output second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "resolution: 1080p",
              "quoted_unit": "per video second"
            },
            "label": "Videopreis",
            "units": [
              {
                "amount": "0.58",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "cents_per_second_output_1080p",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.58",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "resolution: 720p",
              "quoted_unit": "per video second"
            },
            "label": "Videopreis",
            "units": [
              {
                "amount": "0.34",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "cents_per_second_output_720p",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.34",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "Eingabe: video_continuation; Auflösung: 1080p",
              "quoted_unit": "per video second"
            },
            "label": "Videopreis",
            "units": [
              {
                "amount": "1.06",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "cents_per_second_video_continuation_1080p",
                "label": "Video price",
                "native_amount_usd_per_unit": "1.06",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "input: video_continuation; resolution: 720p",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.82",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "cents_per_second_video_continuation_720p",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.82",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "basis": "Diese Schätzung ist weder eine zusätzliche Gebühr noch ein fester Tarif für die abgeschlossene Generierung.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Geschätzte Erzeugungskosten",
            "units": [
              {
                "amount": "1.7",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "1.7",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_REQUEST'\nfrom pathlib import Path\nPath('request.json').write_text('{\"aspect_ratio\":\"16:9\",\"duration\":8,\"model\":\"black-forest-labs/flux-3-video\",\"prompt\":\"A serene mountain landscape at sunset\",\"resolution\":\"720p\"}', encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path('result.json').read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint('Keep the complete JSON and response headers; do not resubmit an unknown creation.')\nPY_RESULT\n",
            "label": "curl · create video",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_STATUS_URL'\nimport json\nfrom pathlib import Path\nfrom urllib.parse import quote\nr=json.loads(Path('result.json').read_text())\nif not isinstance(r.get('id'),str) or not r['id']:raise SystemExit('Keep the original response and headers for reconciliation; no returned ID')\nPath('status-url.txt').write_text('https://api.ailoot.ai/v1/videos/'+quote(r['id'],safe=''))\nPY_STATUS_URL\ncurl --fail-with-body --silent --show-error \"$(cat status-url.txt)\" \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -D status-headers.txt -o status.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path('status.json').read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint('Keep the complete JSON and response headers; do not resubmit an unknown creation.')\nPY_RESULT\n",
            "label": "GET original status",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\nexport AILOOT_API_KEY\npython3 - <<'PY_ASSETS'\nimport json,os,subprocess\nfrom pathlib import Path\nfrom urllib.parse import urljoin,urlsplit\nr=json.loads(Path('status.json').read_text())\nif r.get('status')!='completed':raise SystemExit('Keep the original ID and read its status; never recreate an unknown job')\nif not isinstance(r.get('data'),list) or not r['data']:raise SystemExit('Keep the complete original status; no completed outputs supplied')\nurls=[]\nfor i,u in enumerate(r.get('data',[])):\n    if not isinstance(u,str):raise SystemExit('Keep the original response; unexpected asset shape')\n    urls.append((str(i),u))\nfor label,path in urls:\n    u=urljoin('https://api.ailoot.ai',path);z=urlsplit(u)\n    if z.scheme!='https' or z.netloc!='api.ailoot.ai' or z.username or z.password:raise SystemExit('Use the actual returned Ailoot owned content URL')\n    target=Path('owned-'+label+'.bin')\n    subprocess.run(['curl','--fail-with-body','--silent','--show-error',u,'-H','Authorization: Bearer '+os.environ['AILOOT_API_KEY'],'-D',str(target)+'.headers','-o',str(target)],check=True)\nprint('All returned owned URLs saved; complete metadata, timing and usage remain in the JSON.')\nPY_ASSETS\n",
            "label": "Save every completed owned output",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "videos",
        "hints": [],
        "http": "POST",
        "in": null,
        "input": [
          "text",
          "image"
        ],
        "label": "Видео",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "out": null,
        "output": [
          "video"
        ],
        "path": "/v1/videos",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "original_invoice_usd",
          "image_input_price": null,
          "image_output_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "billing_component_role": "reference_output_rate",
              "billing_input": false,
              "estimate_only": true,
              "fallback_reference": true,
              "quoted_unit": "per output second",
              "rate_modes": [
                "text_to_video",
                "image_to_video_frame_images"
              ],
              "selectable_request_branch": false,
              "selector_reference_only": true
            },
            "label": "Text to video · Image to video (frame images) · reference rate",
            "units": [
              {
                "amount": "0.34",
                "amount_unit": "usd_per_exact_physical_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "cents_per_second_output",
                "label": "Output video second reference rate",
                "native_amount_usd_per_unit": "0.34",
                "native_quantity": 1,
                "public_unit_label": "per output second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "resolution: 1080p",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.58",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "cents_per_second_output_1080p",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.58",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "resolution: 720p",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.34",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "cents_per_second_output_720p",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.34",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "input: video_continuation; resolution: 1080p",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "1.06",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "cents_per_second_video_continuation_1080p",
                "label": "Video price",
                "native_amount_usd_per_unit": "1.06",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "input: video_continuation; resolution: 720p",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.82",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "cents_per_second_video_continuation_720p",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.82",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "basis": "This estimate is not an additional charge or a fixed rate for the completed generation.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Estimated generation cost",
            "units": [
              {
                "amount": "1.7",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "1.7",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "request_model_id": "black-forest-labs/flux-3-video",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/videos/{public_id}",
          "GET /v1/videos/{public_id}/content"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.34",
            "amount_unit": "usd_per_exact_physical_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "cents_per_second_output",
            "label": "Output video second reference rate",
            "native_amount_usd_per_unit": "0.34",
            "native_quantity": 1,
            "public_unit_label": "per output second",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_second"
          },
          {
            "amount": "0.58",
            "amount_unit": "usd_per_video_second",
            "billing_input": false,
            "estimate_only": true,
            "key": "cents_per_second_output_1080p",
            "label": "Video price",
            "native_amount_usd_per_unit": "0.58",
            "native_quantity": 1,
            "public_unit_label": "per video second",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_second"
          },
          {
            "amount": "0.34",
            "amount_unit": "usd_per_video_second",
            "billing_input": false,
            "estimate_only": true,
            "key": "cents_per_second_output_720p",
            "label": "Video price",
            "native_amount_usd_per_unit": "0.34",
            "native_quantity": 1,
            "public_unit_label": "per video second",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_second"
          },
          {
            "amount": "1.06",
            "amount_unit": "usd_per_video_second",
            "billing_input": false,
            "estimate_only": true,
            "key": "cents_per_second_video_continuation_1080p",
            "label": "Video price",
            "native_amount_usd_per_unit": "1.06",
            "native_quantity": 1,
            "public_unit_label": "per video second",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_second"
          },
          {
            "amount": "0.82",
            "amount_unit": "usd_per_video_second",
            "billing_input": false,
            "estimate_only": true,
            "key": "cents_per_second_video_continuation_720p",
            "label": "Video price",
            "native_amount_usd_per_unit": "0.82",
            "native_quantity": 1,
            "public_unit_label": "per video second",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_second"
          },
          {
            "amount": "1.7",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "forecast_usd",
            "label": "Estimated generation cost",
            "native_amount_usd_per_unit": "1.7",
            "native_quantity": 1,
            "public_unit_label": "estimate before generation",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "request_estimate"
          }
        ]
      }
    }
  ],
  "model_id": "black-forest-labs/flux-3-video",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "6afdcf95926d47e6c2e2085747d777dc28993670be0a21ac5c684d9852c8cbd2",
    "input_html_sha256": "a56703ba4f8d76cc267788be87fea6bebc3bdcfc303769857a6790287116a2f5",
    "private_audit_sha256": "09f3cda70df05053fc42db6468f2398c188591b9fe48efdb9530e2ff9bed06b6",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/de-ch/black-forest-labs-flux-3-video/",
    "description": "FLUX 3 Video erzeugt Clips mit synchronisiertem Dialog, Effekten und Atmosphäre aus Text, festgelegten Bildern oder einem fortzusetzenden Clip. Keyframes, Gestaltung mit mehreren Einstellungen und Draft-Verbesserung helfen, eine kontrollierte Abfolge zu entwickeln und den ausgewählten Take beizubehalten.",
    "locale": "de-ch",
    "md_url": "https://ailoot.ai/models/de-ch/black-forest-labs-flux-3-video/index.md",
    "title": "Black Forest Labs: FLUX.3 Video — Ailoot",
    "url": "https://ailoot.ai/models/de-ch/black-forest-labs-flux-3-video/"
  },
  "rawModel": {
    "about": "FLUX 3 Video ist das multimodale Modell von Black Forest Labs zur Videogenerierung mit synchronisiertem Audio. Es erstellt Szenen aus einem Textbriefing, entwickelt Bewegung rund um festgelegte Bilder oder setzt einen vorhandenen Clip fort. Gesprochener Text, Effekte und Atmosphäre können gemeinsam mit den Bildern erzeugt werden und unterstützen eine kurze Szene, deren Kamerabewegung, Handlung und Ton als eine Abfolge gestaltet sind.\n\nBeschreiben Sie für Text-zu-Video Motiv, Umgebung, sichtbare Handlung, Kameraverhalten und Ton. Eine nützliche Produktszene kann mit einer weiten Ansicht beginnen, sich einem Materialdetail nähern und mit dem Produkt in Verwendung enden. Briefings für mehrere Einstellungen können jede Einstellung und den Übergang zwischen Kamerawinkeln benennen und dabei Motiv und visuellen Stil über die Abfolge hinweg konsistent halten. Typografie kann in der Szene erscheinen; geben Sie deshalb genaue Wörter und Platzierung an, wenn ein Schild oder Titel wichtig ist. Das Modell deckt Realfilm, Animation, Motion Graphics und stilisierte Darstellungen ab.\n\nBild-zu-Video verwendet ein bis zehn Keyframe-Bilder. Ein einzelnes Bild legt das Eröffnungsbild fest; ein Paar fixiert Anfang und Ende, während geordnete Bilder mit Zeitstempeln bestimmte Momente im Clip steuern. Diese Bilder werden zu Videobildern und dienen nicht nur als allgemeine Stilreferenzen. Bei drei oder mehr Bildern ohne Zeitstempel verlangt der Hersteller eine ausdrückliche Dauer: Erstes und letztes Bild fixieren die Endpunkte, die anderen werden gleichmässig dazwischen platziert. Bilder mit Zeitstempeln müssen zeitlich geordnet sein; automatische Dauer läuft bis zum aufgerundeten letzten Zeitstempel innerhalb des Maximums von 20 Sekunden. Bereiten Sie Keyframes mit kompatiblen Motiven, Bildausschnitten und visuellen Details vor und beschreiben Sie dann die Bewegung dazwischen. Für eine Produktenthüllung kann das erste Bild das geschlossene Objekt zeigen und das letzte die geöffnete Anordnung; die dazwischenliegende Handlung wird im Prompt festgelegt.\n\nVideofortsetzung knüpft an die letzten Bilder des bereitgestellten Clips an. Der Einführungsworkflow verwendet bis zu vier Sekunden vorhandenes Video und Audio als Kontext für die nächste Handlung und übernimmt Kameraverhalten, Bewegung und Ton über die Nahtstelle hinweg. Wählen Sie ein Quellende, das klar festlegt, wohin Motiv und Kamera sich bewegen, und beschreiben Sie, was danach geschieht. Fortsetzung unterscheidet sich vom Umschreiben einer vorhandenen Einstellung: FLUX Video Edit ist ein separates Bearbeitungsmodell und wird nicht Teil des Generierungsmodells, nur weil beide Video akzeptieren.\n\nText- und bildgesteuerte Generierung unterstützen Clips von 5 bis 20 Sekunden. Die modusspezifische Übersicht gibt Videofortsetzung einen Ausgabebereich von 5–15 Sekunden. Dauer und Seitenverhältnis lassen sich automatisch wählen; das Briefing kann auch ein unterstütztes Quer-, Quadrat- oder Hochformat angeben, darunter 21:9, 2:1, 16:9, 4:3, 1:1, 3:4, 9:16 und 9:21. Die Ausgabe hat 24 Bilder pro Sekunde. Wählen Sie die Dauer anhand weniger sichtbarer Handlungen, statt eine ganze Geschichte in eine kurze Generierung zu pressen.\n\nHD-Ausgabe entsteht direkt bei der Generierung; FHD, QHD und UHD stellen dieselbe Szene mit einem Video-Upsampler fertig. Für 16:9 betragen die gelieferten Abmessungen entsprechend 1280 × 704, 1920 × 1088, 2560 × 1440 und 3840 × 2176. Die Abmessungen sind an Vielfachen von 32 ausgerichtet, sodass eine benannte Auflösungsklasse von einer üblichen Ausgabegrösse abweichen kann. Beschneiden Sie das fertige Bild, wenn eine genaue Standardfläche benötigt wird, und bewahren Sie dabei die wichtigen Randinhalte. Höhere Auflösung ist ein Fertigstellungsschritt, keine andere Interpretation der Einstellung.\n\nNatives Audio ist standardmässig aktiviert und lässt sich für einen stummen Clip deaktivieren. Zitieren Sie für Dialog die Zeile, identifizieren Sie den Sprecher und beschreiben Sie die Sprechweise; mehrsprachige Sprachausgabe, Akzente und Lippensynchronisierung gehören zu den Audio-Video-Fähigkeiten des Modells. Verbinden Sie Dialog und Klanghinweise mit dem sichtbaren Ereignis, etwa einem sich schliessenden Deckel oder sich entfernenden Schritten. Prüfen Sie Stimme, Timing und gesprochenen Wortlaut gemeinsam mit dem Bild, statt Ton als eine nach der Generierung ergänzte unabhängige Ebene zu behandeln.\n\nDer Draft-Modus erzeugt eine HD-Vorschau und ein Draft-Bundle. Verbessern Sie das ausgewählte Bundle, um diese Generierung in voller Qualität zu rendern; denselben Prompt als neue Anfrage für ein vollständiges Rendering zu senden, ist eine neue Interpretation und kann einen anderen Take erzeugen. Drafts verwenden nur HD; die Verbesserung kann dagegen die vier Auflösungsklassen auswählen und verwendet standardmässig FHD. Dies ergibt eine praktische Abfolge: zunächst Handlung und Komposition erkunden, dann den gewählten Take in der vorgesehenen Ausgabegrösse fertigstellen.\n\nDer Herstellerworkflow liefert eine Aufgabenkennung, bevor das MP4 fertig ist, und stellt den abgeschlossenen Clip nach Ende der Verarbeitung bereit. Signierte Ergebnisadressen laufen nach ungefähr zwei Stunden ab; bewahren Sie deshalb die tatsächliche Datei auf, sobald die Einstellung ausgewählt ist. Prüfen Sie Keyframe-Übergänge, Schnitte, Typografie, Motivdetails und Audionahtstelle anhand des Briefings. Bewahren Sie für eine längere Abfolge die Referenzen und den Endkontext der gelungenen Einstellung als Eingabe für den nächsten Clip, statt anzunehmen, dass eine kurze Anfrage die gesamte Produktion enthält.",
    "alias_of": null,
    "aliases": [],
    "author": "Black Forest Labs",
    "available": null,
    "canonical_model": "black-forest-labs/flux-3-video",
    "capabilities": {
      "context_length": 0,
      "manufacturer_input": [
        "text",
        "image",
        "video"
      ],
      "manufacturer_output": [
        "video"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "1.7",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "forecast_usd",
            "label": "Estimated generation cost",
            "native_amount_usd_per_unit": "1.7",
            "native_quantity": 1,
            "public_unit_label": "estimate before generation",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "request_estimate"
          }
        ],
        "summary": "Die vollständigen Preisangaben zur Konfiguration finden Sie in den Details."
      }
    ],
    "ctx": null,
    "declared_tariff_references": [
      {
        "client_selectable": false,
        "key": "b4dc879135bc0b33150a530a",
        "label": "Preisreferenzen für Videokonfigurationen",
        "profiles": [
          {
            "basis": "Veröffentlichte Preisreferenz für die angezeigte Konfiguration. Die endgültige Abrechnung folgt der tatsächlich abgerechneten Konfiguration.",
            "dimensions": {
              "conditions": "In diesem Preisschlüssel ist keine zusätzliche Bedingung angegeben."
            },
            "label": "Videopreis",
            "units": [
              {
                "amount": "0.34",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "key": "video_second",
                "label": "Video price",
                "public_unit_label": "per video second",
                "quantity": 1,
                "rate_role": "typed_video_second_reference",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "basis": "Veröffentlichte Preisreferenz für die angezeigte Konfiguration. Die endgültige Abrechnung folgt der tatsächlich abgerechneten Konfiguration.",
            "dimensions": {
              "conditions": "resolution: 720p"
            },
            "label": "Videopreis",
            "units": [
              {
                "amount": "0.34",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "key": "video_second",
                "label": "Video price",
                "public_unit_label": "per video second",
                "quantity": 1,
                "rate_role": "typed_video_second_reference",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "basis": "Veröffentlichte Preisreferenz für die angezeigte Konfiguration. Die endgültige Abrechnung folgt der tatsächlich abgerechneten Konfiguration.",
            "dimensions": {
              "conditions": "resolution: 1080p"
            },
            "label": "Videopreis",
            "units": [
              {
                "amount": "0.58",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "key": "video_second",
                "label": "Video price",
                "public_unit_label": "per video second",
                "quantity": 1,
                "rate_role": "typed_video_second_reference",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "basis": "Veröffentlichte Preisreferenz für die angezeigte Konfiguration. Die endgültige Abrechnung folgt der tatsächlich abgerechneten Konfiguration.",
            "dimensions": {
              "conditions": "Eingabe: video_continuation; Auflösung: 720p"
            },
            "label": "Videopreis",
            "units": [
              {
                "amount": "0.82",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "key": "video_second",
                "label": "Video price",
                "public_unit_label": "per video second",
                "quantity": 1,
                "rate_role": "typed_video_second_reference",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "basis": "Veröffentlichte Preisreferenz für die angezeigte Konfiguration. Die endgültige Abrechnung folgt der tatsächlich abgerechneten Konfiguration.",
            "dimensions": {
              "conditions": "Eingabe: video_continuation; Auflösung: 1080p"
            },
            "label": "Videopreis",
            "units": [
              {
                "amount": "1.06",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "key": "video_second",
                "label": "Video price",
                "public_unit_label": "per video second",
                "quantity": 1,
                "rate_role": "typed_video_second_reference",
                "side": "out",
                "unit": "video_second"
              }
            ]
          }
        ]
      }
    ],
    "entity_type": "model",
    "formats": [
      "videos"
    ],
    "id": "black-forest-labs/flux-3-video",
    "input": [
      "text",
      "image"
    ],
    "kind": "video",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "billing_basis": {
          "basis": "original_invoice_usd",
          "description": "Die angezeigten Tarife dienen zur Kostenschätzung vor der Generierung. Der endgültige Betrag wird aus den für die ursprüngliche Generierung erfassten Kosten berechnet. Die gemessene Ausgabedauer und prognostizierte Mengen sind nicht die endgültige abrechenbare Menge.",
          "forecast_quantity_is_estimate": true,
          "physical_output_is_billable_quantity": false,
          "version": "original_invoice_usd_v1"
        },
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Bewahren Sie jede tatsächliche, Ihnen zugeordnete Ausgabe und die zurückgegebenen gemessenen Metadaten auf.",
            "defaults": {
              "aspect_ratio": null,
              "duration": null,
              "generate_audio": "endpoint capability flag when published; omitted unknown stays unknown; never guarantees audio track",
              "resolution": null,
              "seed": null,
              "size": null,
              "wire_omissions_preserved": true
            },
            "errors": [
              {
                "condition": "Der Videozugriff ist nicht verfügbar oder diese Video-ID wurde nicht gefunden.",
                "http_status": 404,
                "public_identifier_field": "error.type",
                "recovery": "Prüfen Sie den Videozugriff. Verwenden Sie bei einem bestehenden Video dessen ursprüngliche öffentliche ID und denselben API-Schlüssel.",
                "type": "not_found_error"
              },
              {
                "condition": "Der API-Schlüssel stimmt nicht mit dem authentifizierten Konto überein.",
                "http_status": 401,
                "public_identifier_field": "error.type",
                "recovery": "Prüfen Sie vor dem Einreichen Ihren API-Schlüssel und den Kontozugriff.",
                "type": "authentication_error"
              },
              {
                "condition": "Die Anfrage konnte nicht gelesen werden oder der Downloadindex ist ungültig.",
                "http_status": 400,
                "public_identifier_field": "error.type",
                "recovery": "Korrigieren Sie den Anfragetext. Wählen Sie für einen Download einen Ausgabeindex, den die ursprüngliche Aufgabe zurückgegeben hat.",
                "type": "invalid_request_error"
              },
              {
                "condition": "Für die ausgewählte Videokonfiguration lässt sich kein Preis ermitteln.",
                "http_status": 422,
                "public_identifier_field": "error.type",
                "recovery": "Wählen Sie eine unterstützte Videokonfiguration und ergänzen Sie die erforderlichen Optionen, bevor Sie eine korrigierte Anfrage einreichen.",
                "type": "price_unavailable"
              },
              {
                "condition": "Eine Videoeingabe oder eine ursprüngliche Fortsetzungsaufgabe ist ungültig.",
                "http_status": 422,
                "public_identifier_field": "error.type",
                "recovery": "Verwenden Sie gültige HTTPS-Eingaben. Verwenden Sie für eine Fortsetzung die ursprüngliche öffentliche Video-ID Ihres fertiggestellten Videos mit demselben API-Schlüssel.",
                "type": "invalid_request_error"
              },
              {
                "condition": "Das verfügbare Guthaben oder die geltenden Limiten erlauben keine Reservierung.",
                "http_status": 402,
                "public_identifier_field": "error.type",
                "recovery": "Prüfen Sie Ihr verfügbares Guthaben und Ihre Limiten, bevor Sie eine neue Anfrage senden.",
                "type": "billing_error"
              },
              {
                "condition": "Videoprüfung, Speicher oder Dienstzugriff ist vorübergehend nicht verfügbar.",
                "http_status": 503,
                "public_identifier_field": "error.type",
                "recovery": "Warten Sie, bis der Dienst verfügbar ist. Falls Sie bereits eine Video-ID besitzen, prüfen Sie diese ursprüngliche Aufgabe, statt eine weitere Erzeugung zu erstellen.",
                "type": "server_error"
              },
              {
                "code": "result_pending_check",
                "condition": "Das ursprüngliche Videoergebnis und die Abbuchung müssen geprüft werden.",
                "http_status": 503,
                "public_identifier_field": "error.code",
                "recovery": "Bewahren Sie die zurückgegebene Video-ID auf und prüfen Sie diese Aufgabe. Senden Sie während der Prüfung keine ersetzende Erzeugungsanfrage.",
                "type": "server_error"
              },
              {
                "code": "owned_result_unavailable",
                "condition": "Der Download des bestehenden Videos ist vorübergehend nicht verfügbar.",
                "http_status": 503,
                "public_identifier_field": "error.code",
                "recovery": "Prüfen Sie später dieselbe Videoaufgabe und laden Sie deren bestehende Ausgabe herunter. Eine neue Erzeugung erstellt einen separaten Vorgang.",
                "type": "server_error"
              },
              {
                "condition": "Der Videoinhalt wurde nicht veröffentlicht.",
                "http_status": 409,
                "public_identifier_field": "error.type",
                "recovery": "Prüfen Sie den ursprünglichen Aufgabenstatus. Laden Sie die Ausgabe herunter, nachdem completed gemeldet wird; bei failed befolgen Sie den Hinweis zur Prüfung der Abbuchung.",
                "type": "video_not_ready"
              }
            ],
            "hints": [
              "No null values or duplicate keys at any JSON object level",
              "No duration/resolution/aspect default is inserted",
              "Prompt required for all21 despite broader official image-only schema",
              "A request must also pass model membership, exact price card, SKU selection and frozen quote construction",
              "Non-string known trace fields reject; other trace keys retain arbitrary JSON",
              "No n/output-count/client price fields accepted",
              "Provider passthrough disabled for all21; feed allowlist names do not supply provider slug/value contract"
            ],
            "ignored_fields": [],
            "lifecycle": {
              "cancel_endpoint": null,
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{public_id}/content",
                  "query": {
                    "index": "actual output index"
                  }
                }
              ],
              "create": {
                "http": "POST",
                "path": "/v1/videos"
              },
              "mode": "submit_once_poll_original",
              "public_id": "video_<uuid>; owner user/key/group scope",
              "status": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{public_id}"
                }
              ],
              "submit_status": 202,
              "terminal_failure_public": "200 failed + charge_pending_check=true; inspect original operation",
              "terminal_provider_states": [
                "failed",
                "cancelled",
                "expired"
              ],
              "unknown": "503 result_pending_check + ursprüngliche id + X-Should-Retry:false; ursprüngliche Anfrage niemals wiederholen"
            },
            "material_combinations": [
              {
                "mode": "text_to_video",
                "model": {
                  "enum": [
                    "black-forest-labs/flux-3-video"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "Geben Sie prompt als Text und duration in ganzen Sekunden an. Wählen Sie eine unterstützte Auflösung und bei Bedarf ein Seitenverhältnis.",
                "required": [
                  "model",
                  "prompt",
                  "duration"
                ],
                "required_material": "Eine schriftliche Beschreibung."
              },
              {
                "exact_keys": [
                  "type",
                  "image_url",
                  "frame_type"
                ],
                "mode": "image_to_video",
                "model": {
                  "enum": [
                    "black-forest-labs/flux-3-video"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "frame_images ist ein Array. Jedes Bildobjekt enthält type, image_url und frame_type; image_url enthält url. Setzen Sie type auf image_url. Verwenden Sie first_frame mit einem optionalen last_frame. Jede Bildrolle darf höchstens einmal vorkommen. Geben Sie für jedes Bild eine öffentliche HTTPS-Bild-URL an. Wählen Sie eine unterstützte Auflösung und bei Bedarf ein Seitenverhältnis.",
                "required": [
                  "model",
                  "prompt",
                  "duration",
                  "frame_images"
                ],
                "required_material": "Eine schriftliche Beschreibung und ein Bild für das erste Einzelbild."
              },
              {
                "mode": "Continue a video",
                "model": {
                  "enum": [
                    "black-forest-labs/flux-3-video"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "Setzen Sie previous_job_id auf die öffentliche Video-ID Ihres fertiggestellten Originals. Verwenden Sie dasselbe Modell, Konto und denselben API-Schlüssel. Bewahren Sie die bestehende Aufgabenkennung auf; diese Anfrage erstellt eine separate Fortsetzungsaufgabe. Wählen Sie eine unterstützte Auflösung und bei Bedarf ein Seitenverhältnis.",
                "required": [
                  "model",
                  "prompt",
                  "duration",
                  "previous_job_id"
                ],
                "required_material": "Eine schriftliche Beschreibung und Ihr fertiggestelltes Originalvideo."
              }
            ],
            "operation_modes": [
              "text_to_video",
              "image_to_video_frame_images",
              "video_extension_or_continuation"
            ],
            "outputs": {
              "content_range_supported": true,
              "every_actual_output": true,
              "family": "video",
              "fields": [
                {
                  "condition": "Always present for each completed output.",
                  "description": "Bei null beginnende Position dieses Videos in der Ausgabeliste.",
                  "field_path": "outputs[].index",
                  "json_schema": {
                    "type": "integer"
                  },
                  "name": "index",
                  "nullable": false,
                  "type": "integer"
                },
                {
                  "condition": "Present after the owned result is available and a signed URL is created.",
                  "description": "Signierte HTTPS-URL zum Herunterladen dieses fertiggestellten Videos.",
                  "field_path": "outputs[].content_url",
                  "json_schema": {
                    "type": "string"
                  },
                  "name": "content_url",
                  "nullable": false,
                  "type": "string"
                },
                {
                  "condition": "A nonempty recorded digest is returned; otherwise null.",
                  "description": "SHA-256-Prüfsumme der ursprünglichen Videobytes; null, falls nicht verfügbar.",
                  "field_path": "outputs[].sha256",
                  "json_schema": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": "sha256",
                  "nullable": true,
                  "type": "string | null"
                },
                {
                  "condition": "Returned when the recorded file size is positive.",
                  "description": "Grösse der ursprünglichen Videodatei in Bytes; null, falls nicht verfügbar.",
                  "field_path": "outputs[].size_bytes",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "size_bytes",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Returned when the measured duration is positive.",
                  "description": "Gemessene Videodauer in Millisekunden; null, falls nicht verfügbar.",
                  "field_path": "outputs[].duration_ms",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "duration_ms",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Width, height and the video codec are returned together when recorded.",
                  "description": "Videobreite in Pixeln; null, falls nicht verfügbar.",
                  "field_path": "outputs[].width",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "width",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Width, height and the video codec are returned together when recorded.",
                  "description": "Videohöhe in Pixeln; null, falls nicht verfügbar.",
                  "field_path": "outputs[].height",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "height",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Returned together with positive recorded width and height.",
                  "description": "Kennung des Videocodecs; null, falls nicht aufgezeichnet.",
                  "field_path": "outputs[].video_codec",
                  "json_schema": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": "video_codec",
                  "nullable": true,
                  "type": "string | null"
                },
                {
                  "condition": "Returned when width, height and the video codec are recorded; false is a known result.",
                  "description": "Gibt an, ob das Video eine Audiospur enthält; null, falls nicht gemessen.",
                  "field_path": "outputs[].has_audio",
                  "json_schema": {
                    "type": [
                      "boolean",
                      "null"
                    ]
                  },
                  "name": "has_audio",
                  "nullable": true,
                  "type": "boolean | null"
                },
                {
                  "condition": "Returned when video metadata is recorded and the audio codec identifier is nonempty.",
                  "description": "Kennung des Audiocodecs; null, wenn keine Kennung aufgezeichnet wurde.",
                  "field_path": "outputs[].audio_codec",
                  "json_schema": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": "audio_codec",
                  "nullable": true,
                  "type": "string | null"
                }
              ],
              "format": "original MP4 bytes; no normalization/transcode",
              "max_aggregate_seconds": 2400,
              "max_bytes_per_output": 67108864,
              "max_seconds_per_output": 600,
              "result": "Signierte Inhalts-URLs der Ihnen zugeordneten Ausgaben",
              "unmeasured_fields_nullable": true
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "black-forest-labs/flux-3-video"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "schema": {
                  "const": "black-forest-labs/flux-3-video"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "minLength": 1,
                "name": "prompt",
                "required": true,
                "schema": {
                  "minLength": 1,
                  "type": "string",
                  "x-source-max-utf8-bytes": 10000,
                  "x-source-non-whitespace": true
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  5,
                  6,
                  7,
                  8,
                  9,
                  10,
                  11,
                  12,
                  13,
                  14,
                  15,
                  16,
                  17,
                  18,
                  19,
                  20
                ],
                "enum_known": true,
                "maximum": 600,
                "minimum": 1,
                "name": "duration",
                "required": true,
                "schema": {
                  "enum": [
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12,
                    13,
                    14,
                    15,
                    16,
                    17,
                    18,
                    19,
                    20
                  ],
                  "maximum": 600,
                  "minimum": 1,
                  "type": "integer"
                },
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "720p",
                  "1080p"
                ],
                "enum_known": true,
                "name": "resolution",
                "required": false,
                "schema": {
                  "enum": [
                    "720p",
                    "1080p"
                  ]
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "21:9",
                  "16:9",
                  "4:3",
                  "1:1",
                  "3:4",
                  "9:16"
                ],
                "enum_known": true,
                "name": "aspect_ratio",
                "required": false,
                "schema": {
                  "enum": [
                    "21:9",
                    "16:9",
                    "4:3",
                    "1:1",
                    "3:4",
                    "9:16"
                  ]
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  false,
                  true
                ],
                "enum_known": true,
                "name": "generate_audio",
                "required": false,
                "schema": {
                  "enum": [
                    false,
                    true
                  ],
                  "x-omitted-default": "published audio capability when true/false; unknown if null; output audio must be measured"
                },
                "type": "boolean"
              },
              {
                "availability": "source_interface",
                "conditions": "Diese Schlüssel beschreiben jedes Bildobjekt; image_url enthält ausschliesslich url. Lassen Sie frame_images bei einer reinen Textanfrage weg.",
                "content": "Array von Bildobjekten. Jedes Objekt enthält type=image_url, image_url mit url und frame_type. Verwenden Sie eine HTTPS-Bild-URL und setzen Sie frame_type auf first_frame oder last_frame. Jede Bildrolle darf höchstens einmal vorkommen.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "exact_keys": [
                  "type",
                  "image_url",
                  "frame_type"
                ],
                "maxItems": 2,
                "max_items": 2,
                "minItems": 1,
                "min_items": 1,
                "name": "frame_images",
                "required": false,
                "schema": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "frame_type": {
                        "enum": [
                          "first_frame",
                          "last_frame"
                        ]
                      },
                      "image_url": {
                        "additionalProperties": false,
                        "properties": {
                          "url": {
                            "format": "uri",
                            "pattern": "^https://",
                            "type": "string",
                            "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "type": "object"
                      },
                      "type": {
                        "const": "image_url"
                      }
                    },
                    "required": [
                      "type",
                      "image_url",
                      "frame_type"
                    ],
                    "type": "object"
                  },
                  "maxItems": 2,
                  "minItems": 1,
                  "type": "array",
                  "x-source-unique-role": "frame_type"
                },
                "type": "array"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maxItems": 0,
                "name": "input_references",
                "required": false,
                "schema": {
                  "items": false,
                  "maxItems": 0,
                  "type": "array"
                },
                "type": "array"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "previous_job_id",
                "pattern": "^video_[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
                "required": false,
                "schema": {
                  "pattern": "^video_[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
                  "type": "string",
                  "x-source-rule": "real public original id, sameowner/account/proxy/model and published/completed"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "callback_url",
                "pattern": "^https://",
                "required": false,
                "schema": {
                  "format": "uri",
                  "pattern": "^https://",
                  "type": "string",
                  "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maxLength": 256,
                "name": "session_id",
                "required": false,
                "schema": {
                  "maxLength": 256,
                  "type": "string"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "trace",
                "required": false,
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "generation_name": {
                      "type": "string"
                    },
                    "parent_span_id": {
                      "type": "string"
                    },
                    "span_name": {
                      "type": "string"
                    },
                    "trace_id": {
                      "type": "string"
                    },
                    "trace_name": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "type": "object"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maxLength": 256,
                "name": "user",
                "required": false,
                "schema": {
                  "maxLength": 256,
                  "type": "string"
                },
                "type": "string"
              }
            ],
            "request_schema": {
              "$schema": "https://json-schema.org/draft/2020-12/schema",
              "additionalProperties": false,
              "properties": {
                "aspect_ratio": {
                  "enum": [
                    "21:9",
                    "16:9",
                    "4:3",
                    "1:1",
                    "3:4",
                    "9:16"
                  ]
                },
                "callback_url": {
                  "format": "uri",
                  "pattern": "^https://",
                  "type": "string",
                  "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                },
                "creativity": false,
                "duration": {
                  "enum": [
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12,
                    13,
                    14,
                    15,
                    16,
                    17,
                    18,
                    19,
                    20
                  ],
                  "maximum": 600,
                  "minimum": 1,
                  "type": "integer"
                },
                "frame_images": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "frame_type": {
                        "enum": [
                          "first_frame",
                          "last_frame"
                        ]
                      },
                      "image_url": {
                        "additionalProperties": false,
                        "properties": {
                          "url": {
                            "format": "uri",
                            "pattern": "^https://",
                            "type": "string",
                            "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "type": "object"
                      },
                      "type": {
                        "const": "image_url"
                      }
                    },
                    "required": [
                      "type",
                      "image_url",
                      "frame_type"
                    ],
                    "type": "object"
                  },
                  "maxItems": 2,
                  "minItems": 1,
                  "type": "array",
                  "x-source-unique-role": "frame_type"
                },
                "generate_audio": {
                  "enum": [
                    false,
                    true
                  ],
                  "x-omitted-default": "published audio capability when true/false; unknown if null; output audio must be measured"
                },
                "input_references": {
                  "items": false,
                  "maxItems": 0,
                  "type": "array"
                },
                "model": {
                  "const": "black-forest-labs/flux-3-video"
                },
                "previous_job_id": {
                  "pattern": "^video_[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
                  "type": "string",
                  "x-source-rule": "real public original id, sameowner/account/proxy/model and published/completed"
                },
                "prompt": {
                  "minLength": 1,
                  "type": "string",
                  "x-source-max-utf8-bytes": 10000,
                  "x-source-non-whitespace": true
                },
                "provider": false,
                "resolution": {
                  "enum": [
                    "720p",
                    "1080p"
                  ]
                },
                "seed": false,
                "session_id": {
                  "maxLength": 256,
                  "type": "string"
                },
                "size": false,
                "trace": {
                  "additionalProperties": true,
                  "properties": {
                    "generation_name": {
                      "type": "string"
                    },
                    "parent_span_id": {
                      "type": "string"
                    },
                    "span_name": {
                      "type": "string"
                    },
                    "trace_id": {
                      "type": "string"
                    },
                    "trace_name": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "upscale_factor": false,
                "user": {
                  "maxLength": 256,
                  "type": "string"
                }
              },
              "required": [
                "model",
                "prompt",
                "duration"
              ],
              "title": "Video generation request",
              "type": "object",
              "x-source-global-rules": [
                "No null values or duplicate keys at any JSON object level",
                "No duration/resolution/aspect default is inserted",
                "Prompt required for all21 despite broader official image-only schema",
                "A request must also pass model membership, exact price card, SKU selection and frozen quote construction",
                "Non-string known trace fields reject; other trace keys retain arbitrary JSON",
                "No n/output-count/client price fields accepted",
                "Provider passthrough disabled for all21; feed allowlist names do not supply provider slug/value contract"
              ],
              "x-source-material-combinations": [
                "Exact model/card, positive published duration, model resolution/aspect membership and valid frozen quote are all required; independent enum arrays are not proven provider Cartesian combinations.",
                "Use exact published size or compatible resolution/aspect. Omitted options stay omitted; no guessed geometry.",
                "first_frame/last_frame roles each occur at most once; frame_images wins mode precedence over input_references.",
                "provider options are unavailable for this model despite any published passthrough-name allowlist.",
                "Continuation uses a real same-owner/account/proxy/model published completed public Ailoot video ID; constructible continuation is absent from current discovery profile projection."
              ]
            },
            "unsupported": [
              "size",
              "seed",
              "provider",
              "upscale_factor",
              "creativity"
            ]
          },
          "input": {
            "additional_properties": false,
            "content_type": "application/json",
            "material_types": [
              "text",
              "image"
            ],
            "optional_controls": [
              "resolution",
              "aspect_ratio",
              "generate_audio",
              "frame_images",
              "input_references",
              "previous_job_id",
              "callback_url",
              "session_id",
              "trace",
              "user"
            ],
            "required": [
              "model",
              "prompt",
              "duration"
            ]
          },
          "lifecycle": {
            "cancel_endpoint": null,
            "content": [
              {
                "http": "GET",
                "path": "/v1/videos/{public_id}/content",
                "query": {
                  "index": "actual output index"
                }
              }
            ],
            "create": {
              "http": "POST",
              "path": "/v1/videos"
            },
            "mode": "submit_once_poll_original",
            "public_id": "video_<uuid>; owner user/key/group scope",
            "status": [
              {
                "http": "GET",
                "path": "/v1/videos/{public_id}"
              }
            ],
            "submit_status": 202,
            "terminal_failure_public": "200 failed + charge_pending_check=true; inspect original operation",
            "terminal_provider_states": [
              "failed",
              "cancelled",
              "expired"
            ],
            "unknown": "503 result_pending_check + originalid + X-Should-Retry:false; never replay original"
          },
          "method": {
            "http": "POST",
            "path": "/v1/videos"
          },
          "method_aliases": [],
          "operation_modes": [
            "text_to_video",
            "image_to_video_frame_images",
            "video_extension_or_continuation"
          ],
          "output": {
            "content_range_supported": true,
            "every_actual_output": true,
            "family": "video",
            "fields": [
              {
                "condition": "Always present for each completed output.",
                "description": "Zero-based position of this video in the outputs list.",
                "field_path": "outputs[].index",
                "json_schema": {
                  "type": "integer"
                },
                "name": "index",
                "nullable": false,
                "type": "integer"
              },
              {
                "condition": "Present after the owned result is available and a signed URL is created.",
                "description": "Signed HTTPS download URL for this completed video.",
                "field_path": "outputs[].content_url",
                "json_schema": {
                  "type": "string"
                },
                "name": "content_url",
                "nullable": false,
                "type": "string"
              },
              {
                "condition": "A nonempty recorded digest is returned; otherwise null.",
                "description": "SHA-256 digest of the original video bytes; null if unavailable.",
                "field_path": "outputs[].sha256",
                "json_schema": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": "sha256",
                "nullable": true,
                "type": "string | null"
              },
              {
                "condition": "Returned when the recorded file size is positive.",
                "description": "Size of the original video file in bytes; null if unavailable.",
                "field_path": "outputs[].size_bytes",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "size_bytes",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Returned when the measured duration is positive.",
                "description": "Measured video duration in milliseconds; null if unavailable.",
                "field_path": "outputs[].duration_ms",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "duration_ms",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Width, height and the video codec are returned together when recorded.",
                "description": "Video width in pixels; null if unavailable.",
                "field_path": "outputs[].width",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "width",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Width, height and the video codec are returned together when recorded.",
                "description": "Video height in pixels; null if unavailable.",
                "field_path": "outputs[].height",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "height",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Returned together with positive recorded width and height.",
                "description": "Video codec identifier; null if not recorded.",
                "field_path": "outputs[].video_codec",
                "json_schema": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": "video_codec",
                "nullable": true,
                "type": "string | null"
              },
              {
                "condition": "Returned when width, height and the video codec are recorded; false is a known result.",
                "description": "Whether the video contains an audio track; null if not measured.",
                "field_path": "outputs[].has_audio",
                "json_schema": {
                  "type": [
                    "boolean",
                    "null"
                  ]
                },
                "name": "has_audio",
                "nullable": true,
                "type": "boolean | null"
              },
              {
                "condition": "Returned when video metadata is recorded and the audio codec identifier is nonempty.",
                "description": "Audio codec identifier; null when no identifier is recorded.",
                "field_path": "outputs[].audio_codec",
                "json_schema": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": "audio_codec",
                "nullable": true,
                "type": "string | null"
              }
            ],
            "format": "original MP4 bytes; no normalization/transcode",
            "max_aggregate_seconds": 2400,
            "max_bytes_per_output": 67108864,
            "max_seconds_per_output": 600,
            "result": "signed owned content URLs",
            "unmeasured_fields_nullable": true
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "billing_component_role": "reference_output_rate",
              "billing_input": false,
              "estimate_only": true,
              "fallback_reference": true,
              "quoted_unit": "per output second",
              "rate_modes": [
                "text_to_video",
                "image_to_video_frame_images"
              ],
              "selectable_request_branch": false,
              "selector_reference_only": true
            },
            "label": "Text zu Video · Bild zu Video (Einzelbilder) · Referenzpreis",
            "units": [
              {
                "amount": "0.34",
                "amount_unit": "usd_per_exact_physical_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "cents_per_second_output",
                "label": "Output video second reference rate",
                "native_amount_usd_per_unit": "0.34",
                "native_quantity": 1,
                "public_unit_label": "per output second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "resolution: 1080p",
              "quoted_unit": "per video second"
            },
            "label": "Videopreis",
            "units": [
              {
                "amount": "0.58",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "cents_per_second_output_1080p",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.58",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "resolution: 720p",
              "quoted_unit": "per video second"
            },
            "label": "Videopreis",
            "units": [
              {
                "amount": "0.34",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "cents_per_second_output_720p",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.34",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "Eingabe: video_continuation; Auflösung: 1080p",
              "quoted_unit": "per video second"
            },
            "label": "Videopreis",
            "units": [
              {
                "amount": "1.06",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "cents_per_second_video_continuation_1080p",
                "label": "Video price",
                "native_amount_usd_per_unit": "1.06",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "input: video_continuation; resolution: 720p",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.82",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "cents_per_second_video_continuation_720p",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.82",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "basis": "Diese Schätzung ist weder eine zusätzliche Gebühr noch ein fester Tarif für die abgeschlossene Generierung.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Geschätzte Erzeugungskosten",
            "units": [
              {
                "amount": "1.7",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "1.7",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_REQUEST'\nfrom pathlib import Path\nPath('request.json').write_text('{\"aspect_ratio\":\"16:9\",\"duration\":8,\"model\":\"black-forest-labs/flux-3-video\",\"prompt\":\"A serene mountain landscape at sunset\",\"resolution\":\"720p\"}', encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path('result.json').read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint('Keep the complete JSON and response headers; do not resubmit an unknown creation.')\nPY_RESULT\n",
            "label": "curl · create video",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_STATUS_URL'\nimport json\nfrom pathlib import Path\nfrom urllib.parse import quote\nr=json.loads(Path('result.json').read_text())\nif not isinstance(r.get('id'),str) or not r['id']:raise SystemExit('Keep the original response and headers for reconciliation; no returned ID')\nPath('status-url.txt').write_text('https://api.ailoot.ai/v1/videos/'+quote(r['id'],safe=''))\nPY_STATUS_URL\ncurl --fail-with-body --silent --show-error \"$(cat status-url.txt)\" \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -D status-headers.txt -o status.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path('status.json').read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint('Keep the complete JSON and response headers; do not resubmit an unknown creation.')\nPY_RESULT\n",
            "label": "GET original status",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\nexport AILOOT_API_KEY\npython3 - <<'PY_ASSETS'\nimport json,os,subprocess\nfrom pathlib import Path\nfrom urllib.parse import urljoin,urlsplit\nr=json.loads(Path('status.json').read_text())\nif r.get('status')!='completed':raise SystemExit('Keep the original ID and read its status; never recreate an unknown job')\nif not isinstance(r.get('data'),list) or not r['data']:raise SystemExit('Keep the complete original status; no completed outputs supplied')\nurls=[]\nfor i,u in enumerate(r.get('data',[])):\n    if not isinstance(u,str):raise SystemExit('Keep the original response; unexpected asset shape')\n    urls.append((str(i),u))\nfor label,path in urls:\n    u=urljoin('https://api.ailoot.ai',path);z=urlsplit(u)\n    if z.scheme!='https' or z.netloc!='api.ailoot.ai' or z.username or z.password:raise SystemExit('Use the actual returned Ailoot owned content URL')\n    target=Path('owned-'+label+'.bin')\n    subprocess.run(['curl','--fail-with-body','--silent','--show-error',u,'-H','Authorization: Bearer '+os.environ['AILOOT_API_KEY'],'-D',str(target)+'.headers','-o',str(target)],check=True)\nprint('All returned owned URLs saved; complete metadata, timing and usage remain in the JSON.')\nPY_ASSETS\n",
            "label": "Save every completed owned output",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "videos",
        "hints": [],
        "http": "POST",
        "in": null,
        "input": [
          "text",
          "image"
        ],
        "label": "Видео",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "out": null,
        "output": [
          "video"
        ],
        "path": "/v1/videos",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "original_invoice_usd",
          "image_input_price": null,
          "image_output_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "billing_component_role": "reference_output_rate",
              "billing_input": false,
              "estimate_only": true,
              "fallback_reference": true,
              "quoted_unit": "per output second",
              "rate_modes": [
                "text_to_video",
                "image_to_video_frame_images"
              ],
              "selectable_request_branch": false,
              "selector_reference_only": true
            },
            "label": "Text to video · Image to video (frame images) · reference rate",
            "units": [
              {
                "amount": "0.34",
                "amount_unit": "usd_per_exact_physical_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "cents_per_second_output",
                "label": "Output video second reference rate",
                "native_amount_usd_per_unit": "0.34",
                "native_quantity": 1,
                "public_unit_label": "per output second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "resolution: 1080p",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.58",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "cents_per_second_output_1080p",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.58",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "resolution: 720p",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.34",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "cents_per_second_output_720p",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.34",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "input: video_continuation; resolution: 1080p",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "1.06",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "cents_per_second_video_continuation_1080p",
                "label": "Video price",
                "native_amount_usd_per_unit": "1.06",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "input: video_continuation; resolution: 720p",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.82",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "cents_per_second_video_continuation_720p",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.82",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "basis": "This estimate is not an additional charge or a fixed rate for the completed generation.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Estimated generation cost",
            "units": [
              {
                "amount": "1.7",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "1.7",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "request_model_id": "black-forest-labs/flux-3-video",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/videos/{public_id}",
          "GET /v1/videos/{public_id}/content"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.34",
            "amount_unit": "usd_per_exact_physical_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "cents_per_second_output",
            "label": "Output video second reference rate",
            "native_amount_usd_per_unit": "0.34",
            "native_quantity": 1,
            "public_unit_label": "per output second",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_second"
          },
          {
            "amount": "0.58",
            "amount_unit": "usd_per_video_second",
            "billing_input": false,
            "estimate_only": true,
            "key": "cents_per_second_output_1080p",
            "label": "Video price",
            "native_amount_usd_per_unit": "0.58",
            "native_quantity": 1,
            "public_unit_label": "per video second",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_second"
          },
          {
            "amount": "0.34",
            "amount_unit": "usd_per_video_second",
            "billing_input": false,
            "estimate_only": true,
            "key": "cents_per_second_output_720p",
            "label": "Video price",
            "native_amount_usd_per_unit": "0.34",
            "native_quantity": 1,
            "public_unit_label": "per video second",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_second"
          },
          {
            "amount": "1.06",
            "amount_unit": "usd_per_video_second",
            "billing_input": false,
            "estimate_only": true,
            "key": "cents_per_second_video_continuation_1080p",
            "label": "Video price",
            "native_amount_usd_per_unit": "1.06",
            "native_quantity": 1,
            "public_unit_label": "per video second",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_second"
          },
          {
            "amount": "0.82",
            "amount_unit": "usd_per_video_second",
            "billing_input": false,
            "estimate_only": true,
            "key": "cents_per_second_video_continuation_720p",
            "label": "Video price",
            "native_amount_usd_per_unit": "0.82",
            "native_quantity": 1,
            "public_unit_label": "per video second",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_second"
          },
          {
            "amount": "1.7",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "forecast_usd",
            "label": "Estimated generation cost",
            "native_amount_usd_per_unit": "1.7",
            "native_quantity": 1,
            "public_unit_label": "estimate before generation",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "request_estimate"
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "black-forest-labs/flux-3-video",
        "request_model_id": "black-forest-labs/flux-3-video",
        "route_label": "Ultra"
      }
    ],
    "name": "Black Forest Labs: FLUX.3 Video",
    "price": {
      "estimate_only": true,
      "in": null,
      "in_label": null,
      "out": 1.7,
      "out_label": "estimate before generation",
      "scope_label": "Estimated generation cost",
      "sort_in": null,
      "sort_out": 1.7,
      "varies": false
    },
    "pricing_profiles": [
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "audio": "synchronized_audio",
          "billing_quantity": "output_duration_seconds",
          "draft": false,
          "duration_limit_source": "Not on pricing page; retained supplier declared capabilities in operation inventory; maker duration limits not claimed",
          "resolution_class": "hd"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.34",
            "amount_unit": "usd_per_output_video_second",
            "conditions": {
              "audio": "synchronized_audio",
              "billing_quantity": "output_duration_seconds",
              "draft": false,
              "duration_limit_source": "Not on pricing page; retained supplier declared capabilities in operation inventory; maker duration limits not claimed",
              "resolution_class": "hd"
            },
            "key": "base",
            "label": "base",
            "profile_index": 0,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "output_video_second"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "audio": "synchronized_audio",
          "billing_quantity": "output_duration_seconds",
          "draft": false,
          "duration_limit_source": "Not on pricing page; retained supplier declared capabilities in operation inventory; maker duration limits not claimed",
          "resolution_class": "fhd"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.58",
            "amount_unit": "usd_per_output_video_second",
            "conditions": {
              "audio": "synchronized_audio",
              "billing_quantity": "output_duration_seconds",
              "draft": false,
              "duration_limit_source": "Not on pricing page; retained supplier declared capabilities in operation inventory; maker duration limits not claimed",
              "resolution_class": "fhd"
            },
            "key": "base",
            "label": "base",
            "profile_index": 1,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "output_video_second"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "audio": "synchronized_audio",
          "billing_quantity": "output_duration_seconds",
          "draft": false,
          "duration_limit_source": "Not on pricing page; retained supplier declared capabilities in operation inventory; maker duration limits not claimed",
          "resolution_class": "qhd"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.80",
            "amount_unit": "usd_per_output_video_second",
            "conditions": {
              "audio": "synchronized_audio",
              "billing_quantity": "output_duration_seconds",
              "draft": false,
              "duration_limit_source": "Not on pricing page; retained supplier declared capabilities in operation inventory; maker duration limits not claimed",
              "resolution_class": "qhd"
            },
            "key": "base",
            "label": "base",
            "profile_index": 2,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "output_video_second"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "audio": "synchronized_audio",
          "billing_quantity": "output_duration_seconds",
          "draft": false,
          "duration_limit_source": "Not on pricing page; retained supplier declared capabilities in operation inventory; maker duration limits not claimed",
          "resolution_class": "uhd"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "1.60",
            "amount_unit": "usd_per_output_video_second",
            "conditions": {
              "audio": "synchronized_audio",
              "billing_quantity": "output_duration_seconds",
              "draft": false,
              "duration_limit_source": "Not on pricing page; retained supplier declared capabilities in operation inventory; maker duration limits not claimed",
              "resolution_class": "uhd"
            },
            "key": "base",
            "label": "base",
            "profile_index": 3,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "output_video_second"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "audio": "synchronized_audio",
          "billing_quantity": "output_duration_seconds",
          "draft": true,
          "duration_limit_source": "Not on pricing page; retained supplier declared capabilities in operation inventory; maker duration limits not claimed",
          "resolution_class": "draft_hd"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.12",
            "amount_unit": "usd_per_output_video_second",
            "conditions": {
              "audio": "synchronized_audio",
              "billing_quantity": "output_duration_seconds",
              "draft": true,
              "duration_limit_source": "Not on pricing page; retained supplier declared capabilities in operation inventory; maker duration limits not claimed",
              "resolution_class": "draft_hd"
            },
            "key": "base",
            "label": "base",
            "profile_index": 4,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "output_video_second"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "audio": "synchronized_audio",
          "billing_quantity": "output_duration_seconds",
          "draft": false,
          "duration_limit_source": "Not on pricing page; retained supplier declared capabilities in operation inventory; maker duration limits not claimed",
          "resolution_class": "hd"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.34",
            "amount_unit": "usd_per_output_video_second",
            "conditions": {
              "audio": "synchronized_audio",
              "billing_quantity": "output_duration_seconds",
              "draft": false,
              "duration_limit_source": "Not on pricing page; retained supplier declared capabilities in operation inventory; maker duration limits not claimed",
              "resolution_class": "hd"
            },
            "key": "base",
            "label": "base",
            "profile_index": 5,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "output_video_second"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "audio": "synchronized_audio",
          "billing_quantity": "output_duration_seconds",
          "draft": false,
          "duration_limit_source": "Not on pricing page; retained supplier declared capabilities in operation inventory; maker duration limits not claimed",
          "resolution_class": "fhd"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.58",
            "amount_unit": "usd_per_output_video_second",
            "conditions": {
              "audio": "synchronized_audio",
              "billing_quantity": "output_duration_seconds",
              "draft": false,
              "duration_limit_source": "Not on pricing page; retained supplier declared capabilities in operation inventory; maker duration limits not claimed",
              "resolution_class": "fhd"
            },
            "key": "base",
            "label": "base",
            "profile_index": 6,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "output_video_second"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "audio": "synchronized_audio",
          "billing_quantity": "output_duration_seconds",
          "draft": false,
          "duration_limit_source": "Not on pricing page; retained supplier declared capabilities in operation inventory; maker duration limits not claimed",
          "resolution_class": "qhd"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.80",
            "amount_unit": "usd_per_output_video_second",
            "conditions": {
              "audio": "synchronized_audio",
              "billing_quantity": "output_duration_seconds",
              "draft": false,
              "duration_limit_source": "Not on pricing page; retained supplier declared capabilities in operation inventory; maker duration limits not claimed",
              "resolution_class": "qhd"
            },
            "key": "base",
            "label": "base",
            "profile_index": 7,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "output_video_second"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "audio": "synchronized_audio",
          "billing_quantity": "output_duration_seconds",
          "draft": false,
          "duration_limit_source": "Not on pricing page; retained supplier declared capabilities in operation inventory; maker duration limits not claimed",
          "resolution_class": "uhd"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "1.60",
            "amount_unit": "usd_per_output_video_second",
            "conditions": {
              "audio": "synchronized_audio",
              "billing_quantity": "output_duration_seconds",
              "draft": false,
              "duration_limit_source": "Not on pricing page; retained supplier declared capabilities in operation inventory; maker duration limits not claimed",
              "resolution_class": "uhd"
            },
            "key": "base",
            "label": "base",
            "profile_index": 8,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "output_video_second"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "audio": "synchronized_audio",
          "billing_quantity": "output_duration_seconds",
          "draft": true,
          "duration_limit_source": "Not on pricing page; retained supplier declared capabilities in operation inventory; maker duration limits not claimed",
          "resolution_class": "draft_hd"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.12",
            "amount_unit": "usd_per_output_video_second",
            "conditions": {
              "audio": "synchronized_audio",
              "billing_quantity": "output_duration_seconds",
              "draft": true,
              "duration_limit_source": "Not on pricing page; retained supplier declared capabilities in operation inventory; maker duration limits not claimed",
              "resolution_class": "draft_hd"
            },
            "key": "base",
            "label": "base",
            "profile_index": 9,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "output_video_second"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "audio": "synchronized_audio",
          "billing_quantity": "output_duration_seconds",
          "draft": false,
          "duration_limit_source": "Not on pricing page; retained supplier declared capabilities in operation inventory; maker duration limits not claimed",
          "resolution_class": "hd"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.82",
            "amount_unit": "usd_per_output_video_second",
            "conditions": {
              "audio": "synchronized_audio",
              "billing_quantity": "output_duration_seconds",
              "draft": false,
              "duration_limit_source": "Not on pricing page; retained supplier declared capabilities in operation inventory; maker duration limits not claimed",
              "resolution_class": "hd"
            },
            "key": "base",
            "label": "base",
            "profile_index": 10,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "output_video_second"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "audio": "synchronized_audio",
          "billing_quantity": "output_duration_seconds",
          "draft": false,
          "duration_limit_source": "Not on pricing page; retained supplier declared capabilities in operation inventory; maker duration limits not claimed",
          "resolution_class": "fhd"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "1.06",
            "amount_unit": "usd_per_output_video_second",
            "conditions": {
              "audio": "synchronized_audio",
              "billing_quantity": "output_duration_seconds",
              "draft": false,
              "duration_limit_source": "Not on pricing page; retained supplier declared capabilities in operation inventory; maker duration limits not claimed",
              "resolution_class": "fhd"
            },
            "key": "base",
            "label": "base",
            "profile_index": 11,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "output_video_second"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "audio": "synchronized_audio",
          "billing_quantity": "output_duration_seconds",
          "draft": false,
          "duration_limit_source": "Not on pricing page; retained supplier declared capabilities in operation inventory; maker duration limits not claimed",
          "resolution_class": "qhd"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "1.30",
            "amount_unit": "usd_per_output_video_second",
            "conditions": {
              "audio": "synchronized_audio",
              "billing_quantity": "output_duration_seconds",
              "draft": false,
              "duration_limit_source": "Not on pricing page; retained supplier declared capabilities in operation inventory; maker duration limits not claimed",
              "resolution_class": "qhd"
            },
            "key": "base",
            "label": "base",
            "profile_index": 12,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "output_video_second"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "audio": "synchronized_audio",
          "billing_quantity": "output_duration_seconds",
          "draft": false,
          "duration_limit_source": "Not on pricing page; retained supplier declared capabilities in operation inventory; maker duration limits not claimed",
          "resolution_class": "uhd"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "1.90",
            "amount_unit": "usd_per_output_video_second",
            "conditions": {
              "audio": "synchronized_audio",
              "billing_quantity": "output_duration_seconds",
              "draft": false,
              "duration_limit_source": "Not on pricing page; retained supplier declared capabilities in operation inventory; maker duration limits not claimed",
              "resolution_class": "uhd"
            },
            "key": "base",
            "label": "base",
            "profile_index": 13,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "output_video_second"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "audio": "synchronized_audio",
          "billing_quantity": "output_duration_seconds",
          "draft": true,
          "duration_limit_source": "Not on pricing page; retained supplier declared capabilities in operation inventory; maker duration limits not claimed",
          "resolution_class": "draft_hd"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.24",
            "amount_unit": "usd_per_output_video_second",
            "conditions": {
              "audio": "synchronized_audio",
              "billing_quantity": "output_duration_seconds",
              "draft": true,
              "duration_limit_source": "Not on pricing page; retained supplier declared capabilities in operation inventory; maker duration limits not claimed",
              "resolution_class": "draft_hd"
            },
            "key": "base",
            "label": "base",
            "profile_index": 14,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "output_video_second"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "no_method_admission_claim": true,
          "scope": "supplier_tariff_reference"
        },
        "dimensions": {},
        "label": "Ailoot Ultra · Tariff components",
        "units": [
          {
            "amount": "0.34",
            "amount_unit": "usd_per_exact_physical_unit",
            "basis": "output second Source-only tariff component.",
            "billing_original_currency": "USD_cent",
            "billing_original_rate": "34",
            "key": "cents_per_second_output",
            "label": "output second",
            "native_amount_usd_per_unit": "0.34",
            "native_quantity": 1,
            "quantity": 1,
            "side": "out",
            "unit": "output_second"
          },
          {
            "amount": "0.34",
            "amount_unit": "usd_per_exact_physical_unit",
            "basis": "resolution=720p",
            "billing_original_currency": "USD_cent",
            "billing_original_rate": "34",
            "key": "cents_per_second_output_720p",
            "label": "output second",
            "native_amount_usd_per_unit": "0.34",
            "native_quantity": 1,
            "quantity": 1,
            "side": "out",
            "unit": "output_second"
          },
          {
            "amount": "0.58",
            "amount_unit": "usd_per_exact_physical_unit",
            "basis": "resolution=1080p",
            "billing_original_currency": "USD_cent",
            "billing_original_rate": "58",
            "key": "cents_per_second_output_1080p",
            "label": "output second",
            "native_amount_usd_per_unit": "0.58",
            "native_quantity": 1,
            "quantity": 1,
            "side": "out",
            "unit": "output_second"
          },
          {
            "amount": "0.82",
            "amount_unit": "usd_per_exact_physical_unit",
            "basis": "resolution=720p · video_continuation",
            "billing_original_currency": "USD_cent",
            "billing_original_rate": "82",
            "key": "cents_per_second_video_continuation_720p",
            "label": "output second",
            "native_amount_usd_per_unit": "0.82",
            "native_quantity": 1,
            "quantity": 1,
            "side": "out",
            "unit": "output_second"
          },
          {
            "amount": "1.06",
            "amount_unit": "usd_per_exact_physical_unit",
            "basis": "resolution=1080p · video_continuation",
            "billing_original_currency": "USD_cent",
            "billing_original_rate": "106",
            "key": "cents_per_second_video_continuation_1080p",
            "label": "output second",
            "native_amount_usd_per_unit": "1.06",
            "native_quantity": 1,
            "quantity": 1,
            "side": "out",
            "unit": "output_second"
          }
        ]
      }
    ],
    "public_id": "black-forest-labs/flux-3-video",
    "short": "FLUX 3 Video erzeugt Clips mit synchronisiertem Dialog, Effekten und Atmosphäre aus Text, festgelegten Bildern oder einem fortzusetzenden Clip. Keyframes, Gestaltung mit mehreren Einstellungen und Draft-Verbesserung helfen, eine kontrollierte Abfolge zu entwickeln und den ausgewählten Take beizubehalten."
  },
  "renderer_schema": {
    "method_order": "Original DTO methods order; every exact route/format/path/caller survives.",
    "prices": "Original public DTO fields and original native display HTML; no flattened or normalized offers."
  },
  "representation": "exact-public-dto-and-native-renderer-html",
  "representationNotes": {
    "current_reference": {
      "about_json_pointer": "/aboutHtml",
      "methods": [
        {
          "contract_json_pointer": "/methods/0/rawMethod/contract",
          "html_json_pointer": "/methods/0/html",
          "method_ordinal": 0
        }
      ],
      "role": "current-semantic-reference"
    },
    "raw_input": {
      "examples_role": "historical-input-not-current-ready-examples",
      "json_pointers": [
        "/rawModel",
        "/methods/0/rawMethod"
      ],
      "role": "historical-owner-input"
    },
    "schema": "ailoot-native-model-representations-v1"
  },
  "schema": "ailoot-static-model-facts-v1",
  "schema_version": 1,
  "shortText": "FLUX 3 Video erzeugt Clips mit synchronisiertem Dialog, Effekten und Atmosphäre aus Text, festgelegten Bildern oder einem fortzusetzenden Clip. Keyframes, Gestaltung mit mehreren Einstellungen und Draft-Verbesserung helfen, eine kontrollierte Abfolge zu entwickeln und den ausgewählten Take beizubehalten.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "0357a976b3965c18134d53c5cecf9197e7e4c3c04363961fae9a77eefd618d6b",
    "renderer_sha256": "76caa42c097db2ddc47d1e1e6fe7ca45c8363d7211296daf28e4352971e6c0c8"
  },
  "sourceRevision": "4f312b4e71a838d4c597cb4d60aebf3dbe30969eea4892b8d5205d9d9fc0704c"
}
