Zum Hauptinhalt springen
POST
Diese API arbeitet asynchron. Lesen Sie nach dem Absenden data[0].task_id aus und rufen Sie den Aufgabenstatus ab. Die Generierung dauert meist 1–3 Minuten; fragen Sie alle 5–10 Sekunden ab. Die tatsächliche Dauer hängt von der Aufgabe ab.

Modus wählen

string
erforderlich
Bearer-Authentifizierung: Bearer <token>, wobei <token> Ihr APIMart-API-Schlüssel ist. Senden Sie den Body mit Content-Type: application/json.

Anfrageparameter

string
erforderlich
Immer apimart-zoe.
string
Bis zu 204.800 Zeichen. Für Text-zu-Video erforderlich; bei reinen Medienanfragen optional. Bei draft_task_id nicht zulässig: Der Prompt wird vom Entwurf übernommen.
string
480p, 720p, 1080p, 2k, 4k; Groß-/Kleinschreibung ist unerheblich. Standard bei normaler Generierung: 720p. Mit draft: true ist nur 480p zulässig, auch bei Auslassung. Mit draft_task_id ist nur 1080p zulässig, auch bei Auslassung.
string
21:9, 16:9, 4:3, 1:1, 3:4, 9:16, adaptive. Standard: adaptive, vom Modell oder den Medien bestimmt. Für finale Videos weglassen; das Format wird vom Entwurf übernommen.Bei Videobearbeitung (edit) nur weglassen oder adaptive angeben; das Seitenverhältnis folgt der Quelle.
string
Alternativer Name für aspect_ratio mit denselben Werten. Verwenden Sie möglichst nur eines der Felder. Für finale Videos weglassen.
integer
Normale Generierung: Ganze Sekunden von 4 bis 30, Standard 5. Explizite oder voreingestellte Dauer wird wie angefragt berechnet und nicht an die fertige Videolänge angepasst. Bei -1 entscheidet das Modell: 30 Sekunden werden reserviert, danach wird die tatsächliche Dauer auf ganze Sekunden kaufmännisch gerundet und abgerechnet. Für finale Videos weglassen; die Dauer wird vom Entwurf übernommen.Bei Videobearbeitung (edit) nur weglassen oder -1 angeben. Ohne Angabe gilt -1; die Ausgabedauer folgt dem Quellvideo.
integer
Alias für duration, mit denselben Regeln. Verwenden Sie nur eines der Felder. Für finale Videos weglassen.
boolean
Boolescher Wert für die gleichzeitige Audioausgabe. Alias: generate_audio. Ohne Angabe entscheidet das Modell. Für finale Videos verboten. Steuert die Ausgabe, nicht die Eingabereferenzen in audio_urls.Werden audio und generate_audio gemeinsam gesendet, müssen die Werte übereinstimmen, sonst HTTP 400. Ohne Angabe entscheidet das Modell und erzeugt meist Ton.
boolean
Alias für audio mit denselben Regeln. Nur eines der Felder verwenden; für finale Videos weglassen.Werden audio und generate_audio gemeinsam gesendet, müssen die Werte übereinstimmen, sonst HTTP 400. Ohne Angabe entscheidet das Modell und erzeugt meist Ton.
integer
Zufallsstartwert als Ganzzahl. Für finale Videos verboten.
boolean
Standardmäßig keine Inhaltsprüfung. Mit true aktivieren.Optionaler boolescher Wert. true aktiviert die Inhaltsprüfung für prompt, image_urls, image_with_roles, Start-/Endbilder und asset://-Bildmedien. Referenzvideos und Audio werden nicht geprüft.Finale Anfragen enthalten weder Prompt noch Medien. Beim Ablauf Entwurf → finales Video erfolgt die Prüfung bei der Erstellung des Entwurfs.Ein Treffer führt zu HTTP 400 (nsfw_content_detected); Kategorien stehen in error.message. Zeigen Sie dies als Ablehnung durch die Inhaltsprüfung an, nicht als allgemeinen Parameterfehler. Bei Fehlern oder Ausfall des Prüfdienstes wird die Generierung fortgesetzt; der Parameter garantiert daher keine abgeschlossene Prüfung jeder Anfrage.
string
Unterstützt auto (Standard, entspricht Weglassen; das Modell entscheidet), reference und edit. reference / edit erfordern Referenzmedien; reine Text- oder Start-/Endbildanfragen führen damit zu HTTP 400. edit benötigt mindestens ein video_urls-Element und darf nicht mit draft: true kombiniert werden. extend wird nicht unterstützt und führt zu HTTP 400. Bei Finalgenerierung weglassen.
boolean
Mit true wird das letzte Frame zusätzlich als PNG unter data.result.last_frame_url zurückgegeben. Standardmäßig deaktiviert. Bei Finalgenerierung weglassen.
string
mp4 (Standard) oder mov (QuickTime-Container); andere Werte ergeben HTTP 400. Alias: response_format. Bei beiden Feldern hat output_format Vorrang. Bei Finalgenerierung weglassen.
string
Alias für output_format, unterstützt mp4 / mov. Bei beiden Feldern hat output_format Vorrang. Bei Finalgenerierung weglassen.
boolean
Mit true wird der Prompt vor der Generierung automatisch optimiert. Standardmäßig wird der ursprüngliche Prompt verwendet. Bei Finalgenerierung weglassen.
object[]
Jeder Eintrag enthält url und role. Rollen: first_frame (Startbild), last_frame (Endbild), reference_image (Referenzbild). Je höchstens ein Start- und Endbild; ein Endbild benötigt ein Startbild. Start-/Endbilder dürfen nicht mit Referenzmedien kombiniert werden.image_urls und image_with_roles dürfen nicht gemeinsam gesendet werden. Andernfalls wird beim Absenden HTTP 400 (invalid_request_error) ohne Berechnung zurückgegeben. Die Aliasse image, images und image_url zählen als image_urls und umgehen diese Einschränkung nicht.
string[]
Höchstens 30 Referenzbilder. Formate, Abmessungen und Dateigrößen stehen in den Medienanforderungen unten.image_urls und image_with_roles dürfen nicht gemeinsam gesendet werden. Andernfalls wird beim Absenden HTTP 400 (invalid_request_error) ohne Berechnung zurückgegeben. Die Aliasse image, images und image_url zählen als image_urls und umgehen diese Einschränkung nicht.
string
Adresse des Startbilds; entspricht der Rolle first_frame in image_with_roles.
string
Adresse des Endbilds; entspricht last_frame in image_with_roles. Ein Startbild ist ebenfalls erforderlich.
string[]
Höchstens 10 Referenzvideos. Öffentliche http(s)-URLs oder asset://<Medien-ID>, kein data: Base64. Abmessungen, genaue Dauer und Bildrate werden beim Absenden nach den folgenden Regeln geprüft.Für die Abrechnung werden die Dauern addiert und erst dann auf ganze Sekunden abgerundet, ohne spätere Anpassung. Diese Rundung gilt nicht für die Zulässigkeit einzelner Videos. Bei fehlendem Zugriff oder gescheiterter Dauerermittlung: HTTP 400 (input_video_probe_failed) ohne Berechnung.auto / reference: 2–15 Sekunden, zulässig 1.8 ≤ t ≤ 15.2. Quellvideos für edit: 4–30 Sekunden, zulässig 3.8 ≤ t < 30.2. Exakte Dauer ohne vorheriges Runden prüfen.
string[]
Maximal 10; WAV / MP3; jeweils 2–15 Sekunden und ≤ 15 MB, insgesamt maximal 30 Sekunden. Toleranz ±0.2 Sekunden: je Clip 1.8 ≤ t ≤ 15.2, insgesamt ≤ 30.2. Referenzbild oder -video erforderlich.Öffentliche http(s)-URLs oder asset://<Medien-ID>, kein data: Base64. Die Audiodauer wird beim Absenden geprüft; ungültige Werte ergeben synchron HTTP 400 ohne Berechnung.
boolean
true erzeugt einen Entwurf in 480p. Andere Parameter folgen den normalen Generierungsregeln. Bei der finalen Generierung nicht übergeben.Videobearbeitung (edit) unterstützt keine Entwürfe.
string
task_id eines erfolgreichen Entwurfs zur Generierung eines finalen Videos in 1080p. Innerhalb von 24 Stunden nach Erstellung des Entwurfs verwenden. Prompt, Medien, Dauer und Seitenverhältnis werden übernommen und dürfen nicht erneut übergeben werden. Für finale Videos sind auch seed, audio und dessen Alias generate_audio verboten.

