CommentSold Scraper icon

CommentSold Scraper - Products, Stock & Live Shopping Videos

Scrape CommentSold boutique shops by name or URL. Extract product catalogs, descriptions, variant prices, stock availability and product details. Collect live shopping status, show replays and shoppable videos. Supports scraping single or multiple shops.

Start using this actor on Apify ↗Need a custom scraper?Contact us ↗

CommentSold Scraper at a glance

CommentSold Scraper is a ready-to-run Apify actor from abotapi for collecting web data. Its output documents 49 fields, including type, shop, image, thumbnail and show or video, which you can export as JSON, CSV or Excel or read through the Apify API. It costs $1.80 per 1,000 results on the Apify Free plan and from $1.20 on paid plans, with smaller per-run or optional feature charges listed on Apify.

Runs on
Apify cloud: console, API, schedules and integrations
Data type
Web data
Pricing
$1.80 per 1,000 results (Free plan), from $1.20 on paid plans
Output
49 documented fields · JSON, CSV, Excel
Inputs
21 options

What CommentSold Scraper can do

  • Three ways in. Walk shops by name, paste shop, collection, product and live links, or combine both across one run. No need to learn each shop's layout.
  • One actor, every shop. The platform serves all of its boutiques from one shared storefront, so a single shop list covers N catalogues with per-shop progress in the log.
  • Prices and stock, honestly counted. Every variant carries its price, sale price and quantity; the row reports the price range, total units and an in-stock flag computed over the whole table.
  • Details on demand. Switch the full detail page on or off per run: shop collections, related products, sizing guides and shoppable videos, billed only when they land in your dataset.
  • Live surface included. Each shop yields its live-show status row, its replays and its shoppable videos in the same run, under their own output tabs.
  • Built for schedules. Incremental mode returns only new and changed products on recurring runs, and a refused or login-gated shop fails loudly instead of returning an empty dataset.

Choose what to collect

These inputs let you configure CommentSold Scraper - Products, Stock & Live Shopping Videos. Open the actor on Apify to enter your values and review the current options.

Supported input fields
InputWhat it controls
modestring · requiredChoose 'search' to walk shops by name across their collections, or 'url' to scrape pasted links.

Choices: search, url

