API Sora 2 Pro

Zintegruj API Sora 2 Pro

Twórz przepływy pracy tekst-do-wideo, obraz-do-wideo i storyboard z przewidywalnym odpytywaniem i kontrolą kredytów.

Co oferuje API Sora 2 Pro

Wszystko, czego potrzebujesz do uruchomienia gotowych do produkcji potoków Sora 2 Pro.

Pięć wariantów modeli

Wybierz sora-2 tekst/obraz lub sora-2-pro tekst/obraz/storyboard w zależności od jakości i kosztu.

Obsługa storyboardów

Definiuj wieloujęciowe narracje za pomocą shots[] i czasów trwania dla każdego ujęcia.

Ujednolicone odpowiedzi

Wszystkie endpointy zwracają code/message/data, nawet gdy status HTTP to 200 przy błędach.

Uwierzytelnianie i bazowy URL

Bazowy URL: https://freesoragenerator.com. Uwierzytelnij się kluczem API lub ciasteczkiem sesji zalogowanego użytkownika.

  • Authorization: Bearer [TOKEN] (klucz API sk- lub JWT), lub wyślij ciasteczko sesji.
  • Wysyłaj Content-Type: application/json z ciałami żądań POST.
  • Większość błędów nadal zwraca HTTP 200; zawsze sprawdzaj pole code.

Główne endpointy

Twórz zadania za pomocą /sora-pro, następnie odpytuj check-result o status.

Utwórz zadanie generowania

Zwaliduj dane wejściowe, odejmij kredyty, utwórz zadanie i zwróć taskId.

Metoda: POSTŚcieżka: /api/v1/video/sora-pro

Parametry ładunku

  • Wymagane. Jeden z: 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.
  • Warunkowe. Wymagane dla wszystkich modeli z wyjątkiem sora-2-pro-storyboard.
  • Warunkowe. URL danych Base64 jak data:image/png;base64,... Wymagane dla image-to-video, jeśli brak imageUrl.
  • Warunkowe. Publiczny URL obrazu używany, gdy imageData nie jest podane.
  • Opcjonalne. portrait lub landscape. Domyślnie: landscape.
  • Opcjonalne. 10, 15 lub 25 (tylko storyboard). Wartości domyślne różnią się w zależności od modelu.
  • Opcjonalne. standard lub high. Tylko dla modeli Pro tekst/obraz.
  • Opcjonalne. Usuń znak wodny dla modeli innych niż storyboard. Domyślnie: true.
  • Warunkowe. Wymagane dla sora-2-pro-storyboard. Tablica '{ Scene, duration }'.

Uwagi

  • imageData ma pierwszeństwo przed imageUrl, gdy podane są oba.
  • prompt jest opcjonalny dla storyboard i nie jest wysyłany do dostawcy; użyj shots dla treści.
  • nFrames jest normalizowane do dozwolonych wartości dla danego modelu.
  • removeWatermark domyślnie ustawione na true dla modeli innych niż storyboard.
  • shots musi zawierać Scene (wielka litera S) i duration > 0.

Przykładowe żądania

Tekst-do-wideo
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
  }'
Obraz-do-wideo
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"
  }'

Przykładowa odpowiedź

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

Sprawdź status zadania

Pobierz status, postęp i URL-e wyników według taskId.

Metoda: POSTŚcieżka: /api/video-generations/check-result

Parametry ładunku

  • Wymagane. taskId zwrócone przez create.

Uwagi

  • Wartości statusu: pending | running | succeeded | failed | cancelled.
  • result_url i result_urls zwracają końcowe linki do wideo, gdy są gotowe.

Przykładowe żądanie

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"
  }'

Przykładowa odpowiedź

{
  "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
  }
}

Pobierz kredyty użytkownika

Sprawdź bieżące saldo kredytów przed wysłaniem zadań.

Metoda: POSTŚcieżka: /api/get-user-credits

Uwagi

  • Opcjonalny endpoint; przydatny do wstępnych sprawdzeń.
  • Zwraca flagi left_credits i is_vip.

Przykładowe żądanie

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

Przykładowa odpowiedź

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

Typowe kody błędów

Błędy są przekazywane przez pole code w ciele odpowiedzi.

  • 401: Nieautoryzowany
  • 402: Niewystarczające kredyty
  • -1: Nieprawidłowy parametr model
  • -1: Prompt jest wymagany
  • -1: Obraz jest wymagany dla image-to-video
  • -1: Shots jest wymagane dla storyboard
  • -1: Nie udało się przesłać obrazu
  • -1: Nie udało się utworzyć rekordu generowania wideo

Tabela kredytów

Kredyty różnią się w zależności od modelu, rozmiaru i nFrames. Użyj tej tabeli jako punktu odniesienia.

ModelParametryKredyty
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 + 151575
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 + 151575
sora-2-pro-storyboard10375
sora-2-pro-storyboard15675
sora-2-pro-storyboard25675

1. Utwórz zadanie

POST /api/v1/video/sora-pro z Twoim modelem i ładunkiem.

2. Śledź postęp

Odpytuj /api/video-generations/check-result aż status będzie succeeded lub failed.

3. Zweryfikuj kredyty

Opcjonalnie wywołaj /api/get-user-credits przed wysłaniem dużych partii.

Często zadawane pytania

Czy mogę używać kluczy API lub ciasteczek sesji?

Tak. Wyślij Authorization: Bearer [TOKEN] (klucz API lub JWT) lub ciasteczko sesji zalogowanego użytkownika.

Jak formatować ujęcia storyboardu?

Podaj shots jako tablicę '{ Scene, duration }', gdzie Scene jest pisane wielką literą, a duration to sekundy.

Dlaczego kredyty różnią się w zależności od modelu?

Kredyty skalują się z nFrames dla wszystkich modeli; modele Pro różnią się również rozmiarem.

Przydatne zasoby

Zacznij z API Sora 2 Pro

Wygeneruj klucz API i uruchom swój pierwszy przepływ pracy Sora 2 Pro już dziś.