# AutoUncle Multi-Country Car Aggregator Scraper (`jungle_synthesizer/autouncle-multi-country-car-aggregator-scraper`) Actor

Scrapes used car listings aggregated by AutoUncle across 10 European storefronts (UK, Germany, France, Denmark, Sweden, Netherlands, Austria, Italy, Spain, Poland), each with AutoUncle's market valuation, price-change history, and original source marketplace.

- **URL**: https://apify.com/jungle\_synthesizer/autouncle-multi-country-car-aggregator-scraper.md
- **Developed by:** [BowTiedRaccoon](https://apify.com/jungle_synthesizer) (community)
- **Categories:** E-commerce, Other
- **Stats:** 2 total users, 1 monthly users, 93.3% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.60 / 1,000 record scrapeds

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

## AutoUncle Multi-Country Car Aggregator Scraper

Extract used-car listings from [AutoUncle](https://www.autouncle.co.uk) — a pan-European aggregator that indexes dealer inventory across 10 national storefronts and, uniquely, publishes its own computed market valuation and price-change history for every listing.

### What You Can Do

- Scrape used-car listings across the UK, Germany, France, Denmark, Sweden, Netherlands, Austria, Italy, Spain, and Poland storefronts in a single run
- Get AutoUncle's own valuation rating (e.g. "Good price"), the below-market delta, and days-on-market for every listing
- Get full vehicle specs — make, model, trim, year, mileage, fuel type, transmission, body type, power, CO2 emissions and fuel economy
- Get the original marketplace/dealer a listing was sourced from, plus dealer name and location
- Filter to any subset of the 10 supported countries, or leave the field empty to cover all of them

### Why AutoUncle

Most car marketplaces show you what a dealer is asking. AutoUncle shows you that price against its own computed estimate of what the car is actually worth, plus how the price has moved and where else the same listing appears — a signal no single national marketplace publishes on its own. Aggregating multiple countries in one run also surfaces cross-border pricing patterns that a single-storefront scraper can't.

### Input

| Field | Type | Description |
|-------|------|-------------|
| `countries` | array | Storefronts to scrape: `uk`, `de`, `fr`, `dk`, `se`, `nl`, `at`, `it`, `es`, `pl`. Leave empty to scrape all 10. |
| `maxItems` | integer | Maximum number of listings to collect. |

#### Example: UK and Germany only

```json
{
  "countries": ["uk", "de"],
  "maxItems": 100
}
```

#### Example: All 10 storefronts

```json
{
  "maxItems": 500
}
```

### Output

Each listing is saved as a flat JSON record:

```json
{
  "listing_id": "43426898",
  "url": "https://www.autouncle.co.uk/en-gb/d/43426898-used-2021-mercedes-a180-amg-line-136-bhp",
  "country": "uk",
  "title": "Used (2021) Mercedes A180 AMG line 136 HP",
  "make": "Mercedes",
  "model": "A180",
  "variant": "AMG line",
  "year": 2021,
  "mileage": 39700,
  "mileage_unit": "miles",
  "price_amount": 13897,
  "price_currency": "GBP",
  "valuation_label": "Good price",
  "below_market_amount": 1203,
  "estimated_market_value": 14012,
  "fuel_type": "Petrol",
  "transmission": "Manual",
  "body_type": "Hatchback",
  "power_hp": 136,
  "engine_size": "1.3L",
  "doors": 5,
  "co2_gkm": 121,
  "fuel_economy_mpg": 47.9,
  "condition": "used",
  "availability_verified": true,
  "source_site": "Sandicliffe.co.uk",
  "source_url": "https://www.autouncle.co.uk/en-gb/goodbye/sandicliffe-co-uk/43426898/87162732",
  "dealer_name": "Sandicliffe.co.uk",
  "dealer_location": "LE12 Loughborough, Leicestershire",
  "thumbnail_url": "https://images.autouncle.com/uk/car_images/medium_...webp",
  "days_on_market": 2
}
```

### Notes on Coverage

- The 10 supported storefronts are the ones AutoUncle actually operates as independent, reachable properties — a couple of countries commonly associated with AutoUncle turned out not to hold up as separate storefronts and are intentionally left out rather than guessed at.
- `valuation_label` is shown in each storefront's own language (e.g. "Good price" on the UK site, "Superpreis" on the German site) — it is passed through as AutoUncle displays it, not translated.
- Mileage and fuel economy units follow the storefront: miles/mpg on the UK site, km/l-per-100km everywhere else. Each record carries its own `mileage_unit` so you never have to guess.
- Not every field is populated for every listing — AutoUncle only shows an estimated market value, a below-market delta, or a verified-availability badge when it has one to show, and the actor leaves the field `null` rather than inventing a value.
- `resumeCursor` lets you continue a large multi-country crawl from where a previous run left off — pass the value from a prior run's output back in as input to pick up without re-fetching or re-charging what you already have.

# Actor input Schema

## `sp_intended_usage` (type: `string`):

What will this data feed? E.g. lead lists, KYB checks, price tracking.

## `sp_improvement_suggestions` (type: `string`):

Provide any feedback or suggestions for improvements.

## `sp_contact` (type: `string`):

We'll personally help with your use case. No spam.

## `countries` (type: `array`):

AutoUncle storefronts to scrape. Leave empty to scrape all 10 supported countries.

## `maxItems` (type: `integer`):

Maximum number of car listings to scrape

## Actor input object example

```json
{
  "sp_intended_usage": "Describe your intended use...",
  "sp_improvement_suggestions": "Share your suggestions here...",
  "sp_contact": "Share your email here...",
  "countries": [
    "uk"
  ],
  "maxItems": 10
}
```

# 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 = {
    "sp_intended_usage": "Describe your intended use...",
    "sp_improvement_suggestions": "Share your suggestions here...",
    "sp_contact": "Share your email here...",
    "countries": [
        "uk"
    ],
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("jungle_synthesizer/autouncle-multi-country-car-aggregator-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 = {
    "sp_intended_usage": "Describe your intended use...",
    "sp_improvement_suggestions": "Share your suggestions here...",
    "sp_contact": "Share your email here...",
    "countries": ["uk"],
    "maxItems": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("jungle_synthesizer/autouncle-multi-country-car-aggregator-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 '{
  "sp_intended_usage": "Describe your intended use...",
  "sp_improvement_suggestions": "Share your suggestions here...",
  "sp_contact": "Share your email here...",
  "countries": [
    "uk"
  ],
  "maxItems": 10
}' |
apify call jungle_synthesizer/autouncle-multi-country-car-aggregator-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,jungle_synthesizer/autouncle-multi-country-car-aggregator-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/hSJnPAH2Z0txYUTYp/builds/gwfKFfj5tV8hbLGHu/openapi.json
