{
  "openapi": "3.0.1",
  "info": {
    "title": "mobile.de Scraper - Cars, Prices, Dealers & Vehicle Data",
    "description": "Scrape mobile.de vehicle listings with 30+ fields including price, mileage, registration, power, fuel, transmission, location and dealer details. Optional enrichment adds descriptions, equipment, images and dealer profiles.",
    "version": "3.0",
    "x-build-id": "xjfg3BgzDoXzjHgsz"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/abotapi~mobile-de-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-abotapi-mobile-de-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/abotapi~mobile-de-scraper/runs": {
      "post": {
        "operationId": "runs-sync-abotapi-mobile-de-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/abotapi~mobile-de-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-abotapi-mobile-de-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",
        "required": [
          "mode"
        ],
        "properties": {
          "mode": {
            "title": "Search mode",
            "enum": [
              "search",
              "url"
            ],
            "type": "string",
            "description": "Choose how to find listings. Only fields belonging to the chosen mode are used.",
            "default": "search"
          },
          "vehicleClass": {
            "title": "Vehicle class",
            "enum": [
              "Car",
              "Motorbike",
              "VanUpTo7500",
              "TruckOver7500",
              "Bus",
              "Trailer",
              "Motorhome",
              "SemiTrailer",
              "SemiTrailerTruck",
              "ConstructionMachine",
              "AgriculturalVehicle",
              "ForkLiftTruck"
            ],
            "type": "string",
            "description": "Vehicle category.",
            "default": "Car"
          },
          "make": {
            "title": "Make",
            "type": "string",
            "description": "Manufacturer name as it appears on mobile.de (e.g. BMW, Audi, Mercedes-Benz, Volkswagen, Porsche). Leave empty for all makes."
          },
          "model": {
            "title": "Model",
            "type": "string",
            "description": "Model or series name for the chosen Make, e.g. 320, X5, Golf, or a whole series like 3er. Requires a Make. An unknown model stops the run and lists valid names."
          },
          "condition": {
            "title": "Condition",
            "enum": [
              "",
              "NEW",
              "USED",
              "EMPLOYEES_CAR",
              "OLDTIMER",
              "DEMONSTRATION",
              "PRE_REGISTRATION"
            ],
            "type": "string",
            "description": "Vehicle condition.",
            "default": ""
          },
          "fuels": {
            "title": "Fuel type(s)",
            "uniqueItems": true,
            "type": "array",
            "description": "Multi-select. Leave empty for any fuel.",
            "items": {
              "type": "string",
              "enum": [
                "PETROL",
                "DIESEL",
                "HYBRID",
                "ELECTRICITY",
                "HYBRID_DIESEL",
                "LPG",
                "CNG",
                "HYDROGEN",
                "ETHANOL",
                "OTHER"
              ],
              "enumTitles": [
                "Petrol",
                "Diesel",
                "Hybrid (Petrol/Electric)",
                "Electric",
                "Hybrid (Diesel/Electric)",
                "LPG",
                "CNG",
                "Hydrogen",
                "Ethanol (E85)",
                "Other"
              ]
            },
            "default": []
          },
          "transmission": {
            "title": "Transmission",
            "enum": [
              "",
              "AUTOMATIC_GEAR",
              "MANUAL_GEAR",
              "SEMIAUTOMATIC_GEAR"
            ],
            "type": "string",
            "description": "Gearbox type.",
            "default": ""
          },
          "bodyType": {
            "title": "Body type",
            "enum": [
              "",
              "CABRIO",
              "ESTATECAR",
              "LIMOUSINE",
              "OFFROAD",
              "OTHERCAR",
              "SMALLCAR",
              "SPORTSCAR",
              "VAN"
            ],
            "type": "string",
            "description": "Body shape. Cars only.",
            "default": ""
          },
          "country": {
            "title": "Listing country",
            "enum": [
              "",
              "DE",
              "AT",
              "BE",
              "BG",
              "CH",
              "CZ",
              "DK",
              "EE",
              "ES",
              "FI",
              "FR",
              "GB",
              "GR",
              "HR",
              "HU",
              "IE",
              "IT",
              "LT",
              "LU",
              "LV",
              "MT",
              "NL",
              "NO",
              "PL",
              "PT",
              "RO",
              "SE",
              "SI",
              "SK",
              "UA"
            ],
            "type": "string",
            "description": "Country where the vehicle is offered. DE covers the bulk of mobile.de inventory.",
            "default": "DE"
          },
          "zipcode": {
            "title": "Location (postal code or town)",
            "type": "string",
            "description": "Postal code or town in the chosen country (e.g. 10115 or München). Combine with Radius. A location that cannot be found stops the run with a message instead of searching the whole country."
          },
          "radiusKm": {
            "title": "Radius around location (km)",
            "minimum": 0,
            "maximum": 1000,
            "type": "integer",
            "description": "Search radius around the location. Rounded up to the nearest radius the site offers (10, 20, 30, 40, 50, 60, 70, 100, 150, 200, 250, 300, 500, 1000 km). Ignored unless a location is set."
          },
          "priceFrom": {
            "title": "Minimum price (EUR)",
            "minimum": 0,
            "type": "integer",
            "description": "Lower bound for price."
          },
          "priceTo": {
            "title": "Maximum price (EUR)",
            "minimum": 0,
            "type": "integer",
            "description": "Upper bound for price."
          },
          "yearFrom": {
            "title": "Minimum first registration year",
            "minimum": 1900,
            "maximum": 2100,
            "type": "integer",
            "description": "Oldest first-registration year."
          },
          "yearTo": {
            "title": "Maximum first registration year",
            "minimum": 1900,
            "maximum": 2100,
            "type": "integer",
            "description": "Newest first-registration year."
          },
          "mileageFrom": {
            "title": "Minimum mileage (km)",
            "minimum": 0,
            "type": "integer",
            "description": "Lower bound for mileage."
          },
          "mileageTo": {
            "title": "Maximum mileage (km)",
            "minimum": 0,
            "type": "integer",
            "description": "Upper bound for mileage."
          },
          "powerFromKw": {
            "title": "Minimum power (kW)",
            "minimum": 0,
            "type": "integer",
            "description": "Lower bound for engine power in kW. 1 hp ~= 0.735 kW."
          },
          "powerToKw": {
            "title": "Maximum power (kW)",
            "minimum": 0,
            "type": "integer",
            "description": "Upper bound for engine power in kW."
          },
          "excludeDamaged": {
            "title": "Exclude damaged vehicles",
            "type": "boolean",
            "description": "Hide vehicles flagged as damaged.",
            "default": true
          },
          "onlyDamaged": {
            "title": "Only damaged vehicles",
            "type": "boolean",
            "description": "Show ONLY vehicles flagged as damaged (overrides Exclude damaged).",
            "default": false
          },
          "exteriorColors": {
            "title": "Exterior colour(s)",
            "uniqueItems": true,
            "type": "array",
            "description": "Multi-select. Leave empty for any colour.",
            "items": {
              "type": "string",
              "enum": [
                "BLACK",
                "WHITE",
                "GREY",
                "SILVER",
                "BLUE",
                "RED",
                "GREEN",
                "BROWN",
                "BEIGE",
                "YELLOW",
                "GOLD",
                "ORANGE",
                "PURPLE"
              ],
              "enumTitles": [
                "Black",
                "White",
                "Grey",
                "Silver",
                "Blue",
                "Red",
                "Green",
                "Brown",
                "Beige",
                "Yellow",
                "Gold",
                "Orange",
                "Purple"
              ]
            },
            "default": []
          },
          "sellerType": {
            "title": "Seller type",
            "enum": [
              "",
              "DEALER",
              "FSBO",
              "COMM_FSBO"
            ],
            "type": "string",
            "description": "Dealers, private sellers, or company vehicles.",
            "default": ""
          },
          "priceRatings": {
            "title": "Price rating",
            "uniqueItems": true,
            "type": "array",
            "description": "Only listings the site rates at these price levels versus the market. Leave empty for any.",
            "items": {
              "type": "string",
              "enum": [
                "VERY_GOOD_PRICE",
                "GOOD_PRICE",
                "REASONABLE_PRICE"
              ],
              "enumTitles": [
                "Very good price",
                "Good price",
                "Fair price"
              ]
            },
            "default": []
          },
          "onlineSinceDays": {
            "title": "Listed within",
            "enum": [
              "",
              "1",
              "3",
              "7",
              "14"
            ],
            "type": "string",
            "description": "Only listings published within this many days.",
            "default": ""
          },
          "vatReclaimable": {
            "title": "VAT reclaimable only",
            "type": "boolean",
            "description": "Only listings where VAT can be shown on the invoice (useful for businesses).",
            "default": false
          },
          "minSeats": {
            "title": "Minimum seats",
            "minimum": 2,
            "maximum": 10,
            "type": "integer",
            "description": "Minimum number of seats (2-10)."
          },
          "doors": {
            "title": "Doors",
            "enum": [
              "",
              "TWO_OR_THREE",
              "FOUR_OR_FIVE",
              "SIX_OR_SEVEN"
            ],
            "type": "string",
            "description": "Number of doors.",
            "default": ""
          },
          "maxPreviousOwners": {
            "title": "Maximum previous owners",
            "minimum": 1,
            "maximum": 4,
            "type": "integer",
            "description": "Up to this many previous owners (1-4)."
          },
          "driveType": {
            "title": "Drive type",
            "enum": [
              "",
              "ALL_WHEEL",
              "FRONT",
              "REAR"
            ],
            "type": "string",
            "description": "Which wheels are driven.",
            "default": ""
          },
          "emissionClass": {
            "title": "Emission class",
            "enum": [
              "",
              "EURO1",
              "EURO2",
              "EURO3",
              "EURO4",
              "EURO5",
              "EURO6",
              "EURO6C",
              "EURO6D_TEMP",
              "EURO6D",
              "EURO6E",
              "EURO7"
            ],
            "type": "string",
            "description": "Minimum emission standard.",
            "default": ""
          },
          "minSellerRating": {
            "title": "Minimum seller rating",
            "minimum": 3,
            "maximum": 5,
            "type": "integer",
            "description": "Only sellers rated at least this many stars (3-5)."
          },
          "keyword": {
            "title": "Keyword in description",
            "type": "string",
            "description": "Only listings whose description contains this text, e.g. panorama or Anhängerkupplung."
          },
          "sortBy": {
            "title": "Sort order",
            "enum": [
              "RELEVANCE",
              "PRICE_ASC",
              "PRICE_DESC",
              "FIRST_REGISTRATION_DESC",
              "FIRST_REGISTRATION_ASC",
              "MILEAGE_ASC",
              "MILEAGE_DESC",
              "CREATION_TIME",
              "CREATION_TIME_ASC"
            ],
            "type": "string",
            "description": "How results are ordered. In URL mode the order comes from the pasted link.",
            "default": "RELEVANCE"
          },
          "urls": {
            "title": "URLs (URL mode only)",
            "type": "array",
            "description": "Paste one or more mobile.de search or vehicle URLs. Each search URL is auto-paginated forward until Maximum Pages or Maximum Listings. Vehicle detail URLs are scraped directly. Filter fields are ignored in URL mode. Examples: https://suchen.mobile.de/auto/audi-a4.html or https://suchen.mobile.de/fahrzeuge/details.html?id=451972553",
            "items": {
              "type": "string"
            }
          },
          "fetchDetails": {
            "title": "Fetch full vehicle detail",
            "type": "boolean",
            "description": "Pull extra fields per listing from the detail page: full description, equipment list, full image gallery, registration codes (HSN/TSN), highlights, finance plan, and full dealer profile with address, opening hours, languages, phones list. Adds ~1 fetch per listing.",
            "default": false
          },
          "includeSponsored": {
            "title": "Include sponsored Top-Anzeige listings",
            "type": "boolean",
            "description": "Mobile.de injects 1-3 paid sponsored placements at the top of every result page; these always appear regardless of your filter. Off by default so filtered runs only return matching listings. Turn on if you want every entry the user sees, sponsored placements included.",
            "default": false
          },
          "maxListings": {
            "title": "Maximum listings",
            "minimum": 0,
            "type": "integer",
            "description": "Stop after this many listings across the whole run. 0 means no limit. In incremental mode only listings that are returned count towards it.",
            "default": 20
          },
          "maxPages": {
            "title": "Maximum pages per search",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Page cap per search. Leave at 1000 to let Maximum listings decide how much to collect. mobile.de itself shows at most 50 pages (about 1,000 listings) per search, so for very large searches split by model, price or location.",
            "default": 1000
          },
          "incrementalMode": {
            "title": "Incremental changes for scheduled runs",
            "type": "boolean",
            "description": "Turn this on for daily or recurring monitoring. The first run returns all matching listings as NEW. Later runs normally return only NEW, UPDATED and REAPPEARED listings, each marked with changeType (and changedFields for updates). Turn on \"Emit unchanged\" or \"Emit expired\" only when you also want those listings returned (and billed). State is kept separately for each search setup; use State key when you want to name or deliberately share a monitoring campaign.",
            "default": false
          },
          "stateKey": {
            "title": "State key (optional, incremental mode only)",
            "type": "string",
            "description": "Optional. Name this monitoring campaign to keep its state stable, or to deliberately share state across differently-configured runs. Leave empty to let the actor derive a key automatically from the mode, URLs and filter settings, so different searches never mix state with each other."
          },
          "emitUnchanged": {
            "title": "Emit unchanged listings (incremental mode only)",
            "type": "boolean",
            "description": "Off by default. Turn on to also return listings that have not changed since the last run, marked UNCHANGED. This returns (and bills) extra rows you already have, so leave it off unless you want the full snapshot every run.",
            "default": false
          },
          "emitExpired": {
            "title": "Emit expired listings (incremental mode only)",
            "type": "boolean",
            "description": "Off by default. Turn on to also return listings that were present in a previous run but are no longer found, marked EXPIRED. Only produced when a run has scanned every result of every tracked search (all pages read, nothing cut short by Maximum listings or Maximum pages, no page that failed to load). This returns (and bills) extra rows, so leave it off unless you need expiry tracking.",
            "default": false
          },
          "ignoreFieldsForChanges": {
            "title": "Ignore fields when detecting changes (incremental mode only)",
            "type": "array",
            "description": "Output field names that should NOT make a listing count as UPDATED. Always ignored: seller-level ratings (rating, reviewCount, sellerRecommendationRate, sellerAdRealityRate), which change for every listing of a dealer when one review arrives; modifiedAt and renewedAt, which move on dealer feed syncs and renewals; and listingType (the paid placement). Add fields such as description or images here if changes to them are not relevant to you. Ignored fields are still returned in the output.",
            "items": {
              "type": "string"
            }
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Mobile.de uses a behavioural edge filter that rejects most datacenter ranges. RESIDENTIAL with the country pinned to any EU country mobile.de covers (DE, AT, NL, FR, IT, ES, BE, CH, ...) works. DE is the default since most listings are in Germany, but feel free to change."
          },
          "mcpConnectors": {
            "title": "Pipe results into your apps (optional)",
            "type": "array",
            "description": "Optionally send the scraped results into the apps you already use, via Model Context Protocol (MCP) connectors. Authorize a connector once under Apify → Settings → Integrations, then select it here. The connector receives a condensed, human-readable summary per item (title + key fields), not the full JSON; the complete record stays in the dataset. Leave empty to skip. Supported: Notion (https://mcp.notion.com/mcp), Linear (https://mcp.linear.app/sse), Airtable (https://mcp.airtable.com/mcp), Apify (https://mcp.apify.com)."
          },
          "notionParentPageUrl": {
            "title": "Notion parent page (Notion connector only)",
            "type": "string",
            "description": "URL (or id) of the Notion page under which item pages are created. Required to enable the Notion export; ignored by other connectors."
          },
          "maxNotifyListings": {
            "title": "Max items to export per connector",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Cap on items written to each connector per run. Does not affect the dataset.",
            "default": 50
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}