{
  "openapi": "3.0.1",
  "info": {
    "title": "Google Shopping Scraper: Prices, Sellers & Price Tracker",
    "description": "Google Shopping scraper for any product search in 45 countries: price, old price, discount, seller, rating and delivery. Get every store's offer with shipping and total price, track competitor prices and MAP violations, plus specs and variants. You pay only for products that have a price.",
    "version": "1.0",
    "x-build-id": "yy4EQP5E8b2pDkyGc"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/vncntlabs~google-shopping-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-vncntlabs-google-shopping-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/vncntlabs~google-shopping-scraper/runs": {
      "post": {
        "operationId": "runs-sync-vncntlabs-google-shopping-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/vncntlabs~google-shopping-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-vncntlabs-google-shopping-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",
        "properties": {
          "queries": {
            "title": "Search queries",
            "type": "array",
            "description": "Products to search on Google Shopping, one per line (up to 200): <code>airpods pro 2</code>, <code>running shoes</code>, a model number <code>KSM150PSER</code> or a GTIN/EAN. Each query returns Google Shopping's product listings in Google's order.",
            "items": {
              "type": "string"
            }
          },
          "products": {
            "title": "Specific products (URL or ID)",
            "type": "array",
            "description": "Optional. Google Shopping product URLs (copy from the browser) or numeric product IDs (<code>productId</code> from a previous run), up to 500. Returns every store's offer for each product (price, shipping, total, condition), with the MAP and my-store checks. Ideal for scheduled price monitoring of your own catalog.",
            "items": {
              "type": "string"
            }
          },
          "country": {
            "title": "Country",
            "enum": [
              "Argentina",
              "Australia",
              "Austria",
              "Belgium",
              "Brazil",
              "Canada",
              "Chile",
              "Colombia",
              "Czechia",
              "Denmark",
              "Finland",
              "France",
              "Germany",
              "Greece",
              "Hungary",
              "India",
              "Indonesia",
              "Ireland",
              "Israel",
              "Italy",
              "Japan",
              "Malaysia",
              "Mexico",
              "Netherlands",
              "New Zealand",
              "Norway",
              "Philippines",
              "Poland",
              "Portugal",
              "Romania",
              "Saudi Arabia",
              "Singapore",
              "Slovakia",
              "South Africa",
              "South Korea",
              "Spain",
              "Sweden",
              "Switzerland",
              "Thailand",
              "Turkiye",
              "Ukraine",
              "United Arab Emirates",
              "United Kingdom",
              "United States",
              "Vietnam"
            ],
            "type": "string",
            "description": "Google Shopping country (prices, currency and stores of that country).",
            "default": "United States"
          },
          "language": {
            "title": "Language",
            "type": "string",
            "description": "Optional language code (en, de, fr, es, pt-BR...). Defaults to the country's main language."
          },
          "maxProductsPerQuery": {
            "title": "Max products per query",
            "minimum": 1,
            "maximum": 120,
            "type": "integer",
            "description": "Product listings per search (Google's order), up to 120.",
            "default": 40
          },
          "offersForTopProducts": {
            "title": "All store offers for the top N products",
            "minimum": 0,
            "maximum": 40,
            "type": "integer",
            "description": "For the first N priced products of each search, also fetch every store's offer: seller, price, shipping, total price, condition, availability and link, sorted cheapest first, with price spread. Charged per product (product-offers), only when Google shows offers.",
            "default": 0
          },
          "detailsForTopProducts": {
            "title": "Product details for the top N products",
            "minimum": 0,
            "maximum": 40,
            "type": "integer",
            "description": "For the first N priced products of each search: description, specifications, brand, variants (colors/sizes) and image count. Charged per product (product-details).",
            "default": 0
          },
          "detailsForProducts": {
            "title": "Product details for specific products",
            "type": "boolean",
            "description": "Also fetch details for every product in 'Specific products'.",
            "default": false
          },
          "mapPrice": {
            "title": "MAP price (minimum advertised price)",
            "minimum": 0,
            "type": "number",
            "description": "Optional. Flags every store offer advertised below this price (belowMap, belowMapCount, belowMapSellers). Works on store offers: set 'All store offers for the top N' or add specific products."
          },
          "myStore": {
            "title": "My store (domain or name)",
            "type": "string",
            "description": "Optional, e.g. <code>walmart.com</code> or <code>Best Buy</code>. For each product with offers: your price, your price rank, how many competitors are cheaper and the gap to the lowest competitor."
          },
          "minPrice": {
            "title": "Min price",
            "minimum": 0,
            "type": "integer",
            "description": "In the country's currency."
          },
          "maxPrice": {
            "title": "Max price",
            "minimum": 1,
            "type": "integer",
            "description": "In the country's currency."
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "relevance",
              "price_low_to_high",
              "price_high_to_low",
              "review_score"
            ],
            "type": "string",
            "description": "Google Shopping sort order.",
            "default": "relevance"
          },
          "includeImages": {
            "title": "All product images",
            "type": "boolean",
            "description": "Include all image URLs from product details (otherwise only the main image).",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}