{
  "openapi": "3.0.1",
  "info": {
    "title": "Chrome Web Store Scraper – Extensions, Users, Ratings & Reviews",
    "description": "Chrome Web Store scraper: search results, category listings and Chrome extension details (users, rating, version, last update, size, permissions, developer, featured and established-publisher badges, privacy policy) plus extension reviews with developer replies. No login.",
    "version": "1.0",
    "x-build-id": "SohzNiDkw3vQhbqkz"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/openharvest~chrome-web-store-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-openharvest-chrome-web-store-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/openharvest~chrome-web-store-scraper/runs": {
      "post": {
        "operationId": "runs-sync-openharvest-chrome-web-store-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/openharvest~chrome-web-store-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-openharvest-chrome-web-store-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": {
          "mode": {
            "title": "What to scrape",
            "enum": [
              "search",
              "category",
              "extensionDetails",
              "reviews"
            ],
            "type": "string",
            "description": "search = Chrome Web Store search results for your keywords; category = top extensions of a category; extensionDetails = full details for the extension IDs/URLs you list; reviews = user reviews of the extensions you list.",
            "default": "search"
          },
          "searchQueries": {
            "title": "Search keywords (mode: search)",
            "type": "array",
            "description": "One or more searches, e.g. \"password manager\", \"ad blocker\", \"ChatGPT\". Each keyword is searched separately.",
            "items": {
              "type": "string"
            }
          },
          "categories": {
            "title": "Categories (mode: category)",
            "type": "array",
            "description": "Category slugs or names: productivity/communication, productivity/workflow, productivity/tools, productivity/education, productivity/developer, lifestyle/shopping, lifestyle/news, lifestyle/entertainment, lifestyle/games, lifestyle/social, lifestyle/art, lifestyle/well_being, lifestyle/travel, lifestyle/household, lifestyle/fun, make_chrome_yours/accessibility, make_chrome_yours/functionality, make_chrome_yours/privacy, plus \"all\" (all extensions) and \"themes\". Category URLs work too.",
            "items": {
              "type": "string"
            }
          },
          "extensions": {
            "title": "Extension IDs or URLs (modes: extensionDetails, reviews)",
            "type": "array",
            "description": "32-letter extension IDs (e.g. nngceckbapebfimnlniiiahkandclblb) or Chrome Web Store detail URLs (https://chromewebstore.google.com/detail/bitwarden-password-manager/nngceckbapebfimnlniiiahkandclblb). Old chrome.google.com/webstore links work too.",
            "items": {
              "type": "string"
            }
          },
          "includeDetails": {
            "title": "Include full details for search/category results",
            "type": "boolean",
            "description": "Load each result's full detail data (developer, long description, last updated, size, languages, screenshots, privacy policy, data collection). Fast (10 extensions per request) and same price. Turn off for the quickest listing-only output.",
            "default": true
          },
          "includeReviews": {
            "title": "Also scrape reviews of each extension found",
            "type": "boolean",
            "description": "In search, category and extensionDetails modes, also scrape up to \"Max reviews per extension\" reviews for every extension (reviews are charged separately).",
            "default": false
          },
          "maxItems": {
            "title": "Max extensions",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum number of extensions to return in total (0 = no limit). You pay only for results actually returned.",
            "default": 30
          },
          "maxReviewsPerExtension": {
            "title": "Max reviews per extension",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum number of reviews per extension (0 = all available reviews).",
            "default": 50
          },
          "reviewsSort": {
            "title": "Reviews order",
            "enum": [
              "newest",
              "helpful"
            ],
            "type": "string",
            "description": "Newest reviews first, or most helpful first.",
            "default": "newest"
          },
          "language": {
            "title": "Store language",
            "type": "string",
            "description": "Language code for names and descriptions (e.g. en, de, fr, es, ja, pt-BR). Default en.",
            "default": "en"
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Not needed in normal use. Enable Apify Proxy if you see blocking or rate limits.",
            "default": {
              "useApifyProxy": 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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}