---
title: "Submit an image generation job"
method: POST
path: "/v2/images/generate"
tags: ["Images"]
---

# Submit an image generation job

`POST /v2/images/generate`

## Request

- Base URL: `https://api.apiframe.ai`
- URL: `https://api.apiframe.ai/v2/images/generate`
- Auth: one of:
  - API key in header `X-API-Key`
  - HTTP bearer

Creates an image generation job. The `model` discriminator selects the family (Midjourney, Flux, Seedream, Ideogram, Imagen, DALL-E, GPT Image, Kling Image, Qwen, Wan, Grok, Reve, Nano Banana, Flux LoRA) and unlocks the matching `<model>Params` block.

## Headers

- `Idempotency-Key` string

## Request body

- union: Discriminated by `model`. Each model gates a specific `<model>Params` block (Midjourney, Flux, Seedream, Ideogram, Imagen, DALL-E, GPT Image, Kling Image, Qwen, Wan, Grok, Reve, Nano Banana, Flux LoRA).
  - object
    - `prompt` string, required
    - `model` 'midjourney', required
    - `webhookUrl` string, uri
    - `webhookEvents` string[]
    - `midjourneyParams` object
      - `aspect_ratio` string
  - object
    - `prompt` string, required
    - `model` 'nano-banana', required
    - `webhookUrl` string, uri
    - `webhookEvents` string[]
    - `nanoBananaParams` object
      - `aspect_ratio` string
      - `output_format` 'jpg' | 'png' | 'webp'
      - `image_input` string[]
      - `resolution` '512px' | '1K' | '2K' | '4K'
      - `google_search` boolean
      - `image_search` boolean
  - object
    - `prompt` string, required
    - `model` 'nano-banana-pro', required
    - `webhookUrl` string, uri
    - `webhookEvents` string[]
    - `nanoBananaParams` object
      - `aspect_ratio` string
      - `output_format` 'jpg' | 'png' | 'webp'
      - `image_input` string[]
      - `resolution` '512px' | '1K' | '2K' | '4K'
      - `google_search` boolean
      - `image_search` boolean
  - object
    - `prompt` string, required
    - `model` 'nano-banana-2', required
    - `webhookUrl` string, uri
    - `webhookEvents` string[]
    - `nanoBananaParams` object
      - `aspect_ratio` string
      - `output_format` 'jpg' | 'png' | 'webp'
      - `image_input` string[]
      - `resolution` '512px' | '1K' | '2K' | '4K'
      - `google_search` boolean
      - `image_search` boolean
  - object
    - `prompt` string, required
    - `model` 'nano-banana-2-lite', required
    - `webhookUrl` string, uri
    - `webhookEvents` string[]
    - `nanoBananaParams` object
      - `aspect_ratio` string
      - `output_format` 'jpg' | 'png' | 'webp'
      - `image_input` string[]
      - `resolution` '512px' | '1K' | '2K' | '4K'
      - `google_search` boolean
      - `image_search` boolean
  - object
    - `prompt` string, required
    - `model` 'flux-1.1-pro', required
    - `webhookUrl` string, uri
    - `webhookEvents` string[]
    - `fluxParams` object
      - `aspect_ratio` string
      - `output_format` 'jpg' | 'png' | 'webp'
      - `output_quality` integer
      - `seed` integer
      - `width` integer
      - `height` integer
      - `image_prompt` string
      - `image_prompt_strength` number
      - `raw` boolean
      - `input_images` string[]
      - `resolution` string
      - `steps` integer
      - `guidance` number
      - `go_fast` boolean
      - `prompt_upsampling` boolean
  - object
    - `prompt` string, required
    - `model` 'flux-1.1-pro-ultra', required
    - `webhookUrl` string, uri
    - `webhookEvents` string[]
    - `fluxParams` object
      - `aspect_ratio` string
      - `output_format` 'jpg' | 'png' | 'webp'
      - `output_quality` integer
      - `seed` integer
      - `width` integer
      - `height` integer
      - `image_prompt` string
      - `image_prompt_strength` number
      - `raw` boolean
      - `input_images` string[]
      - `resolution` string
      - `steps` integer
      - `guidance` number
      - `go_fast` boolean
      - `prompt_upsampling` boolean
  - object
    - `prompt` string, required
    - `model` 'flux-2-pro', required
    - `webhookUrl` string, uri
    - `webhookEvents` string[]
    - `fluxParams` object
      - `aspect_ratio` string
      - `output_format` 'jpg' | 'png' | 'webp'
      - `output_quality` integer
      - `seed` integer
      - `width` integer
      - `height` integer
      - `image_prompt` string
      - `image_prompt_strength` number
      - `raw` boolean
      - `input_images` string[]
      - `steps` integer
      - `guidance` number
      - `go_fast` boolean
      - `prompt_upsampling` boolean
      - `resolution` '0.5MP' | '1MP' | '2MP' | '4MP' | 'match_input_image'
  - object
    - `prompt` string, required
    - `model` 'flux-2-dev', required
    - `webhookUrl` string, uri
    - `webhookEvents` string[]
    - `fluxParams` object
      - `aspect_ratio` string
      - `output_format` 'jpg' | 'png' | 'webp'
      - `output_quality` integer
      - `seed` integer
      - `image_prompt` string
      - `image_prompt_strength` number
      - `raw` boolean
      - `input_images` string[]
      - `steps` integer
      - `guidance` number
      - `go_fast` boolean
      - `prompt_upsampling` boolean
      - `width` integer
      - `height` integer
  - object
    - `prompt` string, required
    - `model` 'flux-2-flex', required
    - `webhookUrl` string, uri
    - `webhookEvents` string[]
    - `fluxParams` object
      - `aspect_ratio` string
      - `output_format` 'jpg' | 'png' | 'webp'
      - `output_quality` integer
      - `seed` integer
      - `width` integer
      - `height` integer
      - `image_prompt` string
      - `image_prompt_strength` number
      - `raw` boolean
      - `input_images` string[]
      - `steps` integer
      - `guidance` number
      - `go_fast` boolean
      - `prompt_upsampling` boolean
      - `resolution` '0.5MP' | '1MP' | '2MP' | '4MP' | 'match_input_image'
  - object
    - `prompt` string, required
    - `model` 'flux-2-max', required
    - `webhookUrl` string, uri
    - `webhookEvents` string[]
    - `fluxParams` object
      - `aspect_ratio` string
      - `output_format` 'jpg' | 'png' | 'webp'
      - `output_quality` integer
      - `seed` integer
      - `width` integer
      - `height` integer
      - `image_prompt` string
      - `image_prompt_strength` number
      - `raw` boolean
      - `input_images` string[]
      - `steps` integer
      - `guidance` number
      - `go_fast` boolean
      - `prompt_upsampling` boolean
      - `resolution` '0.5MP' | '1MP' | '2MP' | '4MP' | 'match_input_image'
  - object
    - `prompt` string, required
    - `model` 'seedream-3', required
    - `webhookUrl` string, uri
    - `webhookEvents` string[]
    - `seedreamParams` object
      - `aspect_ratio` string
      - `seed` integer
      - `size` string
      - `width` integer
      - `height` integer
      - `guidance_scale` number
      - `resolution` string
      - `use_pre_llm` boolean
      - `enhance_prompt` boolean
      - `image_input` string[]
      - `output_format` 'jpg' | 'png'
  - object
    - `prompt` string, required
    - `model` 'seedream-3.1', required
    - `webhookUrl` string, uri
    - `webhookEvents` string[]
    - `seedreamParams` object
      - `aspect_ratio` string
      - `seed` integer
      - `size` string
      - `width` integer
      - `height` integer
      - `guidance_scale` number
      - `resolution` string
      - `use_pre_llm` boolean
      - `enhance_prompt` boolean
      - `image_input` string[]
      - `output_format` 'jpg' | 'png'
  - object
    - `prompt` string, required
    - `model` 'seedream-4', required
    - `webhookUrl` string, uri
    - `webhookEvents` string[]
    - `seedreamParams` object
      - `aspect_ratio` string
      - `seed` integer
      - `size` string
      - `width` integer
      - `height` integer
      - `guidance_scale` number
      - `resolution` string
      - `use_pre_llm` boolean
      - `enhance_prompt` boolean
      - `image_input` string[]
      - `output_format` 'jpg' | 'png'
  - object
    - `prompt` string, required
    - `model` 'seedream-4.5', required
    - `webhookUrl` string, uri
    - `webhookEvents` string[]
    - `seedreamParams` object
      - `aspect_ratio` string
      - `seed` integer
      - `size` string
      - `width` integer
      - `height` integer
      - `guidance_scale` number
      - `resolution` string
      - `use_pre_llm` boolean
      - `enhance_prompt` boolean
      - `image_input` string[]
      - `output_format` 'jpg' | 'png'
  - object
    - `prompt` string, required
    - `model` 'seedream-5-lite', required
    - `webhookUrl` string, uri
    - `webhookEvents` string[]
    - `seedreamParams` object
      - `aspect_ratio` string
      - `seed` integer
      - `size` string
      - `width` integer
      - `height` integer
      - `guidance_scale` number
      - `resolution` string
      - `use_pre_llm` boolean
      - `enhance_prompt` boolean
      - `image_input` string[]
      - `output_format` 'jpg' | 'png'
  - object
    - `prompt` string, required
    - `model` 'seedream-5-pro', required
    - `webhookUrl` string, uri
    - `webhookEvents` string[]
    - `seedreamParams` object
      - `aspect_ratio` string
      - `seed` integer
      - `size` string
      - `width` integer
      - `height` integer
      - `guidance_scale` number
      - `resolution` string
      - `use_pre_llm` boolean
      - `enhance_prompt` boolean
      - `image_input` string[]
      - `output_format` 'jpg' | 'png'
  - object
    - `prompt` string, required
    - `model` 'ideogram-v2', required
    - `webhookUrl` string, uri
    - `webhookEvents` string[]
    - `ideogramParams` object
      - `aspect_ratio` string
      - `resolution` string
      - `seed` integer
      - `style_type` string
      - `magic_prompt_option` 'Auto' | 'On' | 'Off'
      - `negative_prompt` string
      - `image` string
      - `mask` string
      - `style_preset` string
      - `style_reference_images` string[]
      - `rendering_speed` 'default' | 'turbo' | 'quality'
      - `character_reference_image` string
  - object
    - `prompt` string, required
    - `model` 'ideogram-v2-turbo', required
    - `webhookUrl` string, uri
    - `webhookEvents` string[]
    - `ideogramParams` object
      - `aspect_ratio` string
      - `resolution` string
      - `seed` integer
      - `style_type` string
      - `magic_prompt_option` 'Auto' | 'On' | 'Off'
      - `negative_prompt` string
      - `image` string
      - `mask` string
      - `style_preset` string
      - `style_reference_images` string[]
      - `rendering_speed` 'default' | 'turbo' | 'quality'
      - `character_reference_image` string
  - object
    - `prompt` string, required
    - `model` 'ideogram-v2a', required
    - `webhookUrl` string, uri
    - `webhookEvents` string[]
    - `ideogramParams` object
      - `aspect_ratio` string
      - `resolution` string
      - `seed` integer
      - `style_type` string
      - `magic_prompt_option` 'Auto' | 'On' | 'Off'
      - `negative_prompt` string
      - `image` string
      - `mask` string
      - `style_preset` string
      - `style_reference_images` string[]
      - `rendering_speed` 'default' | 'turbo' | 'quality'
      - `character_reference_image` string
  - object
    - `prompt` string, required
    - `model` 'ideogram-v2a-turbo', required
    - `webhookUrl` string, uri
    - `webhookEvents` string[]
    - `ideogramParams` object
      - `aspect_ratio` string
      - `resolution` string
      - `seed` integer
      - `style_type` string
      - `magic_prompt_option` 'Auto' | 'On' | 'Off'
      - `negative_prompt` string
      - `image` string
      - `mask` string
      - `style_preset` string
      - `style_reference_images` string[]
      - `rendering_speed` 'default' | 'turbo' | 'quality'
      - `character_reference_image` string
  - object
    - `prompt` string, required
    - `model` 'ideogram-v3-balanced', required
    - `webhookUrl` string, uri
    - `webhookEvents` string[]
    - `ideogramParams` object
      - `aspect_ratio` string
      - `resolution` string
      - `seed` integer
      - `style_type` string
      - `magic_prompt_option` 'Auto' | 'On' | 'Off'
      - `negative_prompt` string
      - `image` string
      - `mask` string
      - `style_preset` string
      - `style_reference_images` string[]
      - `rendering_speed` 'default' | 'turbo' | 'quality'
      - `character_reference_image` string
  - object
    - `prompt` string, required
    - `model` 'ideogram-v3-turbo', required
    - `webhookUrl` string, uri
    - `webhookEvents` string[]
    - `ideogramParams` object
      - `aspect_ratio` string
      - `resolution` string
      - `seed` integer
      - `style_type` string
      - `magic_prompt_option` 'Auto' | 'On' | 'Off'
      - `negative_prompt` string
      - `image` string
      - `mask` string
      - `style_preset` string
      - `style_reference_images` string[]
      - `rendering_speed` 'default' | 'turbo' | 'quality'
      - `character_reference_image` string
  - object
    - `prompt` string, required
    - `model` 'ideogram-v3-quality', required
    - `webhookUrl` string, uri
    - `webhookEvents` string[]
    - `ideogramParams` object
      - `aspect_ratio` string
      - `resolution` string
      - `seed` integer
      - `style_type` string
      - `magic_prompt_option` 'Auto' | 'On' | 'Off'
      - `negative_prompt` string
      - `image` string
      - `mask` string
      - `style_preset` string
      - `style_reference_images` string[]
      - `rendering_speed` 'default' | 'turbo' | 'quality'
      - `character_reference_image` string
  - object
    - `prompt` string, required
    - `model` 'ideogram-v4-balanced', required
    - `webhookUrl` string, uri
    - `webhookEvents` string[]
    - `ideogramParams` object
      - `aspect_ratio` string
      - `resolution` string
      - `seed` integer
      - `style_type` string
      - `magic_prompt_option` 'Auto' | 'On' | 'Off'
      - `negative_prompt` string
      - `image` string
      - `mask` string
      - `style_preset` string
      - `style_reference_images` string[]
      - `rendering_speed` 'default' | 'turbo' | 'quality'
      - `character_reference_image` string
  - object
    - `prompt` string, required
    - `model` 'ideogram-v4-turbo', required
    - `webhookUrl` string, uri
    - `webhookEvents` string[]
    - `ideogramParams` object
      - `aspect_ratio` string
      - `resolution` string
      - `seed` integer
      - `style_type` string
      - `magic_prompt_option` 'Auto' | 'On' | 'Off'
      - `negative_prompt` string
      - `image` string
      - `mask` string
      - `style_preset` string
      - `style_reference_images` string[]
      - `rendering_speed` 'default' | 'turbo' | 'quality'
      - `character_reference_image` string
  - object
    - `prompt` string, required
    - `model` 'ideogram-v4-quality', required
    - `webhookUrl` string, uri
    - `webhookEvents` string[]
    - `ideogramParams` object
      - `aspect_ratio` string
      - `resolution` string
      - `seed` integer
      - `style_type` string
      - `magic_prompt_option` 'Auto' | 'On' | 'Off'
      - `negative_prompt` string
      - `image` string
      - `mask` string
      - `style_preset` string
      - `style_reference_images` string[]
      - `rendering_speed` 'default' | 'turbo' | 'quality'
      - `character_reference_image` string
  - object
    - `prompt` string, required
    - `model` 'ideogram-character', required
    - `webhookUrl` string, uri
    - `webhookEvents` string[]
    - `ideogramParams` object, required
      - `aspect_ratio` string
      - `resolution` string
      - `seed` integer
      - `style_type` string
      - `magic_prompt_option` 'Auto' | 'On' | 'Off'
      - `negative_prompt` string
      - `image` string
      - `mask` string
      - `style_preset` string
      - `style_reference_images` string[]
      - `rendering_speed` 'default' | 'turbo' | 'quality'
      - `character_reference_image` string, required
  - object
    - `prompt` string, required
    - `model` 'stable-diffusion-3.5-large', required
    - `webhookUrl` string, uri
    - `webhookEvents` string[]
    - `stableDiffusionParams` object
      - `aspect_ratio` '1:1' | '16:9' | '21:9' | '3:2' | '2:3' | '4:5' | '5:4' | '9:16' | '9:21'
      - `cfg` number
      - `steps` integer
      - `seed` integer
      - `negative_prompt` string
      - `image` string
      - `prompt_strength` number
      - `output_format` 'webp' | 'jpg' | 'png'
      - `output_quality` integer
  - object
    - `prompt` string, required
    - `model` 'stable-diffusion-3.5-large-turbo', required
    - `webhookUrl` string, uri
    - `webhookEvents` string[]
    - `stableDiffusionParams` object
      - `aspect_ratio` '1:1' | '16:9' | '21:9' | '3:2' | '2:3' | '4:5' | '5:4' | '9:16' | '9:21'
      - `cfg` number
      - `steps` integer
      - `seed` integer
      - `negative_prompt` string
      - `image` string
      - `prompt_strength` number
      - `output_format` 'webp' | 'jpg' | 'png'
      - `output_quality` integer
  - object
    - `prompt` string, required
    - `model` 'stable-diffusion-3.5-medium', required
    - `webhookUrl` string, uri
    - `webhookEvents` string[]
    - `stableDiffusionParams` object
      - `aspect_ratio` '1:1' | '16:9' | '21:9' | '3:2' | '2:3' | '4:5' | '5:4' | '9:16' | '9:21'
      - `cfg` number
      - `steps` integer
      - `seed` integer
      - `negative_prompt` string
      - `image` string
      - `prompt_strength` number
      - `output_format` 'webp' | 'jpg' | 'png'
      - `output_quality` integer
  - object
    - `prompt` string, required
    - `model` 'stable-diffusion-3', required
    - `webhookUrl` string, uri
    - `webhookEvents` string[]
    - `stableDiffusionParams` object
      - `aspect_ratio` '1:1' | '16:9' | '21:9' | '3:2' | '2:3' | '4:5' | '5:4' | '9:16' | '9:21'
      - `cfg` number
      - `steps` integer
      - `seed` integer
      - `negative_prompt` string
      - `image` string
      - `prompt_strength` number
      - `output_format` 'webp' | 'jpg' | 'png'
      - `output_quality` integer
  - object
    - `prompt` string, required
    - `model` 'imagen-3', required
    - `webhookUrl` string, uri
    - `webhookEvents` string[]
    - `imagenParams` object
      - `aspect_ratio` '1:1' | '9:16' | '16:9' | '3:4' | '4:3'
      - `output_format` 'jpg' | 'png'
      - `image_size` '1K' | '2K'
  - object
    - `prompt` string, required
    - `model` 'imagen-3-fast', required
    - `webhookUrl` string, uri
    - `webhookEvents` string[]
    - `imagenParams` object
      - `aspect_ratio` '1:1' | '9:16' | '16:9' | '3:4' | '4:3'
      - `output_format` 'jpg' | 'png'
      - `image_size` '1K' | '2K'
  - object
    - `prompt` string, required
    - `model` 'imagen-4', required
    - `webhookUrl` string, uri
    - `webhookEvents` string[]
    - `imagenParams` object
      - `aspect_ratio` '1:1' | '9:16' | '16:9' | '3:4' | '4:3'
      - `output_format` 'jpg' | 'png'
      - `image_size` '1K' | '2K'
  - object
    - `prompt` string, required
    - `model` 'imagen-4-ultra', required
    - `webhookUrl` string, uri
    - `webhookEvents` string[]
    - `imagenParams` object
      - `aspect_ratio` '1:1' | '9:16' | '16:9' | '3:4' | '4:3'
      - `output_format` 'jpg' | 'png'
      - `image_size` '1K' | '2K'
  - object
    - `prompt` string, required
    - `model` 'imagen-4-fast', required
    - `webhookUrl` string, uri
    - `webhookEvents` string[]
    - `imagenParams` object
      - `aspect_ratio` '1:1' | '9:16' | '16:9' | '3:4' | '4:3'
      - `output_format` 'jpg' | 'png'
      - `image_size` '1K' | '2K'
  - object
    - `prompt` string, required
    - `model` 'dall-e-3', required
    - `webhookUrl` string, uri
    - `webhookEvents` string[]
    - `dalleParams` object
      - `aspect_ratio` '1:1' | '3:2' | '2:3'
      - `style` 'vivid' | 'natural'
  - object
    - `prompt` string, required
    - `model` 'dall-e-2', required
    - `webhookUrl` string, uri
    - `webhookEvents` string[]
    - `dalleParams` object
      - `aspect_ratio` '1:1' | '3:2' | '2:3'
      - `style` 'vivid' | 'natural'
  - object
    - `prompt` string, required
    - `model` 'gpt-image-1.5', required
    - `webhookUrl` string, uri
    - `webhookEvents` string[]
    - `gptImageParams` object
      - `quality` 'low' | 'medium' | 'high' | 'auto'
      - `aspect_ratio` '1:1' | '3:2' | '2:3'
      - `output_format` 'png' | 'jpeg' | 'webp'
      - `background` 'auto' | 'transparent' | 'opaque'
      - `input_images` string[], nullable
      - `input_fidelity` 'low' | 'high'
      - `number_of_images` integer
  - object
    - `prompt` string, required
    - `model` 'gpt-image-2', required
    - `webhookUrl` string, uri
    - `webhookEvents` string[]
    - `gptImage2Params` object
      - `quality` 'low' | 'medium' | 'high' | 'auto'
      - `aspect_ratio` '1:1' | '3:2' | '2:3'
      - `output_format` 'png' | 'jpeg' | 'webp'
      - `background` 'auto' | 'opaque'
      - `moderation` 'auto' | 'low'
      - `input_images` string[], nullable
      - `number_of_images` integer
  - object
    - `prompt` string, required
    - `model` 'kling-image', required
    - `webhookUrl` string, uri
    - `webhookEvents` string[]
    - `klingImageParams` object
      - `model_name` 'kling-v1' | 'kling-v1-5' | 'kling-v2'
      - `negative_prompt` string
      - `image` string
      - `image_fidelity` number
      - `n` integer
      - `aspect_ratio` '16:9' | '9:16' | '1:1' | '4:3' | '3:4' | '3:2' | '2:3'
  - object
    - `prompt` string, required
    - `model` 'qwen-image', required
    - `webhookUrl` string, uri
    - `webhookEvents` string[]
    - `qwenImageParams` object
      - `task_type` 'text-to-image' | 'image-to-image' | 'image-edit'
      - `image_url` string
      - `image_size` 'square' | 'square_hd' | 'portrait_4_3' | 'portrait_16_9' | 'landscape_4_3' | 'landscape_16_9'
      - `negative_prompt` string
      - `output_format` 'png' | 'jpeg'
      - `seed` integer
      - `num_inference_steps` integer
      - `guidance_scale` number
      - `acceleration` 'none' | 'regular' | 'high'
      - `strength` number
      - `num_images` integer
  - object
    - `prompt` string, required
    - `model` 'qwen-image-2', required
    - `webhookUrl` string, uri
    - `webhookEvents` string[]
    - `qwenImage2Params` object
      - `image` string
      - `aspect_ratio` '1:1' | '2:3' | '3:2' | '3:4' | '4:3' | '9:16' | '16:9' | '21:9' | '2:1' | '1:2'
      - `negative_prompt` string
      - `seed` integer
  - object
    - `prompt` string, required
    - `model` 'qwen-image-2-pro', required
    - `webhookUrl` string, uri
    - `webhookEvents` string[]
    - `qwenImage2Params` object
      - `image` string
      - `aspect_ratio` '1:1' | '2:3' | '3:2' | '3:4' | '4:3' | '9:16' | '16:9' | '21:9' | '2:1' | '1:2'
      - `negative_prompt` string
      - `seed` integer
  - object
    - `prompt` string, required
    - `model` 'wan-image-2.6', required
    - `webhookUrl` string, uri
    - `webhookEvents` string[]
    - `wanImageParams` object
      - `image` string
      - `aspect_ratio` '1:1' | '2:3' | '3:2' | '3:4' | '4:3' | '9:16' | '16:9' | '21:9'
      - `negative_prompt` string
      - `seed` integer
      - `prompt_extend` boolean
  - object
    - `prompt` string, required
    - `model` 'wan-image-2.7', required
    - `webhookUrl` string, uri
    - `webhookEvents` string[]
    - `wanImage27Params` object
      - `image` string
      - `aspect_ratio` '1:1' | '2:3' | '3:2' | '3:4' | '4:3' | '9:16' | '16:9' | '21:9'
      - `seed` integer
      - `thinking_mode` boolean
  - object
    - `prompt` string, required
    - `model` 'wan-image-2.7-pro', required
    - `webhookUrl` string, uri
    - `webhookEvents` string[]
    - `wanImage27Params` object
      - `image` string
      - `aspect_ratio` '1:1' | '2:3' | '3:2' | '3:4' | '4:3' | '9:16' | '16:9' | '21:9'
      - `seed` integer
      - `thinking_mode` boolean
  - object
    - `prompt` string, required
    - `model` 'grok-imagine-image', required
    - `webhookUrl` string, uri
    - `webhookEvents` string[]
    - `grokImagineParams` object
      - `image` string
      - `aspect_ratio` '1:1' | '2:3' | '3:2' | '16:9' | '9:16'
  - object
    - `prompt` string, required
    - `model` 'grok-image', required
    - `webhookUrl` string, uri
    - `webhookEvents` string[]
    - `grokImageParams` object
      - `image` string
      - `aspect_ratio` 'auto' | '1:1' | '16:9' | '9:16' | '4:3' | '3:4' | '3:2' | '2:3' | '2:1' | '1:2' | '19.5:9' | '9:19.5' | '20:9' | '9:20'
      - `resolution` '1k' | '2k'
      - `quality` 'low' | 'medium'
  - object
    - `prompt` string, required
    - `model` 'reve-create', required
    - `webhookUrl` string, uri
    - `webhookEvents` string[]
    - `reveParams` object
      - `aspect_ratio` '16:9' | '9:16' | '3:2' | '2:3' | '4:3' | '3:4' | '1:1'
      - `seed` integer
      - `version` string
  - object
    - `prompt` string, required
    - `model` 'flux-lora', required
    - `webhookUrl` string, uri
    - `webhookEvents` string[]
    - `fluxLoraParams` object, required
      - `loraId` string, uuid, required
      - `num_outputs` integer
      - `aspect_ratio` '1:1' | '16:9' | '9:16' | '4:3' | '3:4' | '3:2' | '2:3'
      - `output_format` 'png' | 'jpg' | 'webp'
      - `lora_strength` number
      - `guidance_scale` number
      - `num_inference_steps` integer
      - `seed` integer

## Response `202`

Job accepted and queued. Track via `GET /v2/jobs/{id}` or webhook.

- JobAccepted: Returned by every successful job submission.
  - `jobId` string, uuid, required
  - `status` 'QUEUED' | 'PROCESSING' | 'COMPLETED' | 'FAILED', required: Status at the moment the job record was persisted. Almost always `QUEUED`; idempotent replays may return the original status.

## Other responses

- `400`: Request body failed validation.
- `401`: Authentication failed (missing / invalid API key).
- `402`: Team has insufficient credits to run this model.
- `403`: Authenticated but the API key is inactive or lacks permission.
- `429`: Rate limit exceeded. Retry after the `Retry-After` seconds.
- `503`: Service temporarily unavailable (queue / DB outage). Retry with backoff.

---

[API](https://skmtc.dev/apiframe/apis/apiframe-api.md) · [All operations](https://skmtc.dev/apiframe/apis/apiframe-api/llms.txt) · [OpenAPI document](https://skmtc.dev/apiframe/apis/apiframe-api/revisions/ba1a4c26c86a?raw)
