Saltar al contenido principal
POST
/
v1
/
videos
/
generations
curl --request POST \
  --url https://api.apimart.ai/v1/videos/generations \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "Omni-Flash-Ext",
    "prompt": "a girl is dancing happily in a sunny garden",
    "duration": 10,
    "resolution": "1080p",
    "aspect_ratio": "9:16"
  }'
{
  "code": 200,
  "data": [
    {
      "status": "submitted",
      "task_id": "task_01KS1H7ZYSJWH1N779S2FSHTKA"
    }
  ]
}

Documentation Index

Fetch the complete documentation index at: https://docs.apimart.ai/llms.txt

Use this file to discover all available pages before exploring further.

curl --request POST \
  --url https://api.apimart.ai/v1/videos/generations \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "Omni-Flash-Ext",
    "prompt": "a girl is dancing happily in a sunny garden",
    "duration": 10,
    "resolution": "1080p",
    "aspect_ratio": "9:16"
  }'
{
  "code": 200,
  "data": [
    {
      "status": "submitted",
      "task_id": "task_01KS1H7ZYSJWH1N779S2FSHTKA"
    }
  ]
}

Autenticación

Authorization
string
requerido
Todas las solicitudes requieren autenticación mediante Bearer Token.Obtener una API key:Visite la página de gestión de API Keys para obtener su API key.Añada el siguiente encabezado al realizar solicitudes:
Authorization: Bearer YOUR_API_KEY

Parámetros de la solicitud

model
string
requerido
Nombre del modelo de generación de video. Debe ser Omni-Flash-Ext.
prompt
string
requerido
Descripción del contenido del video. Recomendamos describir en detalle la escena, el sujeto, la acción, el entorno, los movimientos de cámara, el estilo visual y las indicaciones de audio.Ejemplo: "a girl is dancing happily in a sunny garden"
duration
integer
predeterminado:"6"
Duración del video en segundos.Valores compatibles: 4, 6, 8, 10.
Otros valores como 5 o 7 devolverán un error invalid_duration.
No envíe duration al subir un video de referencia. duration y video_urls no se pueden enviar al mismo tiempo.
resolution
string
predeterminado:"720p"
Resolución del video. Los valores no distinguen entre mayúsculas y minúsculas.Valores compatibles:
  • 720p
  • 1080p
  • 4k
Otras resoluciones devolverán un error invalid_resolution.
aspect_ratio
string
predeterminado:"16:9"
Relación de aspecto del video. Úselo para controlar la salida horizontal o vertical.Valores comunes:
  • 16:9 - horizontal
  • 9:16 - vertical
Predeterminado: 16:9
size
string
Campo de compatibilidad. Tiene el mismo significado que aspect_ratio. Si se proporcionan ambos, manténgalos coherentes.
image_urls
array<url>
Array de URLs de imágenes de referencia. Puede omitirlo, proporcionar 1 imagen o proporcionar 3 imágenes:
  • Omitido o array vacío: Text-to-Video
  • 1 imagen: Image-to-Video con una sola imagen
  • 3 imágenes: fusión de imágenes de referencia
Solo se admiten URLs de imágenes de acceso público.
No se admite el modo de primer-último frame con 2 imágenes. Pasar 2 imágenes devuelve un error unsupported_image_count. 4 o más imágenes no se han verificado por completo y no se recomiendan.
video_urls
array<url>
Array de URLs de videos de referencia. Puede omitirlo o proporcionar 1 video de referencia.Solo se admiten URLs de video HTTP/HTTPS de acceso público. Puede enviarlo junto con image_urls: las imágenes se usan como referencia de identidad o composición, mientras que el video se usa como referencia de movimiento.
Omni-Flash-Ext solo admite 0 o 1 video de referencia. Enviar 2 o más videos devuelve un error unsupported_video_count.
No envíe duration al enviar video_urls. video_urls y duration no se pueden enviar al mismo tiempo.

Respuesta

code
integer
Código de estado de la respuesta. Las solicitudes exitosas devuelven 200.
data
array
Array de tareas devuelto.

Consultar el resultado de la tarea

