# AO Scraper - UK Appliances & Electronics (`studio-amba/ao-scraper`) Actor

Scrape products from AO.com, the UK's leading online appliance retailer. Extract prices, deals, energy ratings, reviews for fridges, washing machines, TVs and more. No cookies or login required.

- **URL**: https://apify.com/studio-amba/ao-scraper.md
- **Developed by:** [Studio Amba](https://apify.com/studio-amba) (community)
- **Categories:** E-commerce
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.00 / 1,000 result scrapeds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

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

## AO Scraper

Scrape products from [AO.com](https://ao.com), the UK's leading online-only appliance and electronics retailer, selling fridges, washing machines, TVs, laptops, and small appliances to millions of UK households.

### Why use this scraper?

- **Price monitoring** -- Track current prices, was-prices, and member prices for any appliance category to spot deals and price drops.
- **Competitive intelligence** -- Compare AO.com pricing and promotions against Currys, Argos, John Lewis, and other UK retailers.
- **Market research** -- Analyze the UK appliance market: brand share, price bands, energy ratings, review volumes.
- **Discount tracking** -- Sort by discount percentage or discount amount to build a live feed of the biggest markdowns.
- **Catalog enrichment** -- Pull product names, SKUs, images, feature bullets, and energy labels into your own product database.
- **Review analysis** -- Collect customer ratings and review counts across thousands of products to gauge product sentiment.
- **Dropshipping and resale** -- Monitor stock status and delivery pricing for sourcing decisions.
- **Energy efficiency studies** -- Every product carries its UK energy rating class (A-G), ready for sustainability research.

No cookies, no login, no browser fingerprinting setup. Just enter a search term and run.

### How to scrape AO.com data

1. **Create an Apify account** -- Sign up at [apify.com](https://apify.com) (free tier available).
2. **Open the AO Scraper** -- Navigate to this actor's page in the Apify Store.
3. **Enter a search query** -- Any appliance or electronics term works: "fridge freezer", "washing machine", "bosch dishwasher", "55 inch tv", "heat pump tumble dryer".
4. **Or paste category URLs** -- Use the Start URLs field with any AO.com lister URL (e.g., `https://ao.com/l/fridge_freezers/1/26-28/`) to scrape a whole category.
5. **Pick a sort order** -- Relevance, most popular, price low-to-high, price high-to-low, or biggest discounts.
6. **Set result limits** -- Choose how many products you want (default: 100). The scraper fetches 60 products per page, so even large runs are fast.
7. **Run the actor** -- Click "Start". A 100-product run typically finishes in under a minute.
8. **Download your data** -- Export results as JSON, CSV, or Excel from the Dataset tab, or pull them via the Apify API.

### Input parameters

| Parameter | Type | Description | Default |
|-----------|------|-------------|---------|
| `searchQuery` | string | What to search for (e.g., "fridge freezer", "washing machine") | `fridge freezer` |
| `startUrls` | array | AO.com category/search URLs to scrape instead of the query | -- |
| `sort` | string | `popular`, `price_asc`, `price_desc`, `discount_percent`, `discount_amount` | Relevance |
| `maxResults` | integer | Maximum products to return (1-5000) | 100 |
| `proxyConfiguration` | object | Legacy proxy settings (fetching uses a built-in unblocking service) | GB Residential |

### Output example

Each product produces a flat JSON object like this:

```json
{
    "name": "Fridgemaster MC55251D 182cm 60/40 Total No Frost Fridge Freezer - White",
    "brand": "Fridgemaster",
    "price": 299,
    "currency": "GBP",
    "originalPrice": 399,
    "memberPrice": 289,
    "sku": "MC55251D_WH",
    "colour": "White",
    "category": "Fridge Freezers",
    "applianceType": "Fridge Freezers Frost Free",
    "fitType": "Free Standing",
    "energyRating": "D",
    "rating": 4.8,
    "reviewCount": 3149,
    "deliveryPrice": 0,
    "inStock": true,
    "imageUrl": "https://media.ao.com/en-GB/Productimages/Images/rvMedium/...jpg",
    "features": [
        "256 litre capacity — Holds 14 bags of food shopping",
        "Total No Frost — Even temperatures reduce icy buildups",
        "Dimensions (cm) - H182.4 x W55 x D55.7"
    ],
    "url": "https://ao.com/product/mc55251d-fridgemaster-fridge-freezer-white-93010-372.aspx",
    "scrapedAt": "2026-07-06T12:00:00.000Z"
}
```

### Output fields

| Field | Type | Description |
|-------|------|-------------|
| `name` | string | Full product title |
| `brand` | string | Manufacturer brand |
| `price` | number | Current price in GBP |
| `currency` | string | Always `GBP` |
| `originalPrice` | number/null | Was-price or retail price when discounted |
| `memberPrice` | number/null | AO Five Star membership price |
| `sku` | string | AO product code |
| `colour` | string | Product colour |
| `category` | string | Product category |
| `applianceType` | string | Detailed appliance type |
| `fitType` | string | Free Standing or Integrated |
| `energyRating` | string | UK energy efficiency class (A-G) |
| `rating` | number/null | Average customer rating out of 5 |
| `reviewCount` | integer/null | Number of customer reviews |
| `deliveryPrice` | number/null | Indicative delivery price (0 = free) |
| `inStock` | boolean | Whether the product is live and buyable |
| `imageUrl` | string | Main product image |
| `features` | array | Key feature bullets, including dimensions |
| `url` | string | Full product URL |
| `scrapedAt` | string | ISO 8601 collection timestamp |

### What can you search for?

AO.com covers the full range of home appliances and consumer electronics:

- **Cooling** -- fridge freezers, fridges, freezers, wine coolers, American-style fridge freezers
- **Laundry** -- washing machines, tumble dryers (heat pump, condenser, vented), washer dryers
- **Cooking** -- ovens, cookers, hobs, cooker hoods, microwaves, range cookers
- **Dishwashers** -- full size, slimline, integrated
- **TV and entertainment** -- TVs (OLED, QLED), soundbars, projectors, headphones
- **Computing** -- laptops, desktops, tablets, monitors, gaming
- **Small appliances** -- vacuum cleaners, air fryers, kettles, coffee machines
- **Mobile** -- phones and accessories

Brand searches work too: "bosch", "samsung tv", "lg fridge freezer", "dyson".

### Cost estimate

With typical Apify pricing, you get roughly 1,000-2,000 products per $1 of platform credits. The scraper reads 60 products per page request, so runs are fast and cheap even for full category sweeps.

### Limitations

- Product data comes from AO.com listing pages: prices, ratings, energy labels, and feature bullets are included, but full technical spec sheets from product detail pages are not.
- AO.com sells to the UK only; all prices are in GBP and include VAT.
- Very generic single-word searches may land on a category overview page; the scraper automatically resolves these to the best matching product list.
- Availability reflects the moment of scraping; fast-moving deals can sell out.

### Support

Found an issue or need an extra field? Open an issue on the actor's page and it will be looked at quickly.

# Actor input Schema

## `searchQuery` (type: `string`):

What to search for on AO.com (e.g., 'fridge freezer', 'washing machine', 'bosch dishwasher', '55 inch tv').

## `startUrls` (type: `array`):

AO.com category or search URLs to scrape instead of the search query (e.g., https://ao.com/l/fridge\_freezers/1/26-28/). Leave empty to use the search query.

## `sort` (type: `string`):

Sort order of the results.

## `maxResults` (type: `integer`):

Maximum number of products to scrape.

## `brightDataApiKey` (type: `string`):

Optional: your own Bright Data Web Unlocker API key. Leave empty to use the built-in key.

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

Legacy proxy settings. Fetching goes through a built-in unblocking service, so this can be left at its default.

## Actor input object example

```json
{
  "searchQuery": "fridge freezer",
  "sort": "",
  "maxResults": 20,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "GB"
  }
}
```

# 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 = {
    "searchQuery": "fridge freezer",
    "maxResults": 20,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "GB"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("studio-amba/ao-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 = {
    "searchQuery": "fridge freezer",
    "maxResults": 20,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "GB",
    },
}

# Run the Actor and wait for it to finish
run = client.actor("studio-amba/ao-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "searchQuery": "fridge freezer",
  "maxResults": 20,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "GB"
  }
}' |
apify call studio-amba/ao-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=studio-amba/ao-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/zOHQDMlMhI8zqnXvL/builds/PYEvNkE96kJ69MpRe/openapi.json
