Slickdeals Scraper: Deals, Coupons & Discussion avatar

Slickdeals Scraper: Deals, Coupons & Discussion

Pricing

from $0.30 / 1,000 saved deals

Go to Apify Store
Slickdeals Scraper: Deals, Coupons & Discussion

Slickdeals Scraper: Deals, Coupons & Discussion

Collect Slickdeals promotions, posted prices, merchant links and coupon or membership requirements, with optional linked public discussion and explicit coverage.

Pricing

from $0.30 / 1,000 saved deals

Rating

0.0

(0)

Developer

Inus Grobler

Inus Grobler

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

Slickdeals Scraper: Deals, Coupons & Public Discussion

Collect Slickdeals deals and the public discussion around them as structured data. Track promotions for brands and products, find coupon and membership requirements, and connect each discussion reply to its deal using stable identifiers.

Built for deal publishers, retail promotion researchers, affiliate teams and developers building promotion monitoring tools. Search by keyword or provide public Slickdeals deal, search or forum URLs. Leave the search field empty to collect the newest Hot Deals.

Use cases

  • Deal publishers: collect promotion candidates and the restrictions editors need to review.
  • Affiliate teams: retrieve available merchant destinations and published promotion terms.
  • Retail researchers: compare offers and inspect linked public discussion for reported problems.

What you get

  • One record per unique deal, with a posted price, merchant, source URL and available direct merchant link.
  • Source text describing coupons, membership, minimum spend, subscriptions, shipping, regional restrictions and expiry.
  • Optional public replies in a separate dataset linked by dealId.
  • Clear coverage indicators when details or discussion cannot be fully retrieved.

Deal prices describe the forum promotion at collection time. Merchant prices and availability are not checked. Votes, views and replies describe community activity; they are not purchase counts. Restrictions are extracted source evidence, not guaranteed eligibility decisions.

Run from Apify Console

  1. Enter product names, brands or public Slickdeals URLs under Keywords or Slickdeals URLs, or leave it empty for newest Hot Deals.
  2. Set Maximum deals. The default is five, shared across all targets.
  3. Optionally enable Include public discussion. The default reply cap is 50 per deal.
  4. Set a spending limit, run the Actor, then export the Deals dataset as JSON, CSV or Excel. The run summary links to the discussion dataset when enabled.

Minimal input

{}

Collect promotions for two brands:

{
"targets": ["Anker", "LEGO"],
"maxItems": 100
}

Collect a specific deal and accessible discussion:

{
"targets": ["https://slickdeals.net/f/20080893-memzuoix-large-ergonomic-vertical-wireless-mouse-black-9-99-free-shipping-w-prime-or-on-35"],
"maxItems": 1,
"includeComments": true,
"maxCommentsPerDeal": 50
}
InputDefaultMeaning
targets[]Keywords or public Slickdeals URLs. Empty means newest Hot Deals. Up to 100 targets.
maxItems5Global cap on unique deal records, from 1 to 10,000.
includeCommentsfalseSave accessible public replies in a linked dataset.
maxCommentsPerDeal50Reply cap per deal, used only with discussion enabled; 1–1,000.

Search results depend on Slickdeals search matching and pagination. This Actor does not add a separate strict brand filter. Duplicate deal IDs across targets are saved once within the run. A maximum is a cap, not a promise that the source has that many results.

Deal output

Each record preserves dealId and dealUrl. A compact example is shown below; full exports also include description, source price strings, source dates, views, tracking links and collection time.

{
"dealId": "20080893",
"dealUrl": "https://slickdeals.net/f/20080893-memzuoix-large-ergonomic-vertical-wireless-mouse-black-9-99-free-shipping-w-prime-or-on-35",
"title": "Memzuoix Large Ergonomic Vertical Wireless Mouse (black or pink)",
"merchant": "Amazon",
"merchantUrl": "https://www.amazon.com/gp/product/B07WCP4XQQ/ref=ox_sc_act_title_1?smid=A2A9JBW4JTK56I&th=1&psc=1",
"price": 9.99,
"currency": "USD",
"requirements": {
"coupon": [],
"membership": [
"Shipping is free with Prime or on $35+ orders."
],
"minimumSpend": [
"Shipping is free with Prime or on $35+ orders."
],
"subscription": [],
"shipping": [
"Shipping is free with Prime or on $35+ orders."
],
"regional": [],
"expiry": []
},
"expired": false,
"expiryText": [],
"replyCount": 4,
"detailCoverage": "complete",
"commentsCollected": 4,
"commentsCoverage": "complete",
"commentsDatasetId": "o5b7blpfQn5J1YJa6",
"merchantPriceVerified": false
}

