{
  "openapi": "3.0.1",
  "info": {
    "title": "Shopify App Store Scraper | $2 / 1k | All-In-One",
    "description": "Captures rich profiles for listed apps on Shopify App Store Marketplace. Get deduped clean results including pricing, ratings, developer info, and highlights and more. Ideal for product research, competitive tracking or partner discovery.",
    "version": "1.0",
    "x-build-id": "rrKEpd5evWcyDxjZ0"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/fatihtahta~shopify-app-store-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-fatihtahta-shopify-app-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/fatihtahta~shopify-app-store-scraper/runs": {
      "post": {
        "operationId": "runs-sync-fatihtahta-shopify-app-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/fatihtahta~shopify-app-store-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-fatihtahta-shopify-app-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": {
          "startUrls": {
            "title": "Add Shopify App Store URLs",
            "type": "array",
            "description": "Enter one or more Shopify App Store search, category, collection, or app listing URLs. Use direct URLs for precise, repeatable collection from known App Store pages.",
            "items": {
              "type": "string"
            }
          },
          "queries": {
            "title": "Add Search Queries",
            "type": "array",
            "description": "Enter words or phrases to search for on the Shopify App Store, such as a product category, merchant workflow, or app capability. Provide at least one query or one direct URL before running the actor.",
            "items": {
              "type": "string"
            }
          },
          "built_for_shopify": {
            "title": "Include Only Built for Shopify Apps",
            "type": "boolean",
            "description": "Enable this option to focus keyword search results on apps marked as Built for Shopify. Leave it off for broader discovery across all matching apps.",
            "default": false
          },
          "works_with": {
            "title": "Choose Compatible Shopify Surfaces",
            "uniqueItems": true,
            "type": "array",
            "description": "Select one or more compatibility filters for keyword-based discovery. Use this when you need apps related to Checkout, customer accounts, or Shopify POS.",
            "items": {
              "type": "string",
              "enum": [
                "checkout",
                "customer-account",
                "point-of-sale"
              ],
              "enumTitles": [
                "Checkout | checkout apps",
                "Customer accounts | account apps",
                "Shopify POS | point-of-sale apps"
              ]
            },
            "default": []
          },
          "category": {
            "title": "Choose an App Category",
            "enum": [
              "sales-channels",
              "finding-products",
              "selling-products",
              "orders-and-shipping",
              "store-design",
              "marketing-and-conversion",
              "store-management"
            ],
            "type": "string",
            "description": "Select a category to make keyword results more targeted. Leave this unset when you want the query to search across available Shopify App Store categories."
          },
          "get_contacts": {
            "title": "Find Developer Contact Details",
            "type": "boolean",
            "description": "Enable this option to send each app's developerWebsite to the ValidatedMails Discover API and add discovered emails, phone numbers, social links, and discovery diagnostics to the output. Requires the VALIDATEDMAILS_API environment variable.",
            "default": false
          },
          "get_reviews": {
            "title": "Collect All App Reviews",
            "type": "boolean",
            "description": "Enable this option to visit each discovered listing's reviews pages and save merchant reviews as separate dataset records, including developer replies when present. Each review record includes the related listing's name, URL, handle, and other listing context.",
            "default": false
          },
          "max_reviews": {
            "title": "Set Maximum Reviews per Listing",
            "minimum": 1,
            "type": "integer",
            "description": "Enter the maximum number of review records to collect for each app listing. Leave empty to collect all available reviews for every listing. This does not change the number of app listings collected; use the main limit setting for that."
          },
          "limit": {
            "title": "Set Maximum Results per Target",
            "minimum": 1,
            "type": "integer",
            "description": "Enter the maximum number of app listing records to save for each starting URL or search query. Leave empty when you want to collect all available matching listings for each target. This limit does not cap reviews; use max_reviews for that."
          },
          "proxyConfiguration": {
            "title": "Set Up a Proxy Connection",
            "type": "object",
            "description": "Use the default proxy configuration for most runs. Adjust this only when you need a specific proxy setup for your collection environment.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ]
            }
          }
        }
      },
      "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}