# Nuuly Scraper - Clothing Rentals, Prices, Sizes & Reviews (`abotapi/nuuly-com-scraper`) Actor

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.

- **URL**: https://apify.com/abotapi/nuuly-com-scraper.md
- **Developed by:** [Abot API](https://apify.com/abotapi) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.70 / 1,000 product records

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Nuuly Scraper: Rental Catalog, Prices and Reviews

This actor collects the Nuuly clothing rental catalog: browse the catalog by category or brand, paste product or listing links, and get one structured record per style with the retail price, availability, sizes, colorways, fabric attributes, images and member reviews. Results land in the Apify dataset with CSV, Excel, JSON and API export, on a schedule or on demand.

### Why This Scraper?

- **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.

### Use Cases

- **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.

### Data You Get

> Sample shape: values are illustrative placeholders, not from a live record.

| Field | Example |
|---|---|
| `recordId` | `nuuly:sample-style_001` |
| `title` | Sample Style Name |
| `brand` | Sample Brand |
| `url` | `https://www.nuuly.com/rent/products/sample-style?color=001` |
| `retailPrice` | `198` |
| `salePrice` | `149` |
| `discountPercent` | `25` |
| `colorName` | BLACK |
| `availabilityStatus` | `IN_STOCK` |
| `availableToRent` | `true` |
| `ratingAverage` | `4.7` |
| `ratingCount` | `1788` |
| `sizes` | `[{"size": "XS", "available": true}]` |
| `colors` | `[{"code": "001", "name": "BLACK", "hex": "#000000"}]` |
| `attributes` | `[{"name": "Fabric", "value": "Polyester, Nylon"}]` |
| `description` | Long product description text appears here when Fetch product details is on. |
| `fabricCare` | Fabric composition and care instructions appear here. |
| `imageUrls` | Full image gallery, largest size per image |
| `reviews` | Attached member reviews with rating, fit, title, body and date |

Product pages also carry the reviewer's public display name, the review histogram and fit-rating average. Reviewer body measurements are not collected.

### How to Use

1. Pick a mode: Search walks catalog listings (categories, brands or brand names); URL mode reads the exact links you paste.
2. Fill the fields for your mode: listing slugs like `dresses`, `tops`, `all`, or brand slugs like `free-people`, plus any filters.
3. Set Max items (the one stop cap; `0` means unlimited) and whether to fetch product details and reviews.
4. Run the actor and export the dataset as CSV, Excel, JSON or via API.

**Search by category with filters:**

```json
{
  "mode": "search",
  "browseSlugs": ["dresses"],
  "occasions": "Cocktail",
  "length": "Midi",
  "maxItems": 50,
  "fetchDetails": true,
  "maxReviews": 20
}
```

**Search by plain brand name:**

```json
{
  "mode": "search",
  "browseSlugs": ["Free People"],
  "maxItems": 100
}
```

**Paste product and listing links:**

```json
{
  "mode": "url",
  "urls": [
    "https://www.nuuly.com/rent/products/sample-style?color=001",
    "https://www.nuuly.com/rent/browse/dresses"
  ],
  "maxItems": 100
}
```

**Scheduled monitoring with incremental mode:**

```json
{
  "mode": "search",
  "browseSlugs": ["new-arrivals"],
  "incrementalMode": true,
  "maxItems": 0
}
```

#### Run it from your code

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("abotapi/nuuly-com-scraper").call(run_input={
    "mode": "search",
    "browseSlugs": ["dresses"],
    "maxItems": 50,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item["title"], item["retailPrice"])
```

```javascript
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('abotapi/nuuly-com-scraper').call({
    mode: 'search',
    browseSlugs: ['dresses'],
    maxItems: 50,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.map((i) => [i.title, i.retailPrice]));
```

You can also chain the actor from Make, Zapier, n8n, Google Sheets or webhooks from the Integrations tab of the actor page.

#### How Max items shapes a run

Max items is the only cap that stops a run early: `20` returns the first 20 products of the first listing, `0` walks every listing until the catalog's natural end. Each listing page carries up to 100 products; Max pages per listing defaults wide open so the two never fight.

#### Resume and recurring updates

Resume from run ID continues one interrupted run: already-collected records are skipped and the walk continues where it stopped. Incremental mode is the scheduled-run companion: the same search run again remembers its previous results, returns only NEW, UPDATED, REAPPEARED or EXPIRED rows, and suppresses unchanged products so they cost nothing. Emit unchanged and Emit expired bring the suppressed rows back, explicitly marked and billed. Fields that change on every fetch without the record changing are excluded from change detection, and you can add more through Ignore fields when detecting changes. One honest caveat: the catalog rotates its listing order between calls, so a recurring listing scope legitimately classifies mostly NEW rows (newly surfaced products, not phantom updates); a single-product scope suppresses deterministically.

### Send results into your apps (MCP connectors)

This actor can pipe its results straight into the apps you already use through Apify MCP connectors. It ships with the connector surface enabled and `mcpConnectors`, `notionParentPageUrl` and `maxNotifyListings` input fields, so you can authorize a connector once under Apify → Settings → API & Integrations and then select it in the actor's input.

- **Notion:** each item becomes a page under the parent page you name in `notionParentPageUrl`.
- **Other connectors:** a best-effort write or digest via the connector's own tools.

The connector export is a side channel: it never changes, reorders or filters the dataset. Each item is written as a condensed human-readable summary (title, price, brand and link flattened to text), not the full JSON; the complete record always stays in the Apify dataset. Leave `mcpConnectors` empty and nothing is exported.

### Input Parameters

| Parameter | Type | Default | Description |
|---|---|---|---|
| `mode` | select | `search` | Search the catalog, or paste catalog links. |
| `browseSlugs` | stringList | `["dresses"]` | One listing per entry: category slugs (`all`, `dresses`, `tops`, `jackets`), brand slugs (`free-people`) or plain brand names (matched against the brand directory). |
| `brands` | stringList | empty | Narrow to brand names exactly as the catalog writes them (for example Free People, Maeve). |
| `occasions` | select | empty | The catalog's own occasion filter (Cocktail, Wedding Guest, and so on). |
| `length` | select | empty | The catalog's own length filter (Mini, Midi, Maxi, and so on). |
| `material` | select | empty | The catalog's own material filter (Silk, Velvet, Linen, and so on). |
| `silhouettes` | select | empty | The catalog's own silhouette filter (A-Line, Slip, and so on). |
| `color` | select | empty | The catalog's own color filter. |
| `sort` | select | `popular` | Listing order: Popular, Newest, Top Rated, or price high to low / low to high. |
| `inStock` | checkbox | `true` | Only items currently available to rent; turn off to include everything. |
| `urls` | stringList | empty | URL mode: product links return one record each; listing links are walked forward. |
| `fetchDetails` | checkbox | `true` | Read each product's own page for description, fabric notes, sizes, colorways, gallery and reviews. Adds a per-record surcharge. |
| `maxReviews` | integer | `20` | Cap on member reviews attached per record (`0` skips reviews). Each delivered review is billed once. |
| `maxItems` | integer | `20` | The one stop cap; `0` means unlimited. |
| `maxPages` | integer | `0` | Max pages walked per listing; defaults wide open. |
| `proxy` | proxy | residential | Nuuly catalog and product pages work through residential proxy. Access depends on your Apify plan; you can supply your own proxy URLs if needed. |
| `resumeFromRunId` | textfield | empty | Run ID of an interrupted run to continue. |
| `incrementalMode` | checkbox | `false` | Track changes across scheduled runs; suppress and never bill unchanged products. |
| `stateKey` | textfield | empty | Optional name for the incremental baseline; derived from the search scope when empty. |
| `emitUnchanged` | checkbox | `false` | Also return (and bill) rows classified UNCHANGED. |
| `emitExpired` | checkbox | `false` | Also return (and bill) EXPIRED rows for products that left the catalog. |
| `ignoreFieldsForChanges` | stringList | empty | Extra top-level fields excluded from change detection (incremental mode only). |
| `mcpConnectors` | connector list | empty | Optionally send results into Notion, Linear, Airtable or another MCP connector. |
| `notionParentPageUrl` | textfield | empty | Notion parent page for the Notion connector export. |
| `maxNotifyListings` | integer | `50` | Cap on items written to each connector per run. |

### Output Example

> Sample shape: values are illustrative placeholders, not from a live record.

```json
{
  "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"
}
```

### Plan Requirement

This actor is a pay-per-event actor: you are charged per product record, with surcharges for product-detail reads and delivered reviews, plus a small per-run start cost. Residential proxy access depends on your Apify plan; you can provide your own proxy URLs if needed.

### FAQ

#### How much does it cost?

You pay per product record returned, plus a surcharge per enriched record when Fetch product details is on, plus one review event per delivered member review, and a small per-run start cost. Exact unit prices are on the Pricing tab of this actor's page. Unchanged rows in incremental mode are suppressed and never billed. Max items and Max reviews bound what a run can spend.

#### Is it legal to scrape Nuuly?

This actor collects publicly available catalog data. You are responsible for using it in line with the site's terms, applicable privacy law (GDPR, CCPA) and your own regulations, and for any personal data you process. Reviewer body measurements are deliberately not collected.

#### 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.

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

If the catalog refuses every connection this run, the actor fails with a connection-problem message rather than returning a fake empty result. Check proxy access and retry later.

#### 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.

### 🔗 Want more fashion data?

Pair this actor with these related scrapers from the same team:

<table>
<tr><td>👗 <a href="https://apify.com/abotapi/next-uk-product-scraper"><b>Next.co.uk Scraper</b></a><br>Scrape Next.co.uk: keyword search, category and product-listing walks, full product...</td><td>👗 <a href="https://apify.com/abotapi/24s-com-scraper"><b>24S Scraper</b></a><br>Scrape 24S luxury fashion by category, filters, or URL. Extract brand, name, price...</td></tr>
<tr><td>👗 <a href="https://apify.com/abotapi/showpo-com-scraper"><b>Showpo Scraper</b></a><br>Scrape Showpo women's fashion by keyword, collection or URL. Extract product prices...</td><td>🏷️ <a href="https://apify.com/abotapi/thredup-scraper"><b>ThredUp Scraper</b></a><br>Scrape ThredUp resale listings by keyword, department, brand, size, condition, price or...</td></tr>
<tr><td>👗 <a href="https://apify.com/abotapi/mango-com-scraper"><b>Mango Scraper</b></a><br>Scrape Mango (shop.mango.com) fashion products: current price plus strike-through Rebajas...</td><td>🏷️ <a href="https://apify.com/abotapi/vinted-fr-scraper"><b>Vinted.fr</b></a><br>Scrape Vinted.fr, France's C2C second-hand fashion marketplace: search with...</td></tr>
</table>

👉 [Browse all abotapi scrapers](https://apify.com/abotapi)

### 💬 Support

- 🐞 **Found a bug or a missing field?** Open a ticket on the [Issues tab](https://apify.com/abotapi/nuuly-com-scraper/issues/open). We usually reply within hours.
- 🛠️ **Need another site, extra fields or a private build?** Email <contact@abotapi.com>.
- ⭐ **Enjoying it?** A quick review on the actor page helps other users find it.

# Actor input Schema

## `mode` (type: `string`):

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.

## `browseSlugs` (type: `array`):

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.

## `brands` (type: `array`):

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.

## `occasions` (type: `string`):

Optional. The catalog's own occasion filter.

## `length` (type: `string`):

Optional. The catalog's own length filter.

## `material` (type: `string`):

Optional. The catalog's own material filter.

## `silhouettes` (type: `string`):

Optional. The catalog's own silhouette filter.

## `color` (type: `string`):

Optional. The catalog's own color filter.

## `sort` (type: `string`):

Listing order.

## `inStock` (type: `boolean`):

Only items the catalog currently shows as available to rent. Turn off to include the full catalog including everything currently rented out.

## `urls` (type: `array`):

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.

## `fetchDetails` (type: `boolean`):

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.

## `maxReviews` (type: `integer`):

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.

## `maxItems` (type: `integer`):

The one stop cap: 0 means unlimited.

## `maxPages` (type: `integer`):

Defaults wide open so Max items is the only cap that stops a run early. Each listing page carries up to 100 products.

## `proxy` (type: `object`):

Residential proxy is preselected because Nuuly serves catalog pages through it. Access depends on your Apify plan; if your plan does not include residential access, use your own proxy URLs.

## `resumeFromRunId` (type: `string`):

Run ID of an interrupted run. Its already-collected records are skipped and the walk continues where it stopped.

## `incrementalMode` (type: `boolean`):

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.

## `stateKey` (type: `string`):

Optional name for the incremental baseline. Leave empty to derive it from the search scope, so two differently configured runs never share a baseline.

## `emitUnchanged` (type: `boolean`):

Also return (and bill) rows classified UNCHANGED in incremental mode.

## `emitExpired` (type: `boolean`):

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.

## `ignoreFieldsForChanges` (type: `array`):

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.

## `mcpConnectors` (type: `array`):

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).

## `notionParentPageUrl` (type: `string`):

URL (or id) of the Notion page under which item pages are created. Required to enable the Notion export; ignored by other connectors.

## `maxNotifyListings` (type: `integer`):

Cap on items written to each connector per run. Does not affect the dataset.

## Actor input object example

```json
{
  "mode": "search",
  "browseSlugs": [
    "dresses"
  ],
  "sort": "popular",
  "inStock": true,
  "urls": [
    "https://www.nuuly.com/rent/products/pippa-packable-puffer-jacket?color=001",
    "https://www.nuuly.com/rent/browse/tops",
    "https://www.nuuly.com/rent/brands/free-people"
  ],
  "fetchDetails": true,
  "maxReviews": 20,
  "maxItems": 20,
  "maxPages": 0,
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  },
  "incrementalMode": false,
  "emitUnchanged": false,
  "emitExpired": false,
  "maxNotifyListings": 50
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

## `detail` (type: `string`):

No description

## `reviews` (type: `string`):

No description

## `changes` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "browseSlugs": [
        "dresses"
    ],
    "urls": [
        "https://www.nuuly.com/rent/products/pippa-packable-puffer-jacket?color=001",
        "https://www.nuuly.com/rent/browse/tops",
        "https://www.nuuly.com/rent/brands/free-people"
    ],
    "proxy": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("abotapi/nuuly-com-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "browseSlugs": ["dresses"],
    "urls": [
        "https://www.nuuly.com/rent/products/pippa-packable-puffer-jacket?color=001",
        "https://www.nuuly.com/rent/browse/tops",
        "https://www.nuuly.com/rent/brands/free-people",
    ],
    "proxy": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("abotapi/nuuly-com-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "browseSlugs": [
    "dresses"
  ],
  "urls": [
    "https://www.nuuly.com/rent/products/pippa-packable-puffer-jacket?color=001",
    "https://www.nuuly.com/rent/browse/tops",
    "https://www.nuuly.com/rent/brands/free-people"
  ],
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call abotapi/nuuly-com-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,abotapi/nuuly-com-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/Ej5CoemYLryXXrlKF/builds/Kg1WTLcileTEvpydn/openapi.json
