# Zara Product Scraper US (`mrdoe/zara-product-scraper-us`) Actor

Scrape Zara US product listings by category or search term. Get product names, prices, availability, colors, sizes, images, URLs, and product details in structured JSON.

- **URL**: https://apify.com/mrdoe/zara-product-scraper-us.md
- **Developed by:** [MrDoe](https://apify.com/mrdoe) (community)
- **Categories:** E-commerce
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.79 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

**Turn Zara's entire product catalog into structured data in seconds** - no coding, no manual copy-pasting, no browser needed. Get product name, price, availability, color, and photos for any Zara category, from a single plain-English category name.

### What does Zara Product Scraper US do?

Zara Product Scraper US pulls fashion product listings directly from [Zara.com](https://www.zara.com)'s own internal catalog API - the same one the site itself uses to render category pages. Give it a category name (`woman`, `dresses`, `jeans`, `man`, anything) and it resolves that to the right internal category and returns every product in it, typically in a single fast request with no pagination needed.

### Why use Zara Product Scraper US?

- **Price monitoring** - track how Zara prices specific categories or products over time.
- **Trend and assortment research** - see exactly what's in stock, in which colors, across any category.
- **Competitive intelligence** - compare Zara's catalog and pricing against other retailers.
- **Data enrichment** - pull structured product data into your own spreadsheet, PIM, or price-comparison tool.

### How to use Zara Product Scraper US

1. Go to the **Input** tab.
2. Type a **Category** in plain English - broad (`woman`, `man`, `kids`) or specific (`dresses`, `jeans`, `knitwear`, `jackets`). No need to know Zara's internal category IDs or URLs.
3. Set **Max items** to control how many products to collect.
4. Click **Start** - most categories return in a single request, so runs finish in seconds.
5. Open the **Dataset** tab to preview, filter, and export your results.

### Input

| Field | Type | Description |
| --- | --- | --- |
| `category` | String | A Zara category name, matched case-insensitively (e.g. `dresses`, `woman`, `jeans`). |
| `maxItems` | Integer | Maximum number of products to scrape (default: 100). |

Example input:

```json
{
    "category": "dresses",
    "maxItems": 100
}
```

### Output

Each product is saved as one item in the dataset, for example:

```json
{
    "id": 561615322,
    "reference": "05039846-I2026",
    "url": "https://www.zara.com/us/en/animal-print-tulle-dress-p05039846.html",
    "name": "ANIMAL PRINT TULLE DRESS",
    "description": null,
    "price": 45.9,
    "currency": "USD",
    "brand": "Zara",
    "productType": "Wear",
    "section": "WOMAN",
    "family": "VESTIDO",
    "subfamily": "C.VESTIDO FANTA",
    "availability": "in_stock",
    "tags": [],
    "colorName": "Zebra",
    "availableColors": ["Zebra"],
    "image": "https://static.zara.net/assets/public/.../05039846037-p.jpg?w=800",
    "galleryImages": [
        "https://static.zara.net/assets/public/.../05039846037-p.jpg?w=800",
        "https://static.zara.net/assets/public/.../05039846037-f1.jpg?w=800"
    ],
    "category": "DRESSES",
    "scrapedAt": "2026-08-14T00:00:00.000Z"
}
```

#### Data table

| Field | Description |
| --- | --- |
| `id`, `reference` | Zara's internal product ID and style reference code |
| `url` | The product's own page on Zara.com |
| `name`, `description` | Product title and description |
| `price`, `currency` | Price in USD |
| `brand` | Always `Zara` |
| `productType` | Zara's internal product kind (e.g. `Wear`) |
| `section`, `family`, `subfamily` | Zara's internal merchandising categories for this product |
| `availability` | Stock status as Zara reports it (e.g. `in_stock`) |
| `tags` | Any promotional/merchandising tags Zara has applied to this product |
| `colorName` | The color shown for this listing |
| `availableColors` | Every color this product is currently offered in |
| `image` | Primary product photo URL |
| `galleryImages` | Every photo available for this listing's color |
| `category` | The resolved category name this run searched |
| `scrapedAt` | ISO timestamp when the item was scraped |

Zara doesn't expose ratings/reviews on its category listing pages - only individual product pages do, which would require a separate request per product. This Actor is built for fast, whole-category scraping (hundreds of products in one or two requests), so review data isn't included; ask if you need a detail-page variant that trades speed for that.

### Pricing / Cost estimation

How much does it cost to scrape Zara products? Very little - unlike many fashion sites, Zara's catalog API returns an entire category in one request, so a full category of hundreds of products typically costs just 1-2 requests total.

### Tips for better runs

- Broad categories like `woman` return everything in that department; narrow to a specific category like `dresses` or `jeans` for a focused pull.
- If **Category** doesn't match anything, try a shorter or more general term - matching is a case-insensitive substring search against Zara's own category names.
- Use the Apify **Schedule** feature to re-run this Actor periodically and track price or availability changes over time.

### FAQ

**Is this legal?** This Actor only collects publicly visible product data. You are responsible for using the data in accordance with Zara's Terms of Service and any applicable laws in your jurisdiction.

**Why did my category not match?** Category matching is a substring search against Zara's real category names, which are broad merchandising labels (e.g. "DRESSES", "KNITWEAR"). Very specific or misspelled terms may not match - try a broader term first.

**Why did I get a smaller/different set of results than expected?** Zara reuses the same category name (e.g. "DRESSES") in multiple places across its taxonomy - once under Woman, again under a themed sub-collection, etc. This Actor matches the shallowest (most general) occurrence it finds, which is usually but not always the biggest one. If a run returns fewer products than you expected, that's most likely why.

**Found a bug or have a feature request?** Please use the Issues tab on this Actor's page - feedback directly shapes future updates.

# Actor input Schema

## `category` (type: `string`):

A Zara category to scrape, matched by name (case-insensitive, partial match). Try broad terms like <code>woman</code> or <code>man</code>, or specific ones like <code>dresses</code>, <code>jeans</code>, or <code>knitwear</code>.

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

Maximum number of products to scrape from the matched category.

## Actor input object example

```json
{
  "category": "dresses",
  "maxItems": 100
}
```

# Actor output Schema

## `listings` (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 = {
    "category": "dresses"
};

// Run the Actor and wait for it to finish
const run = await client.actor("mrdoe/zara-product-scraper-us").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 = { "category": "dresses" }

# Run the Actor and wait for it to finish
run = client.actor("mrdoe/zara-product-scraper-us").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 '{
  "category": "dresses"
}' |
apify call mrdoe/zara-product-scraper-us --silent --output-dataset

```

## MCP server setup

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

```

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/MzGO8RoM6LTldBgMr/builds/gfln8rUBupqCSFWNQ/openapi.json
