{
  "openapi": "3.0.1",
  "info": {
    "title": "RV Trader Scraper",
    "description": "Scrape RV listings from RVTrader.com - search new & used motorhomes, travel trailers, fifth wheels, toy haulers and more by type, keyword, make, condition, seller type, fuel type, state, price, year, length, sleeping capacity or ZIP radius. Free AUTO proxy; no login required.",
    "version": "1.0",
    "x-build-id": "yxST3tyRuA5d0BHNR"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/crawlerbros~rvtrader-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-crawlerbros-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/crawlerbros~rvtrader-scraper/runs": {
      "post": {
        "operationId": "runs-sync-crawlerbros-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/crawlerbros~rvtrader-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-crawlerbros-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": {
          "rvType": {
            "title": "RV type",
            "enum": [
              "",
              "Class A",
              "Class B",
              "Class C",
              "Destination Trailer",
              "Fifth Wheel",
              "Fish House",
              "Park Model",
              "Pop Up Camper",
              "Teardrop Trailer",
              "Toy Hauler",
              "Travel Trailer",
              "Truck Camper"
            ],
            "type": "string",
            "description": "RV category to filter by. Leave empty to search all RV types.",
            "default": ""
          },
          "keyword": {
            "title": "Keyword",
            "type": "string",
            "description": "Free-text keyword to search listing titles. Matches make, model or trim — example: \"Winnebago\", \"Jayco Eagle\", \"Airstream Flying Cloud\"."
          },
          "make": {
            "title": "Make (manufacturer)",
            "type": "string",
            "description": "Filter to a specific RV manufacturer, e.g. \"Forest River\", \"Keystone\", \"Jayco\", \"Grand Design\", \"Coachmen\", \"Thor Motor Coach\", \"Winnebago\", \"Heartland\", \"Airstream\". Matches RVTrader's structured make field (partial match, case-insensitive) rather than free-text title search, so it's more precise than 'Keyword' for this purpose. Leave empty to search all makes."
          },
          "model": {
            "title": "Model",
            "type": "string",
            "description": "Filter to a specific RV model, e.g. \"Eagle\", \"Montana\", \"Wildwood\", \"Flying Cloud\". Matches RVTrader's structured model field (partial match, case-insensitive) rather than free-text title search, so it's more precise than 'Keyword' for this purpose. Works well combined with 'Make'. Leave empty to search all models."
          },
          "condition": {
            "title": "Condition",
            "enum": [
              "",
              "New",
              "Used"
            ],
            "type": "string",
            "description": "New or used listings.",
            "default": ""
          },
          "state": {
            "title": "State / Province",
            "enum": [
              "",
              "AL",
              "AK",
              "AZ",
              "AR",
              "CA",
              "CO",
              "CT",
              "DE",
              "DC",
              "FL",
              "GA",
              "HI",
              "ID",
              "IL",
              "IN",
              "IA",
              "KS",
              "KY",
              "LA",
              "ME",
              "MD",
              "MA",
              "MI",
              "MN",
              "MS",
              "MO",
              "MT",
              "NE",
              "NV",
              "NH",
              "NJ",
              "NM",
              "NY",
              "NC",
              "ND",
              "OH",
              "OK",
              "OR",
              "PA",
              "RI",
              "SC",
              "SD",
              "TN",
              "TX",
              "UT",
              "VT",
              "VA",
              "WA",
              "WV",
              "WI",
              "WY",
              "AB",
              "BC",
              "MB",
              "NB",
              "NL",
              "NS",
              "ON",
              "PE",
              "QC",
              "SK"
            ],
            "type": "string",
            "description": "US state or Canadian province the RV is listed in. Leave empty to search nationwide.",
            "default": ""
          },
          "minPrice": {
            "title": "Min price (USD)",
            "minimum": 0,
            "maximum": 5000000,
            "type": "integer",
            "description": "Minimum listing price in USD."
          },
          "maxPrice": {
            "title": "Max price (USD)",
            "minimum": 0,
            "maximum": 5000000,
            "type": "integer",
            "description": "Maximum listing price in USD."
          },
          "minYear": {
            "title": "Min year",
            "minimum": 1950,
            "maximum": 2027,
            "type": "integer",
            "description": "Minimum model year."
          },
          "maxYear": {
            "title": "Max year",
            "minimum": 1950,
            "maximum": 2027,
            "type": "integer",
            "description": "Maximum model year."
          },
          "minLengthFt": {
            "title": "Min length (ft)",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Minimum RV length in feet."
          },
          "maxLengthFt": {
            "title": "Max length (ft)",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Maximum RV length in feet."
          },
          "sellerType": {
            "title": "Seller type",
            "enum": [
              "",
              "Dealer",
              "Private"
            ],
            "type": "string",
            "description": "Filter by whether the RV is listed by a dealer or a private party. Applied client-side against RVTrader's richer per-listing data, so it may scan more result pages than a plain search to gather enough matches.",
            "default": ""
          },
          "fuelType": {
            "title": "Fuel type",
            "enum": [
              "",
              "Gasoline",
              "Diesel",
              "Natural Gas",
              "Flex Fuel",
              "Hybrid Electric"
            ],
            "type": "string",
            "description": "Powertrain fuel type — mainly relevant for motorized RVs (Class A/B/C, Truck Camper tow vehicles). Leave empty to search all fuel types.",
            "default": ""
          },
          "sleepingCapacity": {
            "title": "Minimum sleeping capacity",
            "minimum": 1,
            "maximum": 12,
            "type": "integer",
            "description": "Minimum number of people the RV sleeps."
          },
          "zipCode": {
            "title": "ZIP code",
            "type": "string",
            "description": "5-digit US ZIP code to search near. Used together with 'Search radius'. Leave empty to search nationwide."
          },
          "radiusMiles": {
            "title": "Search radius (miles)",
            "enum": [
              "100",
              "150",
              "250",
              "500",
              "1000",
              "nationwide"
            ],
            "type": "string",
            "description": "Search radius around 'ZIP code'. Ignored if ZIP code is empty.",
            "default": "nationwide"
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "featured:asc",
              "price:asc",
              "price:desc",
              "year:asc",
              "year:desc",
              "create_date:desc",
              "relevance:desc"
            ],
            "type": "string",
            "description": "Result ordering.",
            "default": "featured:asc"
          },
          "maxItems": {
            "title": "Max results",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Maximum number of listing records to return.",
            "default": 30
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Free AUTO datacenter proxy — required. rvtrader.com blocks requests without a rotating proxy IP.",
            "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}