Images · Image to image

Grok Imagine Image Edit API

xAI Grok image editing. Cheapest image editing model.

Price
From $0.03 per run $0.03/image
Typical time
~15 s
Model id
grok_imagine_image/edit

Grok Imagine Image Edit 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": "grok_imagine_image/edit",
  "prompt": "Add a beautiful young woman with long dark brown hair, wearing white silk pajamas, standing barefoot beside the bed, looking at it curiously, about to lie down. She is naturally lit, properly scaled to the room. Keep the bedroom and bed exactly as they are.",
  "files": [
    {
      "url": "https://s3.varg.ai/u/194b94d0-58ff-4e8b-91de-4f1959d04013/3e509b2e8829fa121a0cb889a396db1f78b7ec607455daa12a8f28f8ff0979d4.jpg"
    },
    {
      "url": "https://v3b.fal.media/files/b/0a92b1c7/hP5qHwwuADHwxLqY3ZKuW_Be5mSNEU.png"
    }
  ]
}'
Grok Imagine Image Edit sample output
Real outputAdd a beautiful young woman with long dark brown hair, wearing white silk pajamas, standing barefoot beside the bed, looking at it curiously, about to lie down. She is naturally lit, properly scaled to the room. Keep the bedroom and bed exactly as they are.

Grok Imagine Image Edit pricing

From $0.03 per run. Prices are in US dollars and are the provider's own, with no markup. For the exact price of a request, send the same body to POST https://api.varg.ai/v2/estimate.

  • fal $0.03/image
    fal:grok_imagine_image/edit

    Image to image

    Per image
    $0.03
    Typical time
    ~15 s

Grok Imagine Image Edit 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=grok_imagine_image%2Fedit

Grok Imagine Image Edit request fields
FieldWhat it does
model string requiredgrok_imagine_image/edit picks a route automatically.
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

Grok Imagine Image Edit options for fal
FieldWhat it does
prompt string Text description of the desired image.
image_urls array of URL strings —
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.
num_images integer Number of images to generate. Allowed 1–4
resolution string Allowed 1k | 2k
aspect_ratio string Allowed auto | 2:1 | 20:9 | 19.5:9 | 16:9 | 4:3 | 3:2 | 1:1 | 2:3 | 3:4 | 9:16 | 9:19.5 | 9:20 | 1:2
output_format string Allowed jpeg | png | webp

Call the Grok Imagine Image Edit 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": "grok_imagine_image/edit",
  "prompt": "Add a beautiful young woman with long dark brown hair, wearing white silk pajamas, standing barefoot beside the bed, looking at it curiously, about to lie down. She is naturally lit, properly scaled to the room. Keep the bedroom and bed exactly as they are.",
  "files": [
    {
      "url": "https://s3.varg.ai/u/194b94d0-58ff-4e8b-91de-4f1959d04013/3e509b2e8829fa121a0cb889a396db1f78b7ec607455daa12a8f28f8ff0979d4.jpg"
    },
    {
      "url": "https://v3b.fal.media/files/b/0a92b1c7/hP5qHwwuADHwxLqY3ZKuW_Be5mSNEU.png"
    }
  ]
}'
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": "grok_imagine_image/edit",
    "prompt": "Add a beautiful young woman with long dark brown hair, wearing white silk pajamas, standing barefoot beside the bed, looking at it curiously, about to lie down. She is naturally lit, properly scaled to the room. Keep the bedroom and bed exactly as they are.",
    "files": [
      {
        "url": "https://s3.varg.ai/u/194b94d0-58ff-4e8b-91de-4f1959d04013/3e509b2e8829fa121a0cb889a396db1f78b7ec607455daa12a8f28f8ff0979d4.jpg"
      },
      {
        "url": "https://v3b.fal.media/files/b/0a92b1c7/hP5qHwwuADHwxLqY3ZKuW_Be5mSNEU.png"
      }
    ]
  }),
})
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": "grok_imagine_image/edit",
      "prompt": "Add a beautiful young woman with long dark brown hair, wearing white silk pajamas, standing barefoot beside the bed, looking at it curiously, about to lie down. She is naturally lit, properly scaled to the room. Keep the bedroom and bed exactly as they are.",
      "files": [
        {
          "url": "https://s3.varg.ai/u/194b94d0-58ff-4e8b-91de-4f1959d04013/3e509b2e8829fa121a0cb889a396db1f78b7ec607455daa12a8f28f8ff0979d4.jpg"
        },
        {
          "url": "https://v3b.fal.media/files/b/0a92b1c7/hP5qHwwuADHwxLqY3ZKuW_Be5mSNEU.png"
        }
      ]
    },
).json()  # {"id": "job_…", "status": "queued"}

2. Get the result

Poll the job until its status is completed, failed or cancelled; Grok Imagine Image Edit typically takes about 15 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": "grok_imagine_image/edit",
  "prompt": "Add a beautiful young woman with long dark brown hair, wearing white silk pajamas, standing barefoot beside the bed, looking at it curiously, about to lie down. She is naturally lit, properly scaled to the room. Keep the bedroom and bed exactly as they are.",
  "files": [
    {
      "url": "https://s3.varg.ai/u/194b94d0-58ff-4e8b-91de-4f1959d04013/3e509b2e8829fa121a0cb889a396db1f78b7ec607455daa12a8f28f8ff0979d4.jpg"
    },
    {
      "url": "https://v3b.fal.media/files/b/0a92b1c7/hP5qHwwuADHwxLqY3ZKuW_Be5mSNEU.png"
    }
  ],
  "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 Grok Imagine Image Edit with call_tool. Sign in with varg, no API key to paste. How to connect it

call_tool
{
  "tool": "image",
  "input": {
    "model": "grok_imagine_image/edit",
    "prompt": "Add a beautiful young woman with long dark brown hair, wearing white silk pajamas, standing barefoot beside the bed, looking at it curiously, about to lie down. She is naturally lit, properly scaled to the room. Keep the bedroom and bed exactly as they are.",
    "files": [
      {
        "url": "https://s3.varg.ai/u/194b94d0-58ff-4e8b-91de-4f1959d04013/3e509b2e8829fa121a0cb889a396db1f78b7ec607455daa12a8f28f8ff0979d4.jpg"
      },
      {
        "url": "https://v3b.fal.media/files/b/0a92b1c7/hP5qHwwuADHwxLqY3ZKuW_Be5mSNEU.png"
      }
    ]
  },
  "wait": true
}

Grok Imagine Image Edit API: questions

How much does Grok Imagine Image Edit cost on varg?
Grok Imagine Image Edit costs from $0.03 per run on varg ($0.03/image 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 Grok Imagine Image Edit 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": "grok_imagine_image/edit". 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 Grok Imagine Image Edit 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 Grok Imagine Image Edit with call_tool, passing tool "image" and "model": "grok_imagine_image/edit".
How long does a Grok Imagine Image Edit request take?
Typically about 15 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/grok_imagine_image%2Fedit.md, and every model is listed in varg.ai/models/llms.txt.