HomeAdvisor Contractors & Reviews Scraper avatar

HomeAdvisor Contractors & Reviews Scraper

Pricing

Pay per event

Go to Apify Store
HomeAdvisor Contractors & Reviews Scraper

HomeAdvisor Contractors & Reviews Scraper

Extract public HomeAdvisor contractor profiles and reviews by city or URL. Get services, experience, approval status, ratings, review text, recommendations, and project prices. Export two clean datasets or automate via API and schedules.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Share

Extract public HomeAdvisor contractor profiles and customer reviews from city directories or direct profile URLs.

HomeAdvisor Contractors & Reviews Scraper turns public home-service business pages into structured contractor leads, reputation data, service details, rating distributions, review text, recommendations, and shown project prices.

Use one direct profile for a quick lookup, or provide a HomeAdvisor city directory to map contractors in a local market.

  • 🏠 Find contractor profiles from supported city directories
  • ⭐ Track ratings, review counts, distributions, and customer feedback
  • πŸ”§ Capture services, experience, amenities, and payment methods
  • πŸ’΅ Collect project prices when reviewers publicly show them
  • πŸ“€ Export contractors and reviews separately as JSON, CSV, Excel, XML, or RSS
  • πŸ”‘ No HomeAdvisor login or private API key required

What does HomeAdvisor Contractors & Reviews Scraper do?

The Actor accepts public URLs from HomeAdvisor and extracts structured contractor intelligence.

Supported inputs are:

  • City directories such as /c.Denver.CO.html
  • Contractor profiles such as /rated.MartinandSons.72192370.html

A directory run discovers public contractor profile links.

A profile run extracts the business record and its publicly displayed reviews.

Contractors go to the default dataset.

Reviews go to a separate named Reviews dataset, so exports stay clean and easy to join with profileId.

The Actor does not submit quote requests, reveal gated phone numbers, or enter account-only flows.

Who is it for?

Lead-generation teams

  • Build contractor prospect lists by city or trade
  • Enrich CRM records with public service and reputation data
  • Segment businesses by rating, experience, or review volume

Local market researchers

  • Compare contractor supply across cities
  • Map services offered in a home-improvement market
  • Identify established and highly reviewed businesses

Reputation and customer-experience teams

  • Monitor new public feedback on selected contractors
  • Review recommendation language and recurring themes
  • Track aggregate ratings and review counts over time

Analysts and pricing researchers

  • Collect project-price signals when customers show them
  • Compare services with rating outcomes
  • Feed review text into sentiment or topic models

Why use this contractor reviews extractor?

  • βœ… Two useful datasets: contractor profiles and reviews are not mixed together
  • βœ… Stable joins: numeric HomeAdvisor profile IDs connect every review to a contractor
  • βœ… Source provenance: every contractor keeps the directory or profile URL that produced it
  • βœ… Public-data scope: no account, lead request, or gated phone workflow
  • βœ… Fail-closed validation: unsupported domains and paths are rejected before crawling
  • βœ… Bounded costs: contractor and per-profile review caps prevent accidental large runs
  • βœ… Automation ready: use schedules, API calls, webhooks, Zapier, Make, or MCP
  • βœ… Resilient access: conservative US residential browser sessions and blocked-page retries

What HomeAdvisor contractor data can you extract?

Contractor profile fields

FieldDescription
profileIdStable numeric ID parsed from the HomeAdvisor profile URL
namePublic contractor or business name
profileUrlCanonical public HomeAdvisor profile URL
sourceUrlDirectory or profile input that produced the record
sourceTypedirectory or profile provenance
city, state, postalCodePublic business location
streetAddressPublic street address when shown
approvedWhether the page displays Approved status
descriptionPublic About/business description
servicesOffered service or project categories
yearsOfExperienceExperience stated on the profile
amenitiesPublic amenities such as free estimates
paymentMethodsAccepted payment methods
ratingAggregate rating out of five
reviewCountPublic review count
ratingDistributionPercent distribution for one- through five-star ratings
websitePublic external business website when available
serviceHoursPublic service hours when available
reviewsScrapedNumber of review rows saved in this run
scrapedAtISO timestamp for monitoring and audit trails

Customer review fields

FieldDescription
profileIdJoin key for the contractor dataset
contractorNameContractor name at scrape time
authorPublic reviewer display name
datePublic review date
ratingReview rating
serviceReviewed service or project type when shown
textPublic review text
recommendedRecommendation flag when explicitly shown
projectPricePublicly shown project price when present
currencyCurrency inferred from the shown price
scrapedAtISO extraction timestamp

Optional fields are omitted when HomeAdvisor does not show them.

How much does it cost to scrape HomeAdvisor contractors?

This Actor uses pay-per-event pricing.

You pay for the run startup, each contractor profile, and each public review saved.

The current pre-release pricing is:

EventFreeStarterScaleBusiness
Run startup$0.010$0.010$0.010$0.010
Contractor profile$0.10514$0.091423$0.07131$0.054854
Customer review$0.00345$0.00300$0.00234$0.00180

