# Argos Product Scraper (`herus13/argos-product-scraper`) Actor

Scrape Argos (argos.co.uk) products by keyword or product link: name, brand, price and was-price, rating, review count, delivery and click & collect flags, and optionally EAN, description, images and customer reviews. Export JSON, CSV or Excel.

- **URL**: https://apify.com/herus13/argos-product-scraper.md
- **Developed by:** [herus13](https://apify.com/herus13) (community)
- **Categories:** E-commerce, Business
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.50 / 1,000 products

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

The Argos Product Scraper extracts products from [Argos](https://www.argos.co.uk), the UK retailer — name, brand, price and was-price, star rating, review count, delivery and click & collect availability, the newest 50 customer reviews, and on request the EAN, description and every image. Feed it search terms or product links.

### What you get

One dataset row per product, with its newest 50 reviews nested inside (set **Reviews per product** to change that, 0 for none). Export as JSON, CSV or Excel.

```json
{
  "sku": "3264915",
  "name": "Bosch TWK2M163GB MyMoment Excite Kettle - Black",
  "url": "https://www.argos.co.uk/product/3264915",
  "brand": "Bosch",
  "price": 24.99,
  "was_price": 35.0,
  "currency": "GBP",
  "rating": 4.7377,
  "review_count": 469,
  "deliverable": true,
  "collectable": true,
  "out_of_stock": false,
  "delivery_cost": 4.95,
  "special_offer": "Save £10.00",
  "ean": "4242005397914",
  "images": ["https://media.4rgos.it/i/Argos/3264915_R_Z001A"],
  "search_query": "kettle",
  "search_position": 3,
  "reviews": [
    {
      "review_id": "185062746",
      "rating": 5,
      "title": "Quieter than the others.",
      "author": "Lynette",
      "submitted_at": "2026-09-24T15:08:43.000+00:00"
    }
  ],
  "scraped_at": "2026-09-25T05:10:00+00:00"
}
```

Rows also carry `part_number`, `description`, `free_delivery`, `clearance` and `fulfilled_by`. `ean`, `part_number`, `description` and `images` come with product details — always for product links, and for search results when **Include product details** is on.

### What it costs

| Event | Free | Bronze | Silver | Gold+ |
|---|---|---|---|---|
| Product (`product-result`) | $0.005 | $0.0045 | $0.004 | $0.0035 |
| Product review (`review`) | $0.0003 | $0.0003 | $0.0003 | $0.0003 |

You pay per product and per review, not per minute, with no per-run start fee and the residential proxy included. Each product is $0.005 and each attached review $0.0003. With the default 50 reviews a product costs up to $0.02, so a hundred products is about $2.00; set **Reviews per product** to 0 and the same hundred products is $0.50. Higher Apify subscription tiers pay the lower per-product rates shown above.

### Input

| Field | Type | Required | Default | What it does |
|---|---|---|---|---|
| `search_queries` | array | no | — | Keywords to search on Argos, one per entry, for example `kettle`, `air fryer`, `lego`. Each term returns up to `max_products_per_search` products in Argos's own relevance order. Leave empty to work from product links only; provide at least one of `search_queries` or `product_ids`. |
| `product_ids` | array | no | — | Argos products to read directly, one per entry: a product link such as `https://www.argos.co.uk/product/2137074` or its number `2137074`. Each returns one row with the full product detail. Leave empty to work from search terms only; provide at least one of `product_ids` or `search_queries`. |
| `max_products_per_search` | integer | no | `100` | How many products to take from each search term. Default 100. Set -1 to take every product the search has, up to Argos's own last page. Results arrive 100 to a page. |
| `include_details` | boolean | no | `false` | For search results, also read each product's own page data: EAN, part number, description, all images and stock flags. Default false. It adds one request per product, so a run takes longer. Products given by link always come with details. |
| `max_reviews` | integer | no | `50` | How many customer reviews to attach to each product, newest first. Default 50, which is also the most: reviews sit inside the product row, and more would break CSV and Excel exports. Set 0 for none. For every review of a product, one row per review, use the Argos Reviews Scraper (herus13/argos-reviews-scraper). |
| `request_delay` | integer | no | `0` | Extra seconds to wait between requests. Default 0, which adds no wait at all. |
| `proxyUrls` | array | no | — | Leave empty and the run uses the residential proxy this actor ships with, included in the price of the run. To route the run through your own account instead, add one gateway URL per entry, for example http://user:pass@host:port — works with DataImpulse, Bright Data, Oxylabs, Smartproxy or any provider that issues URLs. When set, only these URLs are used. Argos only answers UK addresses, so use UK exits. |

### How to run it

1. Open the actor on Apify Console and click **Try for free**.
2. Put keywords into **Search terms**, or product links into **Product links or SKUs** — at least one of the two.
3. Turn on product details if you need them, and set how many reviews per product (50 by default, 0 for none), then Run. Export JSON, CSV or Excel from the dataset.

```json
{
  "search_queries": ["air fryer", "kettle"],
  "product_ids": ["https://www.argos.co.uk/product/2137074"],
  "max_products_per_search": 200,
  "include_details": true,
  "max_reviews": 50
}
```

Minimal input:

```json
{
  "search_queries": ["kettle"],
  "max_products_per_search": 5
}
```

Available as the MCP tool `herus13--argos-product-scraper` on mcp.apify.com and through the Apify API; send the same JSON.

### Why this scraper

- **Search or pick products.** A keyword returns Argos's own ranking, 100 products to a page; a product link returns that product with its full detail.
- **Price history in one row.** `price`, `was_price` and the offer text sit side by side, so a discount is visible without comparing two runs.
- **Availability you can act on.** Delivery and click & collect flags, delivery cost and the out-of-stock flag arrive on the same row as the price.
- **Reviews included.** The newest 50 customer reviews come with each product, with rating, title, text, author and date.
- **Flat, typed rows.** Product fields sit at the top level and reviews nest one level down, so CSV and Excel exports open without untangling.

### Use cases

- **Price monitoring** — Track `price` and `was_price` for a basket of products over time and catch every discount the day it starts.
- **Assortment research** — See which brands and products Argos ranks for a category term, and how many reviews each has earned.
- **Retail competitor tracking** — Compare Argos prices and availability with other UK retailers for the same EAN.
- **Review analysis** — Pull the customer reviews behind a rating to find what buyers praise or return a product for.
- **Catalogue enrichment** — Fill in EAN, description and images for products you already sell.

### FAQ

**How many reviews can I get per product?** Up to 50 of the newest, nested in the product row. That is the most a row can carry and still open cleanly as CSV or Excel. Set **Reviews per product** to 0 to skip them. For every review of a product, one row per review, use the [Argos Reviews Scraper](https://apify.com/herus13/argos-reviews-scraper).

**Can I get stock for a specific store?** Not yet. Rows carry the national delivery, click & collect and out-of-stock flags; store-by-store stock is not available.

**How many products can one search return?** Every product the search has, in Argos's own relevance order: set **Max products per search term** to -1. The default is 100; the run always stops at the last page.

**Why is `was_price` empty on most rows?** It is only filled when Argos shows a previous price, which it does for discounted products.

**Does it work outside the UK?** Argos only serves UK visitors. The included proxy uses UK addresses; if you bring your own proxy, use UK exits.

**Is a proxy included?** A residential proxy is included in the price of the run. To use your own, paste gateway URLs into **Your own proxy URLs**. Scraping at volume? Your own [DataImpulse](https://dataimpulse.com/?aff=404588\&utm_source=apify) account is cheaper per GB.

**Is scraping Argos legal?** This actor collects only publicly available product and review data. You are responsible for complying with Argos's terms and applicable laws. Do not collect personal data without a lawful basis.

### Related actors

Building a UK retail price tracker? Pair this actor with:

- [Argos Reviews Scraper](https://apify.com/herus13/argos-reviews-scraper) — every customer review of an Argos product, one row per review.
- [Amazon Product Scraper](https://apify.com/herus13/amazon-scraper) — Amazon products with prices, ratings and sellers, including amazon.co.uk.
- [Google Maps Business & Contact Scraper](https://apify.com/herus13/google-maps-scraper) — local shops with emails, phone numbers and ratings.
- [Trustpilot Company & Review Scraper](https://apify.com/herus13/trustpilot-scraper) — retailer trust scores and customer reviews.

# Actor input Schema

## `search_queries` (type: `array`):

Keywords to search on Argos, one per entry, for example `kettle`, `air fryer`, `lego`. Each term returns up to `max_products_per_search` products in Argos's own relevance order. Leave empty to work from product links only; provide at least one of `search_queries` or `product_ids`.

## `product_ids` (type: `array`):

Argos products to read directly, one per entry: a product link such as `https://www.argos.co.uk/product/2137074` or its number `2137074`. Each returns one row with the full product detail. Leave empty to work from search terms only; provide at least one of `product_ids` or `search_queries`.

## `max_products_per_search` (type: `integer`):

How many products to take from each search term. Default 100. Set -1 to take every product the search has, up to Argos's own last page. Results arrive 100 to a page.

## `include_details` (type: `boolean`):

For search results, also read each product's own page data: EAN, part number, description, all images and stock flags. Default false. It adds one request per product, so a run takes longer. Products given by link always come with details.

## `max_reviews` (type: `integer`):

How many customer reviews to attach to each product, newest first. Default 50, which is also the most: reviews sit inside the product row, and more would break CSV and Excel exports. Set 0 for none. For every review of a product, one row per review, use the Argos Reviews Scraper (herus13/argos-reviews-scraper).

## `request_delay` (type: `integer`):

Extra seconds to wait between requests. Default 0, which adds no wait at all.

## `proxyUrls` (type: `array`):

Leave empty and the run uses the residential proxy this actor ships with, included in the price of the run. To route the run through your own account instead, add one gateway URL per entry, for example http://user:pass@host:port — works with DataImpulse, Bright Data, Oxylabs, Smartproxy or any provider that issues URLs. When set, only these URLs are used. Argos only answers UK addresses, so use UK exits.

## Actor input object example

```json
{
  "search_queries": [
    "kettle"
  ],
  "max_products_per_search": 100,
  "include_details": false,
  "max_reviews": 50,
  "request_delay": 0
}
```

# Actor output Schema

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

Argos products with price, rating, delivery and collection flags, and optional detail and reviews

# 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 = {
    "search_queries": [
        "kettle"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("herus13/argos-product-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 = { "search_queries": ["kettle"] }

# Run the Actor and wait for it to finish
run = client.actor("herus13/argos-product-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 '{
  "search_queries": [
    "kettle"
  ]
}' |
apify call herus13/argos-product-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,herus13/argos-product-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/POb1AHzi9lspJ1Xjl/builds/1IVTINhKAuTHmIrr6/openapi.json
