# Porsche Configurator Scraper (`rastriq/porsche-configurator-scraper`) Actor

- **URL**: https://apify.com/rastriq/porsche-configurator-scraper.md
- **Developed by:** [Rastriq — Structured data from the world](https://apify.com/rastriq) (community)
- **Categories:** Developer tools, E-commerce, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.00 / 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.

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

## Porsche EU Configurator Scraper

Extract official Porsche list prices, model years and configuration options from the Porsche Car Configurator across 34 European markets. Porsche EU Configurator Scraper turns the public configurator into clean, normalized records for cross-market price comparison, competitive monitoring and automotive pricing dashboards.

> 🚀 **Try it free**: new Apify accounts get monthly free platform credit, enough to test Porsche EU Configurator Scraper on several markets.

### 📌 What is Porsche EU Configurator Scraper?

**Porsche EU Configurator Scraper** is a Porsche configurator scraper that reads the official Porsche Car Configurator, the same public pages any visitor sees, and returns structured price data for 911, 718, Taycan, Panamera, Macan and Cayenne (every model and derivative published in each market). No account, login or API key is needed.

Use Porsche EU Configurator Scraper to:

- 🔍 **Compare Porsche prices across Europe**: see how the same model and trim is priced in each market and currency
- 📊 **Track price changes over time**: schedule daily or weekly runs and keep a price history
- 🧩 **Benchmark equipment and options**: compare which options are offered and what they cost per market
- 🏁 **Monitor competitors**: feed Porsche prices into your pricing dashboards next to other brands

The Apify platform adds **scheduling**, **monitoring**, **API access** and **integrations** (Make, Zapier, Google Sheets, webhooks) on top of Porsche EU Configurator Scraper.

### 📋 What data does Porsche EU Configurator Scraper extract?

Each record is one model/trim in one market:

|  |  |
|---|---|
| 🚗 Model and variant | 📅 Model year |
| 🌍 Country and locale | 💰 Base price incl. VAT |
| 💱 Currency (ISO 4217) | ⛽ Fuel type (ice / phev / bev) |
| 🧩 Priced options with name and price | 🔢 Options count |
| 🏷️ Porsche order type code | 🔗 Public configurator link |
| ✅ Data quality flag | 🕒 Scrape timestamp |

`base_price` is the list price of the model including VAT in the local currency. `fuel_type` is derived from the model name and is `null` when unknown. `body_type` is not published by the source and is always `null`.

### 🚀 How to use Porsche EU Configurator Scraper

1. **Create a free Apify account** at [apify.com](https://apify.com)
2. **Open Porsche EU Configurator Scraper** in Apify Store and click **Try for free**
3. **Select your markets** in the `countries` field, or leave it empty to scrape all of them
4. **Click Start** and wait for the run to finish
5. **Download the data** as JSON, CSV, Excel or XML, or fetch it through the Apify API
6. **Schedule it** (optional) to collect Porsche prices automatically every day or week

### ⚙️ Input parameters

| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| `countries` | string\[] | ❌ | all 34 markets | Market locales to scrape, e.g. `de-DE`, `es-ES`, `fr-CH`. Leave empty for all markets. |
| `maxModelsPerMarket` | integer | ❌ | `12` | Maximum number of models per market. `0` = every model (about 80 per market, a run of more than one hour). |
| `maxConcurrency` | integer | ❌ | `5` | Parallel requests (1–20). A global limit of about 30 requests per minute applies. |
| `proxyConfiguration` | object | ❌ | no proxy | Optional proxy settings. Not required. |

**Example input:**

```json
{
  "countries": [
    "de-DE",
    "es-ES"
  ],
  "maxModelsPerMarket": 12
}
```

### 🌍 Supported markets

Porsche EU Configurator Scraper covers 34 market locales in 33 countries: 🇩🇪 Germany · 🇦🇹 Austria · 🇨🇭 Switzerland (DE/FR/IT) · 🇬🇧 United Kingdom · 🇫🇷 France · 🇪🇸 Spain · 🇮🇹 Italy · 🇳🇱 Netherlands · 🇧🇪 Belgium (NL/FR) · 🇵🇹 Portugal · 🇵🇱 Poland · 🇨🇿 Czechia · 🇸🇰 Slovakia · 🇭🇺 Hungary · 🇷🇴 Romania · 🇧🇬 Bulgaria · 🇬🇷 Greece · 🇭🇷 Croatia · 🇸🇮 Slovenia · 🇪🇪 Estonia · 🇱🇻 Latvia · 🇱🇹 Lithuania · 🇩🇰 Denmark · 🇸🇪 Sweden · 🇳🇴 Norway · 🇫🇮 Finland · 🇮🇪 Ireland · 🇨🇾 Cyprus · 🇲🇹 Malta · 🇱🇺 Luxembourg · 🇹🇷 Turkey.

Markets are selected by locale (for example `de-DE`, `fr-CH`). Iceland is not offered because Porsche does not publish configurator prices there. Turkey currently exposes public prices for only a few models.

### 📦 Output example

A real record from Porsche EU Configurator Scraper (options shortened):

```json
{
  "brand": "Porsche",
  "model": "Cayenne S",
  "variant": "Cayenne S",
  "model_year": "2027",
  "country": "DE",
  "locale": "de-DE",
  "base_price": 122800,
  "currency": "EUR",
  "fuel_type": "ice",
  "body_type": null,
  "source_url": "https://configurator.porsche.com/de-DE/mode/model/2027/9YABJ1",
  "scraped_at": "2026-10-04T22:56:07.107803+00:00",
  "options_count": 200,
  "options": [
    {
      "name": "21-Zoll Cayenne Exclusive Design Winterkomplettradsatz lackiert in Schwarz (hochglanz)",
      "price": 7300.64,
      "currency": "EUR"
    },
    {
      "name": "21-Zoll Cayenne Exclusive Design Winterkomplettradsatz",
      "price": 7300.64,
      "currency": "EUR"
    }
  ],
  "order_type": "9YABJ1",
  "data_quality": "ok"
}
```

`data_quality` flags questionable records instead of dropping them: `ok`, `no_price` (no public price for that configuration, `base_price` is null) or `currency_unexpected` (currency differs from the market's usual one). You decide whether to keep or filter them.

**Run status:** the run status message starts with `OK` when every requested market returned data, `Partial` when some markets returned nothing (with the reason for each one), and the run ends as **FAILED** when no data at all could be extracted, so you are never charged for a silent empty run.

### 💰 How much does it cost to scrape Porsche prices?

Porsche EU Configurator Scraper uses **pay-per-event** pricing: **$0.01 per result** plus **$0.01 per run start**. Platform compute is included.

| Scope | Results | Approx. time | Approx. cost |
|---|---|---|---|
| 1 market, 12 models | ~12 | under a minute | ~$0.07 |
| All 34 markets, 12 models per market | ~392 | ~15 minutes | ~$1.96 |

> 💡 **How much does Porsche EU Configurator Scraper cost per month?** A weekly run over all markets costs about $8.45 per month. Set a maximum cost per run in the run options to keep spending predictable.

### 🔗 Related Rastriq actors

More automotive price data from the [Rastriq portfolio](https://apify.com/rastriq):

| Actor | What it extracts |
|---|---|
| [Mercedes-Benz Catalog & Configurator Scraper](https://apify.com/rastriq/mercedes-benz-catalog) | Mercedes-Benz catalog and configurator prices |
| [Audi Catalog & Price Tracker](https://apify.com/rastriq/audi-catalog-scraper) | Audi catalog and list prices across markets |
| [BMW Europe Price Tracker](https://apify.com/rastriq/bmw-europe-price-tracker) | BMW list prices and configurations across European markets |

### ❓ Frequently Asked Questions

#### Is it legal to scrape the Porsche configurator?

Porsche EU Configurator Scraper only reads **publicly available** configurator pages, without logging in, and applies conservative rate limits so it does not overload the source. You are responsible for making sure your use case complies with applicable laws and the website's terms of use. See Apify's guide on [the legality of web scraping](https://blog.apify.com/is-web-scraping-legal/).

#### Do I need a Porsche account or an API key?

No. Porsche EU Configurator Scraper works with public data only.

#### Do I need a proxy?

No. Runs work without a proxy. Enable the proxy setting only if you see connection errors from your location.

#### How fresh is the data?

Every record carries `scraped_at`. Prices reflect the public configurator at the moment of the run; schedule runs to keep a time series.

#### Why is `maxModelsPerMarket` set to 12 by default?

Porsche publishes around 80 models and derivatives per market. Scraping all of them in all 34 markets takes more than an hour. The default of 12 keeps runs fast and affordable; set it to `0` when you need the complete lineup.

#### My run failed or a market is missing. What should I do?

Check the run status message: it lists each market that returned no data and why. If the problem persists, open an issue in the **Issues** tab with the run ID and your input.

# Actor input Schema

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

Markets to scrape. <b>Leave empty to scrape all 34 markets.</b><br>Each market returns its own local prices, including VAT.

## `maxConcurrency` (type: `integer`):

Maximum parallel requests. <br>The actor also applies a global rate limit of about 30 requests per minute to stay polite with the source.

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

Optional. The source does not require a proxy; enable one only if you need a specific exit IP.

## `maxModelsPerMarket` (type: `integer`):

Maximum number of models per market. Default 12 keeps runs fast; set 0 to scrape every model (about 80 per market, more than one hour for all markets).

## Actor input object example

```json
{
  "countries": [
    "de-DE"
  ],
  "maxConcurrency": 5,
  "proxyConfiguration": {
    "useApifyProxy": false
  },
  "maxModelsPerMarket": 12
}
```

# 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 = {
    "countries": [
        "de-DE"
    ],
    "maxModelsPerMarket": 12
};

// Run the Actor and wait for it to finish
const run = await client.actor("rastriq/porsche-configurator-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 = {
    "countries": ["de-DE"],
    "maxModelsPerMarket": 12,
}

# Run the Actor and wait for it to finish
run = client.actor("rastriq/porsche-configurator-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 '{
  "countries": [
    "de-DE"
  ],
  "maxModelsPerMarket": 12
}' |
apify call rastriq/porsche-configurator-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,rastriq/porsche-configurator-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/gHGLwUInD1xb1pDqF/builds/POq1t5SFn3N0CJk6W/openapi.json
