API Sora 2 Pro

Intégrez l'API Sora 2 Pro

Créez des workflows texte-vers-vidéo, image-vers-vidéo et storyboard avec un polling prévisible et un contrôle des crédits.

Ce que l'API Sora 2 Pro offre

Tout ce dont vous avez besoin pour lancer des pipelines Sora 2 Pro prêts pour la production.

Cinq variantes de modèles

Choisissez sora-2 texte/image ou sora-2-pro texte/image/storyboard selon la qualité et le coût.

Support du storyboard

Définissez des récits multi-plans avec shots[] et des durées par plan.

Réponses unifiées

Tous les endpoints retournent code/message/data, même lorsque le statut HTTP est 200 en cas d'erreur.

Authentification et URL de base

URL de base : https://freesoragenerator.com. Authentifiez-vous avec une clé API ou un cookie de session connecté.

  • Authorization: Bearer [TOKEN] (clé API sk- ou JWT), ou envoyez un cookie de session.
  • Envoyez Content-Type: application/json avec les corps POST.
  • La plupart des erreurs retournent toujours HTTP 200 ; inspectez toujours le champ code.

Endpoints principaux

Créez des tâches avec /sora-pro, puis interrogez check-result pour le statut.

Créer une tâche de génération

Valide l'entrée, déduit les crédits, crée une tâche et retourne taskId.

Méthode: POSTChemin: /api/v1/video/sora-pro

Paramètres du payload

  • Requis. Un parmi sora-2-text-to-video, sora-2-image-to-video, sora-2-pro-text-to-video, sora-2-pro-image-to-video, sora-2-pro-storyboard.
  • Conditionnel. Requis pour tous les modèles sauf sora-2-pro-storyboard.
  • Conditionnel. URL de données Base64 comme data:image/png;base64,... Requis pour image-vers-vidéo si pas d'imageUrl.
  • Conditionnel. URL d'image publique utilisée lorsque imageData n'est pas fourni.
  • Optionnel. portrait ou landscape. Par défaut : landscape.
  • Optionnel. 10, 15 ou 25 (storyboard uniquement). Les valeurs par défaut varient selon le modèle.
  • Optionnel. standard ou high. Uniquement pour les modèles Pro texte/image.
  • Optionnel. Supprimer le filigrane pour les modèles non-storyboard. Par défaut : true.
  • Conditionnel. Requis pour sora-2-pro-storyboard. Tableau de '{ Scene, duration }'.

Notes

  • imageData a la priorité sur imageUrl lorsque les deux sont fournis.
  • prompt est optionnel pour le storyboard et n'est pas envoyé au fournisseur ; utilisez shots pour le contenu.
  • nFrames est normalisé aux valeurs autorisées par modèle.
  • removeWatermark est par défaut true pour les modèles non-storyboard.
  • shots doit inclure Scene (S majuscule) et duration > 0.

Exemples de requêtes

Texte-vers-vidéo
curl -X POST https://freesoragenerator.com/api/v1/video/sora-pro \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "sora-2-pro-text-to-video",
    "prompt": "A cinematic shot of a futuristic city at sunset.",
    "aspectRatio": "landscape",
    "nFrames": "10",
    "size": "high",
    "removeWatermark": true
  }'
Image-vers-vidéo
curl -X POST https://freesoragenerator.com/api/v1/video/sora-pro \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "sora-2-image-to-video",
    "prompt": "Turn this image into a dynamic 10s clip.",
    "imageUrl": "https://example.com/reference.png",
    "aspectRatio": "portrait",
    "nFrames": "10"
  }'
Storyboard
curl -X POST https://freesoragenerator.com/api/v1/video/sora-pro \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "sora-2-pro-storyboard",
    "shots": [
      { "Scene": "Establishing shot of a city skyline at dusk", "duration": 5 },
      { "Scene": "Close-up of a runner splashing through puddles", "duration": 5 }
    ],
    "aspectRatio": "landscape",
    "nFrames": "10"
  }'

