{
  "openapi": "3.0.1",
  "info": {
    "title": "Bring a Trailer Scraper - Sold Prices, VIN & Results",
    "description": "From $1.30 per 1,000 results, no start fee. Every completed Bring a Trailer auction as one row: chassis/VIN, realized sale price, sale date, lot number, city and postal code, bid count, odometer, make and model. 209,076 sold results, and it pages past BaT's 10,000-row search limit.",
    "version": "0.1",
    "x-build-id": "TG8Egkm7e38dZynta"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapersdelight~bringatrailer-results-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapersdelight-bringatrailer-results-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/scrapersdelight~bringatrailer-results-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scrapersdelight-bringatrailer-results-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/scrapersdelight~bringatrailer-results-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scrapersdelight-bringatrailer-results-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": {
          "result": {
            "title": "Auction result",
            "enum": [
              "sold",
              "reserve-not-met",
              "all"
            ],
            "type": "string",
            "description": "Which completed auctions to return. \"Sold\" (the default) returns only listings with a realized sale price - 209,076 of them. \"Reserve not met\" returns the 54,848 that ended below reserve, where there is a high bid but no sale. \"All results\" returns both. This is BaT's own server-side facet, not a filter applied after download. Live auctions still in progress are deliberately out of scope - this Actor is a price database.",
            "default": "sold"
          },
          "searchTerms": {
            "title": "Search terms",
            "type": "array",
            "description": "Words that must appear in the listing, e.g. \"porsche 911\" or \"land cruiser fj40\". All the terms you enter are sent to BaT as a single search phrase. Leave empty to sweep without a keyword.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "excludeTerms": {
            "title": "Exclude term",
            "type": "string",
            "description": "A word that must NOT appear in the listing, e.g. \"project\" or \"parts\". BaT applies this itself, so excluded listings are never downloaded and never charged.",
            "default": ""
          },
          "startUrls": {
            "title": "Start URLs",
            "type": "array",
            "description": "Paste BaT URLs instead of building a filter. Three kinds work: a model or make page such as https://bringatrailer.com/porsche/911/ (the Actor reads the curated listing set off the page itself); a results page with its filters already set, such as https://bringatrailer.com/auctions/results/?search=e30+m3&result=sold&yearFrom=1988 (every URL parameter is translated); and a single listing such as https://bringatrailer.com/listing/1995-ferrari-456-gt-48/. Anything else is reported by name rather than silently ignored.",
            "default": [],
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "minYear": {
            "title": "Model year from",
            "minimum": 1800,
            "maximum": 2100,
            "type": "integer",
            "description": "Earliest model year to include. BaT indexes a model year for 200,070 of its 209,076 sold listings (95.7%, measured across every year from 1900 to 2026); parts, wheels and a few other lots carry no year and are excluded by any year filter."
          },
          "maxYear": {
            "title": "Model year to",
            "minimum": 1800,
            "maximum": 2100,
            "type": "integer",
            "description": "Latest model year to include. Leave both year fields empty for no year filter."
          },
          "eras": {
            "title": "Eras",
            "type": "array",
            "description": "BaT's own decade tags. Coarser than the model-year range above, and independent of it. Leave empty for every era.",
            "items": {
              "type": "string",
              "enum": [
                "2020s",
                "2010s",
                "2000s",
                "1990s",
                "1980s",
                "1970s",
                "1960s",
                "1950s",
                "1940s",
                "1930s",
                "1920s",
                "1910s",
                "1900s",
                "Pre-1900"
              ],
              "enumTitles": [
                "2020s",
                "2010s",
                "2000s",
                "1990s",
                "1980s",
                "1970s",
                "1960s",
                "1950s",
                "1940s",
                "1930s",
                "1920s",
                "1910s",
                "1900s",
                "Pre-1900"
              ]
            },
            "default": []
          },
          "categories": {
            "title": "Categories",
            "type": "array",
            "description": "BaT's own category tags. Only about two thirds of listings carry one, so this filter is narrower than it looks - a 1995 Ferrari with no category tag will not match \"Convertibles\" even if it is one. Leave empty for every category.",
            "items": {
              "type": "string",
              "enum": [
                "Aircraft",
                "All-Terrain Vehicles",
                "Boats",
                "Charity & Non-Profit",
                "Convertibles",
                "Electric Vehicles",
                "Go-Karts",
                "Hot Rods",
                "Kei Vehicles",
                "Military Vehicles",
                "Minibikes & Scooters",
                "Motorcycles",
                "Parts",
                "Projects",
                "Race Cars",
                "Right-Hand Drive",
                "RVs & Campers",
                "Service Vehicles",
                "Side-by-Sides",
                "Station Wagons",
                "Tractors",
                "Trains",
                "Truck & 4x4",
                "Vans",
                "Wheels"
              ],
              "enumTitles": [
                "Aircraft",
                "All-Terrain Vehicles",
                "Boats",
                "Charity & Non-Profit",
                "Convertibles",
                "Electric Vehicles",
                "Go-Karts",
                "Hot Rods",
                "Kei Vehicles",
                "Military Vehicles",
                "Minibikes & Scooters",
                "Motorcycles",
                "Parts",
                "Projects",
                "Race Cars",
                "Right-Hand Drive",
                "RVs & Campers",
                "Service Vehicles",
                "Side-by-Sides",
                "Station Wagons",
                "Tractors",
                "Trains",
                "Truck & 4x4",
                "Vans",
                "Wheels"
              ]
            },
            "default": []
          },
          "origins": {
            "title": "Origins",
            "type": "array",
            "description": "Where the vehicle was built, as BaT tags it. \"Prewar\" is an origin on BaT rather than an era. Leave empty for every origin.",
            "items": {
              "type": "string",
              "enum": [
                "American",
                "Brazilian",
                "British",
                "Canadian",
                "Czech",
                "Dutch",
                "French",
                "German",
                "Italian",
                "Japanese",
                "Korean",
                "Prewar",
                "Spanish",
                "Swedish"
              ],
              "enumTitles": [
                "American",
                "Brazilian",
                "British",
                "Canadian",
                "Czech",
                "Dutch",
                "French",
                "German",
                "Italian",
                "Japanese",
                "Korean",
                "Prewar",
                "Spanish",
                "Swedish"
              ]
            },
            "default": []
          },
          "locations": {
            "title": "Locations",
            "type": "array",
            "description": "Where the vehicle is, by country, plus BaT's three region groups (North America, Europe, Australia/New Zealand). Picking a group selects every country in it. Leave empty for everywhere.",
            "items": {
              "type": "string",
              "enum": [
                "North America",
                "Canada",
                "United States",
                "Europe",
                "Austria",
                "Belgium",
                "Bulgaria",
                "Croatia",
                "Cyprus",
                "Czech Republic",
                "Denmark",
                "Estonia",
                "Finland",
                "France",
                "Germany",
                "Greece",
                "Hungary",
                "Iceland",
                "Ireland",
                "Israel",
                "Italy",
                "Latvia",
                "Liechtenstein",
                "Lithuania",
                "Luxembourg",
                "Malta",
                "Monaco",
                "Netherlands",
                "Norway",
                "Poland",
                "Portugal",
                "Romania",
                "Slovakia",
                "Slovenia",
                "Spain",
                "Sweden",
                "Switzerland",
                "United Kingdom",
                "Australia/New Zealand",
                "Australia",
                "New Zealand"
              ],
              "enumTitles": [
                "North America",
                "Canada",
                "United States",
                "Europe",
                "Austria",
                "Belgium",
                "Bulgaria",
                "Croatia",
                "Cyprus",
                "Czech Republic",
                "Denmark",
                "Estonia",
                "Finland",
                "France",
                "Germany",
                "Greece",
                "Hungary",
                "Iceland",
                "Ireland",
                "Israel",
                "Italy",
                "Latvia",
                "Liechtenstein",
                "Lithuania",
                "Luxembourg",
                "Malta",
                "Monaco",
                "Netherlands",
                "Norway",
                "Poland",
                "Portugal",
                "Romania",
                "Slovakia",
                "Slovenia",
                "Spain",
                "Sweden",
                "Switzerland",
                "United Kingdom",
                "Australia/New Zealand",
                "Australia",
                "New Zealand"
              ]
            },
            "default": []
          },
          "listingTypes": {
            "title": "Listing flags",
            "type": "array",
            "description": "Keep only listings BaT flags this way. \"No Reserve\" sold without a reserve price, \"Premium\" is BaT's paid placement, and \"BaT Alumni\" means the same vehicle has been sold on BaT before - which is what makes a repeat-sale price series possible.",
            "items": {
              "type": "string",
              "enum": [
                "noreserve",
                "premium",
                "repeat"
              ],
              "enumTitles": [
                "No Reserve",
                "Premium",
                "BaT Alumni (sold on BaT before)"
              ]
            },
            "default": []
          },
          "maxPriceUsd": {
            "title": "Maximum price (USD)",
            "minimum": 1,
            "type": "integer",
            "description": "Keep only results at or below this amount. BaT applies it server-side, so dearer cars are never downloaded and never charged. Leave empty for no ceiling."
          },
          "soldWithin": {
            "title": "Closed within",
            "enum": [
              "",
              "7D",
              "30D",
              "1Y",
              "2Y",
              "5Y"
            ],
            "type": "string",
            "description": "Restrict to auctions that closed recently. Measured on 2026-09-18: 1,005 sold in the last 7 days, 4,278 in the last 30, 43,569 in the last year. Leave on \"All time\" for the full archive.",
            "default": ""
          },
          "maxResults": {
            "title": "Max results",
            "minimum": 0,
            "type": "integer",
            "description": "Hard cap on rows delivered, and therefore on what you are charged: the cap is counted against rows PRODUCED, so a cap of 60 charges exactly 60. Set 0 for no cap - BaT publishes 209,076 sold results, so read the price first.",
            "default": 50
          },
          "fetchDetails": {
            "title": "Open each listing page",
            "type": "boolean",
            "description": "ON (the default) opens every listing to read the chassis/VIN number, lot number, city and postal code, seller handle and type, winning bidder handle, bid count, odometer, engine, transmission, colours, the full Listing Details bullet list, view and watcher counts and the photo count. Measured chassis fill with this on: 153 of 154 sampled listings (99.4%); the one miss was a set of wheels. OFF skips those fields and runs about eight times faster - useful when you only want prices and dates. The per-row price is the same either way.",
            "default": true
          },
          "includePhotos": {
            "title": "Include every photo URL",
            "type": "boolean",
            "description": "Adds an imageUrls column with the full-resolution gallery. Measured on a 400-row live run: the median BaT listing carries 151 photos, so this makes the dataset several times larger. Needs \"Open each listing page\".",
            "default": false
          },
          "includeDescription": {
            "title": "Include the full description",
            "type": "boolean",
            "description": "Adds a description column with the listing write-up. The shorter excerpt is always included. Needs \"Open each listing page\".",
            "default": false
          },
          "dedupeByChassis": {
            "title": "One row per chassis number",
            "type": "boolean",
            "description": "Keeps only the first listing seen for each chassis/VIN, which collapses BaT Alumni repeat sales of the same vehicle into one comp. Note this is the only filter here that cannot be applied before download: the chassis number is on the listing page, so a row dropped this way has already cost a page fetch (it is not charged - you are only charged for rows delivered).",
            "default": false
          },
          "autoPartition": {
            "title": "Work around BaT's 10,000-row search limit",
            "type": "boolean",
            "description": "BaT's results search returns at most about 10,000 rows for any one query and then silently answers \"0 results\" - so a naive full sweep of the 209,076 sold listings stops at under 4% while reporting success. With this ON the Actor reads both ends of a result set (19,920 rows) and splits anything larger by model year, then category, then origin, deduplicating by listing id. Leave it on unless you specifically want one window of results. Either way RUN_SUMMARY records exactly how many rows BaT said were there against how many were read.",
            "default": true
          },
          "sort": {
            "title": "Order",
            "enum": [
              "td",
              "ta",
              "vd",
              "bd"
            ],
            "type": "string",
            "description": "Which end of the result set to read first. Recently closed and Oldest first are the two orders that can be read from both ends, so they are the only ones that reach past BaT's 10,000-row window without partitioning; Most viewed and Highest bid have no reverse and are capped at one window per query.",
            "default": "td"
          },
          "detailConcurrency": {
            "title": "Listing pages in parallel",
            "minimum": 1,
            "maximum": 16,
            "type": "integer",
            "description": "How many listing pages to open at once. Measured on 2026-09-18: 155 pages at 10 in parallel took 31 seconds with zero failures. Lower it if you see repeated retries.",
            "default": 8
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Apify Proxy is on by default and the datacenter pool is enough: measured 2026-09-18, 155 listing pages returned 155 x HTTP 200 through it. BaT does occasionally answer 403 to a datacenter IP (2 of 60 on a first pass) and the Actor retries those on a fresh session. Switch to RESIDENTIAL if you see that rate climb.",
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}