SSENSE Scraper icon

SSENSE Scraper

Scrape SSENSE by keyword, category, designer or URL. Every row carries the selling price and the regular price, the discount percent, stock state and…

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

SSENSE Scraper at a glance

SSENSE Scraper is a ready-to-run Apify actor from abotapi for collecting web data. Its documented output includes id, rowtype, product, designer and sku, which you can export as JSON, CSV or Excel or read through the Apify API. It costs $2.00 per 1,000 results on the Apify Free plan and from $1.70 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
$2.00 per 1,000 results (Free plan), from $1.70 on paid plans
Output
Documented below · JSON, CSV, Excel
Inputs
25 options

Scrape SSENSE by keyword, category, designer or URL. Every row carries the selling price and the regular price, the discount percent, stock state and images. Sale axes, designer pages and recurring change tracking are first-class.

What SSENSE Scraper can do

  • The full price pair on every row. Selling price and regular price come from the listing page itself, with the discount percent computed, so retail versus sale is on every record without a second request.
  • Four ways to scope a run. Search by keyword, browse a section, category or designer, watch the sale axis, or paste store URLs directly.
  • The sale axis is first class. Sale only, or a pasted sale URL, rides the store's own sale pages, including their category and designer combinations.
  • Product details on demand. Turn on Fetch product details for the description, the product type keyword, the full image gallery, per-size name, SKU and stock state, composition and country of origin; the price pair, stock state and the main image (imageUrl) are on every row either way.
  • Built for recurring monitoring. Incremental mode classifies every product as NEW, UPDATED, UNCHANGED, REAPPEARED or EXPIRED against the last run, and a refused run fails loudly instead of returning an empty dataset.
  • Resume without paying twice. Continue one interrupted run by its run or dataset id, and the actor skips everything it already collected there.

Choose what to collect

These inputs let you configure SSENSE Scraper - Products, Sale & Retail Prices. Open the actor on Apify to enter your values and review the current options.

Supported input fields
InputWhat it controls
modestring · requiredHow to start the scrape. 'search' runs store searches. 'url' processes the store URLs you paste: a product URL is fetched as a single product, and a browse, category, designer or sale URL is paged like a search, its own path deciding the scope. The price and ordering filters below apply in BOTH modes; the scope filters (category, designers, sale only) apply in search mode only.

Choices: search, url

