# Carvago Scraper — Pan-European Cars, Prices & Full Specs (`logiover/carvago-car-scraper`) Actor

Scrape Carvago, a pan-European car marketplace, in bulk: make, model, price, mileage, year, power, fuel, transmission, body type, CO2 emission, origin country, seller type and 15 more columns. Any search URL. No login, no API key.

- **URL**: https://apify.com/logiover/carvago-car-scraper.md
- **Developed by:** [Logiover](https://apify.com/logiover) (community)
- **Categories:** E-commerce, AI, Agents
- **Features:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

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

## Carvago Scraper — Pan-European Cars, Prices & Full Specs

Scrape **Carvago**, Europe's largest car marketplace, in bulk — **no login, no API key, no browser**. Point the Actor at any category or result page and it walks the pages, parses every card into flat, sortable columns, and saves rows as it goes.

> **30 columns per row** · thousands of rows per run · numeric prices, not strings · JSON, CSV, Excel or API · pay only for the rows you keep.

***

### Why this Carvago scraper

Carvago publishes everything a buyer needs on the result page — but as prose, inside a card, behind pagination. Reading it at any useful scale by hand is not realistic, and copy-paste gives you text where you need numbers.

This Actor turns those pages into a table. **`price` is a number**, not a formatted string. Location, seller and vehicle specs are their own columns instead of one blob. That is the difference between data you can pivot on and data you have to clean first.

It is built on the same engine as the rest of this fleet, which means three things you only notice when they are missing:

- **It respects the clock.** Every run carries a time budget and saves rows continuously, so a slow page never costs you the whole run.
- **One bad page does not end the crawl.** An unreachable page is retried, then skipped and logged — not treated as the end of the listing.
- **It says what it did.** Row counts, skipped pages and stop reasons all appear in the log, so a short run is always explainable.

***

### What you get

#### Pan-European price intelligence with full specs

Carvago aggregates from dealerships across Europe. `price`, `powerKw`, `powerHp`, `co2Emission`, `fuelConsumption` and `mileage` are all numeric — ready for cross-border comparison without reformatting.

#### Origin and location tracking

Every car has `originCountry`, `locationCity` and `locationCountry` as separate columns. Map where cars come from versus where they sit now to study cross-border trade flows.

#### Dealer vs. private seller analysis

`sellerType` splits Dealership from Private. Filter for one or the other and compare pricing, mileage and age distributions to quantify the dealer premium.

#### Environmental and efficiency analysis

`co2Emission` and `fuelConsumption` let you filter or rank by environmental impact. Combine with `fuel` and `bodyType` to find the most efficient cars in a specific segment.

***

### Input

| Field | Type | What it does |
|---|---|---|
| `startUrl` | string | Any Carvago category or result URL. The Actor paginates from here. |
| `maxResults` | integer | Stop after this many rows (default 200). |
| `proxyConfiguration` | object | Apify Proxy settings. The default is fine. |

> **Note:** Carvago embeds every filter in the URL. Copy any search or filter result page URL and paste it as the start URL.

#### Example input

```json
{
  "startUrl": "https://www.carvago.com/cars",

  "maxResults": 200,
  "proxyConfiguration": { "useApifyProxy": true }
}
```

***

### Output

One row per listing, 30 columns:

| Column | Type | Description |
|---|---|---|
| `listingId` | string | Carvago internal car ID. |
| `title` | string | Make, model and trim headline. |
| `listingUrl` | string | Canonical listing page on Carvago. |
| `make` | string | Car manufacturer. |
| `model` | string | Car model family. |
| `price` | number | Asking price in the listing currency. |
| `currency` | string | Price currency code (EUR, PLN, CZK, etc.). |
| `mileage` | number | Odometer reading in kilometres. |
| `year` | number | First registration year. |
| `powerKw` | number | Engine power in kilowatts. |
| `powerHp` | number | Engine power in horsepower. |
| `fuel` | string | Fuel type: Petrol, Diesel, Electric, Hybrid, LPG or CNG. |
| `transmission` | string | Manual or Automatic. |
| `bodyType` | string | Body style: Sedan, Estate car, SUV / Off-road, Hatchback, etc. |
| `color` | string | Exterior color. |
| `condition` | string | Used, Demonstration car, etc. |
| `seats` | number | Number of seats. |
| `co2Emission` | number | CO2 emission in grams per kilometre. |
| `fuelConsumption` | number | Combined fuel consumption. |
| `owners` | number | Number of previous owners. |
| `originCountry` | string | Country where the car was first registered. |
| `locationCity` | string | Seller city. |
| `locationCountry` | string | Country where the car is physically located. |
| `sellerType` | string | Dealership or Private. |
| `vin` | string | Vehicle identification number when available. |
| `imageUrl` | string | First listing photo. |
| `externalUrl` | string | Original listing URL on the source site. |
| `country` | string | Always International. |
| `source` | string | Always carvago. |
| `scrapedAt` | string | ISO timestamp of collection. |

#### Example row

```json
{
  "listingId": "…",
  "title": "…",
  "listingUrl": "…",
  "make": "…",
  "model": "…",
  "price": 0,
  "currency": "…",
  "mileage": 0,
  "year": 0,
  "powerKw": 0,
  "powerHp": 0,
  "fuel": "…",
  "transmission": "…",
  "bodyType": "…",
  "color": "…",
  "condition": "…",
  "seats": 0,
  "co2Emission": 0,
  "fuelConsumption": 0,
  "owners": 0,
  "originCountry": "…",
  "locationCity": "…",
  "locationCountry": "…",
  "sellerType": "…",
  "vin": "…",
  "imageUrl": "…",
  "externalUrl": "…",
  "country": "…",
  "source": "…",
  "scrapedAt": "…"
}
```

Export from the Apify Console as **JSON, CSV, Excel, XML or RSS**, or pull it straight from the [Dataset API](https://docs.apify.com/api/v2#/reference/datasets/item-collection/get-items).

***

### How to use it

1. Open the Actor and paste a Carvago URL into **Category or listing URL**.
2. Set **Maximum results** to how many rows you want.
3. Click **Start**. Rows appear in the dataset while the run is still going.
4. Export, or schedule the run daily and diff the results to track price moves.

You can also run it from the [Apify API](https://docs.apify.com/api/v2), the [JavaScript client](https://docs.apify.com/api/client/js/) or the [Python client](https://docs.apify.com/api/client/python/), and wire the output into Google Sheets, Zapier, Make or your own warehouse.

***

### Frequently asked questions

**Do I need a Carvago account?**

No. All data comes from public search result pages — no login, no API key.

**Which countries does Carvago cover?**

Carvago aggregates from dealerships across Germany, Czech Republic, Poland, Austria, France, Italy and more. The `locationCountry` column tells you where each car is.

**What does `externalUrl` contain?**

The original listing URL on the source site (e.g. AutoScout24, mobile.de). Useful for cross-referencing or accessing the full dealer page.

**What does `condition` contain?**

Values include Used, Demonstration car, and others as classified by Carvago.

**Which currencies appear?**

EUR for most listings, but also PLN, CZK, HUF and others depending on the seller country. The `currency` column tells you which.

**How accurate is `fuelConsumption`?**

It is the combined consumption figure in litres per 100 km as published by the manufacturer. Null when Carvago does not have it.

**How much does it cost?**

You pay per row kept (see the Pricing tab); there are no separate Apify platform fees to calculate. A 1,000-row run is inexpensive; run it on a schedule and you have a continuous price feed for the cost of a coffee.

**Is scraping Carvago legal?**

This Actor reads only publicly available pages — the same ones anyone can open in a browser — and collects no personal data beyond the seller display name that Carvago itself publishes next to each listing. You are responsible for how you use the output, including compliance with Carvago's terms and with data-protection law such as the GDPR. If in doubt, take legal advice.

***

### Related Actors

Browse the rest of the fleet for country marketplace, classifieds, property and company-registry scrapers covering more than eighty countries.

***

### 🤖 AI Agents, MCP & RAG Integration

**Carvago Scraper** works natively as an on-demand data tool for AI assistants and autonomous workflows.

Connect this Actor directly to **Apify AI**, **Claude Desktop**, **Cursor**, **VS Code**, **Windsurf**, **LangChain**, or **LlamaIndex** via the official **Apify MCP Server** — no custom wrapper code needed:

```json
{
  "mcpServers": {
    "apify": {
      "type": "http",
      "url": "https://mcp.apify.com?tools=logiover/carvago-car-scraper"
    }
  }
}
```

- **Schema-typed inputs & outputs:** Clean JSON records with explicit `.actor/input_schema.json` and `.actor/output_schema.json` definitions so LLM agents infer parameters and parse fields accurately without HTML noise.
- **Bounded & predictable runs:** Built-in volume caps and pay-per-result budget guards prevent runaway agent tool loops.
- **RAG & automation ready:** Stream run datasets straight into vector stores, n8n, Make, Zapier, or webhook pipelines.

### 💬 Support, Issues & Reviews

Found a broken column or a site change? Open an issue on the Actor's **Issues** tab and it will be looked at. This Actor is actively maintained — see the Changelog for its history.

***

*Carvago is a trademark of its respective owner. This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Carvago.*

- **Bug reports & target-site changes:** Hit an unexpected empty result or selector change? [Open a ticket in the Issues tab](https://apify.com/logiover/carvago-car-scraper/issues) with your **Run ID** or sample input — we actively monitor issues and ship fixes fast.
- **Feature & field requests:** Need an additional data attribute or filter? [Request it in the Issues tab](https://apify.com/logiover/carvago-car-scraper/issues).
- **Enjoying this Actor?** If it saved you engineering time, please consider leaving an honest [review on Apify Store](https://apify.com/logiover/carvago-car-scraper/reviews) or bookmarking [logiover/carvago-car-scraper](https://apify.com/logiover/carvago-car-scraper) — organic developer feedback helps others discover reliable tools and keeps maintenance prioritized.

***

### Use cases

- Export car listings in bulk and analyse them in a spreadsheet or database.
- Track how the data changes over time by scheduling repeat runs.
- Feed car listings into a dashboard, CRM or internal tool through the Apify API.
- Build a research dataset without writing or maintaining a scraper.
- Monitor Carvago for new entries and alert your team when they appear.

### Related scrapers

Other Actors from the same collection:

- [AutoTrader.co.za](https://apify.com/logiover/autotrader-za-car-scraper)
- [Nettiauto](https://apify.com/logiover/nettiauto-car-scraper)
- [Mashina.kg](https://apify.com/logiover/mashina-kg-car-scraper)
- [AutoScout24](https://apify.com/logiover/autoscout24-scraper)

### Carvago scraping — frequently asked questions

#### Do I need a Carvago API key, account or login?

No. This Actor reads publicly available pages and feeds, so there is nothing to register for and no credentials to manage.

#### How do I export Carvago data to CSV, Excel, JSON or Google Sheets?

Open the **Storage** tab after a run and pick the format you want — CSV, Excel, JSON, XML or an HTML table. For Google Sheets, Airtable or a database, use the dataset URL or the Apify API so the sheet refreshes itself on every run.

#### Can I schedule this Carvago scraper to run daily or hourly?

Yes. Use the **Schedules** tab and pick a cadence. Daily is enough for most tracking work; pick hourly only if the vehicle listings you care about really do change that fast.

#### How many vehicle listings can I get, and what does it cost?

See the volume section above for a measured figure. Billing is per result, so you pay for the rows you actually receive and a run that finds nothing costs nothing.

#### Is scraping Carvago legal?

This Actor collects only information that Carvago publishes publicly. It does not log in, does not defeat access controls and does not touch private data. You remain responsible for how you use the output, including under GDPR and similar rules where personal data is involved.

#### What happens if Carvago blocks the run or changes its layout?

A refused exit IP is swapped for a fresh one within a quarter of a second and retried, and rate limiting is waited out rather than fought. If nothing gets through, the run **fails with the reason** instead of reporting success with zero rows — so an empty result always means "no matches", never "the source would not answer".

#### Can I use this with an AI agent, LangChain or an MCP client?

Yes. The Actor is callable over the Apify API and through Apify's MCP server, so an agent can run it and read the dataset back as a tool call.

### Legal and compliance

This Actor collects publicly available information from Carvago only. It does not log in, does not circumvent access controls, and collects no private data. You are responsible for using the output lawfully, including under GDPR and comparable regimes where the rows contain personal data, and for respecting Carvago's terms where they apply to you.

### 📝 Changelog

#### 2026-11-14

- Verified live high-volume benchmark (2026-11-14): extracted **650** structured records in **78.8s** on the production build.
- Runtime & reliability improvements: updated Next.js searchResults.items schema extraction (price_information, string catalog_features, images).

#### 2026-11-11

- Added reliable terminal run status telemetry and structured Apify AI / MCP Server (`mcp.apify.com`) tool configuration.
- Added direct Issues & Reviews support links and refreshed live maintenance verification.

#### 2026-11-01

- Monthly health check (2026-11-01): a live run on the current build completed successfully and returned data. Input options, output fields and pricing are unchanged.
- README pricing text corrected: platform usage is included in the per-result price, with no separate platform fees to calculate.

#### 2026-10-15

- The prefilled example for `maxResults` is now 58 (was 104), so a first run finishes in about a minute and a half.
- The prefilled example for `maxResults` is now 104 (was 200), so a first run finishes in about a minute and a half.
- A run that reaches its maximum cost per run now stops cleanly with its results saved and a status message, instead of ending as aborted.
- A proxy group your account cannot use no longer stops the run at start-up; it falls back to the default Apify Proxy.
- Runs with a short timeout (API and AI-agent calls) now finish inside it with what they collected, instead of being cut off.
- Memory is managed within the run's own limit, which removes a rare out-of-memory crash on large pages.

#### 2026-09-23

- Fleet-wide quality audit. Verified end to end against live data and re-checked the input schema, the output columns and the run configuration.
- Output verified on a live run: 50 row(s) across 30 columns, 92.3% of cells populated.
- Run reliability reviewed: 100.0% of public runs succeeded in the last 30 days.
- Input schema, output schema and pricing configuration reviewed.

#### 2026-09-07

- Initial release. Scrapes Carvago result pages into 30 flat columns, with numeric prices, continuous saving and a per-run time budget.
- Verified end-to-end against live Carvago pages through Apify Proxy: 20 rows per page, pagination confirmed, and every column checked for fill rate.

# Changelog

This Actor's version history is a separate document: https://apify.com/logiover/carvago-car-scraper/changelog.md

# Actor input Schema

## `startUrl` (type: `string`):

Any Carvago category or result URL. The Actor walks its pages from here. Example: https://www.carvago.com/cars

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

Stop after this many rows. The Actor walks pages until the target is met, the listing runs out, or the run's time budget is spent.

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

Carvago serves plain HTML; the default Apify Proxy is enough.

## Actor input object example

```json
{
  "startUrl": "https://www.carvago.com/cars",
  "maxResults": 58,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `results` (type: `string`):

Dataset with one row per Carvago listing.

# 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 = {
    "startUrl": "https://www.carvago.com/cars",
    "maxResults": 58,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("logiover/carvago-car-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 = {
    "startUrl": "https://www.carvago.com/cars",
    "maxResults": 58,
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("logiover/carvago-car-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 '{
  "startUrl": "https://www.carvago.com/cars",
  "maxResults": 58,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call logiover/carvago-car-scraper --silent --output-dataset

```

## MCP server setup

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