Rover Pet Care Scraper at a glance
Rover Pet Care Scraper is a ready-to-run Apify actor from abotapi for collecting web data. Its documented output includes kind, recordid, shortname, headline and url, which you can export as JSON, CSV or Excel or read through the Apify API. It costs $2.20 per 1,000 results on the Apify Free plan and from $1.50 on paid plans, with smaller per-run or optional feature charges listed on Apify.
- Runs on
- Apify cloud: console, API, schedules and integrations
- Data type
- Web data
- Pricing
- $2.20 per 1,000 results (Free plan), from $1.50 on paid plans
- Output
- Documented below · JSON, CSV, Excel
- Inputs
- 23 options
Scrape Rover.com pet-care providers: sitter search by city, rates per stay type, ratings and review history, verification badges, repeat clients, response times, service policies and availability signals.
What Rover Pet Care Scraper can do
- Two ways to find sitters. Search around one or more locations, or paste sitter profile links, sitter-search links, or city landing pages. No need to build search URLs by hand.
- One full record per sitter, 40+ fields. Rates and the complete add-on rate table, quality signals, profile details, service policies, location and the embedded review history.
- Filters that narrow every walk. Minimum rating, price range and Star Sitters only apply in both search and URL mode, not just search mode (a pasted sitter profile link always returns that sitter's full record).
- Enrichment on demand. Read each sitter's full profile and review history, or skip both for fast search-card fields only, and cap the embedded review list per sitter.
- Built for monitoring. Resume one interrupted run without re-collecting, or turn on incremental mode so scheduled runs return only new, updated and reappeared sitters.
- Fails loudly, not silently empty. A run that could not read anything stops with a clear message instead of returning zero rows that look like an empty search.
Choose what to collect
These inputs let you configure Rover Pet Care Scraper - Sitters, Rates & Reviews. Open the actor on Apify to enter your values and review the current options.
| Input | What it controls |
|---|---|
modestring · required | How to find sitters: search around one or more locations, or paste sitter, search or city page links. |
locationsarray | Cities, neighborhoods or ZIP codes to search around (Search mode), e.g. 'San Francisco, CA, USA'. Each location is searched separately. |
serviceTypestring | Which service the search covers (Search mode). |
petTypestring | Which pet the sitter must care for (Search mode). |
urlsarray | Rover links (URL mode): sitter profiles (/members/...), sitter-search pages (/search/...), or city pages like ----dog-boarding. |
minRatinginteger | Only sitters rated at least this many stars, 1 to 5 (0 or empty = no floor). Applies in BOTH modes: it narrows Search-mode walks and every search or city page walked in URL mode. |
minPriceinteger | Only sitters charging at least this much per service unit (0 = no floor). Applies in BOTH modes: it narrows Search-mode walks and every search or city page walked in URL mode. |
Show 16 more inputs
| Input | What it controls |
|---|---|
maxPriceinteger | Only sitters charging at most this much per service unit (0 = no ceiling). Applies in BOTH modes: it narrows Search-mode walks and every search or city page walked in URL mode. |
starSitterboolean | Only return sitters in the platform's Star Sitter program (top-rated, responsive). Applies in BOTH modes: it narrows Search-mode walks and every search or city page walked in URL mode. |
fetchDetailsboolean | Read each sitter's full profile: services and rate tables, home and care policies, verification badges, response stats, repeat clients, own pets. |
fetchReviewsboolean | Read each sitter's review history (rating, date, service, text, sitter reply) and the rating distribution, embedded in the record. |
maxReviewsPerSitterinteger | Cap the embedded review list per sitter, newest first. Defaults to 20; 0 or any value above 1000 is treated as the 1000 ceiling. |
maxItemsinteger | Stop after this many sitter records in total. Defaults to 20 (one search page). Up to 100000; 0 means that 100000 ceiling. This is the only limit that stops a run early by default. |
maxPagesinteger | Stop each search after this many sitter pages, 20 sitters per page (0 = the built-in ceiling of 1000 pages per search; searches also stop at their natural end). |
resumeFromRunIdstring | Paste a previous run ID or dataset ID to continue a large pull without returning items already collected there. |
incrementalModeboolean | Turn this on for daily or recurring monitoring. The first run returns every matching record as NEW. Later runs normally return only NEW, UPDATED and REAPPEARED records. Turn on Emit unchanged or Emit expired only when you also want those rows returned (and billed). A sitter is UPDATED when any returned field changes (profile, headline, ratings count and distribution, services and rate table, availability flags). Never compared: the embedded reviews list (a new review still shows through the ratings count), the displayed rate pricePerUnit (the source flips it between two display states with no real change), the daily availability-updated text, and the distance from the search centre. You can exclude more with Ignore fields. State is kept separately for each search, filter and URL setup; use State key to name or deliberately share a monitoring campaign. EXPIRED is only produced after a complete scan of the tracked search, never after single-sitter links, capped runs or a different setup under a shared State key. |
stateKeystring | Optional. Name this monitoring campaign to keep its state stable, or deliberately share state across differently configured runs. Leave empty to let the actor derive a key automatically from the search and filter settings. |
emitUnchangedboolean | Off by default. Turn on to also return records that have not changed since the last run, marked UNCHANGED. This returns, and bills, extra rows you already have. |
emitExpiredboolean | Off by default. Turn on to also return records that were present in a previous run but are no longer found, marked EXPIRED. Only produced once a run has fully scanned the tracked search; the source sometimes serves a reduced result window after heavy use, and a run that could not see every matching sitter skips EXPIRED detection rather than guessing. |
ignoreFieldsForChangesarray | Optional. Field names that must never mark a sitter UPDATED, in addition to the built-in exclusions. Use a dotted path for a field inside a list, for example services.spacesAvailable. Ignored fields stay in every returned record; they are only left out of change detection and changedFields. |
mcpConnectorsarray | Optionally send results into the apps you already use, via Model Context Protocol (MCP) connectors. Authorize one under Apify, Settings, API & Integrations, then select it here. Notion gets a rich page-per-item export; other connectors get a best-effort write or digest. Leave empty to skip; never changes the dataset output. |
notionParentPageUrlstring | URL or id of the Notion page under which item pages are created. Required to enable the Notion export; ignored by other connectors. |
maxNotifyListingsinteger | Cap on items written to each connector per run. Does not affect the dataset. |
Fields in the output
The documented dataset includes the fields below. Availability can depend on the source page and selected mode.
kindkindrecordIdrecordIdshortNameshortNameheadlineheadlineurlurlserviceTypeserviceTypepricePerUnitpricePerUnitpriceUnitpriceUnitcitycitystatestateneighborhoodneighborhoodratingsAverageratingsAverageShow 53 more fields
ratingsCountratingsCountreviewsTotalRatingsreviewsTotalRatingsyearsOfExperienceyearsOfExperiencerepeatClientsrepeatClientsisStarSitterisStarSitterverificationBadgesverificationBadgesresponseTimeTextresponseTimeTextmemberSincememberSincebadgeTitlebadgeTitlecancellationPolicycancellationPolicyavailabilityUpdatedTextavailabilityUpdatedTextdistanceMidistanceMilatitudelatitudelongitudelongitudereviewsEmbeddedreviewsEmbeddedservicesserviceschangeTypechangeTypechangedFieldschangedFieldsfirstSeenAtfirstSeenAtlastSeenAtlastSeenAtcurrencyCodecurrencyCodezipzipreviewsDistributionreviewsDistributionresponseRatePercentresponseRatePercentavailabilityUpdatedDaysAgoavailabilityUpdatedDaysAgoownPetsCountownPetsCountownPetTypesownPetTypesattributeHighlightsattributeHighlightsreviewsreviewsfirstNamefirstNamedescriptiondescriptionfullDescriptionfullDescriptionimageUrlimageUrlimagesCountimagesCounttestimonialsCounttestimonialsCountyearsOfExperienceTextyearsOfExperienceTextbadgeSlugbadgeSlugengagementLabelengagementLabelresponseRateTextresponseRateTextphotoUpdateRatePercentphotoUpdateRatePercentcanProvideDailyExercisecanProvideDailyExercisecanProvideOralMedicationcanProvideOralMedicationseniorDogExperienceseniorDogExperiencespecialNeedsExperiencespecialNeedsExperiencebrowsableServiceSlugsbrowsableServiceSlugsreviews.ratingreviews.ratingreviews.datereviews.datereviews.serviceTypereviews.serviceTypereviews.serviceNamereviews.serviceNamereviews.reviewerNamereviews.reviewerNamereviews.petNamesreviews.petNamesreviews.textreviews.textreviews.sitterReplyreviews.sitterReplyExample output
An example from this actor’s documentation. Values are illustrative; this is not a fresh live result.
{
"kind": "sitter",
"recordId": "SMPL0001",
"shortName": "Jamie R.",
"headline": "Loving care for your pets",
"url": "https://www.rover.com/members/example-sitter-profile/",
"imageUrl": "https://example.com/images/sample-medium.jpg",
"serviceType": "overnight-boarding",
"currencyCode": "USD",
"pricePerUnit": 56,
"priceUnit": "night",
"neighborhood": "Example Heights",
"city": "Example City",
"state": "CA",
"zip": "94000",
"latitude": 37.77,
"longitude": -122.41,
"distanceMi": 0.9,
"ratingsAverage": 5,
"ratingsCount": 18,
"yearsOfExperience": 5,
"isStarSitter": true,
"verificationBadges": [
"Verified Background Check"
],
"responseRatePercent": 98,
"responseRateText": "Sitter responds to most requests within 24 hours",
"responseTimeText": "Usually responds in a few minutes",
"memberSince": "2019-03-10",
"repeatClients": 9,
"reviewsTotalRatings": 20,
"reviewsDistribution": {
"5star": 15,
"4star": 3,
"3star": 1,
"2star": 1,
"1star": 0
},
"ownPetsCount": 1,
"ownPetTypes": [
"dog"
],
"attributeHighlights": [
"Fenced yard"
],
"reviews": [
{
"rating": 5,
"date": "2026-08-10",
"serviceType": "overnight-boarding",
"serviceName": "Boarding",
"text": "Example review text.",
"sitterReply": null,
"reviewerName": "Example R.",
"petNames": [
"Buddy"
]
}
],
"reviewsEmbedded": 1,
"services": [
{
"name": "Boarding",
"slug": "overnight-boarding",
"active": true,
"standardRate": {
"name": "Standard Rate",
"price": 56,
"unit": "night"
},
"rates": {
"standardRate": {
"name": "Standard Rate",
"price": 56,
"unit": "night"
}
},
"spacesAvailable": 2,
"acceptsSmallDogs": true,
"acceptsMediumDogs": true,
"isAcceptingNewCustomers": true
}
]
}Ways to use this data
- Pet-care marketplace research: compare sitter coverage, rates and service mix across cities and neighborhoods.
- Pricing and rate benchmarking: track standard and add-on rates (holiday, additional pet, pick-up and drop-off) per service type over time.
- Trust and reputation analytics: monitor verification badges, Star Sitter status, rating distribution and response times across a market.
- Business intelligence for pet-care brands: measure repeat-client counts, review growth and availability signals as leading indicators.
- Local services directories: build or refresh a sitter directory for a city or region on a recurring schedule.
Before you run
Start with a small input and check the resulting records against your expected fields. Source content and actor options can change; the current Apify listing is the reference for availability and pricing.
Questions about this actor
What data does Rover Pet Care Scraper return?
The documented output for Rover Pet Care Scraper includes kind, recordid, shortname, headline, url, servicetype, priceperunit and priceunit. Availability of each field depends on the source page and the selected mode.
How much does Rover Pet Care Scraper cost?
It costs $2.20 per 1,000 results on the Apify Free plan and from $1.50 on paid plans, with smaller per-run or optional feature charges listed on Apify. The Apify listing shows the current rate for every plan.
Can I get only new or changed sitters on a schedule?
Yes. Schedule the actor from the Schedules tab and turn on Incremental mode. Later runs then return only new, updated and reappeared records, and unchanged ones are not billed unless you turn on Emit unchanged.
Why does the embedded rate sometimes look like it flipped between runs with nothing else changing?
The source itself displays two rate states for the same sitter (for example 48 and then 54) minutes apart with no real price change. Incremental mode treats this as a display quirk, not a change, so it never marks the sitter UPDATED on its own. The trade-off is that a real change to that displayed rate alone is not flagged either; with Fetch full profiles on, a real change in the sitter's services rate table still marks the sitter UPDATED.
Why did my run fail instead of returning an empty dataset?
If the source refuses every request, the run stops with a clear message so "no sitters found" is never confused with "nothing could be read". Run it again in a few minutes. If only some locations or links could not be read, you still get what was found.
Can I use it with AI agents or MCP?
Yes. Call it from any Apify integration or MCP client, and use the connector field to push results into Notion, Linear or Airtable.
