{
  "openapi": "3.0.1",
  "info": {
    "title": "mobile.de Scraper: Car Prices, Price Rating & New Listings",
    "description": "Get mobile.de car listings for BMW, VW or Audi with price rating, mileage, registration, specs, dealer and location. Track new listings, price drops and observed price history. $0.0015 per listing, $0.0015 extra for details, $0.002 start. No login. Car listings Germany data.",
    "version": "1.0",
    "x-build-id": "BHNzFel46be7TG9SV"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/moggedhq~mobile-de-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-moggedhq-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/moggedhq~mobile-de-scraper/runs": {
      "post": {
        "operationId": "runs-sync-moggedhq-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/moggedhq~mobile-de-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-moggedhq-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": "Search, category, dealer or listing URLs",
            "type": "array",
            "description": "Optional HTTPS mobile.de URLs. Pasted search filters are preserved. Structured filters override matching URL filters. Direct listing URLs ignore search filters.",
            "items": {
              "type": "string"
            }
          },
          "make": {
            "title": "Make",
            "type": "string",
            "description": "Manufacturer name, for example BMW, Volkswagen, Audi, Mercedes-Benz or Toyota. Resolved using mobile.de's own model catalogue. Used when startUrls is empty."
          },
          "model": {
            "title": "Model",
            "type": "string",
            "description": "Model or model family, for example 320, Golf, A4 or C-Klasse. Requires make. Used when startUrls is empty."
          },
          "priceMin": {
            "title": "Minimum price",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum asking price in EUR."
          },
          "priceMax": {
            "title": "Maximum price",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum asking price in EUR."
          },
          "yearFrom": {
            "title": "First registration from year",
            "minimum": 0,
            "type": "integer",
            "description": "Earliest first-registration year, not manufacture year."
          },
          "mileageMax": {
            "title": "Maximum mileage",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum odometer reading in kilometres."
          },
          "fuel": {
            "title": "Fuel",
            "enum": [
              "",
              "petrol",
              "diesel",
              "electric",
              "hybrid",
              "lpg",
              "cng",
              "hydrogen"
            ],
            "type": "string",
            "description": "Optional fuel filter applied by mobile.de.",
            "default": ""
          },
          "postcode": {
            "title": "German postcode",
            "type": "string",
            "description": "Optional five-digit postcode. Radius uses an approximate GeoNames postcode centre. Unknown postcodes produce a free note, never a national fallback."
          },
          "radiusKm": {
            "title": "Radius in kilometres",
            "minimum": 5,
            "maximum": 500,
            "type": "integer",
            "description": "Radius around the postcode centre. The site applies the distance filter; a postcode alone is not an exact postcode match.",
            "default": 100
          },
          "sellerType": {
            "title": "Seller type",
            "enum": [
              "any",
              "dealer",
              "private"
            ],
            "type": "string",
            "description": "Any seller, registered business dealer, or private seller. Private seller names and phone numbers are never included.",
            "default": "any"
          },
          "maxItems": {
            "title": "Maximum listings",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Maximum distinct listings delivered, from 1 to 10,000. In only-new mode, also caps inspected IDs. $0.0015 per listing, another $0.0015 for full details, plus $0.002 start. 20 basic listings cost about $0.032.",
            "default": 20
          },
          "includeDetails": {
            "title": "Include full specifications and equipment",
            "type": "boolean",
            "description": "Fetch full specifications, equipment, images and source-advertised reductions where shown. Adds $0.0015 only when details are delivered, for $0.003 total per detailed listing. Slower.",
            "default": false
          },
          "onlyNewSinceLastRun": {
            "title": "Only listings first seen by this watch",
            "type": "boolean",
            "description": "Skip previously observed IDs. Strictly new listings only, including the first baseline run. To see price changes for existing cars, leave this off and reuse watchId. Inspections and skipped listings have no listing fee. Run a watch sequentially. maxItems caps the number inspected, so a run can return fewer new listings.",
            "default": false
          },
          "watchId": {
            "title": "Watch ID",
            "type": "string",
            "description": "Reuse a stable ID on daily runs to compare prices and identify first-seen listings. Each user and Actor have separate named storage. Use a different ID for a separate history. Resume an unfinished run before reusing its watch ID. Keeps up to ten observed price states, observation counts and lifetime price extrema. This is your own observation history, without historical backfill.",
            "default": "default"
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Default: datacenter first, then German residential after a refusal. Fresh sessions and serial paced requests. Custom proxy URLs or explicit groups override this strategy.",
            "default": {
              "useApifyProxy": true
            }
          },
          "onlyChangesSinceLastRun": {
            "title": "Only new listings or price changes",
            "type": "boolean",
            "description": "Return first-seen listings and listings whose asking price or currency changed. Unchanged inspections have no listing or details fee. maxItems caps inspected IDs. Use a stable watchId and sequential runs. onlyNewSinceLastRun takes precedence if both options are on.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}