# Fergusonhome Parser Spider (`getdataforme/fergusonhome-parser-spider`) Actor

Extract comprehensive product data from Ferguson Home with this Apify Actor. It scrapes titles, descriptions, pricing, availability, and reviews using flexible URL inputs and proxies for reliable performance....

- **URL**: https://apify.com/getdataforme/fergusonhome-parser-spider.md
- **Developed by:** [GetDataForMe](https://apify.com/getdataforme) (community)
- **Categories:** E-commerce, Jobs, Real estate
- **Stats:** 6 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $9.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

## Fergusonhome Parser Spider

The Fergusonhome Parser Spider is a powerful Apify Actor designed to extract detailed product information from the Ferguson Home website. It efficiently scrapes product data including titles, descriptions, pricing, availability, and reviews, making it an invaluable tool for e-commerce analysis and data aggregation. By leveraging advanced web scraping techniques, this Actor ensures reliable and structured data output for seamless integration into your workflows.

### Features

- **Comprehensive Product Extraction**: Captures key details such as product ID, title, description, brand, SKU, pricing, stock availability, and customer ratings from Ferguson Home pages.
- **Flexible URL Input**: Supports multiple URLs for batch processing, allowing users to scrape single products or entire categories efficiently.
- **Proxy Integration**: Utilizes Apify's residential proxies for reliable scraping, minimizing detection and ensuring high success rates.
- **Structured JSON Output**: Delivers clean, machine-readable data in a consistent format, perfect for downstream processing or database integration.
- **Error Handling and Logging**: Includes robust error management to handle site changes or network issues, with detailed logs for troubleshooting.
- **High Performance**: Optimized for speed and scalability, handling multiple requests concurrently while respecting rate limits.
- **Customizable and Extensible**: Easy to configure inputs and adaptable for various use cases, from market research to automated monitoring.

### Input Parameters

| Parameter | Type | Required | Description | Example |
|-----------|------|----------|-------------|---------|
| Urls | array | Yes | An array of URLs pointing to Ferguson Home product pages to scrape. Each URL must be a valid HTTP/HTTPS link. | ["https://www.fergusonhome.com/cafe-csb48wpn/s1650415?uid=4576119&searchId=NjkNG21PL0"] |
| proxy | object | No | Proxy configuration for scraping, including Apify proxy settings. Defaults to using residential US proxies. | {"useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"], "apifyProxyCountry": "US"} |

### Example Usage

To run the Actor, provide the input parameters in JSON format. Here's an example input:

