- Version 1 (класичний режим): підтримує параметри
duration(10/15/25 секунд),orientation(горизонтальна/вертикальна орієнтація),size(small/large роздільна здатність), референсні зображенняimage_urls, посилання на персонажаcharacter_urlтощо. - Version 2 (режим партнерів): підтримує
seconds(4/8/12 секунд), роздільну здатність на рівні пікселівsize(наприклад, 1280x720), референсні зображенняinput_referenceтощо.
Процес подачі заявки
Щоб користуватися API, спочатку потрібно подати заявку на відповідний сервіс на сторінці Sora Videos Generation API. Після переходу на сторінку натисніть кнопку «Acquire», як показано на зображенні:
Якщо ви ще не увійшли або не зареєстровані, система автоматично перенаправить вас на сторінку входу або реєстрації. Після входу або реєстрації ви повернетесь на поточну сторінку.
При першій подачі заявки надається безкоштовний ліміт для використання API.
Основне використання (Version 1)
Спочатку ознайомтеся з базовим способом використання Version 1: вводяться підказкаprompt, масив посилань на референсні зображення image_urls та модель model, після чого отримується оброблений результат. Деталі наведені нижче:

accept: формат відповіді, який ви хочете отримати, тут вказаноapplication/json(формат JSON).authorization: ключ для виклику API, який можна вибрати зі списку після подачі заявки.
model: модель для генерації відео, підтримуютьсяsora-2(стандартний режим) таsora-2-pro(режим HD). Модельsora-2-proпідтримуєdurationдо 25 секунд, тоді якsora-2— лише 10 або 15 секунд.size: роздільна здатність відео,small— стандартна,large— HD (тільки Version 1).duration: тривалість відео, підтримується 10, 15, 25 секунд (25 секунд лише дляsora-2-pro, тільки Version 1).orientation: орієнтація відео, підтримуєтьсяlandscape(горизонтальна) таportrait(вертикальна) (тільки Version 1).image_urls: масив посилань на референсні зображення для генерації відео з картинки (тільки Version 1).character_url: посилання на персонажа, у відео не повинно бути реальних людей (тільки Version 1).character_start/character_end: час появи персонажа у відео в секундах, різниця 1-3 секунди (тільки Version 1).prompt: підказка (обов’язковий параметр).callback_url: URL для асинхронного зворотного виклику.version: версія API,"1.0"(за замовчуванням) або"2.0".

success: статус завдання генерації відео.task_id: ID завдання генерації відео.trace_id: ID трасування запиту.data: список результатів завдання генерації відео.id: ID відео завдання.video_url: посилання на згенероване відео.state: статус завдання.
data.
Якщо потрібно згенерувати код для інтеграції, його можна скопіювати напряму. Наприклад, CURL-запит:
Генерація відео з картинки (Version 1)
Для генерації відео з картинки потрібно передати параметрimage_urls з масивом посилань на референсні зображення. Важливо: не передавайте реальні фото з обличчями людей, інакше завдання може не виконатися.
Приклад заповнення:


Генерація відео з персонажем (Version 1)
Для генерації відео з персонажем потрібно передати параметрcharacter_url з посиланням на відео, яке використовується для створення персонажа. Відео не повинно містити реальних людей, інакше завдання не виконається.
Параметри:
character_url: посилання на відео для створення персонажа, без реальних людей.


Режим Version 2.0
Окрім Version 1.0, API підтримує режим Version 2.0, який активується встановленням параметраversion в "2.0". Цей режим підтримує коротші відео та керування роздільною здатністю на рівні пікселів.
Пояснення параметрів Version 2.0
| Параметр | Тип | Обов’язковий | Опис |
|---|---|---|---|
version | string | Так | Встановити "2.0" |
prompt | string | Так | Підказка для генерації відео |
model | string | Ні | sora-2 (за замовчуванням) або sora-2-pro |
duration | integer | Ні | Тривалість відео: 4 (за замовчуванням), 8, 12 секунд |
size | string | Ні | Роздільна здатність: 720x1280 (за замовчуванням), 1280x720, 1024x1792, 1792x1024 |
image_urls | array | Ні | Масив URL референсних зображень, використовується лише перше зображення, розмір повинен відповідати параметру size |
callback_url | string | Ні | URL для асинхронного зворотного виклику |
Базовий приклад
Використання референсних зображень (Version 2.0)
У режимі Version 2.0 можна передати параметрimage_urls з референсним зображенням для керування генерацією відео (використовується лише перше зображення):
Увага: розмір референсного зображення повинен відповідати параметруsize. Наприклад, якщоsizeдорівнює1280x720, то розмір зображення має бути 1280×720.
Порівняння параметрів Version 1.0 та Version 2.0
| Параметр | Version 1.0 | Version 2.0 |
|---|---|---|
version | 1.0 (за замовчуванням) | 2.0 |
prompt | ✅ | ✅ |
model | ✅ sora-2 / sora-2-pro | ✅ sora-2 / sora-2-pro |
duration | ✅ 10/15/25 секунд | ✅ 4/8/12 секунд |
orientation | ✅ landscape/portrait | ❌ |
size | ✅ small/large | ✅ 720x1280/1280x720/1024x1792/1792x1024 |
image_urls | ✅ кілька зображень | ✅ лише перше зображення |
character_url | ✅ | ❌ |
callback_url | ✅ | ✅ |
Асинхронний зворотний виклик
Оскільки генерація відео через Sora Videos Generation API займає приблизно 1-2 хвилини, а HTTP-запит може довго тримати з’єднання, що призводить до додаткових витрат ресурсів, API підтримує асинхронний зворотний виклик. Процес: клієнт при відправці запиту вказує додатково полеcallback_url. Після отримання запиту API одразу повертає результат із полем task_id — ідентифікатором завдання. Коли завдання завершується, результат у форматі POST JSON надсилається на вказаний callback_url, де також міститься task_id для зв’язку результату із завданням.
Розглянемо приклад.
Webhook callback — це сервіс, який приймає HTTP-запити. Розробник повинен замінити URL на свій сервер. Для демонстрації використано публічний сервіс https://webhook.site/, на якому можна отримати унікальний Webhook URL, як показано на зображенні:
Скопіюйте цей URL, наприклад https://webhook.site/eb238c4f-da3b-47a5-a922-a93aa5405daa, і використовуйте як Webhook.
Далі встановіть поле callback_url у цей Webhook URL та заповніть інші параметри, як показано:

https://webhook.site/eb238c4f-da3b-47a5-a922-a93aa5405daa можна побачити результат генерації відео, як на зображенні:
Вміст:
task_id, інші поля аналогічні попереднім. За цим полем можна зв’язати результат із завданням.
Обробка помилок
При виклику API у разі помилки повертаються відповідні коди та повідомлення. Наприклад:400 token_mismatched: некоректний запит, можливо, відсутні або неправильні параметри.400 api_not_implemented: некоректний запит, можливо, відсутні або неправильні параметри.401 invalid_token: неавторизований, недійсний або відсутній токен авторизації.429 too_many_requests: перевищено ліміт запитів.500 api_error: внутрішня помилка сервера.

