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

Scrape product listings from Iceland.co.uk's frozen section with precision. Collect product names, prices, allergen info, nutrition data, stock status, and 76+ fields per item — perfect for price monitoring, competitive analysis, and e-commerce research.

- **URL**: https://apify.com/soft\_alexist/iceland-product-search-scraper.md
- **Developed by:** [Soft Alexist](https://apify.com/soft_alexist) (community)
- **Categories:** Automation, Developer tools, E-commerce
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

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

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

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

***

### What Is Iceland.co.uk?

Iceland is a leading UK frozen food retailer offering thousands of products across frozen meals, vegetables, seafood, desserts, and more. With regular price updates, promotional campaigns, and seasonal offerings, the platform contains valuable data for retailers, researchers, and market analysts. Manually harvesting product details is impractical — the **Iceland.co.uk Product Scraper** automates collection, turning product pages into structured, analysis-ready datasets.

***

### Overview

The **Iceland Product Scraper** extracts comprehensive product information from Iceland's frozen food catalog, returning 76+ fields per item. It's built for:

- **Price monitoring services** tracking frozen food costs across retailers
- **Market researchers** analyzing frozen food trends and product positioning
- **Aggregator platforms** building competitive product databases
- **E-commerce analysts** benchmarking Iceland's assortment and pricing strategy

The scraper supports paginated product listings, respects rate limits, and can gracefully skip failed pages without interrupting the run.

***

### Input Format

The scraper accepts a configuration specifying target pages and collection limits:

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

| Parameter | Type | Description |
|---|---|---|
| `urls` | array | Product listing page URLs from Iceland.co.uk (supports category, search, or filtered pages) |
| `max_items_per_url` | integer | Maximum products extracted per page (e.g., `200`) — adjust for larger or smaller runs |
| `ignore_url_failures` | boolean | If `true`, continues scraping if a page fails; if `false`, stops on first error |

> **Best practice:** Start with `max_items_per_url: 50` to test, then scale up for production runs.

***

### Output Format

**Sample output**

```json
{
  "id": "10280300",
  "primary_category_id": null,
  "in_stock": null,
  "price": [
    {
      "base_revenue": 899,
      "currency": "GBP",
      "offer": [
        {
          "frequency": "",
          "id": "price drop",
          "name": "price drop",
          "offer_reduction": 300,
          "type": "price drop"
        },
        {
          "frequency": "",
          "id": "Simple Offer",
          "name": "Get 20% off on USB - C charger when bought with this Laptop.",
          "offer_reduction": 0,
          "type": "Simple Offer"
        },
        {
          "frequency": "",
          "id": "Simple Offer",
          "name": "Unlock offers from Adobe, Capture One and more with the purchase of this Intel® Core™ Ultra laptop",
          "offer_reduction": 0,
          "type": "Simple Offer"
        },
        {
          "frequency": "",
          "id": "Simple Offer",
          "name": "Save £325 on LENOVO OLED 4K Monitor when bought with Lenovo Yoga desktops & laptops. Code YOGA325",
          "offer_reduction": 0,
          "type": "Simple Offer"
        },
        {
          "frequency": "",
          "id": "Simple Offer",
          "name": "Save 20% off on Lenovo Yoga accessories when bought with this Lenovo Yoga laptop. Use code LNV20YOGA",
          "offer_reduction": 0,
          "type": "Simple Offer"
        },
        {
          "frequency": "",
          "id": "Simple Offer",
          "name": "Save £20 on Microsoft 365 Personal or Microsoft 365 Family when bought with this product.",
          "offer_reduction": 0,
          "type": "Simple Offer"
        },
        {
          "frequency": "",
          "id": "Simple Offer",
          "name": "Get 20% off on all Logitech accessories when bought with any laptop or iPad. Use code ALLLOGI20OFF",
          "offer_reduction": 0,
          "type": "Simple Offer"
        },
        {
          "frequency": "",
          "id": "Simple Offer",
          "name": "Get up to 2 months of Apple Music, Apple Fitness+ and Apple Arcade with this product.",
          "offer_reduction": 0,
          "type": "Simple Offer"
        },
        {
          "frequency": "",
          "id": "Simple Offer",
          "name": "Stay safer online- McAfee's Scam Detector spots the scam in risky texts, emails and deepfake videos",
          "offer_reduction": 0,
          "type": "Simple Offer"
        },
        {
          "frequency": "",
          "id": "Comm-ALL-FreeDel",
          "name": "Auto Free standard delivery on orders over £40",
          "offer_reduction": 0,
          "type": "discount"
        },
        {
          "frequency": "",
          "id": "HW-FNDDPromo",
          "name": "Free next day delivery on Computing and Apple",
          "offer_reduction": 0,
          "type": "discount"
        },
        {
          "frequency": "",
          "id": "MCAFEE60",
          "name": "Save £60 on this when you buy any computing item",
          "offer_reduction": 0,
          "type": "discount"
        },
        {
          "frequency": "",
          "id": "VPNBUILDER",
          "name": "Save £55 on this when you buy any laptop or iPad",
          "offer_reduction": 0,
          "type": "discount"
        },
        {
          "frequency": "",
          "id": "CLOUDBUILDER",
          "name": "Save £50 on this when you buy any laptop or mobile",
          "offer_reduction": 0,
          "type": "discount"
        },
        {
          "frequency": "",
          "id": "FAMILY20",
          "name": "Save £20 on this when you buy any laptop, desktop or iPad",
          "offer_reduction": 0,
          "type": "discount"
        },
        {
          "frequency": "",
          "id": "PERSONAL20",
          "name": "Save £20 on this when you buy any laptop, desktop or iPad",
          "offer_reduction": 0,
          "type": "discount"
        },
        {
          "frequency": "",
          "id": "BACKPACKBUILD",
          "name": "Save £5 on this when you buy any laptop or computing accessory",
          "offer_reduction": 0,
          "type": "discount"
        },
        {
          "frequency": "",
          "id": "MOUSEBUILDER",
          "name": "Save £3 on this when you buy any laptop or computing accessory",
          "offer_reduction": 0,
          "type": "discount"
        },
        {
          "frequency": "",
          "id": "HUBBUILDER",
          "name": "Save £2.50 on this when you buy any laptop or iPad",
          "offer_reduction": 0,
          "type": "discount"
        },
        {
          "frequency": "",
          "id": "AIRTAG-BUILD",
          "name": "Save £1 on this when you buy any laptop, iPad or mobile",
          "offer_reduction": 0,
          "type": "discount"
        },
        {
          "frequency": "",
          "id": "SAVE20CHARGER",
          "name": "Get 20% off selected chargers when bought with any laptop",
          "offer_reduction": 0,
          "type": "discount"
        },
        {
          "frequency": "",
          "id": "Credit Offer",
          "name": "BNPL6",
          "offer_reduction": 6,
          "type": "BNPL"
        },
        {
          "frequency": "",
          "id": "Credit Offer",
          "name": "BNPL9",
          "offer_reduction": 9,
          "type": "BNPL"
        },
        {
          "frequency": "",
          "id": "Credit Offer",
          "name": "LIBC48",
          "offer_reduction": 48,
          "type": "LIBC"
        }
      ],
      "return_value": 0,
      "revenue": 599,
      "tax": 99.83333333333333
    }
  ],
  "categories": null,
  "name": "LENOVO Yoga Slim 7 Aura Edition 14\" Laptop, Copilot+ PC - Intel® Core™ Ultra 5, 512 GB SSD, Grey",
  "short_description": null,
  "brand": "LENOVO",
  "image_groups": null,
  "allergen_contains": null,
  "allergen_info": null,
  "best_seller_ranking": null,
  "buying_group": null,
  "buying_sub_group1": null,
  "buying_sub_group2": null,
  "category_page_id": null,
  "chamber": null,
  "cookinginstructions": null,
  "disabled_status": null,
  "filter_brand": null,
  "ingredients": null,
  "is_add_to_cart_disabled": null,
  "manufacturer_address": null,
  "manufacturer_return_to": null,
  "max_order_quantity": null,
  "nutrition_information": null,
  "package_type": null,
  "pdp_top_right_tile_badge": null,
  "price_range": null,
  "product_promotions": null,
  "product_rating": null,
  "product_review_count": null,
  "storage_information": null,
  "matrix_availability": null,
  "matrix_prices": null,
  "price_info": null,
  "custom_product_name": null,
  "url": null,
  "alcohol_units": null,
  "alcohol_volume": 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_type": null,
  "filter_weight": null,
  "flash_price_plu": null,
  "global_price": null,
  "is_exclusive_brands": null,
  "lifestyle_info": null,
  "manufacturer_sku": 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": null,
  "bundled_products": null,
  "promotional_badge_text": null,
  "exclude_from_search_engine_indexing": null,
  "object_id": null,
  "from_url": "https://www.currys.co.uk/computing/laptops/laptops"
}
```

Each product returns a rich record with 76+ attributes:

#### Core Product Information

| Field | Meaning | Example |
|---|---|---|
| `ID` | Unique product identifier in Iceland's system | `12345678` |
| `Name` | Full product name as displayed on the website | `Iceland Frozen Vegetable Mix 500g` |
| `Custom Product Name` | Alternate or internal product name | Used when name is localized or modified |
| `Short Description` | Brief product summary | `Mixed vegetables: peas, carrots, sweetcorn` |
| `Custom Product Description` | Enhanced or internal description | Additional marketing or backend notes |
| `Brand` | Manufacturer or brand name | `Iceland`, `Tesco`, or private label |
| `URL` | Direct link to product page | `https://www.iceland.co.uk/p/...` |
| `Object ID` | Secondary system identifier | Backend reference ID |

#### Pricing & Availability

| Field | Meaning |
|---|---|
| `Price` | Current selling price in GBP |
| `Price Range` | Min-max price if variants exist |
| `Price Info` | Additional pricing details (e.g., per unit) |
| `Global Price` | International pricing if applicable |
| `Default Price Per Day` | Daily subscription or rental price |
| `Flash Price PLU` | Temporary promotional pricing code |
| `In Stock` | Boolean: `true` if product is in stock |
| `Matrix Availability` | Variant availability (if multi-pack/size options) |
| `Matrix Prices` | Prices for each size/variant option |
| `Max Order Quantity` | Maximum units purchasable in one order |
| `Available For In Store Pickup` | Pickup availability flag |
| `Is Add To Cart Disabled` | Whether adding to cart is blocked |

#### Product Classification

| Field | Meaning |
|---|---|
| `Primary Category ID` | Top-level category (e.g., Frozen) |
| `Categories` | Full category hierarchy (e.g., Frozen → Vegetables → Mixed) |
| `Category Page ID` | Category landing page identifier |
| `Buying Group` | Internal classification group |
| `Buying Sub Group 1` | First sub-category level |
| `Buying Sub Group 2` | Second sub-category level |
| `Best Seller Ranking` | Popularity rank within category |
| `Chamber` | Product chamber/section in warehouse |
| `Bundle` | If part of a product bundle |
| `Bundled Products` | Products included if this is a bundle |
| `Product Classes` | Classification tags (e.g., "Vegan", "Gluten-Free") |

#### Nutritional & Allergen Information

| Field | Meaning |
|---|---|
| `Nutrition Information` | Full nutrition facts (calories, protein, fat, carbs per 100g or serving) |
| `Allergen Contains` | Allergens present in the product (e.g., celery, eggs) |
| `Allergen May Contain` | Allergens from shared processing equipment |
| `Allergen Not Contains` | Explicitly allergen-free statements |
| `Allergen Info` | Comprehensive allergen summary |
| `Dietary Information` | Flags (e.g., vegan, vegetarian, halal, kosher) |
| `Ingredients` | Full ingredient list |
| `Drained Weight` | Weight of product without liquid (e.g., frozen vegetables) |
| `Filter Serving` | Serving size for nutrition labels |
| `Alcohol Units` | Units of alcohol if applicable |
| `Alcohol Volume` | ABV or volume percentage |

#### Product Specifications

| Field | Meaning |
|---|---|
| `Package Type` | Packaging format (e.g., bag, box, tray) |
| `Filter Pack Size` | Quantity/size (e.g., 500g, 1kg) |
| `Filter Weight` | Product weight classification |
| `Filter Size` | Size category for filtering |
| `Filter Litre` | Volume in litres if applicable |
| `Filter Type` | Product type filter (e.g., vegetables, seafood) |
| `Manufacturer SKU` | Supplier's stock keeping unit |
| `Manufacturer Address` | Producer address information |
| `Manufacturer Return To` | Returns/complaint address |

#### Media & Imagery

| Field | Meaning |
|---|---|
| `Image Groups` | Array of product images (main, additional angles) |
| `PDP Badge Asset` | Badge image URL (e.g., "New", "Best Seller") |
| `PDP Top Right Tile Badge` | Badge displayed in top-right of product tile |
| `PDP Middle Right Tile Badge` | Middle-right badge |
| `PDP Bottom Right Tile Badge` | Bottom-right badge |
| `PDP Awards` | Award badges or certifications |
| `Awards Explained Asset ID` | Asset ID explaining awards |

#### Marketing & Promotions

| Field | Meaning |
|---|---|
| `Product Promotions` | Active promotions (e.g., "3 for £5") |
| `Promotional Badge Text` | Text overlay on promotions |
| `PDP General Content Asset ID` | Marketing content asset |
| `PDP Product Information Banner` | Header banner content |
| `PDP Stickers` | Special stickers/flags (e.g., "Reduced") |
| `Is Exclusive Brands` | Exclusive or private label flag |
| `Lifestyle Info` | Lifestyle or demographic targeting info |

#### Ratings & Reviews

| Field | Meaning |
|---|---|
| `Product Rating` | Average star rating (e.g., 4.5/5) |
| `Product Review Count` | Number of customer reviews |
| `Feefo Product Attributes` | Third-party review platform attributes |

#### Storage & Preparation

| Field | Meaning |
|---|---|
| `Storage Information` | Storage conditions and shelf life |
| `Cookinginstructions` | Preparation or cooking guidance |
| `Recycling Info` | Packaging recycling instructions |

#### Administrative

| Field | Meaning |
|---|---|
| `Disabled Status` | Whether product is inactive/discontinued |
| `Exclude From Search Engine Indexing` | SEO flag to block indexing |

***

### How to Use

1. **Gather URLs** — Navigate to Iceland.co.uk, apply filters (category, price range, dietary), and copy the product listing URL. Example: `https://www.iceland.co.uk/frozen?page=2`
2. **Configure input** — Paste URLs into the `urls` array and set `max_items_per_url`. Start with 50–100 for testing.
3. **Run the scraper** — Trigger the actor; it will fetch product pages and extract all 76+ fields per item.
4. **Monitor progress** — Check the run log for any URL failures (if `ignore_url_failures` is `true`, failed pages are logged but don't stop the run).
5. **Export results** — Download output as JSON, CSV, or Excel for analysis in spreadsheets or databases.

**Tips:**

- Use category-filtered URLs (e.g., `?category=frozen-vegetables`) to collect specific product segments.
- For large runs, set `ignore_url_failures: true` to avoid interruptions.
- Respect Iceland's `robots.txt` and rate limits; space requests appropriately.

***

### Use Cases & Benefits

- **Price intelligence:** Monitor frozen food pricing weekly to track competitor moves and seasonal trends
- **Product assortment analysis:** Benchmark Iceland's product range against competitors
- **Promotion tracking:** Capture bundle deals and flash pricing for market research
- **Allergen compliance:** Extract allergen data for dietary advisory platforms
- **Content aggregation:** Feed product data into recipe, meal-prep, or nutrition apps

The **Iceland.co.uk Product Scraper** saves weeks of manual data entry, delivering machine-ready product records that plug directly into analytics, BI tools, or e-commerce systems.

***

### Conclusion

For retailers, researchers, and aggregator platforms, the **Iceland.co.uk Product Scraper** offers a reliable, scalable way to extract frozen food product data. With 76+ fields covering pricing, allergens, nutrition, and inventory, it transforms product pages into actionable business intelligence in minutes.

# Actor input Schema

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

Add the URLs of the product 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.

## `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/frozen?page=2"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 100
}
```

# 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/frozen?page=2"
    ],
    "ignore_url_failures": true,
    "max_items_per_url": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("soft_alexist/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/frozen?page=2"],
    "ignore_url_failures": True,
    "max_items_per_url": 100,
}

# Run the Actor and wait for it to finish
run = client.actor("soft_alexist/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/frozen?page=2"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 100
}' |
apify call soft_alexist/iceland-product-search-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,soft_alexist/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/Hd6exFonTSFZNvaMB/builds/oHTImn12tDCKcojFb/openapi.json
