UlazAI developer docs
Status and webhooks
Track async generations
Image generation is asynchronous. Start with /api/v1/generate/,
then poll /api/v1/generate/{generation_id}/ until the job reaches
completed or failed.
curl -X GET https://ulazai.com/api/v1/generate/YOUR_GENERATION_ID/ \
-H "Authorization: Bearer YOUR_API_KEY"
Lifecycle states
Job created and queued.
Provider task is running.
Result image URL is available.
Error returned, credits are refunded.
Status response examples
Processing
{
"success": true,
"data": {
"generation_id": "5a6be42f-4f01-4e80-9e16-8105315f0e62",
"status": "processing",
"estimated_time": "30 seconds",
"prompt": "...",
"message": "Generating your image..."
}
}
Completed
{
"success": true,
"data": {
"generation_id": "5a6be42f-4f01-4e80-9e16-8105315f0e62",
"status": "completed",
"image_url": "https://media.ulazai.com/.../image.png",
"prompt": "...",
"credits_used": 8
}
}
Failed
{
"success": true,
"data": {
"generation_id": "5a6be42f-4f01-4e80-9e16-8105315f0e62",
"status": "failed",
"error_message": "Prompt violates content policy",
"message": "Generation failed. Credits have been refunded."
}
}
Callbacks
Unified endpoint jobs use signed callback URLs internally. Callback handling is managed by UlazAI and does not require client-side setup.
Legacy Nano Banana endpoints also expose webhook processing at:
/nano-banana/webhook/