# Argos Reviews Scraper ⭐ (`shahidirfan/argos-reviews-scraper`) Actor

Scrape Argos.co.uk product reviews, customer ratings, feedback, review dates, and product details. Discover what buyers love or dislike, identify product issues, compare competitors, track customer satisfaction, and collect valuable review data for market research and AI sentiment analysis.

- **URL**: https://apify.com/shahidirfan/argos-reviews-scraper.md
- **Developed by:** [Shahid Irfan](https://apify.com/shahidirfan) (community)
- **Stats:** 3 total users, 2 monthly users, 100.0% 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 Argos Reviews Scraper does

Argos Reviews Scraper collects public customer reviews for Argos products. Enter a product ID or a product URL, set a review limit, and receive one dataset item per review. Items include the review text, rating, reviewer details, helpful votes, secondary ratings, media when Argos publishes it, and the product identifiers used for the run.

Use the dataset for product research, review monitoring, catalog checks, and customer feedback analysis. You can export it from Apify or connect it to another service through the API, webhooks, or integrations.

### What you can collect

| Field                                                        | Type            | Description                                           |
| ------------------------------------------------------------ | --------------- | ----------------------------------------------------- |
| `partNumber`                                                 | String          | Argos product identifier.                             |
| `requestedUrl`                                               | String          | Product value supplied in the run input.              |
| `productUrl`                                                 | String          | Canonical Argos product URL.                          |
| `sortBy`, `pageNumber`                                       | String, Integer | Sort mode and review page number.                     |
| `reviewId`, `submissionId`                                   | Integer, String | Review identifiers.                                   |
| `submittedAt`, `lastModifiedAt`, `lastModeratedAt`           | String          | Review timestamps.                                    |
| `title`, `text`                                              | String          | Review headline and full review text.                 |
| `overallRating`, `ratingRange`                               | Number          | Review score and available score range.               |
| `recommended`, `isFeatured`, `isRatingsOnly`, `isSyndicated` | Boolean         | Review status and recommendation flags.               |
| `reviewerName`, `reviewerLocation`                           | String          | Public reviewer information when available.           |
| `reviewerContextAttributes`                                  | Object          | Reviewer context values supplied by Argos.            |
| `secondaryRatings`                                           | Object          | Category-level scores such as quality or ease of use. |
| `helpfulVotes`, `unhelpfulVotes`, `totalFeedbackCount`       | Integer         | Feedback vote counts.                                 |
| `photos`, `videos`                                           | Array           | Review media links or metadata.                       |
| `pros`, `cons`, `additionalFields`                           | String, Object  | Additional review content when available.             |
| `clientResponses`                                            | Array           | Public responses attached to the review.              |

### How to use Argos Reviews Scraper

1. Open the Actor in Apify.
2. Enter an Argos product ID or product URL. If you supply both, the Actor uses the URL and ignores the ID.
3. Set the review limit, page cap, and sort order.
4. Start the run and inspect the dataset preview.
5. Download the results or connect the dataset to your workflow.

The Actor reads the public review feed for each product and saves reviews page by page. When a request fails, it retries with another request profile. If the main review source is unavailable, it tries the alternate Argos review endpoint before marking the product as failed. A product with no reviews produces a warning and no dataset items; the run still succeeds.

### Input Parameters

| Parameter            | Type    | Required | Default   | Description                                                                                                                       |
| -------------------- | ------- | -------- | --------- | --------------------------------------------------------------------------------------------------------------------------------- |
| `productId`          | String  | No       | `7953538` | Argos part number with 7 or 8 digits. Used when `productUrl` is empty.                                                            |
| `productUrl`         | String  | No       | None      | Argos product page URL. Query strings, tracking parameters, and trailing slashes are accepted. Takes precedence over `productId`. |
| `resultsWanted`      | Integer | No       | `20`      | Maximum reviews to collect per product. Minimum is `1`.                                                                           |
| `maxPages`           | Integer | No       | `2`       | Maximum review pages to request per product. Minimum is `1`.                                                                      |
| `sortBy`             | String  | No       | `newest`  | One of `newest`, `oldest`, `highest_rating`, or `lowest_rating`.                                                                  |
| `proxyConfiguration` | Object  | No       | No proxy  | Optional proxy settings. The review feed does not require a proxy.                                                                |

If you omit both product fields, the Actor uses the default product ID.

### Usage Examples

#### Collect reviews by product ID

```json
{
    "productId": "7953538",
    "resultsWanted": 50,
    "maxPages": 5,
    "sortBy": "highest_rating"
}
```

#### Collect reviews from a product URL

```json
{
    "productUrl": "https://www.argos.co.uk/product/7953538",
    "resultsWanted": 20,
    "maxPages": 2,
    "sortBy": "newest"
}
```

#### Use proxy routing

The review feed is reachable without a proxy. Add proxy settings only when your own routing policy requires a specific egress.

```json
{
    "productId": "9973200",
    "resultsWanted": 100,
    "maxPages": 10,
    "sortBy": "oldest",
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "countryCode": "GB"
    }
}
```

Custom proxy URLs are supported. The Actor never writes proxy credentials to the log or dataset.

```json
{
    "productId": "9973200",
    "proxyConfiguration": {
        "useApifyProxy": false,
        "proxyUrls": ["http://username:password@proxy.example:8000"]
    }
}
```

### Sample Output

Optional fields are omitted when Argos does not provide them.

```json
{
    "requestedUrl": "7953538",
    "productUrl": "https://www.argos.co.uk/product/7953538",
    "partNumber": "7953538",
    "sortBy": "SubmissionTime:Desc",
    "pageNumber": 1,
    "reviewId": 185644427,
    "submissionId": "r11493-en__17925024tzkWKKvWWl",
    "submittedAt": "2026-10-20T13:20:44.000+00:00",
    "lastModifiedAt": "2026-10-20T13:45:12.000+00:00",
    "lastModeratedAt": "2026-10-20T13:45:12.000+00:00",
    "reviewLocale": "en_GB",
    "moderationStatus": "APPROVED",
    "title": "Compact and sleek",
    "text": "Lightweight and powerful phone.",
    "overallRating": 5,
    "ratingRange": 5,
    "recommended": false,
    "isFeatured": false,
    "isRatingsOnly": false,
    "isSyndicated": false,
    "reviewerName": "samsmug fan",
    "reviewerContextAttributes": {
        "Age": "45to54"
    },
    "helpfulVotes": 0,
    "unhelpfulVotes": 0,
    "totalFeedbackCount": 0,
    "totalCommentCount": 0,
    "totalClientResponseCount": 0,
    "secondaryRatings": {
        "EaseOfUse": 5,
        "Display": 5,
        "Features": 5,
        "soundquality": 5
    }
}
```

### Data-quality behavior and limitations

- Reviews are returned in the selected source order until `resultsWanted` or `maxPages` is reached.
- A product with no available reviews produces a warning and no dataset items for that product.
- Fields are omitted when Argos does not publish them. Missing optional fields do not indicate a failed run.
- Temporary network failures, timeouts, rate limits, and server errors are retried, then stop after a fixed number of attempts.
- Reviews are deduplicated by review ID within each product.
- Public review data can change. Recheck scheduled datasets when source fields or review totals change.
- The Actor accepts product pages, not Argos category pages or search pages.

### Tips for best results

- Start with `resultsWanted: 20` and `maxPages: 2` to confirm the product and output shape.
- Use a canonical product URL or a 7 to 8 digit product ID.
- Increase `maxPages` when a product has a large review history.
- Use `text`, `pros`, `cons`, ratings, and `secondaryRatings` for review analysis.
- Schedule repeat runs when you need to monitor new feedback or rating changes.

### Integrations and export formats

- Apify API: read dataset items from your own application.
- Google Sheets or Airtable: review and filter customer feedback in shared tables.
- Make or Zapier: trigger downstream workflows after a run.
- Webhooks: notify another service when collection finishes.

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

### Frequently Asked Questions

#### Can I run the Actor with only a product ID?

Yes. Set `productId` to the Argos part number and leave `productUrl` empty.

#### What happens if I supply both a product URL and a product ID?

The Actor uses the URL and ignores the ID. Clear the field you do not want to use when you switch modes in Apify Console.

#### Can I use a product URL with tracking parameters?

Yes. The Actor extracts the product ID from standard Argos product URLs, including URLs with query strings, fragments, and trailing slashes.

#### Can I collect every available review?

Set `resultsWanted` and `maxPages` high enough for the product. The Actor stops when the requested limit is reached, the page cap is reached, or the review source returns no more reviews.

#### Why are some fields missing?

Optional fields are omitted when Argos does not publish a value for a product or review. This is normal for media, reviewer context, secondary ratings, and responses.

#### Do I need Apify Proxy?

No. Proxy configuration is optional. If an Apify Proxy request fails, the Actor retries without a proxy. Custom proxy URLs are used as supplied and are not bypassed.

#### Can I schedule repeat collections?

Yes. Use Apify Schedules to run the Actor hourly, daily, weekly, or at a custom interval, then compare datasets over time.

#### What happens when a product has no reviews?

The run succeeds with an empty dataset and a warning for that product. A valid empty result is different from a blocked or failed request.

#### Is collecting Argos review data legal?

Public web data may be subject to website terms, privacy rules, and other laws. You are responsible for using the data lawfully, respecting Argos terms and access controls, and collecting only information you have a legitimate reason to use.

### Related Actors

- [Target Reviews Scraper](https://apify.com/shahidirfan/target-reviews-scraper): collect product reviews and ratings from Target for ecommerce research and customer feedback analysis.
- [B\&H Reviews Scraper](https://apify.com/shahidirfan/b-h-reviews-scraper): collect detailed reviews and product context from B\&H Photo Video.
- [Walmart Reviews Scraper](https://apify.com/shahidirfan/walmart-reviews-scraper): collect Walmart product reviews, ratings, and reviewer details.
- [iHerb Reviews Scraper](https://apify.com/shahidirfan/iherb-reviews-scraper): collect iHerb reviews and customer feedback for product and market analysis.

### Support

For issues, field questions, or feature requests, use the Actor's Issues tab in Apify Console.

### Legal Notice

This Actor is intended for legitimate collection and analysis of publicly available Argos review data. Users are responsible for complying with Argos terms, applicable laws, privacy requirements, and any restrictions on storing, sharing, or using review content.

# Actor input Schema

## `productId` (type: `string`):

Argos product part number containing 7 or 8 digits. Used when Product URL is empty.

## `productUrl` (type: `string`):

Optional Argos product URL. When supplied, it takes precedence over Product ID. Tracking parameters and trailing slashes are accepted.

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

Maximum number of reviews to collect for each product.

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

Safety cap for review pages per product.

## `sortBy` (type: `string`):

Choose the review order: newest, oldest, highest rating, or lowest rating.

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

Optional. Leave this empty unless your routing policy requires a proxy.

## Actor input object example

```json
{
  "productId": "7953538",
  "resultsWanted": 20,
  "maxPages": 2,
  "sortBy": "newest",
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# 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 = {
    "productId": "7953538"
};

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

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

```

## MCP server setup

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