{
  "openapi": "3.0.1",
  "info": {
    "title": "Cars & Bids Scraper",
    "description": "[💰 $10 / 1K] Extract live and past car auctions from Cars & Bids — current bids, final sold prices, reserve status, mileage, VIN, specs, photos, and seller location. Search by make/model or filter by body style, transmission, model year, and mileage. Optional full bid history and comments.",
    "version": "1.0",
    "x-build-id": "pga5SrMuj2kxzhZr7"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/solidcode~carsandbids-com-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-solidcode-carsandbids-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/solidcode~carsandbids-com-scraper/runs": {
      "post": {
        "operationId": "runs-sync-solidcode-carsandbids-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/solidcode~carsandbids-com-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-solidcode-carsandbids-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",
            "type": "array",
            "description": "Paste Cars & Bids links — the live auctions homepage (https://carsandbids.com/), the past auctions page (https://carsandbids.com/past-auctions/), the featured or trending pages, a search results page, or a single auction (https://carsandbids.com/auctions/xxxxxxxx/2018-porsche-911-gt3). Any filters already in the link are kept as-is. Single auction links always come back with the full details. Leave empty to browse the current live auctions, or if you are only using Search by Make / Model below.",
            "items": {
              "type": "string"
            }
          },
          "searchQueries": {
            "title": "Search by Make / Model",
            "type": "array",
            "description": "Search in plain text, for example 'Porsche 911', 'Toyota Land Cruiser', or just 'BMW'. Each search is run on Cars & Bids for you — no need to build links by hand.",
            "items": {
              "type": "string"
            }
          },
          "auctionStatus": {
            "title": "Auction Status",
            "enum": [
              "live",
              "past",
              "all"
            ],
            "type": "string",
            "description": "Which auctions to collect: Live (running right now, with the current high bid and time left) or Past (finished auctions, with the final sale price and result). Applies to searches and filters. Links you paste keep their own status."
          },
          "bodyStyle": {
            "title": "Body Styles",
            "uniqueItems": true,
            "type": "array",
            "description": "Only include these body styles. Pick as many as you like — each one is collected separately and the results are merged, so a run with several body styles takes a little longer. Leave empty for all body styles.",
            "items": {
              "type": "string",
              "enum": [
                "coupe",
                "convertible",
                "hatchback",
                "sedan",
                "suv",
                "truck",
                "van",
                "wagon"
              ],
              "enumTitles": [
                "Coupe",
                "Convertible",
                "Hatchback",
                "Sedan",
                "SUV / Crossover",
                "Truck",
                "Van / Minivan",
                "Wagon"
              ]
            }
          },
          "transmission": {
            "title": "Transmission",
            "enum": [
              "automatic",
              "manual"
            ],
            "type": "string",
            "description": "Only include cars with this transmission. Leave empty for both."
          },
          "noReserveOnly": {
            "title": "No Reserve Only",
            "type": "boolean",
            "description": "Only return No Reserve auctions — these sell to the highest bidder at auction end with no minimum price. Works alongside Sort Results By: if you leave the sort on 'Ending soonest', Cars & Bids' own No Reserve view is used and you get exactly what you asked for; if you pick a different sort order, that order is kept and non-No-Reserve auctions are dropped as each page is read — in that mode the run stops early if 20 pages in a row contain no No Reserve auction, so it can finish with fewer results than you asked for."
          },
          "yearFrom": {
            "title": "Model Year From",
            "minimum": 1900,
            "maximum": 2100,
            "type": "integer",
            "description": "Only include cars from this model year or newer. Leave empty for no lower limit."
          },
          "yearTo": {
            "title": "Model Year To",
            "minimum": 1900,
            "maximum": 2100,
            "type": "integer",
            "description": "Only include cars from this model year or older. Leave empty for no upper limit."
          },
          "maxMileage": {
            "title": "Maximum Mileage",
            "minimum": 0,
            "type": "integer",
            "description": "Only include cars at or below this odometer reading, in miles. Great for finding low-mileage examples. Cars & Bids cannot filter by mileage itself, so auctions are read page by page and checked here — listings with no readable odometer reading ('No Odometer', 'N/A') are left out, and the run stops early if 20 pages in a row contain no match. Leave empty for no mileage limit."
          },
          "sortBy": {
            "title": "Sort Results By",
            "enum": [
              "default",
              "listed",
              "newest",
              "oldest",
              "lowest_mileage",
              "highest_mileage"
            ],
            "type": "string",
            "description": "Order the results before they are collected. Together with Max Results this decides which auctions you get first. 'Newly listed' only exists for live auctions — on past auctions it falls back to most recently ended, and the run log tells you when that happens."
          },
          "maxResults": {
            "title": "Max Results",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum number of auctions to return across all links, searches and pasted auction links. You get this many exactly when no mileage limit is set — the last page is shortened to fit, so asking for 8 returns 8 results, not a full page of 100. With a Maximum Mileage limit (or No Reserve Only on a non-default sort) auctions are filtered as they are read, so a run can finish up to one page — 100 auctions — over the number you asked for. Leave it empty to use 100. Set it to 0 for unlimited. Tip: start with 10-50 to test, then increase."
          },
          "includeDetails": {
            "title": "Include Full Auction Details",
            "type": "boolean",
            "description": "Open each auction page to also collect the full write-up and Doug's Take, every photo, decoded specs (VIN, engine, drivetrain, exterior and interior colour, title status), seller name and type, the highlights, equipment, modifications, known flaws, service history and ownership history lists, and the bid count, comment count, view count and watcher count. Those four counts are only available on the auction page, so they stay empty unless this is switched on. Much richer data, but slower. Auctions are detailed in groups of 100 with a 4-minute allowance per group; if Cars & Bids is unusually slow, any auction not reached in time still comes back with its basic information and the run log says how many were affected. Leave off for fast list-level data (current bid, sold price, mileage, location, end date). Auction links you paste under Start URLs always get the full details."
          },
          "includeBidHistory": {
            "title": "Include Full Bid History",
            "type": "boolean",
            "description": "Also collect every individual bid on each auction — bidder name, amount, and timestamp. This also fills in the bid count without needing Include Full Auction Details. The current or winning amount is always included either way."
          },
          "includeComments": {
            "title": "Include Comments",
            "type": "boolean",
            "description": "Also collect the comment thread on each auction — author, text, timestamp, upvotes, and seller replies. This also fills in the comment count without needing Include Full Auction Details. Turning on both bids and comments costs no extra time — they arrive together."
          },
          "maxCommentsPerAuction": {
            "title": "Max Comments Per Auction",
            "minimum": 0,
            "type": "integer",
            "description": "Caps how many comments are kept per auction when Include Comments is on, so a viral 400-comment auction does not dominate your export. The full comment count is still reported. Leave it empty to use 100. Set it to 0 to keep every comment, up to 5,000 per auction — far more than the busiest auction on the site has. This only trims the saved data — it does not change run time or cost."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}