Skip to main content
GET
/
v1
/
videos
/
{video_id}
Retrieve a Sora video job
curl --request GET \
  --url https://api.cometapi.com/v1/videos/{video_id} \
  --header 'Authorization: Bearer <token>'
{
  "id": "video_69b25d5f467c81908733a56bc236b4df",
  "size": "1280x720",
  "error": null,
  "model": "sora-2",
  "object": "video",
  "prompt": "A paper airplane glides across a desk.",
  "status": "in_progress",
  "seconds": "4",
  "progress": 0,
  "created_at": 1773296991,
  "expires_at": null,
  "completed_at": null,
  "remixed_from_video_id": null
}
Use this endpoint after you start a Sora job. It reports the current job state, the configured size and duration, and any error returned by the provider.

Watch these fields

  • status for the lifecycle state
  • progress for a coarse progress signal
  • error when the provider rejects or fails the job
  • expires_at after completion if you need to know when temporary assets expire

Poll until completion

1

Create or remix the video first

Start with Create Video or Remix Video.
2

Poll by id

Pass the returned id here and keep checking until the job reaches completed or failed.
3

Download the file

When the job is completed, move to Retrieve Video Content.

Response shape on CometAPI

This step matches the Sora polling workflow closely. CometAPI keeps the OpenAI-style object shape so you can wire status checks with minimal translation.

Authorizations

Authorization
string
header
required

Bearer token authentication. Use your CometAPI key.

Path Parameters

video_id
string
required

Video id returned by the create or remix endpoint.

Response

200 - application/json

Current job state.

id
string
required
size
string
required
model
string
required
object
string
required
status
string
required
seconds
string
required
progress
integer
required
created_at
integer
required
error
object
prompt
string
expires_at
integer | null
completed_at
integer | null
remixed_from_video_id
string | null