Images · Text to image

Flux Schnell API

Flux Schnell. Fastest and cheapest Flux variant.

Price
From $0.01 per run $0.0027/MP
Typical time
~5 s
Model id
flux_schnell

Flux Schnell runs on one varg API key and one credit balance, the same as every other model here. You pay the provider's price, with no markup.

POST /v2/tools/image/call
curl -X POST https://api.varg.ai/v2/tools/image/call \
  -H "Authorization: Bearer $VARG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "model": "flux_schnell",
  "prompt": "sunset over ocean, golden light, wide landscape",
  "aspect_ratio": "16:9"
}'
Flux Schnell sample output
Real outputsunset over ocean, golden light, wide landscape

Flux Schnell pricing

From $0.01 per run. Prices are in US dollars and are the provider's own, with no markup. Flux Schnell has 2 routes: "model": "flux_schnell" picks one automatically, or pass a route key as "model" to pin it. For the exact price of a request, send the same body to POST https://api.varg.ai/v2/estimate.

  • fal $0.003/MP
    fal:flux_schnell

    Text to image

    Per megapixel
    $0.003
    Minimum charge
    $0.01
    Most one request can cost
    $0.10
    Typical time
    ~8 s
  • together $0.0027/MP
    together:flux_schnell

    Text to image

    Per megapixel
    $0.0027
    Minimum charge
    $0.01
    Most one request can cost
    $0.10
    Typical time
    ~5 s

Flux Schnell inputs

The JSON body of the request. Media inputs are URLs: upload a local file with POST /v2/files and pass the URL it returns. Full JSON Schema, no key needed: api.varg.ai/v2/tools/image?model=flux_schnell

Flux Schnell request fields
FieldWhat it does
model string requiredflux_schnell picks a route automatically. To pin one, pass a route key from Pricing above.
prompt string —
files array of { url } —
aspect_ratio string Allowed e.g. 16:9 | 9:16 | 1:1 | 4:3 | 3:4 | 21:9 | auto

Provider options

Optional, under provider_options.<provider>. Only the options of the provider that runs the job apply; pin a route to choose it.

provider_options.fal

Flux Schnell options for fal
FieldWhat it does
prompt string The prompt to generate an image from.
seed integer Allowed 0–2147483647
sync_mode boolean If True, the media will be returned as a data URI and the output data won't be available in the request history.
image_size string Allowed square_hd | square | portrait_4_3 | portrait_16_9 | landscape_4_3 | landscape_16_9
num_images integer The number of images to generate. Allowed 1–4
acceleration string Allowed none | regular | high
output_format string Allowed jpeg | png
guidance_scale number The CFG (Classifier Free Guidance) scale is a measure of how close you want the model to stick to your prompt when looking for a related image to show you. Allowed 1–20
num_inference_steps integer The number of inference steps to perform. Allowed 1–12
enable_safety_checker boolean If set to true, the safety checker will be enabled.

provider_options.together

Flux Schnell options for together
FieldWhat it does
prompt string A description of the image to generate.
negative_prompt string A description of what to avoid in the generated image.
n integer Number of images to generate. Allowed 1–4
seed integer Fixes random initialization for reproducibility. Allowed 0–2147483647
steps integer Number of diffusion steps. Allowed 1–50
width integer Output width in px (multiple of 8). Allowed 256–1536
height integer Output height in px (multiple of 8). Allowed 256–1536
output_format string Allowed jpeg | png
response_format string Allowed url | base64
disable_safety_checker boolean Disables the built-in NSFW safety checker.

Call the Flux Schnell API

POST https://api.varg.ai/v2/tools/image/call with Authorization: Bearer $VARG_API_KEY. It answers 202 with a job right away.

1. Send the request

cURL
curl -X POST https://api.varg.ai/v2/tools/image/call \
  -H "Authorization: Bearer $VARG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "model": "flux_schnell",
  "prompt": "sunset over ocean, golden light, wide landscape",
  "aspect_ratio": "16:9"
}'
JavaScript
JavaScript
const headers = {
  Authorization: `Bearer ${process.env.VARG_API_KEY}`,
  'Content-Type': 'application/json',
}

