Generate a premium video clip
curl --request POST \
--url https://api.neuraldraft.io/v1/videos \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"prompt": "<string>",
"aspect_ratio": "9:16",
"duration_seconds": 5,
"visual_style": "<string>",
"platforms": []
}
'const url = 'https://api.neuraldraft.io/v1/videos';
const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
prompt: '<string>',
aspect_ratio: '9:16',
duration_seconds: 5,
visual_style: '<string>',
platforms: []
})
};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));import requests
url = "https://api.neuraldraft.io/v1/videos"
payload = {
"prompt": "<string>",
"aspect_ratio": "9:16",
"duration_seconds": 5,
"visual_style": "<string>",
"platforms": []
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.neuraldraft.io/v1/videos",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'prompt' => '<string>',
'aspect_ratio' => '9:16',
'duration_seconds' => 5,
'visual_style' => '<string>',
'platforms' => [
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}{
"data": {
"id": "job_2Ngd9KqLmRpW",
"type": "blog_post.generate",
"status": "pending",
"created_at": "2023-11-07T05:31:56Z",
"progress": 50,
"message": "<string>",
"steps": [
{
"name": "<string>",
"completed": true,
"active": true
}
],
"result": {},
"error": {
"code": "upstream_unavailable",
"message": "<string>"
},
"updated_at": "2023-11-07T05:31:56Z"
}
}{
"type": "https://neuraldraft.com/errors/payment-required",
"title": "Payment Required",
"status": 402,
"detail": "This project has no credits remaining for the current period.",
"code": "insufficient_credits",
"cost": 1,
"balance": 0,
"instance": "req_2Nh4PqRsTuVw"
}Videos
Generate a premium video clip
Kicks off a short-form video generation. Two tiers — pick tier=budget
(default, Wan 2.1) for 40 credits (video) or tier=premium
(Kling v2.1 / Runway Gen4) for 300 credits (video_premium).
Premium requires a Build plan or higher; Free / Hobby projects
calling with tier=premium get 402 plan_required. Returns a
Job with type: video.generate; poll
GET /jobs/{id} for completion.
POST
/
videos
Generate a premium video clip
curl --request POST \
--url https://api.neuraldraft.io/v1/videos \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"prompt": "<string>",
"aspect_ratio": "9:16",
"duration_seconds": 5,
"visual_style": "<string>",
"platforms": []
}
'const url = 'https://api.neuraldraft.io/v1/videos';
const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
prompt: '<string>',
aspect_ratio: '9:16',
duration_seconds: 5,
visual_style: '<string>',
platforms: []
})
};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));import requests
url = "https://api.neuraldraft.io/v1/videos"
payload = {
"prompt": "<string>",
"aspect_ratio": "9:16",
"duration_seconds": 5,
"visual_style": "<string>",
"platforms": []
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.neuraldraft.io/v1/videos",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'prompt' => '<string>',
'aspect_ratio' => '9:16',
'duration_seconds' => 5,
'visual_style' => '<string>',
'platforms' => [
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}{
"data": {
"id": "job_2Ngd9KqLmRpW",
"type": "blog_post.generate",
"status": "pending",
"created_at": "2023-11-07T05:31:56Z",
"progress": 50,
"message": "<string>",
"steps": [
{
"name": "<string>",
"completed": true,
"active": true
}
],
"result": {},
"error": {
"code": "upstream_unavailable",
"message": "<string>"
},
"updated_at": "2023-11-07T05:31:56Z"
}
}{
"type": "https://neuraldraft.com/errors/payment-required",
"title": "Payment Required",
"status": 402,
"detail": "This project has no credits remaining for the current period.",
"code": "insufficient_credits",
"cost": 1,
"balance": 0,
"instance": "req_2Nh4PqRsTuVw"
}Authorizations
Project API key. Pass as Authorization: Bearer ndsk_live_.... Manage
keys via /projects/me/api-keys. Test-mode keys use
the ndsk_test_ prefix.
Body
application/json
What the video should show. Use visual / cinematic language: action verbs, camera movement, mood.
Required string length:
3 - 2000Available options:
1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3 Required range:
3 <= x <= 30Maximum string length:
200Available options:
facebook, instagram, twitter, tiktok, linkedin Response
Job queued.
Show child attributes
Show child attributes