{
  "apiVersion": 1,
  "generatedAt": "2026-09-14T00:00:00+00:00",
  "slug": "appsumo-product-catalog-scraper",
  "botId": "appsumo-product-catalog-scraper",
  "configEncoding": "plain",
  "configDigest": "ee189862126d94ade71f79d44d01f59772432ba91442ec502bd1b5ed3fa70822",
  "configBytes": 11892,
  "project": {
    "name": "AppSumo Product Catalog Scraper",
    "settings": {
      "urls": [
        "https://appsumo.com/search/?query=${encodeURIComponent(variables.search_query || '')}"
      ],
      "headless": false,
      "humanoidEnabled": false,
      "proxyEnabled": false,
      "captchaEnabled": false,
      "matchTimezoneAndLocale": false,
      "block_resources": false,
      "get_urls_from_sitemap": false,
      "respect_robots_txt": false,
      "skip_initial_navigation": false,
      "variables": [
        {
          "name": "search_query",
          "value": "",
          "required": false,
          "is_list": false
        }
      ]
    },
    "datasets": {
      "appsumo_listings": {
        "item_selector": "xpath=//div[@data-testid='deal-price-container']/ancestor::*[contains(@class,'bg-white') and contains(@class,'rounded')][1]",
        "properties": [
          {
            "name": "product_name",
            "type": "text",
            "selector": "css=span.overflow-hidden.text-ellipsis.whitespace-nowrap.font-bold,css=a[href*='/products/']:not([href*='#'])",
            "transformations": [
              {
                "type": "trim"
              }
            ]
          },
          {
            "name": "product_url",
            "type": "attribute",
            "selector": "css=a[href*='/products/']:not([href*='#']),css=a[href*='/products/']",
            "attribute": "href",
            "transformations": [
              {
                "type": "replace"
              },
              {
                "type": "trim"
              }
            ]
          },
          {
            "name": "product_slug",
            "type": "attribute",
            "selector": "css=a[href*='/products/']:not([href*='#']),css=a[href*='/products/']",
            "attribute": "href",
            "transformations": [
              {
                "type": "regex",
                "pattern": "/products/([^/?#]+)",
                "default_value": ""
              }
            ]
          },
          {
            "name": "product_image_url",
            "type": "attribute",
            "selector": "css=img.aspect-sku-card",
            "attribute": "src",
            "transformations": [
              {
                "type": "replace"
              }
            ]
          },
          {
            "name": "product_image_url_resized",
            "type": "attribute",
            "selector": "css=img.aspect-sku-card",
            "attribute": "src"
          },
          {
            "name": "product_image_alt",
            "type": "attribute",
            "selector": "css=img.aspect-sku-card",
            "attribute": "alt"
          },
          {
            "name": "is_appsumo_select",
            "type": "count",
            "selector": "css=img[alt='AppSumo Select']"
          },
          {
            "name": "appsumo_select_badge_url",
            "type": "attribute",
            "selector": "css=img[alt='AppSumo Select']",
            "attribute": "src"
          },
          {
            "name": "deal_badge_text",
            "type": "text",
            "selector": "css=div.absolute.bottom-0.left-0 span",
            "transformations": [
              {
                "type": "trim"
              }
            ]
          },
          {
            "name": "deal_badge_type",
            "type": "text",
            "selector": "css=div.absolute.bottom-0.left-0 span",
            "transformations": [
              {
                "type": "trim"
              },
              {
                "type": "replace"
              },
              {
                "type": "replace"
              },
              {
                "type": "replace"
              },
              {
                "type": "replace"
              }
            ]
          },
          {
            "name": "deal_days_remaining",
            "type": "text",
            "selector": "css=div.absolute.bottom-0.left-0 span",
            "transformations": [
              {
                "type": "regex",
                "pattern": "([0-9]+)\\s+day",
                "default_value": ""
              },
              {
                "type": "cast"
              }
            ]
          },
          {
            "name": "category_name",
            "type": "text",
            "selector": "css=a.relative.z-1.underline",
            "transformations": [
              {
                "type": "trim"
              }
            ]
          },
          {
            "name": "category_url",
            "type": "attribute",
            "selector": "css=a.relative.z-1.underline",
            "attribute": "href"
          },
          {
            "name": "category_slug",
            "type": "attribute",
            "selector": "css=a.relative.z-1.underline",
            "attribute": "href",
            "transformations": [
              {
                "type": "regex",
                "pattern": "/([^/?#]+)/?$",
                "default_value": ""
              }
            ]
          },
          {
            "name": "category_group_slug",
            "type": "attribute",
            "selector": "css=a.relative.z-1.underline",
            "attribute": "href",
            "transformations": [
              {
                "type": "regex",
                "pattern": "appsumo\\.com/([^/?#]+)",
                "default_value": ""
              }
            ]
          },
          {
            "name": "category_parent_slug",
            "type": "attribute",
            "selector": "css=a.relative.z-1.underline",
            "attribute": "href",
            "transformations": [
              {
                "type": "regex",
                "pattern": "appsumo\\.com/[^/?#]+/([^/?#]+)",
                "default_value": ""
              }
            ]
          },
          {
            "name": "categories",
            "type": "list",
            "selector": "css=a[href]:not([href*='/products/']):not([href^='#']):not([href^='javascript'])",
            "properties": [
              {
                "name": "name",
                "type": "text",
                "selector": "css=self",
                "transformations": [
                  {
                    "type": "trim"
                  }
                ]
              },
              {
                "name": "url",
                "type": "attribute",
                "selector": "css=self",
                "attribute": "href"
              },
              {
                "name": "level",
                "type": "index",
                "selector": ""
              }
            ]
          },
          {
            "name": "tagline",
            "type": "text",
            "selector": "css=div.line-clamp-3",
            "transformations": [
              {
                "type": "trim"
              }
            ]
          },
          {
            "name": "rating",
            "type": "attribute",
            "selector": "css=img[alt*='stars']",
            "attribute": "alt",
            "transformations": [
              {
                "type": "regex",
                "pattern": "([0-9]+(?:\\.[0-9]+)?)",
                "default_value": ""
              },
              {
                "type": "cast"
              }
            ]
          },
          {
            "name": "rating_label",
            "type": "attribute",
            "selector": "css=img[alt*='stars']",
            "attribute": "alt",
            "transformations": [
              {
                "type": "trim"
              }
            ]
          },
          {
            "name": "review_count_text",
            "type": "text",
            "selector": "css=a[href*='#reviews']",
            "transformations": [
              {
                "type": "regex",
                "pattern": "([0-9][0-9,]*\\s+reviews)",
                "default_value": ""
              },
              {
                "type": "trim"
              }
            ]
          },
          {
            "name": "review_count",
            "type": "text",
            "selector": "css=a[href*='#reviews']",
            "transformations": [
              {
                "type": "regex",
                "pattern": "([0-9][0-9,]*)\\s+reviews",
                "default_value": ""
              },
              {
                "type": "replace"
              },
              {
                "type": "cast"
              }
            ]
          },
          {
            "name": "review_url",
            "type": "attribute",
            "selector": "css=a[href*='#reviews']",
            "attribute": "href"
          },
          {
            "name": "price_raw",
            "type": "text",
            "selector": "css=[data-testid='deal-price-container']",
            "transformations": [
              {
                "type": "trim"
              }
            ]
          },
          {
            "name": "price_current",
            "type": "text",
            "selector": "css=#deal-price",
            "transformations": [
              {
                "type": "regex",
                "pattern": "([0-9][0-9,]*(?:\\.[0-9]{1,2})?)",
                "default_value": ""
              },
              {
                "type": "replace"
              },
              {
                "type": "cast"
              }
            ]
          },
          {
            "name": "price_currency_symbol",
            "type": "text",
            "selector": "css=#deal-price",
            "transformations": [
              {
                "type": "regex",
                "pattern": "([$£€])",
                "default_value": ""
              }
            ]
          },
          {
            "name": "price_period",
            "type": "text",
            "selector": "css=#deal-price-suffix",
            "transformations": [
              {
                "type": "replace"
              },
              {
                "type": "trim"
              }
            ]
          },
          {
            "name": "price_original",
            "type": "text",
            "selector": "css=#deal-price-original",
            "transformations": [
              {
                "type": "regex",
                "pattern": "([0-9][0-9,]*(?:\\.[0-9]{1,2})?)",
                "default_value": ""
              },
              {
                "type": "replace"
              },
              {
                "type": "cast"
              }
            ]
          },
          {
            "name": "plus_exclusive_label",
            "type": "text",
            "selector": "css=span.overflow-hidden.text-ellipsis.whitespace-nowrap.font-bold,css=a[href*='/products/']:not([href*='#'])",
            "transformations": [
              {
                "type": "regex",
                "pattern": "[-–—]\\s*(Plus exclusive)\\s*$",
                "default_value": ""
              }
            ]
          },
          {
            "name": "listing_position",
            "type": "index",
            "selector": ""
          },
          {
            "name": "card_text_snapshot",
            "type": "text",
            "selector": "css=self",
            "transformations": [
              {
                "type": "replace"
              },
              {
                "type": "trim"
              }
            ]
          }
        ],
        "required_fields": [
          "product_url",
          "product_name"
        ]
      }
    },
    "commands": [
      {
        "command": "press",
        "params": {
          "selector": "html",
          "key": "Escape"
        }
      },
      {
        "command": "infinite_scroll",
        "params": {
          "do": [],
          "max_scrolls": 2,
          "scroll_delay": 2500
        }
      },
      {
        "command": "while",
        "params": {
          "condition": {
            "selector": "css=button:has-text('Show More Results'),button:has-text('Load More'),button:has-text('Show more results'),button:has-text('View More')",
            "type": "element_visible"
          },
          "do": [
            {
              "command": "click",
              "params": {
                "button": "left",
                "selector": "css=button:has-text('Show More Results'),button:has-text('Load More'),button:has-text('Show more results'),button:has-text('View More')"
              }
            },
            {
              "command": "wait",
              "params": {
                "timeout": 3000
              }
            }
          ]
        }
      },
      {
        "command": "extract_data",
        "params": {
          "dataset": "appsumo_listings"
        }
      }
    ],
    "authors": []
  }
}