Medienadressen und Kombinationsregeln

Bilder, Videos und Audio akzeptieren öffentliche http(s)-URLs oder APIMart-Medien über asset://<Medien-ID>. Kein Medientyp akzeptiert data: Base64; zuerst hochladen. Die Registrierung erfolgt automatisch ohne separaten API-Aufruf. Bei Registrierungsfehlern scheitert die Aufgabe mit Erstattung.

Prüfung der Referenzvideos

Videoabmessungen, Pixelfläche, Seitenverhältnis, exakte Dauer und Bildrate sowie Referenzaudiodauer werden beim Absenden geprüft. Verstöße ergeben synchron HTTP 400 ohne Berechnung. Videofehler verwenden invalid_request_error mit Messwerten. Maßgeblich ist die Pixelfläche, nicht kurze Seite mindestens 480 und lange Seite höchstens 4096. Nur hinsichtlich der Abmessungen ist 420×1000 (420.000 Pixel) zulässig. 720×480 (345.600 Pixel), 848×480 (407.040 Pixel) und 4096×2160 (8.847.360 Pixel) liegen außerhalb der Flächengrenzen. Dauer, Bildrate und weitere Medienanforderungen müssen ebenfalls erfüllt sein. Bildabmessungen, Dateigröße und Kodierung werden während der Generierung geprüft. Ungültige Medien führen zum Fehlschlag mit automatischer Erstattung. Prüfen Sie diese Eigenschaften möglichst vor dem Aufruf.

