# RVshare Scraper (`scraptivo/rvshare-scraper`) Actor

Collect RV rental listings from RVshare.com. Enter a search results URL and export RV name, price, ratings, images, location, capacity, brand, model, and year.

- **URL**: https://apify.com/scraptivo/rvshare-scraper.md
- **Developed by:** [Scraptivo](https://apify.com/scraptivo) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $10.00 / 1,000 listings

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

**RVshare Scraper** collects RV rental listings from RVshare.com and turns them into structured data for market research, competitor analysis, and rental-directory building. Provide a search results URL, run the Actor, and export RV name, price, ratings, reviews, images, location, sleeping capacity, brand, model, and year to JSON, CSV, Excel, or your preferred integration. Use it to monitor rental pricing, compare listings, and schedule recurring collection. Listings are billed at $10 per 1,000.

### What can you automate with RVshare Scraper?

- **Build rental directories** — collect RV listings with price, location, images, and capacity from any search URL.
- **Track rental pricing** — capture nightly price, rating, and review counts across listings.
- **Analyze the rental market** — compare brands, models, years, and capacities in a given area.
- **Collect full-size images** — export listing image galleries alongside listing metadata.
- **Schedule recurring collection** — run daily or weekly to catch new or repriced listings.
- **Export to your pipeline** — hand off JSON, CSV, or Excel through the Apify API or webhooks.

### Who is this scraper for?

| Team | Workflow |
|---|---|
| Market researchers | Map RV rental supply, pricing, and capacity by location |
| Competitor analysts | Compare listings, ratings, and nightly prices in a region |
| Rental-directory builders | Assemble structured listing data for a directory or marketplace |
| Pricing-intelligence teams | Schedule runs and track price changes over time |
| Automation builders | Trigger runs from the API or webhooks for recurring pipelines |

### What data can you collect from RVshare?

| Data group | Example fields | How it helps |
|---|---|---|
| Listing identity | `id`, `url`, `name`, `brand`, `model`, `year` | Stable keys and titles for directory building |
| Pricing and availability | `price`, `priceCurrency`, `pricePer`, `availability` | Nightly-rate tracking and availability monitoring |
| Ratings and reviews | `rating`, `reviewCount` | Quality and popularity signals |
| Visuals | `imageUrl`, `images` | Listing image galleries |
| Location and capacity | `location`, `sleeps`, `description` | Area and capacity analysis |

### How to use RVshare Scraper

1. Open the Actor on Apify.
2. Paste one or more RVshare search result URLs.
3. Set a `maxItems` limit to cap output.
4. Optionally configure the proxy settings.
5. Run the Actor, then export results to JSON, CSV, Excel, or the API.

```json
{
  "startUrls": [{ "url": "https://rvshare.com/rv-rental?location=Palm+Bay%2C+FL" }],
  "maxItems": 50,
  "proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }
}
```

### Example workflow

#### Build a weekly RV pricing report for one market

1. Run the Actor on a fixed search URL every Monday.
2. Keep listings that changed nightly price or availability in your downstream step.
3. Deduplicate on `id`, then push the result to a spreadsheet or database.
4. Compare pricing across brands and capacities for the target location.

### Automate and integrate your results

- **Schedule** runs daily or weekly from the Apify Schedules tab, or create one schedule per search URL.
- **Webhooks** can notify Slack, Zapier, or your warehouse when a run succeeds.
- **Connect** results to Google Sheets, Make, Zapier, a CRM, or cloud storage.
- **Deduplicate** downstream using the stable `id`; use `maxItems` to cap output.

### Input reference

| Field | Type | Required | Default | What it controls |
|---|---|---:|---|---|
| `startUrls` | array | Yes | — | RVshare search result URLs to collect from |
| `maxItems` | integer | No | — | Maximum listings to collect (`0` = unlimited) |
| `proxyConfiguration` | object | No | — | Proxy settings for reliable collection |

### Output example

```json
{
  "id": "1495259",
  "url": "https://rvshare.com/rvs/details/1495259",
  "name": "New Catalina rv is ready for your next adventure.",
  "brand": "Coachmen RV Catalina Summit Series 8 231MKS",
  "model": "Coachmen RV Catalina Summit Series 8 231MKS",
  "year": 2024,
  "description": "Sleeps 6 | 0.5 miles from Palm Bay, FL",
  "price": 105,
  "priceCurrency": "USD",
  "pricePer": "Per night",
  "availability": "In Stock",
  "rating": 4.9,
  "reviewCount": 10,
  "imageUrl": "https://imagedelivery.net/.../6391f4d09923fe39c2ed767d51a85150.jpeg/fit=cover",
  "location": "0.5 miles from Palm Bay, FL",
  "sleeps": "Sleeps 6"
}
```

### How much does it cost to scrape RVshare?

RVshare Scraper uses pay-per-event pricing. You are billed per result you receive.

- **`apify-default-dataset-item`** — $10 per 1,000 RV listings written to the dataset.

Each listing written to the dataset counts as one result. Apify subscription-plan discounts apply automatically. A small one-time `apify-actor-start` event ($0.00005) is also billed per run.

### Reliability and responsible use

- A residential proxy is recommended and enabled by default for reliable collection.
- Some fields may be empty when the listing page does not provide them (for example, a blank location).
- Collection is intended for public listing data within your lawful-use scope; you remain responsible for complying with the site's terms.

### Frequently asked questions

#### Can I collect listings from any RVshare search?

Yes. Paste any RVshare search result URL into `startUrls`, and the Actor paginates through the results automatically.

#### What counts as one result?

Each RV listing written to the dataset counts as one result, billed at $10 per 1,000 listings.

#### Why are some fields empty?

Some listings omit fields such as location. When a page does not provide a value, that field is left empty rather than invented.

#### How do I avoid duplicate records?

Key your pipeline on the stable `id` field. Use `maxItems` to cap output during testing.

#### Do I need a proxy?

A residential proxy is recommended and enabled by default for reliable collection.

### Related Scraptivo automations

- [Outdoorsy Scraper](https://apify.com/scraptivo/outdoorsy-scraper) — collect RV and outdoor rental listings from Outdoorsy.
- [TripAdvisor Reviews Scraper](https://apify.com/scraptivo/tripadvisor-reviews-scraper) — collect reviews and ratings from TripAdvisor.
- [Booking.com Scraper](https://apify.com/scraptivo/booking-com-scraper) — collect hotel listings, prices, and availability.
- [Rightmove Scraper](https://apify.com/scraptivo/rightmove-scraper) — collect UK property listings and prices.
- [Redfin Scraper](https://apify.com/scraptivo/redfin-scraper) — collect real estate listings and market data.

### Support and custom workflows

Need a different field, source, or delivery workflow? Contact Scraptivo at scraptivo@gmail.com. Include the Actor name, a sample URL, required fields, and expected volume so we can assess the request.

# Actor input Schema

## `startUrls` (type: `array`):

RVshare search result page URLs to scrape. The scraper will automatically paginate through all results.

## `maxItems` (type: `integer`):

Maximum number of RV listings to scrape (0 = unlimited).

## `proxyConfiguration` (type: `object`):

Proxy settings for anti-bot protection. Residential proxies recommended.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://rvshare.com/rv-rental?location=Palm+Bay%2C+FL"
    }
  ],
  "maxItems": 0,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "US"
  }
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "startUrls": [
        {
            "url": "https://rvshare.com/rv-rental?location=Palm+Bay%2C+FL"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("scraptivo/rvshare-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "startUrls": [{ "url": "https://rvshare.com/rv-rental?location=Palm+Bay%2C+FL" }] }

# Run the Actor and wait for it to finish
run = client.actor("scraptivo/rvshare-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "startUrls": [
    {
      "url": "https://rvshare.com/rv-rental?location=Palm+Bay%2C+FL"
    }
  ]
}' |
apify call scraptivo/rvshare-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,scraptivo/rvshare-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/ba6bqKawfJpmKvuGM/builds/7U10lJjdpApL1kQ5H/openapi.json
