Nano Banana batch API: Gemini's 24 h batch vs Sume async jobs
Gemini's Batch API trades up to 24 hours of turnaround for higher rate limits. Sume has no batch tier for images: send async or webhook jobs per request.

Google lets every Gemini image capability run as a Batch API job: higher rate limits in exchange for up to 24 hours of turnaround. The Sume docs describe no equivalent batch tier or discount for images. To make many Nano Banana images on Sume, submit separate POST /v1/images requests with mode: "async" or mode: "webhook" and read each job's result.
Google's batch note is from its image generation page; Sume's modes from Image generation and Jobs and results, read 2026-10-01.
What does Google's Batch API offer?
The page says all image generation capabilities can also run as batch jobs, "ideal if you need to generate many images", with higher rate limits and a turnaround of up to 24 hours. It states no price for batch on that page, so check Google's pricing before assuming a discount.
What are the Sume equivalents?
Sume's image route blocks for up to 30 seconds by default and returns 200 with the images. If generation outlasts that budget, or you send mode: "async", or mode: "webhook" with a webhook_url, you get 202 and a job envelope. Poll GET /v1/jobs/{id}/status and fetch GET /v1/jobs/{id}/result.
| Need | Gemini API | Sume |
|---|---|---|
| Bulk, can wait | Batch API, up to 24 hours | Separate jobs; no batch tier documented |
| Do not block the caller | Not covered here | mode: "async" or "webhook" |
| Several images per request | Count not guaranteed | n, range depends on model |
How should I run a large set of images?
Submit each image as its own async job, keep the returned job ids, and collect results as they finish; a webhook saves you from polling. Mind your plan's rate limit: a 429 means back off and retry after retry-after. For concurrency patterns see batch image generation concurrency limits.
Can one request return more than one image?
Yes, with n, but the ceiling is per model. The code comment for the shared range says every other image model takes n as a 1 to 4 range; the docs say to read the n descriptor from the catalog rather than assume.
Sources
Related posts
More in Developers
- OpenAI Agents API durable sessions and Sume job ids
A durable OpenAI Agents API session continues across turns; a Sume render is a separate job. Keep the job id in the session and re-read it, never re-create.
- OpenAI Agents Python MCP error content: reading Sume tool errors
openai-agents-python v0.20.0 keeps MCP error content with structured output. Sume tool failures arrive as isError text with code, message and http_status.
- OpenAI Agents Python MCP non-text content as JSON: Sume results
openai-agents-python v0.20.0 serializes non-text MCP blocks as JSON. Sume tool results are text blocks, with media delivered as URLs inside the JSON.
- OpenAI Agents Python MCP backoff ceiling vs Sume retry-after
Set the MCP retry backoff ceiling low enough that a Sume 429 with retry-after is honored first, and never retry a paid create without its idempotency key.
Written by Sume