Перейти к основному содержанию
POST
API работает асинхронно. После отправки прочитайте data[0].task_id и используйте запрос статуса задачи. Обычно генерация занимает 1–3 минуты; рекомендуемый интервал опроса — 5–10 секунд. Фактическое время зависит от задачи.

Выбор режима

Заголовки

string
обязательно
Авторизация: Bearer <token>, где <token> — ключ API APIMart. Для тела запроса используйте Content-Type: application/json.

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

string
обязательно
Всегда apimart-zoe.
string
До 204 800 символов. Обязателен для видео по тексту; при передаче только материалов можно опустить. При использовании draft_task_id передавать нельзя: текст наследуется от черновика.
string
480p, 720p, 1080p, 2k, 4k, без учёта регистра. Обычная генерация: по умолчанию 720p. При draft: true допускается только 480p, это же значение используется при пропуске. При draft_task_id допускается только 1080p, включая значение по умолчанию.
string
21:9, 16:9, 4:3, 1:1, 3:4, 9:16, adaptive. По умолчанию adaptive: формат определяет модель или материалы. Для финального видео поле запрещено — формат наследуется от черновика.Для редактирования (edit) поле нужно опустить или передать adaptive, чтобы сохранить формат исходного видео.
string
Другое имя для aspect_ratio, с теми же значениями. Рекомендуется передавать только одно из полей. Для финального видео опустите.
integer
Обычная генерация: Целые секунды 4–30, по умолчанию 5. Оплачивается заданная или стандартная длительность, без корректировки по готовому видео. При -1 решает модель: резервируется 30 секунд, затем сумма пересчитывается по фактической длительности, округлённой до ближайшей целой секунды (0.5 вверх). Для финального видео опустите: длительность наследуется от черновика.Для редактирования (edit) поле нужно опустить или передать -1. При пропуске также используется -1; длительность следует исходному видео.
integer
Псевдоним duration, с теми же правилами. Передавайте только одно из полей. Для финального видео опустите.
boolean
Логический параметр генерации звука вместе с видео. Псевдоним: generate_audio. Если опущен, решает модель. Для финального видео запрещён. Управляет выходным звуком, а не входными референсами audio_urls.При одновременной передаче audio и generate_audio значения должны совпадать, иначе HTTP 400. Если они опущены, модель решает сама и обычно добавляет звук.
boolean
Псевдоним audio с теми же правилами. Используйте одно из полей; для финального видео опустите.При одновременной передаче audio и generate_audio значения должны совпадать, иначе HTTP 400. Если они опущены, модель решает сама и обычно добавляет звук.
integer
Целочисленный случайный seed. Для финального видео запрещён.
boolean
По умолчанию модерация отключена. Для включения передайте true.Необязательный логический параметр. true включает модерацию prompt, image_urls, image_with_roles, первого/последнего кадров и изображений asset://. Референсные видео и аудио не проверяются.Запрос финального видео не содержит текста или материалов; в процессе «черновик → финальное видео» модерация выполняется при создании черновика.При обнаружении возвращается HTTP 400 (nsfw_content_detected), категории указаны в error.message. Показывайте отказ модерации, а не общую ошибку параметров. При сбое или недоступности сервиса модерации генерация продолжается, поэтому включение параметра не гарантирует завершённую проверку каждого запроса.
string
Поддерживает auto (по умолчанию, как при пропуске; решает модель), reference и edit. reference / edit требуют референсных материалов; для чистого текста или первого/последнего кадров возвращается HTTP 400. Для edit нужно хотя бы одно видео в video_urls; сочетание с draft: true запрещено. extend не поддерживается и возвращает HTTP 400. Не передавать при финальной генерации.
boolean
При true дополнительно возвращает PNG последнего кадра в data.result.last_frame_url. По умолчанию отключено. Не передавать при финальной генерации.
string
mp4 (по умолчанию) или mov (контейнер QuickTime); другие значения дают HTTP 400. Псевдоним — response_format; при обоих полях приоритет у output_format. Не передавать при финальной генерации.
string
Псевдоним output_format, значения mp4 / mov. При обоих полях приоритет у output_format. Не передавать при финальной генерации.
boolean
При true автоматически улучшает промпт перед генерацией. По умолчанию используется исходный промпт без оптимизации. Не передавать при финальной генерации.
object[]
Каждый элемент содержит url и role. Роли: first_frame (первый кадр), last_frame (последний), reference_image (референс). Не более одного первого и одного последнего кадра. Последний кадр требует первого. Кадры нельзя сочетать с референсными материалами.Нельзя одновременно передавать image_urls и image_with_roles: при отправке возвращается HTTP 400 (invalid_request_error) без оплаты. Псевдонимы image, images, image_url также считаются image_urls и не обходят это ограничение.
string[]
До 30 референсных изображений. Форматы, размеры и ограничения файлов приведены ниже.Нельзя одновременно передавать image_urls и image_with_roles: при отправке возвращается HTTP 400 (invalid_request_error) без оплаты. Псевдонимы image, images, image_url также считаются image_urls и не обходят это ограничение.
string
Адрес первого кадра; эквивалент роли first_frame в image_with_roles.
string
Адрес последнего кадра; эквивалент роли last_frame в image_with_roles. Первый кадр также обязателен.
string[]
До 10 референсных видео. Общедоступные URL http(s) или asset://<ID материала>, без data: Base64. Размеры, точная длительность и частота кадров проверяются при отправке по правилам ниже.Для оплаты длительности складываются, затем сумма округляется вниз до целых секунд и больше не меняется. Это округление не применяется при проверке длительности отдельного видео. Недоступность или ошибка определения длительности: HTTP 400 (input_video_probe_failed) без оплаты.auto / reference: 2–15 секунд, допустимо 1.8 ≤ t ≤ 15.2. Исходное видео для edit: 4–30 секунд, допустимо 3.8 ≤ t < 30.2. Проверяется точная длительность без предварительного округления.
string[]
До 10; WAV / MP3; каждое 2–15 секунд и ≤ 15 MB, суммарно до 30 секунд. Допуск ±0.2 секунды: каждое 1.8 ≤ t ≤ 15.2, сумма ≤ 30.2. Нужно референсное изображение или видео.Публичный http(s) URL или asset://<ID материала>, без data: Base64. Длительность аудио проверяется при отправке; нарушение даёт синхронный HTTP 400 без оплаты.
boolean
true создаёт черновик 480p. Остальные параметры подчиняются правилам обычной генерации. Не передавайте при создании финального видео.Редактирование видео (edit) не поддерживает черновики.
string
task_id успешного черновика для создания финального видео 1080p. Используйте в течение 24 часов после создания черновика. Текст, материалы, длительность и формат наследуются; повторная передача этих полей запрещена. При создании финального видео также запрещены seed, audio и его псевдоним generate_audio.