Exemple de réponse

{
  "code": 0,
  "message": "ok",
  "data": {
    "taskId": "281e5b0*********************f39b9"
  }
}

Interroger le statut de la tâche

Récupère le statut, la progression et les URLs de résultat par taskId.

Méthode: POSTChemin: /api/video-generations/check-result

Paramètres du payload

  • Requis. Le taskId retourné par create.

Notes

  • Valeurs de statut : pending | running | succeeded | failed | cancelled.
  • result_url et result_urls retournent les liens vidéo finaux lorsqu'ils sont prêts.

Exemple de requête

curl -X POST https://freesoragenerator.com/api/video-generations/check-result \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "taskId": "281e5b0*********************f39b9"
  }'

Exemple de réponse

{
  "code": 0,
  "message": "Success",
  "data": {
    "status": "running",
    "progress": 35,
    "result_url": "https://your-domain.com/storage/videos/xxx.mp4",
    "result_urls": [
      "https://your-domain.com/storage/videos/xxx.mp4"
    ],
    "failure_reason": "",
    "error_message": null
  }
}

Obtenir les crédits utilisateur

Vérifiez le solde de crédits actuel avant de soumettre des tâches.

Méthode: POSTChemin: /api/get-user-credits

Notes

  • Endpoint optionnel ; utile pour les vérifications préalables.
  • Retourne left_credits et les indicateurs is_vip.

Exemple de requête

curl -X POST https://freesoragenerator.com/api/get-user-credits \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json"

Exemple de réponse

{
  "code": 0,
  "message": "ok",
  "data": {
    "left_credits": 120,
    "is_vip": false
  }
}

Codes d'erreur courants

Les erreurs sont signalées via le champ code dans le corps de la réponse.

  • 401 : Non autorisé
  • 402 : Crédits insuffisants
  • -1 : Paramètre model invalide
  • -1 : Le prompt est requis
  • -1 : L'image est requise pour image-vers-vidéo
  • -1 : Les shots sont requis pour le storyboard
  • -1 : Échec du téléchargement de l'image
  • -1 : Échec de la création de l'enregistrement de génération vidéo

Référence des crédits

Les crédits varient selon le modèle, la taille et nFrames. Utilisez ce tableau comme référence.

ModèleParamètresCrédits
sora-2-text-to-video1020
sora-2-text-to-video1530
sora-2-image-to-video1020
sora-2-image-to-video1530
sora-2-pro-text-to-videostandard + 10375
sora-2-pro-text-to-videostandard + 15675
sora-2-pro-text-to-videohigh + 10825
sora-2-pro-text-to-videohigh + 151 575
sora-2-pro-image-to-videostandard + 10375
sora-2-pro-image-to-videostandard + 15675
sora-2-pro-image-to-videohigh + 10825
sora-2-pro-image-to-videohigh + 151 575
sora-2-pro-storyboard10375
sora-2-pro-storyboard15675
sora-2-pro-storyboard25675

1. Créer la tâche

POST /api/v1/video/sora-pro avec votre modèle et payload.

2. Suivre la progression

Interrogez /api/video-generations/check-result jusqu'à ce que le statut soit succeeded ou failed.

3. Vérifier les crédits

Appelez optionnellement /api/get-user-credits avant de soumettre de gros lots.

Questions fréquemment posées

Puis-je utiliser des clés API ou des cookies de session ?

Oui. Envoyez Authorization: Bearer [TOKEN] (clé API ou JWT) ou un cookie de session connecté.

Comment formater les plans du storyboard ?

Fournissez shots comme un tableau de '{ Scene, duration }' où Scene est en majuscule et duration est en secondes.

Pourquoi les crédits diffèrent-ils selon le modèle ?

Les crédits évoluent avec nFrames pour tous les modèles ; les modèles Pro varient également selon la taille.

Ressources utiles

Commencez avec l'API Sora 2 Pro

Générez une clé API et lancez votre premier workflow Sora 2 Pro dès aujourd'hui.