{"servers":[{"url":"https://api.modellix.ai/api/v1/google/nano-banana-2.1"}],"post":{"description":"[Core Function] Nano Banana 2.1 is Google's fast text-to-image model on Gemini 3.6 Flash, exposed as google/nano-banana-2.1. [Strengths] It keeps Flash-level speed at 1K, 2K, and 4K, with stronger visual quality, text rendering, and real-world knowledge than Nano Banana 2. thinkingLevel trades latency for quality and defaults to medium. Optional systemInstruction is omitted when blank. enableWebSearch turns on Google Search grounding (web and image search) only when true. [Best For] High-volume image production, posters and diagrams with readable text, localized text, and rapid iteration on new text-to-image work. [Limitations] Do NOT use this model for image or video editing, 512-pixel output, audio input, or reference images. This endpoint accepts a prompt only. seed, temperature, topP, topK, and logprobs are rejected. [Routing] Use google/nano-banana-2.1 for new text-to-image work. Use google/nano-banana-2 when the caller needs the 512 resolution of Gemini 3.1 Flash Image. Use google/nano-banana-2.1-edit when the user supplies images or a video. Use google/nano-banana-pro when the user wants the highest-end professional stills.","operationId":"nanoBanana21T2IAsync","requestBody":{"content":{"application/json":{"examples":{"text_only":{"summary":"Text-to-image","value":{"prompt":"A colorful abstract painting with flowing shapes"}},"with_options":{"summary":"With aspect ratio and resolution","value":{"aspectRatio":"9:21","imageSize":"2K","prompt":"Minimalist geometric art with bold colors","thinkingLevel":"medium"}}},"schema":{"properties":{"aspectRatio":{"default":"1:1","description":"Image aspect ratio. Defaults to 1:1.","enum":["1:1","3:2","2:3","3:4","1:4","4:1","4:3","4:5","5:4","1:8","8:1","9:16","16:9","21:9","9:21"],"example":"1:1","type":"string"},"enableWebSearch":{"description":"When true, enables Google Search grounding with web search and image search. Image search cannot be used to look up people. Omitted or false does not send the tool. Search uses extra tokens.","type":"boolean"},"imageSize":{"default":"1K","description":"Output image resolution. Defaults to 1K. 512 is not supported.","enum":["1K","2K","4K"],"example":"1K","type":"string"},"prompt":{"description":"Image description text","example":"A colorful abstract painting with flowing shapes","minLength":1,"type":"string"},"systemInstruction":{"description":"Optional system instruction. Omitted when empty. Not sent upstream when blank.","type":"string"},"thinkingLevel":{"default":"medium","description":"Thinking effort. minimal is fastest; high spends more thinking. Defaults to medium.","enum":["minimal","medium","high"],"example":"medium","type":"string"}},"required":["prompt"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"example":{"code":0,"data":{"get_result":{"method":"GET","url":"https://api.modellix.ai/api/v1/tasks/task-nb21"},"model_id":"google/nano-banana-2.1","status":"pending","task_id":"task-nb21"},"message":"success"},"schema":{"properties":{"code":{"description":"Response code, 0 indicates success","example":0,"type":"integer"},"data":{"description":"Detailed data about the submitted asynchronous task.","properties":{"get_result":{"description":"API information to query the task result","properties":{"method":{"description":"HTTP method","example":"GET","type":"string"},"url":{"description":"Full URL to query the task result","example":"https://api.modellix.ai/api/v1/tasks/task-abc123","type":"string"}},"type":"object"},"model_id":{"description":"Model ID in `provider/model` format","example":"google/nano-banana","type":"string"},"status":{"description":"Task status","enum":["pending","processing"],"example":"pending","type":"string"},"task_id":{"description":"Unique task identifier for polling","example":"task-abc123","type":"string"}},"required":["status","task_id","model_id"],"type":"object"},"message":{"description":"Response message","example":"success","type":"string"}},"required":["code","message","data"],"type":"object"}}},"description":"Task submitted successfully"},"400":{"content":{"application/json":{"example":{"code":400,"message":"Invalid parameters: parameter 'prompt' is required"},"schema":{"properties":{"code":{"description":"Error code (equals HTTP status code)","example":400,"type":"integer"},"message":{"description":"Error message in format 'Category: detail'","example":"Invalid parameters: parameter 'prompt' is required","type":"string"}},"required":["code","message"],"type":"object"}}},"description":"Invalid request parameters"},"401":{"content":{"application/json":{"example":{"code":401,"message":"Authentication failed: invalid API key"},"schema":{"properties":{"code":{"description":"Error code (equals HTTP status code)","example":400,"type":"integer"},"message":{"description":"Error message in format 'Category: detail'","example":"Invalid parameters: parameter 'prompt' is required","type":"string"}},"required":["code","message"],"type":"object"}}},"description":"Unauthorized - Invalid or missing API Key"},"429":{"content":{"application/json":{"example":{"code":429,"message":"Rate limit exceeded: 100 requests per minute, retry after 60 seconds"},"schema":{"properties":{"code":{"description":"Error code (equals HTTP status code)","example":400,"type":"integer"},"message":{"description":"Error message in format 'Category: detail'","example":"Invalid parameters: parameter 'prompt' is required","type":"string"}},"required":["code","message"],"type":"object"}}},"description":"Too many requests - Rate limit exceeded","headers":{"X-RateLimit-Limit":{"description":"Maximum requests per minute","schema":{"example":100,"type":"integer"}},"X-RateLimit-Remaining":{"description":"Remaining quota in current window","schema":{"example":0,"type":"integer"}},"X-RateLimit-Reset":{"description":"Rate limit window reset time (Unix timestamp)","schema":{"example":1704067260,"type":"integer"}}}},"500":{"content":{"application/json":{"example":{"code":500,"message":"Internal server error"},"schema":{"properties":{"code":{"description":"Error code (equals HTTP status code)","example":400,"type":"integer"},"message":{"description":"Error message in format 'Category: detail'","example":"Invalid parameters: parameter 'prompt' is required","type":"string"}},"required":["code","message"],"type":"object"}}},"description":"Internal server error"}},"summary":"Nano Banana 2.1","x-mint":{"href":"google/nano-banana-2-1"}}}