API de geração de vídeo Sora 2
Chame sora-2 e sora-2-pro no APIMaster.ai para texto-para-vídeo e imagem-para-vídeo. Polling e downloads usam URLs do APIMaster.
Geração de vídeo Sora 2
Gere vídeos com Sora 2 através do APIMaster. Modelos suportados: sora-2, sora-2-pro. O nome sora mapeia para sora-2.
URL Base:
https://apimaster.ai/v1éhttps://apimaster.ai/v1. Usehttps://apimaster.ai/v1/videos/...— não adicione outro/v1.
Preços (20% de desconto sobre o oficial, por segundo)
A cobrança é duração (segundos) × taxa por segundo.
| Modelo | Resolução | Oficial | APIMaster |
|---|---|---|---|
sora-2 |
720p | $0.10 / sec | $0.08 / sec |
sora-2-pro |
720p | $0.30 / sec | $0.24 / sec |
sora-2-pro |
1024p | $0.50 / sec | $0.40 / sec |
sora-2-pro |
1080p | $0.70 / sec | $0.56 / sec |
Exemplo: 4 segundos de sora-2 em 720p ≈ $0,32 ($0,08 × 4).
Enviar uma tarefa
Dois pontos de entrada — use qualquer um.
Opção A (recomendada): JSON nativo
POST https://apimaster.ai/v1/videos/generations
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
model |
string | sim | sora-2 / sora-2-pro (ou sora) |
prompt |
string | sim | Descrição do vídeo |
duration |
integer | não | Comum: 4 / 8 / 12 / 16 / 20, padrão 4 |
resolution |
string | não | sora-2: 720p; sora-2-pro: também 1024p / 1080p, padrão 720p |
aspect_ratio |
string | não | 16:9 / landscape ou 9:16 / portrait, padrão 16:9 |
image_urls |
string[] | não | Imagem-para-vídeo; 1 URL pública recomendada |
curl -s "https://apimaster.ai/v1/videos/generations" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "sora-2",
"prompt": "A waterfall forming a rainbow, cinematic",
"duration": 4,
"resolution": "720p",
"aspect_ratio": "16:9"
}'
Resposta de envio
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_xxxxxxxx"
}
]
}
Defina aspect_ratio explicitamente para imagem-para-vídeo (retrato → 9:16). O padrão é 16:9.
Opção B: compatível com OpenAI Video
POST https://apimaster.ai/v1/videos (JSON ou multipart)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
model |
string | sim | sora-2 / sora-2-pro (ou sora) |
prompt |
string | sim | Descrição do vídeo |
seconds |
string | não | Duração, ex.: "4"; o inteiro duration também funciona, padrão 4 |
size |
string | não | Tamanho do pixel — resolução + orientação (tabela abaixo), padrão 720x1280 |
images |
string[] | não | Imagem-para-vídeo; no máximo 1 URL. input_reference (único) também funciona |
Valores de size
| Modelo | Paisagem (16:9) | Retrato (9:16) |
|---|---|---|
sora-2 |
1280x720 (720p) |
720x1280 (720p) |
sora-2-pro |
1280x720 (720p) / 1792x1024 (1024p) |
720x1280 (720p) / 1024x1792 (1024p) |
sizeinválido (ex.:1920x1080) retorna400 invalid_size. O caminho OpenAI tem limite máximo de 1024p; use a Opção A comresolution: "1080p"para 1080p.
curl -s "https://apimaster.ai/v1/videos" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "sora-2",
"prompt": "A waterfall forming a rainbow, cinematic",
"seconds": "4",
"size": "1280x720"
}'
Resposta de envio
{
"id": "task_xxxxxxxx",
"object": "video",
"model": "sora-2",
"status": "queued"
}
Use task_id / id de qualquer endpoint para polling e download.
Verificar status da tarefa
GET https://apimaster.ai/v1/videos/{task_id}
curl -s "https://apimaster.ai/v1/videos/task_xxxxxxxx" \
-H "Authorization: Bearer YOUR_API_KEY"
Exemplo concluído:
{
"id": "task_xxxxxxxx",
"status": "completed",
"url": "https://apimaster.ai/v1/videos/task_xxxxxxxx/content"
}
Baixe o MP4 via
https://apimaster.ai/v1/videos/{task_id}/content.
Baixar vídeo
curl -L "https://apimaster.ai/v1/videos/task_xxxxxxxx/content" \
-H "Authorization: Bearer YOUR_API_KEY" \
-o output.mp4
Exemplos de imagem-para-vídeo
Opção A:
curl -s "https://apimaster.ai/v1/videos/generations" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "sora-2",
"prompt": "Slow push-in, gentle breeze in the hair",
"duration": 8,
"resolution": "720p",
"aspect_ratio": "9:16",
"image_urls": ["https://example.com/reference.jpg"]
}'
Opção B (campo images):
curl -s "https://apimaster.ai/v1/videos" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "sora-2",
"prompt": "Slow push-in, gentle breeze in the hair",
"seconds": "8",
"images": ["https://example.com/reference.jpg"]
}'
Dicas de polling
- Aguarde 10–20 segundos após o envio; depois verifique a cada 3–5 segundos
- Tempo típico: 1–3 minutos
- Salve o MP4 imediatamente após a conclusão
Códigos de erro
| code | Significado |
|---|---|
| 400 | Parâmetros inválidos (ex.: invalid_size) |
| 401 | Chave de API inválida |
| 402 | Saldo insuficiente |
| 429 | Limite de taxa excedido |
| 500 / 502 | Erro temporário, tente novamente |