{
  "openapi": "3.0.1",
  "info": {
    "title": "Chrome Web Store Extension",
    "description": "Scrape Chrome Web Store extensions by keyword, category or URL. Get ratings, users, developer emails and phones, permissions and reviews (newest or lowest rated first), and download extension source code as .zip. Filter by rating, users and publisher.",
    "version": "0.0",
    "x-build-id": "YqfNwcscYHsdb1CXH"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/calm_builder~chrome-web-store-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-calm_builder-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/calm_builder~chrome-web-store-scraper/runs": {
      "post": {
        "operationId": "runs-sync-calm_builder-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/calm_builder~chrome-web-store-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-calm_builder-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",
        "required": [
          "proxyCountry"
        ],
        "properties": {
          "searchUrls": {
            "title": "Search keywords",
            "type": "array",
            "description": "Keywords to search the Chrome Web Store for, e.g. `SEO`, `AI assistant`, `password manager`. A full Chrome Web Store search URL also works.",
            "items": {
              "type": "string"
            }
          },
          "maxExtensionsPerSearch": {
            "title": "Max extensions per keyword",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "How many extensions to save for each keyword.",
            "default": 10
          },
          "predefinedCategories": {
            "title": "Categories",
            "type": "array",
            "description": "Store categories to scrape. Pick one or more.",
            "items": {
              "type": "string",
              "enum": [
                "https://chromewebstore.google.com/category/extensions/productivity/communication",
                "https://chromewebstore.google.com/category/extensions/productivity/developer",
                "https://chromewebstore.google.com/category/extensions/productivity/education",
                "https://chromewebstore.google.com/category/extensions/productivity/tools",
                "https://chromewebstore.google.com/category/extensions/productivity/workflow",
                "https://chromewebstore.google.com/category/extensions/lifestyle/art",
                "https://chromewebstore.google.com/category/extensions/lifestyle/entertainment",
                "https://chromewebstore.google.com/category/extensions/lifestyle/games",
                "https://chromewebstore.google.com/category/extensions/lifestyle/household",
                "https://chromewebstore.google.com/category/extensions/lifestyle/fun",
                "https://chromewebstore.google.com/category/extensions/lifestyle/news",
                "https://chromewebstore.google.com/category/extensions/lifestyle/shopping",
                "https://chromewebstore.google.com/category/extensions/lifestyle/social",
                "https://chromewebstore.google.com/category/extensions/lifestyle/travel",
                "https://chromewebstore.google.com/category/extensions/lifestyle/well_being",
                "https://chromewebstore.google.com/category/extensions/make_chrome_yours/accessibility",
                "https://chromewebstore.google.com/category/extensions/make_chrome_yours/functionality",
                "https://chromewebstore.google.com/category/extensions/make_chrome_yours/privacy"
              ],
              "enumTitles": [
                "Communication",
                "Developer Tools",
                "Education",
                "Tools",
                "Workflow & Planning",
                "Art & Design",
                "Entertainment",
                "Games",
                "Household",
                "Just for Fun",
                "News & Weather",
                "Shopping",
                "Social Networking",
                "Travel",
                "Well-being",
                "Accessibility",
                "Functionality & UI",
                "Privacy & Security"
              ]
            }
          },
          "categorySort": {
            "title": "Category order",
            "enum": [
              "popular",
              "highest_rated"
            ],
            "type": "string",
            "description": "The order the store lists category extensions in. With a limit set, this decides which extensions you get.",
            "default": "popular"
          },
          "maxExtensionsPerCategory": {
            "title": "Max extensions per category",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "How many extensions to save for each category.",
            "default": 10
          },
          "scrapeHomePage": {
            "title": "Include store home page picks",
            "type": "boolean",
            "description": "Also save the extensions currently featured on the Chrome Web Store home page (about 50 picks, changes over time).",
            "default": false
          },
          "maxExtensionsFromHomePage": {
            "title": "Max home page extensions",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "How many home page picks to save.",
            "default": 50
          },
          "directExtensions": {
            "title": "Specific extensions",
            "type": "array",
            "description": "Extension URLs or 32-character IDs, e.g. `https://chromewebstore.google.com/detail/adblock/gighmmpiobklfepjocnamgkkbiglidom` or `gighmmpiobklfepjocnamgkkbiglidom`. These always include full details.",
            "items": {
              "type": "string"
            }
          },
          "filterBy": {
            "title": "Publisher filter",
            "enum": [
              "all",
              "featured",
              "established_publishers"
            ],
            "type": "string",
            "description": "Keep only featured extensions, or only extensions from established publishers. Applies to keywords, categories and home page picks.",
            "default": "all"
          },
          "minRating": {
            "title": "Minimum rating",
            "minimum": 0,
            "maximum": 5,
            "type": "number",
            "description": "Skip extensions rated below this, e.g. `4`."
          },
          "maxRating": {
            "title": "Maximum rating",
            "minimum": 0,
            "maximum": 5,
            "type": "number",
            "description": "Skip extensions rated above this, e.g. `3.5` to find poorly rated ones."
          },
          "minUsers": {
            "title": "Minimum users",
            "minimum": 0,
            "type": "integer",
            "description": "Skip extensions with fewer users than this."
          },
          "maxUsers": {
            "title": "Maximum users",
            "minimum": 0,
            "type": "integer",
            "description": "Skip extensions with more users than this, e.g. to find small or new extensions."
          },
          "fetchDetails": {
            "title": "Get full details",
            "type": "boolean",
            "description": "Add the full listing to keyword, category and home page results: long description, developer email, phone and address, permissions, privacy practices, screenshots, languages and related extensions. Specific extensions always include this.",
            "default": false
          },
          "fetchReviews": {
            "title": "Get reviews",
            "type": "boolean",
            "description": "Add user reviews to each extension that has full details (reviewer, rating, text, date, helpful votes and the extension version reviewed).",
            "default": false
          },
          "maxReviews": {
            "title": "Max reviews per extension",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "How many reviews to save for each extension.",
            "default": 10
          },
          "reviewSort": {
            "title": "Review order",
            "enum": [
              "newest",
              "relevant",
              "lowest_rated",
              "highest_rated"
            ],
            "type": "string",
            "description": "Which reviews come first. Use *Lowest rated first* to collect complaints and bug reports.",
            "default": "newest"
          },
          "sourceCodeExtensions": {
            "title": "Download source code for",
            "type": "array",
            "description": "Extension URLs or IDs to download the source code of. Each is saved as a `.zip` file in the run's key-value store and linked from its record. Extensions listed here are scraped with full details even if no other input finds them.",
            "items": {
              "type": "string"
            }
          },
          "proxyCountry": {
            "title": "Store region",
            "enum": [
              "us",
              "af",
              "al",
              "dz",
              "as",
              "ad",
              "ao",
              "ai",
              "ag",
              "ar",
              "am",
              "aw",
              "au",
              "at",
              "az",
              "bs",
              "bh",
              "bd",
              "bb",
              "by",
              "be",
              "bz",
              "bj",
              "bm",
              "bt",
              "bo",
              "bq",
              "ba",
              "bw",
              "br",
              "io",
              "vg",
              "bn",
              "bg",
              "bf",
              "bi",
              "kh",
              "cm",
              "ca",
              "cv",
              "ky",
              "cf",
              "td",
              "cl",
              "cn",
              "co",
              "km",
              "cg",
              "cr",
              "hr",
              "cu",
              "cw",
              "cy",
              "cz",
              "cd",
              "dk",
              "dj",
              "dm",
              "do",
              "ec",
              "eg",
              "sv",
              "gq",
              "ee",
              "et",
              "fk",
              "fj",
              "fi",
              "fr",
              "gf",
              "pf",
              "ga",
              "gm",
              "ge",
              "de",
              "gh",
              "gi",
              "gr",
              "gl",
              "gd",
              "gp",
              "gu",
              "gt",
              "gg",
              "gn",
              "gw",
              "gy",
              "ht",
              "hn",
              "hk",
              "hu",
              "is",
              "in",
              "id",
              "ir",
              "iq",
              "ie",
              "im",
              "il",
              "it",
              "ci",
              "jm",
              "jp",
              "je",
              "jo",
              "kz",
              "ke",
              "xk",
              "kw",
              "kg",
              "la",
              "lv",
              "lb",
              "ls",
              "lr",
              "ly",
              "li",
              "lt",
              "lu",
              "mo",
              "mk",
              "mg",
              "mw",
              "my",
              "mv",
              "ml",
              "mt",
              "mq",
              "mr",
              "mu",
              "yt",
              "mx",
              "fm",
              "md",
              "mc",
              "mn",
              "me",
              "ms",
              "ma",
              "mz",
              "mm",
              "na",
              "np",
              "nl",
              "nc",
              "nz",
              "ni",
              "ne",
              "ng",
              "mp",
              "no",
              "om",
              "pk",
              "pw",
              "ps",
              "pa",
              "pg",
              "py",
              "pe",
              "ph",
              "pl",
              "pt",
              "pr",
              "qa",
              "re",
              "ro",
              "ru",
              "rw",
              "sh",
              "kn",
              "lc",
              "mf",
              "pm",
              "vc",
              "ws",
              "sm",
              "st",
              "sa",
              "sn",
              "rs",
              "sc",
              "sl",
              "sg",
              "sx",
              "sk",
              "si",
              "so",
              "za",
              "kr",
              "ss",
              "es",
              "lk",
              "sd",
              "sr",
              "sz",
              "se",
              "ch",
              "sy",
              "tw",
              "tj",
              "tz",
              "th",
              "tl",
              "tg",
              "to",
              "tt",
              "tn",
              "tr",
              "tm",
              "tc",
              "ug",
              "ua",
              "ae",
              "gb",
              "uy",
              "uz",
              "ve",
              "vn",
              "vi",
              "wf",
              "ye",
              "zm",
              "zw"
            ],
            "type": "string",
            "description": "The country to browse the Chrome Web Store from. Search results, category rankings and which extensions are available differ by country.",
            "default": "us"
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}