// image api

Grok Image API

Grok Image costs $0.02 per image here, billed on the call that produced it. One flat price, no tiers to compare, no subscription sitting on top of it. The same key also calls video and text models.

What two cents buys you

Grok Image is xAI's image model. We ship it as a single SKU with a flat price, because there is nothing inside it to price differently. Resolution is fixed, quality levels do not exist, and the only knob is the orientation of the frame. Of all the image models in our catalog this one is the cheapest and, frankly, the least interesting to configure.

Which points at what people actually use it for. If you need two hundred thumbnails for product cards, or three hundred backgrounds for ad variants, the gap between two cents and six decides your budget while the artistic argument mostly does not. A thousand images run you $20. The same thousand costs $27 on nano-banana-pro and $60 on gpt-image-2-low-1k.

What we will not tell you is that Grok Image draws better than its neighbours. We have no benchmark to point at, and eyeballing four samples proves nothing. Price you can verify from the table below. Quality you should test on your own prompts, and three test calls cost six cents.

Price

Model idTierPrice
grok-imagebase$0.02 per image

Two cents leave your balance for every image that comes back, and the exact amount sits in the cost_usd field of that same response. If generation fails, the error response carries a zero there and your balance does not move.

Imagesgrok-imagenano-banana-progpt-image-2-low-1k
100$2$2.70$6
1,000$20$27$60
10,000$200$270$600

Among the aggregators we priced in August, only aimlapi.com publishes a per-image rate for Grok, at $0.026 (checked 22.08.2026). piapi.ai does not carry Grok at all, neither the image model nor the video one. fal.ai and replicate.com list Grok Imagine, though replicate publishes a per-second video rate rather than an image price, so we are not going to invent a comparison there.

How to call it

If you already talk to an OpenAI-compatible API, two things change: the base URL and the model name. The endpoint is /v1/images/generations and the key is the same one your text models use.

curl https://api.teamtoken.store/v1/images/generations \
  -H "Authorization: Bearer $TEAMTOKEN_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "grok-image",
    "prompt": "a black cat on a windowsill, rainy city night outside",
    "orientation": "landscape",
    "n": 2
  }'

Images come back as base64. There is no file URL in the response.

{
  "created": 0,
  "cost_usd": 0.04,
  "data": [
    { "b64_json": "iVBORw0KGgoAAAANSUhEUg..." },
    { "b64_json": "iVBORw0KGgoAAAANSUhEUg..." }
  ]
}

We ignore response_format, because handing you a link would hand you the provider's CDN host. Decode and write it where you want it.

curl https://api.teamtoken.store/v1/images/generations \
  -H "Authorization: Bearer $TEAMTOKEN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"grok-image","prompt":"neon sign above a wet street","n":2}' \
| python3 -c 'import sys, json, base64
for i, x in enumerate(json.load(sys.stdin)["data"]):
    open(f"grok-{i}.png", "wb").write(base64.b64decode(x["b64_json"]))'

Parameters, and what the model will not do

FieldValuesDefault
modelgrok-imagerequired
promptstringrequired
orientationlandscape, portrait, squaresquare
image or imagesURL, data-URL or base64, up to fournone
n1 to 10, over that a 4001

Orientation is a word here, not a ratio. Our other image models take aspect_ratio with values like 16:9, this one takes orientation, and mixing them up is easy. Nothing errors when you do. The unknown field is dropped, and you get a square while you were expecting a wide frame. Same story for size, quality and style from the OpenAI SDK, none of which we read.

Two more things surface during integration. We hold the connection open while the provider draws, which is usually seconds. If it misses the 150-second window, you get a 202 with a job id instead of an image, the result then comes from GET /v1/images/jobs/{id}, and your money is reserved but not yet charged at that point.

A word about n. We accept and validate it, but it does not travel on to the provider, so a call returns a single image. Four images means four calls. Billing counts the images that actually came back, so an unused n never costs you anything.

There is no seed parameter. You cannot reproduce a specific image from the same prompt, so if reproducibility is part of your pipeline, this is the wrong model for it. Resolution, as covered above, is not selectable either (2K and 4K live on nano-banana-pro and across the gpt-image-2 tiers).

Where it sits among our other image models

ModelPer imageWhat you controlReach for it when
grok-image$0.02orientationvolume, where unit price beats control
nano-banana-2$0.027ratio and 1K/2K/4Kyou need an exact size
nano-banana-pro$0.027ratio and 1K/2K/4Ksame, on the Pro version
gpt-image-2$0.06–0.94ratio, quality, resolutionprint, large format, top tier matters

The gpt-image-2 tiers spread from $0.06 to $0.94 per image, more than 15-fold. Grok Image holds the bottom of that scale. Is the extra half-cent for nano-banana worth paying? It is, once the image goes into a layout with a fixed size, because there the ratio and 4K matter more than a couple of cents.

The same key runs video and text

One key covers the whole catalog, with no separate signup and no separate media balance. Grok's video sits next to this on /v1/videos, at $0.0067 per second for grok-video-480p and $0.0133 for grok-video-720p. Text models answer on /v1/chat/completions, where you get gpt-5.6-sol, gemini-3.1-pro and the rest of the live catalog.

No gallery here, but there is something to test

We are not posting our own generations here: anyone can pick five good-looking pictures, and what you need is your prompt rather than our shortlist. Three calls below test exactly what this page argues about, namely whether the model's single knob does anything.

grok-image
«mountains seen from a train window, morning fog»
Default orientation, meaning square. Send it as is.
grok-image
«mountains seen from a train window, morning fog»
Same prompt with orientation: landscape. The frame should turn wide.
grok-image
«mountains seen from a train window, morning fog»
The same again with aspect_ratio: 16:9 instead. A square comes back: the field is not read and no error is raised.

The whole set costs $0.06.

Questions we get

Why base64 instead of a URL?
A URL would point at the provider's CDN. Decoding one string is cheaper for you than working out later why your images live on somebody else's domain and when they will disappear from it.
Do I pay for a failed generation?
No. A provider-side failure returns cost_usd of zero, the hold is released, and the balance stays where it was.
How do I cap spend?
Every key carries its own ceiling, set in the dashboard. Hand a key to a batch script, cap it at $30, and $30 is the most it can burn through even if the loop jams and starts firing empty prompts.
Is there a monthly minimum?
No. You pay for calls that happened. Top up by card or crypto, from $1 and $5 respectively.
Can I run this from Russia?
Yes, api.teamtoken.store answers directly, and cards issued in Russia work for top-ups.
Related
Nano Banana ProNano Banana 2GPT Image 2Grok Video
Get an API key

Top up with a card, SBP or crypto, from $1. Spend limits are set per key.