| Item | Content |
|---|---|
| Base URL | https://llm.ai-nebula.com |
| Authentication | API Key (Token) |
| Request Header | Authorization: Bearer sk-xxxx |
| Content-Type | application/json |
| Task Mode | Asynchronous Task (Submit Task → Poll Status → Download Result) |
sora-2 - Sora 2 Standard EditionPOST /v1/video/generationsAuthorization: Bearer sk-xxxx
Content-Type: application/json| Parameter Name | Type | Required | Description | Example |
|---|---|---|---|---|
model | string | Yes | Model name | "sora-2" |
prompt | string | Yes | Video generation prompt | "A cute kitten playing in the garden" |
seconds | string/int | No | Video duration (seconds), supports: 4, 8, 12; default: 4 | "4" or 8 |
size | string | No | Video resolution, supports: "720x1280" (portrait) or "1280x720" (landscape). Note: only images of the exact dimensions can be passed | "720x1280" |
width | int | No | Video width (used with height, automatically converts to size) | 720 |
height | int | No | Video height (used with width, automatically converts to size) | 1280 |
input_reference | string | No | Reference image (supports URL or base64 format) | "https://example.com/image.jpg" or "data:image/jpeg;base64,..." |
remix_from_video_id | string | No | Remix Mode: Regenerate based on an existing video ID (must start with video_) | "video_12345" |
user | string | No | User identifier | "user-1234" |
{
"format": "mp4",
"metadata": {
"completed_at": null,
"created_at": 1762220876,
"error": null,
"expires_at": null,
"id": "video_69095b4ce0048190893a01510c0c98b0",
"model": "sora-2",
"object": "video",
"progress": 0,
"remixed_from_video_id": null,
"seconds": "4",
"size": "1280x720",
"status": "queued"
},
"status": "submitted",
"task_id": "video_69095b4ce0048190893a01510c0c98b0"
}
| Field Name | Type | Description |
|---|---|---|
task_id | string | Task ID, used for subsequent status queries and video downloading |
status | string | Task status, initial value is "submitted" |
GET /v1/video/generations/{task_id}Authorization: Bearer sk-xxxx| Parameter Name | Type | Required | Description |
|---|---|---|---|
task_id | string | Yes | Task ID (obtained from the submission response) |
{
"task_id": "video_1234567890abcdef",
"id": "video_1234567890abcdef",
"object": "video_generation",
"model": "sora-2",
"status": "queued",
"progress": 0,
"created_at": 1704067200,
"prompt": "A cute kitten playing in the garden, sunny and warm atmosphere",
"seconds": "4",
"size": "720x1280"
}{
"task_id": "video_1234567890abcdef",
"id": "video_1234567890abcdef",
"object": "video_generation",
"model": "sora-2",
"status": "in_progress",
"progress": 50,
"created_at": 1704067200,
"prompt": "A cute kitten playing in the garden, sunny and warm atmosphere",
"seconds": "4",
"size": "720x1280"
}{
"task_id": "video_1234567890abcdef",
"id": "video_1234567890abcdef",
"object": "video_generation",
"model": "sora-2",
"status": "succeeded",
"progress": 100,
"created_at": 1704067200,
"completed_at": 1704067800,
"prompt": "A cute kitten playing in the garden, sunny and warm atmosphere",
"seconds": "4",
"size": "720x1280",
"width": 720,
"height": 1280,
"n_seconds": 4
}{
"task_id": "video_1234567890abcdef",
"id": "video_1234567890abcdef",
"object": "video_generation",
"model": "sora-2",
"status": "failed",
"progress": 100,
"created_at": 1704067200,
"failure_reason": "Prompt contains inappropriate content",
"error": {
"message": "Prompt contains inappropriate content",
"code": "content_policy_violation"
}
}| Status Value | Description | Progress |
|---|---|---|
queued | Task is queued, waiting for processing | 0-20% |
in_progress | Task is being processed | 20-99% |
succeeded | Task completed successfully | 100% |
failed | Task failed | 100% |
queued or in_progress, polling is required (query every 3-5 seconds is recommended).succeeded, use the Task ID to download the video.failed, check the failure_reason or error field for the cause of failure.GET /v1/video/generations/download?id={task_id}Authorization: Bearer sk-xxxx| Parameter Name | Type | Required | Description |
|---|---|---|---|
id | string | Yes | Task ID (must be a completed task) |
{
"success": true,
"generation_id": "video_1234567890abcdef",
"task_id": "video_1234567890abcdef",
"format": "mp4",
"size": 15728640,
"base64": "AAAAIGZ0eXBpc29tAAACAGlzb21pc28yYXZjMW1wNDEAAAAIZnJlZQAAB...",
}| Field Name | Type | Description |
|---|---|---|
success | boolean | Whether successful |
generation_id | string | Generation ID (same as task_id) |
task_id | string | Task ID |
format | string | Video format (fixed as "mp4") |
size | number | Video file size (bytes) |
base64 | string | Base64 encoded video data |
| Value | Description |
|---|---|
"4" | 4-second video (Default) |
"8" | 8-second video |
"12" | 12-second video |
"4".| Value | Description | Aspect Ratio |
|---|---|---|
"720x1280" | Portrait (Default) | 9:16 |
"1280x720" | Landscape | 16:9 |
width and height parameters can be used; the system will automatically convert them to the size parameter.width and height do not match the above resolutions, they will be automatically corrected to the default value "720x1280"."https://example.com/image.jpg""data:image/jpeg;base64,/9j/4AAQSkZJRg..."task_id of a completed task.video_.prompt parameter is required; other parameters will be ignored.| HTTP Status Code | Error Message | Description |
|---|---|---|
| 400 | invalid_request_error | Request parameter error |
| 401 | authentication_error | API Key invalid or not provided |
| 403 | permission_denied | Permission denied |
| 404 | not_found | Task does not exist |
| 429 | rate_limit_error | Request frequency too high |
| 500 | server_error | Internal server error |
{
"error": {
"message": "Invalid API key",
"type": "authentication_error",
"code": "invalid_api_key"
}
}