require 'net/http'require 'json'require 'uri'url = URI("https://api.apimart.ai/v1/videos/generations")payload = { model: "wan2.6-i2v-flash", prompt: "The person turns around and smiles", image_urls: ["https://example.com/portrait.jpg"], resolution: "1080p", duration: 5}http = Net::HTTP.new(url.host, url.port)http.use_ssl = truerequest = Net::HTTP::Post.new(url)request["Authorization"] = "Bearer <token>"request["Content-Type"] = "application/json"request.body = payload.to_jsonresponse = http.request(request)puts response.body
import Foundationlet url = URL(string: "https://api.apimart.ai/v1/videos/generations")!let payload: [String: Any] = [ "model": "wan2.6-i2v-flash", "prompt": "The person turns around and smiles", "image_urls": ["https://example.com/portrait.jpg"], "resolution": "1080p", "duration": 5]var request = URLRequest(url: url)request.httpMethod = "POST"request.setValue("Bearer <token>", forHTTPHeaderField: "Authorization")request.setValue("application/json", forHTTPHeaderField: "Content-Type")request.httpBody = try? JSONSerialization.data(withJSONObject: payload)let task = URLSession.shared.dataTask(with: request) { data, response, error in if let error = error { print("Error: \(error)") return } if let data = data, let responseString = String(data: data, encoding: .utf8) { print(responseString) }}task.resume()
using System;using System.Net.Http;using System.Text;using System.Threading.Tasks;class Program{ static async Task Main(string[] args) { var url = "https://api.apimart.ai/v1/videos/generations"; var payload = @"{ ""model"": ""wan2.6-i2v-flash"", ""prompt"": ""The person turns around and smiles"", ""image_urls"": [""https://example.com/portrait.jpg""], ""resolution"": ""1080p"", ""duration"": 5 }"; using var client = new HttpClient(); client.DefaultRequestHeaders.Add("Authorization", "Bearer <token>"); var content = new StringContent(payload, Encoding.UTF8, "application/json"); var response = await client.PostAsync(url, content); var result = await response.Content.ReadAsStringAsync(); Console.WriteLine(result); }}
require 'net/http'require 'json'require 'uri'url = URI("https://api.apimart.ai/v1/videos/generations")payload = { model: "wan2.6-i2v-flash", prompt: "The person turns around and smiles", image_urls: ["https://example.com/portrait.jpg"], resolution: "1080p", duration: 5}http = Net::HTTP.new(url.host, url.port)http.use_ssl = truerequest = Net::HTTP::Post.new(url)request["Authorization"] = "Bearer <token>"request["Content-Type"] = "application/json"request.body = payload.to_jsonresponse = http.request(request)puts response.body
import Foundationlet url = URL(string: "https://api.apimart.ai/v1/videos/generations")!let payload: [String: Any] = [ "model": "wan2.6-i2v-flash", "prompt": "The person turns around and smiles", "image_urls": ["https://example.com/portrait.jpg"], "resolution": "1080p", "duration": 5]var request = URLRequest(url: url)request.httpMethod = "POST"request.setValue("Bearer <token>", forHTTPHeaderField: "Authorization")request.setValue("application/json", forHTTPHeaderField: "Content-Type")request.httpBody = try? JSONSerialization.data(withJSONObject: payload)let task = URLSession.shared.dataTask(with: request) { data, response, error in if let error = error { print("Error: \(error)") return } if let data = data, let responseString = String(data: data, encoding: .utf8) { print(responseString) }}task.resume()
using System;using System.Net.Http;using System.Text;using System.Threading.Tasks;class Program{ static async Task Main(string[] args) { var url = "https://api.apimart.ai/v1/videos/generations"; var payload = @"{ ""model"": ""wan2.6-i2v-flash"", ""prompt"": ""The person turns around and smiles"", ""image_urls"": [""https://example.com/portrait.jpg""], ""resolution"": ""1080p"", ""duration"": 5 }"; using var client = new HttpClient(); client.DefaultRequestHeaders.Add("Authorization", "Bearer <token>"); var content = new StringContent(payload, Encoding.UTF8, "application/json"); var response = await client.PostAsync(url, content); var result = await response.Content.ReadAsStringAsync(); Console.WriteLine(result); }}
require 'net/http'require 'json'require 'uri'url = URI("https://api.apimart.ai/v1/videos/generations")payload = { model: "wan2.6-i2v-flash", prompt: "The person turns around and smiles", image_urls: ["https://example.com/portrait.jpg"], resolution: "1080p", duration: 5}http = Net::HTTP.new(url.host, url.port)http.use_ssl = truerequest = Net::HTTP::Post.new(url)request["Authorization"] = "Bearer <token>"request["Content-Type"] = "application/json"request.body = payload.to_jsonresponse = http.request(request)puts response.body
import Foundationlet url = URL(string: "https://api.apimart.ai/v1/videos/generations")!let payload: [String: Any] = [ "model": "wan2.6-i2v-flash", "prompt": "The person turns around and smiles", "image_urls": ["https://example.com/portrait.jpg"], "resolution": "1080p", "duration": 5]var request = URLRequest(url: url)request.httpMethod = "POST"request.setValue("Bearer <token>", forHTTPHeaderField: "Authorization")request.setValue("application/json", forHTTPHeaderField: "Content-Type")request.httpBody = try? JSONSerialization.data(withJSONObject: payload)let task = URLSession.shared.dataTask(with: request) { data, response, error in if let error = error { print("Error: \(error)") return } if let data = data, let responseString = String(data: data, encoding: .utf8) { print(responseString) }}task.resume()
using System;using System.Net.Http;using System.Text;using System.Threading.Tasks;class Program{ static async Task Main(string[] args) { var url = "https://api.apimart.ai/v1/videos/generations"; var payload = @"{ ""model"": ""wan2.6-i2v-flash"", ""prompt"": ""The person turns around and smiles"", ""image_urls"": [""https://example.com/portrait.jpg""], ""resolution"": ""1080p"", ""duration"": 5 }"; using var client = new HttpClient(); client.DefaultRequestHeaders.Add("Authorization", "Bearer <token>"); var content = new StringContent(payload, Encoding.UTF8, "application/json"); var response = await client.PostAsync(url, content); var result = await response.Content.ReadAsStringAsync(); Console.WriteLine(result); }}
Todos os endpoints exigem autenticação via Bearer TokenObtenha a chave de API:Acesse a página de gerenciamento de chaves de API para obter sua chave de APIAdicione ao cabeçalho da requisição:
Array de URLs de imagens de referência (apenas 1 imagem do primeiro quadro suportada)Suporta URLs de imagens publicamente acessíveis ou codificação Base64 (data:image/png;base64,...)Exemplo: ["https://example.com/image.jpg"]
Requisitos de imagem:
Formato: JPEG, JPG, PNG (sem transparência), BMP, WEBP
Resolução: intervalo de largura/altura 240-8000 pixels
Descrição do conteúdo do vídeoOpcional, mas recomendado para image-to-video, descreve as ações e os efeitos esperadosEspecifique claramente sujeito, ação, câmera e estilo para obter melhores resultadosExemplo: "The person in the image smiles and waves, camera slowly zooms in"
Se deve gerar áudioDefinido como true: gera automaticamente música de fundo/efeitos sonoros correspondentes (padrão)Definido como false: gera vídeo silenciosoPadrão: true
URL de áudio personalizado (wav/mp3, 3-30 segundos, ≤ 15MB)Prioridade menor que audio: ignorado quando audio=falseSe o áudio for mais longo que a duração do vídeo, ele será cortado; se for mais curto, a parte restante ficará silenciosa
Se deve ativar a reescrita inteligente do promptMelhora significativamente os resultados para prompts mais curtos, mas aumenta o tempo de processamentoPadrão: true
{ "model": "wan2.6-i2v-flash", "prompt": "Make the cat stand up and walk", "image_urls": ["data:image/png;base64,iVBORw0KGgo..."], "duration": 5}
Consultar resultados da tarefaA geração de vídeos é uma tarefa assíncrona que retorna um task_id no envio. Use o endpoint Obter status da tarefa para consultar o progresso e os resultados da geração.