{
  "openapi": "3.0.1",
  "info": {
    "title": "Autohero Scraper: Used Cars, Prices & VIN in 9 EU Countries",
    "description": "Scrape Autohero used-car listings in Germany, France, Spain, Italy, Belgium, Poland, Austria, Netherlands and Sweden: price, monthly payment, price drops, mileage, engine, CO2, owners, damages and branch. Optional details add VIN, equipment, damage photos, service history and warranties. No login.",
    "version": "0.1",
    "x-build-id": "VvGPsnrMdqTT0SSgm"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/oswaldocarabano~autohero-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-oswaldocarabano-autohero-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/oswaldocarabano~autohero-scraper/runs": {
      "post": {
        "operationId": "runs-sync-oswaldocarabano-autohero-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/oswaldocarabano~autohero-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-oswaldocarabano-autohero-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": {
          "outputType": {
            "title": "What to extract",
            "enum": [
              "cars",
              "branches"
            ],
            "type": "string",
            "description": "Cars (one row per car, the default) or Autohero branches (one row per branch or pickup centre, with address, branch phone, opening hours and how many of your filtered cars it holds). One row type per run, so every column in the dataset means one thing.",
            "default": "cars"
          },
          "countries": {
            "title": "Countries",
            "type": "array",
            "description": "Autohero markets to search. Stock measured on 1 Oct 2026: Germany 8,837 · France 3,850 · Spain 2,530 · Italy 2,392 · Belgium 1,459 · Poland 937 · Austria 770 · Sweden 397 · Netherlands 393. Prices come in each market's own currency (EUR, PLN or SEK), stated on every row.",
            "items": {
              "type": "string",
              "enum": [
                "DE",
                "AT",
                "FR",
                "IT",
                "ES",
                "PL",
                "SE",
                "NL",
                "BE"
              ],
              "enumTitles": [
                "Germany",
                "Austria",
                "France",
                "Italy",
                "Spain",
                "Poland",
                "Sweden",
                "Netherlands",
                "Belgium"
              ]
            },
            "default": [
              "DE"
            ]
          },
          "maxItems": {
            "title": "Maximum results",
            "minimum": 1,
            "maximum": 25000,
            "type": "integer",
            "description": "Hard cap for this run, shared fairly between the countries you pick. The cap is reserved before each request, so you are never charged for more rows than this.",
            "default": 100
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "newest",
              "most_popular",
              "price_asc",
              "price_desc",
              "mileage_asc",
              "make_asc"
            ],
            "type": "string",
            "description": "Only sort orders verified against the live site. Autohero rejects the others.",
            "default": "newest"
          },
          "makes": {
            "title": "Makes",
            "type": "array",
            "description": "Only these makes, e.g. Volkswagen, BMW, Audi. Autohero's make filter is case-sensitive, so common spellings are normalised for you (vw → Volkswagen, mercedes → Mercedes-Benz). Leave empty for every make.",
            "items": {
              "type": "string"
            }
          },
          "model": {
            "title": "Model",
            "type": "string",
            "description": "Model name as Autohero writes it, e.g. \"Golf VII\", \"Tiguan\", \"3er\", \"ID.3\" (not case-sensitive). A partial name such as \"Golf\" matches nothing. Best combined with one make. Letters, digits, spaces and . - + & ' ( ) ! only."
          },
          "minPrice": {
            "title": "Minimum price",
            "minimum": 0,
            "type": "integer",
            "description": "In the currency of each country (EUR, or PLN in Poland and SEK in Sweden)."
          },
          "maxPrice": {
            "title": "Maximum price",
            "minimum": 0,
            "type": "integer",
            "description": "In the currency of each country (EUR, or PLN in Poland and SEK in Sweden). Verified against the live site to narrow the results."
          },
          "maxMileage": {
            "title": "Maximum mileage (km)",
            "minimum": 0,
            "type": "integer",
            "description": "Only cars with at most this many kilometres."
          },
          "minYear": {
            "title": "First registered from (year)",
            "minimum": 1950,
            "maximum": 2100,
            "type": "integer",
            "description": "Only cars first registered in this year or later."
          },
          "maxYear": {
            "title": "First registered until (year)",
            "minimum": 1950,
            "maximum": 2100,
            "type": "integer",
            "description": "Only cars first registered in this year or earlier."
          },
          "minPowerKw": {
            "title": "Minimum power (kW)",
            "minimum": 0,
            "type": "integer",
            "description": "Only cars with at least this power. 1 kW = 1.36 hp."
          },
          "fuelTypes": {
            "title": "Fuel types",
            "type": "array",
            "description": "Leave empty for every fuel type.",
            "items": {
              "type": "string",
              "enum": [
                "petrol",
                "diesel",
                "electric",
                "hybrid"
              ],
              "enumTitles": [
                "Petrol",
                "Diesel",
                "Electric",
                "Hybrid"
              ]
            }
          },
          "transmissions": {
            "title": "Transmissions",
            "type": "array",
            "description": "Leave empty for every transmission.",
            "items": {
              "type": "string",
              "enum": [
                "manual",
                "automatic",
                "semi-automatic",
                "dual-clutch"
              ],
              "enumTitles": [
                "Manual",
                "Automatic",
                "Semi-automatic",
                "Dual-clutch"
              ]
            }
          },
          "includeDetails": {
            "title": "Include full car details",
            "type": "boolean",
            "description": "Adds 53 detail columns per car: VIN, body type, colour, doors and seats, the full equipment list (median 51 items), every documented damage with its photo, service history, dimensions, tyre season, battery and charging data for EVs, every gallery photo (median 42) and the warranty offers with prices. Billed as a separate event per car, only when the details actually arrive.",
            "default": false
          },
          "includePrivateSellerContact": {
            "title": "Include private seller contact details",
            "type": "boolean",
            "description": "Autohero sells its own stock, so every car measured was sold by the company and this switch changes nothing today. It exists so that, if private sellers ever appear, their contact details stay out of your data unless you turn it on.",
            "default": false
          },
          "maxConcurrency": {
            "title": "Parallel requests",
            "minimum": 1,
            "maximum": 8,
            "type": "integer",
            "description": "How many requests run at once. 3 is fast and polite; measured, the site served 25 requests per second without throttling, but a global pause kicks in if it ever asks us to slow down.",
            "default": 3
          },
          "maxCacheAgeDays": {
            "title": "Reuse details up to this many days old",
            "minimum": 0,
            "maximum": 30,
            "type": "integer",
            "description": "0 always fetches fresh details (the default). Rows served from a cache say so in from_cache and data_age_hours.",
            "default": 0
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Not needed: the actor works without a proxy. If the site ever starts refusing requests, it switches to an alternative route on its own. A proxy you set here is used for those retries; if it does not work, the run continues without it.",
            "default": {
              "useApifyProxy": 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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}