Higgsfield DoP API Documentation

Image To Video Request - Request Code

POST https://gateway.pixazo.ai/ai-model-api/v1/generateImageToVideoRequest HTTP/1.1
Content-Type: application/json
Cache-Control: no-cache
Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY

{
  "model": "dop-lite",
  "prompt": "A serene lake with gentle ripples, birds flying overhead, cinematic lighting",
  "seed": 123456,
  "motions_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "motions_strength": 0.7,
  "input_images": ["https://example.com/images/lake-scene.jpg"],
  "enhance_prompt": true
}
import requests
import json

url = "https://gateway.pixazo.ai/ai-model-api/v1/generateImageToVideoRequest"

headers = {
    "Content-Type": "application/json",
    "Cache-Control": "no-cache",
    "Ocp-Apim-Subscription-Key": "YOUR_SUBSCRIPTION_KEY"
}

data = {
    "model": "dop-lite",
    "prompt": "A serene lake with gentle ripples, birds flying overhead, cinematic lighting",
    "seed": 123456,
    "motions_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "motions_strength": 0.7,
    "input_images": ["https://example.com/images/lake-scene.jpg"],
    "enhance_prompt": True
}

response = requests.post(url, headers=headers, json=data)
print(response.json())
const url = 'https://gateway.pixazo.ai/ai-model-api/v1/generateImageToVideoRequest';

const data = {
  model: 'dop-lite',
  prompt: 'A serene lake with gentle ripples, birds flying overhead, cinematic lighting',
  seed: 123456,
  motions_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
  motions_strength: 0.7,
  input_images: ['https://example.com/images/lake-scene.jpg'],
  enhance_prompt: true
};

fetch(url, {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Cache-Control': 'no-cache',
    'Ocp-Apim-Subscription-Key': 'YOUR_SUBSCRIPTION_KEY'
  },
  body: JSON.stringify(data)
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
curl -v -X POST "https://gateway.pixazo.ai/ai-model-api/v1/generateImageToVideoRequest" -H "Content-Type: application/json" -H "Cache-Control: no-cache" -H "Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY" --data-raw '{
    "model": "dop-lite",
    "prompt": "A serene lake with gentle ripples, birds flying overhead, cinematic lighting",
    "seed": 123456,
    "motions_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "motions_strength": 0.7,
    "input_images": ["https://example.com/images/lake-scene.jpg"],
    "enhance_prompt": true
}'
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.time.Duration;

public class ApiClient {
    public static void main(String[] args) throws Exception {
        String url = "https://gateway.pixazo.ai/ai-model-api/v1/generateImageToVideoRequest";
        
        String json = "{" + "\n" +
        "  \"model\": \"dop-lite\"," + "\n" +
        "  \"prompt\": \"A serene lake with gentle ripples, birds flying overhead, cinematic lighting\"," + "\n" +
        "  \"seed\": 123456," + "\n" +
        "  \"motions_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"," + "\n" +
        "  \"motions_strength\": 0.7," + "\n" +
        "  \"input_images\": [\"https://example.com/images/lake-scene.jpg\"]," + "\n" +
        "  \"enhance_prompt\": true" + "\n" +
        "}";
        
        HttpClient client = HttpClient.newBuilder()
            .connectTimeout(Duration.ofSeconds(10))
            .build();
            
        HttpRequest request = HttpRequest.newBuilder()
            .uri(URI.create(url))
            .header("Content-Type", "application/json")
            .header("Cache-Control", "no-cache")
            .header("Ocp-Apim-Subscription-Key", "YOUR_SUBSCRIPTION_KEY")
            .POST(HttpRequest.BodyPublishers.ofString(json))
            .build();
            
        HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
        System.out.println(response.body());
    }
}
<?php
$url = 'https://gateway.pixazo.ai/ai-model-api/v1/generateImageToVideoRequest';

$data = [
    'model' => 'dop-lite',
    'prompt' => 'A serene lake with gentle ripples, birds flying overhead, cinematic lighting',
    'seed' => 123456,
    'motions_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
    'motions_strength' => 0.7,
    'input_images' => ['https://example.com/images/lake-scene.jpg'],
    'enhance_prompt' => true
];

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Content-Type: application/json',
    'Cache-Control: no-cache',
    'Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY'
]);

