{
  "openapi": "3.0.1",
  "info": {
    "title": "mobile.de Scraper — Cars, Prices & Dealers",
    "description": "Scrape mobile.de car listings from any search URL or make, model and filters: price (gross/net), price rating, mileage, first registration, power, fuel, dealer, images, optional full specs.",
    "version": "0.1",
    "x-build-id": "ho6QSwzcC8LjOawqX"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/tortuga~mobile-de-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-tortuga-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/tortuga~mobile-de-scraper/runs": {
      "post": {
        "operationId": "runs-sync-tortuga-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/tortuga~mobile-de-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-tortuga-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",
        "properties": {
          "startUrls": {
            "title": "Start URLs",
            "type": "array",
            "description": "mobile.de search URLs with any filters and sort set in the browser (open the search on suchen.mobile.de and copy the address bar, e.g. https://suchen.mobile.de/fahrzeuge/search.html?isSearchRequest=true&ms=3500%3B%3B21%3B&vc=Car), or single listing URLs (https://suchen.mobile.de/fahrzeuge/details.html?id=... or .../auto-inserat/.../<id>.html), which return that listing with full details. Leave empty if you use the Make / Model search fields below.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "make": {
            "title": "Make",
            "type": "string",
            "description": "Brand as shown on mobile.de, e.g. BMW, Volkswagen (or VW), Mercedes-Benz, Audi, Tesla, Porsche. Leave empty for all makes."
          },
          "model": {
            "title": "Model",
            "type": "string",
            "description": "Model or model series as named on mobile.de, e.g. 3er (the whole 3 Series), 320, X5, Golf, A6, C-Klasse, Model 3. Needs a make. The run fails with the list of valid names if it is not found."
          },
          "variant": {
            "title": "Model description (free text)",
            "type": "string",
            "description": "Text that must appear in the model description, e.g. 320d, Avant, GTI, quattro."
          },
          "priceFrom": {
            "title": "Price from (EUR)",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum asking price (gross) in euros."
          },
          "priceTo": {
            "title": "Price to (EUR)",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum asking price (gross) in euros."
          },
          "yearFrom": {
            "title": "First registration from (year)",
            "minimum": 1900,
            "maximum": 2100,
            "type": "integer",
            "description": "Earliest year of first registration, e.g. 2018."
          },
          "yearTo": {
            "title": "First registration to (year)",
            "minimum": 1900,
            "maximum": 2100,
            "type": "integer",
            "description": "Latest year of first registration."
          },
          "mileageFrom": {
            "title": "Mileage from (km)",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum mileage in kilometres."
          },
          "mileageTo": {
            "title": "Mileage to (km)",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum mileage in kilometres."
          },
          "powerFromKw": {
            "title": "Power from (kW)",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum engine power in kW (1 kW = 1.36 hp; 100 kW = 136 hp)."
          },
          "powerToKw": {
            "title": "Power to (kW)",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum engine power in kW."
          },
          "fuelTypes": {
            "title": "Fuel types",
            "type": "array",
            "description": "Only these fuel types. Leave empty for all.",
            "items": {
              "type": "string",
              "enum": [
                "petrol",
                "diesel",
                "electric",
                "hybrid",
                "hybrid_diesel",
                "lpg",
                "cng",
                "hydrogen",
                "ethanol",
                "other"
              ],
              "enumTitles": [
                "Petrol",
                "Diesel",
                "Electric",
                "Hybrid (petrol/electric)",
                "Hybrid (diesel/electric)",
                "LPG",
                "CNG",
                "Hydrogen",
                "Ethanol",
                "Other"
              ]
            }
          },
          "gearbox": {
            "title": "Gearbox",
            "type": "array",
            "description": "Only these transmissions. Leave empty for all.",
            "items": {
              "type": "string",
              "enum": [
                "automatic",
                "manual",
                "semiautomatic"
              ],
              "enumTitles": [
                "Automatic",
                "Manual",
                "Semi-automatic"
              ]
            }
          },
          "bodyTypes": {
            "title": "Body types",
            "type": "array",
            "description": "Only these body types. Leave empty for all.",
            "items": {
              "type": "string",
              "enum": [
                "sedan",
                "estate",
                "suv",
                "small",
                "cabrio",
                "sports",
                "van",
                "other"
              ],
              "enumTitles": [
                "Saloon / sedan (Limousine)",
                "Estate (Kombi)",
                "SUV / off-road / pickup",
                "Small car",
                "Convertible / roadster",
                "Sports car / coupé",
                "Van / minibus",
                "Other"
              ]
            }
          },
          "condition": {
            "title": "Condition",
            "enum": [
              "",
              "used",
              "new"
            ],
            "type": "string",
            "description": "Only new or only used cars. Leave empty for both."
          },
          "sellerType": {
            "title": "Seller type",
            "enum": [
              "",
              "dealer",
              "private",
              "company"
            ],
            "type": "string",
            "description": "Only dealers, only private sellers, or only company cars (Firmenfahrzeuge). Leave empty for all."
          },
          "location": {
            "title": "Postcode or town (Germany)",
            "type": "string",
            "description": "Search around this German postcode or town, e.g. 10115, 80331, Köln, Hamburg. Leave empty for all locations (mobile.de also lists cars from other EU countries)."
          },
          "radiusKm": {
            "title": "Radius (km)",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Used with Postcode or town: distance around it in km (mobile.de offers 10, 20, 50, 100, 200, 500). Empty = 50 km."
          },
          "sort": {
            "title": "Sort",
            "enum": [
              "newest",
              "relevance",
              "price_asc",
              "price_desc",
              "mileage_asc",
              "year_desc",
              "power_desc"
            ],
            "type": "string",
            "description": "Order of the results. Applies to the Make / Model search and to start URLs that have no sort of their own. 'Newest first' (online since, incl. renewed ads) is best for monitoring.",
            "default": "newest"
          },
          "maxItems": {
            "title": "Max items",
            "minimum": 1,
            "type": "integer",
            "description": "Stop after this many listings in total (across all searches). Keeps cost predictable. mobile.de returns at most 2,000 listings per search; larger searches are split into price bands automatically (see below).",
            "default": 100
          },
          "splitLargeSearches": {
            "title": "Split searches over 2,000 results",
            "type": "boolean",
            "description": "mobile.de serves at most 2,000 listings per search. When a search has more and Max items asks for more, cut it into price bands of up to 2,000 listings each (a few tiny count requests) so you can get every listing. Results then come band by band, cheapest band first.",
            "default": true
          },
          "includeDetails": {
            "title": "Include listing details",
            "type": "boolean",
            "description": "Also load every listing's full record: description text, complete equipment list, technical data table (consumption, CO2, HU, interior, trim line, construction year ...), accident-free status, dealer languages / member since / contact person. One extra request per listing; charged as an extra 'detail' event (see pricing).",
            "default": false
          },
          "onlyNewOrChanged": {
            "title": "Only new or changed items",
            "type": "boolean",
            "description": "Remember what earlier runs of this search returned and output only new listings or listings whose price changed. Use with a Schedule; unchanged items are not charged. With this on, Max items is the number of listings checked per run (e.g. the newest 200).",
            "default": false
          },
          "monitoringKey": {
            "title": "Monitoring key",
            "type": "string",
            "description": "Name for this watch, so several schedules on the same search stay separate; defaults to a key derived from the search input"
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "mobile.de is protected by Akamai, which turns away most datacenter IPs. Apify RESIDENTIAL proxy (Germany) is the default and works reliably; residential traffic is billed by Apify per GB, and this actor uses about 1 MB per 1,000 listings (about 8 MB with details).",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ],
              "apifyProxyCountry": "DE"
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}