Veo 3 JSON Prompts

Master structured prompts for precise control over AI video generation. Perfect for API 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": "45s",
  "webhook_url": "https://your-app.com/webhook",
  "cost": {
    "credits": 25,
    "remaining_balance": 975
  }
}

🐍 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 credits • Professional support • Enterprise options available