Eine Videogenerierungsaufgabe einreichen
Erstellt eine asynchrone Videogenerierungsaufgabe und gibt sofort eine task_id zurück (HTTP 202). Fragen Sie GET /api/v1/videos/generations/{task_id} ab, bis die Aufgabe erfolgreich ist. Der Anfrage-Body kann entweder flach ({model, prompt, ...}) oder verschachtelt ({model, input: {prompt, ...}}) angegeben werden; das input-Objekt hat Vorrang, wenn es vorhanden ist. Callback-Felder (callBackUrl / callback_url / callbackUrl) werden ignoriert.
Drei sich gegenseitig ausschließende Eingabemodi:
- text-to-video: nur prompt;
- image-to-video (erstes/letztes Bild): first_frame_url (+ optional last_frame_url);
- omni-reference: reference_image_urls / reference_video_urls / reference_audio_urls. Die Kombination von first/last-frame mit beliebigen multimodalen Referenzeingaben liefert 400 invalid_request_error.
- Typ: stringX
- Request - Id Optionale Anfrage-ID des Aufrufers, die zu Diagnosezwecken zurückgegeben wird.
- Typ: stringX
- Felo - Channel Geordnete, durch Kommas getrennte öffentliche Kanalcodes. Lassen Sie diesen Header weg, um default zu verwenden; default muss allein verwendet werden. Im Wallet-Modus durchsucht default die effektive öffentliche Kanalreihenfolge des Modells in umgekehrter Reihenfolge, überspringt nicht veröffentlichte oder nicht verfügbare Kanäle und wählt den Anbieter des ersten verfügbaren Kanals. Der Wert default schließt verfügbare Endpunkte dieses Anbieters mit derselben Upstream-Modell-ID und demselben Service-Tier ein. Explizite Kanäle werden in der vom Client angegebenen Reihenfolge validiert; nur die Anbietergruppe des ersten Kanals wird übermittelt. Kein automatischer Fallback auf andere Anbieter. Legacy-Anbieter-Header können das Kanal-Routing nicht überschreiben.
Eingabe für die Videogenerierung. Entweder flach ({model, prompt, ...}) oder verschachtelt ({model, input: {...}}). Das Feld input hat Vorrang. Es muss genau ein Eingabemodus verwendet werden; die Kombination von first/last-frame mit multimodalen Referenzeingaben wird abgelehnt.
- Typ: stringmodelerforderlich
Felo-seitiger Modellname, z. B. seedance-2.0-mini.
- Typ: string enumaspect
_ratio Werte- 16:9
- 9:16
- 1:1
- 4:3
- 3:4
- 21:9
- adaptive
- Typ: integerdurationmin.:4max.:15
Integer numbers.
- Typ: string Format: urifirst
_frame _url - Typ: booleangenerate
_audio - Typ: objectinput
Optionales verschachteltes input-Objekt; wenn vorhanden, haben seine Felder Vorrang vor gleichrangigen Feldern.
- aspectTyp: string enum
_ratio Seitenverhältnis der Ausgabe; adaptive folgt dem Seitenverhältnis des Eingabebildes.
Werte- 16:9
- 9:16
- 1:1
- 4:3
- 3:4
- 21:9
- adaptive
- durationTyp: integermin.:4max.:15
Ausgabedauer in Sekunden.
- firstTyp: string Format: uri
_frame _url URL des ersten Bildes (Modus image-to-video).
- generateTyp: boolean
_audio Ob eine synchronisierte Audiospur generiert werden soll.
- lastTyp: string Format: uri
_frame _url URL des letzten Bildes; muss zusammen mit first_frame_url verwendet werden.
- promptTyp: stringmax. Länge:2000
Prompt. Erforderlich für die Modi text-to-video und omni-reference.
- referenceTyp: array string[] …3Format: uri
_audio _urls Audioclips für die Omni-Referenz.
- referenceTyp: array string[] …9Format: uri
_image _urls Bilder für die Omni-Referenz. Nicht mit first/last-frame kombinierbar.
- referenceTyp: array string[] …3Format: uri
_video _urls Videos für die Omni-Referenz. Nicht mit first/last-frame kombinierbar. Die Angabe von Video ändert den Abrechnungseinheitspreis und addiert die Eingabedauer zur Token-Anzahl.
- resolutionTyp: string enum
Auflösung der Ausgabe. Eine höhere Auflösung verbraucht mehr Token und kostet mehr.
Werte- 480p
- 720p
- 1080p
- 4k
- serviceTyp: string | null
_tier Derzeit wird nur default (standard) unterstützt. Weggelassene Werte, null, Aliase und nicht unterstützte Zeichenfolgen fallen auf default zurück; andere Typen liefern HTTP 400. Konfigurierte Kanäle und Preise bleiben unverändert. Text-APIs senden den Standardwert des Anbieters; Decisions- und Generierungs-APIs lassen das Upstream-Feld weg.
- Typ: string Format: urilast
_frame _url - Typ: stringpromptmax. Länge:2000
- Typ: array string[] …3Format: urireference
_audio _urls - Typ: array string[] …9Format: urireference
_image _urls - Typ: array string[] …3Format: urireference
_video _urls - Typ: string enumresolutionWerte
- 480p
- 720p
- 1080p
- 4k
- Typ: string | nullservice
_tier Derzeit wird nur default (standard) unterstützt. Weggelassene Werte, null, Aliase und nicht unterstützte Zeichenfolgen fallen auf default zurück; andere Typen liefern HTTP 400. Konfigurierte Kanäle und Preise bleiben unverändert. Text-APIs senden den Standardwert des Anbieters; Decisions- und Generierungs-APIs lassen das Upstream-Feld weg.
- Typ: object · VideoGenerationAccepted202
Aufgabe angenommen
- enumkindKonstante:videoerforderlichWerte
- video
- Typ: array string[]outputserforderlich
Leer, bis die Aufgabe erfolgreich ist.
- enumstatusKonstante:queuederforderlichWerte
- queued
- Typ: stringtask
_id erforderlichAufgaben-ID für die Statusabfrage.
application/json - Typ: object · GenerationError400
Ungültige Anfrage (unbekanntes Modell, gemischte Eingabemodi, ungültige Felder)
OpenAI-kompatibles Fehler-Envelope.
- Typ: objecterror
- messageTyp: stringerforderlich
- typeTyp: string enumerforderlichWerte
- invalid
_request _error - server
_error
- codeTyp: string
- paramTyp: string nullable
application/json - Typ: object · GenerationError401
Ungültiger oder fehlender Felo-API-Schlüssel
OpenAI-kompatibles Fehler-Envelope.
- Typ: objecterror
- messageTyp: stringerforderlich
- typeTyp: string enumerforderlichWerte
- invalid
_request _error - server
_error
- codeTyp: string
- paramTyp: string nullable
application/json - Typ: object · GenerationError402
Unzureichendes Guthaben / Abrechnungsvoraussetzung nicht erfüllt
OpenAI-kompatibles Fehler-Envelope.
- Typ: objecterror
- messageTyp: stringerforderlich
- typeTyp: string enumerforderlichWerte
- invalid
_request _error - server
_error
- codeTyp: string
- paramTyp: string nullable
application/json - Typ: object · GenerationError403
Konto nicht berechtigt (Abonnement erforderlich oder Benutzer gesperrt). Deaktivierte Modelle werden ebenfalls vor Upstream-Aufrufen abgelehnt. Bereits angenommene Anfragen und Aufgaben werden fortgesetzt.
OpenAI-kompatibles Fehler-Envelope.
- Typ: objecterror
- messageTyp: stringerforderlich
- typeTyp: string enumerforderlichWerte
- invalid
_request _error - server
_error
- codeTyp: string
- paramTyp: string nullable
application/json - Typ: object · GenerationError429
Anfrage- oder Ausgabenlimit erreicht
OpenAI-kompatibles Fehler-Envelope.
- Typ: objecterror
- messageTyp: stringerforderlich
- typeTyp: string enumerforderlichWerte
- invalid
_request _error - server
_error
- codeTyp: string
- paramTyp: string nullable
application/json - Typ: object · GenerationError502
Upstream-Anbieter fehlgeschlagen
OpenAI-kompatibles Fehler-Envelope.
- Typ: objecterror
- messageTyp: stringerforderlich
- typeTyp: string enumerforderlichWerte
- invalid
_request _error - server
_error
- codeTyp: string
- paramTyp: string nullable
application/json - Typ: object · GenerationError503
Generierungsdienst oder Abrechnungsdienst vorübergehend nicht verfügbar
OpenAI-kompatibles Fehler-Envelope.
- Typ: objecterror
- messageTyp: stringerforderlich
- typeTyp: string enumerforderlichWerte
- invalid
_request _error - server
_error
- codeTyp: string
- paramTyp: string nullable
application/json
curl https://openapi.felo.ai/api/v1/videos/generations \
--request POST \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN' \
--data '{
"model": "seedance-2.0-mini",
"prompt": "a cinematic trailer shot, 720p",
"resolution": "720p",
"duration": 5,
"generate_audio": true
}'
{
"task_id": "string",
"status": "queued",
"kind": "video",
"outputs": [
"string"
]
}