{
  "openapi": "3.0.1",
  "info": {
    "title": "Google Images Scraper — Image Search with Full Metadata",
    "description": "Scrape Google Images by keyword: full-size image URL with width and height, file size, dominant color, source page, title, site and domain, plus product prices and license credits when Google shows them. Google's filters, country and language, related searches past the per-search limit.",
    "version": "0.1",
    "x-build-id": "tPecAVjIsp2NC9ZhB"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/foxlabs~google-images-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-foxlabs-google-images-scraper",
        "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/foxlabs~google-images-scraper/runs": {
      "post": {
        "operationId": "runs-sync-foxlabs-google-images-scraper",
        "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/foxlabs~google-images-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-foxlabs-google-images-scraper",
        "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": [
          "queries"
        ],
        "properties": {
          "queries": {
            "title": "Search terms",
            "type": "array",
            "description": "One search per line, as you would type it into Google Images (\"golden retriever\", \"nike air max 90\", \"minimalist logo design\").",
            "items": {
              "type": "string"
            }
          },
          "maxImagesPerQuery": {
            "title": "Max images per search term",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "How many images to return for each search term. Google shows up to 100 images per results page and stops after a few pages for one term; above that the Actor continues with Google's related searches (see below). Helps control cost. The form starts at 20 for a quick first run.",
            "default": 100
          },
          "relatedSearches": {
            "title": "Related searches",
            "enum": [
              "auto",
              "off"
            ],
            "type": "string",
            "description": "Auto: when Google has no more images for your term before the number above is reached, the Actor continues with the related searches Google suggests for it (only those containing every word of your term, e.g. \"labrador golden retriever\" for \"golden retriever\"). Those rows carry the related search in sourceQuery, so you can keep or drop them. Off: only your term's own results.",
            "default": "auto"
          },
          "relatedSearchesExclude": {
            "title": "Skip related searches containing",
            "type": "array",
            "description": "Words or phrases, one per line (not case-sensitive): a related search that contains one of them is not used. A related search can contain every word of your term and still change the subject: for \"red panda\", Google suggested \"red panda drawings\", \"anime red panda\" and \"turning red red panda\" (a film). Skipped ones are listed in the SOURCE_REPORT record.",
            "items": {
              "type": "string"
            }
          },
          "country": {
            "title": "Country",
            "enum": [
              "us",
              "gb",
              "ca",
              "au",
              "nz",
              "ie",
              "in",
              "sg",
              "za",
              "ph",
              "my",
              "ng",
              "ke",
              "pk",
              "ae",
              "sa",
              "eg",
              "hk",
              "de",
              "at",
              "ch",
              "fr",
              "be",
              "nl",
              "es",
              "it",
              "pt",
              "br",
              "mx",
              "ar",
              "co",
              "cl",
              "pe",
              "pl",
              "tr",
              "se",
              "no",
              "dk",
              "fi",
              "cz",
              "hu",
              "ro",
              "gr",
              "ua",
              "il",
              "jp",
              "kr",
              "tw",
              "id",
              "th",
              "vn"
            ],
            "type": "string",
            "description": "Which Google to search: the country's Google domain and market. Results differ from country to country.",
            "default": "us"
          },
          "language": {
            "title": "Language",
            "type": "string",
            "description": "Interface language code (en, de, fr, pt-BR…). Leave empty for the country's main language. It changes titles and related searches Google shows."
          },
          "imageSize": {
            "title": "Size",
            "enum": [
              "any",
              "large",
              "medium",
              "icon"
            ],
            "type": "string",
            "description": "Google's size filter. For an exact lower bound use the minimum width and height fields below.",
            "default": "any"
          },
          "color": {
            "title": "Color",
            "enum": [
              "any",
              "blackAndWhite",
              "transparent",
              "red",
              "orange",
              "yellow",
              "green",
              "teal",
              "blue",
              "purple",
              "pink",
              "white",
              "gray",
              "black",
              "brown"
            ],
            "type": "string",
            "description": "Google's color filter: black and white, transparent background, or images where one color stands out.",
            "default": "any"
          },
          "imageType": {
            "title": "Type",
            "enum": [
              "any",
              "photo",
              "clipart",
              "lineDrawing",
              "animated"
            ],
            "type": "string",
            "description": "Google's type filter.",
            "default": "any"
          },
          "fileType": {
            "title": "File type",
            "enum": [
              "any",
              "jpg",
              "png",
              "gif",
              "bmp",
              "svg",
              "webp",
              "ico"
            ],
            "type": "string",
            "description": "Google's file-type filter.",
            "default": "any"
          },
          "time": {
            "title": "Time",
            "enum": [
              "any",
              "pastDay",
              "pastWeek",
              "pastMonth",
              "pastYear"
            ],
            "type": "string",
            "description": "Google's time filter (when Google found the image). The output has no date field: Google does not show one per image.",
            "default": "any"
          },
          "usageRights": {
            "title": "Usage rights",
            "enum": [
              "any",
              "creativeCommons",
              "commercial"
            ],
            "type": "string",
            "description": "Google's usage-rights filter. It narrows results by the license information sites publish; it is not a legal guarantee — check the license on the source page before reuse.",
            "default": "any"
          },
          "aspectRatio": {
            "title": "Aspect ratio (computed by the Actor)",
            "enum": [
              "any",
              "tall",
              "square",
              "wide",
              "panoramic"
            ],
            "type": "string",
            "description": "Width ÷ height of the original image: tall < 0.8 ≤ square < 1.25 ≤ wide < 2 ≤ panoramic. Google ignores its own aspect-ratio parameter (checked), so the Actor filters by the size instead.",
            "default": "any"
          },
          "minWidth": {
            "title": "Minimum width (px)",
            "minimum": 0,
            "maximum": 20000,
            "type": "integer",
            "description": "Keep only images at least this wide (original image). 0 = no limit.",
            "default": 0
          },
          "minHeight": {
            "title": "Minimum height (px)",
            "minimum": 0,
            "maximum": 20000,
            "type": "integer",
            "description": "Keep only images at least this tall (original image). 0 = no limit.",
            "default": 0
          },
          "skipCrawlerOnlyImages": {
            "title": "Skip crawler-only image links (Instagram, Facebook, TikTok)",
            "type": "boolean",
            "description": "For some Instagram, Facebook and TikTok images, Google's link to the original is a crawler link that returns a web page or an error instead of the file (8% of images in our tests). Every row flags these in imageUrlCrawlerOnly. On: leave them out (not charged) and fill the limit with other images, e.g. for image datasets. Off: keep everything Google shows.",
            "default": false
          },
          "removeDuplicatesAcrossQueries": {
            "title": "Remove duplicates across search terms",
            "type": "boolean",
            "description": "Off: each term gets its full result list (an image can appear under two terms). On: an image is delivered once per run, under the first term that found it; terms then run one after another.",
            "default": false
          },
          "outputRelatedSearches": {
            "title": "Add a related-searches row per term",
            "type": "boolean",
            "description": "Adds one free row per term (type = relatedSearches) with the related searches Google suggests, for keyword research. They are always in the SOURCE_REPORT record as well.",
            "default": false
          },
          "maxSearchesPerQuery": {
            "title": "Max Google searches per term",
            "minimum": 1,
            "maximum": 60,
            "type": "integer",
            "description": "Upper bound on the Google result pages read for one term (its own pages plus related searches). Each page has up to 100 images.",
            "default": 30
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}