{
  "openapi": "3.0.1",
  "info": {
    "title": "Car & Classic [$1💰] | Full 46k catalogue | Beats 10k cap",
    "description": "💰$1 per 1,000 listings. Scrape the FULL Car & Classic catalogue. The site's API serves only the first 10,000 results of any search, so rival scrapers stop there; this one slices automatically and gets all ~46,000 listings across Europe, with dealer phones and live auction bids.",
    "version": "0.0",
    "x-build-id": "KenqY8v1lfAhJIyqj"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/memo23~carandclassic-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-memo23-carandclassic-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/memo23~carandclassic-scraper/runs": {
      "post": {
        "operationId": "runs-sync-memo23-carandclassic-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/memo23~carandclassic-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-memo23-carandclassic-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": "Car & Classic search or listing URLs",
            "type": "array",
            "description": "Optional. Build a search on carandclassic.com, copy the URL and paste it here — its query string maps directly onto the API, so results match the site exactly. Paste several to scrape several searches in one run. A single listing's URL (/car/C…, /l/C…, /auctions/…, /make-an-offer/…) returns just that listing, one row each, always with full details. Leave empty to use the filters below.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "maxItems": {
            "title": "Max results",
            "minimum": 1,
            "type": "integer",
            "description": "Maximum listings to return. Car & Classic holds roughly 46,000, so set this deliberately.",
            "default": 1000
          },
          "includeDetails": {
            "title": "Fetch full listing details",
            "type": "boolean",
            "description": "Off by default. Car & Classic's search results no longer carry everything, so turning this on makes one extra request per listing to fill createdAt, modifiedAt, vehicleGroup, description (the seller's full write-up as plain text), bodyTypeFromText (convertible, coupe and so on, read from the seller's wording) and every photo URL (search returns only the first five), plus the dealer's latitude and longitude on dealer classifieds. Runs take longer and rows are a few KB larger.",
            "default": false
          },
          "makes": {
            "title": "Makes",
            "type": "array",
            "description": "Make slugs, e.g. [\"porsche\",\"jaguar\"]. Each is searched separately.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "model": {
            "title": "Model",
            "type": "string",
            "description": "Model slug, e.g. 911. Meaningful with a single make."
          },
          "variant": {
            "title": "Variant",
            "type": "string",
            "description": "Variant slug, e.g. gt3."
          },
          "generation": {
            "title": "Generation",
            "type": "string",
            "description": "Generation slug, e.g. 991-2."
          },
          "keywords": {
            "title": "Keywords",
            "type": "string",
            "description": "Free-text search across listings."
          },
          "vehicleType": {
            "title": "Vehicle type",
            "enum": [
              "",
              "cars",
              "motorcycles",
              "commercial-vehicles"
            ],
            "type": "string",
            "description": "Car & Classic also lists motorcycles and commercial vehicles.",
            "default": ""
          },
          "listingType": {
            "title": "Listing type",
            "enum": [
              "",
              "auctions",
              "classifieds"
            ],
            "type": "string",
            "description": "Auctions carry live bid counts and reserve status. Note only currently-live auctions are available; Car & Classic does not expose completed/sold auctions through this API.",
            "default": ""
          },
          "priceMin": {
            "title": "Min price",
            "minimum": 0,
            "type": "integer",
            "description": "Lowest asking price, in whole currency units."
          },
          "priceMax": {
            "title": "Max price",
            "minimum": 0,
            "type": "integer",
            "description": "Highest asking price, in whole currency units."
          },
          "yearMin": {
            "title": "Min year",
            "minimum": 1800,
            "type": "integer",
            "description": "Earliest year."
          },
          "yearMax": {
            "title": "Max year",
            "minimum": 1800,
            "type": "integer",
            "description": "Latest year."
          },
          "mileageMin": {
            "title": "Min mileage",
            "minimum": 0,
            "type": "integer",
            "description": "Lowest recorded mileage."
          },
          "mileageMax": {
            "title": "Max mileage",
            "minimum": 0,
            "type": "integer",
            "description": "Highest recorded mileage."
          },
          "engineSizeMinCc": {
            "title": "Min engine size (cc)",
            "minimum": 0,
            "type": "integer",
            "description": "Smallest engine capacity in cc."
          },
          "engineSizeMaxCc": {
            "title": "Max engine size (cc)",
            "minimum": 0,
            "type": "integer",
            "description": "Largest engine capacity in cc."
          },
          "colours": {
            "title": "Colour",
            "type": "array",
            "description": "Exterior colour. The API takes one at a time, so the first is used.",
            "items": {
              "type": "string",
              "enum": [
                "red",
                "black",
                "blue",
                "white",
                "grey",
                "silver",
                "green",
                "yellow",
                "beige",
                "brown",
                "orange",
                "gold",
                "purple",
                "pink",
                "multicolour"
              ],
              "enumTitles": [
                "Red",
                "Black",
                "Blue",
                "White",
                "Grey",
                "Silver",
                "Green",
                "Yellow",
                "Beige",
                "Brown",
                "Orange",
                "Gold",
                "Purple",
                "Pink",
                "Multicolour"
              ]
            },
            "default": []
          },
          "transmission": {
            "title": "Transmission",
            "enum": [
              "",
              "manual",
              "automatic"
            ],
            "type": "string",
            "description": "Gearbox type.",
            "default": ""
          },
          "steeringPosition": {
            "title": "Steering",
            "enum": [
              "",
              "lhd",
              "rhd"
            ],
            "type": "string",
            "description": "Useful on a pan-European site — roughly half the catalogue is LHD.",
            "default": ""
          },
          "sellerType": {
            "title": "Seller type",
            "enum": [
              "",
              "dealer",
              "private"
            ],
            "type": "string",
            "description": "Dealer listings also carry the dealer's name, phone number and website.",
            "default": ""
          },
          "country": {
            "title": "Country",
            "enum": [
              "",
              "GB",
              "FR",
              "IT",
              "NL",
              "US",
              "BE",
              "DE",
              "ES",
              "PT",
              "DK",
              "SE",
              "AU"
            ],
            "type": "string",
            "description": "ISO country code. The catalogue is pan-European: GB ~20,700, FR ~8,600, IT ~7,100.",
            "default": ""
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Parallel dataset writes, and parallel detail requests when full listing details are on.",
            "default": 10
          },
          "proxy": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Optional. Direct connections work well here and are the default; a proxy is rarely needed."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}