Veo V2

Generate one or more AI images from a text prompt, with optional reference images. Returns immediately with 202 Accepted.

Example

curl -X POST https://genaipro.io/api/v2/veo/create-image \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -F "prompt=A futuristic city at night" \
  -F "number_of_images=2"

Example — override model

curl -X POST https://genaipro.io/api/v2/veo/create-image \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -F "prompt=A futuristic city at night" \
  -F "number_of_images=2" \
  -F "model=nano_banana_2"

Rate limit: 30 requests/minute — shared across all four Veo creation endpoints.

post/v2/veo/create-image

Request

Request body multipart/form-data

promptstring required

Text description of the image to generate

reference_imagesstring[]

Optional reference image files (0–5 images, each max 20MB)

aspect_ratio'IMAGE_ASPECT_RATIO_LANDSCAPE' | 'IMAGE_ASPECT_RATIO_LANDSCAPE_FOUR_THREE' | 'IMAGE_ASPECT_RATIO_SQUARE' | 'IMAGE_ASPECT_RATIO_PORTRAIT_THREE_FOUR' | 'IMAGE_ASPECT_RATIO_PORTRAIT'

Image aspect ratio. SQUARE = 1:1, LANDSCAPE = 16:9, LANDSCAPE_FOUR_THREE = 4:3, PORTRAIT = 9:16, PORTRAIT_THREE_FOUR = 3:4.

number_of_imagesstring

Number of images to generate (1–4). Sent as string in form data.

model'nano_banana_pro' | 'nano_banana_2' | 'imagen_4'

Image model:

  • nano_banana_pro — Nano Banana Pro (highest quality, default)
  • nano_banana_2 — Nano Banana 2.1 (faster, lighter)
  • imagen_4 — Nano Banana 2 Lite (fastest, lowest cost; legacy id kept for compatibility)
upscale_resolution'' | 'none' | '2k' | '4k'

Optional upscale resolution. Leave empty or none to disable upscale.

callback_urlstring

Optional webhook URL. When the task reaches a terminal state (completed or failed), GenAIPro POSTs the task status (same shape as GET /v2/veo/tasks/{id}) to this URL.

Example request

{
  "model": "nano_banana_2"
}

Response

Task accepted for processing

idstring

Task ID

promptstring

The prompt used for generation

file_urlsstring[]

URLs of the generated files (empty while processing). Public; deleted about 90 days after creation (then 404) — download them yourself.

status'processing' | 'completed' | 'failed'

Task status

errorstring

Error message — present when status is failed, or when status is completed but some videos failed (see failed_slots)

modelstring

GTMage-2.5 tasks: gtmage-2.5, or <model>-<quality>-<resolution> for Sunburst / Flare (e.g. gtmage-2.5-sunburst-high-2k)

aspect_ratiostring

GTMage-2.5 tasks: the requested size

created_atstring date-time

Timestamp when the task was created

Example response

{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "prompt": "A cat walking on the beach at sunset",
  "file_urls": []
}

Changes

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status