How do I scrape AppSumo to CSV?
Run the launcher, leave the search_query field empty to collect the full AppSumo catalog or type a keyword to collect a slice, and the bot expands the search results grid and extracts every deal card into the appsumo_listings dataset. Rows land in the launcher's local results store; export them from the results view - CSV is the common working format for this table, and JSON and XLSX exports are available too. No selector work is required from you.
What data can I collect from AppSumo listings?
Roughly thirty card-level fields per deal: product name, URL and slug, tagline, the full AppSumo category taxonomy (name, URL, three slug levels and a nested categories list), current price, original price, currency symbol, billing period, raw price text, rating, rating label, review count, review count text, review URL, deal badge text, normalised badge type, days remaining, the AppSumo Select flag and badge URL, the Plus exclusive label, three image fields, listing position and a full card text snapshot.
How do I scrape the whole AppSumo catalog?
Leave the search_query field empty at launch. The start URL is the AppSumo search page with an empty query, which returns the entire active catalog - 334-plus products at the time this configuration was written, and it grows as new deals launch. The bot scrolls the grid, clicks every load-more control until none remain, then extracts all cards in one pass, deduplicated by product URL.
How do I scrape only one AppSumo category or keyword?
Type a keyword into the search_query field at launch - something like seo or video hosting. The bot URL-encodes it into the AppSumo search query, so the run collects only matching results. One run covers one query; for several categories, run the launcher once per term and keep the exports separate, then join them later on product_url if you need one master table.
How do I track AppSumo deal prices and review counts?
The bot is a snapshotter, so tracking means re-running it on a cadence and diffing the results yourself. Schedule the launcher weekly with your OS scheduler (Task Scheduler, cron or launchd), export each run with a date, and join the snapshots on product_url - the dataset's deduplication key and the most stable identifier in the row. Price moves show up as changes in price_current or price_original; review velocity shows up as the delta in review_count between two dated runs.
Can I scrape AppSumo deal countdown timers?
You can scrape the countdown strip, at day granularity. deal_badge_text keeps the visible strip verbatim, deal_badge_type normalises it to deal_ending, price_increase or plus_access_ending (empty when the strip shows something else), and deal_days_remaining parses the integer day count out of the text. There is no exact expiry timestamp on the card, so none is invented - the row tells you which day to check by hand.
What is the AppSumo Select flag in the output?
is_appsumo_select counts the AppSumo Select badge image on the deal card, so it reads 0 for ordinary listings and 1 or more for editorially selected ones; appsumo_select_badge_url keeps the badge image source. The separate plus_exclusive_label field captures the Plus exclusive suffix on the product name for membership-gated deals. Together they let you segment the curated slice of the catalog from the open listings.
How long does a full AppSumo catalog scrape take?
Minutes, not hours. The bot never visits individual product pages - it expands the search grid with two capped scrolls and a load-more click loop that waits three seconds per batch, then extracts every card in a single pass. A full-catalog run of several hundred listings typically finishes in well under twenty minutes; a keyword-filtered search is faster. Compare that with detail-page crawlers, where run time scales with one page visit per listing.
Does the scraper collect AppSumo review text?
No - only aggregate signals, deliberately. The dataset captures rating, rating_label, review_count, review_count_text and the review_url link, never review bodies and never reviewer names. That keeps personal data out of the output entirely (this listing is flagged piiHandled false). If you need the reviews themselves, the sibling AppSumo Product Reviews Scraper collects them as a separate configuration with its own compliance bar.
Is scraping AppSumo allowed?
The data collected here is public commercial data - product names, prices, aggregate ratings - but automated collection may still conflict with AppSumo's terms of service, and that review is yours to do before each run. Keep request volume at what a patient human could sustain (the built-in waits already pace the run that way), date every snapshot, and do not republish derived data in ways AppSumo prohibits. This bot is not affiliated with or endorsed by AppSumo.
Why are some price or rating fields empty?
Empty is normal and expected in three cases: brand-new listings carry no reviews yet, so rating and review_count fall back to null through their cast defaults; not every card shows a struck-through original price or a countdown badge; and the Plus exclusive label only exists on membership-gated deals. The transformations fall back to empty values rather than failing the row, and the failure contract is loud - empty values or zero rows, never fabricated data.
Does the bot need an internet connection to run?
Yes on first run: the launcher fetches its configuration by id from the backend at launch, so an internet connection is required at least the first time it starts.
Can I rename the downloaded file?
No. The downloaded file must keep its exact name - the filename carries the per-bot configuration id, and renaming it breaks the configuration fetch at launch.