Higher-tier plans receive additional volume discounts.

A direct profile with five reviews costs about $0.1324 on the Free plan before any platform rounding.

A direct profile with 25 reviews costs about $0.2014 on the Free plan.

The final published prices are formula-validated against representative cloud compute and residential proxy bandwidth.

Apify Free plan users receive monthly platform credits that can be used to test a small input.

How to scrape HomeAdvisor contractors and reviews

  1. Open HomeAdvisor Contractors & Reviews Scraper.
  2. Add one or more public HomeAdvisor directory or contractor profile URLs.
  3. Choose the maximum number of contractors.
  4. Keep Include public reviews enabled when you need review intelligence.
  5. Set a small review limit for the first run.
  6. Click Start.
  7. Export contractor profiles from the default dataset.
  8. Open the named Reviews dataset for review-level exports.

Start with a direct profile to validate your workflow quickly.

Then add directories or more profiles after checking output and cost.

Input parameters

ParameterTypeDefaultDescription
startUrlsarrayrequiredHomeAdvisor city directory or contractor profile URLs
maxContractorsinteger10Global cap for unique contractor records
includeReviewsbooleantrueSave public reviews to the Reviews dataset
maxReviewsPerContractorinteger25Review cap per contractor, from 0 to 200
maxRequestRetriesinteger1Fresh-session retries per blocked or incomplete page

Only www.homeadvisor.com directory and profile paths are supported.

Invalid URLs fail before scraping instead of silently returning unrelated data.

Quick profile lookup

{
"startUrls": [
{ "url": "https://www.homeadvisor.com/rated.MartinandSons.72192370.html" }
],
"maxContractors": 1,
"includeReviews": true,
"maxReviewsPerContractor": 5,
"maxRequestRetries": 1
}

City contractor discovery

{
"startUrls": [
{ "url": "https://www.homeadvisor.com/c.Denver.CO.html" }
],
"maxContractors": 20,
"includeReviews": false,
"maxReviewsPerContractor": 0,
"maxRequestRetries": 1
}

Contractor output example

{
"profileId": "72192370",
"name": "Martin and Sons",
"profileUrl": "https://www.homeadvisor.com/rated.MartinandSons.72192370.html",
"sourceUrl": "https://www.homeadvisor.com/rated.MartinandSons.72192370.html",
"sourceType": "profile",
"city": "Commerce City",
"state": "CO",
"approved": true,
"yearsOfExperience": 30,
"rating": 4.9,
"reviewCount": 166,
"reviewsScraped": 5,
"scrapedAt": "2026-07-16T00:00:00.000Z"
}

Actual values reflect the live public page and can change.

The default dataset contains one row per contractor.

Review output example

{
"profileId": "72192370",
"contractorName": "Martin and Sons",
"profileUrl": "https://www.homeadvisor.com/rated.MartinandSons.72192370.html",
"author": "Jeff H.",
"date": "Jun 2026",
"rating": 5,
"service": "Wood or Fiber Cement Siding Repair or Partial Replacement",
"text": "The communication was excellent and prompt.",
"projectPrice": 1500,
"currency": "USD",
"scrapedAt": "2026-07-16T00:00:00.000Z"
}

The Reviews dataset may contain fewer rows than requested when the profile exposes fewer public reviews.

Tips for reliable HomeAdvisor scraping

  • 🎯 Start with one direct profile and five reviews
  • πŸ“‰ Keep limits low while designing a new downstream workflow
  • πŸ”— Prefer canonical /rated.*.html links for deterministic lookups
  • 🧭 Keep directory inputs separated by market when comparing cities
  • πŸ” Use schedules for reputation monitoring rather than one oversized run
  • πŸ†” Join contractor and review exports on profileId
  • πŸ• Allow retries only when needed; retries consume residential bandwidth
  • πŸ“¦ Store historical snapshots in a named dataset or external warehouse

HomeAdvisor changes page structures and anti-bot controls over time.

The Actor detects challenge pages and fails rather than saving misleading shells.

Integrations and contractor workflows

HomeAdvisor β†’ Google Sheets

Export contractor profiles for sales qualification, territory planning, or local competitor maps.

HomeAdvisor β†’ Slack or Discord

Schedule selected profiles and alert a reputation team when rating or review count changes.

HomeAdvisor β†’ Make or Zapier

Add new contractor records to a CRM, then route high-rated businesses into an outreach sequence.

HomeAdvisor β†’ data warehouse

Load contractor and review datasets into BigQuery, Snowflake, or PostgreSQL for trend analysis.

HomeAdvisor β†’ sentiment model

Send review text to an NLP pipeline to classify service quality, responsiveness, price, and professionalism themes.

Webhooks

Use run-finished webhooks to trigger exports without polling.

API usage with Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/homeadvisor-contractors-reviews-scraper').call({
startUrls: [{ url: 'https://www.homeadvisor.com/rated.MartinandSons.72192370.html' }],
maxContractors: 1,
includeReviews: true,
maxReviewsPerContractor: 5,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

