Files
Upload a file
Uploads one local image, video, or audio file and returns a reusable file ID.
POST
/
openapi
/
v1
/
files
curl --request POST \
--url https://api.neural4d.com/openapi/v1/files \
--header 'Authorization: Bearer <token>' \
--form 'file=@/path/to/file.png'
import requests
response = requests.request(
"POST",
"https://api.neural4d.com/openapi/v1/files",
headers={
"Authorization": "Bearer <token>",
},
files={"file": open('/path/to/file', 'rb')},
)
print(response.json())
const response = await fetch("https://api.neural4d.com/openapi/v1/files", {
method: "POST",
headers: {
"Authorization": "Bearer <token>"
},
body: (() => { const form = new FormData(); form.append("file", fileInput.files[0]); return form; })(),
});
const data = await response.json();
console.log(data);
const response: Response = await fetch("https://api.neural4d.com/openapi/v1/files", {
method: "POST",
headers: {
"Authorization": "Bearer <token>"
},
body: (() => { const form = new FormData(); form.append("file", fileInput.files[0]); return form; })(),
});
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/files"))
.header("Authorization", "Bearer <token>")
.method("POST", 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("POST", "https://api.neural4d.com/openapi/v1/files", 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/files")
request = Net::HTTP::Post.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/files");
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => "POST",
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.Post, "https://api.neural4d.com/openapi/v1/files");
request.Headers.TryAddWithoutValidation("Authorization", "Bearer <token>");
using var response = await client.SendAsync(request);
Console.WriteLine(await response.Content.ReadAsStringAsync());
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"filename": "first-frame.png",
"bytes": 245760,
"mime_type": "image/png",
"created_at": 1784044800
}
{
"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": "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.
Body multipart/form-data
string<binary>
required
File to upload. Supported image formats: JPG, JPEG, PNG, GIF, WEBP, BMP, HEIC, and HEIF. Supported video formats: MP4, MOV, WEBM, M4V, OGG, and OGV. Supported audio formats: MP3 and WAV.
curl --request POST \
--url https://api.neural4d.com/openapi/v1/files \
--header 'Authorization: Bearer <token>' \
--form 'file=@/path/to/file.png'
import requests
response = requests.request(
"POST",
"https://api.neural4d.com/openapi/v1/files",
headers={
"Authorization": "Bearer <token>",
},
files={"file": open('/path/to/file', 'rb')},
)
print(response.json())
const response = await fetch("https://api.neural4d.com/openapi/v1/files", {
method: "POST",
headers: {
"Authorization": "Bearer <token>"
},
body: (() => { const form = new FormData(); form.append("file", fileInput.files[0]); return form; })(),
});
const data = await response.json();
console.log(data);
const response: Response = await fetch("https://api.neural4d.com/openapi/v1/files", {
method: "POST",
headers: {
"Authorization": "Bearer <token>"
},
body: (() => { const form = new FormData(); form.append("file", fileInput.files[0]); return form; })(),
});
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/files"))
.header("Authorization", "Bearer <token>")
.method("POST", 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("POST", "https://api.neural4d.com/openapi/v1/files", 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/files")
request = Net::HTTP::Post.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/files");
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => "POST",
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.Post, "https://api.neural4d.com/openapi/v1/files");
request.Headers.TryAddWithoutValidation("Authorization", "Bearer <token>");
using var response = await client.SendAsync(request);
Console.WriteLine(await response.Content.ReadAsStringAsync());
Response
- 201
- 400
- 401
- 403
- 429
- 500
File uploaded
string
required
File ID used by generation requests.Example:
"550e8400-e29b-41d4-a716-446655440000".string
required
Original name of the uploaded file.Example:
"first-frame.png".integer<int64>
required
Uploaded file size in bytes.Required range:
0 <= x <= infinity.Example: 245760.string
required
Media type detected for the uploaded file.Example:
"image/png".integer<int64>
required
Unix timestamp in seconds when the file was created.
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".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": "550e8400-e29b-41d4-a716-446655440000",
"filename": "first-frame.png",
"bytes": 245760,
"mime_type": "image/png",
"created_at": 1784044800
}
{
"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": "rate_limit_exceeded",
"message": "Too many requests. Retry after the indicated interval."
}
}
{
"error": {
"code": "internal_error",
"message": "An internal error occurred"
}
}
⌘I
curl --request POST \
--url https://api.neural4d.com/openapi/v1/files \
--header 'Authorization: Bearer <token>' \
--form 'file=@/path/to/file.png'
import requests
response = requests.request(
"POST",
"https://api.neural4d.com/openapi/v1/files",
headers={
"Authorization": "Bearer <token>",
},
files={"file": open('/path/to/file', 'rb')},
)
print(response.json())
const response = await fetch("https://api.neural4d.com/openapi/v1/files", {
method: "POST",
headers: {
"Authorization": "Bearer <token>"
},
body: (() => { const form = new FormData(); form.append("file", fileInput.files[0]); return form; })(),
});
const data = await response.json();
console.log(data);
const response: Response = await fetch("https://api.neural4d.com/openapi/v1/files", {
method: "POST",
headers: {
"Authorization": "Bearer <token>"
},
body: (() => { const form = new FormData(); form.append("file", fileInput.files[0]); return form; })(),
});
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/files"))
.header("Authorization", "Bearer <token>")
.method("POST", 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("POST", "https://api.neural4d.com/openapi/v1/files", 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/files")
request = Net::HTTP::Post.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/files");
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => "POST",
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.Post, "https://api.neural4d.com/openapi/v1/files");
request.Headers.TryAddWithoutValidation("Authorization", "Bearer <token>");
using var response = await client.SendAsync(request);
Console.WriteLine(await response.Content.ReadAsStringAsync());
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"filename": "first-frame.png",
"bytes": 245760,
"mime_type": "image/png",
"created_at": 1784044800
}
{
"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": "rate_limit_exceeded",
"message": "Too many requests. Retry after the indicated interval."
}
}
{
"error": {
"code": "internal_error",
"message": "An internal error occurred"
}
}

