PopNowDocs API
Compatibilità e agenti IA
Contenuto principale

Compatibilità OpenAI Videos

Chiama i modelli video di PopNow con i formati di richiesta e risposta dell’API OpenAI Videos.

Se il tuo codice usa già l’API OpenAI Videos, puoi puntarlo su PopNow e tenerne quasi tutto. Gli endpoint compatibili sono su https://api.popnow.ai/v1 e condividono chiavi, limiti, validazione e crediti con l’API nativa.

Chiamata in stile OpenAICosa fa
POST /v1/videosCrea un’attività video
GET /v1/videos/{id}Ne legge lo stato
GET /v1/videos/{id}/contentReindirizza (302) al file finito
GET /v1/modelsElenca i modelli disponibili nel formato elenco di OpenAI

Compaiono solo modelli video, immagine e audio; gli endpoint di chat e testo non fanno parte dell’API di 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"
  }'

Come i campi diventano l’input del modello:

Campo OpenAIDiventa
modelUn ID di modello video da /v1/models
promptprompt
input_referenceimage_url / image_urls (un URL HTTPS o un caricamento popnow://)
secondsduration_seconds
size (LARGHEZZAxALTEZZA)resolution e/o aspect_ratio, oppure width / height quando il modello usa i pixel

Un campo che il modello scelto non supporta viene rifiutato con 400, mai scartato in silenzio. Per le impostazioni che il formato OpenAI non prevede, usa il createTask nativo.

Leggi e scarica

Gli stati si traducono così: queued → queued, running → in_progress, succeeded → completed e failed / expired → failed con un oggetto error. GET /v1/videos/{id}/content risponde 302 verso un link firmato di breve durata — fai seguire i reindirizzamenti al client —, 409 mentre il video è ancora in lavorazione e 404 se è fallito.

Gli oggetti restituiti non contengono mai prezzi. Leggi il costo con il recordInfo nativo usando lo stesso ID.

Errori

Gli errori usano il formato OpenAI { "error": { "message", "type", "param", "code" } } con lo stesso stato HTTP che restituirebbe l’API nativa. Un rifiuto per contenuto è un HTTP 400 con code: "content_rejected", così puoi distinguerlo da un errore di parametro (invalid_request o unsupported_parameter, con param che indica il campo).

In questa pagina