searchTermsarrayOne or more things to search the store for, for example 'sneakers', 'wool coat', 'leather bag'. Each term is scraped independently. Search mode only: in URL mode the scope is read out of each pasted store URL instead. Leave this empty and the run browses the section, category or designer picked below, narrowed by the filters.
urlsarrayPaste store product URLs (https://www.ssense.com/en-us/men/product/designer/name/123456), browse URLs (https://www.ssense.com/en-us/men), category URLs (https://www.ssense.com/en-us/men/sneakers), designer URLs (https://www.ssense.com/en-us/men/designers/designer-name) or sale URLs (https://www.ssense.com/en-us/men/sale). Add ?page=3 to any browse URL to start walking from that page instead of the first. A pasted URL decides its own scope: the price and ordering filters below still narrow what the run keeps, the section filter fills in only when the URL does not name a section of its own, and the scope filters (category, designers, sale only) are search mode only. A pasted product URL is the one exception: it returns that single product in full. Left untouched, URL mode scrapes one example of each supported page shape. A bare numeric product id (for example 19403311) is accepted as well. English storefronts of every supported market (en-gb, en-jp...) are kept; other locales and locale-less paths are scraped from the market chosen in Country with a warning.
genderstringWhich storefront section to browse. Applies in BOTH search mode and URL mode: search mode sends it with every request, and in URL mode it fills in only when a pasted URL does not name a section of its own.

Choices: men, women

categorystringOnly browse this category, as the slug the store itself uses in the URL, for example 'sneakers', 'coats', 't-shirts', 'bags'. The store has around a hundred of these; the slug is the part of a category page URL right after the section. Leave empty for every category. Search mode ONLY: in URL mode the pasted URL decides its own scope.
designerSlugsarrayOnly browse these designers, as the slug the store itself uses in the URL, for example 'balenciaga', 'rick-owens', 'the-north-face'. The slug is the part of a designer page URL after /designers/. Each designer is scraped as its own scope; a search term is never combined with a designer in one request, because the store refuses that combination. Search mode ONLY: in URL mode the pasted URL decides its own scope.
saleOnlybooleanBrowse the sale section only, which is the store's own sale axis (the same pages its sale menu links to). Search mode ONLY: in URL mode the pasted URL decides its own scope, so paste a sale URL to walk the sale section there.
Show 18 more inputs
More input fields
InputWhat it controls
minPriceUsdintegerOnly keep rows whose selling price is at least this number, compared to the row's price in the selected market's currency (US dollars on the default US market, pounds for GB, yen for JP). The store has no server side filter for this, so it is applied to the rows this run reads. Applies in BOTH search mode and URL mode.
maxPriceUsdintegerOnly keep rows whose selling price is at most this number, compared to the row's price in the selected market's currency (US dollars on the default US market, pounds for GB, yen for JP). The store has no server side filter for this, so it is applied to the rows this run reads. Applies in BOTH search mode and URL mode.
onSaleOnlybooleanOnly keep rows whose selling price is below the regular price, that is rows with a discount. The store has no server side parameter for this outside its sale section, so it is applied to the rows this run reads. For full sale coverage use Sale only above. Applies in BOTH search mode and URL mode.
sortResultsBystringArranges the rows this run collected, after they are read. This is a local tidy up of one run's output, not a catalogue wide ordering. Applies in BOTH search mode and URL mode.

Choices: site_order, price_asc, price_desc, discount_desc

siteSortstringAsks the store itself to order every page (a catalogue wide ordering, applied before rows are read, so it decides WHICH rows fit under Max items). Latest arrivals is the store default. Applies to browse and search pages in both modes; a pasted product URL is unaffected. Combine with Order the returned rows by only if you want a second local tidy up. Applies in BOTH search mode and URL mode.

Choices: site_default, price_asc, price_desc, discount_desc, discount_asc

countryCodestringWhich SSENSE market to read (English storefront). It sets the currency and prices of every row: for example GB returns GBP, JP returns JPY. The default US returns USD exactly as before. The price range filters below compare against the row's price in the market currency. A pasted URL that already names a supported English market keeps it. Applies in BOTH search mode and URL mode.

Choices: US, CA, AU, AT, BH, BE, CN, CY, CZ, DK, EE, FI, FR, DE, GR, HK, HU, IE, IT, JP, LV, LT, LU, MO, MY, MT, NL, NZ, NO, PL, PT, QA, RU, SG, SK, SI, KR, ES, SE, CH, TW, AE, GB

fetchDetailsbooleanFetch each item's product page for the description, the product type keyword, the full image gallery, per-size name, SKU and stock state, composition and country of origin. Slower, and charged once per record. Leave off for a fast crawl: identity, prices, discount, stock state and the main image (imageUrl) are included either way.
maxItemsintegerThe single cap on this run: stop after collecting this many records across all search terms, designers and URLs. Set 0 for unlimited.
maxPagesintegerSafety bound on how many result pages to walk per search term, designer or URL. Leave empty (0) for no page limit: the run then stops at Max items, not here. Does not impose a separate cap below Max items.
resumeFromRunIdstringPaste a previous run ID or dataset ID to continue a large crawl without returning or charging for records already collected there. Use this after an interrupted or capped run. For recurring monitoring of the same search, use Incremental mode below instead.
incrementalModebooleanTurn this on for daily or weekly recurring monitoring of the same search, for example a sale watch. The first run returns everything matching as NEW. Later runs normally return only NEW, UPDATED and REAPPEARED records. Price moves ARE reported as UPDATED: on a store they are the signal, not noise. Turn on Emit unchanged or Emit expired only when you also want those rows returned (and billed). State is kept separately per search, URL and filter setup; use State key to name or deliberately share a monitoring campaign. To continue one specific interrupted run instead, use Resume from a previous run above.
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 automatically from the search terms, URLs and filters, so two different searches never mix state.
emitUnchangedbooleanOff by default. Turn on to also return records 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 specifically want a full snapshot every run.
emitExpiredbooleanOff by default. Turn on to also return records that were present in a previous run but are no longer found, marked EXPIRED. Only produced once a run has fully scanned the tracked search: not when Max items capped it, not when Resume was used, and not when the run was refused. This returns, and bills, extra synthetic rows, so leave it off unless you need expiry tracking.
ignoreFieldsForChangesarrayExtra output field names that should NOT make a product count as UPDATED, for example imageUrl or title. Price, sale and stock fields are watched by default because a price move is the signal. The detail only fields images, sizes, composition and countryOfOrigin are ALWAYS left out of change detection (they are output only, and cannot be opted back in); a restock still shows through the product level inStock. Use top level field names such as imageUrl or title: the only nested field, sizes, is excluded as a whole, so a dotted path inside it has no effect. Ignored fields are still returned in the output.
mcpConnectorsarrayOptionally send results into the apps you already use, via Model Context Protocol (MCP) connectors. Authorize one under Apify, Settings, API & Integrations, then select it here. Notion gets a page per record; other connectors get a best-effort write or digest. Each connector receives a condensed summary per record, not the full record; the complete record always stays in the dataset. 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 record pages are created. Required to enable the Notion export; ignored by other connectors.
maxNotifyListingsintegerCap on records 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.

recordIdID (text)
rowTyperowType
titleProduct (text)
brandDesigner (text)
skuSKU (text)
genderSection (text)
categoryCategory (text)
pricePrice (number)
regularPriceRegular price (number)
onSaleOn sale (text)
discountPercentDiscount % (number)
currencyCurrency (text)
Show 12 more fields
inStockIn stock (text)
imageUrlImage (image)
descriptionDescription (text)
compositionComposition (text)
countryOfOriginMade in (text)
urlURL (link)
changeTypeChange type (incremental mode) (text)
changedFieldsChanged fields (incremental mode) (array)
firstSeenAtFirst seen (incremental mode) (date)
lastSeenAtLast seen (incremental mode) (date)
sizesSizes (array)
imagesImages (array)

Example output

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

{
  "recordId": "10000001",
  "rowType": "product",
  "productId": "10000001",
  "url": "https://www.example.com/en-us/men/product/sample-designer/sample-name-wool-coat/10000001",
  "title": "Sample Name Wool Coat",
  "brand": "Sample Designer",
  "brandId": "909",
  "sku": "000000S00000",
  "gender": "men",
  "category": "coats",
  "categoryIds": [
    "3",
    "178"
  ],
  "price": 890,
  "regularPrice": 1290,
  "onSale": true,
  "discountPercent": 31,
  "currency": "USD",
  "inStock": true,
  "imageUrl": "https://example.com/images/sample-coat.jpg",
  "description": "Sample flannel coat with a relaxed fit.",
  "scrapedAt": "2026-01-01T00:00:00Z"
}

Ways to use this data

  • Price and discount monitoring: track the sale section or specific designers on a schedule, and get only the price moves and new markdowns.
  • Resale and reseller pricing research: compare SSENSE retail and sale prices against resale platforms for the same designers and styles.
  • Assortment and catalogue analysis: map which designers, categories and genders make up the storefront, with stock state per product.
  • Fashion trend and content research: pull product names, designers and images to track what a luxury retailer stocks each season.
  • Deal and drop alerting: watch a designer or category for restocks and new markdowns with Incremental mode.

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 SSENSE Scraper return?

The documented output for SSENSE Scraper includes id, rowtype, product, designer, sku, section, category and price. Availability of each field depends on the source page and the selected mode.

How much does SSENSE Scraper cost?

It costs $2.00 per 1,000 results on the Apify Free plan and from $1.70 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 track 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 (a price move counts as an update), and unchanged ones are not billed unless you turn on Emit unchanged.

Why did URL mode return more or fewer rows than I expected?

A pasted product URL always returns exactly one record. A pasted browse, category, designer or sale URL is walked page by page like a search, and the price, discount and sort filters still narrow what the run keeps; the category, designers and sale only inputs do not apply, because the pasted URL already decides that scope.

Can I use it with AI agents or MCP?

Yes. Call it from any Apify integration or MCP client, and use the connector field to push results into Notion, Linear or Airtable.

Ready to collect with SSENSE Scraper?

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