Skip to content

UlazAI - AI Image & Video Tools

Veo 3 JSON Prompts

Master structured prompts for precise control over AI video generation. Perfect for API reference integration, batch processing, and professional workflows.

JSON Prompt Fundamentals

Why use JSON prompts?

1

Precise Control

Specify exact parameters for consistent, predictable results across multiple generations.

2

API Ready

Perfect for programmatic video generation and automated workflows.

3

Reproducible

Save and reuse successful configurations for batch processing.

4

Version Control

Track changes and collaborate on prompt configurations effectively.

Basic JSON Structure

{
  "prompt": "Your detailed video description",
  "style": "cinematic",
  "camera": {
    "type": "wide_shot",
    "movement": "slow_pan"
  },
  "lighting": "golden_hour",
  "quality": "4k",
  "duration": "10s",
  "aspect_ratio": "16:9"
}

Required: prompt (string)

Optional: All other parameters have defaults

Format: Valid JSON syntax required

Complete Parameter Reference

🎯 Core Parameters

prompt

Main description of the video content

string (required)

style

Overall visual style and aesthetic

"cinematic" | "realistic" | "artistic" | "documentary"

quality

Output resolution and detail level

"4k" | "hd" | "standard" | "high"

duration

Video length specification

"5s" | "10s" | "15s" | "short" | "medium"

📹 Camera Control

camera.type

Shot framing and perspective

"wide_shot" | "close_up" | "medium_shot" | "extreme_wide"

camera.movement

Camera motion and dynamics

"static" | "pan_left" | "pan_right" | "dolly_in" | "crane"

camera.angle

Vertical positioning relative to subject

"eye_level" | "low_angle" | "high_angle" | "birds_eye"

camera.lens

Lens characteristics and focal length

"wide_angle" | "standard" | "telephoto" | "macro"

🎨 Scene Control

lighting

Lighting conditions and mood

"golden_hour" | "blue_hour" | "studio" | "natural" | "dramatic"

mood

Emotional tone and atmosphere

"serene" | "energetic" | "mysterious" | "uplifting" | "dramatic"

color_palette

Color scheme and grading

"warm" | "cool" | "vibrant" | "muted" | "monochrome"

aspect_ratio

Video dimensions and format

"16:9" | "9:16" | "1:1" | "21:9" | "4:3"

JSON Prompt Examples

🎬 Cinematic Scene

{
  "prompt": "Aerial shot of red sports car racing through mountain curves at sunset",
  "style": "cinematic",
  "camera": {
    "type": "aerial",
    "movement": "tracking",
    "angle": "high_angle"
  },
  "lighting": "golden_hour",
  "mood": "dramatic",
  "quality": "4k",
  "duration": "15s",
  "aspect_ratio": "21:9",
  "color_palette": "warm"
}

Use case: Action sequences, car commercials

Key features: Wide cinematic format, aerial tracking

👤 Professional Portrait

{
  "prompt": "Professional headshot of confident businesswoman, warm smile, eye contact",
  "style": "realistic",
  "camera": {
    "type": "close_up",
    "movement": "static",
    "angle": "eye_level",
    "lens": "85mm"
  },
  "lighting": "studio",
  "mood": "professional",
  "quality": "4k",
  "duration": "8s",
  "aspect_ratio": "16:9",
  "color_palette": "neutral"
}

Use case: Corporate videos, LinkedIn profiles

Key features: Studio lighting, portrait lens

📱 Product Showcase

{
  "prompt": "Sleek smartphone rotating on white surface, premium materials visible",
  "style": "commercial",
  "camera": {
    "type": "medium_shot",
    "movement": "orbit",
    "angle": "slightly_low"
  },
  "lighting": "studio",
  "mood": "clean",
  "quality": "4k",
  "duration": "10s",
  "aspect_ratio": "16:9",
  "color_palette": "minimal",
  "background": "clean_white"
}

Use case: Product marketing, e-commerce

Key features: Orbital camera, clean background

🎨 Abstract Motion

{
  "prompt": "Fluid abstract shapes morphing in vibrant neon colors",
  "style": "artistic",
  "camera": {
    "type": "macro",
    "movement": "floating",
    "angle": "dynamic"
  },
  "lighting": "neon",
  "mood": "energetic",
  "quality": "4k",
  "duration": "12s",
  "aspect_ratio": "16:9",
  "color_palette": "vibrant",
  "effects": ["glow", "particle_systems"],
  "speed": "slow_motion"
}

Use case: Music Videos, artistic content

Key features: Special effects, slow motion

🎭 Advanced Multi-Scene JSON

{
  "project": {
    "title": "Brand Story Campaign",
    "total_duration": "45s",
    "aspect_ratio": "16:9",
    "quality": "4k"
  },
  "scenes": [
    {
      "id": "scene_1",
      "prompt": "Wide establishing shot of modern office building at sunrise",
      "style": "cinematic",
      "camera": {
        "type": "extreme_wide",
        "movement": "slow_push_in",
        "angle": "slightly_low"
      },
      "lighting": "golden_hour",
      "duration": "8s",
      "mood": "inspiring"
    },
    {
      "id": "scene_2",
      "prompt": "Medium shot of diverse team collaborating around conference table",
      "style": "realistic",
      "camera": {
        "type": "medium_shot",
        "movement": "subtle_pan",
        "angle": "eye_level"
      },
      "lighting": "natural_office",
      "duration": "12s",
      "mood": "professional"
    },
    {
      "id": "scene_3",
      "prompt": "Close-up of hands typing on laptop, screen reflecting innovation",
      "style": "commercial",
      "camera": {
        "type": "macro",
        "movement": "static",
        "angle": "overhead"
      },
      "lighting": "screen_glow",
      "duration": "10s",
      "mood": "focused"
    }
  ],
  "transitions": {
    "type": "fade",
    "duration": "1s"
  },
  "audio": {
    "style": "corporate_uplifting",
    "volume": "background"
  }
}