price is a numeric published deal price when it can be parsed without guessing; otherwise it is null. priceText preserves the price source and headlinePriceText preserves the headline price, which may be rounded. Unknown fields are null; empty requirement arrays mean no matching evidence was extracted.

merchantUrl unwraps recognized redirects and removes known affiliate tracking while retaining product parameters. It can be null if no destination can be resolved. merchantTrackingUrl preserves the Slickdeals link with guest-specific parameters removed. Merchants are not visited to confirm the promotion.

Coverage fields

  • detailCoverage: complete when the deal page was parsed, or unavailable when only a valid listing record was available. Complete means the supported page model was retrieved; individual values can still be missing.
  • commentsCoverage: not_requested, complete, capped or partial. Complete means collected replies meet the page's published reply count at collection time.
  • commentsCollected: number of replies saved for the deal.
  • commentsDatasetId: dataset containing replies, or null when discussion is off.
  • merchantPriceVerified: always false.

Discussion is bounded and favors the newest accessible replies. Pagination, dynamic loading, deletions and access restrictions can prevent complete discussion extraction. Quoted text is kept separately from the reply body.

Discussion output

Each reply contains dealId, postId, body, quotedText, postedAt, url and scrapedAt. Join it to the Deals dataset on dealId. The discussion dataset ID is available on deal records and in the run's SUMMARY record. The first post is represented by the deal description rather than duplicated as a reply.

{
"dealId": "20080893",
"postId": "186988206",
"body": "No Bluetooth and marked frequently returned item.",
"quotedText": [],
"postedAt": "2026-10-01T12:05:24-07:00",
"url": "https://slickdeals.net/f/20080893-memzuoix-large-ergonomic-vertical-wireless-mouse-black-9-99-free-shipping-w-prime-or-on-35?p=186988206#post186988206",
"scrapedAt": "2026-10-01T21:06:05.866915+00:00"
}

Pricing

EventPrice
Saved unique deal$0.30 per 1,000 deals ($0.0003 each)
Optional saved public reply$0.05 per 1,000 replies ($0.00005 each)
Actor startup$0.005 per container startup

Standard run compute, storage and datacenter proxy usage are included. There is no additional platform-usage pass-through. Current pricing is configured for this private candidate; check the Pricing tab before running.

For example, 1,000 deals without discussion cost $0.305 including one startup. Five deals cost $0.0065. Twenty-five deals plus 500 saved replies cost $0.0375. Actual totals depend on delivered records and startup count.

The minimum initial spending limit is $0.0053, covering a startup and one deal. A resurrection incurs another startup event; allow for it when resuming a run.

Only delivered deal records and optional saved replies incur those result events. Failed request attempts and suppressed duplicates do not add result events. A run may stop with partial output at its spending limit; the startup fee still applies when a run starts without producing results. Set a limit appropriate to the deal and reply caps.

Python API example

Install the official apify-client==3.2.1 package and use your Apify API token:

import os
from datetime import timedelta
from decimal import Decimal
from apify_client import ApifyClient
client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("thescrapelab/slickdeals-deals-discussion-scraper").call(
run_input={"targets": ["Anker"], "maxItems": 25},
memory_mbytes=1024,
run_timeout=timedelta(seconds=300),
max_total_charge_usd=Decimal("1"),
)
if run is None:
raise RuntimeError("The run did not finish within the client's wait period")
for deal in client.dataset(run.default_dataset_id).iterate_items():
print(deal["title"], deal["price"], deal["merchantUrl"])
summary = client.key_value_store(run.default_key_value_store_id).get_record("SUMMARY")
if summary and summary["value"].get("commentsDatasetId"):
replies = client.dataset(summary["value"]["commentsDatasetId"]).iterate_items()
for reply in replies:
print(reply["dealId"], reply["body"])

Availability and support

This Actor is currently a private development candidate. Public and commercial release require source permission and final release checks. It retrieves accessible public pages; it does not log into accounts or retrieve private messages.

Results are snapshots of published promotions and discussion. Expiry and restriction evidence may be missing or outdated. The Actor uses datacenter proxies with fresh-connection retries; it stops when access remains blocked rather than switching to expensive residential traffic. The Actor uses bounded retries and reports source access failures and partial extraction in SUMMARY; it does not create substitute deals to reach a target count.

For support, provide the Apify run URL, a sample deal URL and the expected field or behavior. Avoid sending credentials or private account data.