The returned defaultDatasetId points to contractor profiles.

Named Reviews dataset metadata is available from the run's storage links in Apify Console.

Using the Apify API with Python

import os
from apify_client import ApifyClient
client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('automation-lab/homeadvisor-contractors-reviews-scraper').call(run_input={
'startUrls': [
{'url': 'https://www.homeadvisor.com/rated.MartinandSons.72192370.html'}
],
'maxContractors': 1,
'includeReviews': True,
'maxReviewsPerContractor': 5,
})
for item in client.dataset(run['defaultDatasetId']).iterate_items():
print(item)

Use the same input contract in Python, Node.js, cURL, schedules, tasks, and MCP.

Using the Apify API with cURL

curl -X POST \
"https://api.apify.com/v2/acts/automation-lab~homeadvisor-contractors-reviews-scraper/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"startUrls": [{"url":"https://www.homeadvisor.com/rated.MartinandSons.72192370.html"}],
"maxContractors": 1,
"includeReviews": true,
"maxReviewsPerContractor": 5
}'

Do not embed permanent Apify tokens in client-side code or public repositories.

Use HomeAdvisor data with AI agents via MCP

Connect the Actor to Claude Code, Claude Desktop, Cursor, or VS Code through Apify's hosted Model Context Protocol.

Claude Code

$claude mcp add --transport http apify "https://mcp.apify.com?tools=automation-lab/homeadvisor-contractors-reviews-scraper"

Claude Desktop, Cursor, or VS Code

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=automation-lab/homeadvisor-contractors-reviews-scraper"
}
}
}

Authenticate with your Apify account when prompted.

Example prompts:

  • β€œUse automation-lab/homeadvisor-contractors-reviews-scraper to extract this contractor profile and summarize recurring customer feedback.”
  • β€œCollect five public reviews from these HomeAdvisor profiles and compare service ratings.”
  • β€œBuild a Denver contractor market table with business names, services, ratings, and review counts.”

Legality of scraping HomeAdvisor

Web scraping public information is generally legal in many jurisdictions, but rules depend on the data, purpose, location, and applicable agreements.

Use this Actor only for lawful purposes.

Collect only public data you are authorized to process.

Respect HomeAdvisor's terms, applicable privacy laws, intellectual-property rights, and reasonable request volumes.

Do not use extracted data for harassment, discrimination, deceptive outreach, or unsolicited communications that violate law.

This Actor intentionally excludes private accounts, quote submission, lead requests, and gated phone revelation.

You are responsible for your use of the output.

Limitations

  • HomeAdvisor applies Cloudflare and other anti-bot protections
  • Public city directories can change which profile links they expose
  • Optional profile fields may be absent
  • A profile page may expose fewer reviews than the requested cap
  • The Actor does not promise every historical review
  • Review dates can use human-readable month/year formatting
  • Project prices are returned only when publicly shown in review content
  • No login, phone reveal, quote request, or lead submission is performed
  • Pages are processed sequentially to favor reliability over speed

Use a direct profile when directory discovery is unavailable.

FAQ

How fast is the HomeAdvisor scraper?

A direct profile usually takes under a minute, but anti-bot retries and page size can increase runtime. Directory runs take longer because each discovered profile requires a separate browser navigation.

Why are some contractor fields missing?

HomeAdvisor does not show every field on every profile. The Actor omits unavailable optional values instead of inventing data.

Why did a run fail with no contractor output?

The page may have been blocked, the directory may no longer expose profiles, or the input path may be unsupported. Check logs, retry once, or use a canonical direct /rated.*.html profile URL.

Why are there fewer reviews than maxReviewsPerContractor?

The setting is a cap, not a promise. A page can expose fewer public records than requested, and this version does not claim full historical pagination.

Does this reveal contractor phone numbers?

No. Gated phone revelation and lead-generation interactions are intentionally excluded.

Can I scrape profiles without reviews?

Yes. Set includeReviews to false and maxReviewsPerContractor to 0 for a lower-cost profile-only workflow.

Is this an official HomeAdvisor API?

No. It is an independent public-web extraction Actor. It is not affiliated with or endorsed by HomeAdvisor or Angi.

Can I schedule reputation monitoring?

Yes. Create an Apify task with selected profile URLs, schedule it, and compare records by profileId and scrapedAt.

Other contractor and local-business scrapers

Combine this Actor with Automation Lab tools for enrichment and verification:

Use license tools for compliance checks and this HomeAdvisor scraper for public marketplace reputation and service intelligence.

Support

Open an issue from the Actor's Apify Store page with:

  • The affected public HomeAdvisor URL
  • A run ID
  • The expected record or field
  • Whether the failure was repeatable

Do not include private credentials, personal account cookies, or gated lead information.

Start with HomeAdvisor Contractors & Reviews Scraper and a single profile URL to validate your workflow.