Адреса и ограничения материалов

Изображения, видео и аудио принимают публичные http(s) URL или материалы APIMart asset://<ID материала>. Ни один тип не принимает data: Base64: сначала загрузите файл. Регистрация автоматическая, отдельный API-вызов не нужен. При её сбое задача завершается ошибкой с возвратом средств.

Проверка референсного видео

Размеры видео, площадь в пикселях, соотношение сторон, точная длительность и частота кадров, а также длительность референсного аудио проверяются при отправке. Нарушение даёт синхронный HTTP 400 без оплаты. Ошибки видео используют invalid_request_error и содержат измерения. Проверяйте площадь, а не короткую сторону от 480 и длинную до 4096. Только по размерам: 420×1000 (420 000 пикселей) допустимо. 720×480 (345 600), 848×480 (407 040) и 4096×2160 (8 847 360 пикселей) не проходят ограничения площади. Длительность, частота кадров и остальные требования тоже должны соблюдаться. Размеры изображений, размер файла и кодирование проверяются во время генерации. Несоответствие приводит к ошибке задачи с автоматическим возвратом средств. По возможности проверяйте эти свойства до вызова API.

Правила сочетания материалов

  • Нельзя одновременно передавать image_urls и image_with_roles: при отправке возвращается HTTP 400 (invalid_request_error) без оплаты. Псевдонимы image, images, image_url также считаются image_urls и не обходят это ограничение.
  • Первый/последний кадры нельзя сочетать в одном запросе с референсными изображениями, видео или аудио.
  • Не более одного первого и одного последнего кадра. Последний кадр требует первого.
  • До 30 изображений, 10 видео и 10 аудиореференсов; всего не более 50 материалов.
  • Нарушение ограничений сочетания или количества возвращает синхронный HTTP 400 без списания средств.
  • Для omni_reference_task_type: "edit" нужно хотя бы одно исходное видео (3.8 ≤ t < 30.2 секунд). duration / seconds: только пропуск или -1; aspect_ratio / size: только пропуск или adaptive. Нельзя сочетать с draft: true. Для auto/reference сохраняются 2–15 секунд с указанным допуском.
