Generate an image
Create an image generation job. Also handles image editing (send a
source image in files with an edit-capable model like
nano_banana_pro/edit) and image upscaling (clarity_upscaler,
aura_sr, topaz, …).
Returns 202 with a queued job. Poll GET /jobs/{id} until completed.
Authorizations
varg API key (varg_...). Get one at app.varg.ai
or run bunx vargai login. App sessions may alternatively send a
Supabase JWT.
Headers
Any unique string. Retrying a request with the same key returns the existing job (HTTP 200) instead of creating and charging a new one (HTTP 202).
Body
Model id (flux_schnell) or provider-pinned (fal:flux_schnell)
"flux_schnell"
2000"16:9"
Source images for editing / reference
10Provider-native overrides, keyed by provider id
(e.g. a fal object with seed, num_images, ...). Discover
per-model fields via GET /tools/{tool_key}?model=<model>.
Cross-cutting job options
Response
Idempotency replay — the existing job for this Idempotency-Key (no new charge).
"job_a1b2c3d4e5f6"
Lifecycle is queued then submitting then running, ending in a
terminal status (completed, failed, or cancelled).
queued, submitting, running, completed, failed, cancelled "image"
The request body as submitted (model, prompt, ...)
Canonical output envelope. Present only when the job is completed.
"stitching 3/8 (40%)"
Fraction 0..1
Structured pricing. 1 credit = 1 cent = $0.01.
"fal"
"fal:flux_schnell"
The provider's raw status string
Lifecycle URLs (present on creation responses)