{
  "openapi": "3.0.1",
  "info": {
    "title": "AutoTrader.com [$1.2💰] USA · VIN, EV Battery, Dealers",
    "description": "AutoTrader.com (USA) scraper: listings by URL or filters, one row per car with VIN, price, mileage, EV battery health, photos and full dealer data (address, phones, hours, rating, website). Reads past the 400-result cap for complete nationwide sweeps. Optional vehicle pages. JSON/CSV.",
    "version": "0.0",
    "x-build-id": "Y2XjeaPOCUhB6NP8B"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/memo23~autotrader-com-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-memo23-autotrader-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/memo23~autotrader-com-scraper/runs": {
      "post": {
        "operationId": "runs-sync-memo23-autotrader-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/memo23~autotrader-com-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-memo23-autotrader-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",
        "required": [
          "maxItems"
        ],
        "properties": {
          "startUrls": {
            "title": "Start URLs",
            "type": "array",
            "description": "Search pages (<code>/cars-for-sale/used-cars/electric?zip=10001&searchRadius=0</code>) or vehicle pages (<code>/cars-for-sale/vehicle/{id}</code>). Page numbers in the URL are ignored; the whole result set is collected.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "searchMake": {
            "title": "Make",
            "type": "string",
            "description": "Vehicle make, e.g. <strong>Tesla</strong>, <strong>Ford</strong>, <strong>Mercedes-Benz</strong>. Optional."
          },
          "searchModel": {
            "title": "Model code",
            "type": "string",
            "description": "Model code as it appears in an AutoTrader.com URL after <code>modelCodeList=</code>, e.g. <strong>GMCHUMMER</strong>. Only applied when a Make is set."
          },
          "zip": {
            "title": "ZIP code",
            "type": "string",
            "description": "US ZIP code to centre the search on, e.g. <strong>10001</strong>. With radius 0 it only anchors the search and the whole country is covered."
          },
          "searchRadius": {
            "title": "Search radius (miles)",
            "type": "integer",
            "description": "Distance in miles around the ZIP code. <strong>0 = nationwide</strong>.",
            "default": 0
          },
          "priceMin": {
            "title": "Minimum price (USD)",
            "type": "integer",
            "description": "Lowest asking price. Clear or use 0 for no minimum."
          },
          "priceMax": {
            "title": "Maximum price (USD)",
            "type": "integer",
            "description": "Highest asking price. Clear for no maximum."
          },
          "yearMin": {
            "title": "Minimum model year",
            "type": "integer",
            "description": "Oldest model year to include, e.g. 2020. Clear for no minimum."
          },
          "yearMax": {
            "title": "Maximum model year",
            "type": "integer",
            "description": "Newest model year to include, e.g. 2025. Clear for no maximum."
          },
          "maxMileage": {
            "title": "Maximum mileage (miles)",
            "type": "integer",
            "description": "Highest odometer reading in miles, e.g. 50000. Clear for no maximum."
          },
          "condition": {
            "title": "Condition",
            "enum": [
              "all",
              "new",
              "used",
              "certified"
            ],
            "type": "string",
            "description": "New, used, manufacturer-certified, or everything.",
            "default": "all"
          },
          "fuelType": {
            "title": "Fuel type",
            "enum": [
              "",
              "ELE",
              "GSL",
              "HYB",
              "PIH",
              "DSL",
              "HYD"
            ],
            "type": "string",
            "description": "Restrict to one fuel type. Leave on Any for all.",
            "default": ""
          },
          "sellerType": {
            "title": "Seller type",
            "enum": [
              "all",
              "dealer",
              "private"
            ],
            "type": "string",
            "description": "Dealers, private sellers, or both.",
            "default": "all"
          },
          "sort": {
            "title": "Sort by",
            "enum": [
              "relevance",
              "derivedpriceASC",
              "derivedpriceDESC",
              "mileageASC",
              "mileageDESC",
              "yearDESC",
              "yearASC",
              "datelistedDESC"
            ],
            "type": "string",
            "description": "Result ordering on the site. Only affects which cars come first when Max results caps the run.",
            "default": "relevance"
          },
          "includeGallery": {
            "title": "Add the full photo gallery (light)",
            "type": "boolean",
            "description": "Search pages carry 1-4 photos per car. This fetches each car's record from the site's listing API to add every photo (often 30-70) as light JSON, about a tenth of the cost of a full vehicle page. Skipped when 'Fetch vehicle pages' is on, which includes the gallery. Billed as an <em>additional data</em> event.",
            "default": false
          },
          "includeDetails": {
            "title": "Fetch vehicle pages (gallery + description, features, warranties)",
            "type": "boolean",
            "description": "Search pages carry 1-4 photos per car. Enable this to open each vehicle page and add the full gallery (often 30+ photos), the full description, the feature list, warranties and stock number. One extra request per vehicle, billed as an <em>additional data</em> event.",
            "default": false
          },
          "enrichEmails": {
            "title": "Enrich with contact emails (experimental)",
            "type": "boolean",
            "description": "If enabled, finds a contact email for each dealer from its own website (or by discovering it from the name). Adds contactEmail + contactWebsite columns plus a detailed emailEnrichment object. Best-effort.",
            "default": false
          },
          "failIfIncomplete": {
            "title": "Fail the run when the dataset is incomplete",
            "type": "boolean",
            "description": "Finish with status FAILED when the collected count is short of the site's total by more than the tolerance (the larger of the percentage and the absolute number below). The site total keeps moving while a run is in progress. Ignored when Max results caps the run. The figures are always written to the run's COMPLETENESS record in the key-value store and to the run status message.",
            "default": false
          },
          "completenessTolerancePct": {
            "title": "Completeness tolerance (%)",
            "type": "integer",
            "description": "Allowed shortfall in percent before the run is marked FAILED. The deviation is always logged.",
            "default": 3
          },
          "completenessToleranceMin": {
            "title": "Completeness tolerance (listings)",
            "type": "integer",
            "description": "Allowed shortfall as an absolute number of listings. The larger of this and the percentage applies, so small searches are not failed over a handful of cars that sold during the run.",
            "default": 25
          },
          "maxItems": {
            "title": "Max results",
            "type": "integer",
            "description": "Maximum number of vehicles to collect. Set it above the site's \"Matches\" count for a complete sweep.",
            "default": 1000
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "type": "integer",
            "description": "Maximum parallel requests.",
            "default": 10
          },
          "minConcurrency": {
            "title": "Min concurrency",
            "type": "integer",
            "description": "Minimum parallel requests.",
            "default": 1
          },
          "maxRequestRetries": {
            "title": "Max request retries",
            "type": "integer",
            "description": "Retries per failed request before giving up.",
            "default": 8
          },
          "countProbes": {
            "title": "Plan splits with the site's count API",
            "type": "boolean",
            "description": "Measures each search segment through AutoTrader's own listing count endpoint (a few bytes per probe) instead of downloading full search pages, which makes whole-market sweeps several times cheaper and faster. The actor falls back to full pages on its own if the endpoint disagrees with the search page or stops answering.",
            "default": true
          },
          "proxy": {
            "title": "Proxy configuration (optional override)",
            "type": "object",
            "description": "Leave empty — the actor already routes all traffic through its own built-in US residential proxy at no extra cost to you. Only set this if you want to use your own proxies."
          }
        }
      },
      "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}