Следующие поля дают HTTP 400 при самом наличии, даже со значениями "", [], false или null; полностью удалите их: negative_prompt, camera_fixed, camerafixed, extend_from_task_id, mask_url, video_list, element_list, multi_shot, tools. n нужно опустить или задать 1.

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

URL ниже приведены для примера. Замените их доступными адресами материалов.

Первый и последний кадры

Также можно использовать first_frame_image и last_frame_image. Не добавляйте референсные изображения, видео или аудио в этот же запрос.

Изображения, видео и аудио как референсы

Изображения в image_urls считаются референсами. При duration: -1 модель определяет длительность результата.

Редактирование видео

Для omni_reference_task_type: "edit" нужно хотя бы одно исходное видео (3.8 ≤ t < 30.2 секунд). duration / seconds: только пропуск или -1; aspect_ratio / size: только пропуск или adaptive. Нельзя сочетать с draft: true. Для auto/reference сохраняются 2–15 секунд с указанным допуском.
Редактирование использует тариф с референсным видео. Сначала резервируются 30 секунд выхода, затем расчёт корректируется по фактической длительности, округлённой до целых секунд. Длительность референсов учитывается по формуле ниже.

Последний кадр, MOV и оптимизация промпта

Черновик → финальное видео

  1. Отправьте черновик с draft: true. Если resolution опущен, используется 480p; при явном указании также допустим только 480p.
  1. Дождитесь успеха черновика и отправьте его task_id для финального видео. Достаточно model и draft_task_id. При явном указании resolution допустим только 1080p.
Финальное видео наследует промпт, материалы, длительность, формат кадра, seed и звук черновика. Передавайте model, draft_task_id, необязательный resolution: "1080p" и общие поля вроде nsfw_check / webhook. Следующие поля генерации должны отсутствовать; пустые строки/массивы, false и null тоже дают HTTP 400: prompt, image_urls, image_with_roles, image, images, image_url, first_frame_image, last_frame_image, video_urls, audio_urls, duration, seconds, aspect_ratio, size, seed, audio, generate_audio, draft, omni_reference_task_type, return_last_frame, output_format, response_format, enhance_prompt. Используйте черновик в течение 24 часов с создания; обе генерации оплачиваются отдельно.

Получение статуса и результата

cURL
При отправке data — массив, при запросе статуса — объект задачи. Значения data.status: pending — очередь, processing — генерация, completed — успех, failed — ошибка. Адрес видео находится в массиве data.result.videos[].url, например data.result.videos[0].url[0]. Видео копируется в хранилище APIMart. Ниже показаны только основные поля успешного ответа.
При неудаче прочитайте причину в data.error.message. Списанные средства возвращаются автоматически.

Правила оплаты

Посекундная оплата зависит от разрешения и наличия референсных видео. Тарифы и скидки указаны на странице цен. D — длительность выхода в секундах, используемая при расчёте.
  • Суммарная длительность референсных видео R: измерить каждую при отправке, сложить и округлить сумму вниз до целых секунд. Далее не корректируется.
  • Без референсных видео: оплачиваемые секунды = D. С ними: D + max(R, ceil(D × 2/3)). ceil округляет вверх до целого. Используется тариф с референсным видео.
  • Пример: запрос 8 секунд даёт D = 8, даже если результат длится 8.2 секунды. Автоматическая длительность 8.5 секунды даёт D = 9. Референсы 2.8 и 3.8 секунды сначала суммируются до 6.6, затем округляются вниз: R = 6.
  • Черновик (480p) и финальное видео (1080p) оплачиваются отдельно. Исходная длительность референсов черновика учитывается и для финального видео; загружать их повторно не нужно.
  • Отклонённые запросы не оплачиваются. При неудаче задачи средства возвращаются автоматически.

Частые ошибки

При ошибке отправки возвращается объект error: пояснение в error.message, строковый код в error.code, отдельно от HTTP-статуса. Плата не взимается.