PopNowДокументация API
Совместимость и ИИ-агенты
Основное содержимое

Совместимость с OpenAI Videos

Как вызывать видеомодели PopNow в форматах запросов и ответов OpenAI Videos API.

Если ваш код уже работает с OpenAI Videos API, его можно перенаправить на PopNow и сохранить почти всё. Совместимые эндпоинты находятся по адресу https://api.popnow.ai/v1 и используют те же ключи, лимиты, проверку и кредиты, что и нативный API.

Вызов в стиле OpenAIЧто делает
POST /v1/videosСоздаёт видеозадачу
GET /v1/videos/{id}Читает её состояние
GET /v1/videos/{id}/contentПеренаправляет (302) на готовый файл
GET /v1/modelsСписок доступных моделей в формате OpenAI

В списке только модели видео, изображений и аудио; чат- и текстовых эндпоинтов в PopNow API нет.

Создание видео

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"
  }'

Как поля превращаются во входные данные модели:

Поле OpenAIСтановится
modelID видеомодели из /v1/models
promptprompt
input_referenceimage_url / image_urls (HTTPS-ссылка или загрузка popnow://)
secondsduration_seconds
size (ШИРИНАxВЫСОТА)resolution и/или aspect_ratio, либо width / height, если модель принимает пиксели

Поле, которое выбранная модель не поддерживает, отклоняется с 400 и никогда не отбрасывается молча. Для настроек, которых нет в формате OpenAI, используйте нативный createTask.

Чтение и скачивание

Состояния соответствуют так: queued → queued, running → in_progress, succeeded → completed, а failed / expired → failed с объектом error. GET /v1/videos/{id}/content отвечает 302 на короткоживущую подписанную ссылку (пусть клиент следует редиректам), 409, пока видео ещё делается, и 404, если генерация не удалась.

Возвращаемые объекты не содержат цен. Стоимость смотрите в нативном recordInfo по тому же ID.

Ошибки

Ошибки приходят в формате OpenAI { "error": { "message", "type", "param", "code" } } с тем же HTTP-статусом, что вернул бы нативный API. Отказ по содержанию — это HTTP 400 с code: "content_rejected", поэтому его легко отличить от ошибки параметра (invalid_request или unsupported_parameter, а param указывает поле).

На этой странице