La generación de video es asíncrona. Tras la solicitud, la API devuelve un task_id. Use el endpoint Obtener estado de la tarea para consultar el progreso y los resultados.
cURL
curl --request GET \
  --url https://api.apimart.ai/v1/tasks/task_01KS1H7ZYSJWH1N779S2FSHTKA \
  --header 'Authorization: Bearer <token>'
Recomendamos esperar entre 5 y 10 segundos después de la solicitud antes de la primera consulta, y luego sondear cada 5-10 segundos. Una tarea suele completarse en aproximadamente 3-5 minutos.

Ejemplo de resultado exitoso

{
  "code": 200,
  "data": {
    "id": "task_01KS1H7ZYSJWH1N779S2FSHTKA",
    "status": "completed",
    "progress": 100,
    "created": 1779246294,
    "completed": 1779246534,
    "actual_time": 240,
    "estimated_time": 600,
    "cost": 0.4,
    "result": {
      "videos": [
        {
          "url": ["https://cdn.example.com/videos/abc.mp4"],
          "expires_at": 1779332760
        }
      ]
    }
  }
}

Ejemplo de resultado fallido

{
  "code": 200,
  "data": {
    "id": "task_01KS1H7ZYSJWH1N779S2FSHTKA",
    "status": "failed",
    "progress": 100,
    "created": 1779246294,
    "completed": 1779246534,
    "actual_time": 240,
    "estimated_time": 600,
    "cost": 0,
    "error": {
      "message": "invalid duration 7, must be one of 4/6/8/10",
      "code": "task_failed"
    }
  }
}

Casos de uso

Escenario 1: Texto a video

{
  "model": "Omni-Flash-Ext",
  "prompt": "a beautiful sunset over the ocean with seagulls flying",
  "duration": 6,
  "resolution": "720p",
  "aspect_ratio": "16:9"
}

Escenario 2: Video a partir de una sola imagen

{
  "model": "Omni-Flash-Ext",
  "prompt": "make the character smile and slowly turn around, cinematic camera motion",
  "duration": 6,
  "resolution": "1080p",
  "aspect_ratio": "9:16",
  "image_urls": ["https://example.com/character.jpg"]
}

Escenario 3: Fusión con 3 imágenes de referencia

{
  "model": "Omni-Flash-Ext",
  "prompt": "a creative scene combining these elements with smooth camera motion",
  "duration": 10,
  "resolution": "1080p",
  "aspect_ratio": "9:16",
  "image_urls": [
    "https://example.com/scene.jpg",
    "https://example.com/character.jpg",
    "https://example.com/product.jpg"
  ]
}

Escenario 4: Video corto 4K

{
  "model": "Omni-Flash-Ext",
  "prompt": "close-up of a hummingbird hovering in front of a red flower",
  "duration": 4,
  "resolution": "4k",
  "aspect_ratio": "16:9"
}

Escenario 5: Generación con video de referencia

{
  "model": "Omni-Flash-Ext",
  "prompt": "the same scene but at night with neon lights",
  "resolution": "720p",
  "aspect_ratio": "16:9",
  "video_urls": ["https://example.com/reference.mp4"]
}

Códigos de error

HTTPTipo de errorSignificadoAcción sugerida
400invalid_request_errormodel no es Omni-Flash-Ext, prompt está vacío o el formato JSON no es válidoVerifique el cuerpo de la solicitud
400invalid_durationduration no es 4, 6, 8 o 10Use una duración compatible
400invalid_resolutionresolution no es 720p, 1080p o 4kUse una resolución compatible
400unsupported_image_countEl número de image_urls no es compatible, normalmente causado por pasar 2 imágenesUse 0, 1 o 3 imágenes
400unsupported_video_countEl número de video_urls no es compatible, normalmente causado por enviar 2 o más videosUse 0 o 1 video de referencia
401authentication_errorToken no válidoVerifique el Bearer Token
402payment_requiredSaldo insuficienteRecargue y vuelva a intentarlo
429rate_limit_errorLímite de tasa superadoReduzca la concurrencia o vuelva a intentarlo más tarde
Cuando una tarea falla, la API de estado de la tarea devuelve el motivo del fallo en data.error. Las causas comunes incluyen el agotamiento temporal de la cuota upstream, el fallo en la moderación de contenido o el tiempo de espera agotado en el upstream.