{
  "openapi": "3.0.1",
  "info": {
    "title": "Mobile.de Scraper [$0.21/1k]",
    "description": "Fastest, cheapest way to scrape Mobile.de. 600 car listings per minute, full specs, prices and images, no 2,000-result limit. From $0.21 per 1,000.",
    "version": "1.1",
    "x-build-id": "5INd0Qn3zc2HJJYyf"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/cocoa_kit~mobile-de-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-cocoa_kit-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/cocoa_kit~mobile-de-scraper/runs": {
      "post": {
        "operationId": "runs-sync-cocoa_kit-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/cocoa_kit~mobile-de-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-cocoa_kit-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": {
          "searchPageURLs": {
            "title": "Search URLs and listing URLs",
            "type": "array",
            "description": "Make a search on Mobile.de for cars or for a different vehicle category, and paste the URL of the results page (`https://suchen.mobile.de/fahrzeuge/search.html?...`). The Actor keeps all filters of the URL. You can also paste URLs of single listings. If you leave this empty, the Actor uses the fields in \"Search with filters\".",
            "items": {
              "type": "string"
            }
          },
          "searchPageURLMaxItems": {
            "title": "Maximum listings for each search",
            "minimum": 1,
            "maximum": 200000,
            "type": "integer",
            "description": "The Actor stops a search when it selected this number of listings. This limit applies to each search URL and to the search with filters. Mobile.de serves a maximum of 2,000 results for one search. If the limit is more than 2,000 and the search has more than 2,000 results, the Actor divides the search into price ranges automatically.",
            "default": 100
          },
          "includeDetails": {
            "title": "Include listing details",
            "type": "boolean",
            "description": "If you set this to false, the Actor does not request each listing. The run is faster, but the records have no description, no features, and fewer attributes.",
            "default": true
          },
          "includeSellerDetails": {
            "title": "Include dealer contact data",
            "type": "boolean",
            "description": "Name, address, telephone, website, and opening hours of dealers. For private sellers, the records contain only the seller type and the country.",
            "default": true
          },
          "includeReviews": {
            "title": "Include dealer reviews",
            "type": "boolean",
            "description": "Get the newest reviews of each dealer: date, scores, text, and the reply of the dealer. The price stays the same, but a run with many dealers takes approximately 50% longer. Only with \"Include listing details\".",
            "default": false
          },
          "reviewLimit": {
            "title": "Reviews for each dealer",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "Maximum number of the newest reviews for each dealer.",
            "default": 5
          },
          "language": {
            "title": "Language",
            "enum": [
              "en",
              "de"
            ],
            "type": "string",
            "description": "Language of the attribute names, attribute values, and features.",
            "default": "en"
          },
          "vehicleType": {
            "title": "Vehicle type",
            "enum": [
              "Car",
              "Motorbike",
              "Motorhome",
              "VanUpTo7500",
              "TruckOver7500",
              "SemiTrailerTruck",
              "Trailer",
              "SemiTrailer",
              "Bus",
              "ConstructionMachine",
              "AgriculturalVehicle",
              "ForkliftTruck",
              "EBike"
            ],
            "type": "string",
            "description": "Vehicle category of the search.",
            "default": "Car"
          },
          "make": {
            "title": "Make",
            "type": "string",
            "description": "Name of the make as Mobile.de shows it, for example \"Volkswagen\", \"BMW\", or \"Mercedes-Benz\". Upper case and lower case are the same. If the name is not correct, the run stops and shows similar names.",
            "default": ""
          },
          "models": {
            "title": "Models",
            "type": "array",
            "description": "Names of models of the make, for example \"Golf\" and \"Polo\". You can also use the name of a model group, for example \"3er\". If you leave this empty, the Actor gets all models of the make. Set \"Make\" before you use this field.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "priceMin": {
            "title": "Minimum price",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum gross price in euros."
          },
          "priceMax": {
            "title": "Maximum price",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum gross price in euros."
          },
          "yearMin": {
            "title": "First registration from (year)",
            "minimum": 0,
            "type": "integer",
            "description": "Earliest year of first registration, for example 2018."
          },
          "yearMax": {
            "title": "First registration to (year)",
            "minimum": 0,
            "type": "integer",
            "description": "Latest year of first registration."
          },
          "mileageMin": {
            "title": "Minimum mileage",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum mileage in kilometres."
          },
          "mileageMax": {
            "title": "Maximum mileage",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum mileage in kilometres."
          },
          "powerHpMin": {
            "title": "Minimum power",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum power in hp (PS)."
          },
          "powerHpMax": {
            "title": "Maximum power",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum power in hp (PS)."
          },
          "fuelTypes": {
            "title": "Fuel",
            "type": "array",
            "description": "Get only vehicles with one of these fuels. If you select none, all fuels are included.",
            "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",
                "Other"
              ]
            },
            "default": []
          },
          "transmissions": {
            "title": "Transmission",
            "type": "array",
            "description": "Get only vehicles with one of these transmissions. If you select none, all transmissions are included.",
            "items": {
              "type": "string",
              "enum": [
                "MANUAL_GEAR",
                "AUTOMATIC_GEAR",
                "SEMIAUTOMATIC_GEAR"
              ],
              "enumTitles": [
                "Manual",
                "Automatic",
                "Semi-automatic"
              ]
            },
            "default": []
          },
          "bodyTypes": {
            "title": "Body type (cars only)",
            "type": "array",
            "description": "Get only cars with one of these body types. Use this field only when the vehicle type is \"Car\".",
            "items": {
              "type": "string",
              "enum": [
                "SmallCar",
                "Limousine",
                "EstateCar",
                "Cabrio",
                "SportsCar",
                "OffRoad",
                "Van",
                "OtherCar"
              ],
              "enumTitles": [
                "Small car",
                "Saloon",
                "Estate car",
                "Convertible",
                "Sports car / coupé",
                "SUV / off-road",
                "Van / minibus",
                "Other"
              ]
            },
            "default": []
          },
          "colors": {
            "title": "Exterior colour",
            "type": "array",
            "description": "Get only vehicles with one of these colours. If you select none, all colours are included.",
            "items": {
              "type": "string",
              "enum": [
                "BLACK",
                "WHITE",
                "GREY",
                "SILVER",
                "BLUE",
                "RED",
                "GREEN",
                "YELLOW",
                "ORANGE",
                "BROWN",
                "BEIGE",
                "GOLD",
                "PURPLE"
              ],
              "enumTitles": [
                "Black",
                "White",
                "Grey",
                "Silver",
                "Blue",
                "Red",
                "Green",
                "Yellow",
                "Orange",
                "Brown",
                "Beige",
                "Gold",
                "Purple"
              ]
            },
            "default": []
          },
          "condition": {
            "title": "Condition",
            "enum": [
              "ANY",
              "NEW",
              "USED"
            ],
            "type": "string",
            "description": "New vehicles, used vehicles, or both.",
            "default": "ANY"
          },
          "damagedVehicles": {
            "title": "Damaged vehicles",
            "enum": [
              "ANY",
              "EXCLUDE",
              "ONLY"
            ],
            "type": "string",
            "description": "Include damaged vehicles, remove them, or get only damaged vehicles.",
            "default": "ANY"
          },
          "sellerType": {
            "title": "Seller",
            "enum": [
              "ANY",
              "DEALER",
              "PRIVATE"
            ],
            "type": "string",
            "description": "Dealers, private sellers, or both.",
            "default": "ANY"
          },
          "postcode": {
            "title": "Postcode",
            "type": "string",
            "description": "German postcode with 5 digits, for example \"10115\". The Actor gets the vehicles in the radius around this postcode.",
            "default": ""
          },
          "radiusKm": {
            "title": "Radius",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Distance from the postcode. The Actor uses this field only when you set a postcode.",
            "default": 50
          },
          "sortBy": {
            "title": "Sort order",
            "enum": [
              "STANDARD",
              "PRICE_ASC",
              "PRICE_DESC",
              "MILEAGE_ASC",
              "MILEAGE_DESC",
              "YEAR_DESC",
              "YEAR_ASC",
              "NEWEST",
              "OLDEST"
            ],
            "type": "string",
            "description": "Order of the results. When the Actor divides a search of more than 2,000 results into price ranges, the order applies in each price range.",
            "default": "STANDARD"
          },
          "automaticPaging": {
            "title": "Automatic paging",
            "type": "boolean",
            "description": "If you set this to false, the Actor reads only the first page (100 results) of each search and does not divide a search.",
            "default": true
          },
          "searchCategory": {
            "title": "Search category",
            "type": "string",
            "description": "Vehicle class for a search URL that has no `vc` parameter and no `s` parameter.",
            "default": "Car"
          },
          "maxRequestsPerMinute": {
            "title": "Maximum requests for each minute",
            "minimum": 1,
            "maximum": 3000,
            "type": "integer",
            "description": "Rate limit for the requests to Mobile.de.",
            "default": 600
          },
          "maxConcurrency": {
            "title": "Maximum concurrency",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Maximum number of requests that the Actor sends at the same time.",
            "default": 20
          },
          "maxRequestRetries": {
            "title": "Maximum retries",
            "minimum": 0,
            "maximum": 20,
            "type": "integer",
            "description": "Number of times that the Actor tries a failed request again. The Actor waits longer before each retry.",
            "default": 8
          },
          "maxDetailFailurePercent": {
            "title": "Permitted listing failures (%)",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "The run fails if more than this percentage of the selected listings failed after all retries. A listing that Mobile.de removed is not a failure.",
            "default": 10
          },
          "proxyUse": {
            "title": "Use of the proxy",
            "enum": [
              "WHEN_BLOCKED",
              "ALWAYS",
              "NEVER"
            ],
            "type": "string",
            "description": "Direct requests are faster and use less CPU. Mobile.de blocks an IP address for some time if it gets too many requests from it. WHEN_BLOCKED: send direct requests and use the proxy for some time (10 minutes or more) after a block. ALWAYS: send all requests through the proxy. NEVER: send direct requests only.",
            "default": "WHEN_BLOCKED"
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Proxy that the Actor uses in agreement with \"Use of the proxy\". The default is Apify Proxy with automatic selection of datacenter addresses.",
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}