{
  "openapi": "3.0.1",
  "info": {
    "title": "Cars.com Scraper — US Used & New Listings, VIN & Prices",
    "description": "Scrape Cars.com used, new, and CPO listings across the US. Extract VIN, price, deal rating, mileage, dealer, and photos. Search by URL, make/model/ZIP, VIN, or dealer; monitor new ads and price drops.",
    "version": "0.2",
    "x-build-id": "6QGcS44e5qziyFVaf"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/crawloop~cars-com-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-crawloop-cars-com-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/crawloop~cars-com-scraper/runs": {
      "post": {
        "operationId": "runs-sync-crawloop-cars-com-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/crawloop~cars-com-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-crawloop-cars-com-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": "Start URLs (search or listing pages)",
            "type": "array",
            "description": "Paste Cars.com search-result URLs (/shopping/results/) or vehicle-detail URLs (/vehicledetail/{id}/). Filters already in the URL are kept. Do not use sort=best_deal, page_size, or maximum_distance=all — those parameters are blocked.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "make": {
            "title": "Make / brand",
            "type": "string",
            "description": "Vehicle brand used when Start URLs are empty. Examples: Honda, BMW, Ford, Toyota, Tesla."
          },
          "model": {
            "title": "Model",
            "type": "string",
            "description": "Model name. Spaces become underscores in the Cars.com slug (Civic, 3 Series, Model Y, F-150)."
          },
          "trim": {
            "title": "Trim",
            "type": "string",
            "description": "Optional trim filter, e.g. LX, Sport, xDrive40i."
          },
          "zip": {
            "title": "ZIP code",
            "type": "string",
            "description": "US 5-digit ZIP for radius search. Default 60606 when building a search from filters."
          },
          "searchRadius": {
            "title": "Search radius (miles)",
            "enum": [
              "10",
              "25",
              "50",
              "75",
              "100",
              "200",
              "500"
            ],
            "type": "string",
            "description": "Radius around the ZIP. nationwide-style coverage uses 500 miles (maximum_distance=all is blocked).",
            "default": "50"
          },
          "stockType": {
            "title": "Stock type",
            "enum": [
              "used",
              "new",
              "cpo",
              "all"
            ],
            "type": "string",
            "description": "New, used, or certified pre-owned. 'All' runs three searches and de-duplicates.",
            "default": "used"
          },
          "minYear": {
            "title": "Min year",
            "minimum": 1980,
            "type": "integer",
            "description": "Earliest model year."
          },
          "maxYear": {
            "title": "Max year",
            "minimum": 1980,
            "type": "integer",
            "description": "Latest model year."
          },
          "minPrice": {
            "title": "Minimum price (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Filter by minimum list price."
          },
          "maxPrice": {
            "title": "Maximum price (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Filter by maximum list price."
          },
          "maxMileage": {
            "title": "Max mileage (miles)",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum odometer reading in miles."
          },
          "bodyStyle": {
            "title": "Body style",
            "enum": [
              "all",
              "sedan",
              "suv",
              "truck",
              "hatchback",
              "coupe",
              "convertible",
              "wagon",
              "van",
              "minivan"
            ],
            "type": "string",
            "description": "Filter by body style.",
            "default": "all"
          },
          "fuelType": {
            "title": "Fuel type",
            "enum": [
              "all",
              "gasoline",
              "diesel",
              "hybrid",
              "plug_in_hybrid",
              "electric",
              "flex_fuel",
              "hydrogen"
            ],
            "type": "string",
            "description": "Filter by fuel.",
            "default": "all"
          },
          "transmission": {
            "title": "Transmission",
            "enum": [
              "all",
              "automatic",
              "manual",
              "cvt",
              "dual_clutch"
            ],
            "type": "string",
            "description": "Filter by gearbox.",
            "default": "all"
          },
          "drivetrain": {
            "title": "Drivetrain",
            "enum": [
              "all",
              "fwd",
              "rwd",
              "awd",
              "four_wheel_drive"
            ],
            "type": "string",
            "description": "Filter by drivetrain.",
            "default": "all"
          },
          "dealRating": {
            "title": "Deal rating",
            "enum": [
              "all",
              "great",
              "good",
              "fair"
            ],
            "type": "string",
            "description": "Keep only listings with this Cars.com deal badge.",
            "default": "all"
          },
          "includeShippable": {
            "title": "Include shippable (out-of-radius) listings",
            "type": "boolean",
            "description": "Cars.com injects nationwide-shippable cards outside your ZIP radius. Turn off for strict in-radius inventory only.",
            "default": true
          },
          "vins": {
            "title": "VINs",
            "type": "array",
            "description": "Look up specific 17-character VINs (search by keyword on Cars.com). One row per matching listing.",
            "items": {
              "type": "string"
            }
          },
          "dealerId": {
            "title": "Dealer ID",
            "type": "string",
            "description": "Restrict to one dealer's inventory (Cars.com customerId / dealer_id)."
          },
          "keyword": {
            "title": "Keyword",
            "type": "string",
            "description": "Free-text search inside listing descriptions (also used for VIN lookup)."
          },
          "sortBy": {
            "title": "Sort results",
            "enum": [
              "relevance",
              "price_asc",
              "price_desc",
              "mileage_asc",
              "mileage_desc",
              "newest",
              "year_desc",
              "distance"
            ],
            "type": "string",
            "description": "Sort order. best_deal is not offered — it is blocked by Cars.com.",
            "default": "relevance"
          },
          "maxItems": {
            "title": "Max listings",
            "minimum": 1,
            "maximum": 50000,
            "type": "integer",
            "description": "Maximum number of vehicle listings to collect per run. A single Cars.com search caps around 10,000 results; this Actor splits wide queries by year or price when that cap is hit.",
            "default": 100
          },
          "scrapeDetails": {
            "title": "Scrape vehicle-detail pages",
            "type": "boolean",
            "description": "Search cards already include VIN, price, deal rating, mileage, dealer, and preview photos. Enable to fetch each /vehicledetail/ page for a larger gallery and extra specs. Detail HTML is often blocked; the Actor keeps search-card fields when a detail fetch fails.",
            "default": false
          },
          "monitorMode": {
            "title": "Monitor mode (new + price changes only)",
            "type": "boolean",
            "description": "Delta tracking in a named key-value store. First run seeds a baseline (no dataset rows). Later runs emit only new listings or price changes. Relevance sort is switched to newest so order stays stable. Early stop after one page of known listings only when that sort is newest and no prices changed.",
            "default": false
          },
          "monitorStoreName": {
            "title": "Monitor state store",
            "type": "string",
            "description": "Named key-value store that keeps monitor state between scheduled runs. Leave empty to derive a stable name from this search."
          },
          "resetMonitorState": {
            "title": "Reset monitor state",
            "type": "boolean",
            "description": "Clear the saved baseline, then seed again on this run.",
            "default": false
          },
          "maxConcurrency": {
            "title": "Max concurrent detail requests",
            "minimum": 1,
            "maximum": 12,
            "type": "integer",
            "description": "How many vehicle-detail pages to fetch in parallel when scrapeDetails is on.",
            "default": 5
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Apify Proxy. RESIDENTIAL with country US is required — Cars.com uses Akamai and blocks datacenter IPs.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ],
              "apifyProxyCountry": "US"
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}