$response = curl_exec($ch);
curl_close($ch);

echo $response;
?>

Output

Successful API response:

{ "job_set_id": "96ddb2c0-2685-XXXX-XXXX-XXXXXXXXXXXX", "type": "image2video", "created_at": "2025-09-16T11:16:51.045020Z" }

Request Body - Image To Video Request

Parameters for /generateImageToVideoRequest:

ParameterRequiredTypeDescription
webhook_urlNostring (URI)The URL endpoint where callback requests will be sent. Must be a valid, accessible URI that can receive POST requests. If provided, webhook_secret is also required.
Example: https://your-domain.com/webhook
webhook_secretNostringSecret key used for verifying callback authenticity. Use this to validate that callbacks are genuinely from Higgsfield. Required if webhook_url is provided.
Example: webhook_secret_abc123
modelYesenum stringThe image-to-video model to use for generation. Available options: dop-lite, dop-preview, dop-turbo. Each model offers different quality and speed trade-offs.
Example: dop-lite
promptYesstringText description/prompt for video generation. Describes the desired video content, style, and motion. Be descriptive for better results.
Example: A peaceful sunset over mountains with clouds moving slowly
seedYesintegerRandom seed for reproducible results. Must be between 1 and 1,000,000. Using the same seed with identical parameters will produce similar results.
Example: 500000
motions_idYesstring (UUID)Unique identifier for the motion preset. This ID corresponds to predefined motion effects available in the system.
Example: 3c90c3cc-0d44-4b50-8888-8dd25736052a. You can get motion_id using the API : https://endpoints.appypie.com/api-details#api=ai-model-api-polling&operation=motions
motions_strengthYesnumber (0-1)Intensity of the motion effect application. Range from 0.0 (minimal effect) to 1.0 (maximum effect) with 0.01 step precision. Higher values create more pronounced motion.
Example: 0.75
input_imagesYesarray of stringsArray of image URLs for video generation. Each URL must be a publicly accessible link pointing to a valid image file. Supported formats include JPEG, PNG, WebP. Must contain exactly 1 element for standard generation.
Example: ["https://example.com/image1.jpg"]
input_images_endNoarray of stringsArray of end frame image URLs for Start & End Frame functionality. Each URL must be a publicly accessible link pointing to a valid image file. Supported formats include JPEG, PNG, WebP. Minimum length: 1 element. Enables advanced frame interpolation between start and end images.
Example: ["https://example.com/end-frame.jpg"]
enhance_promptYesbooleanWhether to automatically enhance and refine the provided prompt. When true, the system will optimize your prompt for better video generation results.
Example: true
check_nsfwNobooleanWhether to perform NSFW (Not Safe For Work) content detection. When true, the system will check for inappropriate content and may reject the request if detected.

Example Request - Image To Video Request

JSON
{ "model": "dop-lite", "prompt": "A serene lake with gentle ripples, birds flying overhead, cinematic lighting", "seed": 123456, "motions_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a", "motions_strength": 0.7, "input_images": ["https://example.com/images/lake-scene.jpg"], "enhance_prompt": true }

Response - Image To Video Request

JSON
{ "job_set_id": "96ddb2c0-2685-XXXX-XXXX-XXXXXXXXXXXX", "type": "image2video", "created_at": "2025-09-16T11:16:51.045020Z", "jobs": [{ "id": "182d2a3c-8bfd-XXXX-XXXX-XXXXXXXXXXXX", "job_set_type": "image2video", "status": "queued", "results": null }], "input_params": { "prompt": "<PROMPT>", "model": "<MODEL_NAME>", "seed": 123456, "motions": [{ "id": "d21ff628-0d91-XXXX-XXXX-XXXXXXXXXXXX", "strength": 0.7 }], "input_images": [{ "type": "image_url", "image_url": "https://.../f7d959e1-4643-XXXX-XXXX-XXXXXXXXXXXX.png" }], "enhance_prompt": false, "check_nsfw": true } }

Request Headers

HeaderDescription
Content-Typeapplication/json
Cache-Controlno-cache
Ocp-Apim-Subscription-KeyYour subscription key for authentication

Response Handling

The AI Model API returns specific HTTP status codes and response bodies to indicate the success or failure of a request. Developers should implement error handling in their applications to manage these responses effectively.

