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 id | Tier | Price |
|---|---|---|
| grok-image | base | $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.
| Images | grok-image | nano-banana-pro | gpt-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
| Field | Values | Default |
|---|---|---|
model | grok-image | required |
prompt | string | required |
orientation | landscape, portrait, square | square |
image or images | URL, data-URL or base64, up to four | none |
n | 1 to 10, over that a 400 | 1 |
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
| Model | Per image | What you control | Reach for it when |
|---|---|---|---|
grok-image | $0.02 | orientation | volume, where unit price beats control |
nano-banana-2 | $0.027 | ratio and 1K/2K/4K | you need an exact size |
nano-banana-pro | $0.027 | ratio and 1K/2K/4K | same, on the Pro version |
gpt-image-2 | $0.06–0.94 | ratio, quality, resolution | print, 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.
The whole set costs $0.06.
Questions we get
cost_usd of zero, the hold is released, and the balance stays where it was.api.teamtoken.store answers directly, and cards issued in Russia work for top-ups.Top up with a card, SBP or crypto, from $1. Spend limits are set per key.