{
  "openapi": "3.0.1",
  "info": {
    "title": "Mobile.de Scraper — Cars, Vans & Bikes Listings",
    "description": "Scrape mobile.de listings: cars, vans, bikes and 9 more classes, every search filter of the site, price rating, dealer data, price tracking. Export to JSON, CSV or Excel.",
    "version": "0.0",
    "x-build-id": "nkqfo7pEZr5L41LsS"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/nice_dev~mobile-de-listings-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-nice_dev-mobile-de-listings-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/nice_dev~mobile-de-listings-scraper/runs": {
      "post": {
        "operationId": "runs-sync-nice_dev-mobile-de-listings-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/nice_dev~mobile-de-listings-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-nice_dev-mobile-de-listings-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": {
          "startUrls": {
            "title": "Start URLs",
            "maxItems": 1000,
            "type": "array",
            "description": "mobile.de links, pasted as they are in your browser: a search (`https://suchen.mobile.de/fahrzeuge/search.html?...`, every filter set on the site is kept), a listing (`https://suchen.mobile.de/auto-inserat/.../123456789.html` or `details.html?id=123456789`) or a dealer page (`https://home.mobile.de/home/index.html?customerId=...` = all the dealer's vehicles). Pages of up to 500 listings, automatic: a search is read from its first page, page numbers in a pasted link are ignored (the log says so). When this list is not empty, the search fields below (vehicle type, make, keywords, locations) and the **Vehicle filters** (price, fuel, year, sort order, country…) are ignored: set them on mobile.de before copying the link. The Actor's own filters (words to exclude, dates, phone number only), the caps and monitoring still apply. Max 1 000 URLs.",
            "default": [],
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "vehicleType": {
            "title": "Vehicle type",
            "enum": [
              "Car",
              "Motorbike",
              "Motorhome",
              "VanUpTo7500",
              "TruckOver7500",
              "SemiTrailerTruck",
              "Trailer",
              "Bus",
              "AgriculturalVehicle",
              "ConstructionMachine",
              "ForkliftTruck",
              "EBike"
            ],
            "type": "string",
            "description": "The mobile.de section to search. Some filters below exist only for cars (a filter a section does not have is ignored by the site, and the run log says so).",
            "default": "Car"
          },
          "make": {
            "title": "Make",
            "maxLength": 100,
            "type": "string",
            "description": "Make as written on mobile.de, e.g. `BMW`, `Volkswagen`, `Mercedes-Benz` (case and accents ignored) or its mobile.de id (`3500`). An unknown make stops the run with the list of close names, instead of silently searching every make. Empty = all makes."
          },
          "model": {
            "title": "Model",
            "maxLength": 100,
            "type": "string",
            "description": "Model of the make above, as on mobile.de: a single model (`Golf`, `320`) or a model series (`3er`, `3 Series`, `A-Klasse` = all its models), or its mobile.de id. Needs **Make**. Empty = all models of the make."
          },
          "modelDescription": {
            "title": "Model description",
            "maxLength": 100,
            "type": "string",
            "description": "Words of the version / model description searched by mobile.de with **Make** + **Model** (its « Modellbeschreibung » field), e.g. `xDrive`, `GTI`, `Competition`. Needs **Make**. Empty = any version."
          },
          "models": {
            "title": "More makes / models",
            "maxItems": 100,
            "uniqueItems": true,
            "type": "array",
            "description": "Several make + model searches in one run, one per line: `BMW 3er`, `Audi A4`, `Tesla` (make alone = all its models). Added to **Make** / **Model**; each line is a separate search (times each keyword and location below, max 500 searches); a listing found by several searches is saved once.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "query": {
            "title": "Search keyword",
            "maxLength": 200,
            "type": "string",
            "description": "Free text searched by mobile.de in the listing (title, description and equipment), e.g. `xenon`, `scheckheft`. Empty = no keyword."
          },
          "searchQueries": {
            "title": "More search keywords",
            "maxItems": 100,
            "uniqueItems": true,
            "type": "array",
            "description": "Several keywords in one run: one search per keyword (times each make / model and location). Added to **Search keyword**; listings found by several searches are saved once.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "location": {
            "title": "Location",
            "maxLength": 200,
            "type": "string",
            "description": "Centre of a radius search: a German postcode (`10115`), a German town (`Berlin`, `München`) or GPS coordinates `52.52,13.40`. Used with **Radius**. Empty = everywhere."
          },
          "locations": {
            "title": "More locations",
            "maxItems": 100,
            "uniqueItems": true,
            "type": "array",
            "description": "Several locations in one run: every search is run around every location (3 models × 4 locations = 12 searches, max 500). Added to **Location**.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "radiusKm": {
            "title": "Radius",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Distance around each location, in km (any value: mobile.de takes it as is).",
            "default": 50
          },
          "country": {
            "title": "Vehicle country",
            "uniqueItems": true,
            "type": "array",
            "description": "Only vehicles offered in these countries (mobile.de also lists vehicles from dealers abroad). Empty = all countries.",
            "items": {
              "type": "string",
              "enum": [
                "DE",
                "AT",
                "BE",
                "BG",
                "CH",
                "CY",
                "CZ",
                "DK",
                "EE",
                "ES",
                "FI",
                "FR",
                "GB",
                "GR",
                "HR",
                "HU",
                "IE",
                "IT",
                "LI",
                "LT",
                "LU",
                "LV",
                "MT",
                "NL",
                "NO",
                "PL",
                "PT",
                "RO",
                "SE",
                "SI",
                "SK",
                "AD",
                "AE",
                "AL",
                "BA",
                "BR",
                "BY",
                "CA",
                "EG",
                "ET",
                "FO",
                "IL",
                "IS",
                "JO",
                "JP",
                "KR",
                "KW",
                "LB",
                "MA",
                "MC",
                "MD",
                "ME",
                "MK",
                "MX",
                "NG",
                "NZ",
                "OM",
                "RS",
                "RU",
                "SA",
                "SM",
                "TN",
                "TR",
                "TW",
                "UA",
                "US",
                "ZA"
              ],
              "enumTitles": [
                "DE",
                "AT",
                "BE",
                "BG",
                "CH",
                "CY",
                "CZ",
                "DK",
                "EE",
                "ES",
                "FI",
                "FR",
                "GB",
                "GR",
                "HR",
                "HU",
                "IE",
                "IT",
                "LI",
                "LT",
                "LU",
                "LV",
                "MT",
                "NL",
                "NO",
                "PL",
                "PT",
                "RO",
                "SE",
                "SI",
                "SK",
                "AD",
                "AE",
                "AL",
                "BA",
                "BR",
                "BY",
                "CA",
                "EG",
                "ET",
                "FO",
                "IL",
                "IS",
                "JO",
                "JP",
                "KR",
                "KW",
                "LB",
                "MA",
                "MC",
                "MD",
                "ME",
                "MK",
                "MX",
                "NG",
                "NZ",
                "OM",
                "RS",
                "RU",
                "SA",
                "SM",
                "TN",
                "TR",
                "TW",
                "UA",
                "US",
                "ZA"
              ]
            },
            "default": []
          },
          "sellerIds": {
            "title": "Dealers / sellers",
            "maxItems": 500,
            "uniqueItems": true,
            "type": "array",
            "description": "Every vehicle of these sellers: the numeric seller id this Actor returns (`sellerId`, e.g. `462978`) or a dealer page URL (`https://home.mobile.de/home/index.html?customerId=462978`). Each seller is one search; the filters below still apply.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "listingIds": {
            "title": "Listing IDs",
            "maxItems": 1000,
            "uniqueItems": true,
            "type": "array",
            "description": "Fetch these listings directly, by id (`457720205`) or listing URL. Always added to the searches above; each id is read on its detail (one request), so it is charged as **Listing details** on top of the listing.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "maxItems": {
            "title": "Max listings",
            "minimum": 0,
            "maximum": 1000000,
            "type": "integer",
            "description": "Maximum number of listings to save for the whole run (after deduplication and filters). 0 = no limit.",
            "default": 100
          },
          "maxItemsPerQuery": {
            "title": "Max listings per search",
            "minimum": 0,
            "maximum": 1000000,
            "type": "integer",
            "description": "Cap for EACH search (make / model × keyword × location, seller, or start URL), so that the first search cannot use up the whole **Max listings** budget. 0 = no per-search cap.",
            "default": 0
          },
          "splitLargeSearches": {
            "title": "Go past 2 000 listings per search",
            "type": "boolean",
            "description": "mobile.de returns at most 2 000 listings per search. On: a bigger search is cut into price bands, each under 2 000, so that every priced listing is reached (free, a few more requests); the bands add up to the exact total, listings without a price included. Off: the first 2 000.",
            "default": true
          },
          "extractDetails": {
            "title": "Extract details",
            "type": "boolean",
            "description": "Open each listing (1 extra request per listing) for the full description, all equipment, every technical attribute (CO₂, consumption, HU, trailer load…), mobile.de's AI summary, financing details, the dealer's website, languages and opening hours (and, with **Seller phone numbers**, the private seller's phone). Charged per listing as **Listing details**, on top of the listing (see Pricing). Off = the fields of the results list, which already include price, price rating, mileage, power, dealer name and address. A listing in **Listing IDs** or a listing URL in **Start URLs** is always read on its detail.",
            "default": false
          },
          "includePhones": {
            "title": "Seller phone numbers",
            "type": "boolean",
            "description": "Fill `sellerPhone`, `sellerPhones`, `sellerWhatsapp` and the dealer's contact person (`sellerContactPerson`). Charged per listing as **Phone number found**, once per listing delivered with at least one number (however many it has), on top of the listing (see Pricing); a listing without a number costs nothing extra. Dealers' numbers are in the results list; for a listing without a number there (private sellers), its detail page is read for the number only, at no extra charge (the other detail fields need **Extract details**). Off = the phone fields are always empty.",
            "default": false
          },
          "includeDealerProfiles": {
            "title": "Dealer profiles (e-mail, imprint, VAT id)",
            "type": "boolean",
            "description": "For each dealer, read its mobile.de dealer page once per run: e-mail, own website, imprint (legal name, managing director, register and VAT id), number of listings and, with **Dealer reviews per dealer**, its customer reviews (opening hours come with **Extract details**). Charged per dealer found as **Dealer profile** (see Pricing); private sellers have no dealer page.",
            "default": false
          },
          "reviewLimit": {
            "title": "Dealer reviews per dealer",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "With **Dealer profiles**: also return up to this many of the latest customer reviews of each dealer (`sellerReviews`: date, score and sub-scores, liked / disliked text, dealer reply). Read from the dealer's mobile.de review page, included in the **Dealer profile** charge. 0 = no reviews.",
            "default": 0
          },
          "minPrice": {
            "title": "Min price",
            "minimum": 0,
            "maximum": 100000000,
            "type": "integer",
            "description": "Lowest price in euros (gross price)."
          },
          "maxPrice": {
            "title": "Max price",
            "minimum": 0,
            "maximum": 100000000,
            "type": "integer",
            "description": "Highest price in euros."
          },
          "minYear": {
            "title": "Min first registration year",
            "minimum": 1900,
            "maximum": 2100,
            "type": "integer",
            "description": "Registered in this year or later."
          },
          "maxYear": {
            "title": "Max first registration year",
            "minimum": 1900,
            "maximum": 2100,
            "type": "integer",
            "description": "Registered in this year or earlier."
          },
          "minMileage": {
            "title": "Min mileage",
            "minimum": 0,
            "maximum": 10000000,
            "type": "integer",
            "description": "Lowest mileage in km."
          },
          "maxMileage": {
            "title": "Max mileage",
            "minimum": 0,
            "maximum": 10000000,
            "type": "integer",
            "description": "Highest mileage in km."
          },
          "minPowerKw": {
            "title": "Min power (kW)",
            "minimum": 0,
            "maximum": 2000,
            "type": "integer",
            "description": "Lowest engine power in kW. Use either kW or hp, not both."
          },
          "maxPowerKw": {
            "title": "Max power (kW)",
            "minimum": 0,
            "maximum": 2000,
            "type": "integer",
            "description": "Highest engine power in kW."
          },
          "minPowerHp": {
            "title": "Min power (hp)",
            "minimum": 0,
            "maximum": 3000,
            "type": "integer",
            "description": "Lowest engine power in hp (PS), converted to kW for mobile.de."
          },
          "maxPowerHp": {
            "title": "Max power (hp)",
            "minimum": 0,
            "maximum": 3000,
            "type": "integer",
            "description": "Highest engine power in hp (PS)."
          },
          "fuelTypes": {
            "title": "Fuel types",
            "uniqueItems": true,
            "type": "array",
            "description": "Keep any of these fuels. Empty = all.",
            "items": {
              "type": "string",
              "enum": [
                "PETROL",
                "DIESEL",
                "ELECTRICITY",
                "HYBRID",
                "HYBRID_DIESEL",
                "LPG",
                "CNG",
                "HYDROGENIUM",
                "ETHANOL",
                "OTHER"
              ],
              "enumTitles": [
                "Petrol",
                "Diesel",
                "Electric",
                "Hybrid (petrol / electric)",
                "Hybrid (diesel / electric)",
                "LPG",
                "Natural gas (CNG)",
                "Hydrogen",
                "Ethanol (E85)",
                "Other"
              ]
            },
            "default": []
          },
          "transmission": {
            "title": "Transmission",
            "uniqueItems": true,
            "type": "array",
            "description": "Keep any of these gearboxes. Empty = all.",
            "items": {
              "type": "string",
              "enum": [
                "AUTOMATIC_GEAR",
                "MANUAL_GEAR",
                "SEMIAUTOMATIC_GEAR"
              ],
              "enumTitles": [
                "Automatic",
                "Manual",
                "Semi-automatic"
              ]
            },
            "default": []
          },
          "bodyTypes": {
            "title": "Body types (cars)",
            "uniqueItems": true,
            "type": "array",
            "description": "Keep any of these body types. Empty = all.",
            "items": {
              "type": "string",
              "enum": [
                "Limousine",
                "EstateCar",
                "SmallCar",
                "OffRoad",
                "Cabrio",
                "SportsCar",
                "Van",
                "OtherCar"
              ],
              "enumTitles": [
                "Saloon / sedan",
                "Estate car / station wagon",
                "Small car",
                "SUV / off-road",
                "Convertible / roadster",
                "Sports car / coupé",
                "Van / minibus",
                "Other"
              ]
            },
            "default": []
          },
          "condition": {
            "title": "Condition",
            "enum": [
              "ANY",
              "NEW",
              "USED"
            ],
            "type": "string",
            "description": "New vehicles, used vehicles, or both.",
            "default": "ANY"
          },
          "sellerType": {
            "title": "Seller type",
            "enum": [
              "ANY",
              "DEALER",
              "PRIVATE",
              "COMMERCIAL_PRIVATE"
            ],
            "type": "string",
            "description": "Dealers, private sellers, or both. `Commercial private` = a private seller flagged by mobile.de as selling commercially.",
            "default": "ANY"
          },
          "exteriorColors": {
            "title": "Exterior colours",
            "uniqueItems": true,
            "type": "array",
            "description": "Keep any of these colours. Empty = all.",
            "items": {
              "type": "string",
              "enum": [
                "BLACK",
                "WHITE",
                "GREY",
                "SILVER",
                "BLUE",
                "RED",
                "GREEN",
                "BROWN",
                "BEIGE",
                "YELLOW",
                "ORANGE",
                "GOLD",
                "PURPLE"
              ],
              "enumTitles": [
                "Black",
                "White",
                "Grey",
                "Silver",
                "Blue",
                "Red",
                "Green",
                "Brown",
                "Beige",
                "Yellow",
                "Orange",
                "Gold",
                "Purple"
              ]
            },
            "default": []
          },
          "priceRatings": {
            "title": "Price ratings",
            "uniqueItems": true,
            "type": "array",
            "description": "Keep only listings with one of these mobile.de price ratings (e.g. `Very good price` + `Good price` = the deals). Empty = all.",
            "items": {
              "type": "string",
              "enum": [
                "VERY_GOOD_PRICE",
                "GOOD_PRICE",
                "REASONABLE_PRICE",
                "INCREASED_PRICE",
                "HIGH_PRICE",
                "NO_RATING"
              ],
              "enumTitles": [
                "Very good price",
                "Good price",
                "Fair price",
                "Increased price",
                "High price",
                "No rating"
              ]
            },
            "default": []
          },
          "maxPreviousOwners": {
            "title": "Max previous owners",
            "minimum": 1,
            "maximum": 4,
            "type": "integer",
            "description": "At most this many previous owners (1 to 4)."
          },
          "minSeats": {
            "title": "Min seats",
            "minimum": 1,
            "maximum": 99,
            "type": "integer",
            "description": "At least this many seats."
          },
          "maxSeats": {
            "title": "Max seats",
            "minimum": 1,
            "maximum": 99,
            "type": "integer",
            "description": "At most this many seats."
          },
          "doors": {
            "title": "Doors",
            "enum": [
              "TWO_OR_THREE",
              "FOUR_OR_FIVE",
              "SIX_OR_SEVEN"
            ],
            "type": "string",
            "description": "Number of doors."
          },
          "driveType": {
            "title": "Drive type",
            "enum": [
              "ALL_WHEEL",
              "FRONT",
              "REAR"
            ],
            "type": "string",
            "description": "Driven wheels."
          },
          "emissionClass": {
            "title": "Min emission class",
            "enum": [
              "EURO1",
              "EURO2",
              "EURO3",
              "EURO4",
              "EURO5",
              "EURO6",
              "EURO6C",
              "EURO6D_TEMP",
              "EURO6D",
              "EURO6E",
              "EURO7"
            ],
            "type": "string",
            "description": "This Euro emission class or a better one."
          },
          "emissionSticker": {
            "title": "Min emission sticker",
            "enum": [
              "EMISSIONSSTICKER_NONE",
              "EMISSIONSSTICKER_RED",
              "EMISSIONSSTICKER_YELLOW",
              "EMISSIONSSTICKER_GREEN"
            ],
            "type": "string",
            "description": "German low-emission zone sticker (Umweltplakette), this one or better."
          },
          "minEngineSize": {
            "title": "Min engine size",
            "minimum": 0,
            "maximum": 30000,
            "type": "integer",
            "description": "Lowest cubic capacity in cm³."
          },
          "maxEngineSize": {
            "title": "Max engine size",
            "minimum": 0,
            "maximum": 30000,
            "type": "integer",
            "description": "Highest cubic capacity in cm³."
          },
          "excludeDamaged": {
            "title": "Exclude damaged vehicles",
            "type": "boolean",
            "description": "Drop vehicles with unrepaired major damage (mobile.de's `Beschädigt`).",
            "default": false
          },
          "damagedOnly": {
            "title": "Damaged vehicles only",
            "type": "boolean",
            "description": "Only vehicles with unrepaired major damage. Cannot be ticked together with **Exclude damaged vehicles**.",
            "default": false
          },
          "roadworthyOnly": {
            "title": "Roadworthy only",
            "type": "boolean",
            "description": "Only vehicles marked ready to drive (`Fahrtauglich`).",
            "default": false
          },
          "vatReclaimable": {
            "title": "VAT deductible only",
            "type": "boolean",
            "description": "Only listings where the VAT can be reclaimed (net price shown), for business buyers.",
            "default": false
          },
          "onlineSinceDays": {
            "title": "Online since",
            "enum": [
              "1",
              "3",
              "7",
              "14"
            ],
            "type": "string",
            "description": "Only listings put online in the last N days, filtered by mobile.de itself (for any other period use **Posted after**)."
          },
          "huValidMonths": {
            "title": "Min months of valid MOT (HU)",
            "enum": [
              "0",
              "3",
              "6",
              "9",
              "12",
              "18"
            ],
            "type": "string",
            "description": "German general inspection (HU / TÜV) still valid for at least this many months; `New` = fresh HU."
          },
          "minSellerRating": {
            "title": "Min seller rating",
            "minimum": 3,
            "maximum": 5,
            "type": "integer",
            "description": "Dealers rated at least this many stars on mobile.de (3, 4 or 5)."
          },
          "withPicturesOnly": {
            "title": "With photos only",
            "type": "boolean",
            "description": "Only listings with at least one photo.",
            "default": false
          },
          "withVideoOnly": {
            "title": "With video only",
            "type": "boolean",
            "description": "Only listings with a video.",
            "default": false
          },
          "priceReducedOnly": {
            "title": "Price reduced only",
            "type": "boolean",
            "description": "Only listings whose price was lowered (mobile.de shows the old price crossed out: `previousPrice`).",
            "default": false
          },
          "qualitySealOnly": {
            "title": "Quality seal only",
            "type": "boolean",
            "description": "Only used cars with a manufacturer or dealer quality seal (certified used cars).",
            "default": false
          },
          "leasingOnly": {
            "title": "Leasing offers only",
            "enum": [
              "",
              "PRIVATE",
              "BUSINESS"
            ],
            "type": "string",
            "description": "Only listings that carry a leasing offer, for private or business use (`leasing` and `leasingRateMonthly` in the results). Empty = every listing."
          },
          "maxLeasingRate": {
            "title": "Max leasing rate",
            "minimum": 0,
            "maximum": 100000,
            "type": "integer",
            "description": "With **Leasing offers only**: highest monthly leasing rate, in euros."
          },
          "excludeExportOffers": {
            "title": "Exclude export offers",
            "type": "boolean",
            "description": "Drop the listings offered for export only.",
            "default": false
          },
          "usageTypes": {
            "title": "Special usage",
            "uniqueItems": true,
            "type": "array",
            "description": "Only these kinds of vehicles. Empty = all.",
            "items": {
              "type": "string",
              "enum": [
                "PRE_REGISTRATION",
                "EMPLOYEES_CAR",
                "DEMONSTRATION",
                "CLASSIC"
              ],
              "enumTitles": [
                "Pre-registered",
                "Employee's car",
                "Demonstration vehicle",
                "Classic / vintage"
              ]
            },
            "default": []
          },
          "features": {
            "title": "Required equipment",
            "maxItems": 50,
            "uniqueItems": true,
            "type": "array",
            "description": "Keep only vehicles with ALL of these features, as mobile.de feature codes: `NAVIGATION_SYSTEM`, `CARPLAY`, `ANDROID_AUTO`, `HEAD_UP_DISPLAY`, `PANORAMIC_GLASS_ROOF`, `ELECTRIC_HEATED_SEATS`, `FULL_SERVICE_HISTORY`, `NONSMOKER_VEHICLE`, `WARRANTY`… (every code is listed in the README). An unknown code stops the run with the closest codes.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "customFilters": {
            "title": "Other mobile.de filters",
            "type": "object",
            "description": "Any other filter of the mobile.de search form, as `parameter: value` (a list for several values): e.g. `{\"clim\": \"AUTOMATIC_CLIMATISATION\", \"it\": [\"LEATHER\", \"ALCANTARA\"], \"cy\": \"6:\", \"tlb\": \"2000:\"}`. The README lists every parameter and its values; an unknown parameter or value stops the run (mobile.de would silently ignore it and return everything).",
            "default": {}
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "NEWEST",
              "RELEVANCE",
              "PRICE_ASC",
              "PRICE_DESC",
              "MILEAGE_ASC",
              "MILEAGE_DESC",
              "YEAR_DESC",
              "YEAR_ASC",
              "POWER_DESC",
              "POWER_ASC"
            ],
            "type": "string",
            "description": "Order in which mobile.de returns the listings. Newest first is the default and the one used to stop early with **Only new listings**.",
            "default": "NEWEST"
          },
          "postedAfter": {
            "title": "Posted after",
            "type": "string",
            "description": "Only listings first put online on mobile.de on or after this date (`created`, not a later price change or push-up): `2026-09-01`, or a period before now such as `7 days`, `2 weeks`, `1 month` (API: `24 hours` and full ISO date-times work too). A date within the last 13 days is also sent to mobile.de as its own **Online since** window, so older listings are neither read nor charged; with an older date the whole search is read and each listing dropped pays the filter fee: narrow it with a make, a model or a price range."
          },
          "postedBefore": {
            "title": "Posted before",
            "type": "string",
            "description": "Only listings first put online on or before this date (the whole day is included), or older than a period such as `30 days`."
          },
          "excludeKeywords": {
            "title": "Exclude keywords",
            "maxItems": 50,
            "uniqueItems": true,
            "type": "array",
            "description": "Drop the listings whose title or subtitle contains one of these words (case and German umlauts ignored), e.g. `Motorschaden`, `Export`, `defekt`, or a model to leave out (`M3`). A word also counts inside a longer word: `unfall` also matches `unfallfrei`.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "requirePhone": {
            "title": "With phone only",
            "type": "boolean",
            "description": "Keep only the listings whose seller shows a phone number. Needs **Seller phone numbers** (private sellers' numbers are read from their detail page).",
            "default": false
          },
          "onlyNew": {
            "title": "Only new listings",
            "type": "boolean",
            "description": "Skip the listings that a previous run (same **Memory key**) already delivered: they are not saved and not charged, and their detail is not even opened. First run = everything is new.",
            "default": false
          },
          "stateKey": {
            "title": "Memory key",
            "pattern": "^[a-zA-Z0-9_-]{1,64}$",
            "maxLength": 64,
            "type": "string",
            "description": "Name of the memory used by **Only new listings**. Give each schedule / task its own key (e.g. `golf-berlin`) so that they do not share their memory. Letters, digits, `-` and `_`.",
            "default": "default"
          },
          "resetState": {
            "title": "Reset the memory",
            "type": "boolean",
            "description": "Forget everything remembered under this **Memory key** before the run: this run returns (and charges) every listing again. Untick it afterwards.",
            "default": false
          },
          "includePriceChanges": {
            "title": "Report price changes",
            "type": "boolean",
            "description": "Needs **Only new listings**. A listing already delivered under this **Memory key** comes back, whole, when its price has changed since the run that delivered it: `changeType` = `PRICE_CHANGED`, with `lastDeliveredPrice`, `priceChange`, `priceChangePct` and `priceChangedAt`. Charged per listing as **Price change**, on top of the listing (see Pricing); a listing whose price did not move is not saved. The first run after you tick it learns the prices and reports no change. The search is read to its end (up to **Max listings** delivered), because an older listing can change its price: each listing already delivered and re-checked for a price change is charged a small **Price check** (see Pricing), and the run stops when its maximum cost cannot pay one.",
            "default": false
          },
          "minPriceChangePercent": {
            "title": "Min price change",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "With **Report price changes**: ignore a price change smaller than this percentage (up or down). 0 = every change.",
            "default": 0
          },
          "language": {
            "title": "Language of the labels",
            "enum": [
              "en",
              "de"
            ],
            "type": "string",
            "description": "Language of the texts mobile.de writes (fuel, gearbox, colour, equipment, attribute labels, AI summary). The codes (`fuelType`, `priceRating`…) and numbers are the same in both.",
            "default": "en"
          },
          "imageSize": {
            "title": "Photo size",
            "enum": [
              "small",
              "medium",
              "large"
            ],
            "type": "string",
            "description": "Width of the photo URLs returned.",
            "default": "large"
          },
          "includeRaw": {
            "title": "Include raw data",
            "type": "boolean",
            "description": "Add a `raw` field with the untouched JSON of mobile.de (results list and detail). Useful to recover a field this Actor does not map yet; makes the data bigger.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "No proxy by default: mobile.de answers the Apify platform directly. Turn the Apify proxy on only if your runs get blocked; its usage is included in the price. The residential Apify proxy is not available in this Actor.",
            "default": {
              "useApifyProxy": false
            }
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Maximum number of requests processed in parallel.",
            "default": 8
          },
          "maxRequestsPerMinute": {
            "title": "Max requests per minute",
            "minimum": 10,
            "maximum": 2000,
            "type": "integer",
            "description": "Most requests to mobile.de in any 60 seconds, all of them counted: results pages (up to 500 listings each), listing details and dealer pages. A budget, not an even pace (spread them with the minimum delay below). Lower it if the log shows HTTP 429 / 403.",
            "default": 150
          },
          "minRequestIntervalMs": {
            "title": "Min delay between requests",
            "minimum": 0,
            "maximum": 60000,
            "type": "integer",
            "description": "Smallest gap between two requests, in milliseconds. Unlike the per-minute rate, this spreads the requests evenly instead of letting them go out in a burst. 0 = no gap.",
            "default": 0
          },
          "maxRequestRetries": {
            "title": "Max request retries",
            "minimum": 0,
            "maximum": 20,
            "type": "integer",
            "description": "Retries per request before it is marked as failed. If you turn the Apify proxy on, a request the site turns away is also retried on a new proxy session up to 10 times without using up these retries.",
            "default": 5
          },
          "debugLog": {
            "title": "Debug log",
            "type": "boolean",
            "description": "Include debug messages in the run log.",
            "default": false
          }
        }
      },
      "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}