Pro tip: Multi-scene JSON allows for complex narratives with precise control over each segment.

API Integration Guide

🌐 HTTP Request Example

curl -X POST https://ulazai.com/api/v1/video/generate \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "Cinematic aerial shot of mountain landscape",
    "style": "cinematic",
    "camera": {
      "type": "aerial",
      "movement": "forward_dolly"
    },
    "quality": "4k",
    "duration": "10s",
    "aspect_ratio": "16:9"
  }'

Response Format

{
  "success": true,
  "job_id": "veo3_abc123def456",
  "status": "processing",
  "estimated_time": "varies by queue",
  "webhook_url": "https://your-app.com/webhook",
  "cost": "returned with the current quote"
}

🐍 Python Integration

import requests
import json

# Your API configuration
API_KEY = "your_api_key_here"
BASE_URL = "https://ulazai.com/api/v1"

# JSON prompt configuration
video_config = {
    "prompt": "Professional product demo video",
    "style": "commercial",
    "camera": {
        "type": "medium_shot",
        "movement": "orbit"
    },
    "lighting": "studio",
    "quality": "4k",
    "duration": "15s"
}

# Send generation request
response = requests.post(
    f"{BASE_URL}/video/generate",
    headers={
        "Authorization": f"Bearer {API_KEY}",
        "Content-Type": "application/json"
    },
    json=video_config
)

result = response.json()
print(f"Job ID: {result['job_id']}")
print(f"Status: {result['status']}")

Status Polling

# Check generation status
status_response = requests.get(
    f"{BASE_URL}/video/status/{job_id}",
    headers={"Authorization": f"Bearer {API_KEY}"}
)

status_data = status_response.json()
if status_data['status'] == 'completed':
    video_url = status_data['video_url']
    print(f"Video ready: {video_url}")
elif status_data['status'] == 'failed':
    print(f"Error: {status_data['error_message']}")

📱 JavaScript/Node.js Example

const axios = require('axios');

class UlazAIClient {
  constructor(apiKey) {
    this.apiKey = apiKey;
    this.baseURL = 'https://ulazai.com/api/v1';
  }

  async generateVideo(config) {
    try {
      const response = await axios.post(`${this.baseURL}/video/generate`, config, {
        headers: {
          'Authorization': `Bearer ${this.apiKey}`,
          'Content-Type': 'application/json'
        }
      });

      return response.data;
    } catch (error) {
      throw new Error(`Generation failed: ${error.response.data.message}`);
    }
  }

  async getVideoStatus(jobId) {
    const response = await axios.get(`${this.baseURL}/video/status/${jobId}`, {
      headers: { 'Authorization': `Bearer ${this.apiKey}` }
    });

    return response.data;
  }
}

// Usage example
const client = new UlazAIClient('your_api_key');

const videoConfig = {
  prompt: "Time lapse of city skyline transition from day to night",
  style: "cinematic",
  camera: { type: "wide_shot", movement: "static" },
  lighting: "day_to_night",
  duration: "20s",
  quality: "4k"
};

client.generateVideo(videoConfig)
  .then(result => console.log('Generation started:', result.job_id))
  .catch(error => console.error('Error:', error.message));

JSON Prompt Best Practices

✅ Structure Guidelines

  • • Always validate JSON syntax before sending
  • • Use consistent parameter naming conventions
  • • Group related parameters logically (camera, lighting)
  • • Include comments in development (strip for production)
  • • Test with minimal parameters first

⚡ Performance Tips

  • • Cache successful configurations for reuse
  • • Use webhooks instead of polling for status
  • • Batch similar requests when possible
  • • Optimize prompt length for faster processing
  • • Monitor credit usage and set alerts

🛡️ Error Handling

  • • Implement retry logic with exponential backoff
  • • Validate parameters before API calls
  • • Handle rate limiting gracefully
  • • Log failures with context for debugging
  • • Provide fallback options for failed generations

🚨 Common JSON Errors & Solutions

❌ Invalid JSON Syntax

{ "prompt": "Test", "quality": "4k", } // Trailing comma
{ "prompt": "Test", "quality": "4k" } // Correct

❌ Invalid Parameter Values

{ "quality": "super_high" } // Invalid value
{ "quality": "4k" } // Valid value

❌ Missing Required Fields

{ "style": "cinematic" } // Missing prompt
{ "prompt": "Test video", "style": "cinematic" }

❌ Conflicting Parameters

{ "mood": "serene", "style": "action" } // Conflicting
{ "mood": "energetic", "style": "action" } // Consistent

Ready to Use JSON Prompts?

Start integrating structured video generation into your applications. Get API access and begin creating with precise control.

Free API credit packages • Professional support • Enterprise options available

Use JSON as a prompt organiser, not a secret Veo syntax

JSON can separate subject, action, camera, setting and audio for your own workflow. Veo still receives prompt content through the supported product or API fields; an invented `veo3_json` schema is not official documentation.

Keep a plain-language version beside the object and validate every field before sending it. Structured prompts help consistency only when the instructions do not contradict each other.

Music Studio Songs, instrumentals and your own lyrics. AI song generator