Skip to content
NewRouters/Documentation
VIDEO API

sora-2-pro · API guide

Integrate sora-2-pro through the media task API. Request examples, parameters, authentication and result handling.

POST/v1/tasksMODELsora-2-pro
Official reference sora-2-proChecked 2026-09-27Official docs

This model is retired on this platform. This guide remains available for historical integrations; check the live catalog before calling.

Code examples & responses
Request & responseExamples
POST/v1/tasks
Server-side request
curl "https://newrouters.com/v1/tasks" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $API_KEY" \
  --data '{
  "model": "sora-2-pro",
  "input": {
    "seconds": 4,
    "resolution": "720p",
    "aspect_ratio": "16:9",
    "prompt": "A small red house in a quiet garden"
  }
}'

The API origin is filled in. Set API_KEY before running. Examples never submit automatically.

ResponseSelected fields · illustrative values
202Task accepted
JSON
{
  "id": "TASK_ID",
  "status": "pending",
  "model": "sora-2-pro",
  "result": null,
  "error": null
}
200Successful result
JSON
{
  "id": "TASK_ID",
  "status": "succeeded",
  "model": "sora-2-pro",
  "result": {
    "assets": [
      "https://example.com/output.mp4"
    ]
  },
  "error": null
}
Retrieve results after submission
Request lifecycleAsynchronous media
  1. Create a task01
    POST /v1/tasks

    Submit model + input. Save the returned task id.

    202 · pending
  2. Poll status02
    GET /v1/tasks/{id}

    Wait and poll again while pending or processing.

    Wait → poll again
  3. Read the outcome03
    result.assets[] / error

    Read the result for the terminal task state.

    succeeded→ assetsfailed→ error

Use the exact API model ID sora-2-pro. This guide describes the platform contract; check the live catalog before calling the model.

Historical platform request (not current official availability)

Section titled “Historical platform request (not current official availability)”

The platform origin is filled in at build time. Set API_KEY to your server-side key before running.

Terminal window
curl "https://newrouters.com/v1/tasks" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $API_KEY" \
--data '{
"model": "sora-2-pro",
"input": {
"seconds": 4,
"resolution": "720p",
"aspect_ratio": "16:9",
"prompt": "A small red house in a quiet garden"
}
}'

The creation response accepts a task, not the final output. Replace TASK_ID with its returned ID and poll until succeeded or failed.

Terminal window
curl "https://newrouters.com/v1/tasks/TASK_ID" \
-H "Authorization: Bearer $API_KEY"

Read result on success and error on failure. Keep the original task ID when the upstream outcome is unknown; do not submit a duplicate paid generation.

FieldTypeRequirementDefaultConstraints
imagesarrayOptional—max items 1
promptstringRequired—max length 100000
secondsintegerOptional4min 1
resolutionenumOptional"720p"720p
aspect_ratioenumOptional"16:9"16:9, 9:16

Checked: 2026-09-27 · Platform model: sora-2-pro · Official reference: sora-2-pro

Check current availability, contract and account pricing before integration. Keep request IDs and usage receipts when diagnosing errors. Complete API reference