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

Extract Argos UK product data, prices, discounts, ratings, reviews, stock availability, images, descriptions, categories, and URLs. Powerful Argos scraper for eCommerce price monitoring, competitor analysis, product research, retail intelligence, and market data.

- **URL**: https://apify.com/shahidirfan/argos-product-scraper.md
- **Developed by:** [Shahid Irfan](https://apify.com/shahidirfan) (community)
- **Stats:** 2 total users, 2 monthly users, 42.9% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.80 / 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

### What does Argos Product Listing Scraper do?

Argos Product Listing Scraper collects product data from Argos UK search results, listing pages, category pages, brand pages, and individual product pages. Enter a keyword such as `mobile phone`, or paste Argos URLs, and the Actor returns a structured dataset with names, brands, prices, savings, ratings, review counts, availability, delivery details, offer text, colour options, images, and product links.

The Actor is built for price monitoring, catalogue research, competitor analysis, and product data pipelines. It runs from Apify Console or the Apify API, supports scheduled refreshes, and exports to JSON, CSV, Excel, and other dataset formats.

### Why use Argos Product Listing Scraper?

- **One input, many result types** - Start with a keyword or paste search, listing, category, brand, or product URLs.
- **Full listing fields** - Capture prices, savings, ratings, stock signals, delivery costs, badges, credit offers, and colour options in one pass.
- **Structured output** - Every record uses stable field names, so the dataset is ready for spreadsheets, dashboards, and databases.
- **Pagination built in** - Crawl up to 50 result pages and stop at the limit you set.
- **Built-in UK proxy route** - Uses UK residential proxies by default because Argos blocks most datacentre addresses.
- **Monitoring friendly** - Schedule daily or hourly runs to track prices, availability, and new arrivals.

### What data can you extract from Argos?

| Field | Description |
| --- | --- |
| `productId` | Argos catalogue number |
| `name` | Product title |
| `brand` | Product brand |
| `price` | Current price in GBP |
| `wasPrice` | Previous price when the product is discounted |
| `saving` | Amount saved in GBP when a previous price is shown |
| `discountPercent` | Discount percentage when a previous price is shown |
| `currency` | Currency code, always GBP |
| `averageRating` | Average customer rating out of five |
| `reviewCount` | Number of customer reviews |
| `deliverable` | Whether the product can be delivered |
| `collectable` | Whether the product can be collected in store |
| `reservable` | Whether the product can be reserved |
| `freeDelivery` | Whether delivery is free |
| `deliveryCost` | Delivery charge in GBP |
| `clearance` | Whether the product is in clearance |
| `madeToOrder` | Whether the product is made to order |
| `specialOfferText` | Promotion text shown on the listing |
| `badges` | Marketing labels such as new or clearance |
| `creditInfo` | Credit or payment message shown with the product |
| `creditAttributes` | Structured credit details when published |
| `detailAttributes` | Additional attributes such as energy class |
| `colourOptions` | Colour labels published by the listing |
| `hasVariations` | Whether the product has variants |
| `hasMultiplePrices` | Whether the product has more than one price |
| `variants` | Variant options when the listing publishes them |
| `imageURL` | Main product image |
| `productUrl` | Direct Argos product page |
| `fulfiller` | Fulfilment partner reported by the listing |
| `relevancyRank` | Position in the listing |
| `soldByTrustedSeller` | Whether the seller is marked as trusted |
| `category` | Category label reported by the listing |
| `categoryMatch` | Whether the listing matched an Argos category |
| `pageNumber` | Result page where the product was found |
| `pageType` | Search, canned listing, or product |
| `searchTerm` | Search term reported by the page |
| `appliedSort` | Sort order reported by the page |
| `totalResults` | Result count reported by the page |

### How to use Argos Product Listing Scraper

1. Open the Actor in Apify Console.
2. Enter a keyword such as `mobile phone`, or paste one or more Argos URLs.
3. Set the maximum results per URL and the maximum pages per URL.
4. Run the Actor and download the dataset, or connect it to your workflow.

If you supply both URLs and a keyword, the URLs are used and the keyword is ignored. This keeps the run predictable when you switch between search terms and saved links.

The default proxy configuration uses UK residential addresses. You can keep it, replace it with your own proxy URLs, or disable it. Disabling the proxy on a datacentre address usually leads to blocked requests from Argos.

### Input Parameters

| Parameter | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `urls` | Array | No | - | Argos search, listing, category, brand, or product URLs |
| `keyword` | String | No | `mobile phone` | Search keyword used when no URL is supplied |
| `resultsWanted` | Integer | No | `20` | Maximum products to save per URL |
| `maxPages` | Integer | No | `1` | Maximum result pages to crawl per URL, up to 50 |
| `proxyConfiguration` | Object | No | UK residential Apify Proxy | Proxy settings for the run |

### Supported URL Types

| URL | What the Actor does |
| --- | --- |
| `https://www.argos.co.uk/search/mobile-phone/` | Collects the search results |
| `https://www.argos.co.uk/list/<slug>/<filters>/` | Collects the listing page |
| `https://www.argos.co.uk/browse/<category>/c:<id>/` | Collects the matching category results |
| `https://www.argos.co.uk/brands/<brand>` | Collects matching brand results |
| `https://www.argos.co.uk/product/<id>` | Collects the single product |

Search, category, and brand links are converted to the working results page for that term. Product links return one record from the product listing view.

### Usage Examples

#### Search by keyword

Collect the first 20 results for a keyword:

```json
{
    "keyword": "mobile phone",
    "resultsWanted": 20,
    "maxPages": 1
}
```

#### Collect several listing pages

Crawl up to four pages and save up to 200 products:

```json
{
    "keyword": "mobile cover",
    "resultsWanted": 200,
    "maxPages": 4
}
```

#### Use multiple URLs

Collect results from a listing page and a product page in one run:

```json
{
    "urls": [
        "https://www.argos.co.uk/list/shop-all-new-in-at-argos/new:newin/",
        "https://www.argos.co.uk/product/9713109"
    ],
    "resultsWanted": 25,
    "maxPages": 1
}
```

#### Use your own proxy

Keep the results the same and route requests through your own proxy pool:

```json
{
    "keyword": "gaming chair",
    "resultsWanted": 100,
    "maxPages": 2,
    "proxyConfiguration": {
        "useApifyProxy": false,
        "proxyUrls": ["http://username:password@proxy.example.com:8080"]
    }
}
```

### Sample Output

```json
{
    "productId": "7830840",
    "partNumber": "7830840",
    "productUrl": "https://www.argos.co.uk/product/7830840",
    "name": "Samsung Galaxy A17 Phone Case - Clear",
    "brand": "Samsung",
    "price": 15.29,
    "wasPrice": 16.99,
    "saving": 1.7,
    "discountPercent": 10,
    "currency": "GBP",
    "averageRating": 3.8846,
    "reviewCount": 26,
    "deliverable": true,
    "reservable": true,
    "freeDelivery": false,
    "deliveryCost": 4.95,
    "clearance": false,
    "madeToOrder": false,
    "specialOfferText": "Save 10%",
    "creditInfo": "Available credit options",
    "creditAttributes": {
        "message": "Available credit options",
        "providerName": "ARGOSPAY",
        "offeringType": "Normal credit"
    },
    "colourOptions": ["Clear"],
    "hasVariations": false,
    "hasMultiplePrices": false,
    "relevancyRank": 1,
    "soldByTrustedSeller": false,
    "fulfiller": "ADSI",
    "imageURL": "https://media.4rgos.it/s/Argos/7830840_R_SET/1?w=540&h=540&qlt=75&fmt=webp",
    "category": "Technology",
    "categoryMatch": true,
    "pageNumber": 1,
    "pageType": "search",
    "searchTerm": "mobile cover",
    "appliedSort": "relevance_desc",
    "totalResults": 338
}
```

Empty fields are removed, so a record only contains values that the page actually published.

### Tips for Best Results

- **Start with a small run.** Use 10 to 20 results and one page to check the dataset before scheduling a larger job.
- **Use URLs for repeat work.** Saved search, listing, and product URLs produce the most predictable results.
- **Raise the page limit gradually.** Each page holds up to 60 products. Set `maxPages` to match the number of pages you actually need.
- **Keep the UK residential proxy on.** Argos blocks most datacentre addresses. If you use your own pool, choose UK residential addresses.
- **Check the source before reporting a bug.** Some products do not publish a rating, review count, or discount. A missing value is not always an Actor error.

### Integrations

- **Google Sheets** - Send results to a spreadsheet for review and sharing.
- **Webhooks** - Trigger a downstream workflow after each run.
- **Make or Zapier** - Connect results to no-code automations.
- **Apify API** - Pull datasets into your own application or data warehouse.
- **CSV, Excel, JSON, XML** - Download the dataset in the format your tools already use.

### Frequently Asked Questions

#### What types of Argos pages are supported?

The Actor supports search results, `/list/` listing pages, category pages, and individual product pages. Search and category URLs are converted to the matching results page automatically.

#### Can I use a keyword instead of a URL?

Yes. Enter a keyword such as `mobile phone`, `lego`, or `air fryer`. The Actor builds the matching Argos search results page. If you also supply URLs, the URLs take priority.

#### How many products can I collect?

Set `resultsWanted` per URL and `maxPages` to control depth. Each result page usually contains up to 60 products. `maxPages` accepts values up to 50.

#### Does the Actor handle pagination?

Yes. Set `maxPages` above 1 to crawl additional pages. The Actor stops when it reaches your result limit, the last page, or a page with no new products.

#### Why are descriptions or barcodes missing?

The dataset is built from Argos listing pages. Descriptions, barcode/EAN values, and full image galleries appear on individual product pages, so they are not part of this listing dataset. The fields in the table above are the ones Argos publishes in listing results.

#### Why are some fields empty?

Argos does not publish every field for every product. Ratings, review counts, discounts, colour options, and variant data can be missing on new or clearance items.

#### Do I need a proxy?

A proxy is enabled by default because Argos blocks most datacentre addresses, including the addresses used by cloud runners. The default route uses UK residential addresses. You can supply your own UK residential proxy pool if you already have one. Runs without a proxy may be blocked.

#### Why did a search with no exact matches return products?

Argos can show a recommendation grid when a term has no exact matches. Those records are real products with valid IDs and prices, but they may not match the requested term. Check `searchTerm` and the product names before treating the run as wrong.

#### Can I export the data to CSV or Excel?

Yes. Apify datasets can be downloaded as CSV, Excel, JSON, XML, and other supported formats.

#### Can I run this Actor on a schedule?

Yes. Create a schedule in Apify Console to refresh prices, availability, or new arrivals hourly, daily, or weekly.

#### Is this Actor suitable for non-technical users?

Yes. The input form works without code. The default keyword and limits are enough for a first run, and the dataset can be downloaded directly from Apify Console.

#### Is it legal to scrape Argos?

Scraping publicly available data can be legal, but rules differ by jurisdiction and by how the data is used. You are responsible for complying with Argos' terms, applicable law, and privacy rules.

### Support

For issues, feature requests, or custom Actor work, use the Issues tab on the Actor page or contact the developer through Apify.

### Legal Notice

Argos is a trademark of Argos Limited. This Actor is not affiliated with, endorsed by, or sponsored by Argos. It is intended for legitimate collection of publicly available product data. Users are responsible for how they use the data and for complying with applicable laws and website terms.

# Actor input Schema

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

Argos search, list, browse, brand, or product URLs. When URLs are supplied, they take precedence over the keyword. Example: https://www.argos.co.uk/search/mobile-phone/

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

Search keyword used when no URL is supplied.

## `resultsWanted` (type: `integer`):

Maximum number of products to collect per URL.

## `maxPages` (type: `integer`):

Maximum number of result pages to crawl per URL. Each page holds up to 60 products.

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

Argos blocks most datacentre addresses. The default uses UK residential proxies; you can supply your own proxy URLs instead.

## Actor input object example

```json
{
  "keyword": "mobile phone",
  "resultsWanted": 20,
  "maxPages": 1,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "GB"
  }
}
```

# Actor output Schema

## `overview` (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 = {
    "keyword": "mobile phone"
};

// Run the Actor and wait for it to finish
const run = await client.actor("shahidirfan/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 = { "keyword": "mobile phone" }

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

```

## MCP server setup

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