# Rover Pet Sitter Dog Walker Scraper (`jungle_synthesizer/rover-pet-sitter-dog-walker-scraper`) Actor

Rover.com pet sitters and dog walkers nationwide — pricing, ratings, badges, and availability by city.

- **URL**: https://apify.com/jungle\_synthesizer/rover-pet-sitter-dog-walker-scraper.md
- **Developed by:** [BowTiedRaccoon](https://apify.com/jungle_synthesizer) (community)
- **Categories:** Lead generation
- **Stats:** 2 total users, 1 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.80 / 1,000 record scrapeds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## Rover.com Pet Sitter & Dog Walker Scraper

Scrape pet sitter and dog walker profiles from [Rover.com](https://www.rover.com), the largest US pet-care marketplace. Returns pricing, star ratings, review counts, badges, and service details for sitters nationwide, across boarding, house sitting, dog walking, and doggy day care.

***

### Rover Pet Sitter Dog Walker Scraper Features

- Collects sitter profiles nationwide — every US city Rover lists, not just one.
- Returns per-service pricing: overnight boarding/house-sitting, dog walking, and drop-in visit rates, pulled directly from each sitter's own rate card.
- Extracts star ratings, review counts, and repeat-client counts for quality screening.
- Captures Star Sitter status and background-check badges.
- Flags whether a sitter accepts puppies and whether they have senior-dog care experience.
- Filter by service type — boarding, house sitting, dog walking, doggy day care — or restrict the run to specific cities.

***

### Who Uses Rover Sitter Data?

- **Pet-care platforms** — benchmark Rover's pricing and sitter supply against your own marketplace, city by city.
- **Lead generation** — build a targeted outreach list of active pet-care providers by city and service type, for partnerships or pet-product marketing.
- **Local pet businesses** — scout dog walkers and sitters to partner with, or keep an eye on competitors in your market.
- **Researchers** — study gig-economy pricing patterns across one of the largest on-demand service marketplaces in the US.

***

### How Rover Pet Sitter Dog Walker Scraper Works

1. Pick the service types and cities you want — or leave both open for full nationwide coverage.
2. The actor works through every matching city, page by page, until it reaches your `maxItems` limit.
3. Each sitter's full profile — pricing across every service they offer, badges, ratings, and bio — is pulled once and saved, even if the same sitter turns up under more than one city or service search.
4. Results land in your dataset as they're found, ready to export as JSON, CSV, or Excel.

***

### Input

```json
{
  "maxItems": 100,
  "serviceTypes": ["dog-walking", "dog-boarding"],
  "citySlugs": ["san-francisco--ca", "austin--tx"]
}
```

| Field          | Type    | Default      | Description |
|----------------|---------|--------------|-------------|
| `maxItems`     | Integer | 50           | Maximum number of sitter records to save. Set to `0` for unlimited. |
| `serviceTypes` | Array   | All 4 types  | Which Rover service categories to crawl: `dog-boarding`, `house-sitting`, `dog-walking`, `doggy-day-care`. |
| `citySlugs`    | Array   | (nationwide) | Optional. Restrict the crawl to specific `city--state` slugs, e.g. `san-francisco--ca`. Leave empty to crawl nationwide. |

To run a single city instead of the whole country, set `citySlugs` to just that city — useful for a quick sample before committing to a full nationwide run.

***

### Resuming a large crawl

Every run emits a `resumeCursor` in its Output. If a large crawl stops before it finishes — because it hit `maxItems`, your spend cap (`maxTotalChargeUsd`), or was aborted — start a new run with **the same input** plus that `resumeCursor` to continue from where it left off. The crawl resumes from the queued work the previous run didn't reach.

- You are **not re-charged** for records the earlier run already delivered.
- Resume within your account's run-retention window — on the free tier, roughly your 10 most recent runs. Once the source run is pruned, its `resumeCursor` is no longer valid.
- `resumeCursor` is opaque — supply it unmodified.

***

### Rover Pet Sitter Dog Walker Scraper Output Fields

```json
{
  "sitter_id": "QOOJXL0Q",
  "sitter_name": "Sydney B.",
  "sitter_slug": "sydney-b-dog-loving-energetic-reliable",
  "city": "New York",
  "state": "NY",
  "zip": "10038",
  "latitude": 40.710508,
  "longitude": -74.003107,
  "services_offered": ["drop-in", "dog-walking"],
  "price_per_night_usd": null,
  "price_per_walk_usd": 20,
  "price_per_visit_usd": 25,
  "star_rating": 5,
  "review_count": 36,
  "repeat_client_count": 8,
  "response_time_minutes": 15,
  "response_rate_percent": 100,
  "years_experience": 15,
  "star_sitter_badge": true,
  "rover_certified": true,
  "accepts_puppies": true,
  "accepts_seniors": false,
  "description": "I'm a dog-obsessed girl who truly loves every pup like they're my own...",
  "photos": ["https://www.rover.com/cf-image-cdn/remote/images/people/QOOJXL0Q/..."],
  "profile_url": "https://www.rover.com/members/sydney-b-dog-loving-energetic-reliable/",
  "scraped_at": "2026-10-01T16:28:12.274Z"
}
```

| Field                   | Type    | Description |
|-------------------------|---------|-------------|
| `sitter_id`             | String  | Rover's internal sitter id. |
| `sitter_name`           | String  | Sitter's display name (first name + last initial, as shown on Rover). |
| `sitter_slug`           | String  | URL slug segment from the sitter's public profile. |
| `city`                  | String  | City of the sitter's search listing. |
| `state`                 | String  | Two-letter US state code. |
| `zip`                   | String  | ZIP code. |
| `latitude`              | Float   | Latitude. |
| `longitude`             | Float   | Longitude. |
| `services_offered`      | Array   | Active service types this sitter currently offers. |
| `price_per_night_usd`   | Float   | Standard overnight boarding / house-sitting rate in USD. |
| `price_per_walk_usd`    | Float   | Standard dog-walking rate in USD. |
| `price_per_visit_usd`   | Float   | Standard drop-in visit rate in USD. |
| `star_rating`           | Float   | Average rating, 0-5. |
| `review_count`          | Integer | Number of reviews. |
| `repeat_client_count`   | Integer | Number of repeat clients this sitter has served. Rover does not publish this as a percentage, only a count. |
| `response_time_minutes` | Integer | Typical response time, in minutes. |
| `response_rate_percent` | Integer | Percentage of requests the sitter responds to. |
| `years_experience`      | Integer | Years of pet care experience the sitter reports. |
| `star_sitter_badge`     | Boolean | Whether the sitter currently holds Rover's Star Sitter badge. |
| `rover_certified`       | Boolean | Whether the sitter has passed a Rover-verified background check. |
| `accepts_puppies`       | Boolean | Whether the sitter accepts dogs under 1 year old. |
| `accepts_seniors`       | Boolean | Whether the sitter has senior dog care experience. |
| `description`           | String  | Sitter's public bio / about text. |
| `photos`                | Array   | Public profile photo URLs. |
| `profile_url`           | String  | Public Rover profile URL. |
| `scraped_at`            | String  | Timestamp the record was scraped. |

***

### FAQ

#### Does this scraper cover small towns, or just major cities?

Rover Pet Sitter Dog Walker Scraper crawls every US city Rover publishes a listing page for, from Austin to towns with a handful of sitters. Leave `citySlugs` empty and it covers the whole country for your selected service types.

#### Does it return pricing for every service a sitter offers, even if I only searched one service type?

Yes. A sitter's full rate card — boarding, walking, and drop-in pricing — comes from their own profile, so you get every service they're active in, not just the one your search matched them on.

#### What counts as a "repeat client" — a percentage or a count?

A count. Rover shows repeat-client numbers as a raw count on a sitter's profile, not a percentage, so that's what this field returns.

#### Does the output include sitters' home details, like yard or apartment info?

No. That level of detail is only visible to a logged-in user who has actually messaged the sitter, so it isn't part of this actor's output.

#### How often should I re-run this to keep pricing and ratings current?

Pricing, availability, and review counts change often enough on an active marketplace like Rover that a weekly or monthly re-run keeps a dataset useful for pricing comparisons or lead lists.

***

### Need More Features?

Open an issue or message us — we read every request.

### Why Use Rover Pet Sitter Dog Walker Scraper?

- **Nationwide by default** — one run covers every city Rover lists for your selected service types, not a single hardcoded location.
- **Full rate cards, not a single price point** — most sitters run more than one service, and this actor returns pricing for all of them from one profile fetch, instead of forcing you to run four separate searches to piece it together.
- **Quality signals included** — ratings, review counts, badges, and repeat-client counts ship with every record, so you can screen without a second lookup.

# Actor input Schema

## `sp_intended_usage` (type: `string`):

What will this data feed? E.g. lead lists, KYB checks, price tracking.

## `sp_improvement_suggestions` (type: `string`):

Provide any feedback or suggestions for improvements.

## `sp_contact` (type: `string`):

We'll personally help with your use case. No spam.

## `resumeCursor` (type: `string`):

Leave empty for a fresh crawl. To CONTINUE a previous run where it stopped — without paying again for records you already received — paste the `resumeCursor` value from that run's Output (the run's OUTPUT key). Resume promptly: the previous run's data expires with your account's retention window (free tier: your ~10 most recent runs).

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

Maximum number of sitter records to save. Set to 0 for unlimited (crawls every US city for the selected service types).

## `serviceTypes` (type: `array`):

Which Rover service categories to crawl. Each selected type is crawled across every US city Rover lists for it.

## `citySlugs` (type: `array`):

Optional. Restrict the crawl to specific `city--state` slugs (e.g. `san-francisco--ca`, `austin--tx`) instead of every US city. Leave empty to crawl nationwide for the selected service types.

## Actor input object example

```json
{
  "sp_intended_usage": "Describe your intended use...",
  "sp_improvement_suggestions": "Share your suggestions here...",
  "sp_contact": "Share your email here...",
  "maxItems": 50,
  "serviceTypes": [
    "dog-boarding",
    "house-sitting",
    "dog-walking",
    "doggy-day-care"
  ]
}
```

# 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 = {
    "sp_intended_usage": "Describe your intended use...",
    "sp_improvement_suggestions": "Share your suggestions here...",
    "sp_contact": "Share your email here...",
    "maxItems": 50
};

// Run the Actor and wait for it to finish
const run = await client.actor("jungle_synthesizer/rover-pet-sitter-dog-walker-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 = {
    "sp_intended_usage": "Describe your intended use...",
    "sp_improvement_suggestions": "Share your suggestions here...",
    "sp_contact": "Share your email here...",
    "maxItems": 50,
}

# Run the Actor and wait for it to finish
run = client.actor("jungle_synthesizer/rover-pet-sitter-dog-walker-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 '{
  "sp_intended_usage": "Describe your intended use...",
  "sp_improvement_suggestions": "Share your suggestions here...",
  "sp_contact": "Share your email here...",
  "maxItems": 50
}' |
apify call jungle_synthesizer/rover-pet-sitter-dog-walker-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,jungle_synthesizer/rover-pet-sitter-dog-walker-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/IGorJcnrddMSXN0i3/builds/6Loa9fDMdkALTtPPI/openapi.json
