BlockRun

Image Generation API

Generate images using DALL-E, GPT Image (including ChatGPT Images 2.0), Google Nano Banana, CogView-4, or xAI Grok Imagine.

Endpoint

POST https://blockrun.ai/api/v1/images/generations

Request

{
  "model": "google/nano-banana",
  "prompt": "A futuristic city at sunset",
  "size": "1024x1024",
  "n": 1
}

Parameters

ParameterTypeRequiredDescription
modelstringYesModel to use (see below)
promptstringYesImage description
sizestringNoImage dimensions (default: "1024x1024")
qualitystringNo"standard" or "hd" (DALL-E 3 only)
nintegerNoNumber of images (default: 1)

Available Models

Model IDProviderSizesPrice
openai/dall-e-3OpenAI1024x1024, 1024x1792, 1792x1024$0.042
openai/gpt-image-1OpenAI1024x1024, 1536x1024, 1024x1536$0.021
openai/gpt-image-2OpenAI1024x1024, 1536x1024, 1024x1536$0.063
google/nano-bananaGoogle1024x1024$0.053
google/nano-banana-proGoogle1024x1024, 2048x2048, 4096x4096$0.105
zai/cogview-4Zhipu AI512x512 – 1440x1440$0.015
xai/grok-imagine-imagexAI1024x1024$0.021
xai/grok-imagine-image-proxAI1024x1024$0.074

CogView-4 Sizes

zai/cogview-4 supports flexible sizes (multiples of 16, max 1440×1440):

SizeUse Case
512x512Thumbnails, icons
768x768Social media
1024x1024Standard (default)
768x1344Portrait / mobile
1344x768Landscape / banner
1440x1440High resolution

Response

{
  "created": 1706000000,
  "data": [
    {
      "url": "https://blockrun.ai/api/media/media/images/2026/04/17/<id>.jpg",
      "source_url": "https://imgen.x.ai/xai-imgen/...",
      "backed_up": true,
      "revised_prompt": "..."
    }
  ]
}

Response Fields

FieldTypeDescription
createdintegerUnix timestamp
dataarrayArray of generated images
data[].urlstringPermanent URL. When GCS backup succeeds, this is a blockrun-hosted proxy URL; otherwise the upstream URL. For openai/gpt-image-1 and openai/gpt-image-2 this is a base64 data URI
data[].source_urlstringOriginal upstream URL (omitted for data URIs)
data[].backed_upbooleantrue when the image was mirrored to BlockRun's GCS bucket (omitted for data URIs)
data[].revised_promptstringExpanded prompt (DALL-E 3 only)

Why both url and source_url? Most providers return temporary URLs (OpenAI DALL-E URLs expire in 60 min, xAI Grok Imagine URLs are flagged xai-tmp-*). BlockRun mirrors each generated image to Google Cloud Storage and returns the permanent proxy URL as url.

Examples

Via ClawRouter (recommended for local use)

ClawRouter handles x402 payments automatically. Start it with openclaw gateway start, then call localhost:8402 directly.

curl -X POST http://localhost:8402/v1/images/generations \
  -H "Content-Type: application/json" \
  -d '{"model":"zai/cogview-4","prompt":"a futuristic city at night","size":"1024x1024"}'

Open the returned URL directly:

URL=$(curl -s -X POST http://localhost:8402/v1/images/generations \
  -H "Content-Type: application/json" \
  -d '{"model":"google/nano-banana","prompt":"your prompt here","size":"1024x1024"}' \
  | python3 -c "import sys,json; print(json.load(sys.stdin)['data'][0]['url'])")

open "$URL"   # macOS
xdg-open "$URL"   # Linux

Direct API (cURL)

curl -X POST https://blockrun.ai/api/v1/images/generations \
  -H "Content-Type: application/json" \
  -H "X-Payment: $PAYMENT_HEADER" \
  -d '{
    "model": "zai/cogview-4",
    "prompt": "a minimalist logo for an AI company",
    "size": "1024x1024"
  }'

Python

from blockrun_llm import ImageClient

client = ImageClient()

# CogView-4 (cheapest, supports Chinese prompts)
result = client.generate(
    "一个未来城市的夜景",
    model="zai/cogview-4",
    size="1344x768"
)
print(result.data[0].url)

# DALL-E 3
result = client.generate(
    "A futuristic AI robot",
    model="openai/dall-e-3",
    size="1024x1024"
)
print(result.data[0].url)

TypeScript

import { ImageClient } from '@blockrun/llm';

const client = new ImageClient();

// CogView-4
const result = await client.generate('a futuristic city at night', {
  model: 'zai/cogview-4',
  size: '1344x768',
});
console.log(result.data[0].url);

// DALL-E 3
const result2 = await client.generate('A futuristic AI robot', {
  model: 'openai/dall-e-3',
  size: '1024x1024',
});
console.log(result2.data[0].url);

Pricing

ModelSizePrice
CogView-4up to 1440x1440$0.015
CogView-41440x1440$0.02
DALL-E 3 Standard1024x1024$0.042
DALL-E 3 Wide1792x1024$0.084
GPT Image 11024x1024$0.021
ChatGPT Images 2.01024x1024$0.063
ChatGPT Images 2.01536x1024 / 1024x1536$0.126
Grok Imagine1024x1024$0.021
Grok Imagine Pro1024x1024$0.074
Nano Banana1024x1024$0.053
Nano Banana Pro1024x1024$0.105
Nano Banana Pro 4K4096x4096$0.158

Error Codes

CodeDescription
400Invalid request (bad prompt or parameters)
402Payment required (insufficient balance)
403Content policy violation
429Rate limit exceeded
500Server error

Model Selection Guide

Use CaseRecommended
Cheapestzai/cogview-4
Chinese promptszai/cogview-4
Highest qualitygoogle/nano-banana-pro
Fast & reliablegoogle/nano-banana
Best prompt followingopenai/dall-e-3
Image editing (img2img)openai/gpt-image-1 or openai/gpt-image-2
Multilingual text in images / character consistencyopenai/gpt-image-2
xAI-style stylizationxai/grok-imagine-image-pro

OpenAI Compatibility

This endpoint is compatible with OpenAI's Images API:

from openai import OpenAI

client = OpenAI(
    base_url="https://blockrun.ai/api/v1",
    api_key="unused"  # x402 payment handled via header
)

response = client.images.generate(
    model="zai/cogview-4",
    prompt="A futuristic city",
    size="1024x1024"
)
print(response.data[0].url)

Links