{
  "openapi": "3.0.1",
  "info": {
    "title": "Chrome Extension Category Rankings Scraper",
    "description": "Collect public Chrome Web Store category, search, and Top Charts positions with optional rich extension details.",
    "version": "1.2",
    "x-build-id": "1HsbOo9H3i0fjohfu"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/googleapi~chrome-extension-category-rankings-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-googleapi-chrome-extension-category-rankings-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/googleapi~chrome-extension-category-rankings-scraper/runs": {
      "post": {
        "operationId": "runs-sync-googleapi-chrome-extension-category-rankings-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/googleapi~chrome-extension-category-rankings-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-googleapi-chrome-extension-category-rankings-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": {
          "startUrls": {
            "title": "Start URLs",
            "maxItems": 50,
            "type": "array",
            "description": "Official Chrome Web Store category, search, Top Charts, or detail URLs. These sources take precedence over generated category/query sources.",
            "items": {
              "type": "object",
              "properties": {
                "url": {
                  "title": "Chrome Web Store URL",
                  "description": "Official HTTPS category, search, Top Charts, or detail URL.",
                  "type": "string"
                }
              },
              "required": [
                "url"
              ],
              "additionalProperties": false
            }
          },
          "sourceUrls": {
            "title": "Source URL aliases",
            "maxItems": 50,
            "type": "array",
            "description": "Compatibility alias for an array of official Chrome Web Store source URLs.",
            "items": {
              "type": "string",
              "maxLength": 500
            }
          },
          "urls": {
            "title": "URL aliases",
            "maxItems": 50,
            "type": "array",
            "description": "Compatibility alias for sourceUrls.",
            "items": {
              "type": "string",
              "maxLength": 500
            }
          },
          "queries": {
            "title": "Search queries",
            "maxItems": 20,
            "type": "array",
            "description": "Public search terms converted to Chrome Web Store search URLs.",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 200
            }
          },
          "query": {
            "title": "Single query alias",
            "maxLength": 200,
            "type": "string",
            "description": "Compatibility alias for one search query."
          },
          "searchQuery": {
            "title": "Search query alias",
            "maxLength": 200,
            "type": "string",
            "description": "Compatibility alias for one search query."
          },
          "category": {
            "title": "Category",
            "maxLength": 100,
            "type": "string",
            "description": "Specific category path used when no explicit source or query is supplied, for example productivity/tools or productivity/developer. The mixed Extensions landing page is not a single ranked category.",
            "default": "productivity/tools"
          },
          "extensionIds": {
            "title": "Extension IDs",
            "maxItems": 50,
            "type": "array",
            "description": "Compatibility detail-source alias for 32-character Chrome extension IDs.",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 500
            }
          },
          "mode": {
            "title": "Legacy mode",
            "enum": [
              "search",
              "details"
            ],
            "type": "string",
            "description": "Compatibility alias accepting search or details; source fields still determine the actual target pages."
          },
          "page": {
            "title": "Starting page",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "One-based page to begin collecting from. The Actor follows observed next-page links to reach it, preserving the actual source order.",
            "default": 1
          },
          "maxItems": {
            "title": "Maximum extensions",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Global maximum normal records emitted after filtering and sorting.",
            "default": 25
          },
          "maxPages": {
            "title": "Maximum pages per source",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "Maximum pages collected per source starting from page. Pagination follows observed same-host next links and stops on missing or repeated URLs.",
            "default": 1
          },
          "maxRequests": {
            "title": "Maximum source requests",
            "minimum": 1,
            "maximum": 200,
            "type": "integer",
            "description": "Global cap on listing and detail page requests.",
            "default": 75
          },
          "deduplicate": {
            "title": "Deduplicate extensions",
            "type": "boolean",
            "description": "Deduplicate records globally by extension ID across pages and sources.",
            "default": true
          },
          "sortBy": {
            "title": "Sort results",
            "enum": [
              "source_order",
              "rating_desc",
              "review_count_desc",
              "user_count_desc"
            ],
            "type": "string",
            "description": "Global client-side order after the permitted source pages are collected.",
            "default": "source_order"
          },
          "minRating": {
            "title": "Minimum rating",
            "minimum": 0,
            "maximum": 5,
            "type": "number",
            "description": "Optional minimum rating. Missing ratings fail this filter only when the value is greater than zero.",
            "default": 0
          },
          "minReviewCount": {
            "title": "Minimum review count",
            "minimum": 0,
            "maximum": 1000000000,
            "type": "integer",
            "description": "Optional minimum public review/rating count. Missing counts fail this filter only when the value is greater than zero.",
            "default": 0
          },
          "includeDetails": {
            "title": "Include detail enrichment",
            "type": "boolean",
            "description": "Fetch selected public detail pages for full Overview text, publisher contacts, privacy, links, size, languages, and media. Manifest fields already present on listing pages are collected without extra detail requests.",
            "default": false
          },
          "maxDetailItems": {
            "title": "Maximum detail pages",
            "minimum": 0,
            "maximum": 50,
            "type": "integer",
            "description": "Global bound on selected detail pages fetched after listing collection.",
            "default": 10
          },
          "maxDetailRequests": {
            "title": "Maximum detail requests alias",
            "minimum": 0,
            "maximum": 50,
            "type": "integer",
            "description": "Compatibility alias for maxDetailItems."
          },
          "includeMedia": {
            "title": "Include media",
            "type": "boolean",
            "description": "Retain extension images that are associated with a listing card or detail page.",
            "default": true
          },
          "includePageText": {
            "title": "Include listing text",
            "type": "boolean",
            "description": "Retain the public text preview extracted from each listing page.",
            "default": true
          },
          "requestDelayMs": {
            "title": "Request delay (ms)",
            "minimum": 0,
            "maximum": 10000,
            "type": "integer",
            "description": "Delay between public requests.",
            "default": 0
          },
          "maxConcurrency": {
            "title": "Maximum concurrency",
            "minimum": 1,
            "maximum": 1,
            "type": "integer",
            "description": "Fixed at 1 so pages per source remain ordered and bounded.",
            "default": 1
          },
          "maxRequestRetries": {
            "title": "Maximum request retries",
            "minimum": 0,
            "maximum": 3,
            "type": "integer",
            "description": "Bounded retries for request failures, timeouts, and HTTP 5xx responses.",
            "default": 1
          },
          "maxRetries": {
            "title": "Maximum retries alias",
            "minimum": 0,
            "maximum": 3,
            "type": "integer",
            "description": "Compatibility alias for maxRequestRetries."
          },
          "requestTimeoutSecs": {
            "title": "Request timeout (seconds)",
            "minimum": 5,
            "maximum": 120,
            "type": "integer",
            "description": "Timeout for each public request.",
            "default": 25
          },
          "timeoutSecs": {
            "title": "Request timeout alias (seconds)",
            "minimum": 5,
            "maximum": 120,
            "type": "integer",
            "description": "Compatibility alias for requestTimeoutSecs."
          },
          "requestTimeoutMs": {
            "title": "Request timeout (milliseconds)",
            "minimum": 5000,
            "maximum": 120000,
            "type": "integer",
            "description": "Alternative timeout form."
          },
          "maxResponseBytes": {
            "title": "Maximum response bytes",
            "minimum": 10000,
            "maximum": 5000000,
            "type": "integer",
            "description": "Bound HTML retained from each public page.",
            "default": 3000000
          },
          "userAgent": {
            "title": "User agent",
            "maxLength": 200,
            "type": "string",
            "description": "Optional ordinary user-agent label; no stealth or fingerprint evasion is used."
          },
          "locale": {
            "title": "Locale",
            "pattern": "^[A-Za-z]{2,3}(?:-[A-Za-z]{2})?$",
            "type": "string",
            "description": "Locale query used for generated sources, such as en-US.",
            "default": "en-US"
          },
          "language": {
            "title": "Language alias",
            "pattern": "^[A-Za-z]{2,3}(?:-[A-Za-z]{2})?$",
            "type": "string",
            "description": "Compatibility alias for locale."
          },
          "proxyConfiguration": {
            "title": "Proxy configuration (compatibility only)",
            "type": "object",
            "description": "Accepted for compatibility but not wired into transport; direct public HTTPS is used and the run summary records that it was ignored."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}