At a glance
The Z-Image API runs Z-Image through Mage at POST https://api.mage.space/v1/z_image/generate. A request at the default settings costs 10 Gems (about $0.01), with no subscription. Z-Image takes no @handle mentions.
Image
Output
1
Variant
10
Gems per image, default
$0.01
About, in USD
Overview
What the Z-Image API does
Blazing fast and easy on Gems. Photoreal text-to-image with solid anatomy and clean lettering, up to 2K; no reference images.
The fastest image model on Mage: photoreal text-to-image with solid anatomy and lettering, at 1K or 2K.
It generates from the prompt alone.
Quick start
Call the Z-Image API
Set MAGE_API_KEY, submit to /z_image/generate, and poll status_url until the request completes.
cURL
STATUS_URL=$(curl --request POST 'https://api.mage.space/v1/z_image/generate' \
--header "Authorization: Bearer $MAGE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"prompt": "Editorial portrait in soft daylight, 35mm film look",
"aspect_ratio": "4:5",
"model_id": "z-image-turbo"
}' | jq -r '.status_url')
# Repeat until status is "completed"; result.url is the file
curl "$STATUS_URL" --header "Authorization: Bearer $MAGE_API_KEY"Python
import os, time, requests
headers = {"Authorization": f"Bearer {os.environ['MAGE_API_KEY']}"}
request = requests.post(
"https://api.mage.space/v1/z_image/generate",
headers=headers,
json={
"prompt": "Editorial portrait in soft daylight, 35mm film look",
"aspect_ratio": "4:5",
"model_id": "z-image-turbo"
},
).json()
while request["status"] in ("queued", "in_progress"):
time.sleep(3)
request = requests.get(request["status_url"], headers=headers).json()
print(request["status"], request["result"] and request["result"]["url"])JavaScript
const headers = {
Authorization: `Bearer ${process.env.MAGE_API_KEY}`,
'Content-Type': 'application/json',
};
let request = await fetch('https://api.mage.space/v1/z_image/generate', {
method: 'POST',
headers,
body: JSON.stringify({
"prompt": "Editorial portrait in soft daylight, 35mm film look",
"aspect_ratio": "4:5",
"model_id": "z-image-turbo"
}),
}).then((response) => response.json());
while (['queued', 'in_progress'].includes(request.status)) {
await new Promise((resolve) => setTimeout(resolve, 3000));
request = await fetch(request.status_url, { headers }).then((r) => r.json());
}
console.log(request.status, request.result?.url);Models
Z-Image model_id values
Send model_id to pick a variant. A request without one runs the default.
| model_id | Name | Default |
|---|---|---|
| z-image-turbo | Z-Image | Yes |
Options
Z-Image parameters
Allowed values across all variants; a variant may offer fewer. The docs list the options per variant.
| Field | Values |
|---|---|
| aspect_ratio | 21:9, 16:9, 3:2, 5:4, 1:1, 4:5, 2:3, 9:16, 9:21 |
| resolution | 1k, 2k |
More image models
Other image generation APIs on Mage
Image · from 20 Gems
Anima API
Purpose-built for anime
Image · from 35 Gems
Chroma API
Open-weights, built on Flux
Image · from 40 Gems
Flux 2 API
Long prompts and multi-reference edits
Image · from 9 Gems
GPT Image 2 API
Precise prompts and readable text
Image · from 75 Gems
Grok Image API
Grok Imagine, in three quality tiers
Image · from 37 Gems
Guava API
Photorealism that passes for a photograph
FAQ
Frequently asked questions
How much does the Z-Image API cost?
A Z-Image request at the default settings (Z-Image) costs 10 Gems, about $0.01. Other resolutions, durations, and variants change the price; the response reports the exact charge. A generation that fails is refunded; one Mage's content policy blocks is not.
What is the Z-Image API endpoint?
POST https://api.mage.space/v1/z_image/generate with an Authorization: Bearer header carrying your Mage API key. The response includes a status_url to poll for the result.
Which Z-Image models can I call?
z-image-turbo (Z-Image). The default is Z-Image.
Does Z-Image support reference images or characters?
Z-Image takes no image, video, or audio inputs. Z-Image takes no @handle mentions.
Can I use Z-Image from Claude or ChatGPT?
Yes. Connect the Mage MCP server to Claude, ChatGPT, Claude Code, Grok, or Cursor and ask for Z-Image by name. Your assistant reads its options with get_model and quotes the price before it generates.
How long are Z-Image results kept?
Results and inputs are kept for 30 days. Download anything you want to keep to your own storage.
Start building with Mage
One account, one Gems balance, every model. Pay only for what you generate.