# MoneySuperMarket Scraper - UK Financial Comparison (`studio-amba/moneysupermarket-scraper`) Actor

Scrape MoneySuperMarket.com for credit cards, broadband, energy, insurance, and mortgage deals. Extract prices, features, provider details, and ratings from the UK's largest financial comparison site.

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

## Pricing

from $2.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/actors/running/actors-in-store.md#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

## MoneySuperMarket Scraper - UK Financial Comparison Data

Scrape financial comparison deals from MoneySuperMarket.com, the UK's largest price comparison website. Extract credit card offers, broadband packages, energy tariffs, insurance quotes, mortgage rates, and loan deals with prices, features, provider details, and ratings.

### Why use this actor?

MoneySuperMarket aggregates deals from hundreds of UK financial providers across 8 categories. This actor lets you programmatically collect and compare those deals at scale. Perfect for fintech companies, price comparison platforms, market researchers, and anyone monitoring UK financial product pricing. No login or cookies required.

### How to scrape MoneySuperMarket data

1. Create a free Apify account at [apify.com](https://apify.com)
2. Open the MoneySuperMarket Scraper actor page
3. Select a financial category (credit cards, broadband, energy, etc.)
4. Optionally narrow to a subcategory or search for specific providers
5. Click "Start" to begin scraping
6. Download results as JSON, CSV, or Excel when the run completes

You can also call the actor via the Apify API, schedule recurring runs, or integrate with webhooks for automated data pipelines.

### Input

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `category` | Select | No | Financial category to scrape (default: credit-cards). Options: credit-cards, broadband, gas-and-electricity, mortgages, car-insurance, home-insurance, travel-insurance, loans |
| `subcategory` | String | No | Narrow to a specific subcategory (e.g. "cashback", "fibre-broadband", "fixed-price-energy"). Leave empty for all. |
| `searchQuery` | String | No | Filter results by provider or keyword (e.g. "Amex", "BT", "Octopus") |
| `maxResults` | Integer | No | Maximum deals to return (default: 50, max: 500) |
| `proxyConfiguration` | Object | No | Proxy settings. GB residential proxies recommended. |

#### Subcategories by category

**Credit Cards:** cashback, travel, balance-transfer, interest-free, rewards, business
**Broadband:** fibre, packages, broadband-and-tv, broadband-and-phone, mobile-broadband
**Energy:** fixed-price, dual-fuel, electricity, gas, business
**Mortgages:** fixed-rate, tracker, buy-to-let, first-time-buyer, remortgage
**Car Insurance:** cheap, temporary, black-box, young-drivers
**Home Insurance:** contents, buildings, landlord
**Travel Insurance:** single-trip, annual, europe, family
**Loans:** personal, car, debt-consolidation

### Output

Each result contains:

| Field | Type | Example |
|-------|------|---------|
| `planName` | String | `"Platinum Cashback Everyday"` |
| `provider` | String | `"American Express"` |
| `category` | String | `"Credit Cards"` |
| `subcategory` | String | `"cashback"` |
| `monthlyPrice` | Number | `29.99` |
| `annualPrice` | Number | `359.88` |
| `currency` | String | `"GBP"` |
| `rating` | Number | `4.5` |
| `features` | Array | `["5% cashback for 3 months", "No annual fee"]` |
| `planDescription` | String | `"Earn cashback on everyday spending..."` |
| `url` | String | `"https://www.moneysupermarket.com/credit-cards/..."` |
| `scrapedAt` | String | `"2026-06-09T14:30:00.000Z"` |

### Example output

```json
{
    "planName": "Platinum Cashback Everyday",
    "provider": "American Express",
    "category": "Credit Cards",
    "subcategory": "cashback",
    "monthlyPrice": null,
    "annualPrice": null,
    "currency": "GBP",
    "rating": 4.5,
    "features": [
        "5% cashback for 3 months",
        "Up to 1% cashback after",
        "No annual fee",
        "Contactless payments"
    ],
    "planDescription": "Earn cashback on everyday spending with no annual fee",
    "url": "https://www.moneysupermarket.com/credit-cards/cashback/amex-platinum/",
    "scrapedAt": "2026-06-09T14:30:00.000Z"
}
```

```json
{
    "planName": "Full Fibre 900",
    "provider": "BT",
    "category": "Broadband",
    "subcategory": "fibre",
    "monthlyPrice": 39.99,
    "annualPrice": 479.88,
    "currency": "GBP",
    "rating": 4.2,
    "features": [
        "900Mbps average download speed",
        "24-month contract",
        "BT Smart Hub 2 included",
        "Unlimited usage"
    ],
    "planDescription": "Ultra-fast full fibre broadband with average speeds of 900Mbps",
    "url": "https://www.moneysupermarket.com/broadband/providers/bt/",
    "scrapedAt": "2026-06-09T14:30:00.000Z"
}
```

### Use cases

- **Fintech comparison** -- Build your own comparison engine using real MoneySuperMarket data across credit cards, broadband, energy, and insurance
- **Market research** -- Track UK financial product pricing trends, new entrants, and competitive positioning over time
- **Price monitoring** -- Schedule daily runs to detect when providers change prices, add features, or launch new deals
- **Lead generation** -- Identify providers offering specific features or price points for partnership or sales outreach
- **Data journalism** -- Analyze cost-of-living data: energy tariff changes, mortgage rate movements, broadband price competition
- **Academic research** -- Study UK financial product markets, consumer choice architecture, and comparison platform dynamics

### Categories available

| Category | URL Path | What you get |
|----------|----------|-------------|
| Credit Cards | `/credit-cards/` | Card offers, APR, cashback rates, balance transfer deals |
| Broadband | `/broadband/` | Internet packages, speeds, monthly costs, contract lengths |
| Energy | `/gas-and-electricity/` | Gas & electricity tariffs, unit rates, standing charges |
| Mortgages | `/mortgages/` | Mortgage rates, LTV, fixed/tracker deals |
| Car Insurance | `/car-insurance/` | Policy types, coverage options, provider ratings |
| Home Insurance | `/home-insurance/` | Buildings, contents, combined policies |
| Travel Insurance | `/travel-insurance/` | Single-trip, annual, family, European cover |
| Loans | `/loans/` | Personal loans, car finance, APR, repayment terms |

### Tips for best results

- **Use GB proxies** -- MoneySuperMarket serves UK-specific content. Use `apifyProxyCountry: "GB"` for accurate results.
- **Start with credit cards or broadband** -- These categories have the most publicly listed deals without needing personal details.
- **Combine category + subcategory** -- For focused scrapes, specify both (e.g. category "credit-cards" + subcategory "cashback").
- **Schedule recurring runs** -- Financial products change frequently. Weekly scrapes capture price movements and new offers.

### Cost estimate

This actor uses Playwright (headless browser). It costs $0.02 per run plus $0.002 per deal scraped — a 50-deal run costs about $0.12, regardless of how many subcategory pages it takes to collect them. Usage cost only settles once the run reports SUCCEEDED.

### Integrations

Connect MoneySuperMarket data to your existing tools:

- **Google Sheets** -- Automatic export after every run
- **Slack / Email** -- Get notified when deals match your criteria
- **Webhooks** -- Push financial data to your own API endpoint
- **Zapier / Make** -- Connect to 5,000+ apps without code
- **Power BI / Tableau** -- Build financial comparison dashboards

### Limitations

- Energy comparison results require a postcode for personalized quotes on moneysupermarket.com. This actor scrapes publicly listed tariff information and editorial content, not personalized quotes.
- Insurance categories show general information and provider listings rather than personalized quotes (which require personal details).
- MoneySuperMarket is a dynamic web application. The actor uses a headless browser which is slower than API-based scrapers.
- Data reflects what is publicly listed on the website at scrape time and may change without notice.
- Some deal details (exact APR, eligibility criteria) may require visiting individual deal pages.

# Actor input Schema

## `category` (type: `string`):

Financial product category to scrape

## `subcategory` (type: `string`):

Optional subcategory to narrow results (e.g. 'cashback', 'travel-credit-cards', 'balance-transfer', 'fibre-broadband', 'fixed-price-energy'). Leave empty for all deals in the category.

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

Search term for finding specific deals or providers (e.g. 'Amex', 'BT broadband', 'Octopus Energy')

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

Maximum number of deals to return

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

Apify proxy settings. Residential proxies recommended for UK geo-targeting.

## Actor input object example

```json
{
  "category": "credit-cards",
  "maxResults": 5,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "GB"
  }
}
```

# Actor output Schema

## `results` (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 = {
    "maxResults": 5,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "GB"
    }
};

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

# Run the Actor and wait for it to finish
run = client.actor("studio-amba/moneysupermarket-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 '{
  "maxResults": 5,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "GB"
  }
}' |
apify call studio-amba/moneysupermarket-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,studio-amba/moneysupermarket-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/g1RQ2voEU9zBGb20k/builds/3XkGBrGuULsQP6iCi/openapi.json