Common Status Codes and Responses

Status CodeDescriptionResponse Body
200Success - The request was successfully processed.{ "success": true, ... }
Bad Request - The request contains invalid parameters or missing fields.{ "error": "Invalid request parameters" }
401Unauthorized - The provided subscription key is missing or invalid.{ "error": "Invalid or missing authentication" }
403Forbidden - The subscription does not have access to this API or action.{ "error": "Access denied for this operation" }
404Not Found - The requested resource or endpoint could not be found.{ "error": "Endpoint not found" }
Too Many Requests - The request rate limit has been exceeded.{ "error": "Rate limit exceeded, please retry later" }
500Internal Server Error - An unexpected error occurred on the server.{ "error": "An unexpected error occurred, please try again later" }

Example Error Response

{
  "error": "Invalid parameters"
}

Retrieving Video Result and URL

After submitting your request, use this endpoint to check status and retrieve results.

Endpoint

POST https://gateway.pixazo.ai/ai-model-api-polling/getGenerationResults

Request Body

{ "job_set_id": "your-job-set-id-here" }
POST https://gateway.pixazo.ai/ai-model-api-polling/getGenerationResults HTTP/1.1
Content-Type: application/json
Cache-Control: no-cache
Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY

{
  "job_set_id": "96ddb2c0-2685-XXXX-XXXX-XXXXXXXXXXXX"
}
import requests
import json

url = "https://gateway.pixazo.ai/ai-model-api-polling/getGenerationResults"

headers = {
    "Content-Type": "application/json",
    "Cache-Control": "no-cache",
    "Ocp-Apim-Subscription-Key": "YOUR_SUBSCRIPTION_KEY"
}

data = {
    "job_set_id": "96ddb2c0-2685-XXXX-XXXX-XXXXXXXXXXXX"
}

response = requests.post(url, headers=headers, json=data)
print(response.json())
const url = 'https://gateway.pixazo.ai/ai-model-api-polling/getGenerationResults';

const data = {
  job_set_id: '96ddb2c0-2685-XXXX-XXXX-XXXXXXXXXXXX'
};

fetch(url, {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Cache-Control': 'no-cache',
    'Ocp-Apim-Subscription-Key': 'YOUR_SUBSCRIPTION_KEY'
  },
  body: JSON.stringify(data)
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
curl -v -X POST "https://gateway.pixazo.ai/ai-model-api-polling/getGenerationResults" -H "Content-Type: application/json" -H "Cache-Control: no-cache" -H "Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY" --data-raw '{
    "job_set_id": "96ddb2c0-2685-XXXX-XXXX-XXXXXXXXXXXX"
}'
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.time.Duration;

public class ApiClient {
    public static void main(String[] args) throws Exception {
        String url = "https://gateway.pixazo.ai/ai-model-api-polling/getGenerationResults";
        
        String json = "{" + "\n" +
        "  \"job_set_id\": \"96ddb2c0-2685-XXXX-XXXX-XXXXXXXXXXXX\"" + "\n" +
        "}";
        
        HttpClient client = HttpClient.newBuilder()
            .connectTimeout(Duration.ofSeconds(10))
            .build();
            
        HttpRequest request = HttpRequest.newBuilder()
            .uri(URI.create(url))
            .header("Content-Type", "application/json")
            .header("Cache-Control", "no-cache")
            .header("Ocp-Apim-Subscription-Key", "YOUR_SUBSCRIPTION_KEY")
            .POST(HttpRequest.BodyPublishers.ofString(json))
            .build();
            
        HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
        System.out.println(response.body());
    }
}
<?php
$url = 'https://gateway.pixazo.ai/ai-model-api-polling/getGenerationResults';

$data = [
    'job_set_id' => '96ddb2c0-2685-XXXX-XXXX-XXXXXXXXXXXX'
];

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Content-Type: application/json',
    'Cache-Control: no-cache',
    'Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY'
]);

$response = curl_exec($ch);
curl_close($ch);

echo $response;
?>

Higgsfield DoP API Pricing

Model Quality Seconds Price (USD)
dop-lite1080p5$0.135
dop-preview1080p5$0.573
dop-turbo1080p5$0.416

Ready to generate Higgsfield DoP API assets?

Start with an API key, then automate your pipeline.