Nuuly Scraper at a glance
Nuuly Scraper is a ready-to-run Apify actor from abotapi for collecting web data. Its documented output includes recordid, title, brand, url and retail price (usd), 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
- 24 options
Scrape Nuuly clothing rental products by category, brand or URL. Extract product names, brands, retail prices, rental availability, sizes, colors, fabric details, product images and member reviews.
What Nuuly Scraper can do
- Three ways in. Search the catalog by category or brand, filter it, or paste any product or listing link and walk its pages forward.
- Everything about each style. Retail price, sale context, availability, per-size stock, colorways with hex colors, fabric and care notes, model notes, attributes and the full image gallery.
- Member reviews included. Ratings with a per-star histogram, fit ratings, titles, bodies and dates, attached to each enriched record and also exposed one row per review.
- Recurring runs that bill only changes. Incremental mode remembers the previous run of the same search and returns NEW, UPDATED, REAPPEARED or EXPIRED rows; unchanged products are suppressed and never billed.
- Resume an interrupted run. Paste a run ID and the walk continues where it stopped, skipping everything already collected.
- Export anywhere. Pipe results into Notion, Linear, Airtable or any MCP connector without touching the dataset output.
Choose what to collect
These inputs let you configure Nuuly Scraper - Clothing Rentals, Prices, Sizes & Reviews. Open the actor on Apify to enter your values and review the current options.
| Input | What it controls |
|---|---|
modestring · required | Search walks one catalog listing per entry (category slug, brand slug or brand name). URL mode reads exactly the links you paste and walks their pagination forward. |
browseSlugsarray | One listing per entry. Category slugs like all, dresses, tops, jackets, sweaters-sweatshirts; brand slugs like free-people; or plain brand names like Free People (matched against the brand directory). The first entry's filters below apply to every listing. |
brandsarray | Optional. Narrow results to these brand names, exactly as the catalog writes them (for example Free People, Maeve, Anthropologie). Comma-separable multi-value is sent as one filter. |
occasionsstring | Optional. The catalog's own occasion filter. |
lengthstring | Optional. The catalog's own length filter. |
materialstring | Optional. The catalog's own material filter. |
silhouettesstring | Optional. The catalog's own silhouette filter. |
Show 17 more inputs
| Input | What it controls |
|---|---|
colorstring | Optional. The catalog's own color filter. |
sortstring | Listing order. |
inStockboolean | Only items the catalog currently shows as available to rent. Turn off to include the full catalog including everything currently rented out. |
urlsarray | Multi-URL supported. Product links return one record each; listing links (rent/browse/... or rent/brands/...) are walked forward page by page. Links may carry a color or page parameter. Search-mode filters are ignored. |
fetchDetailsboolean | Read each product's own page for the description, fabric and care notes, model notes, size availability, colorways, full image gallery, attributes and member reviews. |
maxReviewsinteger | Cap on member reviews attached to each enriched record. Reviews are served on the product page itself (the catalog serves up to 16 per page there), so this trims the attached list; 0 skips reviews. Each delivered review is billed once. |
maxItemsinteger | The one stop cap: 0 means unlimited. |
maxPagesinteger | Defaults wide open so Max items is the only cap that stops a run early. Each listing page carries up to 100 products. |
resumeFromRunIdstring | Run ID of an interrupted run. Its already-collected records are skipped and the walk continues where it stopped. |
incrementalModeboolean | Recurring monitoring: remember the previous run of the same search and return only NEW, UPDATED or REAPPEARED products (plus EXPIRED rows when Emit expired is on). Unchanged products are suppressed and never billed. |
stateKeystring | Optional name for the incremental baseline. Leave empty to derive it from the search scope, so two differently configured runs never share a baseline. |
emitUnchangedboolean | Also return (and bill) rows classified UNCHANGED in incremental mode. |
emitExpiredboolean | Also return (and bill) EXPIRED rows for tracked products that left the catalog. Only a run that reached the natural end of every listing may mark rows expired. |
ignoreFieldsForChangesarray | Top-level field names excluded from change detection on top of the built-in defaults (scrapedAt, the nested reviews list; its count is tracked instead). Use for fields you do not want to bill as changes. |
mcpConnectorsarray | Optionally 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 rich page-per-item export; other connectors get a best-effort write/digest. Leave empty to skip, 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). |
notionParentPageUrlstring | URL (or id) of the Notion page under which item pages are created. Required to enable the Notion export; ignored by other connectors. |
maxNotifyListingsinteger | Cap 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.
recordIdrecordIdtitleTitle (text)brandBrand (text)urlURL (link)retailPriceRetail price (USD) (number)salePriceSale price (number)listPriceList price (number)discountPercentDiscount % (number)colorNameColor (text)availabilityStatusAvailability (text)availableToRentAvailable to rent (boolean)ratingAverageRating (number)Show 35 more fields
ratingCountRating count (number)imageUrlImage (image)productSlugSlug (text)styleNumberStyle number (text)isVintageVintage (boolean)vendorBrandsVendor brands (list)scrapedAtScraped at (datetime)brandSlugBrand slug (text)colorCodeColor code (text)descriptionDescription (text)additionalDescriptionDetails (text)fabricCareFabric and care (text)modelNotesModel notes (text)sizesSizes (list)colorsColorways (list)attributesAttributes (list)imageUrlsImages (list)skuIdSKU (text)merchandiseClassClass (text)reviewsTotalTotal reviews (number)ratingHistogramRating histogram (object)fitRatingAverageFit rating (number)reviewIdReview id (text)reviewAuthorMember (text)reviewRatingRating (number)reviewFitRatingFit rating (number)reviewTitleTitle (text)reviewBodyReview (text)reviewDateDate (datetime)reviewTypeType (text)reviewPhotosPhotos (list)changeTypeChange (text)changedFieldsChanged fields (list)firstSeenAtFirst seen (datetime)lastSeenAtLast seen (datetime)Example output
An example from this actor’s documentation. Values are illustrative; this is not a fresh live result.
{
"recordId": "nuuly:sample-style_001",
"url": "https://www.nuuly.com/rent/products/sample-style?color=001",
"productSlug": "sample-style",
"styleNumber": "0000000000000",
"title": "Sample Style Name",
"brand": "Sample Brand",
"retailPrice": 198,
"salePrice": null,
"listPrice": null,
"discountPercent": null,
"colorCode": "001",
"colorName": "BLACK",
"availabilityStatus": "IN_STOCK",
"availableToRent": true,
"isVintage": false,
"ratingAverage": 4.7,
"ratingCount": 1788,
"ratingHistogram": {
"1": 6,
"2": 21,
"3": 56,
"4": 261,
"5": 1444
},
"description": "Full product description text appears here when Fetch product details is on.",
"additionalDescription": "* Bullet detail one\n* Bullet detail two",
"fabricCare": "* Cotton, polyester\n* Dry clean",
"modelNotes": "Model is 5'11\" wearing a size S",
"sizes": [
{
"size": "XS",
"group": "Standard",
"available": true,
"inventory": 1
}
],
"colors": [
{
"code": "001",
"name": "BLACK",
"hex": "#000000",
"imageUrl": "https://images.example.com/000000000_001_b"
}
],
"attributes": [
{
"name": "Fabric",
"value": "Polyester, Nylon"
},
{
"name": "Occasion",
"value": "Casual"
}
],
"imageUrl": "https://images.example.com/000000000_001_b",
"imageUrls": [
"https://images.example.com/000000000_001_b"
],
"reviews": [
{
"reviewId": "00000000-0000-0000-0000-000000000000",
"reviewAuthor": "samplemember",
"reviewRating": 5,
"reviewFitRating": 4,
"reviewTitle": "Sample review title",
"reviewBody": "Review text appears here.",
"reviewDate": "2026-01-01 00:00:00.000+00",
"reviewPhotos": []
}
],
"reviewsTotal": 1788,
"scrapedAt": "2026-01-01T00:00:00Z"
}Ways to use this data
- Personal stylists and resellers: track which styles are currently available to rent, at what retail price, before recommending or sourcing them.
- Market and pricing analysts: monitor retail price points, discounts and brand mixes across the rental catalog over time.
- Fashion trend researchers: slice the catalog by occasion, length, material, silhouette or color and measure what the platform is stocking.
- Review and product researchers: collect member review text, ratings and fit feedback per style for sentiment or fit-guidance work.
- Ecommerce teams: mirror competitor rental inventory into your own warehouse on a schedule.
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 Nuuly Scraper return?
The documented output for Nuuly Scraper includes recordid, title, brand, url, retail price (usd), sale price, list price and discount %. Availability of each field depends on the source page and the selected mode.
How much does Nuuly 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 get only new or changed styles on a schedule?
Yes. Turn on Incremental mode and schedule the same search: each run returns only NEW, UPDATED, REAPPEARED and (optionally) EXPIRED rows against its previous baseline, and unchanged products are suppressed and never billed.
Why did a run return fewer results than the website shows?
Filters are applied by the catalog server-side, and the availability filter is on by default: styles currently rented out are excluded until you turn Available to rent only off. Max items also stops the run at its cap before the end of the listing.
Can I use it with AI agents or MCP?
Yes. Select an MCP connector in the input to pipe results into Notion, Linear, Airtable or another MCP-enabled app, and the actor is callable from any MCP client that supports Apify actors.