Regeln für Medienkombinationen

  • image_urls und image_with_roles dürfen nicht gemeinsam gesendet werden. Andernfalls wird beim Absenden HTTP 400 (invalid_request_error) ohne Berechnung zurückgegeben. Die Aliasse image, images und image_url zählen als image_urls und umgehen diese Einschränkung nicht.
  • Start-/Endbilder dürfen nicht in derselben Anfrage wie Referenzbilder, -videos oder -audio vorkommen.
  • Je höchstens ein Start- und Endbild. Ein Endbild benötigt ein Startbild.
  • Höchstens 30 Referenzbilder, 10 Referenzvideos und 10 Audioreferenzen, insgesamt höchstens 50 Medien.
  • Verstöße gegen diese Kombinationen oder Anzahlen führen beim Absenden synchron zu HTTP 400 ohne Berechnung.
  • omni_reference_task_type: "edit" erfordert mindestens ein Quellvideo (3.8 ≤ t < 30.2 Sekunden). duration / seconds nur weglassen oder -1; aspect_ratio / size nur weglassen oder adaptive. Nicht mit draft: true kombinieren. Auto/reference behalten die Grenze von 2–15 Sekunden samt Toleranz.
Diese Felder führen allein durch ihre Anwesenheit zu HTTP 400, auch bei "", [], false oder null; vollständig entfernen: negative_prompt, camera_fixed, camerafixed, extend_from_task_id, mask_url, video_list, element_list, multi_shot, tools. n weglassen oder auf 1 setzen.

Anfragebeispiele

Die folgenden Medien-URLs sind Platzhalter. Ersetzen Sie sie durch erreichbare Medienadressen.

Start- und Endbilder

Alternativ sind first_frame_image und last_frame_image möglich. Fügen Sie derselben Anfrage keine Referenzbilder, -videos oder -audio hinzu.

Bild-, Video- und Audioreferenzen

Bilder in image_urls werden als Referenzbilder behandelt. Bei duration: -1 bestimmt das Modell die Ausgabedauer.

Videobearbeitung

