# Sixt Scraper — Brand-Direct Car Rental Prices (`studio-amba/sixt-scraper`) Actor

Scrape brand-direct car rental offers from Sixt.com, the German-headquartered rental brand with strong pan-European coverage. Extract car models, categories, daily/total prices, deposits, and mileage terms by pickup city or airport. No login or cookies required.

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

## Pricing

from $1.20 / 1,000 result scrapeds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
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?

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

## Sixt Scraper

Scrape brand-direct car rental offers straight from Sixt.com — the German-headquartered rental brand with one of the strongest pan-European branch networks. Extract car models, categories, daily and total prices, deposits, and mileage terms by pickup city or airport. No login or cookies required.

### Why use this actor?

Every major aggregator (RentalCars.com, Kayak, Skyscanner) resells Sixt inventory with its own markup and booking fees layered on top. This actor pulls Sixt's own rate straight from their booking engine — the price you'd actually pay booking direct. Use it to check whether an aggregator price for a given car is really the best deal, or to track Sixt's own pricing over time without going through a reseller.

### How it works

1. Enter a pickup location (city, airport, or branch), for example `Munich Airport` or `Berlin`
2. Optionally set a different drop-off location for one-way rentals
3. Optionally set pickup/drop-off dates and times (defaults: 21 days from now, 5-day rental, 10:00 pickup and drop-off)
4. Optionally set a currency and a result limit
5. Start the actor

The actor resolves your pickup (and drop-off) location through Sixt's own location search, then pulls priced offers through the same JSON API their booking engine uses. No browser automation, no form filling — pure HTTP requests to Sixt's booking backend.

### Input

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `pickupLocation` | String | No | City, airport, or branch. Default: `Munich Airport` |
| `dropoffLocation` | String | No | City, airport, or branch to return the car. Defaults to the pickup location (round trip). |
| `pickupDate` | String | No | `YYYY-MM-DD`. Defaults to 21 days from now. Past dates are replaced by that default. |
| `pickupTime` | String | No | `HH:MM`, 24h. Default: `10:00` |
| `dropoffDate` | String | No | `YYYY-MM-DD`. Defaults to a 5-day rental. |
| `dropoffTime` | String | No | `HH:MM`, 24h. Default: `10:00` |
| `currency` | String | No | ISO 4217 currency code, e.g. `EUR`, `GBP`, `USD` (default: `EUR`) |
| `maxResults` | Integer | No | Maximum number of offers to return (default: 50, max: 200) |
| `proxyConfiguration` | Object | No | Proxy settings. Defaults to a residential proxy (Germany) with session rotation — Sixt's booking API rate-limits aggressively per IP (see Proxy requirements below). |

### Output

Each result contains:

