Skip to main content
POST
Esta página cobre os modelos oficiais grok-imagine-video e grok-imagine-video-1.5. Eles são diferentes de grok-imagine-1.5-video-ext; não misture nomes ou parâmetros.
Nunca exponha a API Key no navegador, variáveis públicas, LocalStorage, URL ou logs. Chame a APIMart pelo backend ou BFF.

Visão geral

Todos os modos usam o mesmo endpoint assíncrono:
Após enviar, guarde data[0].task_id e consulte:
Não envie X-APIMart-Response-Version: ele ativa resposta HTTP 202. Esta página usa o formato assíncrono HTTP 200 anterior.

Capacidades

O contrato público não fixa máximo de imagens. Mantenha um array não vazio de URLs válidas na ordem original; não reutilize limites de modelos de imagem.

Cabeçalhos

string
obrigatório
Bearer <APIMART_API_KEY>
string
obrigatório
Use sempre application/json.
string
application/json
string
Idempotency-Key é opcional e muito recomendado para solicitações pagas. Aceita 1–191 caracteres ASCII visíveis; UUID recomendado. Um retry reutiliza chave e body originais. Não troque a chave se o resultado for incerto.Use uma nova chave por operação lógica. Uma repetição deve reutilizar a chave e o corpo originais.

Parâmetros

Campos comuns

string
obrigatório
Nome oficial; edição apenas com o modelo base
  • grok-imagine-video
  • grok-imagine-video-1.5
string
obrigatório
Instrução não vazia, máximo 8000 UnicodeArray.from(prompt).length
boolean
padrão:false
Define se a moderação de conteúdo será executada antes do envio da tarefa de vídeo.
  • true: Usa omni-moderation-latest para revisar o prompt e as imagens de entrada
  • false ou omitido: Não solicita moderação nem adiciona custo ou latência de revisão (padrão)

Campos de geração

integer
padrão:8
Somente geração; inteiro 1–15, padrão 8
string
padrão:"480p"
Base: 480p/720p; 1.5: 480p/720p/1080p; padrão 480p
  • grok-imagine-video: 480p, 720p
  • grok-imagine-video-1.5: 480p, 720p, 1080p
string
padrão:"auto"
Somente geração; auto, 1:1, 16:9, 9:16, 4:3, 3:4, 3:2 ou 2:3
  • auto
  • 1:1, 16:9, 9:16
  • 4:3, 3:4, 3:2, 2:3
string[]
Array opcional; cada item é uma URL HTTPS pública; omitir se vazio
  • Cada item deve ser uma URL HTTPS pública; URL relativa, Data URL e Base64 puro não são aceitos.
  • Não envie aliases como image, images ou input_reference.
  • A ordem é preservada; URLs repetidas ocupam várias entradas e podem ser cobradas mais de uma vez.

Campos de edição de vídeo

object
Vídeo fonte {url} em HTTPS público; somente Base
A edição requer model, prompt e video, com nsfw_check opcional. Não envie duration, resolution, aspect_ratio nem image_urls; a plataforma detecta a duração da origem.

Tipos de solicitação TypeScript

Use uma união discriminada para impedir campos de geração na edição.

Exemplos

Tarefas assíncronas

Criação bem-sucedida

Uma criação bem-sucedida retorna HTTP 200. Salve data[0].task_id; o envio não significa vídeo concluído. Um ID de tarefa significa enviado, não concluído.

Consultar tarefa

Consulte GET /v1/tasks/{task_id} a cada 3–5 segundos. Após recarregar, retome com o ID salvo.

Resposta concluída

result.videos[0].url é um array de strings, não uma string. Valide cada valor como URL HTTPS. Recomenda-se validação em tempo de execução:
Use expires_at para expiração. Não fixe duração; peça download ou armazenamento.

Resposta com falha

A consulta pode retornar HTTP 200 com data.status=failed. Decida por data.status; tarefa falha tem cost=0.

Catálogo de preços

Leia GET /api/pricing/models/all e encontre o id em data.models.video. Preços são estimativas; o valor final é data.cost.

Preço do vídeo de saída

  • As chaves de preço são 480P/720P/1080P, e a solicitação usa minúsculas; normalize ao consultar.
  • default é metadado de compatibilidade, não uma resolução selecionável.
  • Use after_discount diretamente; não aplique o desconto novamente.

Preço do material de entrada

O preço de vídeo é um objeto escalar. Não exija items, billing_mode ou max_billable_seconds. O modelo 1.5 não tem preço de entrada de vídeo.

Fórmulas de estimativa

Preços específicos e arredondamento podem alterar a estimativa. O valor final é sempre data.cost.

Regras do frontend

Troca de modelo

  • Base mostra 480p/720p; 1.5 também 1080p.
  • Ao trocar de 1.5 1080p para Base, voltar a 480p.
  • Edição fixa grok-imagine-video.

Troca de modo

nsfw_check é opcional em todos os modos. Envie true com a moderação ativa; omita ou envie false quando desativada. Desative o botão quando alguma condição for verdadeira:
  • Texto omite image_urls e video.
  • Referência envia image_urls e omite video.
  • Edição limpa campos de geração.
  • Desative com prompt, duração, resolução ou URL inválida, upload ativo ou envio duplicado.
  • Prompt ≤8000 Unicode e duração inteira 1–15.
  • Somente URL HTTPS pública; omitir image_urls vazio.

Erros comuns

Checklist

  • API Key apenas em backend ou BFF.
  • Não misturar modelos oficiais com grok-imagine-1.5-video-ext.
  • Prompt ≤8000 Unicode e duração inteira 1–15.
  • Somente URL HTTPS pública; omitir image_urls vazio.
  • Na edição, envie apenas model/prompt/video mais nsfw_check opcional e use o modelo Base.
  • Ler data[0].task_id e final em data.status.
  • Ler result.videos[].url[] e respeitar expires_at.
  • Exibir catálogo e usar data.cost final.