Skip to main content
POST
/
api
/
generate
/
submit
Submit Sora 2 Official Task
curl --request POST \
  --url https://api.poyo.ai/api/generate/submit \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "model": "sora-2-official",
  "callback_url": "https://your-domain.com/callback",
  "input": {
    "prompt": "An astronaut riding a horse across the surface of Mars, red dust blowing in the wind, dramatic sunset on the horizon, cinematic wide shot, slow motion, ultra realistic textures, detailed space suit reflections, epic atmosphere, 8k cinematic film, volumetric lighting, smooth camera tracking.",
    "duration": 20,
    "aspect_ratio": "16:9"
  }
}
'
{
  "code": 200,
  "data": {
    "task_id": "task-unified-1757165031-uyujaw3d",
    "status": "not_started",
    "created_time": "2025-11-12T10:30:00"
  }
}
  1. After submission, a task_id will be returned. If you provided a callback_url, when the task status becomes finished or failed, a POST request will be sent to the callback_url.
  2. Regardless of whether callback_url is provided, you can retrieve the result through the unified Query Task Status endpoint.

Sora 2 Official

sora-2-official supports text-to-video generation and optional single-image guided generation with fixed 4s, 8s, 12s, 16s, and 20s durations.

Available Model

  • sora-2-official - Text-to-video with optional reference image

Required Parameters

  • prompt: Text prompt for video generation

Optional Parameters

  • duration: 4, 8, 12, 16, or 20. Default is 4
  • aspect_ratio: 16:9 or 9:16. Default is 16:9
  • image_urls: Optional reference image array. Maximum 1 image

Notes

  • image_urls is optional. If provided, only one image is supported.
  • This page only describes the unified submit request. Query status through the standard task status API.

Authorizations

Authorization
string
header
required

All API endpoints require Bearer Token authentication

Get your API Key:

Visit the API Key Management Page to get your API Key

Add it to the request header:

Authorization: Bearer YOUR_API_KEY

Body

application/json
model
enum<string>
required

Sora 2 Official model identifier

Available options:
sora-2-official
input
object
required
callback_url
string<uri>

Webhook callback URL for result notifications

Example:

"https://your-domain.com/callback"

Response

200 - application/json

Task submitted successfully

code
integer
required
Example:

200

data
object
required