{
  "openapi": "3.0.1",
  "info": {
    "title": "CarGurus Scraper: US, CA, UK Car Listings — No Login, $10/1k",
    "description": "Scrape CarGurus car listings from cargurus.com, .ca and .co.uk: price, deal rating, VIN, mileage, specs, dealer phone, photos, price history. Paste search URLs or filter by ZIP, make/model, price, year, mileage, body type, fuel. No login or cookies. MCP-ready for AI agents. $10 per 1,000 records.",
    "version": "1.0",
    "x-build-id": "Fb7bKWufdhGmPknBz"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/fortuitous_pirate~cargurus-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-fortuitous_pirate-cargurus-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/fortuitous_pirate~cargurus-scraper/runs": {
      "post": {
        "operationId": "runs-sync-fortuitous_pirate-cargurus-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/fortuitous_pirate~cargurus-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-fortuitous_pirate-cargurus-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": "CarGurus URLs",
            "type": "array",
            "description": "Paste any CarGurus search page (cargurus.com, cargurus.ca, cargurus.co.uk), make/model page, dealer inventory page or single listing URL. When set, the filter fields below are ignored (the URL carries the filters).",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "listUrl": {
            "title": "Bulk list (CSV / Google Sheet URL)",
            "type": "string",
            "description": "Public CSV or Google Sheet with one value per row: CarGurus URLs, ZIP/postal codes, or make/model names (\"Toyota Camry\"). Rows are classified automatically."
          },
          "country": {
            "title": "Country",
            "enum": [
              "US",
              "CA",
              "UK"
            ],
            "type": "string",
            "description": "Which CarGurus site to search when no URL is given.",
            "default": "US"
          },
          "zip": {
            "title": "ZIP / postal code",
            "type": "string",
            "description": "Search center, e.g. 10001, M5V 2T6 or SW1A 1AA. Defaults to 90210 / M5V 2T6 / SW1A 1AA per country."
          },
          "zips": {
            "title": "More ZIP / postal codes",
            "type": "array",
            "description": "Search several locations in one run with the same filters. Results are de-duplicated.",
            "items": {
              "type": "string"
            }
          },
          "searchQueries": {
            "title": "Makes / models",
            "type": "array",
            "description": "One entry per search, e.g. \"Toyota Camry\", \"BMW\", \"Ford F-150\". Leave empty for all cars.",
            "items": {
              "type": "string"
            }
          },
          "searchRadius": {
            "title": "Search radius",
            "minimum": 1,
            "maximum": 50000,
            "type": "integer",
            "description": "Miles (km in Canada) from the ZIP / postal code. Use 50000 for nationwide.",
            "default": 50
          },
          "condition": {
            "title": "Condition",
            "enum": [
              "USED",
              "NEW",
              "ALL"
            ],
            "type": "string",
            "description": "Used (CarGurus default), new, or both.",
            "default": "USED"
          },
          "minPrice": {
            "title": "Min price",
            "type": "integer",
            "description": "Minimum listing price (local currency)."
          },
          "maxPrice": {
            "title": "Max price",
            "type": "integer",
            "description": "Maximum listing price (local currency)."
          },
          "minYear": {
            "title": "Min year",
            "type": "integer",
            "description": "Minimum model year."
          },
          "maxYear": {
            "title": "Max year",
            "type": "integer",
            "description": "Maximum model year."
          },
          "minMileage": {
            "title": "Min mileage",
            "type": "integer",
            "description": "Minimum odometer reading."
          },
          "maxMileage": {
            "title": "Max mileage",
            "type": "integer",
            "description": "Maximum odometer reading."
          },
          "bodyTypes": {
            "title": "Body types",
            "type": "array",
            "description": "Keep only these body styles.",
            "items": {
              "type": "string",
              "enum": [
                "Coupe",
                "Convertible",
                "Hatchback",
                "Minivan",
                "Pickup Truck",
                "Sedan",
                "SUV / Crossover",
                "Van",
                "Wagon"
              ]
            }
          },
          "transmission": {
            "title": "Transmission",
            "enum": [
              "ANY",
              "AUTOMATIC",
              "MANUAL"
            ],
            "type": "string",
            "description": "Automatic, manual or any.",
            "default": "ANY"
          },
          "fuelTypes": {
            "title": "Fuel types",
            "type": "array",
            "description": "Keep only these fuel types.",
            "items": {
              "type": "string",
              "enum": [
                "Gasoline",
                "Diesel",
                "Electric",
                "Hybrid",
                "Flex Fuel",
                "CNG",
                "Biodiesel",
                "Hydrogen"
              ]
            }
          },
          "driveTrains": {
            "title": "Drivetrains",
            "type": "array",
            "description": "Keep only these drivetrains.",
            "items": {
              "type": "string",
              "enum": [
                "AWD",
                "FWD",
                "RWD",
                "4WD",
                "4X2"
              ]
            }
          },
          "colors": {
            "title": "Exterior colors",
            "type": "array",
            "description": "Keep only these exterior colors.",
            "items": {
              "type": "string",
              "enum": [
                "Black",
                "White",
                "Gray",
                "Silver",
                "Blue",
                "Red",
                "Green",
                "Brown",
                "Gold",
                "Orange",
                "Yellow",
                "Purple",
                "Teal",
                "Pink"
              ]
            }
          },
          "dealRatings": {
            "title": "Deal ratings",
            "type": "array",
            "description": "Keep only listings with these CarGurus deal ratings (applied after fetching).",
            "items": {
              "type": "string",
              "enum": [
                "GREAT_PRICE",
                "GOOD_PRICE",
                "FAIR_PRICE",
                "HIGH_PRICE",
                "OVERPRICED"
              ]
            }
          },
          "sellerType": {
            "title": "Seller type",
            "enum": [
              "ALL",
              "DEALER",
              "PRIVATE"
            ],
            "type": "string",
            "description": "Dealers, private sellers or all (applied after fetching).",
            "default": "ALL"
          },
          "sortType": {
            "title": "Sort by",
            "enum": [
              "BEST_MATCH",
              "DEAL_SCORE",
              "PRICE_ASC",
              "PRICE_DESC",
              "MILEAGE_ASC",
              "MILEAGE_DESC",
              "NEWEST_FIRST",
              "OLDEST_FIRST",
              "YEAR_DESC",
              "YEAR_ASC",
              "DISTANCE"
            ],
            "type": "string",
            "description": "Order of results.",
            "default": "BEST_MATCH"
          },
          "maxItems": {
            "title": "Max listings",
            "minimum": 1,
            "type": "integer",
            "description": "Stop after this many listings in total.",
            "default": 10
          },
          "includeDetails": {
            "title": "Include listing details",
            "type": "boolean",
            "description": "Fetch each listing page for all photos, price history, accident and owner counts, dealer address and website, description. One extra request per listing, no extra charge.",
            "default": false
          },
          "maxPages": {
            "title": "Max pages per search",
            "minimum": 0,
            "type": "integer",
            "description": "0 = keep paging until results run out or Max listings is reached.",
            "default": 0
          },
          "makes": {
            "title": "Makes (legacy)",
            "type": "array",
            "description": "Older input; same as adding each make to Makes / models.",
            "items": {
              "type": "string"
            }
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Optional. CarGurus answers Apify datacenter IPs without a proxy; set a residential proxy only if you see HTTP 403/406 in the log."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}