{
  "openapi": "3.0.1",
  "info": {
    "title": "RVTrader Scraper - RV Listings, Prices, VIN & Dealer Phones",
    "description": "Scrape RVTrader listings (also CycleTrader, EquipmentTrader, CommercialTruckTrader, AeroTrader): price, year, make, model, class, VIN, mileage, length, dealer name and phones, location with coordinates, photos. Optional details: sleeps, slide-outs, fuel, specs, dealer address, views. No login.",
    "version": "0.1",
    "x-build-id": "w34IXLwyk3TF2YEdc"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapersdelight~rvtrader-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapersdelight-rvtrader-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~rvtrader-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scrapersdelight-rvtrader-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~rvtrader-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scrapersdelight-rvtrader-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": {
          "site": {
            "title": "🌐 Site",
            "enum": [
              "rvtrader",
              "cycletrader",
              "equipmenttrader",
              "commercialtrucktrader",
              "aerotrader"
            ],
            "type": "string",
            "description": "Which Trader Interactive marketplace the filters below search. Pasted URLs pick their own site.",
            "default": "rvtrader"
          },
          "startUrls": {
            "title": "🔗 Search, dealer or listing URLs",
            "type": "array",
            "description": "URLs from rvtrader.com, cycletrader.com, equipmenttrader.com, commercialtrucktrader.com or aerotrader.com: a search (its filters are kept), a dealer inventory page (…?dealerid=123) or a listing (…/listing/…-5042000749). The filters below apply to the site + location search, not to URLs.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "zip": {
            "title": "📍 ZIP code",
            "type": "string",
            "description": "US ZIP code to search around, e.g. \"75201\". Used with the radius below."
          },
          "radius": {
            "title": "Radius",
            "enum": [
              "10",
              "25",
              "50",
              "75",
              "100",
              "150",
              "200",
              "300",
              "500",
              "nationwide"
            ],
            "type": "string",
            "description": "Miles around the ZIP code.",
            "default": "100"
          },
          "states": {
            "title": "States",
            "type": "array",
            "description": "US states, code or name, e.g. \"TX\", \"Florida\". Each state is its own search. Ignored when a ZIP code is set.",
            "items": {
              "type": "string"
            }
          },
          "city": {
            "title": "City",
            "type": "string",
            "description": "City name, with exactly one state above, e.g. \"Dallas\" + \"TX\"."
          },
          "makes": {
            "title": "🏷️ Makes",
            "type": "array",
            "description": "Manufacturers as the site names them, e.g. \"Jayco\", \"Grand Design\", \"Harley-Davidson\", \"Caterpillar\". Several = any of them.",
            "items": {
              "type": "string"
            }
          },
          "models": {
            "title": "Models",
            "type": "array",
            "description": "Model names, e.g. \"Eagle\", \"Jay Flight\". Best combined with a make.",
            "items": {
              "type": "string"
            }
          },
          "keyword": {
            "title": "Keyword",
            "type": "string",
            "description": "Free-text keyword the site searches for, e.g. \"bunkhouse\", \"outdoor kitchen\"."
          },
          "types": {
            "title": "Class / type",
            "type": "array",
            "description": "RVTrader classes: \"Travel Trailer\", \"Fifth Wheel\", \"Class A\", \"Class B\", \"Class C\", \"Toy Hauler\", \"Truck Camper\", \"Pop Up Camper\", \"Destination Trailer\". Other sites: their own class names, e.g. \"Motorcycle\", \"EARTHMOVING\", \"Single Engine Prop\".",
            "items": {
              "type": "string"
            }
          },
          "categories": {
            "title": "Categories",
            "type": "array",
            "description": "Sub-categories as the site names them, e.g. \"Super C\", \"Fifth Wheel Toy Hauler\", \"Loaders\", \"Dump Truck\".",
            "items": {
              "type": "string"
            }
          },
          "condition": {
            "title": "Condition",
            "enum": [
              "any",
              "new",
              "used"
            ],
            "type": "string",
            "description": "New, used or both.",
            "default": "any"
          },
          "sellerType": {
            "title": "Seller",
            "enum": [
              "any",
              "dealer",
              "private"
            ],
            "type": "string",
            "description": "Dealers, private sellers or both.",
            "default": "any"
          },
          "listingType": {
            "title": "For sale / for rent",
            "enum": [
              "sale",
              "rent"
            ],
            "type": "string",
            "description": "Rentals exist on EquipmentTrader and CommercialTruckTrader only.",
            "default": "sale"
          },
          "minPrice": {
            "title": "Min price ($)",
            "minimum": 0,
            "maximum": 1000000000,
            "type": "integer",
            "description": "Lowest asking price. 0 = no limit.",
            "default": 0
          },
          "maxPrice": {
            "title": "Max price ($)",
            "minimum": 0,
            "maximum": 1000000000,
            "type": "integer",
            "description": "Highest asking price. 0 = no limit.",
            "default": 0
          },
          "minYear": {
            "title": "Min year",
            "minimum": 0,
            "maximum": 2100,
            "type": "integer",
            "description": "Oldest model year, e.g. 2018. 0 = no limit.",
            "default": 0
          },
          "maxYear": {
            "title": "Max year",
            "minimum": 0,
            "maximum": 2100,
            "type": "integer",
            "description": "Newest model year. 0 = no limit.",
            "default": 0
          },
          "minMileage": {
            "title": "Min mileage",
            "minimum": 0,
            "maximum": 10000000,
            "type": "integer",
            "description": "Lowest odometer miles (motorized units). 0 = no limit.",
            "default": 0
          },
          "maxMileage": {
            "title": "Max mileage",
            "minimum": 0,
            "maximum": 10000000,
            "type": "integer",
            "description": "Highest odometer miles, e.g. 40000. 0 = no limit.",
            "default": 0
          },
          "minLength": {
            "title": "Min length (ft)",
            "minimum": 0,
            "maximum": 200,
            "type": "integer",
            "description": "Shortest length in feet (RVs). 0 = no limit.",
            "default": 0
          },
          "maxLength": {
            "title": "Max length (ft)",
            "minimum": 0,
            "maximum": 200,
            "type": "integer",
            "description": "Longest length in feet (RVs). 0 = no limit.",
            "default": 0
          },
          "minSleeps": {
            "title": "Min sleeps",
            "minimum": 0,
            "maximum": 20,
            "type": "integer",
            "description": "Minimum sleeping capacity (RVs). 0 = no limit.",
            "default": 0
          },
          "minSlideouts": {
            "title": "Min slide-outs",
            "minimum": 0,
            "maximum": 10,
            "type": "integer",
            "description": "Minimum number of slide-outs (RVs). 0 = no limit.",
            "default": 0
          },
          "fuelTypes": {
            "title": "Fuel types",
            "type": "array",
            "description": "e.g. \"Diesel\", \"Gasoline\" (motorized units). Several = any of them.",
            "items": {
              "type": "string"
            }
          },
          "bunkhouseOnly": {
            "title": "Bunkhouse floor plans only",
            "type": "boolean",
            "description": "RVs with a bunkhouse.",
            "default": false
          },
          "floorplanOnly": {
            "title": "With floor plan image only",
            "type": "boolean",
            "description": "Listings that include a floor plan image.",
            "default": false
          },
          "priceReducedOnly": {
            "title": "Price reduced only",
            "type": "boolean",
            "description": "Listings the site marks as price reduced.",
            "default": false
          },
          "pricedOnly": {
            "title": "Priced listings only",
            "type": "boolean",
            "description": "Skip \"call for price\" listings.",
            "default": false
          },
          "dealerIds": {
            "title": "Dealer ids",
            "type": "array",
            "description": "A dealer's whole inventory: the number in a dealer page URL (…?dealerid=5000011531) or the dealerId field. Each id is its own search.",
            "items": {
              "type": "string"
            }
          },
          "sort": {
            "title": "Sort",
            "enum": [
              "newest",
              "featured",
              "nearest",
              "price_asc",
              "price_desc",
              "year_desc",
              "year_asc",
              "mileage_asc",
              "mileage_desc"
            ],
            "type": "string",
            "description": "Result order. Newest first gives the most distinct listings per search (\"Featured\" repeats paid ads on every page).",
            "default": "newest"
          },
          "dealerNameContains": {
            "title": "Dealer name contains",
            "type": "string",
            "description": "Keep only listings whose dealer name contains this text, e.g. \"Camping World\". Private listings are dropped."
          },
          "postedWithinDays": {
            "title": "Listed within (days)",
            "minimum": 0,
            "maximum": 3650,
            "type": "integer",
            "description": "Only listings posted in the last N days, e.g. 1 for a daily schedule. 0 = any age. Pairs with \"Newest listed\" sort, which stops early.",
            "default": 0
          },
          "includeDetails": {
            "title": "➕ Listing details",
            "type": "boolean",
            "description": "Full description, spec table, sleeps, slide-outs, fuel, GVWR, engine, colors, videos, dealer street address and logo, days listed. One extra request per listing; billed as the listing-details event per row that carries them.",
            "default": false
          },
          "includeViewsAndSaves": {
            "title": "Views and saves",
            "type": "boolean",
            "description": "With listing details: also read how many times each listing was viewed and saved (two small extra requests per listing, no extra charge; slower on large runs).",
            "default": false
          },
          "includePrivateSellerPhones": {
            "title": "Private sellers' phone numbers",
            "type": "boolean",
            "description": "Include the phone number a private seller published on the ad. Off: private rows ship without a phone (dealer numbers are always included).",
            "default": false
          },
          "monitorMode": {
            "title": "🔁 Monitor mode",
            "type": "boolean",
            "description": "Deliver only listings this monitor has not delivered before (changeType NEW) and those whose price changed (PRICE_CHANGED, with previousRunPrice). Unchanged listings are skipped and not billed.",
            "default": false
          },
          "monitorStoreName": {
            "title": "Monitor store name",
            "type": "string",
            "description": "Named key-value store that remembers delivered listings. Use one name per monitored search. Empty = \"rvtrader-monitor-state\"."
          },
          "resetMonitorState": {
            "title": "Reset monitor",
            "type": "boolean",
            "description": "Forget what the monitor store remembers before this run (every listing counts as new).",
            "default": false
          },
          "maxResults": {
            "title": "📦 Max results",
            "minimum": 0,
            "maximum": 1000000,
            "type": "integer",
            "description": "Stop after this many listings in total. The site shows 400 listings per search; with \"Split large searches\" on, more are read in price bands. 0 = no limit.",
            "default": 100
          },
          "maxResultsPerSearch": {
            "title": "Max results per search",
            "minimum": 0,
            "maximum": 1000000,
            "type": "integer",
            "description": "Cap per search (each URL, state or dealer id). 0 = only the total cap.",
            "default": 0
          },
          "splitLargeSearches": {
            "title": "Split large searches",
            "type": "boolean",
            "description": "Past the 400-listing window, read the search in price bands until every band fits, so a search for 20,000 listings can be read in full.",
            "default": true
          },
          "compact": {
            "title": "Compact output",
            "type": "boolean",
            "description": "Core fields only (id, title, price, specs that matter, seller contact, location) - smaller rows for AI / MCP pipelines.",
            "default": false
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "Listing-detail requests in flight at once.",
            "default": 4
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Leave as is: the actor starts on a direct connection and moves to its own US residential route only when the site refuses it. Your own proxy URLs are used first when you add them.",
            "default": {
              "useApifyProxy": false
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}