{
  "openapi": "3.0.1",
  "info": {
    "title": "Google Images Scraper – Image Search Results",
    "description": "Scrape Google Images results as data: full-size image URL with width and height, thumbnail, source page, title, site and dominant colour for any search. Filter by size, colour, type, file type, time and usage rights. Uses Apify's Google SERP proxy. No API key, no browser. Unofficial.",
    "version": "0.1",
    "x-build-id": "NNRLWBuUerkBN44fE"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/simple.actor~google-images/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-simple.actor-google-images",
        "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/simple.actor~google-images/runs": {
      "post": {
        "operationId": "runs-sync-simple.actor-google-images",
        "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/simple.actor~google-images/run-sync": {
      "post": {
        "operationId": "run-sync-simple.actor-google-images",
        "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",
        "properties": {
          "queries": {
            "title": "Search terms (one per line)",
            "type": "array",
            "description": "What to search Google Images for, one search per line. Google's operators work: \"exact phrase\" in quotes, site:example.com to take images from one site, a minus sign to exclude a word. You can also paste a link copied from Google's Images tab — its search terms and filters are used as they are, and the filters below apply only to links that carry none.",
            "items": {
              "type": "string"
            }
          },
          "maxItems": {
            "title": "Images per search",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "How many images to return per search. Google sends up to about 100 images per request, so the default of 100 is usually one request. Google's Images tab runs out at roughly 300–400 images for most searches, and reading stops there on its own — asking for more returns everything Google has.",
            "default": 100
          },
          "imageSize": {
            "title": "Size",
            "enum": [
              "any",
              "large",
              "medium",
              "icon"
            ],
            "type": "string",
            "description": "Google's size filter. \"Large\" is the one to pick for images you mean to print or crop — it cut out everything under 800 pixels wide in testing. For an exact floor, use \"Minimum width\" below as well.",
            "default": "any"
          },
          "imageColor": {
            "title": "Colour",
            "enum": [
              "any",
              "color",
              "grayscale",
              "transparent",
              "red",
              "orange",
              "yellow",
              "green",
              "teal",
              "blue",
              "purple",
              "pink",
              "white",
              "gray",
              "black",
              "brown"
            ],
            "type": "string",
            "description": "Google's colour filter: full colour, black and white, transparent background, or images dominated by one colour. Every row also carries the image's dominant colour, whatever you choose here.",
            "default": "any"
          },
          "imageType": {
            "title": "Type",
            "enum": [
              "any",
              "photo",
              "clipart",
              "lineart",
              "animated",
              "face"
            ],
            "type": "string",
            "description": "Google's type filter. \"Animated\" returns GIFs; \"Clip art\" and \"Line drawing\" suit icons and illustrations; \"Face\" keeps portraits.",
            "default": "any"
          },
          "fileType": {
            "title": "File type",
            "enum": [
              "any",
              "jpg",
              "png",
              "gif",
              "bmp",
              "svg",
              "webp",
              "ico"
            ],
            "type": "string",
            "description": "Only images in this format, as Google identifies it.",
            "default": "any"
          },
          "timeRange": {
            "title": "Time",
            "enum": [
              "any",
              "day",
              "week",
              "month",
              "year"
            ],
            "type": "string",
            "description": "Only images Google found within this period — useful for recent photos of an event or a place that has changed.",
            "default": "any"
          },
          "usageRights": {
            "title": "Usage rights",
            "enum": [
              "any",
              "creativeCommons",
              "commercial"
            ],
            "type": "string",
            "description": "Google's licence filter. \"Creative Commons licences\" keeps images Google found published under one. This is Google's label, not a legal guarantee: check the licence on the image's page before reusing it.",
            "default": "any"
          },
          "safeSearch": {
            "title": "SafeSearch",
            "type": "boolean",
            "description": "Turn on to have Google filter explicit images out, as its SafeSearch setting does.",
            "default": false
          },
          "minWidth": {
            "title": "Minimum width (pixels)",
            "minimum": 0,
            "type": "integer",
            "description": "Drop images narrower than this. Applied to Google's own stated dimensions after the search, so it is exact — unlike the Size filter — but a high floor means more of each page is dropped, and a search may return fewer images than \"Images per search\". Leave empty for no floor."
          },
          "minHeight": {
            "title": "Minimum height (pixels)",
            "minimum": 0,
            "type": "integer",
            "description": "Drop images shorter than this. Works like the minimum width."
          },
          "country": {
            "title": "Country (two-letter code)",
            "type": "string",
            "description": "The country Google searches from, as a two-letter code: US, GB, DE, IN… Images from local sites rank higher. Defaults to US.",
            "default": "US"
          },
          "language": {
            "title": "Language",
            "type": "string",
            "description": "The language of Google's interface and of the titles it prefers: en, de, fr, es, pt-BR, ja… Defaults to en. Set it together with the country for a local search.",
            "default": "en"
          }
        }
      },
      "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}