Skip to main content

Before You Begin

1

Get API Key

Log in to LaoZhang API Console to create an API Key
Important: Veo-3.1 models require pay-per-use tokens, not pay-as-you-go tokens. Please select “pay-per-use” type when creating tokens.
2

Ensure Account Balance

Make sure your account has sufficient balance. Veo-3.1 models charge per request (0.150.15-0.25/request)

Your First Request

Text-to-Video Example

Use cURL to quickly test text-to-video functionality:
curl --location --request POST 'https://api.laozhang.ai/v1/chat/completions' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer sk-YOUR_API_KEY' \
--data-raw '{
    "messages": [{
        "role": "user",
        "content": [
            {
                "type": "text",
                "text": "Generate a video of two cats and a dog fighting"
            }
        ]
    }],
    "model": "veo-3.1",
    "stream": true,
    "n": 2
}'
Parameter explanation:
  • model: Select veo-3.1 series model
  • stream: Set to true to enable streaming response
  • n: Number of results to generate, setting to 2 will generate 2 different videos

Image-to-Video Example

Use images as reference to generate videos:
curl --location --request POST 'https://api.laozhang.ai/v1/chat/completions' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer sk-YOUR_API_KEY' \
--data-raw '{
    "messages": [{
        "role": "user",
        "content": [
            {
                "type": "text",
                "text": "Generate a smooth transition video based on two images"
            },
            {
                "type": "image_url",
                "image_url": {
                    "url": "https://example.com/start-frame.jpg"
                }
            },
            {
                "type": "image_url",
                "image_url": {
                    "url": "https://example.com/end-frame.jpg"
                }
            }
        ]
    }],
    "model": "veo-3.1-fl",
    "stream": true,
    "n": 2
}'

Python Quick Example

Install OpenAI SDK

pip install openai

Text-to-Video Code

from openai import OpenAI

client = OpenAI(
    api_key="sk-YOUR_API_KEY",
    base_url="https://api.laozhang.ai/v1"
)

response = client.chat.completions.create(
    model="veo-3.1",
    messages=[{
        "role": "user",
        "content": [
            {
                "type": "text",
                "text": "Generate a video of a cute kitten playing on the grass"
            }
        ]
    }],
    stream=True,
    n=1
)

for chunk in response:
    if chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end='')

Image-to-Video Code

from openai import OpenAI

client = OpenAI(
    api_key="sk-YOUR_API_KEY",
    base_url="https://api.laozhang.ai/v1"
)

response = client.chat.completions.create(
    model="veo-3.1-fl",
    messages=[{
        "role": "user",
        "content": [
            {
                "type": "text",
                "text": "Generate smooth transition animation based on images"
            },
            {
                "type": "image_url",
                "image_url": {
                    "url": "https://example.com/image1.jpg"
                }
            },
            {
                "type": "image_url",
                "image_url": {
                    "url": "https://example.com/image2.jpg"
                }
            }
        ]
    }],
    stream=True
)

for chunk in response:
    if chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end='')

Node.js Quick Example

Install OpenAI SDK

npm install openai

Basic Usage

import OpenAI from 'openai';

const client = new OpenAI({
  apiKey: 'sk-YOUR_API_KEY',
  baseURL: 'https://api.laozhang.ai/v1'
});

async function generateVideo() {
  const stream = await client.chat.completions.create({
    model: 'veo-3.1',
    messages: [{
      role: 'user',
      content: [
        {
          type: 'text',
          text: 'Generate a video of sunset by the sea'
        }
      ]
    }],
    stream: true,
    n: 1
  });

  for await (const chunk of stream) {
    const content = chunk.choices[0]?.delta?.content;
    if (content) {
      process.stdout.write(content);
    }
  }
}

generateVideo().catch(console.error);

Streaming Response Handling

Veo-3.1 supports streaming responses for real-time generation progress and results:
  • Python
  • Node.js
  • cURL
response = client.chat.completions.create(
    model="veo-3.1",
    messages=[...],
    stream=True
)

for chunk in response:
    if chunk.choices[0].delta.content:
        content = chunk.choices[0].delta.content
        print(f"Received data: {content}")

Image Format Support

Veo-3.1 supports multiple image input formats:
  • URL Reference
  • Base64 Encoding
{
  "type": "image_url",
  "image_url": {
    "url": "https://example.com/image.jpg"
  }
}
Image Requirements:
  • Supported formats: JPEG, PNG, WebP
  • Maximum size: 10MB
  • Recommended resolution: 1024x1024 or higher
  • Maximum images: 2 (start frame + end frame)

Common Model Selection

Choose the appropriate model based on your needs:

Quick Testing

Recommended: veo-3.1-fastSuitable for quickly validating ideas, cheap price ($0.15/request)

Standard Quality

Recommended: veo-3.1Balances quality and cost, suitable for most scenarios ($0.25/request)

Image-to-Video

Recommended: veo-3.1-flGenerate videos or transition animations based on images ($0.25/request)

Landscape Video

Recommended: veo-3.1-landscapeProfessional landscape format, suitable for film production ($0.25/request)

Error Handling

from openai import OpenAI, OpenAIError

client = OpenAI(
    api_key="sk-YOUR_API_KEY",
    base_url="https://api.laozhang.ai/v1"
)

try:
    response = client.chat.completions.create(
        model="veo-3.1",
        messages=[{
            "role": "user",
            "content": [{"type": "text", "text": "Generate video"}]
        }],
        stream=True
    )

    for chunk in response:
        if chunk.choices[0].delta.content:
            print(chunk.choices[0].delta.content)

except OpenAIError as e:
    print(f"API error: {e}")
except Exception as e:
    print(f"Other error: {e}")

Complete Examples

View Complete Code Examples

Includes complete example code in Python, Node.js, Go, Java and more

Next Steps

Get Help