Source: https://01router.com/docs/models/nano-banana-2/create Base URL: https://01router.com/api/v1 # Nano Banana 2 · Create a generation Pass the model id, its unified input parameters and optionally a provider slug. The response returns immediately with the task id; image models on synchronous providers may already be succeeded. `POST /api/v1/generations` Bearer API key ## Input parameters | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | model | string | yes | Model slug from the catalog. Project keys may use a project-specific model slug. | options: [ "nano-banana-2" ] | | input | object | yes | Model-specific input object. See the selected model reference for required fields, defaults and limits. | | | provider | string | no | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | project | string | no | Optional project ID. Use its published model catalog and routing configuration. | | | callback_url | string | no | Public HTTPS URL, up to 1,000 characters. Receives the final generation object. Private network addresses are rejected. | | | input.prompt | string | yes | | | | input.image_urls | string[] | no | Optional — switches to image editing | maxItems: 14 | | input.aspect_ratio | enum | no | | default: "1:1"; options: [ "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3", "4:5", "5:4", "21:9" ] | | input.resolution | enum | no | | default: "1K"; options: [ "1K", "2K", "4K" ] | | input.num_images | integer | no | | default: 1; min: 1; max: 4 | ## Response fields | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | id | string | — | Generation ID returned by the create request. | | | object | "generation" | — | generation | | | model | string | — | Model slug from the catalog. Project keys may use a project-specific model slug. | | | type | video \| image \| audio \| chat | — | | | | provider | string | — | Optional provider slug. Omit for automatic routing; project settings may pin the provider. | | | status | string | — | queued / processing / succeeded / failed. Stop polling on succeeded or failed. | | | input | object | — | Model-specific input object. See the selected model reference for required fields, defaults and limits. | | | outputs | string[] | — | Result file URLs. Empty until available; download promptly because URLs may expire. | | | error | string \| null | — | Error message on failure; null otherwise. | | | credits | number | — | Credits charged for this generation; zero after a refund. | | | price_usd | number | — | Price of this generation in USD; zero after a refund. | | | created_at | string | — | Creation time in ISO 8601 format. | | | completed_at | string \| null | — | Completion time in ISO 8601 format, or null while running. | | ## cURL ```bash curl 'https://01router.com/api/v1/generations' \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "nano-banana-2", "input": { "prompt": "A cinematic landscape at sunrise.", "aspect_ratio": "1:1", "resolution": "1K", "num_images": 1 } }' ``` ## 200 · application/json ```json { "id": "gen_example", "object": "generation", "model": "nano-banana-2", "type": "image", "provider": "fal", "status": "processing", "input": { "prompt": "A cinematic landscape at sunrise.", "aspect_ratio": "1:1", "resolution": "1K", "num_images": 1 }, "outputs": [], "error": null, "credits": 100, "price_usd": 1, "created_at": "2026-10-25T08:00:00.000Z", "completed_at": null } ``` ## Usage notes - Poll at intervals of at least 3 seconds. A 504 from the synchronous image endpoint means the task may still be running: poll its error.id instead of submitting it again.