by 0G Foundation
Asynchronous text-to-image model with Base64 output. Generates at most 2 images per request — requesting more (n > 2) is refused with 400.
2K
2,048 tokens
—
$0.0088
per image
—
N/A for image
curl "https://router-api.0g.ai/v1/images/generations" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <YOUR_API_KEY>" \
-d '{
"model": "z-image-turbo",
"prompt": "A futuristic city skyline at sunset",
"n": 1,
"response_format": "b64_json"
}'
# Response: {"data": [{"b64_json": "..."}], "x_0g_trace": {...}}
# Generation takes seconds to about a minute; the request stays open until the images are ready.TEE Verification
Request on-chain signature verification with verify_tee. The response includes a tee_verified field in the trace.
{
"model": "z-image-turbo",
"prompt": "A futuristic city skyline at sunset",
"verify_tee": true
}
# The result is in the same response: x_0g_trace.tee_verifiedProvider Routing
Control which provider handles your request using the X-0G-Provider-* request headers.
X-0G-Provider-Address pins a provider; X-0G-Provider-Identity pins which of its upstreams to route through — both values come from the address and provider_identity fields of GET /v1/providers. Together they address one specific upstream of one provider. Send neither and the router picks by price and health, exactly as before.
curl "https://router-api.0g.ai/v1/images/generations" \
-H "Authorization: Bearer <YOUR_API_KEY>" \
-H "Content-Type: application/json" \
-H "X-0G-Provider-Address: <PROVIDER_ADDRESS>" \
-H "X-0G-Provider-Identity: <UPSTREAM>" \
-H "X-0G-Provider-Sort: latency" \
-H "X-0G-Provider-Allow-Fallbacks: true" \
-d '{
"model": "z-image-turbo",
"prompt": "A futuristic city skyline at sunset"
}'Private models only
This model is Private. To pin requests to a TEE-backed provider, add the X-0G-Provider-Trust-Mode: private header. Opt-in — not applied by default.
X-0G-Provider-Trust-Mode: private