omni_reference_task_type: "edit" erfordert mindestens ein Quellvideo (3.8 ≤ t < 30.2 Sekunden). duration / seconds nur weglassen oder -1; aspect_ratio / size nur weglassen oder adaptive. Nicht mit draft: true kombinieren. Auto/reference behalten die Grenze von 2–15 Sekunden samt Toleranz.
Bearbeitung nutzt den Tarif mit Referenzvideo. Zunächst werden 30 Ausgabesekunden reserviert, dann wird mit der tatsächlichen Ausgabedauer, auf ganze Sekunden gerundet, abgerechnet. Referenzvideodauer und Differenzausgleich folgen der untenstehenden Formel.

Letztes Frame, MOV-Ausgabe und Prompt-Optimierung

Entwurf → finales Video

  1. Entwurf mit draft: true absenden. Ohne resolution wird 480p verwendet; bei expliziter Angabe ist ebenfalls nur 480p zulässig.
  1. Warten Sie auf den erfolgreichen Entwurf und übergeben Sie dessen task_id für das finale Video. model und draft_task_id genügen. Wenn Sie resolution angeben, muss es 1080p sein.
Das Finalvideo übernimmt Prompt, Medien, Dauer, Seitenverhältnis, Seed und Audioeinstellungen des Entwurfs. Senden Sie model, draft_task_id, optional resolution: "1080p" sowie allgemeine Felder wie nsfw_check / webhook. Folgende Generierungsfelder müssen fehlen; auch leere Strings/Arrays, false oder null ergeben HTTP 400: prompt, image_urls, image_with_roles, image, images, image_url, first_frame_image, last_frame_image, video_urls, audio_urls, duration, seconds, aspect_ratio, size, seed, audio, generate_audio, draft, omni_reference_task_type, return_last_frame, output_format, response_format, enhance_prompt. Den Entwurf innerhalb von 24 Stunden nach Erstellung verwenden; beide Generierungen werden separat berechnet.

Aufgaben und Ergebnisse abrufen

cURL
Bei der Einreichung ist data ein Array, bei der Statusabfrage ein Aufgabenobjekt. data.status: pending = Warteschlange, processing = Generierung, completed = Erfolg, failed = Fehler. Lesen Sie bei Erfolg die Video-Adresse aus data.result.videos[].url, etwa data.result.videos[0].url[0]. Videos werden in den APIMart-Speicher kopiert. Das folgende Beispiel zeigt nur die wichtigsten Felder einer erfolgreichen Abfrage.
Lesen Sie bei Fehlern die Ursache aus data.error.message. Bereits abgebuchte Beträge werden automatisch erstattet.

Abrechnung

Sekundenbasierte Abrechnung nach Ausgabeauflösung und Referenzvideos. Tarife und Kontorabatte stehen auf der Preisseite. D bezeichnet die für die Abrechnung verwendete Ausgabedauer in Sekunden.
  • Gesamtdauer der Referenzvideos R: beim Absenden jede Dauer ermitteln, addieren und die Summe auf ganze Sekunden abrunden. Keine spätere Anpassung.
  • Ohne Referenzvideos: abrechenbare Sekunden = D. Mit Referenzvideos: D + max(R, ceil(D × 2/3)). ceil rundet auf ganze Sekunden auf. Es gilt der Tarif mit Referenzvideos.
  • Beispiel: Angefragte 8 Sekunden bleiben D = 8, selbst bei 8.2 Sekunden Ergebnis. Automatische 8.5 Sekunden ergeben D = 9. Referenzen mit 2.8 und 3.8 Sekunden werden zuerst zu 6.6 addiert und dann abgerundet: R = 6.
  • Entwurf (480p) und finales Video (1080p) werden separat berechnet. Referenzvideos des Entwurfs zählen mit ihrer ursprünglichen Dauer auch beim finalen Video; kein erneuter Upload nötig.
  • Fehlgeschlagene Einreichungen werden nicht berechnet. Fehlgeschlagene Aufgaben werden automatisch erstattet.

Häufige Fehler

Fehlgeschlagene Einreichungen liefern ein error-Objekt: error.message enthält Details, error.code einen String-Code, getrennt vom HTTP-Status. Es fallen keine Kosten an.