| Field | Type | Example |
|-------|------|---------|
| `rentalCompany` | String | `"Sixt"` |
| `carName` | String | `"VW Polo"` |
| `carCategory` | String | `"Sedan"` |
| `acrissCode` | String | `"EDMR"` |
| `transmission` | String | `"Manual"` |
| `fuelType` | String | `"Electric"`, `"Hybrid"`, or `null` |
| `seats` | Number | `5` |
| `doors` | Number | `5` |
| `bags` | Number | `2` |
| `totalPrice` | Number | `279.92` |
| `dailyPrice` | Number | `43.68` |
| `currency` | String | `"EUR"` |
| `depositAmount` | Number | `300` |
| `depositCurrency` | String | `"EUR"` |
| `unlimitedMileage` | Boolean | `true` |
| `fuelPolicy` | String | `null` (not exposed by Sixt's offer API) |
| `minimumDriverAge` | Number | `18` |
| `youngDriverFeeApplies` | Boolean | `false` |
| `pickupLocation` | String | `"Berlin Airport"` |
| `dropoffLocation` | String | `"Berlin Airport"` |
| `pickupDate` | String | `"2026-09-15"` |
| `pickupTime` | String | `"10:00"` |
| `dropoffDate` | String | `"2026-09-20"` |
| `dropoffTime` | String | `"10:00"` |
| `rentalDays` | Number | `5` |
| `imageUrl` | String | Car image URL |
| `url` | String | Sixt search-results page URL for this search |
| `scrapedAt` | String | `"2026-08-30T14:20:11.000Z"` |

### Example output

```json
{
    "rentalCompany": "Sixt",
    "carName": "VW Polo",
    "carCategory": "Sedan",
    "acrissCode": "EDMR",
    "transmission": "Manual",
    "fuelType": null,
    "seats": 5,
    "doors": 5,
    "bags": 2,
    "totalPrice": 279.92,
    "dailyPrice": 43.68,
    "currency": "EUR",
    "depositAmount": 300,
    "depositCurrency": "EUR",
    "unlimitedMileage": true,
    "fuelPolicy": null,
    "minimumDriverAge": 18,
    "youngDriverFeeApplies": false,
    "pickupLocation": "Berlin Airport",
    "dropoffLocation": "Berlin Airport",
    "pickupDate": "2026-09-15",
    "pickupTime": "10:00",
    "dropoffDate": "2026-09-20",
    "dropoffTime": "10:00",
    "rentalDays": 5,
    "imageUrl": "https://www.sixt.com/fileadmin2/files/global/user_upload/fleet/png/1050x600/vw-polo-4d-blue-2022.png",
    "url": "https://www.sixt.com/betafunnel/#/offerlist?zen_pu_location=...",
    "scrapedAt": "2026-08-30T14:20:11.000Z"
}
```

### Use cases

- **Aggregator arbitrage** — Compare Sixt's brand-direct price against RentalCars.com or other aggregator listings for the exact same car and dates
- **Price monitoring** — Schedule daily runs to track how Sixt's own rates move over a booking window
- **Travel agencies** — Quote clients the brand-direct rate alongside aggregator options
- **Market research** — Analyze Sixt's pricing across cities, seasons, and rental lengths
- **Fleet analysis** — Track which car models Sixt has available at specific airports and branches

### Integrations

This actor can be combined with Apify's built-in integrations to:

- **Schedule runs** to monitor prices daily or weekly
- **Export to Google Sheets** for easy analysis and sharing
- **Send webhook notifications** when prices drop below a threshold
- **Connect to Zapier/Make** for custom automation workflows
- **Use the API** to integrate car rental data into your applications

### Cost estimate

This actor charges $0.005 per run start plus $0.002 per rental offer returned. A default run (up to 50 offers) costs about $0.105. A run's usage cost only settles after it reports SUCCEEDED.

### Proxy requirements

Sixt's marketing frontend (`www.sixt.com`) sits behind Cloudflare bot management — but the actual pricing data comes from a separate backend host (`grpc-prod.orange.sixt.com`) that the site's own browser JS calls directly. That host has no JS challenge to solve, but it does enforce a real per-IP rate limit on the same Cloudflare edge. This actor defaults to a residential proxy (Germany) with a fresh session on every retry to stay under that limit. You can override this in `proxyConfiguration`, but the automatic Apify proxy pool alone will get rate-limited quickly on a shared search vertical like this one.

### Limitations

- Prices reflect Sixt's own booking engine at scrape time and can change without notice
- Van and truck rentals are out of scope for this actor (passenger cars only)
- One-way rentals (different pickup/drop-off locations) are supported, but availability and one-way surcharges are set by Sixt and shown as part of the returned price
- `fuelType` is only populated for electric/hybrid vehicles — Sixt's offer API doesn't expose a petrol/diesel split, so this field stays `null` for combustion cars rather than guessing
- `fuelPolicy` is not exposed anywhere in Sixt's offer payload and is always `null`
- Data is scraped from a public API and may change shape without notice

### How to scrape Sixt data

1. Go to this actor's page on the [Apify Store](https://apify.com/store).
2. Click **Try for free** to open it in Apify Console.
3. Enter a pickup location and dates, set the maximum number of results, and adjust proxy settings if needed (the default works fine).
4. Click **Start** and wait for the run to finish — searches typically resolve in a few seconds.
5. Download your data in JSON, CSV, Excel, or connect it to your workflow via API.

You can also schedule regular runs, set up webhooks for real-time notifications, or integrate the results directly into your application using the [Apify API](https://docs.apify.com/api).

### Related Scrapers

- [Avis Scraper](https://apify.com/studio-amba/avis-scraper) — brand-direct pricing from Avis's EU booking platform
- [Europcar Scraper](https://apify.com/studio-amba/europcar-scraper) — brand-direct pricing from Europe's largest rental network
- [Hertz Scraper](https://apify.com/studio-amba/hertz-scraper) — brand-direct pricing from Hertz's modern booking app
- [RentalCars Scraper](https://apify.com/studio-amba/rentalcars-scraper) — the Booking-Group aggregator angle: compare rates across Hertz, Avis, Europcar, Sixt and dozens more suppliers in one search

# Actor input Schema

## `pickupLocation` (type: `string`):

City, airport, or branch to pick up the car. The actor resolves this via Sixt's own location search and prefers the airport branch when the query mentions one. Example: "Munich Airport", "Berlin", "Frankfurt Airport".

## `dropoffLocation` (type: `string`):

City, airport, or branch to return the car. Leave empty to return to the same branch as pickup.

## `pickupDate` (type: `string`):

Pickup date in YYYY-MM-DD format. Leave empty to default to about 21 days from now. Dates in the past are automatically replaced by that default.

## `pickupTime` (type: `string`):

Pickup time, 24h HH:MM format. Leave empty to default to 10:00.

## `dropoffDate` (type: `string`):

Drop-off date in YYYY-MM-DD format. Leave empty to default to a 5-day rental.

## `dropoffTime` (type: `string`):

Drop-off time, 24h HH:MM format. Leave empty to default to 10:00.

## `currency` (type: `string`):

ISO 4217 currency code for prices (e.g. "EUR", "GBP", "USD"). Leave empty to use "EUR".

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

Maximum number of car rental offers to return.

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

Proxy settings. Sixt's booking API (grpc-prod.orange.sixt.com) enforces a real per-IP rate limit on the same Cloudflare edge as the main site, so this defaults to a residential proxy group with session rotation on retry.

## Actor input object example

```json
{
  "pickupLocation": "Munich Airport",
  "pickupTime": "10:00",
  "dropoffTime": "10:00",
  "currency": "EUR",
  "maxResults": 5,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "DE"
  }
}
```

# 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 = {
    "pickupLocation": "Munich Airport",
    "pickupTime": "10:00",
    "dropoffTime": "10:00",
    "currency": "EUR",
    "maxResults": 5,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "DE"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("studio-amba/sixt-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 = {
    "pickupLocation": "Munich Airport",
    "pickupTime": "10:00",
    "dropoffTime": "10:00",
    "currency": "EUR",
    "maxResults": 5,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "DE",
    },
}

# Run the Actor and wait for it to finish
run = client.actor("studio-amba/sixt-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 '{
  "pickupLocation": "Munich Airport",
  "pickupTime": "10:00",
  "dropoffTime": "10:00",
  "currency": "EUR",
  "maxResults": 5,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "DE"
  }
}' |
apify call studio-amba/sixt-scraper --silent --output-dataset

```

## MCP server setup

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