curl -X GET "https://app.hoox.video/api/public/v1/generation/status/run_abcd1234" \
-H "Authorization: Bearer your_api_key"
import requests
job_id = "run_abcd1234"
url = f"https://app.hoox.video/api/public/v1/generation/status/{job_id}"
headers = {
"Authorization": "Bearer your_api_key"
}
response = requests.get(url, headers=headers)
print(response.json())
const jobId = "run_abcd1234";
const response = await fetch(`https://app.hoox.video/api/public/v1/generation/status/${job_id}`, {
method: 'GET',
headers: {
'Authorization': 'Bearer your_api_key'
}
});
const data = await response.json();
console.log(data);
{
"job_id": "run_abcd1234",
"status": "pending",
"progress_step": 0,
"current_step": "QUEUE"
}
{
"job_id": "run_abcd1234",
"status": "processing",
"progress_step": 45,
"current_step": "VOICE_GENERATION"
}
{
"job_id": "run_abcd1234",
"status": "completed",
"progress_step": 100,
"current_step": "REDIRECTING",
"result": {
"video_id": "vid_xyz789",
"duration": 62,
"cost": 78,
"created_at": "2024-01-15T10:30:00Z"
}
}
{
"job_id": "run_abcd1234",
"status": "failed",
"progress_step": 25,
"current_step": "VOICE_GENERATION",
"error": {
"code": "VOICE_GENERATION_FAILED",
"message": "Failed to generate voice audio from the provided script"
}
}
{
"error": "Job not found",
"code": "JOB_NOT_FOUND"
}
{
"error": "Job does not belong to your space",
"code": "UNAUTHORIZED_JOB"
}
Generation
Check Generation Status
Check the status of a video generation job
GET
/
api
/
public
/
v1
/
generation
/
status
/
{jobId}
curl -X GET "https://app.hoox.video/api/public/v1/generation/status/run_abcd1234" \
-H "Authorization: Bearer your_api_key"
import requests
job_id = "run_abcd1234"
url = f"https://app.hoox.video/api/public/v1/generation/status/{job_id}"
headers = {
"Authorization": "Bearer your_api_key"
}
response = requests.get(url, headers=headers)
print(response.json())
const jobId = "run_abcd1234";
const response = await fetch(`https://app.hoox.video/api/public/v1/generation/status/${job_id}`, {
method: 'GET',
headers: {
'Authorization': 'Bearer your_api_key'
}
});
const data = await response.json();
console.log(data);
{
"job_id": "run_abcd1234",
"status": "pending",
"progress_step": 0,
"current_step": "QUEUE"
}
{
"job_id": "run_abcd1234",
"status": "processing",
"progress_step": 45,
"current_step": "VOICE_GENERATION"
}
{
"job_id": "run_abcd1234",
"status": "completed",
"progress_step": 100,
"current_step": "REDIRECTING",
"result": {
"video_id": "vid_xyz789",
"duration": 62,
"cost": 78,
"created_at": "2024-01-15T10:30:00Z"
}
}
{
"job_id": "run_abcd1234",
"status": "failed",
"progress_step": 25,
"current_step": "VOICE_GENERATION",
"error": {
"code": "VOICE_GENERATION_FAILED",
"message": "Failed to generate voice audio from the provided script"
}
}
{
"error": "Job not found",
"code": "JOB_NOT_FOUND"
}
{
"error": "Job does not belong to your space",
"code": "UNAUTHORIZED_JOB"
}
Overview
This endpoint allows you to check the current status of a video generation job. Use this to monitor progress and retrieve the final video when generation is complete.Authentication
This endpoint requires API key authentication. Include your API key in the
Authorization header.Path Parameters
string
required
The job ID returned from the
/generation/start endpoint.Response
string
The unique identifier for the generation job.
string
Current job status:
pending: Job is queued and waiting to startprocessing: Generation is in progresscompleted: Generation finished successfullyfailed: Generation failed
number
Progress percentage (0-100).
string
Description of the current processing step.
object
object
Example
curl -X GET "https://app.hoox.video/api/public/v1/generation/status/run_abcd1234" \
-H "Authorization: Bearer your_api_key"
import requests
job_id = "run_abcd1234"
url = f"https://app.hoox.video/api/public/v1/generation/status/{job_id}"
headers = {
"Authorization": "Bearer your_api_key"
}
response = requests.get(url, headers=headers)
print(response.json())
const jobId = "run_abcd1234";
const response = await fetch(`https://app.hoox.video/api/public/v1/generation/status/${job_id}`, {
method: 'GET',
headers: {
'Authorization': 'Bearer your_api_key'
}
});
const data = await response.json();
console.log(data);
{
"job_id": "run_abcd1234",
"status": "pending",
"progress_step": 0,
"current_step": "QUEUE"
}
{
"job_id": "run_abcd1234",
"status": "processing",
"progress_step": 45,
"current_step": "VOICE_GENERATION"
}
{
"job_id": "run_abcd1234",
"status": "completed",
"progress_step": 100,
"current_step": "REDIRECTING",
"result": {
"video_id": "vid_xyz789",
"duration": 62,
"cost": 78,
"created_at": "2024-01-15T10:30:00Z"
}
}
{
"job_id": "run_abcd1234",
"status": "failed",
"progress_step": 25,
"current_step": "VOICE_GENERATION",
"error": {
"code": "VOICE_GENERATION_FAILED",
"message": "Failed to generate voice audio from the provided script"
}
}
{
"error": "Job not found",
"code": "JOB_NOT_FOUND"
}
{
"error": "Job does not belong to your space",
"code": "UNAUTHORIZED_JOB"
}
Polling Best Practices
Recommended polling strategy:
- Start with a 5-second interval for the first minute
- Increase to 10-second intervals after 1 minute
- Increase to 30-second intervals after 5 minutes
- Use webhooks for more efficient status updates
Next Steps
Once your video generation is complete (status: "completed"):
- Note the
video_idfrom the result - Use the
/export/startendpoint to export your video in the desired format - Monitor the export progress with
/export/status/{job_id}
Error Codes
Common error codes you might encounter:JOB_NOT_FOUND: Job ID doesn’t existUNAUTHORIZED_JOB: Job doesn’t belong to your spaceGENERATION_FAILED: General generation failureSCRIPT_GENERATION_FAILED: Failed to generate script from promptVOICE_GENERATION_FAILED: Voice processing failedAVATAR_PROCESSING_FAILED: Avatar preparation failedMEDIA_PROCESSING_FAILED: Media file processing failedASSEMBLY_FAILED: Final video assembly failed
Was this page helpful?

