{
  "openapi": "3.0.1",
  "info": {
    "title": "TrailerTrader Scraper — Trailers, RVs & Dealer Leads",
    "description": "Scrape TrailerTrader.com trailers and RVs for sale: price, year, make, model, condition, specs, photos, location and the dealer's name, phone, website and address. Filter by category, condition, make, US state or city radius, price and year. Optional VIN, GVWR and dimensions. No login.",
    "version": "0.1",
    "x-build-id": "5VamxYDDtEaKjaL1W"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/yugenox~trailertrader-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-yugenox-trailertrader-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/yugenox~trailertrader-scraper/runs": {
      "post": {
        "operationId": "runs-sync-yugenox-trailertrader-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/yugenox~trailertrader-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-yugenox-trailertrader-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": {
          "categories": {
            "title": "🚚 Categories",
            "type": "array",
            "description": "TrailerTrader categories to scrape, e.g. Dump Trailers, Cargo (Enclosed) Trailers, Travel Trailers. Each category is searched separately. Leave empty to search every category (or pick a trailer type below).",
            "items": {
              "type": "string",
              "enum": [
                "Cargo (Enclosed) Trailers",
                "Equipment / Flatbed Trailers",
                "Car Haulers / Racing Trailers",
                "Tow Dollys",
                "Tilt Trailers",
                "Motorcycle / Cycle Trailers",
                "ATV Trailers",
                "Watercraft Trailers",
                "Snowmobile Trailers",
                "Utility Trailers",
                "Dump Trailers",
                "Vending / Concession Trailers",
                "Office / Fiber Optic Trailers",
                "Other Trailers",
                "Horse Trailers",
                "Stock / Stock Combo Trailers",
                "Travel Trailers",
                "Fifth Wheel Trailers",
                "Toy Haulers",
                "Camper / RV",
                "Truck Bed Campers",
                "Overland Trailers",
                "Low Boy / Drop Deck Semi Trailers",
                "Dry Van Semi Trailers",
                "Flatbed Semi Trailers",
                "Grain Semi Trailers",
                "Reefer Semi Trailers",
                "Livestock Semi Trailers",
                "Tank / Bulk Semi Trailers",
                "Dump Semi Trailers",
                "Semi Car Hauler",
                "Other Semi Trailers",
                "Other Trucks",
                "Standard Trucks",
                "Truck Beds Category",
                "Flat Decks Trailers",
                "Stake Bodies Trailers",
                "Service Bodies Trailers",
                "Goose Bodies Trailers",
                "Dump Bodies Trailers"
              ]
            }
          },
          "searchTerms": {
            "title": "🔎 Search terms",
            "type": "array",
            "description": "Optional keywords, the same as typing in TrailerTrader's search box, e.g. \"gooseneck\", \"7x16\", \"Big Tex 14LP\". Each term is searched separately (in each category).",
            "items": {
              "type": "string"
            }
          },
          "trailerType": {
            "title": "Trailer type",
            "enum": [
              "any",
              "1",
              "2",
              "3",
              "4",
              "5"
            ],
            "type": "string",
            "description": "Limit the search to one of TrailerTrader's trailer types (used when no category is picked).",
            "default": "any"
          },
          "state": {
            "title": "📍 US state",
            "type": "string",
            "description": "A US state name or two-letter code, e.g. \"Texas\" or \"TX\". Leave empty for the whole country. (TrailerTrader can't filter by Canadian province.)"
          },
          "city": {
            "title": "📍 Near a US city",
            "type": "string",
            "description": "Search around a US city instead of a state, written as \"City, ST\", e.g. \"Dallas, TX\"."
          },
          "distanceMiles": {
            "title": "Distance from the city (miles)",
            "minimum": 10,
            "maximum": 1000,
            "type": "integer",
            "description": "Radius around the city. TrailerTrader's default is 200 miles.",
            "default": 200
          },
          "maxItems": {
            "title": "Max listings",
            "minimum": 0,
            "maximum": 100000,
            "type": "integer",
            "description": "Maximum number of listings for the whole run, shared fairly between your searches. 0 = everything (searches over 10,000 listings are split automatically).",
            "default": 100
          },
          "includeDetails": {
            "title": "Include full details",
            "type": "boolean",
            "description": "Also read every listing's detail record: the full description, VIN, GVWR, axle capacity, dimensions, every spec (axles, construction, color, nose, roof, living quarters…) and every photo. One extra request per listing, charged as a separate \"detail\" event.",
            "default": false
          },
          "startUrls": {
            "title": "🔗 TrailerTrader URLs",
            "type": "array",
            "description": "Optional: TrailerTrader search pages (e.g. https://trailertrader.com/trailers-for-sale/used-dump-trailers-for-sale-in-texas — filters in the URL are kept) or listing pages (ending in .html; always read with full details).",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "condition": {
            "title": "Condition",
            "type": "array",
            "description": "New, used and/or remanufactured. Empty = all.",
            "items": {
              "type": "string",
              "enum": [
                "new",
                "used",
                "remfg"
              ],
              "enumTitles": [
                "New",
                "Used",
                "Remanufactured"
              ]
            }
          },
          "manufacturers": {
            "title": "Makes",
            "type": "array",
            "description": "Only these manufacturers, written as TrailerTrader shows them, e.g. \"Big Tex Trailers\", \"PJ Trailers\", \"Forest River\".",
            "items": {
              "type": "string"
            }
          },
          "priceMin": {
            "title": "Min price (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Lowest asking price, in the listing's own currency (almost always USD)."
          },
          "priceMax": {
            "title": "Max price (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Highest asking price, in the listing's own currency (almost always USD)."
          },
          "yearMin": {
            "title": "Model year from",
            "minimum": 1900,
            "maximum": 2100,
            "type": "integer",
            "description": "Oldest model year to include, e.g. 2018."
          },
          "yearMax": {
            "title": "Model year to",
            "minimum": 1900,
            "maximum": 2100,
            "type": "integer",
            "description": "Newest model year to include."
          },
          "pullType": {
            "title": "Hitch type",
            "type": "array",
            "description": "Empty = all.",
            "items": {
              "type": "string",
              "enum": [
                "bumper",
                "gooseneck",
                "pintle",
                "fifth_wheel",
                "tractor_hookup"
              ],
              "enumTitles": [
                "Bumper pull",
                "Gooseneck",
                "Pintle",
                "Fifth wheel",
                "Tractor hookup"
              ]
            }
          },
          "sellerType": {
            "title": "Sellers",
            "enum": [
              "all",
              "dealers"
            ],
            "type": "string",
            "description": "All sellers, or dealers only (useful for dealer lead lists). Private sellers' names, phone numbers, e-mails and street addresses are never included.",
            "default": "all"
          },
          "sort": {
            "title": "Order",
            "enum": [
              "newest",
              "oldest"
            ],
            "type": "string",
            "description": "Newest listings first (default) or oldest first.",
            "default": "newest"
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Apify Proxy (datacenter) is the default and comes with every Apify plan. If TrailerTrader refuses datacenter IPs for a while, the run switches to residential proxies when your account has them.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}