Tasks
Retrieve a task
Returns task status and output by batch task ID or child video UUID. Provide exactly one of the id or uuid query parameters.
GET
/
openapi
/
v1
/
tasks
/
task-info
curl --request GET \
--url 'https://api.neural4d.com/openapi/v1/tasks/task-info?id=normal-video-c50fe63e-699d-4d61-93f5-2099ab159d6d' \
--header 'Authorization: Bearer <token>'
import requests
response = requests.request(
"GET",
"https://api.neural4d.com/openapi/v1/tasks/task-info?id=normal-video-c50fe63e-699d-4d61-93f5-2099ab159d6d",
headers={
"Authorization": "Bearer <token>",
},
)
print(response.json())
const response = await fetch("https://api.neural4d.com/openapi/v1/tasks/task-info?id=normal-video-c50fe63e-699d-4d61-93f5-2099ab159d6d", {
method: "GET",
headers: {
"Authorization": "Bearer <token>"
},
});
const data = await response.json();
console.log(data);
const response: Response = await fetch("https://api.neural4d.com/openapi/v1/tasks/task-info?id=normal-video-c50fe63e-699d-4d61-93f5-2099ab159d6d", {
method: "GET",
headers: {
"Authorization": "Bearer <token>"
},
});
const data = await response.json();
console.log(data);
import java.net.URI;
import java.net.http.*;
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.neural4d.com/openapi/v1/tasks/task-info?id=normal-video-c50fe63e-699d-4d61-93f5-2099ab159d6d"))
.header("Authorization", "Bearer <token>")
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
payload := nil
req, _ := http.NewRequest("GET", "https://api.neural4d.com/openapi/v1/tasks/task-info?id=normal-video-c50fe63e-699d-4d61-93f5-2099ab159d6d", payload)
req.Header.Set("Authorization", "Bearer <token>")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
bodyBytes, _ := io.ReadAll(resp.Body)
fmt.Println(string(bodyBytes))
require "net/http"
require "json"
uri = URI("https://api.neural4d.com/openapi/v1/tasks/task-info?id=normal-video-c50fe63e-699d-4d61-93f5-2099ab159d6d")
request = Net::HTTP::Get.new(uri)
request["Authorization"] = "Bearer <token>"
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == "https") { |http| http.request(request) }
puts response.body
<?php
$ch = curl_init("https://api.neural4d.com/openapi/v1/tasks/task-info?id=normal-video-c50fe63e-699d-4d61-93f5-2099ab159d6d");
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ["Authorization: Bearer <token>"],
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
using System.Net.Http;
using System.Text;
using var client = new HttpClient();
using var request = new HttpRequestMessage(HttpMethod.Get, "https://api.neural4d.com/openapi/v1/tasks/task-info?id=normal-video-c50fe63e-699d-4d61-93f5-2099ab159d6d");
request.Headers.TryAddWithoutValidation("Authorization", "Bearer <token>");
using var response = await client.SendAsync(request);
Console.WriteLine(await response.Content.ReadAsStringAsync());
{
"id": "normal-video-c50fe63e-699d-4d61-93f5-2099ab159d6d",
"status": "succeeded",
"mode": "first_frame_image_to_video",
"model": "bytedance/seedance-2.0-fast",
"created_at": 1784044800,
"updated_at": 1784044842,
"usage": {
"credits": 26
},
"output": {
"videos": [
{
"uuid": "7d1fa4bb-41e6-4a5d-88d8-1851f5342e87",
"url": "https://cdn.neural4d.com/results/video.mp4",
"format": "mp4",
"duration": 5,
"resolution": "720p",
"aspect_ratio": "16:9",
"has_audio": true,
"mode": "first_frame_image_to_video",
"status": "succeeded",
"created_at": 1784044800,
"updated_at": 1784044842
}
]
}
}
{
"error": {
"code": "invalid_prompt",
"message": "prompt is required and must be a non-empty string"
}
}
{
"error": {
"code": "unsupported_model",
"message": "Unsupported modelKey: missing-model"
}
}
{
"error": {
"code": "model_unavailable",
"message": "Model is unavailable: veo-3.1"
}
}
{
"error": {
"code": "invalid_api_key",
"message": "The API key is invalid or expired"
}
}
{
"error": {
"code": "insufficient_credits",
"message": "Insufficient credits for video generation"
}
}
{
"error": {
"code": "task_not_found",
"message": "The requested task does not exist"
}
}
{
"error": {
"code": "rate_limit_exceeded",
"message": "Too many requests. Retry after the indicated interval."
}
}
{
"error": {
"code": "internal_error",
"message": "An internal error occurred"
}
}
Authorizations
string
default:"Bearer ${YOUR_API_KEY}"
required
Neural4D API key using the Bearer scheme.
Query Parameters
string
Batch task ID returned by a generation request. Provide this or uuid, but not both.Example:
"normal-video-c50fe63e-699d-4d61-93f5-2099ab159d6d".string<uuid>
Child video UUID returned in the generation response. Provide this or id, but not both.Example:
"7d1fa4bb-41e6-4a5d-88d8-1851f5342e87".curl --request GET \
--url 'https://api.neural4d.com/openapi/v1/tasks/task-info?id=normal-video-c50fe63e-699d-4d61-93f5-2099ab159d6d' \
--header 'Authorization: Bearer <token>'
import requests
response = requests.request(
"GET",
"https://api.neural4d.com/openapi/v1/tasks/task-info?id=normal-video-c50fe63e-699d-4d61-93f5-2099ab159d6d",
headers={
"Authorization": "Bearer <token>",
},
)
print(response.json())
const response = await fetch("https://api.neural4d.com/openapi/v1/tasks/task-info?id=normal-video-c50fe63e-699d-4d61-93f5-2099ab159d6d", {
method: "GET",
headers: {
"Authorization": "Bearer <token>"
},
});
const data = await response.json();
console.log(data);
const response: Response = await fetch("https://api.neural4d.com/openapi/v1/tasks/task-info?id=normal-video-c50fe63e-699d-4d61-93f5-2099ab159d6d", {
method: "GET",
headers: {
"Authorization": "Bearer <token>"
},
});
const data = await response.json();
console.log(data);
import java.net.URI;
import java.net.http.*;
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.neural4d.com/openapi/v1/tasks/task-info?id=normal-video-c50fe63e-699d-4d61-93f5-2099ab159d6d"))
.header("Authorization", "Bearer <token>")
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
payload := nil
req, _ := http.NewRequest("GET", "https://api.neural4d.com/openapi/v1/tasks/task-info?id=normal-video-c50fe63e-699d-4d61-93f5-2099ab159d6d", payload)
req.Header.Set("Authorization", "Bearer <token>")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
bodyBytes, _ := io.ReadAll(resp.Body)
fmt.Println(string(bodyBytes))
require "net/http"
require "json"
uri = URI("https://api.neural4d.com/openapi/v1/tasks/task-info?id=normal-video-c50fe63e-699d-4d61-93f5-2099ab159d6d")
request = Net::HTTP::Get.new(uri)
request["Authorization"] = "Bearer <token>"
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == "https") { |http| http.request(request) }
puts response.body
<?php
$ch = curl_init("https://api.neural4d.com/openapi/v1/tasks/task-info?id=normal-video-c50fe63e-699d-4d61-93f5-2099ab159d6d");
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ["Authorization: Bearer <token>"],
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
using System.Net.Http;
using System.Text;
using var client = new HttpClient();
using var request = new HttpRequestMessage(HttpMethod.Get, "https://api.neural4d.com/openapi/v1/tasks/task-info?id=normal-video-c50fe63e-699d-4d61-93f5-2099ab159d6d");
request.Headers.TryAddWithoutValidation("Authorization", "Bearer <token>");
using var response = await client.SendAsync(request);
Console.WriteLine(await response.Content.ReadAsStringAsync());
Response
- 200
- 400
- 401
- 403
- 404
- 429
- 500
Task details
string
required
Batch task ID returned by a generation request.Example:
"normal-video-c50fe63e-699d-4d61-93f5-2099ab159d6d".enum<string>
required
Normalized task lifecycle status.Available options:
queued, processing, succeeded, failed.integer<int64>
required
Unix timestamp in seconds.
object
required
Current child video task output, including entries that are still queued or processing.
Show child attributes
Show child attributes
All child video tasks and their current output information. url and format are null until a result file is available.
Show child attributes
Show child attributes
Generated video child UUID.Example:
"7d1fa4bb-41e6-4a5d-88d8-1851f5342e87".Temporary signed URL for downloading the generated video when available.
Video file format when known, such as mp4.Example:
"mp4".Generated video duration in seconds when available.Required range:
0 <= x <= infinity.Generated video resolution when available, such as 720p.Example:
"720p".Generated video aspect ratio when available, such as 16:9.Example:
"16:9".Whether native audio generation was enabled for this video.
Generation mode used for this video.Available options:
text_to_video, first_frame_image_to_video, first_last_frame_image_to_video, reference_to_video.Current status of this generated video.Available options:
queued, processing, succeeded, failed.Unix timestamp in seconds when this generated video was created.
Unix timestamp in seconds when this generated video was last updated.
enum<string>
required
Video generation mode used by the task.Available options:
text_to_video, first_frame_image_to_video, first_last_frame_image_to_video, reference_to_video.enum<string> | null
Video generation model used by the task.Available options:
bytedance/seedance-2.0, bytedance/seedance-2.0-fast, google/veo-3.1, xai/grok-imagine.integer<int64>
Unix timestamp in seconds.
object
Credits charged for this task when available.
Show child attributes
Show child attributes
Credits charged for the task or submission.Required range:
0 <= x <= infinity.Example: 26.object
Error details when the task fails.
Invalid request
object
required
Structured error details.
Show child attributes
Show child attributes
Stable machine-readable error code.Example:
"invalid_prompt".Human-readable explanation of the error.Example:
"prompt is required and must be a non-empty string".Optional documentation URL with more information about the error.Example:
"https://api.neural4d.com/docs/errors#invalid_prompt".Authentication failed
object
required
Structured error details.
Show child attributes
Show child attributes
Stable machine-readable error code.Example:
"invalid_prompt".Human-readable explanation of the error.Example:
"prompt is required and must be a non-empty string".Optional documentation URL with more information about the error.Example:
"https://api.neural4d.com/docs/errors#invalid_prompt".The authenticated user cannot access this resource or has insufficient credits
object
required
Structured error details.
Show child attributes
Show child attributes
Stable machine-readable error code.Example:
"invalid_prompt".Human-readable explanation of the error.Example:
"prompt is required and must be a non-empty string".Optional documentation URL with more information about the error.Example:
"https://api.neural4d.com/docs/errors#invalid_prompt".The requested resource was not found
object
required
Structured error details.
Show child attributes
Show child attributes
Stable machine-readable error code.Example:
"invalid_prompt".Human-readable explanation of the error.Example:
"prompt is required and must be a non-empty string".Optional documentation URL with more information about the error.Example:
"https://api.neural4d.com/docs/errors#invalid_prompt".Request or quota limit exceeded
object
required
Structured error details.
Show child attributes
Show child attributes
Stable machine-readable error code.Example:
"invalid_prompt".Human-readable explanation of the error.Example:
"prompt is required and must be a non-empty string".Optional documentation URL with more information about the error.Example:
"https://api.neural4d.com/docs/errors#invalid_prompt".Internal or upstream service error
object
required
Structured error details.
Show child attributes
Show child attributes
Stable machine-readable error code.Example:
"invalid_prompt".Human-readable explanation of the error.Example:
"prompt is required and must be a non-empty string".Optional documentation URL with more information about the error.Example:
"https://api.neural4d.com/docs/errors#invalid_prompt".{
"id": "normal-video-c50fe63e-699d-4d61-93f5-2099ab159d6d",
"status": "succeeded",
"mode": "first_frame_image_to_video",
"model": "bytedance/seedance-2.0-fast",
"created_at": 1784044800,
"updated_at": 1784044842,
"usage": {
"credits": 26
},
"output": {
"videos": [
{
"uuid": "7d1fa4bb-41e6-4a5d-88d8-1851f5342e87",
"url": "https://cdn.neural4d.com/results/video.mp4",
"format": "mp4",
"duration": 5,
"resolution": "720p",
"aspect_ratio": "16:9",
"has_audio": true,
"mode": "first_frame_image_to_video",
"status": "succeeded",
"created_at": 1784044800,
"updated_at": 1784044842
}
]
}
}
{
"error": {
"code": "invalid_prompt",
"message": "prompt is required and must be a non-empty string"
}
}
{
"error": {
"code": "unsupported_model",
"message": "Unsupported modelKey: missing-model"
}
}
{
"error": {
"code": "model_unavailable",
"message": "Model is unavailable: veo-3.1"
}
}
{
"error": {
"code": "invalid_api_key",
"message": "The API key is invalid or expired"
}
}
{
"error": {
"code": "insufficient_credits",
"message": "Insufficient credits for video generation"
}
}
{
"error": {
"code": "task_not_found",
"message": "The requested task does not exist"
}
}
{
"error": {
"code": "rate_limit_exceeded",
"message": "Too many requests. Retry after the indicated interval."
}
}
{
"error": {
"code": "internal_error",
"message": "An internal error occurred"
}
}
⌘I
curl --request GET \
--url 'https://api.neural4d.com/openapi/v1/tasks/task-info?id=normal-video-c50fe63e-699d-4d61-93f5-2099ab159d6d' \
--header 'Authorization: Bearer <token>'
import requests
response = requests.request(
"GET",
"https://api.neural4d.com/openapi/v1/tasks/task-info?id=normal-video-c50fe63e-699d-4d61-93f5-2099ab159d6d",
headers={
"Authorization": "Bearer <token>",
},
)
print(response.json())
const response = await fetch("https://api.neural4d.com/openapi/v1/tasks/task-info?id=normal-video-c50fe63e-699d-4d61-93f5-2099ab159d6d", {
method: "GET",
headers: {
"Authorization": "Bearer <token>"
},
});
const data = await response.json();
console.log(data);
const response: Response = await fetch("https://api.neural4d.com/openapi/v1/tasks/task-info?id=normal-video-c50fe63e-699d-4d61-93f5-2099ab159d6d", {
method: "GET",
headers: {
"Authorization": "Bearer <token>"
},
});
const data = await response.json();
console.log(data);
import java.net.URI;
import java.net.http.*;
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.neural4d.com/openapi/v1/tasks/task-info?id=normal-video-c50fe63e-699d-4d61-93f5-2099ab159d6d"))
.header("Authorization", "Bearer <token>")
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
payload := nil
req, _ := http.NewRequest("GET", "https://api.neural4d.com/openapi/v1/tasks/task-info?id=normal-video-c50fe63e-699d-4d61-93f5-2099ab159d6d", payload)
req.Header.Set("Authorization", "Bearer <token>")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
bodyBytes, _ := io.ReadAll(resp.Body)
fmt.Println(string(bodyBytes))
require "net/http"
require "json"
uri = URI("https://api.neural4d.com/openapi/v1/tasks/task-info?id=normal-video-c50fe63e-699d-4d61-93f5-2099ab159d6d")
request = Net::HTTP::Get.new(uri)
request["Authorization"] = "Bearer <token>"
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == "https") { |http| http.request(request) }
puts response.body
<?php
$ch = curl_init("https://api.neural4d.com/openapi/v1/tasks/task-info?id=normal-video-c50fe63e-699d-4d61-93f5-2099ab159d6d");
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ["Authorization: Bearer <token>"],
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
using System.Net.Http;
using System.Text;
using var client = new HttpClient();
using var request = new HttpRequestMessage(HttpMethod.Get, "https://api.neural4d.com/openapi/v1/tasks/task-info?id=normal-video-c50fe63e-699d-4d61-93f5-2099ab159d6d");
request.Headers.TryAddWithoutValidation("Authorization", "Bearer <token>");
using var response = await client.SendAsync(request);
Console.WriteLine(await response.Content.ReadAsStringAsync());
{
"id": "normal-video-c50fe63e-699d-4d61-93f5-2099ab159d6d",
"status": "succeeded",
"mode": "first_frame_image_to_video",
"model": "bytedance/seedance-2.0-fast",
"created_at": 1784044800,
"updated_at": 1784044842,
"usage": {
"credits": 26
},
"output": {
"videos": [
{
"uuid": "7d1fa4bb-41e6-4a5d-88d8-1851f5342e87",
"url": "https://cdn.neural4d.com/results/video.mp4",
"format": "mp4",
"duration": 5,
"resolution": "720p",
"aspect_ratio": "16:9",
"has_audio": true,
"mode": "first_frame_image_to_video",
"status": "succeeded",
"created_at": 1784044800,
"updated_at": 1784044842
}
]
}
}
{
"error": {
"code": "invalid_prompt",
"message": "prompt is required and must be a non-empty string"
}
}
{
"error": {
"code": "unsupported_model",
"message": "Unsupported modelKey: missing-model"
}
}
{
"error": {
"code": "model_unavailable",
"message": "Model is unavailable: veo-3.1"
}
}
{
"error": {
"code": "invalid_api_key",
"message": "The API key is invalid or expired"
}
}
{
"error": {
"code": "insufficient_credits",
"message": "Insufficient credits for video generation"
}
}
{
"error": {
"code": "task_not_found",
"message": "The requested task does not exist"
}
}
{
"error": {
"code": "rate_limit_exceeded",
"message": "Too many requests. Retry after the indicated interval."
}
}
{
"error": {
"code": "internal_error",
"message": "An internal error occurred"
}
}

