# Harrods Actor (`getdataforme/my-harrods-actor`) Actor

The Harrods Actor is a powerful tool to scrape product details from Harrods, including names, prices, descriptions, images, and codes. Perfect for catalog building or price monitoring, this Actor handles multiple URLs efficiently. Ensure proxy use for seamless data extraction. Start scraping today!

- **URL**: https://apify.com/getdataforme/my-harrods-actor.md
- **Developed by:** [GetDataForMe](https://apify.com/getdataforme) (community)
- **Categories:** E-commerce
- **Stats:** 8 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $7.00 / 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 a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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

## Harrods Actor

### Overview
The Harrods Actor allows you to scrape detailed product information from Harrods web pages effortlessly. Whether you’re gathering product details for analysis, building a catalog, or monitoring price changes, this Actor is designed to provide reliable and accurate data extraction.

#### Key Features:
- Extract product details such as name, price, description, images, and product codes.
- Process multiple Harrods product URLs in a single run.
- Outputs data in a structured JSON format.
- Easy-to-use input configuration.

> **Note:** Use proxies to prevent potential blocking by the website.

---

### How It Works
#### Step 1: Configure Input
Provide a list of Harrods product page URLs that you want to scrape. The input is a JSON object structured as follows:

```json
{
    "title": "Scrape harrods data from web pages",
    "type": "object",
    "schemaVersion": 1,
    "properties": {
        "urls": {
            "title": "List of URLs of the harrods pages",
            "type": "array",
            "description": "A list of URLs of the web pages you want to scrape data from.",
            "editor": "stringList",
            "prefill": [
                "https://www.harrods.com/en-np/p/gianvito-rossi-leather-vanta-knee-high-boots-85-000000000007658417"
            ]
        }
    },
    "required": ["urls"]
}
````

#### Step 2: Run the Actor

Start the Actor by uploading the input JSON. You can run it locally or through the Apify platform.

#### Step 3: View Output

The Actor returns the scraped data in the following JSON format:

```json
[
    {
        "product_name": "Suede Crystal-Embellished Bon Bon Bag",
        "product_price": "2,350 USD",
        "product_image": [
            "https://hrd-live.cdn.scayle.cloud/images/622a28a2b15fdf61af13704a97e76380.jpg?quality=75",
            "https://hrd-live.cdn.scayle.cloud/images/0d03f2895afc92eca5c18597511e89bd.jpg?quality=75",
            "https://hrd-live.cdn.scayle.cloud/images/b8c1e644fa90b175afb6ba0d61e8b4f7.jpg?quality=75",
            "https://hrd-live.cdn.scayle.cloud/images/c52eb1c7f60d624822571405c980f067.jpg?quality=75",
            "https://hrd-live.cdn.scayle.cloud/images/a3d8462e25faec92d96992f0c4b96c55.jpg?quality=75",
            "https://hrd-live.cdn.scayle.cloud/images/2befd8faab6b80625b7d003c68bbba09.jpg?quality=75"
        ],
        "product_url": "https://www.harrods.com/en-us/p/jimmy-choo-suede-crystal-embellished-bon-bon-bag-000000000007596280",
        "description": "Bringing vintage influences firmly into the modern day, Jimmy Choo's Bon Bon bag sees a suede crystal-embellished pouch brought together by a drawstring fastening and structured bracelet handle. Clasp the perfectly formed accessory in your hand as you step out to your next engagement, enjoying its resolutely regal appeal.",
        "product_code": "000000000007596280"
    },
    {
        "product_name": "Virgin Wool Sweater",
        "product_price": "355 USD",
        "product_image": [
            "https://hrd-live.cdn.scayle.cloud/images/75113b9dcfacb08c8e4ce6cb69834a37.jpg?quality=75",
            "https://hrd-live.cdn.scayle.cloud/images/713f66a293fd375677d349deca209fe5.jpg?quality=75",
            "https://hrd-live.cdn.scayle.cloud/images/4ae745571476b7c76c42cd45b662bc81.jpg?quality=75",
            "https://hrd-live.cdn.scayle.cloud/images/4b1b38e338b5931335c9d3b1a454ff33.jpg?quality=75",
            "https://hrd-live.cdn.scayle.cloud/images/478fb4dac6faaaa2b3a59569341aa89d.jpg?quality=75",
            "https://hrd-live.cdn.scayle.cloud/images/471a118cc07796594036f4d86b85aab7.jpg?quality=75"
        ],
        "product_url": "https://www.harrods.com/en-us/p/vivienne-westwood-virgin-wool-sweater-000000000007687741",
        "description": "Following its emergence in the late '80s, Vivienne Westwood’s Orb motif remains an iconic symbol for the House; it represents the past in the form of royalty alongside the rings of Saturn to signify the future. Embroidered to the chest of this virgin wool sweater, it lends a dose of heritage flair to the classic silhouette and sends a familiar message to those in the know.",
        "product_code": "000000000007687741"
    }
]
```

***

### Input Fields

- **urls**: (Required) An array of Harrods product page URLs. Provide the specific URLs you want to scrape.

### Output Fields

The output consists of a list of objects, each containing the following fields:

- **product\_name**: The name of the product.
- **product\_price**: The price of the product.
- **product\_image**: A list of URLs for the product images.
- **product\_url**: The URL of the scraped product page.
- **description**: A brief description of the product.
- **product\_code**: The unique identifier for the product.

***

### Support

For questions, custom output formats, or to report issues, contact us at support@getdataforme.com.

You can also reach us via [our contact form](https://getdataforme.com/contact/). Please mention "Harrods Actor Support" in the subject line for faster response.

***

#### Proxy Usage

To avoid being blocked by the Harrods website, ensure you activate proxies when running the Actor.

# Actor input Schema

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

A list of URLs of the web pages you want to scrape data from.

## `proxyConfiguration` (type: `object`):

Specifies proxy servers that will be used by the scraper in order to hide its origin.

## Actor input object example

```json
{
  "urls": [
    "https://www.harrods.com/en-us/p/christian-louboutin-cassia-lace-up-satin-pumps-100-000000000007722569"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# 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 = {
    "urls": [
        "https://www.harrods.com/en-us/p/christian-louboutin-cassia-lace-up-satin-pumps-100-000000000007722569"
    ],
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("getdataforme/my-harrods-actor").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 = {
    "urls": ["https://www.harrods.com/en-us/p/christian-louboutin-cassia-lace-up-satin-pumps-100-000000000007722569"],
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("getdataforme/my-harrods-actor").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "urls": [
    "https://www.harrods.com/en-us/p/christian-louboutin-cassia-lace-up-satin-pumps-100-000000000007722569"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call getdataforme/my-harrods-actor --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=getdataforme/my-harrods-actor",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Harrods Actor",
        "description": "The Harrods Actor is a powerful tool to scrape product details from Harrods, including names, prices, descriptions, images, and codes. Perfect for catalog building or price monitoring, this Actor handles multiple URLs efficiently. Ensure proxy use for seamless data extraction. Start scraping today!",
        "version": "0.0",
        "x-build-id": "EIH0vuMlbPirPDpgV"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/getdataforme~my-harrods-actor/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-getdataforme-my-harrods-actor",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/getdataforme~my-harrods-actor/runs": {
            "post": {
                "operationId": "runs-sync-getdataforme-my-harrods-actor",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/getdataforme~my-harrods-actor/run-sync": {
            "post": {
                "operationId": "run-sync-getdataforme-my-harrods-actor",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "urls"
                ],
                "properties": {
                    "urls": {
                        "title": "List of URLs of the harrods pages",
                        "type": "array",
                        "description": "A list of URLs of the web pages you want to scrape data from.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Specifies proxy servers that will be used by the scraper in order to hide its origin.",
                        "default": {
                            "useApifyProxy": true,
                            "apifyProxyGroups": [
                                "RESIDENTIAL"
                            ]
                        }
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
