Skip to main content
POST
Страница относится к официальным моделям grok-imagine-video и grok-imagine-video-1.5. Они отличаются от grok-imagine-1.5-video-ext; не смешивайте имена и параметры.
Не размещайте API Key в браузере, публичных переменных, LocalStorage, URL или логах. Вызывайте APIMart через backend или BFF.

Обзор интеграции

Все режимы используют один асинхронный endpoint:
После отправки сохраните data[0].task_id, затем опрашивайте:
Не отправляйте X-APIMart-Response-Version: он включает ответ HTTP 202. Здесь используется прежний асинхронный формат HTTP 200.

Возможности

Публичный контракт не задаёт лимит числа изображений. Сохраняйте непустой массив допустимых URL и их порядок; не используйте лимиты моделей изображений.

Заголовки

string
обязательно
Bearer <APIMART_API_KEY>
string
обязательно
Всегда используйте application/json.
string
application/json
string
Idempotency-Key необязателен, но настоятельно рекомендуется для платных запросов. Допустимы 1–191 видимый символ ASCII; рекомендуется UUID. Сетевой повтор использует исходный ключ и body. Не меняйте ключ при неопределённом результате.Для новой логической операции используйте новый ключ. Повтор должен использовать исходный ключ и тот же body.

Параметры

Общие поля

string
обязательно
Официальная модель; редактирование только базовой
  • grok-imagine-video
  • grok-imagine-video-1.5
string
обязательно
Непустая инструкция, максимум 8000 UnicodeArray.from(prompt).length
boolean
по умолчанию:false
Определяет, выполнять ли модерацию контента перед отправкой видеозадачи.
  • true: Проверять промпт и входные изображения с помощью omni-moderation-latest
  • false или поле отсутствует: Не запускать модерацию и не добавлять её стоимость или задержку (по умолчанию)

Поля генерации

integer
по умолчанию:8
Только генерация; целое 1–15, по умолчанию 8
string
по умолчанию:"480p"
Base: 480p/720p; 1.5: 480p/720p/1080p; по умолчанию 480p
  • grok-imagine-video: 480p, 720p
  • grok-imagine-video-1.5: 480p, 720p, 1080p
string
по умолчанию:"auto"
Только генерация; auto, 1:1, 16:9, 9:16, 4:3, 3:4, 3:2 или 2:3
  • auto
  • 1:1, 16:9, 9:16
  • 4:3, 3:4, 3:2, 2:3
string[]
Необязательный массив; каждый элемент — публичный HTTPS URL; пустой массив не отправлять
  • Каждый элемент должен быть публичным HTTPS URL; относительные URL, Data URL и сырой Base64 не поддерживаются.
  • Не отправляйте псевдонимы image, images или input_reference.
  • Порядок сохраняется; дубли URL занимают несколько слотов и могут оплачиваться повторно.

Поля редактирования видео

object
Исходное видео {url} по публичному HTTPS; только Base
Для редактирования обязательны model, prompt и video; nsfw_check можно передать дополнительно. Не отправляйте duration, resolution, aspect_ratio или image_urls; платформа определяет длительность источника.

Типы запроса TypeScript

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

Примеры

Асинхронные задачи

Создание успешно

Успешное создание возвращает HTTP 200. Сохраните data[0].task_id; отправка не означает завершение. ID задачи означает отправку, а не завершение.

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

Опрашивайте GET /v1/tasks/{task_id} каждые 3–5 секунд. После перезагрузки продолжите с сохранённым ID.

Завершённый ответ

result.videos[0].url — массив строк, а не одна строка. Проверяйте каждый элемент как HTTPS URL. Рекомендуется проверка во время выполнения:
Срок определяет expires_at. Не фиксируйте время; предложите скачать или сохранить результат.

Ответ с ошибкой

Опрос может вернуть HTTP 200 при data.status=failed. Определяйте результат по data.status; у ошибки cost=0.

Каталог цен

Читайте GET /api/pricing/models/all и ищите id в data.models.video. Показанная цена предварительная; итог — data.cost задачи.

Цена выходного видео

  • Ключи цен — 480P/720P/1080P, значения запроса — в нижнем регистре; нормализуйте при поиске.
  • default — метаданные совместимости, а не доступное разрешение.
  • Используйте after_discount напрямую, не применяйте скидку повторно.

Цена входного материала

Цена входного видео — скалярный объект. Не требуйте items, billing_mode или max_billable_seconds. У 1.5 нет цены входного видео.

Формулы оценки

Персональные цены и округление могут изменить оценку. Итог всегда берите из data.cost.

Правила frontend

Смена модели

  • Base показывает 480p/720p; 1.5 также 1080p.
  • При переходе с 1.5 1080p на Base выбрать 480p.
  • Редактирование фиксирует grok-imagine-video.

Смена режима

nsfw_check необязателен во всех режимах. При включённой модерации отправляйте true; иначе опустите поле или отправьте false. Отключите кнопку, если выполняется любое условие:
  • Текстовый режим не отправляет image_urls и video.
  • Режим изображений отправляет image_urls без video.
  • Редактирование очищает поля генерации.
  • Отключать при неверном промпте, длительности, разрешении, URL, загрузке или дубле.
  • Промпт ≤8000 Unicode, длительность — целое 1–15.
  • Только публичные HTTPS URL; пустой image_urls не отправлять.

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

Проверка frontend

  • API Key только на backend или BFF.
  • Не смешивать официальные модели с grok-imagine-1.5-video-ext.
  • Промпт ≤8000 Unicode, длительность — целое 1–15.
  • Только публичные HTTPS URL; пустой image_urls не отправлять.
  • Для редактирования используйте Base и отправляйте только model/prompt/video плюс необязательный nsfw_check.
  • Читать data[0].task_id, финал определять по data.status.
  • Читать result.videos[].url[] и учитывать expires_at.
  • Показывать каталог, итог брать из data.cost.