Skip to content

Sora (OpenAI) ​

Video generation uses async task mode: returns video_id after creation, poll to get results.

Create Video ​

http
POST /v1/videos
bash
curl --location --request POST 'https://neolink.com/api/v1/videos' \
--header 'Authorization: Bearer <API Key>' \
--form 'model="<Model ID>"' \
--form 'prompt="A calico cat playing a piano on stage"' \
--form 'seconds="4"' \
--form 'size="720x1280"'
python
import requests

url = "https://neolink.com/api/v1/videos"

headers = {
"Authorization": "Bearer <API Key>"
}

files = {
"model": (None, "<Model ID>"),
"prompt": (None, "A calico cat playing a piano on stage"),
"seconds": (None, "4"),
"size": (None, "720x1280"),
}

response = requests.post(url, headers=headers, files=files)

print(response.status_code)
print(response.text)

Supported Models: sora-2-guan, sora-2-pro-guan

Get Video ​

http
GET /v1/videos/{video_id}/content
bash
curl --location --request GET 'https://neolink.com/api/v1/videos/<video Id>/content?video_id=<video Id>' \
--header 'Authorization: Bearer <API Key>' \
--output output.mp4
python
import requests

API_KEY = "<API Key>"
VIDEO_ID = "<video Id>"

url = f"https://neolink.com/api/v1/videos/{VIDEO_ID}/content"

headers = {
"Authorization": f"Bearer {API_KEY}"
}

params = {
"video_id": VIDEO_ID
}

response = requests.get(url, headers=headers, params=params, stream=True)
response.raise_for_status()

with open("output.mp4", "wb") as f:
for chunk in response.iter_content(chunk_size=8192):
if chunk:
f.write(chunk)

print("Video saved as output.mp4")

Note: The variable video_id is returned after a successful video creation request.