{
  "openapi": "3.0.1",
  "info": {
    "title": "Nano Banana 2 & Pro Image Editor & Generator",
    "description": "Nano Banana image editor and generator: edit photos by prompt or create images with Google Nano Banana 2, Nano Banana 2 Lite and Nano Banana Pro, up to 4K. No API key. From $0.13 per image. Free plan: 1 image/month, Nano Banana 2 Lite. AI quality score (pass / review / fail) for automation.",
    "version": "1.0",
    "x-build-id": "mabaeU0H4z06Pu7Ok"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/pnda~nano-banana-generator/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-pnda-nano-banana-generator",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/pnda~nano-banana-generator/runs": {
      "post": {
        "operationId": "runs-sync-pnda-nano-banana-generator",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/pnda~nano-banana-generator/run-sync": {
      "post": {
        "operationId": "run-sync-pnda-nano-banana-generator",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "required": [
          "prompt"
        ],
        "properties": {
          "prompt": {
            "title": "Prompt",
            "type": "string",
            "description": "Text description of the image to generate, or the edit to make to the source image."
          },
          "model": {
            "title": "Model",
            "enum": [
              "google/nano-banana-2-lite",
              "google/nano-banana-2",
              "google/nano-banana-pro"
            ],
            "type": "string",
            "description": "Which AI model to use. Each option is billed at its own price, see the Pricing section of the README. Free Apify plan: 1 generation per month (one image) with Nano Banana 2 Lite, billed at the normal price ($0.13); other models and options are replaced by it.",
            "default": "google/nano-banana-2-lite"
          },
          "imageUrl": {
            "title": "Source image URL (optional)",
            "type": "string",
            "description": "Public URL of an image to edit (or to upscale). Leave empty for text-to-image."
          },
          "optimizePrompt": {
            "title": "Optimize my prompt",
            "type": "boolean",
            "description": "An AI prompt writer rewrites your idea into a detailed image prompt for the selected model (subject, composition, light, style), keeping every detail you gave and any text in quotes. $0.015 per optimized prompt (event \"prompt-optimization\"), charged once with the first delivered output that uses it; nothing extra if the writer is unavailable. The prompt actually used is in the output (\"prompt\", with your text in \"originalPrompt\"). If the writer is unavailable, your own prompt is used.",
            "default": false
          },
          "preset": {
            "title": "Use case",
            "enum": [
              "none",
              "product",
              "ads",
              "social",
              "ugc",
              "story",
              "cinematic",
              "portrait"
            ],
            "type": "string",
            "description": "Style brief for the prompt optimization: product (e-commerce), ads, social post, UGC, story, cinematic, portrait. Picking a use case turns \"Optimize my prompt\" on.",
            "default": "none"
          },
          "qualityScore": {
            "title": "Score the quality of each output",
            "type": "boolean",
            "description": "A multimodal AI looks at each image: coherence (hands, faces, objects, text, illogical details) and match with your original prompt. Adds qualityScore, coherenceScore, promptMatchScore (0-100), issues and verdict (pass / review / fail) to each row, so you can publish only the \"pass\" ones automatically. $0.01 per scored output (event \"quality-score\"); nothing extra if the checker is unavailable.",
            "default": false
          },
          "quality": {
            "title": "Quality",
            "enum": [
              "auto",
              "draft",
              "standard",
              "high",
              "max"
            ],
            "type": "string",
            "description": "Shortcut for the resolution when \"Resolution\" is empty: draft = lowest, standard = model default, high = one step below the best, max = best the model offers. Higher quality costs more per image.",
            "default": "auto"
          },
          "aspectRatio": {
            "title": "Aspect ratio",
            "enum": [
              "auto",
              "1:1",
              "2:3",
              "3:2",
              "3:4",
              "4:3",
              "4:5",
              "5:4",
              "9:16",
              "16:9",
              "21:9",
              "1:4",
              "4:1"
            ],
            "type": "string",
            "description": "Output aspect ratio. \"auto\" keeps the model default (for edits: the source image ratio). Not every model supports every ratio; an unsupported ratio stops the run before anything is charged.",
            "default": "auto"
          },
          "resolution": {
            "title": "Resolution",
            "enum": [
              "1K",
              "2K",
              "4K"
            ],
            "type": "string",
            "description": "Output resolution for models that offer it (Nano Banana 2 / Pro). Leave empty for 1K. 2K and 4K cost more."
          },
          "numberOfVariants": {
            "title": "Number of variants",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "How many separate outputs to generate (1 to 10). Each successful one is billed; failures are free.",
            "default": 1
          },
          "includeFailedVariants": {
            "title": "Include failed outputs in dataset",
            "type": "boolean",
            "description": "Also write failed outputs (with the reason) to the dataset. Failed outputs are never billed.",
            "default": false
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}