{
  "openapi": "3.0.1",
  "info": {
    "title": "Shopify App Store Scraper — Apps, Reviews & App Ideas",
    "description": "Scrape the Shopify App Store: app listings with USD pricing plans, rating histogram, launch date, developer, categories and features; reviews with star filter and developer replies; developer profiles; and category snapshots with an opportunity score to find app ideas. No login.",
    "version": "0.1",
    "x-build-id": "IYV4LOcE0COniTMfg"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/oswaldocarabano~shopify-app-store-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-oswaldocarabano-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/oswaldocarabano~shopify-app-store-scraper/runs": {
      "post": {
        "operationId": "runs-sync-oswaldocarabano-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/oswaldocarabano~shopify-app-store-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-oswaldocarabano-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": {
          "outputType": {
            "title": "What to extract",
            "enum": [
              "apps",
              "app-details",
              "reviews",
              "developers",
              "category-snapshot"
            ],
            "type": "string",
            "description": "One row type per run. <b>apps</b>: full app listings (pricing plans in USD, rating histogram, launch date, developer, categories and features, languages, integrations, data access, similar apps) for the categories or search terms below — or for the whole store when both are empty. <b>app-details</b>: the same for the app links you paste. <b>reviews</b>: merchant reviews with star filter, store, country, time using the app and the developer reply. <b>developers</b>: developer profiles with every app, total reviews, rating, website and business address. <b>category-snapshot</b>: one aggregated row per category with an opportunityScore (demand, dissatisfaction, competition) to find app ideas.",
            "default": "apps"
          },
          "categories": {
            "title": "Categories",
            "type": "array",
            "description": "Shopify App Store categories (122 subcategories with full listings; a parent category includes all of its subcategories). You can also paste category links (https://apps.shopify.com/categories/…). Empty, with no search terms or links = every category of the store.",
            "items": {
              "type": "string",
              "enum": [
                "finding-products",
                "finding-products-sourcing-options",
                "finding-products-sourcing-options-dropshipping",
                "finding-products-sourcing-options-print-on-demand-pod",
                "finding-products-sourcing-options-sourcing-options-other",
                "finding-products-sourcing-options-wholesale",
                "marketing-and-conversion",
                "marketing-and-conversion-advertising",
                "marketing-and-conversion-advertising-ads",
                "marketing-and-conversion-advertising-advertising-other",
                "marketing-and-conversion-advertising-affiliate-programs",
                "marketing-and-conversion-checkout",
                "marketing-and-conversion-checkout-cart-customization",
                "marketing-and-conversion-checkout-checkout-other",
                "marketing-and-conversion-checkout-order-limits",
                "marketing-and-conversion-customer-loyalty",
                "marketing-and-conversion-customer-loyalty-customer-loyalty-other",
                "marketing-and-conversion-customer-loyalty-donations",
                "marketing-and-conversion-customer-loyalty-loyalty-and-rewards",
                "marketing-and-conversion-customer-loyalty-wishlists",
                "marketing-and-conversion-gifts",
                "marketing-and-conversion-gifts-gift-cards",
                "marketing-and-conversion-gifts-gift-wrap-and-messages",
                "marketing-and-conversion-gifts-gifts-other",
                "marketing-and-conversion-marketing",
                "marketing-and-conversion-marketing-abandoned-cart",
                "marketing-and-conversion-marketing-email-marketing",
                "marketing-and-conversion-marketing-marketing-other",
                "marketing-and-conversion-marketing-sms-marketing",
                "marketing-and-conversion-marketing-web-push",
                "marketing-and-conversion-promotions",
                "marketing-and-conversion-promotions-discounts",
                "marketing-and-conversion-promotions-giveaways-and-contests",
                "marketing-and-conversion-promotions-promotions-other",
                "marketing-and-conversion-social-trust",
                "marketing-and-conversion-social-trust-product-reviews",
                "marketing-and-conversion-social-trust-social-proof",
                "marketing-and-conversion-social-trust-social-trust-other",
                "marketing-and-conversion-upsell-and-bundles",
                "marketing-and-conversion-upsell-and-bundles-countdown-timer",
                "marketing-and-conversion-upsell-and-bundles-pre-orders",
                "marketing-and-conversion-upsell-and-bundles-product-bundles",
                "marketing-and-conversion-upsell-and-bundles-stock-alerts",
                "marketing-and-conversion-upsell-and-bundles-upsell-and-bundles-other",
                "marketing-and-conversion-upsell-and-bundles-upsell-and-cross-sell",
                "orders-and-shipping",
                "orders-and-shipping-inventory",
                "orders-and-shipping-inventory-erp",
                "orders-and-shipping-inventory-inventory-optimization",
                "orders-and-shipping-inventory-inventory-other",
                "orders-and-shipping-inventory-inventory-sync",
                "orders-and-shipping-orders",
                "orders-and-shipping-orders-invoices-and-receipts",
                "orders-and-shipping-orders-order-editing",
                "orders-and-shipping-orders-order-tracking",
                "orders-and-shipping-orders-orders-other",
                "orders-and-shipping-returns-and-warranty",
                "orders-and-shipping-returns-and-warranty-returns-and-exchanges",
                "orders-and-shipping-returns-and-warranty-returns-and-warranty-other",
                "orders-and-shipping-returns-and-warranty-warranties-and-insurance",
                "orders-and-shipping-shipping-solutions",
                "orders-and-shipping-shipping-solutions-delivery-and-pickup",
                "orders-and-shipping-shipping-solutions-shipping",
                "orders-and-shipping-shipping-solutions-shipping-rates",
                "orders-and-shipping-shipping-solutions-shipping-solutions-other",
                "orders-and-shipping-shipping-solutions-third-party-logistics-3pl",
                "sales-channels",
                "sales-channels-selling-in-person",
                "sales-channels-selling-in-person-retail",
                "sales-channels-selling-in-person-selling-in-person-other",
                "sales-channels-selling-in-person-sku-and-barcodes",
                "sales-channels-selling-in-person-store-locator",
                "sales-channels-selling-online",
                "sales-channels-selling-online-marketplaces",
                "sales-channels-selling-online-product-feeds",
                "sales-channels-selling-online-selling-online-other",
                "sales-channels-selling-online-store-data-importer",
                "selling-products",
                "selling-products-custom-products",
                "selling-products-custom-products-custom-file-upload",
                "selling-products-custom-products-custom-products-other",
                "selling-products-custom-products-product-variants",
                "selling-products-digital-goods-and-services",
                "selling-products-digital-goods-and-services-digital-goods-and-services-other",
                "selling-products-digital-goods-and-services-digital-products",
                "selling-products-digital-goods-and-services-event-booking",
                "selling-products-digital-goods-and-services-nfts-and-tokengating",
                "selling-products-payments",
                "selling-products-payments-pay-later",
                "selling-products-payments-payment-experience",
                "selling-products-payments-payment-options-other",
                "selling-products-payments-subscriptions",
                "selling-products-pricing",
                "selling-products-pricing-pricing-optimization",
                "selling-products-pricing-pricing-other",
                "selling-products-pricing-pricing-quotes",
                "store-design",
                "store-design-content",
                "store-design-content-blogs",
                "store-design-content-content-other",
                "store-design-content-metafields",
                "store-design-content-product-content",
                "store-design-design-elements",
                "store-design-design-elements-animation-and-effects",
                "store-design-design-elements-badges-and-icons",
                "store-design-design-elements-design-elements-other",
                "store-design-images-and-media",
                "store-design-images-and-media-3d-ar-vr",
                "store-design-images-and-media-image-editor",
                "store-design-images-and-media-image-gallery",
                "store-design-images-and-media-images-and-media-other",
                "store-design-images-and-media-video-and-livestream",
                "store-design-internationalization",
                "store-design-internationalization-cookie-consent",
                "store-design-internationalization-currency-and-translation",
                "store-design-internationalization-geolocation",
                "store-design-internationalization-internationalization-other",
                "store-design-notifications",
                "store-design-notifications-banners",
                "store-design-notifications-forms",
                "store-design-notifications-notifications-other",
                "store-design-notifications-pop-ups",
                "store-design-product-display",
                "store-design-product-display-collections",
                "store-design-product-display-product-comparison",
                "store-design-product-display-product-display-other",
                "store-design-search-and-navigation",
                "store-design-search-and-navigation-navigation-and-menus",
                "store-design-search-and-navigation-search-and-filters",
                "store-design-search-and-navigation-search-and-navigation-other",
                "store-design-site-optimization",
                "store-design-site-optimization-accessibility",
                "store-design-site-optimization-seo",
                "store-design-site-optimization-site-optimization-other",
                "store-design-storefronts",
                "store-design-storefronts-mobile-app-builder",
                "store-design-storefronts-page-builder",
                "store-design-storefronts-storefronts-other",
                "store-management",
                "store-management-finances",
                "store-management-finances-accounting",
                "store-management-finances-finances-other",
                "store-management-finances-taxes",
                "store-management-operations",
                "store-management-operations-analytics",
                "store-management-operations-bulk-editor",
                "store-management-operations-operations-other",
                "store-management-operations-staff-notifications",
                "store-management-operations-workflow-automation",
                "store-management-security",
                "store-management-security-accounts-and-login",
                "store-management-security-anti-theft",
                "store-management-security-fraud",
                "store-management-security-legal",
                "store-management-security-security-other",
                "store-management-support",
                "store-management-support-chat",
                "store-management-support-faq",
                "store-management-support-helpdesk",
                "store-management-support-support-other",
                "store-management-support-surveys"
              ],
              "enumTitles": [
                "Finding products — all subcategories",
                "Finding products › Sourcing options — all subcategories",
                "Finding products › Sourcing options › Dropshipping (608 apps)",
                "Finding products › Sourcing options › Print on demand (POD) (364 apps)",
                "Finding products › Sourcing options › Sourcing options - Other (107 apps)",
                "Finding products › Sourcing options › Wholesale (328 apps)",
                "Marketing and conversion — all subcategories",
                "Marketing and conversion › Advertising — all subcategories",
                "Marketing and conversion › Advertising › Ads (394 apps)",
                "Marketing and conversion › Advertising › Advertising - Other (176 apps)",
                "Marketing and conversion › Advertising › Affiliate program (284 apps)",
                "Marketing and conversion › Checkout — all subcategories",
                "Marketing and conversion › Checkout › Cart customization (560 apps)",
                "Marketing and conversion › Checkout › Checkout - Other (410 apps)",
                "Marketing and conversion › Checkout › Order limit (153 apps)",
                "Marketing and conversion › Customer loyalty — all subcategories",
                "Marketing and conversion › Customer loyalty › Customer loyalty - Other (83 apps)",
                "Marketing and conversion › Customer loyalty › Donation (80 apps)",
                "Marketing and conversion › Customer loyalty › Loyalty and reward (453 apps)",
                "Marketing and conversion › Customer loyalty › Wishlist (235 apps)",
                "Marketing and conversion › Gift — all subcategories",
                "Marketing and conversion › Gift › Gift card (56 apps)",
                "Marketing and conversion › Gift › Gift wrap and message (67 apps)",
                "Marketing and conversion › Gift › Gifts - Other (83 apps)",
                "Marketing and conversion › Marketing — all subcategories",
                "Marketing and conversion › Marketing › Abandoned cart (363 apps)",
                "Marketing and conversion › Marketing › Email marketing (424 apps)",
                "Marketing and conversion › Marketing › Marketing - Other (373 apps)",
                "Marketing and conversion › Marketing › SMS marketing (163 apps)",
                "Marketing and conversion › Marketing › Web push (67 apps)",
                "Marketing and conversion › Promotion — all subcategories",
                "Marketing and conversion › Promotion › Discount (1167 apps)",
                "Marketing and conversion › Promotion › Giveaways and contests (69 apps)",
                "Marketing and conversion › Promotion › Promotions - Other (207 apps)",
                "Marketing and conversion › Social trust — all subcategories",
                "Marketing and conversion › Social trust › Product review (481 apps)",
                "Marketing and conversion › Social trust › Social proof (371 apps)",
                "Marketing and conversion › Social trust › Social trust - Other (108 apps)",
                "Marketing and conversion › Upsell and bundle — all subcategories",
                "Marketing and conversion › Upsell and bundle › Countdown timer (196 apps)",
                "Marketing and conversion › Upsell and bundle › Pre-order (116 apps)",
                "Marketing and conversion › Upsell and bundle › Product bundle (497 apps)",
                "Marketing and conversion › Upsell and bundle › Stock alert (317 apps)",
                "Marketing and conversion › Upsell and bundle › Upsell and bundles - Other (153 apps)",
                "Marketing and conversion › Upsell and bundle › Upsell and cross-sell (1183 apps)",
                "Orders and shipping — all subcategories",
                "Orders and shipping › Inventory — all subcategories",
                "Orders and shipping › Inventory › ERP (210 apps)",
                "Orders and shipping › Inventory › Inventory optimization (688 apps)",
                "Orders and shipping › Inventory › Inventory - Other (246 apps)",
                "Orders and shipping › Inventory › Inventory sync (645 apps)",
                "Orders and shipping › Order — all subcategories",
                "Orders and shipping › Order › Invoice and receipt (510 apps)",
                "Orders and shipping › Order › Order editing (187 apps)",
                "Orders and shipping › Order › Order tracking (325 apps)",
                "Orders and shipping › Order › Orders - Other (512 apps)",
                "Orders and shipping › Return and warranty — all subcategories",
                "Orders and shipping › Return and warranty › Returns and exchanges (262 apps)",
                "Orders and shipping › Return and warranty › Returns and warranty - Other (50 apps)",
                "Orders and shipping › Return and warranty › Warranties and insurance (100 apps)",
                "Orders and shipping › Shipping solution — all subcategories",
                "Orders and shipping › Shipping solution › Delivery and pickup (636 apps)",
                "Orders and shipping › Shipping solution › Shipping (1119 apps)",
                "Orders and shipping › Shipping solution › Shipping rate (544 apps)",
                "Orders and shipping › Shipping solution › Shipping solutions - Other (472 apps)",
                "Orders and shipping › Shipping solution › Third-party logistics (3PL) (236 apps)",
                "Sales channel — all subcategories",
                "Sales channel › Selling in person — all subcategories",
                "Sales channel › Selling in person › Retail (156 apps)",
                "Sales channel › Selling in person › Selling in person - Other (54 apps)",
                "Sales channel › Selling in person › SKU and barcode (114 apps)",
                "Sales channel › Selling in person › Store locator (160 apps)",
                "Sales channel › Selling online — all subcategories",
                "Sales channel › Selling online › Marketplace (240 apps)",
                "Sales channel › Selling online › Product feed (311 apps)",
                "Sales channel › Selling online › Selling online - Other (145 apps)",
                "Sales channel › Selling online › Store data importer (451 apps)",
                "Selling products — all subcategories",
                "Selling products › Custom product — all subcategories",
                "Selling products › Custom product › Custom file upload (196 apps)",
                "Selling products › Custom product › Custom products - Other (250 apps)",
                "Selling products › Custom product › Product variant (551 apps)",
                "Selling products › Digital goods and service — all subcategories",
                "Selling products › Digital goods and service › Digital goods and services - Other (47 apps)",
                "Selling products › Digital goods and service › Digital product (125 apps)",
                "Selling products › Digital goods and service › Event booking (155 apps)",
                "Selling products › Digital goods and service › NFT and tokengating (13 apps)",
                "Selling products › Payment — all subcategories",
                "Selling products › Payment › Pay later (101 apps)",
                "Selling products › Payment › Payment experience (124 apps)",
                "Selling products › Payment › Payment options - Other (96 apps)",
                "Selling products › Payment › Subscription (156 apps)",
                "Selling products › Pricing — all subcategories",
                "Selling products › Pricing › Pricing optimization (367 apps)",
                "Selling products › Pricing › Pricing - Other (161 apps)",
                "Selling products › Pricing › Pricing quote (212 apps)",
                "Store design — all subcategories",
                "Store design › Content — all subcategories",
                "Store design › Content › Blog (255 apps)",
                "Store design › Content › Content - Other (214 apps)",
                "Store design › Content › Metafield (180 apps)",
                "Store design › Content › Product content (501 apps)",
                "Store design › Design element — all subcategories",
                "Store design › Design element › Animation and effect (136 apps)",
                "Store design › Design element › Badge and icon (407 apps)",
                "Store design › Design element › Design elements - Other (308 apps)",
                "Store design › Image and media — all subcategories",
                "Store design › Image and media › 3D/AR/VR (370 apps)",
                "Store design › Image and media › Image editor (403 apps)",
                "Store design › Image and media › Image gallery (257 apps)",
                "Store design › Image and media › Images and media - Other (305 apps)",
                "Store design › Image and media › Video and livestream (310 apps)",
                "Store design › Internationalization — all subcategories",
                "Store design › Internationalization › Cookie consent (90 apps)",
                "Store design › Internationalization › Currency and translation (190 apps)",
                "Store design › Internationalization › Geolocation (152 apps)",
                "Store design › Internationalization › Internationalization - Other (45 apps)",
                "Store design › Notification — all subcategories",
                "Store design › Notification › Banner (448 apps)",
                "Store design › Notification › Form (206 apps)",
                "Store design › Notification › Notifications - Other (82 apps)",
                "Store design › Notification › Pop-up (489 apps)",
                "Store design › Product display — all subcategories",
                "Store design › Product display › Collection (160 apps)",
                "Store design › Product display › Product comparison (253 apps)",
                "Store design › Product display › Product display - Other (489 apps)",
                "Store design › Search and navigation — all subcategories",
                "Store design › Search and navigation › Navigation and menu (159 apps)",
                "Store design › Search and navigation › Search and filter (309 apps)",
                "Store design › Search and navigation › Search and navigation - Other (114 apps)",
                "Store design › Site optimization — all subcategories",
                "Store design › Site optimization › Accessibility (156 apps)",
                "Store design › Site optimization › SEO (1192 apps)",
                "Store design › Site optimization › Site optimization - Other (267 apps)",
                "Store design › Storefront — all subcategories",
                "Store design › Storefront › Mobile app builder (109 apps)",
                "Store design › Storefront › Page builder (386 apps)",
                "Store design › Storefront › Storefronts - Other (296 apps)",
                "Store management — all subcategories",
                "Store management › Finance — all subcategories",
                "Store management › Finance › Accounting (351 apps)",
                "Store management › Finance › Finances - Other (84 apps)",
                "Store management › Finance › Tax (206 apps)",
                "Store management › Operations — all subcategories",
                "Store management › Operations › Analytics (1671 apps)",
                "Store management › Operations › Bulk editor (549 apps)",
                "Store management › Operations › Operations - Other (254 apps)",
                "Store management › Operations › Staff notification (122 apps)",
                "Store management › Operations › Workflow automation (599 apps)",
                "Store management › Security — all subcategories",
                "Store management › Security › Accounts and login (208 apps)",
                "Store management › Security › Anti theft (101 apps)",
                "Store management › Security › Fraud (306 apps)",
                "Store management › Security › Legal (579 apps)",
                "Store management › Security › Security - Other (132 apps)",
                "Store management › Support — all subcategories",
                "Store management › Support › Chat (1024 apps)",
                "Store management › Support › FAQ (139 apps)",
                "Store management › Support › Helpdesk (265 apps)",
                "Store management › Support › Support - Other (139 apps)",
                "Store management › Support › Survey (165 apps)"
              ]
            },
            "default": []
          },
          "search": {
            "title": "Search terms",
            "maxItems": 20,
            "type": "array",
            "description": "Shopify App Store search, 24 apps per page in Shopify's relevance order. Plain words only (letters, digits, spaces and & ' + . , -). Shopify throttles its search hard (measured: a throttle response from the 1st or 2nd request on one connection); the actor switches connections automatically, so search runs are a little slower than category runs.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "appUrls": {
            "title": "App links or handles",
            "maxItems": 5000,
            "type": "array",
            "description": "Apps to scrape directly, e.g. https://apps.shopify.com/klaviyo-email-marketing or just klaviyo-email-marketing. Used by app-details, reviews and developers. Pasting links with the type \"Apps\" switches the run to app details; the filters are not applied to pasted links. Renamed apps are followed to their new address.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "developers": {
            "title": "Developer links or handles (for developers)",
            "maxItems": 2000,
            "type": "array",
            "description": "Developer pages, e.g. https://apps.shopify.com/partners/klaviyo or klaviyo. Pasting them with the type \"Apps\" switches the run to developers.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "maxItems": {
            "title": "Max rows",
            "minimum": 1,
            "maximum": 50000,
            "type": "integer",
            "description": "Rows delivered (and charged) at most: apps, reviews, developers or category snapshots. Duplicates and error rows are never charged. The store has about 28,800 apps. Empty = 20, or every link you pasted."
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "relevance",
              "newest",
              "most-reviews",
              "highest-rating",
              "lowest-rating"
            ],
            "type": "string",
            "description": "Relevance and Newest are Shopify's own orders (Newest applies to category listings). Most reviews, Highest rating and Lowest rating are computed by the actor: it first reads every app card of the selected categories or searches (24 per page, cheap) and then fetches the top ones.",
            "default": "relevance"
          },
          "minRating": {
            "title": "Min rating",
            "minimum": 0,
            "maximum": 5,
            "type": "number",
            "description": "Apps rated at least this (0–5). 58% of the store has no reviews and therefore no rating: those apps never pass a rating filter."
          },
          "maxRating": {
            "title": "Max rating",
            "minimum": 0,
            "maximum": 5,
            "type": "number",
            "description": "Apps rated at most this — e.g. 4 finds popular apps that merchants are unhappy with."
          },
          "minReviews": {
            "title": "Min number of reviews",
            "minimum": 0,
            "type": "integer",
            "description": "The number of reviews is the public usage signal of a Shopify app."
          },
          "maxReviews": {
            "title": "Max number of reviews",
            "minimum": 0,
            "type": "integer",
            "description": "E.g. 20 to find young or niche apps."
          },
          "launchedAfter": {
            "title": "Launched on or after",
            "type": "string",
            "description": "Date like 2025-01-01. Checked on each app page: the run checks up to 100 candidates per requested row (at least 200) and then stops, saying so in the status."
          },
          "launchedBefore": {
            "title": "Launched on or before",
            "type": "string",
            "description": "Date like 2020-12-31. Checked on each app page (same scan limit as above)."
          },
          "maxLowestPrice": {
            "title": "Max starting price (USD / month)",
            "minimum": 0,
            "type": "number",
            "description": "Cheapest plan at most this, 0 = apps with a free plan. Checked on each app page (same scan limit as above)."
          },
          "freePlanOnly": {
            "title": "Only apps with a free plan",
            "type": "boolean",
            "description": "Checked on the listing label first and confirmed with the pricing plans.",
            "default": false
          },
          "builtForShopify": {
            "title": "Only \"Built for Shopify\" apps",
            "type": "boolean",
            "description": "Shopify's own quality badge (6% of the store). Sent to Shopify as its native filter.",
            "default": false
          },
          "reviewsStars": {
            "title": "Review stars (for reviews)",
            "type": "array",
            "description": "Only reviews with these star ratings, e.g. [1, 2] for complaints. Sent to Shopify as its native filter. Empty = all.",
            "items": {
              "type": "string",
              "enum": [
                "1",
                "2",
                "3",
                "4",
                "5"
              ],
              "enumTitles": [
                "1 star",
                "2 stars",
                "3 stars",
                "4 stars",
                "5 stars"
              ]
            },
            "default": []
          },
          "reviewsSort": {
            "title": "Review order",
            "enum": [
              "newest",
              "relevance"
            ],
            "type": "string",
            "description": "Newest first or Shopify's \"most relevant\".",
            "default": "newest"
          },
          "reviewsSince": {
            "title": "Reviews since",
            "type": "string",
            "description": "Only reviews dated on or after this date (2026-01-01). With newest first, paging stops after a page entirely older than the date (Shopify's newest order is not strictly by the displayed date)."
          },
          "maxReviewsPerApp": {
            "title": "Max reviews per app",
            "minimum": 1,
            "maximum": 20000,
            "type": "integer",
            "description": "Reviews delivered at most for each app (10 per page).",
            "default": 100
          },
          "snapshotDepth": {
            "title": "Snapshot depth (for category-snapshot)",
            "enum": [
              "full",
              "listing"
            ],
            "type": "string",
            "description": "<b>full</b>: reads every app page of the category (exact cheapest price and launch dates → apps launched in the last 12 months, newest apps); a category of 300 apps takes about 30–60 s. <b>listing</b>: only the listing cards (rating, reviews, price label), 10× faster, without launch dates.",
            "default": "full"
          },
          "maxCacheAgeHours": {
            "title": "Reuse app pages fetched in the last N hours",
            "minimum": 0,
            "maximum": 168,
            "type": "integer",
            "description": "When the shared cache is available, an app or developer page fetched by any run in the last N hours is reused (rows carry cachedAt and cost the same). Ratings and review counts of big apps change daily. 0 = always live. Reviews are always fetched live.",
            "default": 24
          },
          "maxConcurrency": {
            "title": "Parallel requests",
            "minimum": 1,
            "maximum": 16,
            "type": "integer",
            "description": "Requests in flight at once, each on its own connection. Higher values are faster on big runs.",
            "default": 8
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}