```json
{
  "Urls": [
    "https://www.fergusonhome.com/cafe-csb48wpn/s1650415?uid=4576119&searchId=NjkNG21PL0"
  ],
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["RESIDENTIAL"],
    "apifyProxyCountry": "US"
  }
}
````

The output will be a JSON array of product objects. Example output:

```json
[
  {
    "source_metadata": {
      "source_id": "www.fergusonhome.com",
      "source_url": "https://www.fergusonhome.com/cafe-csb48wpn/s1650415?uid=4576119&searchId=NjkNG21PL0",
      "extraction_timestamp": "2026-01-29T12:38:39.062380",
      "scraper_version": "1.0.0"
    },
    "product": {
      "product_id": "CSB48WPN",
      "title": "48 Inch Wide 29.6 Cu. Ft. Built-In Side by Side Refrigerator",
      "description": "Features: Stainless Steel finish features Brushed Stainless hardware 17.2 cu. ft. fresh food compartment and 12.39 cu. ft. frozen food compartment 4 adjustable refrigerator shelves allow for greater flexibility when storing foods of various sizes Refrigerator comes ready to automatically create filtered ice Door alarm signals when refrigerator door has been left ajar Product Technologies: Showcase LED Lighting: Display groceries like a gallery with showcase LED lighting positioned throughout the interior to spotlight your favorite foods and containers. Spill Proof Glass Shelves: Spills happen, but cleanup is stress-free thanks to adjustable slide-out, spillproof glass shelves that easily shift and lock, and have raised edges to contain mess. Increased Door Storage: Free up valuable shelf space with large door bins, perfect for storing the small foods and containers that can add up and deprive you of room for heftier items. Specifications: Refrigerator Capacity: 17.2 Cu. Ft. Freezer Capacity: 12.39 Cu. Ft. Total Capacity: 29.6 Cu. Ft. Bulb Type: LED Refrigerator Shelves: Glass Counter Depth: Yes Crisper Bins: Yes Gallon Door Storage: Yes Height: 84\" Depth: 28-1/2\" Width: 48\" Amperage: 20A Voltage: 115V",
      "category": null,
      "brand": "Cafe",
      "sku": "CSB48WP2NS1",
      "upc": null
    },
    "pricing": {
      "currency": "USD",
      "list_price": 11029,
      "sale_price": 11029,
      "discount_percentage": null
    },
    "availability": {
      "is_in_stock": true,
      "stock_quantity": 31
    },
    "attributes": {
      "rating_value": 3.3,
      "review_count": 107
    }
  }
]
```

### Use Cases

- **Market Research and Analysis**: Gather detailed product data to analyze trends, pricing strategies, and consumer preferences in the home appliance market.
- **Competitive Intelligence**: Monitor competitors' products on Ferguson Home to compare features, prices, and availability.
- **Price Monitoring**: Track price changes and discounts for specific items to inform purchasing or resale decisions.
- **Content Aggregation**: Collect product descriptions and specs for building comprehensive catalogs or e-commerce platforms.
- **Academic Research**: Extract data for studies on consumer behavior, product reviews, and market dynamics.
- **Business Automation**: Integrate scraped data into automated systems for inventory management or dynamic pricing tools.

### Installation and Usage

1. Search for "Fergusonhome Parser Spider" in the Apify Store
2. Click "Try for free" or "Run"
3. Configure input parameters
4. Click "Start" to begin extraction
5. Monitor progress in the log
6. Export results in your preferred format (JSON, CSV, Excel)

### Output Format

The Actor outputs data as a JSON array of objects, each representing a scraped product. Key sections include:

- **source\_metadata**: Details about the source, URL, timestamp, and scraper version.
- **product**: Core product info like ID, title, description, brand, SKU, and UPC.
- **pricing**: Currency, list price, sale price, and discount percentage.
- **availability**: Stock status and quantity.
- **attributes**: Customer ratings and review counts.

This structured format ensures easy parsing and integration with databases or analytics tools.

### Support

For custom/simplified outputs or bug reports, please contact:

- Email: support@getdataforme.com
- Subject line: "custom support"
- Contact form: https://getdataforme.com/contact/

We're here to help you get the most out of this Actor!

# Actor input Schema

## `Urls` (type: `array`):

The urls for the spider.

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

Proxy settings for the spider.

## Actor input object example

```json
{
  "Urls": [
    "https://www.fergusonhome.com/cafe-csb48wpn/s1650415?uid=4576119&searchId=NjkNG21PL0"
  ],
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "US"
  }
}
```

# Actor output Schema

## `results` (type: `string`):

Scraped data items from dataset

# 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 = {
    "proxy": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "US"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("getdataforme/fergusonhome-parser-spider").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 = { "proxy": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "US",
    } }

# Run the Actor and wait for it to finish
run = client.actor("getdataforme/fergusonhome-parser-spider").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 '{
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "US"
  }
}' |
apify call getdataforme/fergusonhome-parser-spider --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Fergusonhome Parser Spider",
        "description": "Extract comprehensive product data from Ferguson Home with this Apify Actor. It scrapes titles, descriptions, pricing, availability, and reviews using flexible URL inputs and proxies for reliable performance....",
        "version": "0.0",
        "x-build-id": "cnq8wfVPxk5cTiZre"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/getdataforme~fergusonhome-parser-spider/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-getdataforme-fergusonhome-parser-spider",
                "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~fergusonhome-parser-spider/runs": {
            "post": {
                "operationId": "runs-sync-getdataforme-fergusonhome-parser-spider",
                "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~fergusonhome-parser-spider/run-sync": {
            "post": {
                "operationId": "run-sync-getdataforme-fergusonhome-parser-spider",
                "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",
                "properties": {
                    "Urls": {
                        "title": "Urls",
                        "minItems": 1,
                        "type": "array",
                        "description": "The urls for the spider.",
                        "default": [
                            "https://www.fergusonhome.com/cafe-csb48wpn/s1650415?uid=4576119&searchId=NjkNG21PL0"
                        ],
                        "items": {
                            "type": "string"
                        }
                    },
                    "proxy": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Proxy settings for the spider.",
                        "default": {
                            "useApifyProxy": true,
                            "apifyProxyGroups": [
                                "RESIDENTIAL"
                            ],
                            "apifyProxyCountry": "US"
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
