API Sora 2 Pro

Интегрируйте API Sora 2 Pro

Создавайте рабочие процессы текст-в-видео, изображение-в-видео и раскадровки с предсказуемым опросом и контролем кредитов.

Что предоставляет API Sora 2 Pro

Всё необходимое для запуска готовых к продакшену конвейеров Sora 2 Pro.

Пять вариантов моделей

Выбирайте sora-2 текст/изображение или sora-2-pro текст/изображение/раскадровка в зависимости от качества и стоимости.

Поддержка раскадровки

Определяйте многокадровые нарративы с помощью shots[] и длительности для каждого кадра.

Унифицированные ответы

Все эндпоинты возвращают code/message/data, даже когда HTTP-статус 200 при ошибках.

Аутентификация и базовый URL

Базовый URL: https://freesoragenerator.com. Аутентифицируйтесь с помощью API-ключа или cookie авторизованной сессии.

  • Authorization: Bearer [TOKEN] (API-ключ sk- или JWT), или отправьте cookie сессии.
  • Отправляйте Content-Type: application/json с телом POST-запросов.
  • Большинство ошибок всё равно возвращают HTTP 200; всегда проверяйте поле code.

Основные эндпоинты

Создавайте задачи через /sora-pro, затем опрашивайте check-result для получения статуса.

Создание задачи генерации

Валидация входных данных, списание кредитов, создание задачи и возврат taskId.

Метод: POSTПуть: /api/v1/video/sora-pro

Параметры запроса

  • Обязательно. Одно из: 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.
  • Условно. Обязательно для всех моделей, кроме sora-2-pro-storyboard.
  • Условно. Base64 data URL вида data:image/png;base64,... Обязательно для image-to-video, если нет imageUrl.
  • Условно. Публичный URL изображения, используется когда imageData не указан.
  • Необязательно. portrait или landscape. По умолчанию: landscape.
  • Необязательно. 10, 15 или 25 (только для раскадровки). Значения по умолчанию зависят от модели.
  • Необязательно. standard или high. Только для Pro моделей текст/изображение.
  • Необязательно. Удалить водяной знак для моделей без раскадровки. По умолчанию: true.
  • Условно. Обязательно для sora-2-pro-storyboard. Массив '{ Scene, duration }'.

Примечания

  • imageData имеет приоритет над imageUrl, когда указаны оба параметра.
  • prompt необязателен для раскадровки и не отправляется провайдеру; используйте shots для контента.
  • nFrames нормализуется до допустимых значений для каждой модели.
  • removeWatermark по умолчанию true для моделей без раскадровки.
  • shots должен включать Scene (с заглавной S) и duration > 0.

Примеры запросов

Текст-в-видео
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
  }'
Изображение-в-видео
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"
  }'
Раскадровка
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"
  }'

Пример ответа

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

Запрос статуса задачи

Получение статуса, прогресса и URL результатов по taskId.

Метод: POSTПуть: /api/video-generations/check-result

Параметры запроса

  • Обязательно. taskId, возвращённый при создании.

Примечания

  • Значения статуса: pending | running | succeeded | failed | cancelled.
  • result_url и result_urls возвращают ссылки на готовое видео.

Пример запроса

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

Пример ответа

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

Получить кредиты пользователя

Проверьте текущий баланс кредитов перед отправкой задач.

Метод: POSTПуть: /api/get-user-credits

Примечания

  • Необязательный эндпоинт; полезен для предварительных проверок.
  • Возвращает left_credits и флаги is_vip.

Пример запроса

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

Пример ответа

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

Распространённые коды ошибок

Ошибки передаются через поле code в теле ответа.

  • 401: Не авторизован
  • 402: Недостаточно кредитов
  • -1: Недопустимый параметр model
  • -1: Требуется prompt
  • -1: Требуется изображение для image-to-video
  • -1: Требуется shots для раскадровки
  • -1: Не удалось загрузить изображение
  • -1: Не удалось создать запись генерации видео

Справочник по кредитам

Кредиты зависят от модели, размера и nFrames. Используйте эту таблицу как базовый ориентир.

МодельПараметрыКредиты
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. Создайте задачу

POST /api/v1/video/sora-pro с вашей моделью и данными.

2. Отслеживайте прогресс

Опрашивайте /api/video-generations/check-result пока статус не станет succeeded или failed.

3. Проверьте кредиты

Опционально вызовите /api/get-user-credits перед отправкой больших пакетов.

Часто задаваемые вопросы

Можно ли использовать API-ключи или cookie сессии?

Да. Отправьте Authorization: Bearer [TOKEN] (API-ключ или JWT) или cookie авторизованной сессии.

Как форматировать кадры раскадровки?

Укажите shots как массив '{ Scene, duration }', где Scene с заглавной буквы, а duration — в секундах.

Почему кредиты различаются для разных моделей?

Кредиты масштабируются с nFrames для всех моделей; Pro модели также зависят от size.

Полезные ресурсы

Начните работу с API Sora 2 Pro

Сгенерируйте API-ключ и запустите свой первый рабочий процесс Sora 2 Pro уже сегодня.