# Car Data Scraper: specs, performance & technical data (`mrbridge/car-data-scraper`) Actor

Extract consolidated car specs and performance for any brand or model, aggregated from four sources (auto-data, ultimatespecs, carperformancedata, zeperfs) into one deduplicated row per variant, with per-field source tracing and conflict flags. Export to JSON, CSV or Excel.

- **URL**: https://apify.com/mrbridge/car-data-scraper.md
- **Developed by:** [MrBridge](https://apify.com/mrbridge) (community)
- **Categories:** Automation, Developer tools, AI
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 car-data

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 a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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

## Car Data Scraper

Car Data Scraper builds one consolidated technical and performance record per car variant by aggregating four automotive reference sources (auto-data.net, ultimatespecs.com, carperformancedata.com and zeperfs.com). Ask for a whole brand or a list of models and get a clean, deduplicated row for every engine variant, with each value traced back to the source it came from.

Type `Audi` (or a list like `Audi RS3`, `Audi TT`) and get back one row per variant with power, torque, 0-100 km/h, top speed, weight, dimensions, fuel economy, gearbox, brakes and tyres, plus a per-field source tag and a conflict flag when two sources disagree. A full brand pull exports straight to JSON, CSV or Excel, no API key and no HTML parsing on your side.

### What is Car Data Scraper?

Car Data Scraper resolves a brand or model into its full list of engine variants, scrapes each one from every enabled source, then matches and merges the results into a single consolidated row per physical variant. auto-data.net acts as the backbone catalog; the other sources enrich and cross-check its data.

The consolidated model is built so you can trust and audit every figure: each field carries the source it came from, competing values from other sources are kept as alternatives, and a `hasConflict` flag is raised when numeric values diverge beyond a built-in tolerance.

Car Data Scraper supports the following:

* **Scrape a whole brand**: one entry like `Audi` expands to every model, generation and engine variant.
* **Scrape a model list**: `Audi TT` expands to all TT generations and engine variants; mix several models in one run.
* **Consolidate across four sources**: power, torque, acceleration, top speed, dimensions, weight, fuel economy, transmission and chassis, merged per variant.
* **Trace and reconcile every value**: per-field source tag, alternative values, and a conflict flag with the maximum deviation between sources.

#### What data can I extract with Car Data Scraper?

| Group | Example fields |
|---|---|
| ⚡ Performance | 0-100 km/h, 0-60 mph, quarter mile, top speed, power-to-weight, peak G |
| 🔧 Engine | power (hp / kW), torque, displacement, cylinders, aspiration, fuel type |
| ⚙️ Transmission | drive wheels, gearbox type, number of gears |
| 📏 Dimensions | length, width, height, wheelbase, kerb weight, drag coefficient |
| ⛽ Fuel economy | combined / urban / extra-urban consumption, CO2, fuel tank |
| 🛞 Chassis | front / rear brakes, tyres, suspension, steering |

#### How can I use data scraped from car reference sites?

Build pricing and residual-value models, power a vehicle comparison or configurator, feed a performance database or enthusiast site, enrich a dealer or marketplace catalog, or run engineering and market research across an entire brand history. Because the output is one tidy row per variant, it drops straight into a spreadsheet, a database or a BI tool.

### How to use Car Data Scraper

Here's how to use Car Data Scraper in 5 steps:

1. Create a free [Apify account](https://apify.com/sign-up?fpr=mrbridge) using your email.
2. Open [Car Data Scraper](https://apify.com/mrbridge/car-data-scraper?fpr=mrbridge).
3. Pick the **Input mode** (Brand or Model names list), then add a brand (for example `Audi`) or a list of models (for example `Audi TT`), and optionally set a year range or a max items cap.
4. Click the **Start** button and wait for the data to be extracted.
5. Download your data in JSON, XML, CSV, Excel or HTML.

### How much will scraping car data cost you?

Car Data Scraper uses a **pay-per-event** pricing model. You are charged once per car data record successfully emitted. Failed fetches, parse errors and unresolved variants are returned as visible error rows but are never charged.

See the [Pricing tab](https://apify.com/mrbridge/car-data-scraper/pricing?fpr=mrbridge) for the full price table by Apify subscription tier (Free, Starter, Scale, Business), where higher tiers unlock automatic discounts.

You can cap the spend of any single run from the Apify Console with `ACTOR_MAX_TOTAL_CHARGE_USD`, and the `maxItems` input gives you a hard limit on how many variants are emitted.

As a rule of thumb, a single-model run (a few dozen variants) costs roughly $0.10 to $0.30, and a full brand a few dollars; the exact figure depends on your subscription tier.

### ⬇️ Input

The input is a JSON object specifying which brands or models to scrape, plus optional filters and source settings. See the [Input tab](https://apify.com/mrbridge/car-data-scraper/input-schema?fpr=mrbridge) for the full schema with all fields and defaults.

#### Car Data Scraper input examples

Scrape a list of specific models (set `inputMode` to `models`):

```json
{
  "inputMode": "models",
  "models": ["Audi RS3", "Audi TT"],
  "yearMin": 2015,
  "maxItems": 200
}
````

Scrape a whole brand (set `inputMode` to `brand`):

```json
{
  "inputMode": "brand",
  "brand": "Audi",
  "maxItems": 500
}
```

Only the field matching `inputMode` is used; the other is ignored. Always set `inputMode` to match how you are targeting cars. Year bounds and an `excludeModels` filter are available under Advanced options.

### ⬆️ Output

Car Data Scraper stores results in a dataset, one car data record per row. Each numeric or text field is an object carrying its `value`, canonical `unit`, the `source` the reference value came from, and any `alternatives` from other sources. Error rows (carrying `_error: true`) are returned for visibility and are never charged.

For programmatic access in Python, Node.js or PHP, see the [Apify API reference](https://docs.apify.com/api/v2?fpr=mrbridge).

#### Sample output

A real row from an `Audi RS3` run, which returns 8 variants across four generations (8PA to 8Y). This one is consolidated from two sources: auto-data.net supplies the full spec sheet, and carperformancedata.com adds measured performance (quarter mile, peak G) and disagrees on the 0-60 mph time, which is kept as a `conflict` with both values. Each row carries flat summary columns (for easy browsing, filtering and spreadsheet export), a stable `canonicalVariantId`, a numeric `dedupeConfidence`, plus nested sections that keep the per-field source and alternative values.

```json
{
  "canonicalVariantId": "audi-rs3-sedan-2.5l-400hp-2021",
  "make": "Audi",
  "model": "RS3",
  "generation": "RS3 Sedan (8Y)",
  "modification": "2.5 TFSI (400 Hp) quattro S tronic",
  "yearStart": 2021,
  "yearEnd": 2024,
  "bodyType": "Sedan",
  "powerHp": 400,
  "torqueNm": 500,
  "zeroToHundredS": 3.8,
  "topSpeedKmh": 250,
  "engineCc": 2480,
  "cylinders": 5,
  "transmission": "automatic transmission S tronic",
  "driveType": "All wheel drive (4x4)",
  "curbWeightKg": 1575,
  "fuelConsumptionL100": 8.9,
  "co2GKm": 201,
  "sources": ["autodata", "carperformancedata"],
  "dedupeConfidence": 0.99,
  "scrapedAt": "2026-06-25T13:04:06.431Z",
  "engine": {
    "power_hp": { "value": 400, "unit": "hp", "source": "autodata", "alternatives": [{ "value": 401, "source": "carperformancedata" }] },
    "engine_code": { "value": "EA855 evo / DNWC", "source": "autodata" }
  },
  "performance": {
    "accel_0_100_kmh": { "value": 3.8, "unit": "s", "source": "autodata" },
    "accel_0_60_mph": { "value": 3.6, "unit": "s", "source": "autodata", "alternatives": [{ "value": 3.4, "source": "carperformancedata" }] },
    "quarter_mile_s": { "value": 11.7, "unit": "s", "source": "carperformancedata" },
    "peak_g": { "value": 0.982, "source": "carperformancedata" }
  },
  "sourcesDetail": [
    { "source": "autodata", "sourceUrl": "https://www.auto-data.net/en/audi-rs3-sedan-8y-2.5-tfsi-400hp-quattro-s-tronic-44004" },
    { "source": "carperformancedata", "sourceUrl": "https://carperformancedata.com/cars/37" }
  ],
  "flags": {
    "hasConflict": true,
    "conflicts": [{ "field": "accel_0_60_mph", "maxDeviationPct": 5.9, "values": [{ "value": 3.6, "source": "autodata" }, { "value": 3.4, "source": "carperformancedata" }] }],
    "matchConfidence": { "autodata": "exact", "carperformancedata": "exact", "ultimatespecs": "none", "zeperfs": "none" }
  }
}
```

Flat summary columns also include `fuelType`, `powerKw`, `valves`, `gears`, `lengthMm`, `widthMm`, `heightMm`, `wheelbaseMm`, `doors`, `seats` and more, each mirrored by a fully traced entry in the `engine`, `transmissionDetail`, `dimensions`, `fuelEconomy` and `chassis` sections.

### Benchmarks

A measured run on the current build, input `Audi RS3`:

- **8 variants** returned, one per RS3 generation from the 8PA (340 hp, 2011) to the 8Y facelift (400 hp, 2024), in **33 seconds** for about **$0.04**, with **0 errors**.
- The current-generation Sedan is cross-checked against carperformancedata.com, which adds a measured quarter mile and peak G and surfaces a 0-60 mph conflict (3.6 s vs 3.4 s) instead of silently picking one value.
- Every row carries a stable `canonicalVariantId` and, when a second source is merged, a numeric `dedupeConfidence` (0.99 on the cross-checked row).

Cross-source coverage depends on the model. Mainstream models match ultimatespecs.com and carperformancedata.com more often than niche performance variants such as the RS3, which ultimatespecs.com nests under the A3 line, so those stay single-source more often. A full-brand pull returns a couple hundred variants in a few minutes.

### Known limitations

- **Coverage varies by source.** auto-data.net is the backbone and is always present; ultimatespecs.com, carperformancedata.com and zeperfs.com enrich a variant only when they have it and are reachable. zeperfs.com is rate-limited and can be unavailable on a given run; when a source is unavailable it is logged and counted, not emitted as a data row, and the variant is still returned with whatever resolved.
- **Cross-source matching is fingerprint-based** (make, model, displacement, power, production years). Near-identical variants (facelifts, regional or market versions, AWD vs FWD, DIN vs SAE power ratings) can occasionally stay single-source or, more rarely, be matched too loosely. The `matchConfidence` and `sources` fields let you audit this on every row.
- **Figures are reported as published** by each source. Values are normalized to a canonical metric unit (each field carries its `unit`), but regional and market differences are not reconciled.
- **No market or region field.** The sources describe each variant by generation and chassis code (for example 8V or 8Y), not by sales market, so there is no reliable per-variant market or region signal to extract and the output does not carry one.
- **Source priority and the conflict tolerance are fixed** (auto-data, then ultimatespecs, then zeperfs, then carperformancedata; conflicts flagged at a built-in deviation tolerance), not per-run configurable.

### Frequently asked questions

#### How does Car Data Scraper work?

It resolves each requested brand or model into its full list of engine variants on auto-data.net (the backbone catalog), scrapes each variant from every enabled source, then matches records across sources by a fingerprint (make, model, displacement, power and production years) and merges them into one row, picking a reference value per field by a fixed source priority (auto-data, then ultimatespecs, then zeperfs, then carperformancedata).

#### Which sources does it cover?

Four: auto-data.net and ultimatespecs.com (full technical sheets), carperformancedata.com (acceleration and quarter-mile figures with original-source attribution) and zeperfs.com (European performance figures). auto-data.net is always enabled as the backbone; ultimatespecs.com and carperformancedata.com enrich by default. zeperfs.com is off by default (it is rate-limited and has stricter access terms).

#### What happens when two sources disagree?

The reference value is taken from the highest-priority source (a fixed order: auto-data, then ultimatespecs, then zeperfs, then carperformancedata), every other source's value is kept under `alternatives`, and a `hasConflict` flag plus the maximum deviation is recorded when numeric values differ beyond a built-in tolerance. Nothing is silently dropped.

#### Can I integrate Car Data Scraper with other apps?

Yes. Results can flow into Make, Zapier, n8n, Google Sheets, Looker Studio or Power BI through Apify's integrations, or be pulled directly with the Apify API.

#### Can I use Car Data Scraper as its own API?

Yes. Use `apify-client` for Node.js or Python to start runs and fetch the dataset. See the API tab on the Actor page.

#### Can I use Car Data Scraper via MCP?

Yes. Car Data Scraper can be accessed by AI assistants like Claude or ChatGPT through the Apify MCP server. Go to the **MCP tab** on the Actor page for setup, or connect to [mcp.apify.com](https://mcp.apify.com?fpr=mrbridge) and add Car Data Scraper as a tool.

#### Your feedback

We're always working on improving the performance of our Actors. So if you've got any technical feedback for Car Data Scraper or simply found a bug, please create an issue on the Actor's [Issues tab](https://apify.com/mrbridge/car-data-scraper/issues?fpr=mrbridge).

More free tools, scrapers, MCP servers and data studies from the same team: [mr-bridge.com](https://mr-bridge.com).

### Legal & responsible use

Car Data Scraper extracts vehicle technical specifications and measured performance figures, which are factual data, not personal data. It does not extract names, contact details or any private user information.

Each source has its own terms of use, and some restrict automated access or commercial reuse. For this reason zeperfs.com is disabled by default, and the input includes a rights-confirmation checkbox. Before enabling additional sources or using the output commercially, confirm that your use is permitted by each source you rely on.

We believe that scraping public factual data for ethical purposes is safe. You remain responsible for how you use the results and for complying with each source's terms and with the laws that apply to you. If you're unsure whether your use is legitimate, consult your lawyers. You can also read the Apify blog post on the [legality of web scraping](https://blog.apify.com/is-web-scraping-legal/?fpr=mrbridge).

# Actor input Schema

## `confirmRights` (type: `boolean`):

Each source (auto-data.net, ultimatespecs.com, carperformancedata.com, zeperfs.com) has its own terms of use; some restrict automated access or commercial reuse. By running this Actor you confirm you have the right to access the enabled sources and to use the data for your purpose.

## `inputMode` (type: `string`):

Choose what to scrape. 'Brand' uses the Brand menu below to scrape every model of one make. 'Model names list' uses the Models field below to scrape only the specific models you list. Both fields stay visible (Apify forms cannot hide fields), but only the one matching this choice is used.

## `brand` (type: `string`):

Pick a car brand to scrape. The Actor returns all its models and engine variants, consolidated across the enabled sources. Used only when Input mode is 'Brand'; to target specific models, set Input mode to 'Model names list' and use the Models field.

## `models` (type: `array`):

Specific models to scrape, one entry per model, ALWAYS written as 'Brand Model' with the make included. For example write 'Audi RS3', not 'RS3' on its own: a model typed without its brand is ignored. Each entry expands to all generations and engine variants for that model. Used only when Input mode is 'Model names list'.

## `yearMin` (type: `integer`):

Earliest production year to include (inclusive). Leave empty for no lower bound.

## `yearMax` (type: `integer`):

Latest production year to include (inclusive). Leave empty for no upper bound.

## `excludeModels` (type: `array`):

Blacklist filter: drop variants whose model name contains one of these strings (case-insensitive).

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

Maximum number of car data records to emit. Set to 0 to disable the cap. Useful for test runs or cost control.

## Actor input object example

```json
{
  "confirmRights": false,
  "inputMode": "brand",
  "brand": "Audi",
  "maxItems": 1000
}
```

# Actor output Schema

## `variants` (type: `string`):

Direct link to all dataset items produced by the run.

# 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 = {
    "brand": "Audi"
};

// Run the Actor and wait for it to finish
const run = await client.actor("mrbridge/car-data-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 = { "brand": "Audi" }

# Run the Actor and wait for it to finish
run = client.actor("mrbridge/car-data-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 '{
  "brand": "Audi"
}' |
apify call mrbridge/car-data-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Car Data Scraper: specs, performance & technical data",
        "description": "Extract consolidated car specs and performance for any brand or model, aggregated from four sources (auto-data, ultimatespecs, carperformancedata, zeperfs) into one deduplicated row per variant, with per-field source tracing and conflict flags. Export to JSON, CSV or Excel.",
        "version": "0.1",
        "x-build-id": "IeW67dUNZDSnZr7vR"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/mrbridge~car-data-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-mrbridge-car-data-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/mrbridge~car-data-scraper/runs": {
            "post": {
                "operationId": "runs-sync-mrbridge-car-data-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/mrbridge~car-data-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-mrbridge-car-data-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "confirmRights": {
                        "title": "I confirm I have the right to access these sources and use the data",
                        "type": "boolean",
                        "description": "Each source (auto-data.net, ultimatespecs.com, carperformancedata.com, zeperfs.com) has its own terms of use; some restrict automated access or commercial reuse. By running this Actor you confirm you have the right to access the enabled sources and to use the data for your purpose.",
                        "default": false
                    },
                    "inputMode": {
                        "title": "Input mode",
                        "enum": [
                            "brand",
                            "models"
                        ],
                        "type": "string",
                        "description": "Choose what to scrape. 'Brand' uses the Brand menu below to scrape every model of one make. 'Model names list' uses the Models field below to scrape only the specific models you list. Both fields stay visible (Apify forms cannot hide fields), but only the one matching this choice is used.",
                        "default": "brand"
                    },
                    "brand": {
                        "title": "Brand",
                        "enum": [
                            "212",
                            "Abarth",
                            "AC",
                            "Acura",
                            "Aeolus",
                            "Aion",
                            "Aistaland",
                            "AITO",
                            "Aiways",
                            "Aixam",
                            "Alfa Romeo",
                            "Alpina",
                            "Alpine",
                            "Anfini",
                            "Apollo",
                            "Appollen",
                            "Arcfox",
                            "Aria",
                            "Ariel",
                            "Aro",
                            "Artega",
                            "Asia",
                            "Aspark",
                            "Aston Martin",
                            "Astro",
                            "Audi",
                            "Aurus",
                            "Austin",
                            "Austin-Healey",
                            "Autobianchi",
                            "Avatr",
                            "B.Engineering",
                            "BAC",
                            "BAIC",
                            "Baltasar",
                            "Baltijas Dzips",
                            "Baojun",
                            "BAW",
                            "Bee Bee",
                            "BelGee",
                            "Bentley",
                            "Bertone",
                            "Bestune",
                            "Bisu",
                            "Bitter",
                            "Bizzarrini",
                            "Blonell",
                            "BMW",
                            "Bollinger",
                            "Bordrin",
                            "Borgward",
                            "Brabham",
                            "Bremach",
                            "Brilliance",
                            "Bristol",
                            "Bufori",
                            "Bugatti",
                            "Buick",
                            "BYD",
                            "Cadillac",
                            "Callaway",
                            "Campagna",
                            "Carbodies",
                            "Caterham",
                            "Cenntro",
                            "ChangAn",
                            "Changan Nevo",
                            "ChangFeng",
                            "Chery",
                            "Chevrolet",
                            "Chrysler",
                            "Citroen",
                            "Cizeta",
                            "Corbellati",
                            "Cupra",
                            "Czinger",
                            "Dacia",
                            "Dadi",
                            "Daewoo",
                            "DAF",
                            "Daihatsu",
                            "Daimler",
                            "Dallara",
                            "Dallas",
                            "Datsun",
                            "David Brown",
                            "DC",
                            "De Lorean",
                            "De Tomaso",
                            "Deepal",
                            "Denza",
                            "Derways",
                            "DeSoto",
                            "DFSK",
                            "Dodge",
                            "DongFeng",
                            "Doninvest",
                            "Donkervoort",
                            "Dorcen",
                            "DR",
                            "Drako",
                            "DS",
                            "e.GO",
                            "Eadon Green",
                            "Eagle",
                            "EBRO",
                            "Elaris",
                            "Elemental",
                            "EMC",
                            "Engler",
                            "Enovate",
                            "Epicland",
                            "EVO",
                            "Exeed",
                            "Fangchengbao",
                            "Farizon",
                            "FAW",
                            "Felino",
                            "Ferrari",
                            "Fiat",
                            "Firefly",
                            "Fisker",
                            "Fittipaldi",
                            "FOMM",
                            "Force Motors",
                            "Ford",
                            "Forthing",
                            "Foton",
                            "FSO",
                            "Fulwin",
                            "Fuqi",
                            "GAZ",
                            "Geely",
                            "Genesis",
                            "Geo",
                            "Geometry",
                            "GFG Style",
                            "Ginetta",
                            "Gleagle",
                            "GMC",
                            "Gordon Murray",
                            "Great Wall",
                            "Hafei",
                            "Haima",
                            "Haval",
                            "Hawtai",
                            "Hennessey",
                            "Hindustan",
                            "HiPhi",
                            "Hispano Suiza",
                            "Holden",
                            "Honda",
                            "Hongqi",
                            "HSV",
                            "HuangHai",
                            "Hummer",
                            "Hurtan",
                            "Hycan",
                            "Hyper",
                            "Hyptec",
                            "Hyundai",
                            "iCAR",
                            "iCAUR",
                            "ICH-X",
                            "ICKX",
                            "IM",
                            "IMSA",
                            "INEOS",
                            "Infiniti",
                            "Innocenti",
                            "Invicta",
                            "Invicta Electric",
                            "Iran Khodro",
                            "Irmscher",
                            "Isdera",
                            "IsoRivolta",
                            "Isuzu",
                            "Itala",
                            "Italdesign",
                            "Iveco",
                            "Izh",
                            "JAC",
                            "Jaecoo",
                            "Jaguar",
                            "Jeep",
                            "Jetour",
                            "Jetta",
                            "Jiangling",
                            "JMEV",
                            "JY",
                            "Kaiyi",
                            "Karlmann King",
                            "Karma",
                            "KGM",
                            "Kia",
                            "Kimera",
                            "Koenigsegg",
                            "KTM",
                            "Lada",
                            "Lamborghini",
                            "Lancia",
                            "Land Rover",
                            "Landwind",
                            "LDV",
                            "Leapmotor",
                            "Lepas",
                            "LEVC",
                            "Lexus",
                            "Li",
                            "Ligier",
                            "Lincoln",
                            "Linktour",
                            "Lister",
                            "Livan",
                            "Lordstown",
                            "Lotus",
                            "LTI",
                            "LUAZ",
                            "Lucid",
                            "Luxeed",
                            "Luxgen",
                            "Lvchi",
                            "Lynk & Co",
                            "M-Hero",
                            "Maextro",
                            "Mahindra",
                            "Marcos",
                            "Maruti",
                            "Maserati",
                            "Maxus",
                            "Maybach",
                            "Mazda",
                            "Mazzanti",
                            "MCC",
                            "McLaren",
                            "Mega",
                            "Melkus",
                            "Mercedes-Benz",
                            "Mercury",
                            "Metrocab",
                            "MG",
                            "Micro",
                            "Milan",
                            "Minelli",
                            "MINEmobility",
                            "Mini",
                            "Mitsubishi",
                            "Mitsuoka",
                            "Moke",
                            "Monte Carlo",
                            "Morgan",
                            "Morris",
                            "Moskvich",
                            "Munro",
                            "MW Motors",
                            "Neta",
                            "NIO",
                            "Nissan",
                            "Noble",
                            "O.S.C.A.",
                            "Oldsmobile",
                            "Omoda",
                            "Onvo",
                            "Opel",
                            "ORA",
                            "Pagani",
                            "Panoz",
                            "Pariss",
                            "Paykan",
                            "Perodua",
                            "Peugeot",
                            "Picasso",
                            "Pininfarina",
                            "Plymouth",
                            "Polaris",
                            "Polestar",
                            "Pontiac",
                            "Porsche",
                            "Praga",
                            "Premier",
                            "Proton",
                            "PUCH",
                            "Puma",
                            "Puritalia",
                            "Qiantu",
                            "Qoros",
                            "Qvale",
                            "RAM",
                            "Ravon",
                            "Reliant",
                            "Renault",
                            "Renault Samsung",
                            "Riddara",
                            "Rimac",
                            "Rinspeed",
                            "Rivian",
                            "Roewe",
                            "Rolls-Royce",
                            "Ronart",
                            "Rover",
                            "Rox",
                            "RUF",
                            "Saab",
                            "SAIC",
                            "Saleen",
                            "Santana",
                            "Saturn",
                            "Sbarro",
                            "SCG",
                            "Scion",
                            "Scout",
                            "Seat",
                            "SeAZ",
                            "Seres",
                            "ShuangHuan",
                            "Silence",
                            "Sin Cars",
                            "Skoda",
                            "Skywell",
                            "SMA",
                            "Smart",
                            "Sono Motors",
                            "Sony",
                            "Soueast",
                            "Spectre",
                            "Sportequipe",
                            "Spyker",
                            "Spyros Panopoulos",
                            "SsangYong",
                            "SSC",
                            "Stelato",
                            "Subaru",
                            "Suda",
                            "Suzuki",
                            "SWM",
                            "TagAz",
                            "Talbot",
                            "Tank",
                            "Tata",
                            "Tatra",
                            "Techrules",
                            "Tenet",
                            "Tesla",
                            "Tianma",
                            "Tianye",
                            "Tiger",
                            "Tofas",
                            "Togg",
                            "Tonggong",
                            "Toyota",
                            "Trabant",
                            "Tramontana",
                            "Triumph",
                            "Trumpchi",
                            "TVR",
                            "UAZ",
                            "Uniti",
                            "Vanderhall",
                            "Vauxhall",
                            "Vector",
                            "Vencer",
                            "Venturi",
                            "Vespa",
                            "VinFast",
                            "Volga",
                            "Volkswagen",
                            "Volvo",
                            "Voyah",
                            "VUHL",
                            "VW-Porsche",
                            "W Motors",
                            "Wartburg",
                            "Weltmeister",
                            "Westfield",
                            "WEY",
                            "Wiesmann",
                            "Xiaomi",
                            "Xin Kai",
                            "XPENG",
                            "Yangwang",
                            "Zacua",
                            "Zastava",
                            "ZAZ",
                            "Zeekr",
                            "Zenvo",
                            "Zhidou",
                            "ZIL",
                            "Zotye",
                            "ZX"
                        ],
                        "type": "string",
                        "description": "Pick a car brand to scrape. The Actor returns all its models and engine variants, consolidated across the enabled sources. Used only when Input mode is 'Brand'; to target specific models, set Input mode to 'Model names list' and use the Models field."
                    },
                    "models": {
                        "title": "Models",
                        "type": "array",
                        "description": "Specific models to scrape, one entry per model, ALWAYS written as 'Brand Model' with the make included. For example write 'Audi RS3', not 'RS3' on its own: a model typed without its brand is ignored. Each entry expands to all generations and engine variants for that model. Used only when Input mode is 'Model names list'.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "yearMin": {
                        "title": "Year from",
                        "minimum": 1900,
                        "maximum": 2100,
                        "type": "integer",
                        "description": "Earliest production year to include (inclusive). Leave empty for no lower bound."
                    },
                    "yearMax": {
                        "title": "Year to",
                        "minimum": 1900,
                        "maximum": 2100,
                        "type": "integer",
                        "description": "Latest production year to include (inclusive). Leave empty for no upper bound."
                    },
                    "excludeModels": {
                        "title": "Exclude models",
                        "type": "array",
                        "description": "Blacklist filter: drop variants whose model name contains one of these strings (case-insensitive).",
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxItems": {
                        "title": "Max items",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum number of car data records to emit. Set to 0 to disable the cap. Useful for test runs or cost control.",
                        "default": 1000
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
