{
  "openapi": "3.0.1",
  "info": {
    "title": "Mobile.de Discovery — Machinery Search",
    "description": "Discover and extract vehicle search results from Mobile.de at scale. Covers cars, commercial vehicles, motorcycles, and motorhomes. Extract listing URLs, prices, key specs, and dealer info from search results pages. Use as a discovery layer before deep scraping.",
    "version": "0.7",
    "x-build-id": "DBE8zXkSE1NO1j6FQ"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/rastriq~mobilede-discovery/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-rastriq-mobilede-discovery",
        "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/rastriq~mobilede-discovery/runs": {
      "post": {
        "operationId": "runs-sync-rastriq-mobilede-discovery",
        "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/rastriq~mobilede-discovery/run-sync": {
      "post": {
        "operationId": "run-sync-rastriq-mobilede-discovery",
        "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": [
          "coverageMode",
          "dataDepth"
        ],
        "properties": {
          "coverageMode": {
            "title": "🎯 Market coverage",
            "enum": [
              "full_market",
              "custom_filters"
            ],
            "type": "string",
            "description": "Controls how many search slices the scraper visits.<br><br>• <b>Full market</b> — crawls all 68 internal slices (~30,600 listings). Best for complete census runs.<br>• <b>Custom filters</b> — apply category, condition, subtype and year filters below. Best for focused analysis or quick tests.",
            "default": "full_market"
          },
          "dataDepth": {
            "title": "📊 Data depth",
            "enum": [
              "summary_only",
              "summary_plus_detail"
            ],
            "type": "string",
            "description": "How much data to extract per listing.<br><br>• <b>Summary only</b> — ~14 fields from search cards (title, price, year, hours, location, seller). Fast and cheap.<br>• <b>Summary + detail</b> — also visits detail pages for premium fields (phone, serial number, specs). Slower, higher cost.",
            "default": "summary_only"
          },
          "maxItems": {
            "title": "Max listings",
            "minimum": 0,
            "type": "integer",
            "description": "Global limit on total listings to extract. <code>0</code> = no limit.<br>Use <b>50–100</b> for test runs, <b>0</b> for full market.",
            "default": 0
          },
          "catConstructionMachine": {
            "title": "🏗️ Construction Machines (Baumaschinen)",
            "type": "boolean",
            "description": "Excavators, loaders, cranes, dozers, rollers… · ~11,500 listings",
            "default": true
          },
          "catAgriculturalVehicle": {
            "title": "🚜 Agricultural Vehicles (Agrar)",
            "type": "boolean",
            "description": "Tractors, harvesters, seeders, ploughs, mulchers… · ~11,200 listings",
            "default": true
          },
          "catForkliftTruck": {
            "title": "📦 Forklifts (Stapler)",
            "type": "boolean",
            "description": "Front forklifts, telescopic, reach trucks, low lift… · ~7,900 listings",
            "default": true
          },
          "constructionSubtype": {
            "title": "Construction Machine subtype",
            "enum": [
              "all",
              "WheeledLoader",
              "MiniDigger",
              "CaterpillarDigger",
              "MobileDigger",
              "OtherConstructionMachine",
              "WorkingPlatform",
              "ConstructionMachine_OtherSubstructure",
              "ConstructionEquipment",
              "Roller",
              "ConstructionCrane",
              "RoadBuildingTechnology",
              "Dozer",
              "CompactionTechnology",
              "CombinedDredgerLoader",
              "Grader",
              "DrillMachine",
              "SoilStabiliser"
            ],
            "type": "string",
            "description": "Filter construction machines by equipment type. <b>All</b> = no filter.",
            "default": "all"
          },
          "agriculturalSubtype": {
            "title": "Agricultural Vehicle subtype",
            "enum": [
              "all",
              "FarmyardTractor",
              "HarrowingEquipment",
              "HarvestingMachine",
              "HaymakingEquipment",
              "OtherSubstructure",
              "Tractor",
              "Reaper",
              "Seeder",
              "FertilizerSpreader",
              "LoaderWagon",
              "CombineHarvester",
              "Mulcher",
              "Plough",
              "ForestryVehicle",
              "PlantProtection",
              "FrontEndLoader",
              "OtherAgriculturalVehicle",
              "OrchardEquipment"
            ],
            "type": "string",
            "description": "Filter agricultural vehicles by equipment type. <b>All</b> = no filter.",
            "default": "all"
          },
          "forkliftSubtype": {
            "title": "Forklift subtype",
            "enum": [
              "all",
              "FrontMountedForkliftTruck",
              "HighLiftTruck",
              "TelescopicForkliftTruck",
              "LowLiftTruck",
              "OtherForkliftTruck",
              "ReachForkliftTruck",
              "SideLoadingForkliftTruck",
              "RoughTerrainForkliftTruck",
              "ContainerForkliftTruck",
              "HighBayRackForkliftTruck"
            ],
            "type": "string",
            "description": "Filter forklifts by equipment type. <b>All</b> = no filter.",
            "default": "all"
          },
          "condition": {
            "title": "Condition",
            "enum": [
              "all",
              "new",
              "used"
            ],
            "type": "string",
            "description": "Filter by new or used equipment.",
            "default": "all"
          },
          "yearMode": {
            "title": "Year filter",
            "enum": [
              "all",
              "range"
            ],
            "type": "string",
            "description": "Enable year range filtering.",
            "default": "all"
          },
          "yearFrom": {
            "title": "Year from",
            "minimum": 1950,
            "maximum": 2030,
            "type": "integer",
            "description": "Minimum manufacture year (inclusive). Only active when year filter = range."
          },
          "yearTo": {
            "title": "Year to",
            "minimum": 1950,
            "maximum": 2030,
            "type": "integer",
            "description": "Maximum manufacture year (inclusive). Only active when year filter = range."
          },
          "detailStrategy": {
            "title": "Detail strategy",
            "enum": [
              "missing_only",
              "all_items"
            ],
            "type": "string",
            "description": "When extracting detail pages, should the scraper visit <b>every</b> listing or only those where the search card is missing key fields (price, year, hours)?<br><br>• <b>Missing only</b> — skips detail pages when the search card already has all key fields. Saves time and proxy cost.<br>• <b>All items</b> — visits every detail page regardless. Gets the most complete data but takes longer.",
            "default": "missing_only"
          },
          "includeImages": {
            "title": "Include image URLs",
            "type": "boolean",
            "description": "Extract image URLs from each listing.",
            "default": true
          },
          "includeSellerContacts": {
            "title": "Include seller contacts",
            "type": "boolean",
            "description": "Extract seller phone and email. Full phone numbers require Summary + detail mode.",
            "default": false
          },
          "maxPagesPerSlice": {
            "title": "Max pages per slice",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Pages of results per internal slice. Each page has about 20 listings. Use 1 for quick test, 50 for full coverage.",
            "default": 50
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "A German residential proxy is mandatory. Datacenter IPs are blocked."
          },
          "debugMode": {
            "title": "Debug mode",
            "type": "boolean",
            "description": "Adds diagnostic fields to output. Not recommended for production.",
            "default": false
          },
          "vehicleCategories": {
            "title": "Vehicle categories (API)",
            "type": "array",
            "description": "Legacy array field for API backward compatibility.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "subtypes": {
            "title": "Subtypes (API)",
            "type": "array",
            "description": "Legacy array field for API backward compatibility.",
            "items": {
              "type": "string"
            },
            "default": []
          }
        }
      },
      "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}