PopNowDocs de la API
Compatibilidad y agentes de IA
Contenido principal

Compatibilidad con OpenAI Videos

Llama a los modelos de video de PopNow con los formatos de solicitud y respuesta de la API OpenAI Videos.

Si tu código ya habla la API OpenAI Videos, puedes apuntarlo a PopNow y conservar casi todo. Los endpoints compatibles están en https://api.popnow.ai/v1 y comparten claves, límites, validación y créditos con la API nativa.

Llamada estilo OpenAIQué hace
POST /v1/videosCrea una tarea de video
GET /v1/videos/{id}Lee su estado
GET /v1/videos/{id}/contentRedirige (302) al archivo terminado
GET /v1/modelsLista los modelos disponibles con el formato de lista de OpenAI

Solo aparecen modelos de video, imagen y audio; los endpoints de chat y texto no forman parte de la API de PopNow.

Crea un video

curl -X POST "https://api.popnow.ai/v1/videos" \
  -H "Authorization: Bearer $POPNOW_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
    "model": "alibaba/wan-3.0/image-to-video",
    "prompt": "Waves roll in slowly, the camera drifts toward the lighthouse",
    "input_reference": "https://media.popnow.ai/movie/lighthouse.webp",
    "seconds": "5",
    "size": "1280x720"
  }'

Cómo se traducen los campos a la entrada del modelo:

Campo de OpenAISe convierte en
modelUn ID de modelo de video de /v1/models
promptprompt
input_referenceimage_url / image_urls (una URL HTTPS o una subida popnow://)
secondsduration_seconds
size (ANCHOxALTO)resolution y/o aspect_ratio, o width / height cuando el modelo usa píxeles

Un campo que el modelo elegido no admite se rechaza con 400, nunca se descarta en silencio. Para ajustes que el formato de OpenAI no contempla, usa el createTask nativo.

Lee y descarga

Los estados se traducen así: queued → queued, running → in_progress, succeeded → completed, y failed / expired → failed con un objeto error. GET /v1/videos/{id}/content responde 302 hacia un enlace firmado de corta duración —haz que tu cliente siga las redirecciones—, 409 mientras el video se sigue generando y 404 si falló.

Los objetos devueltos nunca incluyen precios. Consulta el coste con el recordInfo nativo usando el mismo ID.

Errores

Los errores usan el formato de OpenAI { "error": { "message", "type", "param", "code" } } con el mismo estado HTTP que devolvería la API nativa. Un rechazo por contenido es un HTTP 400 con code: "content_rejected", para que lo distingas de un error de parámetro (invalid_request o unsupported_parameter, con param indicando el campo).

En esta página