const res = await fetch('https://api.varg.ai/v2/tools/image/call', {
  method: 'POST',
  headers,
  body: JSON.stringify({
    "model": "flux_schnell",
    "prompt": "sunset over ocean, golden light, wide landscape",
    "aspect_ratio": "16:9"
  }),
})
const job = await res.json() // { id: "job_…", status: "queued" }
Python
Python
import os
import requests

headers = {"Authorization": f"Bearer {os.environ['VARG_API_KEY']}"}

job = requests.post(
    "https://api.varg.ai/v2/tools/image/call",
    headers=headers,
    json={
      "model": "flux_schnell",
      "prompt": "sunset over ocean, golden light, wide landscape",
      "aspect_ratio": "16:9"
    },
).json()  # {"id": "job_…", "status": "queued"}

2. Get the result

Poll the job until its status is completed, failed or cancelled; Flux Schnell typically takes about 5 s. The result is at output.outputs[0].url.

GET /v2/jobs/{id}
curl https://api.varg.ai/v2/jobs/$JOB_ID \
  -H "Authorization: Bearer $VARG_API_KEY"

# Poll until "status" is completed, failed or cancelled.
# The result is in output.outputs[0].url
JavaScript
JavaScript
let current = job
while (!['completed', 'failed', 'cancelled'].includes(current.status)) {
  await new Promise((resolve) => setTimeout(resolve, 3000))
  current = await (await fetch(`https://api.varg.ai/v2/jobs/${current.id}`, { headers })).json()
}
console.log(current.output?.outputs?.[0]?.url)
Python
Python
import time

while job["status"] not in ("completed", "failed", "cancelled"):
    time.sleep(3)
    job = requests.get(f"https://api.varg.ai/v2/jobs/{job['id']}", headers=headers).json()

print(job["output"]["outputs"][0]["url"])
Or take a webhook instead of polling

Add options.webhook_url and varg POSTs the finished job to it.

request body
{
  "model": "flux_schnell",
  "prompt": "sunset over ocean, golden light, wide landscape",
  "aspect_ratio": "16:9",
  "options": {
    "webhook_url": "https://your-app.com/varg-webhook"
  }
}

From Claude, ChatGPT or Cursor (MCP)

The varg MCP server, https://mcp.varg.ai/mcp, runs Flux Schnell with call_tool. Sign in with varg, no API key to paste. How to connect it

call_tool
{
  "tool": "image",
  "input": {
    "model": "flux_schnell",
    "prompt": "sunset over ocean, golden light, wide landscape",
    "aspect_ratio": "16:9"
  },
  "wait": true
}

Flux Schnell API: questions

How much does Flux Schnell cost on varg?
Flux Schnell costs from $0.01 per run on varg ($0.0027/MP on the cheapest route). varg charges the provider's price with no markup, from one credit balance. For the exact price of a request before you run it, send the same body to POST https://api.varg.ai/v2/estimate.
How do I call the Flux Schnell API?
Send POST https://api.varg.ai/v2/tools/image/call with the header "Authorization: Bearer $VARG_API_KEY" and a JSON body that includes "model": "flux_schnell". The call answers 202 with a job right away. Poll GET https://api.varg.ai/v2/jobs/{id} until "status" is "completed", then read output.outputs[0].url, or pass options.webhook_url to be called back.
Can I use Flux Schnell from Claude, ChatGPT or Cursor?
Yes. Add the varg MCP server (https://mcp.varg.ai/mcp) to Claude, ChatGPT, Cursor or any other MCP client and sign in with varg, with no API key to paste. The agent runs Flux Schnell with call_tool, passing tool "image" and "model": "flux_schnell".
How long does a Flux Schnell request take?
Typically about 5 s on the fastest route, by the catalog's estimate. The API answers at once with a job id, so nothing waits on an open connection while it runs.

For AI agents: this page as Markdown is varg.ai/models/flux_schnell.md, and every model is listed in varg.ai/models/llms.txt.