shopsarrayOne or more shops, as slugs (shopthemasonjar) or full shop links (https://shopthemasonjar.commentsold.com/). Each shop is walked across the collections below.
urlsarrayMix freely: shop links (https://shopthemasonjar.commentsold.com/), collection links (.../collections/all-items), single-product links (.../api/products/32291) and live links (.../live). Platform pages and custom domains that carry no shop name are reported and skipped.
collectionsarrayOnly walk these collections of each shop, given as the collection key in its address, for example 'all-items'. A key a shop does not carry is reported and skipped for that shop. Leave the default to walk the shop's full catalogue.
searchQuerystringOnly return products matching this keyword, for example 'dress' or 'jeans'. Leave empty to walk the whole collection. A keyword that matches nothing ends that scope quietly with no results.
inStockOnlybooleanOnly return products the shop currently holds stock of. Off by default so sold-out products still show up (marked out of stock).
fetchDetailsbooleanAdds the shop's own collections, related products, sizing guide and shoppable video to every product. On by default; every product already carries prices, stock, variants, galleries and descriptions without it. Products are still returned when a detail read fails, without the surcharge.
Show 14 more inputs
More input fields
InputWhat it controls
includeLivebooleanAlso return each shop's live-show status row, its replays and its shoppable videos. These are small extra reads per shop, never per product, and never add a surcharge.
minPricenumberOnly return products priced at or above this amount in US dollars. Applied by this actor to each product's own lowest variant price. Products with no price, shows and videos are never dropped by a price bound.
maxPricenumberOnly return products priced at or below this amount in US dollars, applied the same way as the minimum above.
maxItemsintegerMaximum number of results returned across the whole run. This is the run's cap. Use 0 for unlimited.
maxPagesintegerMaximum collection pages walked per shop or link, at 20 products a page. 0 means no page limit: the run then stops only at Max results, or when the shop runs out of products.
resumeFromRunIdstringPaste a previous run id or dataset id to continue a large crawl without returning results already collected there. Use this after an interrupted run. For recurring daily monitoring of the same shops, use Incremental mode below instead.
incrementalModebooleanTurn this on for daily or recurring monitoring. The first run returns everything matching as NEW. Later runs normally return only NEW, UPDATED and REAPPEARED results, which is how you catch a price change, a restock, a new arrival or a shop going live. The actor's own timestamp and the live viewer counter are deliberately ignored when deciding what changed, because they drift constantly and would otherwise mark every result as changed on every run. State is kept separately for each shop set, collection set and filter setup, so two different shop lists never mix.
stateKeystringOptional. Name this monitoring campaign to keep its state stable, or to deliberately share state across differently configured runs. Leave empty to let the actor derive a key from the shops, links and filters.
emitUnchangedbooleanOff by default. Turn on to also return results that have not changed since the last run, marked UNCHANGED. This returns, and bills, extra rows you already have, so leave it off unless you want the full snapshot every run.
emitExpiredbooleanOff by default. Turn on to also return results that were present in a previous run but are no longer found, marked EXPIRED, which is how a sold-out product disappearing shows up. Only produced once a run has fully scanned the tracked shops, never when Max results capped it or Resume was used. This returns, and bills, extra rows.
ignoreFieldsForChangesarrayField names to ignore when deciding whether a tracked product changed, for example a field your downstream does not care about. The actor already ignores its own timestamp and the live viewer counter. Documented in the README.
mcpConnectorsarrayOptionally send results into the apps you already use, via Model Context Protocol (MCP) connectors. Authorize one under Apify, Settings, API and Integrations, then select it here. Notion gets a rich page per item; other connectors get a best-effort write or digest. Leave empty to skip; this never changes the dataset output. Supported: Notion (https://mcp.notion.com/mcp), Linear (https://mcp.linear.app/sse), Airtable (https://mcp.airtable.com/mcp), Apify (https://mcp.apify.com).
notionParentPageUrlstringURL or id of the Notion page under which item pages are created. Required to enable the Notion export; ignored by other connectors.
maxNotifyListingsintegerCap on items written to each connector per run. Does not affect the dataset.

Fields in the output

The documented dataset includes the fields below. Availability can depend on the source page and selected mode.

recordTypeType
shopSlugShop
imageUrlImage (image)
thumbnailUrlThumbnail (image)
titleShow or video
nameProduct
statusShow status
priceMinPrice from
priceMaxPrice to
currencyCurrency
inStockIn stock (boolean)
brandBrand
Show 37 more fields
viewerCountViewers
urlLink (link)
changeTypeChange type (incremental mode)
changedFieldsChanged fields (incremental mode) (array)
firstSeenAtFirst seen (incremental mode) (datetime)
lastSeenAtLast seen (incremental mode) (datetime)
scrapedAtScraped at (datetime)
productIdProduct id
badgeBadge
descriptionDescription
totalStockUnits in stock
variantCountVariants
skuSKU
imageUrlsPhotos (array)
videoUrlVideo (link)
publishedAtPublished (datetime)
collectionKeyCollection
shopUrlShop link (link)
detailCollectionsShop collections (array)
relatedProductIdsRelated products (array)
sizingGuideSizing guide
subscriptionOptionsSubscriptions
dropshipProductIdDropship product
pdpDisplayOptionDisplay option
featuredPopClipFeatured video
variantsVariants (array)
appDescriptionApp description
brandSkuBrand SKU
taxCodeTax code
isFreeGiftFree gift (boolean)
showIdShow id
isLiveNowLive now (boolean)
productCountProducts featured
startedAtStarted (datetime)
clipIdVideo id
productIdsProducts featured (array)
createdAtPublished (datetime)

Example output

An example from this actor’s documentation. Values are illustrative; this is not a fresh live result.

{
  "recordType": "product",
  "shopSlug": "samplestore",
  "shopUrl": "https://samplestore.commentsold.com/",
  "productId": "12345",
  "name": "Sample Cardigan",
  "slug": "sample-cardigan",
  "brand": "Sample Brand",
  "sku": "10010012345",
  "badge": "RESTOCK",
  "description": "A soft knit cardigan with cuffed sleeves.",
  "priceMin": 24.99,
  "priceMax": 34.99,
  "currency": "USD",
  "inStock": true,
  "totalStock": 42,
  "variantCount": 6,
  "variants": [
    {
      "variantId": 1,
      "color": "Oatmeal",
      "size": "M",
      "price": 29.99,
      "salePrice": 24.99,
      "quantity": 7,
      "inStock": true
    }
  ],
  "imageUrl": "https://example-cdn.com/sample.jpg",
  "imageUrls": [
    "https://example-cdn.com/sample.jpg"
  ],
  "videoUrl": null,
  "detailCollections": [
    "Sample Tops"
  ],
  "relatedProductIds": [
    "12346"
  ],
  "collectionKey": "all-items",
  "url": "https://samplestore.commentsold.com/api/products/12345",
  "searchMode": "search",
  "searchQuery": null,
  "scrapedAt": "2026-10-11T12:00:00Z"
}

Ways to use this data

  • Who: boutique aggregators and market researchers. What: track assortments, brands and price ranges across many independent shops from one actor.
  • Who: repricers and deal hunters. What: watch variant prices and restocks per shop on a daily schedule with incremental mode.
  • Who: live-commerce analysts. What: monitor which shops are live, what they feature, and which replays and shoppable videos they publish.
  • Who: inventory planners. What: collect variant-level stock counts and sizing data to spot gaps and best sellers.
  • Who: affiliate and curation teams. What: build product shortlists with photos, badges and shop attribution.

Before you run

Start with a small input and check the resulting records against your expected fields. Source content and actor options can change; the current Apify listing is the reference for availability and pricing.

Questions about this actor

What data does CommentSold Scraper return?

CommentSold Scraper returns 49 documented fields, including type, shop, image, thumbnail, show or video, product, show status and price from. Availability of each field depends on the source page and the selected mode.

How much does CommentSold Scraper cost?

It costs $1.80 per 1,000 results on the Apify Free plan and from $1.20 on paid plans, with smaller per-run or optional feature charges listed on Apify. The Apify listing shows the current rate for every plan.

Can I get only new or changed products on a schedule?

Yes. Schedule the actor from the Schedules tab and turn on Incremental mode. Each run then returns only new and updated records, and unchanged ones are not billed. Price, stock and availability changes are the signal.

Why did a run return fewer products than the shop shows?

Search mode stops at Max items, first shops and collections first. Set it higher, or to 0, to collect whole catalogues. A keyword or stock filter also narrows the walk, and detail enrichment never drops a product whose detail read failed.

Why did my run fail instead of returning an empty dataset?

If every shop refused the connection, or every shop requires shoppers to log in, the run stops with a clear message so "no products today" is never confused with "nothing could be read". Run it again in a few minutes. If only some shops could be read, you still get what was found, with a note naming the shops that were skipped.

Do shops have product reviews?

No. The shops do not publish ratings or review texts on their public pages, so there is nothing to collect. If a shop adds them later, they will appear in a later version of this actor.

Ready to collect with CommentSold Scraper?

Run it on Apify with your own input and export the results as JSON, CSV or Excel.