Sora

Developer documentation

Sora

Sora for video generation jobs and long-running creative workflows.

Model Reference

Video generation models

Text-to-video, image-to-video, first/last frame control, reference images, extend, and remix jobs. Endpoint: http://omixa.cloud/api/v1/videos/jobs

Sora

sora

Sora for video generation jobs and long-running creative workflows.

Video
video per second $0.100000
minimum hold $0.010000
Integration reference

Connect Sora

Use Omixa's unified endpoint and your workspace API key. Provider routing, billing, failover, and usage records are handled by Omixa.

POST http://omixa.cloud/api/v1/videos/jobs
  • Provider: azure-foundry
  • Endpoint type: azure_video_jobs
Request schema

Request fields

Only send options supported by this model. Required fields and accepted values are listed below.

Field Type Required Accepted values Description
model string Yes sora Use `sora`. Omixa resolves the active provider route and failover key automatically.
prompt string Yes Any valid value Video instruction. Keep it concrete: subject, scene, action, camera, lighting, and style.
video_operation|task string No text_to_video, image_to_video, extend, remix Video workflow.
duration_seconds|seconds number No 1-30 Generated duration in seconds. Omixa validates provider-safe ranges.
aspect_ratio string No 16:9, 9:16, 1:1 Video aspect ratio for Veo-style routes.
resolution|size string No 720p, 1080p, 1280x720, 720x1280, 1920x1080 Output resolution or Sora size.
sample_count|n_variants integer No 1-4 Number of variants where supported. Sora 2 routes may not accept `n_variants`; Omixa omits it for those models.
negative_prompt string No Any valid value What to avoid in Veo-style generations.
person_generation string No Any valid value Person generation safety setting for Veo-style providers.
generate_audio boolean No Any valid value Ask compatible video models to generate audio.
enhance_prompt boolean No Any valid value Provider prompt enhancement.
seed integer No Any valid value Deterministic seed where supported.
start_frame|first_frame|image|input_reference inline image No Any valid value Starting image for image-to-video. Use an inline image object/data URL.
last_frame|end_frame inline image No Any valid value Ending image for first/last-frame generation.
reference_images array No Any valid value Reference images for reference-to-video. Veo supports multiple inline images through Omixa.
source_video|source_video_id|video_id string|inline video No Any valid value Source video or operation ID for extend/remix workflows.
wait_seconds integer No Any valid value How long Omixa waits before the first status poll.
poll_interval_seconds integer No Any valid value Polling interval for long-running video jobs.
Ready to send

Payload and response

Start with this model-safe payload and expect the normalized Omixa response shape shown beside it.

Example JSON payload
{
    "model": "sora",
    "prompt": "A cinematic product reveal of an AI API gateway on a clean white desk.",
    "video_operation": "text_to_video",
    "seconds": 8,
    "size": "1280x720",
    "wait_seconds": 3,
    "poll_interval_seconds": 2
}
Response shape
{
    "provider": "azure-foundry",
    "model": "sora",
    "status": "running|succeeded",
    "operation": "provider-operation-name",
    "poll_after_seconds": 5,
    "data": [
        {
            "url": "https://...",
            "content_type": "video/mp4"
        }
    ]
}
Language examples

Copy-ready integration code

Replace the example API key with a workspace key and keep model-specific fields unchanged unless the table above marks them optional.

cURL
curl -X POST http://omixa.cloud/api/v1/videos/jobs \
  -H "Authorization: Bearer omx_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "sora",
    "prompt": "A cinematic product reveal of an AI API gateway on a clean white desk.",
    "video_operation": "text_to_video",
    "seconds": 8,
    "size": "1280x720",
    "wait_seconds": 3,
    "poll_interval_seconds": 2
}'
JavaScript fetch
const response = await fetch('http://omixa.cloud/api/v1/videos/jobs', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer omx_live_xxx',
    'Content-Type': 'application/json'
  },
  body: "{\n    \"model\": \"sora\",\n    \"prompt\": \"A cinematic product reveal of an AI API gateway on a clean white desk.\",\n    \"video_operation\": \"text_to_video\",\n    \"seconds\": 8,\n    \"size\": \"1280x720\",\n    \"wait_seconds\": 3,\n    \"poll_interval_seconds\": 2\n}"
});
const data = await response.json();
Python requests
import requests

response = requests.post(
    'http://omixa.cloud/api/v1/videos/jobs',
    headers={'Authorization': 'Bearer omx_live_xxx', 'Content-Type': 'application/json'},
    json={
    "model": "sora",
    "prompt": "A cinematic product reveal of an AI API gateway on a clean white desk.",
    "video_operation": "text_to_video",
    "seconds": 8,
    "size": "1280x720",
    "wait_seconds": 3,
    "poll_interval_seconds": 2
}
)
print(response.json())
PHP cURL
$ch = curl_init('http://omixa.cloud/api/v1/videos/jobs');
curl_setopt_array($ch, [
    CURLOPT_POST => true,
    CURLOPT_HTTPHEADER => ['Authorization: Bearer omx_live_xxx', 'Content-Type: application/json'],
    CURLOPT_POSTFIELDS => '{
    "model": "sora",
    "prompt": "A cinematic product reveal of an AI API gateway on a clean white desk.",
    "video_operation": "text_to_video",
    "seconds": 8,
    "size": "1280x720",
    "wait_seconds": 3,
    "poll_interval_seconds": 2
}',
    CURLOPT_RETURNTRANSFER => true,
]);
$response = curl_exec($ch);
C# HttpClient
using var client = new HttpClient();
client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", "omx_live_xxx");
var json = @"{
    ""model"": ""sora"",
    ""prompt"": ""A cinematic product reveal of an AI API gateway on a clean white desk."",
    ""video_operation"": ""text_to_video"",
    ""seconds"": 8,
    ""size"": ""1280x720"",
    ""wait_seconds"": 3,
    ""poll_interval_seconds"": 2
}";
var response = await client.PostAsync("http://omixa.cloud/api/v1/videos/jobs", new StringContent(json, System.Text.Encoding.UTF8, "application/json"));
var body = await response.Content.ReadAsStringAsync();
Go net/http
payload := []byte(`{
    "model": "sora",
    "prompt": "A cinematic product reveal of an AI API gateway on a clean white desk.",
    "video_operation": "text_to_video",
    "seconds": 8,
    "size": "1280x720",
    "wait_seconds": 3,
    "poll_interval_seconds": 2
}`)
req, _ := http.NewRequest("POST", "http://omixa.cloud/api/v1/videos/jobs", bytes.NewReader(payload))
req.Header.Set("Authorization", "Bearer omx_live_xxx")
req.Header.Set("Content-Type", "application/json")
resp, err := http.DefaultClient.Do(req)
Production checklist

Operational notes

  • Authenticate with `Authorization: Bearer omx_live_xxx`.
  • Omixa handles provider keys, routing, billing, failover, and usage recording behind this endpoint.
  • Video generation is usually long-running. Store the returned `operation` and poll `/api/v1/videos/jobs/status` until the status is final.
Copied Markdown