Video API
Une API unifiée de génération vidéo compatible avec le standard OpenRouter Video Generation. Un seul schéma couvre le texte-vers-vidéo, l’image-vers-vidéo, la première/dernière image et la génération guidée par référence. Soumettez une tâche de façon asynchrone, puis interrogez son statut ou recevez un webhook lorsqu’elle est terminée.
Authentification
Chaque requête transporte votre clé API ofox (format sk-xxx…) dans le Header HTTP :
Authorization: Bearer $OFOX_API_KEYcallback_url doit être en HTTPS. Les cibles de webhook sont validées contre les SSRF : les adresses privées, loopback et de métadonnées cloud sont rejetées. Une adresse non HTTPS ou interne échoue à la création avec 400 invalid_callback_url.
Démarrage rapide
1. Soumettre une tâche
# Optionnel : épingler un fournisseur. Sans ce champ, la plateforme route pour vous
# "provider": { "type": "byteplus" }
curl -X POST https://api.ofox.io/v1/videos \
-H "Authorization: Bearer $OFOX_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "bytedance/seedance-2.5",
"prompt": "A golden retriever running on the beach at sunset",
"duration": 5,
"resolution": "1080p",
"aspect_ratio": "16:9",
"generate_audio": true
}'L’appel renvoie immédiatement 202 avec une URL de polling :
{
"id": "9bcf3c60-7db2-4e1a-a1b2-c3d4e5f60718",
"status": "pending",
"polling_url": "https://api.ofox.io/v1/videos/9bcf3c60-7db2-4e1a-a1b2-c3d4e5f60718"
}2. Interroger jusqu’à la fin
curl https://api.ofox.io/v1/videos/9bcf3c60-7db2-4e1a-a1b2-c3d4e5f60718 \
-H "Authorization: Bearer $OFOX_API_KEY"Continuez les requêtes jusqu’à ce que status atteigne un état terminal — completed, failed, cancelled ou expired. N’interrogez pas plus d’une fois par seconde, ou passez un callback_url à la création de la tâche pour recevoir un webhook au lieu du polling. Consultez Obtenir le statut vidéo et Webhooks.
Endpoints
Cet endpoint sert 12 modèles, qui diffèrent par la durée maximale, la résolution, les formats et le tarif — voir la matrice complète dans Modèles vidéo.
Épingler un fournisseur
Un modèle vidéo peut être servi par plusieurs fournisseurs. Passez provider.type à la racine du corps de la requête pour épingler la tâche à l’un d’eux :
{
"model": "bytedance/seedance-2.0-mini",
"prompt": "...",
"provider": { "type": "byteplus" }
}Sans ce champ, la tâche est répartie selon une pondération. Les fournisseurs disponibles sont listés dans Routage des fournisseurs.
Tarification à la seconde
Les modèles vidéo sont facturés au temps, pas au nombre de tokens. L’entrée correspondante de pricing.video_pricing.tiers fixe le tarif en USD par seconde selon la résolution, le type d’entrée et les options audio. pricing.output_video_per_second n’est que le prix de départ le plus bas du modèle. L’estimation est tarif du niveau × durée demandée ; une fois la tâche terminée, utilisez usage.video_seconds et usage.video_cost comme durée facturée et coût réel. Pour les tâches vidéo-vers-vidéo, les secondes facturées peuvent inclure la durée de la vidéo d’entrée.