{
  "openapi": "3.0.1",
  "info": {
    "title": "Cars.com Zipcode Scraper",
    "description": "Scrape used car listings from cars.com by ZIP code, radius, and make, including vin, makeName, modelName, carYear, price, mileage, serviceProviderName, sellerRating, and detailUrl. Export data, run via API, schedule and monitor runs, or integrate with other tools.",
    "version": "0.0",
    "x-build-id": "Pq5cbIhbcEMlSbfuI"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/e-commerce~cars-com-zipcode-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-e-commerce-cars-com-zipcode-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/e-commerce~cars-com-zipcode-scraper/runs": {
      "post": {
        "operationId": "runs-sync-e-commerce-cars-com-zipcode-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/e-commerce~cars-com-zipcode-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-e-commerce-cars-com-zipcode-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",
        "required": [
          "zips"
        ],
        "properties": {
          "zips": {
            "title": "Enter zip codes",
            "type": "array",
            "description": "ZIPs to start with",
            "default": [
              "90210",
              "73099",
              "77494",
              "37042"
            ],
            "items": {
              "type": "string"
            }
          },
          "carBrands": {
            "title": "Car Brands",
            "type": "array",
            "description": "Select the car brands to scrape listings for.",
            "items": {
              "type": "string",
              "enum": [
                "Acura",
                "Alfa Romeo",
                "Audi",
                "Bentley",
                "BMW",
                "Buick",
                "Cadillac",
                "Chevrolet",
                "Chrysler",
                "Dodge",
                "FIAT",
                "Ford",
                "Genesis",
                "GMC",
                "Honda",
                "Hyundai",
                "INFINITI",
                "Jaguar",
                "Jeep",
                "Kia",
                "Land Rover",
                "Lexus",
                "Lincoln",
                "Maserati",
                "Mazda",
                "Mercedes-Benz",
                "MINI",
                "Mitsubishi",
                "Nissan",
                "Porsche",
                "RAM",
                "Subaru",
                "Toyota",
                "Volkswagen",
                "Volvo",
                "Aston Martin",
                "Ferrari",
                "Ineos",
                "Karma",
                "Lamborghini",
                "Lotus",
                "McLaren",
                "Polestar",
                "Rivian",
                "Rolls-Royce",
                "VinFast"
              ],
              "enumTitles": [
                "Acura",
                "Alfa Romeo",
                "Audi",
                "Bentley",
                "BMW",
                "Buick",
                "Cadillac",
                "Chevrolet",
                "Chrysler",
                "Dodge",
                "FIAT",
                "Ford",
                "Genesis",
                "GMC",
                "Honda",
                "Hyundai",
                "INFINITI",
                "Jaguar",
                "Jeep",
                "Kia",
                "Land Rover",
                "Lexus",
                "Lincoln",
                "Maserati",
                "Mazda",
                "Mercedes-Benz",
                "MINI",
                "Mitsubishi",
                "Nissan",
                "Porsche",
                "RAM",
                "Subaru",
                "Toyota",
                "Volkswagen",
                "Volvo",
                "Aston Martin",
                "Ferrari",
                "Ineos",
                "Karma",
                "Lamborghini",
                "Lotus",
                "McLaren",
                "Polestar",
                "Rivian",
                "Rolls-Royce",
                "VinFast"
              ]
            }
          },
          "radius": {
            "title": "Radius",
            "enum": [
              "10 miles",
              "25 miles",
              "50 miles",
              "75 miles",
              "100 miles",
              "150 miles",
              "200 miles",
              "500 miles",
              "Nationwide"
            ],
            "type": "string",
            "description": "Search radius within which listings will be scraped.",
            "default": "100 miles"
          },
          "maxRequestsPerCrawl": {
            "title": "Max requests per crawl",
            "minimum": 1,
            "type": "integer",
            "description": "Optional cap on total requests (search pages + detail pages). Leave empty to scrape every result across all pages. Useful for bounded test runs."
          },
          "scrapeVehicleDetails": {
            "title": "Scrape vehicle detail pages",
            "type": "boolean",
            "description": "When enabled, the actor opens each listing's vehicle detail page (VDP) to fill detail-only fields: transmission, interior color, engine, stock number, accident and owner counts, personal-use flag, and the dealer phone number. This renders one extra browser page per listing, so it is slower and more expensive than the default search-only mode.",
            "default": false
          },
          "carModels": {
            "title": "Car models",
            "type": "array",
            "description": "Narrow the search to particular models, e.g. Camry, F-150, Bronco Sport. Each name is turned into cars.com's own model slug for the brands above (Ford + F-150 -> ford-f_150), and cars.com's echo of the search it ran is checked, so a model it did not accept is reported in the log rather than passing as applied. Leave empty for every model of the selected brands.",
            "items": {
              "type": "string"
            }
          },
          "yearFrom": {
            "title": "Year from",
            "minimum": 1900,
            "type": "integer",
            "description": "Oldest model year to include."
          },
          "yearTo": {
            "title": "Year to",
            "minimum": 1900,
            "type": "integer",
            "description": "Newest model year to include."
          },
          "mileageMax": {
            "title": "Maximum mileage",
            "minimum": 0,
            "type": "integer",
            "description": "Highest odometer reading to include, in miles. cars.com has no minimum-mileage filter — it drops the parameter — so only a maximum is offered."
          },
          "priceMin": {
            "title": "Minimum price",
            "minimum": 0,
            "type": "integer",
            "description": "Lowest list price to include, in US dollars."
          },
          "priceMax": {
            "title": "Maximum price",
            "minimum": 0,
            "type": "integer",
            "description": "Highest list price to include, in US dollars."
          },
          "stockType": {
            "title": "New, used or certified",
            "enum": [
              "used",
              "new",
              "cpo",
              "all"
            ],
            "type": "string",
            "description": "Which inventory to search. cars.com defaults this Actor to used.",
            "default": "used"
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "Best match",
              "Lowest price",
              "Highest price",
              "Lowest mileage",
              "Highest mileage",
              "Nearest location",
              "Best deal",
              "Newest year",
              "Oldest year",
              "Newest listed",
              "Oldest listed"
            ],
            "type": "string",
            "description": "The order cars.com returns the listings in. These are the values from its own sort control.",
            "default": "Best match"
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}