# Iceland Product Search Scraper (`stealth_mode/iceland-product-search-scraper`) Actor

Scrape Iceland Foods product listings with 80+ attributes per item. Extract prices, stock status, nutrition data, reviews, allergen info, and more. Perfect for retail analytics, price monitoring, competitive intelligence, and market research on frozen food products.

- **URL**: https://apify.com/stealth\_mode/iceland-product-search-scraper.md
- **Developed by:** [Stealth mode](https://apify.com/stealth_mode) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

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

## Iceland.co.uk Product Scraper: Extract Frozen Food Data Instantly

***

### About Iceland.co.uk

Iceland Foods is the UK's leading frozen food retailer, offering thousands of products from budget basics to premium items. Whether tracking competitor pricing, analyzing frozen food trends, or building product databases, manual browsing is inefficient — the **Iceland Product Search Scraper** automates extraction, delivering clean, structured data in minutes.

***

### Overview

The **Iceland Product Search Scraper** extracts detailed product listings from Iceland.co.uk search results, capturing comprehensive product information across 80+ fields. It is ideal for:

- **Retail analysts** monitoring frozen food pricing and promotions
- **E-commerce platforms** aggregating UK frozen product catalogs
- **Price comparison services** tracking Iceland vs. competitors
- **Market researchers** studying frozen food consumer trends and stock levels
- **Supply chain teams** monitoring product availability and inventory status

The scraper supports both **direct URL scraping** and **search filter mode**, with configurable price ranges, sorting options, and flexible item limits.

***

### Input Format

The scraper accepts flexible JSON configuration supporting two modes:

#### Mode 1: Scrape by URLs

```json
{
  "urls": [
    "https://www.iceland.co.uk/search?q=meat&srule=Margin-best-sellers&pmin=5.00&pmax=10.00",
    "https://www.iceland.co.uk/fresh?page=2"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 200
}
```

| Parameter | Type | Description |
|---|---|---|
| `urls` | array | Direct links to Iceland search result pages. Accepts multiple URLs for bulk scraping |
| `ignore_url_failures` | boolean | If `true`, continues running if some URLs fail; if `false`, stops on first failure |
| `max_items_per_url` | integer | Maximum products to extract per URL (e.g., 200 limits output to first 200 items) |

**Use case:** When you have pre-built URLs with specific filters already applied.

#### Mode 2: Search by Filters

```json
{
  "keyword": "meat",
  "sort_by": "Margin-best-sellers",
  "price_min": 5,
  "price_max": 10,
  "page": 1,
  "max_items_per_url": 200,
  "ignore_url_failures": true
}
```

| Parameter | Type | Options | Description |
|---|---|---|---|
| `keyword` | string | Any product term | Search term (e.g., "meat", "vegetables", "ice cream") |
| `sort_by` | string | `Margin-best-sellers`, `price-low-to-high`, `price-high-to-low`, `product-name-a-to-z`, `product-name-z-to-a` | Sort order for results |
| `price_min` | integer | Any valid price | Minimum product price in GBP (e.g., 5) |
| `price_max` | integer | Any valid price | Maximum product price in GBP (e.g., 10) |
| `page` | integer | 1, 2, 3... | Starting page number for pagination |
| `max_items_per_url` | integer | 1–500 | Max items to collect per page |

**Use case:** Automated search queries without pre-building URLs.

> **Tip:** Leave the `urls` array empty when using search filter mode. Use `sort_by: "Margin-best-sellers"` to prioritize Iceland's profit-margin bestsellers.

***

### Output Format

**Sample output**

```json
{
  "id": "59391",
  "primary_category_id": "CHLMAPCHI",
  "in_stock": true,
  "price": {
    "g_b_p": 10
  },
  "categories": [
    [
      {
        "id": "ICEOWNLABEL",
        "name": "Iceland Own Label"
      }
    ],
    [
      {
        "id": "ICE5STAR",
        "name": "5 Star Reviews"
      },
      {
        "id": "ICECAM",
        "name": "Campaigns"
      }
    ],
    [
      {
        "id": "LOWPRI",
        "name": "Lowering Prices"
      }
    ],
    [
      {
        "id": "NATCURRYMEAT",
        "name": "Meat & Chicken"
      },
      {
        "id": "CURWEEK",
        "name": "Curry Week"
      },
      {
        "id": "MEALPL",
        "name": "Inspiration & Events"
      }
    ],
    [
      {
        "id": "CHLMAPCHI",
        "name": "Fresh Chicken"
      },
      {
        "id": "CHLMAP",
        "name": "Fresh Meat & Chicken"
      },
      {
        "id": "CHL",
        "name": "Fresh"
      }
    ],
    [
      {
        "id": "BESTSELL",
        "name": "Best Sellers"
      }
    ],
    [
      {
        "id": "BULKMEAT",
        "name": "Meat & Poultry"
      },
      {
        "id": "BULK",
        "name": "Bigger Packs"
      }
    ],
    [
      {
        "id": "MonthEndBYG",
        "name": "Month End Before You Go"
      },
      {
        "id": "BYG",
        "name": "Before You Go Pages"
      }
    ],
    [
      {
        "id": "LDN",
        "name": "London"
      }
    ],
    [
      {
        "id": "AFCORNCHI",
        "name": "Cornflake Chicken"
      },
      {
        "id": "AFBLOG",
        "name": "Affoodable Recipes"
      },
      {
        "id": "MEALPL",
        "name": "Inspiration & Events"
      }
    ],
    [
      {
        "id": "COROFAV",
        "name": "Coronation Favourites"
      }
    ],
    [
      {
        "id": "CHLMAPCHIBRE",
        "name": "Chicken Breast Fillets"
      },
      {
        "id": "CHLMAPCHI",
        "name": "Fresh Chicken"
      },
      {
        "id": "CHLMAP",
        "name": "Fresh Meat & Chicken"
      },
      {
        "id": "CHL",
        "name": "Fresh"
      }
    ],
    [
      {
        "id": "OFFPPC",
        "name": "Offers"
      }
    ],
    [
      {
        "id": "CURWEEK",
        "name": "Curry Week"
      },
      {
        "id": "MEALPL",
        "name": "Inspiration & Events"
      }
    ],
    [
      {
        "id": "AFFCOBBSAL",
        "name": "Chicken Caesar Cobb Salad"
      },
      {
        "id": "AFBLOG",
        "name": "Affoodable Recipes"
      },
      {
        "id": "MEALPL",
        "name": "Inspiration & Events"
      }
    ],
    [
      {
        "id": "AFFCHIMED",
        "name": "Chicken and Mediterranean Vegetable Tray Bake"
      },
      {
        "id": "AFBLOG",
        "name": "Affoodable Recipes"
      },
      {
        "id": "MEALPL",
        "name": "Inspiration & Events"
      }
    ],
    [
      {
        "id": "AFFFAJITA",
        "name": "Chicken Fajitas"
      },
      {
        "id": "AFBLOG",
        "name": "Affoodable Recipes"
      },
      {
        "id": "MEALPL",
        "name": "Inspiration & Events"
      }
    ],
    [
      {
        "id": "AFFCHISTIR",
        "name": "Siracha Chicken Stir-Fry"
      },
      {
        "id": "AFBLOG",
        "name": "Affoodable Recipes"
      },
      {
        "id": "MEALPL",
        "name": "Inspiration & Events"
      }
    ],
    [
      {
        "id": "OFFEM",
        "name": "Offers"
      }
    ],
    [
      {
        "id": "AFFCHIKEB",
        "name": "Greek Style Chicken Kebabs"
      },
      {
        "id": "AFBLOG",
        "name": "Affoodable Recipes"
      },
      {
        "id": "MEALPL",
        "name": "Inspiration & Events"
      }
    ],
    [
      {
        "id": "BULK",
        "name": "Bigger Packs"
      }
    ],
    [
      {
        "id": "FWHRegion2",
        "name": "BYG Food Warehouse region 2"
      },
      {
        "id": "BYG",
        "name": "Before You Go Pages"
      }
    ],
    [
      {
        "id": "DNTFRGT",
        "name": "Don't Forget"
      },
      {
        "id": "ICECAM",
        "name": "Campaigns"
      }
    ],
    [
      {
        "id": "BYGCR2",
        "name": "BYG Core region 2"
      },
      {
        "id": "BYG",
        "name": "Before You Go Pages"
      }
    ],
    [
      {
        "id": "EATWELLLEANMEATS",
        "name": "Lean Meats"
      },
      {
        "id": "EATWELL",
        "name": "Eat Well"
      }
    ],
    [
      {
        "id": "CNY",
        "name": "Chinese New Year"
      }
    ],
    [
      {
        "id": "LNY",
        "name": "Lunar New Year"
      }
    ],
    [
      {
        "id": "root",
        "name": null
      }
    ],
    [
      {
        "id": "EATWELL",
        "name": "Eat Well"
      }
    ],
    [
      {
        "id": "RECIVALPASTA",
        "name": "Marry Me Chicken Pasta"
      },
      {
        "id": "SEASONAL",
        "name": "Seasonal Recipes"
      },
      {
        "id": "RECINS",
        "name": "Recipe Inspirations"
      }
    ],
    [
      {
        "id": "MAC",
        "name": "Meat & Chicken"
      }
    ],
    [
      {
        "id": "SAVESSENTIAL",
        "name": "Swift Essentials"
      },
      {
        "id": "SWISAVE",
        "name": "Swift & Save"
      }
    ],
    [
      {
        "id": "CHL",
        "name": "Fresh"
      }
    ],
    [
      {
        "id": "CHLBULK",
        "name": "Fresh Bigger Packs"
      },
      {
        "id": "CHL",
        "name": "Fresh"
      }
    ],
    [
      {
        "id": "STUDENT",
        "name": "Student Essentials"
      }
    ],
    [
      {
        "id": "LDNES",
        "name": "Essentials"
      },
      {
        "id": "LDN",
        "name": "London"
      }
    ],
    [
      {
        "id": "DIETMEAT",
        "name": "Meat & Chicken"
      },
      {
        "id": "DIET",
        "name": "Dietary & Lifestyle"
      }
    ],
    [
      {
        "id": "BCEMAIL",
        "name": "Bonus Card Email"
      }
    ],
    [
      {
        "id": "CHLMAP",
        "name": "Fresh Meat & Chicken"
      },
      {
        "id": "CHL",
        "name": "Fresh"
      }
    ],
    [
      {
        "id": "EDE",
        "name": "Everyday Essentials"
      }
    ]
  ],
  "name": "Iceland Chicken Breast Fillets 1.5kg",
  "short_description": "Class A fresh chicken breast fillets, skinless and boneless.",
  "brand": "Iceland",
  "image_groups": [
    {
      "_type": "image_group",
      "images": [
        {
          "_type": "image",
          "alt": "Iceland Chicken Breast Fillets 1.5kg",
          "dis_base_link": "http://assets.iceland.co.uk/i/iceland/iceland_chicken_breast_fillets_15kg_59391.jpg",
          "title": "Iceland Chicken Breast Fillets 1.5kg"
        }
      ],
      "view_type": "main"
    }
  ],
  "allergen_info": "WARNING! ALTHOUGH EVERY EFFORT HAS BEEN MADE TO REMOVE ALL BONES, SOME MAY REMAIN.",
  "best_seller_ranking": 15942.42708456756,
  "buying_group": "Fresh Poultry",
  "buying_sub_group1": "chicken",
  "buying_sub_group2": "chicken fillets",
  "category_page_id": [
    "ICEOWNLABEL",
    "ICE5STAR",
    "ICECAM",
    "LOWPRI",
    "NATCURRYMEAT",
    "CURWEEK",
    "MEALPL",
    "CHLMAPCHI",
    "CHLMAP",
    "CHL",
    "BESTSELL",
    "BULKMEAT",
    "BULK",
    "MonthEndBYG",
    "BYG",
    "LDN",
    "AFCORNCHI",
    "AFBLOG",
    "COROFAV",
    "CORESS",
    "CHLMAPCHIBRE",
    "OFFPPC",
    "AFFCOBBSAL",
    "AFFCHIMED",
    "AFFFAJITA",
    "AFFCHISTIR",
    "OFFEM",
    "AFFCHIKEB",
    "FWHRegion2",
    "DNTFRGT",
    "BYGCR2",
    "EATWELLLEANMEATS",
    "EATWELL",
    "CNY",
    "LNY",
    "root",
    "RECIVALPASTA",
    "SEASONAL",
    "RECINS",
    "MAC",
    "SAVESSENTIAL",
    "SWISAVE",
    "CHLBULK",
    "STUDENT",
    "LDNES",
    "DIETMEAT",
    "DIET",
    "BCEMAIL",
    "EDE"
  ],
  "chamber": "CHILLED",
  "cookinginstructions": [
    {
      "recommended": false,
      "num": "1",
      "meth": "Pan Fry & Oven_Chilled",
      "headings": [
        {
          "name": "Pre-heat",
          "text": "Fan 170°C"
        },
        {
          "name": "Cooking Time",
          "text": ""
        },
        {
          "name": "Pre-heat",
          "text": "Gas 5"
        },
        {
          "name": "Cooking Time",
          "text": ""
        }
      ],
      "steps": [
        {
          "num": "1",
          "txt": "Pre-heat oven Fan 170°C/Gas 5."
        },
        {
          "num": "2",
          "txt": "Remove required amount from packaging."
        },
        {
          "num": "3",
          "txt": "Brush with oil and season."
        },
        {
          "num": "4",
          "txt": "Place in a pre-heated frying pan and seal over a high heat, turning once."
        },
        {
          "num": "5",
          "txt": "Transfer to a baking tray."
        },
        {
          "num": "6",
          "txt": "Cook until the product is piping hot, thoroughly cooked, juices run clear and no pink colour remains."
        },
        {
          "num": "7",
          "txt": "Rest for 2-3 minutes before serving."
        }
      ]
    },
    {
      "recommended": false,
      "num": "2",
      "meth": "Air Fry_Chilled",
      "headings": [
        {
          "name": "Pre-heat",
          "text": "180°C"
        },
        {
          "name": "Cooking Time",
          "text": ""
        }
      ],
      "steps": [
        {
          "num": "1",
          "txt": "Set temperature to 180°C."
        },
        {
          "num": "2",
          "txt": "Remove required amount from packaging."
        },
        {
          "num": "3",
          "txt": "Brush with a little oil and season."
        },
        {
          "num": "4",
          "txt": "Place into air fryer basket in a single layer."
        },
        {
          "num": "5",
          "txt": "Cook until the product is piping hot, thoroughly cooked, juices run clear and no pink colour remains before serving."
        }
      ]
    }
  ],
  "custom_product_name": null,
  "disabled_status": null,
  "filter_brand": "Iceland",
  "filter_type": "Breast",
  "ingredients": [
    "Chicken Breast Fillet (100%)"
  ],
  "is_add_to_cart_disabled": false,
  "manufacturer_address": "Packed in Poland for Iceland Foods Ltd., U.K., CH5 2NW & Iceland Foods Distribution EU Ltd., 27/29 Orwell Road, Rathgar, Dublin 6, Dublin, Ireland.",
  "manufacturer_return_to": "To contact us please call: 0800 328 0800",
  "max_order_quantity": 12,
  "nutrition_information": {
    "headings": [
      "Per 100g as Sold"
    ],
    "nutrients": [
      {
        "name": "Energy",
        "row": 1,
        "values": [
          "449 kJ / 106 kcal"
        ]
      },
      {
        "name": "Fat",
        "row": 2,
        "values": [
          "1.1g"
        ]
      },
      {
        "name": "(of which saturates",
        "row": 3,
        "values": [
          "0.3g)"
        ]
      },
      {
        "name": "Carbohydrate",
        "row": 4,
        "values": [
          "0.0g"
        ]
      },
      {
        "name": "(of which sugars",
        "row": 5,
        "values": [
          "0.0g)"
        ]
      },
      {
        "name": "Fibre",
        "row": 6,
        "values": [
          "0.0g"
        ]
      },
      {
        "name": "Protein",
        "row": 7,
        "values": [
          "24.0g"
        ]
      },
      {
        "name": "Salt",
        "row": 8,
        "values": [
          "0.2g"
        ]
      }
    ],
    "show": false
  },
  "pdp_top_right_tile_badge": null,
  "price_range": "More than £10.00",
  "product_promotions": {
    "near_promos": []
  },
  "product_rating": 4.4,
  "product_review_count": 456,
  "storage_information": "Keep refrigerated between 0°C and 4°C. Once opened use within 24 hours and date indicated. Suitable for home freezing. Freeze as soon as possible after purchase before the date mark shown. Best within 1 month of freezing. Defrost thoroughly before use. Use within 24 hours of defrosting. Do not refreeze after defrosting.",
  "matrix_availability": { },
  "matrix_prices": {
    "0": [
      10,
      10,
      10,
      10,
      10,
      10
    ],
    "1": [
      10,
      10,
      10,
      10,
      10,
      10
    ],
    "2": [
      10,
      10,
      10,
      10,
      10,
      10
    ],
    "3": [
      10,
      10,
      10,
      10,
      10,
      10
    ],
    "4": [
      10,
      10,
      10,
      10,
      10,
      10
    ],
    "5": [
      10,
      10,
      10,
      10,
      10,
      10
    ],
    "6": [
      10,
      10,
      10,
      10,
      10,
      10
    ]
  },
  "price_info": {
    "10": "£6.67",
    "per_unit": "1kg"
  },
  "url": "/p/iceland-chicken-breast-fillets-1.5kg/59391.html",
  "alcohol_units": null,
  "alcohol_volume": null,
  "allergen_contains": null,
  "allergen_may_contain": null,
  "allergen_not_contains": null,
  "available_for_in_store_pickup": null,
  "awards_explained_asset_id": null,
  "custom_product_description": null,
  "default_price_per_day": null,
  "dietary_information": null,
  "drained_weight": null,
  "feefo_product_attributes": null,
  "filter_litre": null,
  "filter_pack_size": null,
  "filter_serving": null,
  "filter_size": null,
  "filter_weight": null,
  "flash_price_plu": null,
  "global_price": null,
  "is_exclusive_brands": null,
  "lifestyle_info": null,
  "manufacturer_sku": null,
  "package_type": null,
  "pdp_awards": null,
  "pdp_badge_asset": null,
  "pdp_general_content_asset_id": null,
  "pdp_stickers": null,
  "pdp_middle_right_tile_badge": null,
  "pdp_bottom_right_tile_badge": null,
  "product_classes": null,
  "recycling_info": null,
  "pdp_product_information_banner": null,
  "bundle": false,
  "bundled_products": null,
  "promotional_badge_text": null,
  "exclude_from_search_engine_indexing": null,
  "object_id": null,
  "is_sponsored": null,
  "from_url": "https://www.iceland.co.uk/search?q=meat"
}
```

Each product record includes 80+ fields organized by category:

#### Core Product Data

| Field | Meaning |
|---|---|
| `ID` | Unique product identifier in Iceland's system |
| `Name` | Product title as displayed on site |
| `URL` | Direct link to the product detail page |
| `Brand` | Manufacturer or private label brand |
| `Short Description` | Brief product summary (e.g., "Frozen chicken breasts, 500g") |
| `Custom Product Name` | Alternative product name if applicable |
| `Custom Product Description` | Custom description added by the retailer |

#### Pricing & Availability

| Field | Meaning |
|---|---|
| `Price` | Current retail price in GBP |
| `Price Range` | Min-max price variation (if product has size options) |
| `Price Info` | Additional pricing details or pricing structure |
| `Matrix Prices` | Price variations across product variants (bulk, pack sizes) |
| `Global Price` | Standardized price for multi-region products |
| `Flash Price PLU` | Temporary promotional price identifier |
| `In Stock` | Boolean flag: `true` if available for purchase |
| `Matrix Availability` | Stock status for each variant or pack size |
| `Available For In Store Pickup` | Whether available for click-and-collect |
| `Max Order Quantity` | Maximum units a customer can purchase |
| `Default Price Per Day` | Daily rental/subscription price (if applicable) |

#### Product Classification

| Field | Meaning |
|---|---|
| `Primary Category` | Main product category (e.g., "Frozen Meat", "Frozen Vegetables") |
| `Primary Category ID` | Internal category ID |
| `Categories` | All applicable category tags |
| `Category Page ID` | Linked category page identifier |
| `Buying Group` | Purchasing group classification |
| `Buying Sub Group 1` | Secondary classification level 1 |
| `Buying Sub Group 2` | Secondary classification level 2 |
| `Product Classes` | Additional product classifications |
| `Filter Brand` | Faceted brand filter name |
| `Filter Type` | Product type filter |
| `Filter Size` | Available size filter options |
| `Filter Weight` | Available weight filter options |
| `Filter Pack Size` | Pack size variations (e.g., 500g, 1kg) |
| `Filter Litre` | Volume size filter (for liquids) |
| `Filter Serving` | Serving size classification |

#### Nutrition & Allergen Information

| Field | Meaning |
|---|---|
| `Nutrition Information` | Full nutrition facts table (per 100g or serving) |
| `Allergen Info` | Summary of known allergens |
| `Allergen Contains` | List of allergens present in the product |
| `Allergen May Contain` | Allergens due to cross-contamination risk |
| `Allergen Not Contains` | Explicitly allergen-free claims |
| `Dietary Information` | Dietary flags (vegan, gluten-free, halal, etc.) |
| `Drained Weight` | Net weight after liquid removal (e.g., tinned goods) |

#### Ingredients & Preparation

| Field | Meaning |
|---|---|
| `Ingredients` | Full ingredients list |
| `Cooking Instructions` | Prep and cooking guidance |
| `Storage Information` | Storage conditions and shelf-life |
| `Package Type` | Packaging material (carton, plastic, foil, etc.) |

#### Product Features & Badges

| Field | Meaning |
|---|---|
| `Best Seller Ranking` | Popularity rank (1 = best seller) |
| `Product Rating` | Average customer rating (e.g., 4.5/5) |
| `Product Review Count` | Number of customer reviews |
| `Feefo Product Attributes` | Third-party review aggregator data |
| `PDP Awards` | Product awards or certifications displayed |
| `PDP Badge Asset` | Badge image URL (e.g., "Award Winner") |
| `PDP Top Right Tile Badge` | Top-right badge (promotional, award, etc.) |
| `PDP Middle Right Tile Badge` | Middle-right badge |
| `PDP Bottom Right Tile Badge` | Bottom-right badge |
| `PDP Stickers` | Promotional stickers (e.g., "New", "Sale") |
| `Promotional Badge Text` | Text of promotional badge |
| `PDP General Content Asset ID` | General content asset reference |
| `PDP Product Information Banner` | Informational banners (allergen alerts, etc.) |

#### Product Promotions & Bundling

| Field | Meaning |
|---|---|
| `Product Promotions` | Active promotions, discounts, or offers |
| `Tags` | Marketing tags (trending, eco-friendly, etc.) |
| `Is Exclusive Brands` | Flag if product is Iceland exclusive |
| `Bundle` | Boolean: whether product is part of a bundle |
| `Bundled Products` | List of products bundled with this item |
| `Lifestyle Info` | Lifestyle positioning (premium, budget, organic, etc.) |

#### Inventory & Manufacturing

| Field | Meaning |
|---|---|
| `Chamber` | Storage chamber/aisle assignment |
| `Manufacturer Address` | Manufacturer location details |
| `Manufacturer Return To` | Return/complaint address for defects |
| `Manufacturer SKU` | Manufacturer's stock-keeping unit |
| `Alcohol Units` | Standard alcohol units per serving (if alcoholic) |
| `Alcohol Volume` | ABV percentage (if applicable) |

#### Technical & System Fields

| Field | Meaning |
|---|---|
| `Object ID` | System-level unique identifier |
| `Disabled Status` | Internal disable flag |
| `Is Add To Cart Disabled` | Whether "Add to Cart" is blocked |
| `Chamber` | Warehouse location code |
| `Image Groups` | Product image URLs grouped by type |
| `Is Sponsored` | Boolean: paid promotional placement |
| `Exclude From Search Engine Indexing` | SEO noindex flag |
| `Highlight Result` | Featured/highlighted placement status |
| `Awards Explained Asset ID` | Award explanation content reference |
| `Recycling Info` | Packaging recycling instructions |

***

### How to Use

#### Option 1: Direct URL Scraping

1. Navigate to Iceland.co.uk and apply filters (price, category, search term)
2. Copy the full search result URL from your browser
3. Paste URLs into the `urls` array
4. Set `max_items_per_url` (e.g., 200 for 200 products per URL)
5. Run the scraper

#### Option 2: Search Filter Mode

1. Enter a product keyword (e.g., "meat", "ice cream")
2. Select sort order (e.g., "Margin-best-sellers")
3. Set price range: `price_min: 5`, `price_max: 10`
4. Set starting page: `page: 1`
5. Set max items: `max_items_per_url: 200`
6. Leave `urls` array empty
7. Run the scraper

**Best practices:**

- Use `ignore_url_failures: true` for bulk scraping to skip broken pages
- For large datasets, scrape by page using multiple runs with incrementing `page` numbers
- Monitor "In Stock" status separately — stock levels change frequently
- Use discount/promotional fields to track price changes over time

**Handling common issues:**

- If no results appear, verify the keyword exists on Iceland.co.uk
- Check that price range (`price_min`, `price_max`) overlaps actual product prices
- Some products may have disabled "Add to Cart" — these still extract but cannot be purchased

***

### Use Cases & Business Value

**Retail Intelligence:** Track competitor pricing on frozen meat, vegetables, and premium items week-over-week.

**Price Comparison:** Feed Iceland product data into your aggregator platform alongside Tesco, Sainsbury's, and Ocado.

**Promotional Analysis:** Monitor promotional badges and flash prices to understand Iceland's promotional cadence.

**Stock & Availability Monitoring:** Detect when popular frozen items (e.g., "Frozen Chicken Breasts") go in/out of stock.

**Nutrition Research:** Extract allergen, dietary, and nutrition data for health and dietary product databases.

**Review Analytics:** Analyze customer ratings and review counts to identify top-performing frozen food categories.

The Iceland Product Search Scraper transforms manual browsing into automated, systematic data collection — saving hours per week and powering data-driven retail decisions.

***

### Conclusion

The **Iceland Product Search Scraper** delivers comprehensive frozen food product data from the UK's leading frozen retailer. With 80+ fields per product, flexible filtering, and reliable extraction, it's the go-to tool for retail analysts, aggregators, and researchers. Extract pricing, nutrition, stock status, reviews, and more — all in structured, ready-to-use format.

# Actor input Schema

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

Add the URLs of the product search list urls you want to scrape. You can paste URLs one by one, or use the Bulk edit section to add a prepared list.

## `ignore_url_failures` (type: `boolean`):

If true, the scraper will continue running even if some URLs fail to be scraped.

## `keyword` (type: `string`):

Enter the keyword to search for items

## `sort_by` (type: `string`):

Sort items by options

## `price_min` (type: `integer`):

Enter the minimum price to filter items by

## `price_max` (type: `integer`):

Enter the maximum price to filter items by

## `page` (type: `integer`):

Specify the page number to start scraping from

## `max_items_per_url` (type: `integer`):

The maximum number of items to scrape per URL.

## Actor input object example

```json
{
  "urls": [
    "https://www.iceland.co.uk/fresh?page=2"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 20
}
```

# Actor output Schema

## `results` (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 = {
    "urls": [
        "https://www.iceland.co.uk/fresh?page=2"
    ],
    "ignore_url_failures": true,
    "max_items_per_url": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("stealth_mode/iceland-product-search-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 = {
    "urls": ["https://www.iceland.co.uk/fresh?page=2"],
    "ignore_url_failures": True,
    "max_items_per_url": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("stealth_mode/iceland-product-search-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 '{
  "urls": [
    "https://www.iceland.co.uk/fresh?page=2"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 20
}' |
apify call stealth_mode/iceland-product-search-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,stealth_mode/iceland-product-search-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/XcMo0zYZhzMCH4q16/builds/vSk9QhM7Tk2xXyq64/openapi.json
