Angi (formerly Angie's List) Scraper avatar

Angi (formerly Angie's List) Scraper

Pricing

from $0.01 / 1,000 results

Go to Apify Store
Angi (formerly Angie's List) Scraper

Angi (formerly Angie's List) Scraper

Angi Scraper extracts comprehensive business data from Angi (formerly Angie's List), the leading home services marketplace. Get verified contractor profiles, customer reviews, ratings, and project photos for plumbers, electricians, HVAC technicians, roofers, and all home service categories.

Pricing

from $0.01 / 1,000 results

Rating

0.0

(0)

Developer

The Howlers

The Howlers

Maintained by Community

Actor stats

1

Bookmarked

13

Total users

2

Monthly active users

4 days ago

Last modified

Share

Angi Business Scraper - Contractor Profiles, Reviews & Ratings

Scrape Angi (formerly HomeAdvisor) business listings, customer reviews, ratings, project photos, and service areas. Extract license information, background check status, and hire counts. Essential for home service contractors and competitive analysis.

Features

  • Professional Profile Scraping - Complete contractor profiles with credentials
  • Search by Service Type - Plumbers, electricians, HVAC, roofers, and more
  • Location-Based Search - Search by city, state, or ZIP code
  • Review Extraction - Customer reviews with ratings and project details
  • Photo Extraction - Project and portfolio photos
  • Credential Verification - License, insurance, and background check status
  • Anti-Detection Suite - User-Agent rotation (8 real Firefox UAs), randomized viewport/timezone/locale per session, resource blocking, canvas fingerprint noise, webdriver flag removal, and Camoufox stealth browser integration
  • Google Cache Fallback - Automatically falls back to Google's cached page when Angi returns a 403, so scrapes can still succeed even under active blocking
  • Block Detection Monitor - Tracks block rate in real time and auto-aborts the run if 5+ consecutive blocks or >80% block rate to save compute credits
  • Resource Blocking - Blocks images, fonts, and 17+ tracking/analytics domains (Google Analytics, Facebook, Hotjar, Sentry, etc.) to reduce fingerprint surface and speed up page loads
  • __NEXT_DATA__ Extraction - Primary data extraction via Angi's embedded Next.js JSON, with DOM scraping as a fallback
  • Proxy Support - Residential proxies for reliable access
  • Demo Mode - Test with sample data before going live; auto-triggers on empty input or unchanged prefilled defaults

Who Should Use This Actor?

Home Service Contractors

Monitor your Angi presence and compare against competitors. Track ratings, review trends, and service area coverage.

Marketing Agencies

Build lead lists of home service professionals. Identify contractors with weak online presence who need marketing services.

Home Service Marketplaces

Research competitive landscape before launching in new markets. Understand contractor density, pricing, and coverage.

Insurance & Compliance Teams

Verify contractor credentials and background check status for vendor onboarding and compliance checks.

Real Estate Professionals

Build preferred vendor lists for home services. Provide clients with vetted contractor recommendations.

Anti-Detection & Rate Limiting

Angi actively monitors for automated access. This actor includes multiple layers of protection that work automatically:

Built-In Countermeasures (automatic, no configuration needed)

  1. User-Agent Rotation - 8 real Firefox user-agent strings rotated per request across Windows, macOS, and Linux
  2. Randomized Browser Fingerprint - Each session gets a randomized viewport (6 resolutions from 1280x720 to 1920x1080), timezone (5 US zones), and locale
  3. Resource Blocking - Images, fonts, stylesheets, and 17+ tracking domains are blocked before they load, reducing the fingerprint surface and speeding up page loads
  4. Camoufox Stealth Browser - When available, uses Camoufox with humanize mode and GeoIP-aware configuration
  5. Browser Retirement - Browsers are retired after 3 pages and replaced with fresh fingerprints
  6. Anti-Fingerprint Scripts - Removes navigator.webdriver flag, spoofs plugins/languages/platform, injects canvas noise, and sets realistic HTTP headers (Sec-Fetch-*, DNT, Accept-Language)
  7. Google Cache Fallback - When a direct Angi page returns 403/Access Denied/CAPTCHA, the actor automatically loads the page from Google's web cache (webcache.googleusercontent.com) instead
  8. Block Detection Monitor - Tracks every request outcome in real time. Auto-aborts the run if it detects 5+ consecutive blocks or >80% block rate after 10+ requests, saving your compute credits
  9. Human-Like Delays - Random 2-5 second delays before page interaction, plus 1.5-4 second delays between page navigations
  10. Sequential Crawling - Single-concurrency mode to avoid tripping rate limiters
  1. Start small - Begin with maxResults: 10 and increase gradually
  2. Space your runs - Wait 15-30 minutes between runs
  3. Avoid peak hours - Run during off-peak hours for best results
  4. Keep sessions short - Smaller batches (25-50 results) are more reliable than large ones

No account required - This scraper uses public search results.

Quick Start

Demo Mode (Free Test)

{
"demoMode": true
}

Search for Contractors

{
"scrapeType": "search",
"searchTerm": "Plumber",
"location": "Miami, FL",
"maxResults": 25,
"includeReviews": true,
"demoMode": false
}

Scrape a Specific Business

{
"scrapeType": "business_profile",
"businessUrl": "https://www.angi.com/companylist/us/fl/miami/mikes-plumbing.htm",
"includeReviews": true,
"includePhotos": true,
"demoMode": false
}

Filter by Quality

{
"scrapeType": "search",
"searchTerm": "Electrician",
"location": "Atlanta, GA",
"minRating": 4.5,
"maxResults": 50,
"sortBy": "rating",
"demoMode": false
}

Input Parameters

ParameterTypeDefaultDescription
scrapeTypestringsearchType: business_profile, search, reviews
businessUrlstring-Direct Angi listing URL
searchTermstring-Service type to search (plumber, electrician, etc.)
locationstring-City, state or ZIP code
serviceTypestring-Filter: plumbing, electrical, hvac, roofing, etc.
minRatingnumber-Minimum star rating (1.0-5.0)
includeReviewsbooleantrueScrape reviews
maxReviewsPerBusinessnumber20Max reviews per listing
includePhotosbooleanfalseExtract project photos
maxResultsnumber50Maximum listings to scrape
sortBystringrelevanceSort: relevance, rating, review_count, years_in_business
proxyConfigurationobjectResidentialProxy settings
demoModebooleantrueReturn sample data for testing
webhookUrlstring-Webhook URL for results delivery

Output Format

{
"businessName": "Mike's Plumbing & Drain",
"angiUrl": "https://www.angi.com/companylist/us/fl/miami/mikes-plumbing.htm",
"angiId": "12345678",
"categories": ["Plumber", "Drain Cleaning", "Water Heater"],
"rating": 4.8,
"reviewCount": 156,
"grade": "A",
"yearsInBusiness": 15,
"hiredOnAngi": 342,
"address": {
"city": "Miami",
"state": "FL",
"zipCode": "33101"
},
"phone": "(305) 555-1234",
"website": "https://mikesplumbing.com",
"serviceAreas": ["Miami", "Miami Beach", "Coral Gables", "Kendall"],
"licenses": ["CFC1428532", "State Licensed"],
"insurance": true,
"backgroundChecked": true,
"photos": ["https://d2xuzatlf0eg6.cloudfront.net/photos/abc123.jpg"],
"reviews": [
{
"reviewId": "rev123",
"rating": 5,
"title": "Excellent service!",
"text": "Mike fixed our kitchen drain quickly and professionally...",
"author": "John D.",
"date": "December 2024",
"projectType": "Drain Cleaning",
"projectCost": "$150-$300",
"verified": true
}
],
"scrapedAt": "2025-12-21T10:30:00.000Z"
}

Pricing (Pay-Per-Event)

EventDescriptionPrice
listing_scrapedPer business scraped$0.04
review_scrapedPer review extracted$0.004
photo_scrapedPer photo URL extracted$0.002

Example costs:

  • 50 contractors with 20 reviews: (50 x $0.04) + (1000 x $0.004) = $6.00
  • 100 contractors, no reviews: 100 x $0.04 = $4.00
  • Demo mode: $0.00

Webhook & Automation Integration

Webhook Configuration

{
"scrapeType": "search",
"searchTerm": "HVAC",
"location": "Denver, CO",
"webhookUrl": "https://your-endpoint.com/webhook"
}

Zapier Integration

  1. Create a Zapier Webhook trigger (Catch Hook)
  2. Copy the webhook URL to webhookUrl
  3. Route results to Google Sheets, CRM, Slack, etc.

Make.com (Integromat)

  1. Create a Webhooks module (Custom webhook)
  2. Add webhook URL to configuration
  3. Process results with Make.com scenarios

n8n Integration

  1. Add a Webhook node
  2. Configure with webhook URL
  3. Chain with downstream processing

Apify Scheduled Runs

Schedule this actor in Apify Console for recurring scrapes. Use Apify webhooks or API to fetch results programmatically.

Official API Alternatives

Angi does not offer a public API for contractor data. This scraper is the most practical way to access Angi data programmatically.

Alternative data sources:

  • Google Maps API - Basic business listings
  • Yelp Fusion API - Reviews and ratings
  • BBB API - Accreditation and complaints
  • HomeAdvisor - Similar platform (see our HomeAdvisor Scraper)

FAQ

Q: Do I need an Angi account?

A: No. This scraper uses public search results. No login required.

Q: What's the difference between Angi and HomeAdvisor?

A: Angi acquired HomeAdvisor in 2017. Both platforms share data but have different interfaces. We offer separate scrapers for each.

Q: Why am I getting blocked?

A: Angi has anti-bot measures. The actor already includes automatic countermeasures (User-Agent rotation, Google cache fallback, browser fingerprint randomization, resource blocking). If you are still seeing blocks, try reducing maxResults to 10-25, spacing runs 15-30 minutes apart, and running during off-peak hours. If the block rate exceeds 80%, the actor will auto-abort to save your compute credits.

Q: What is the Google cache fallback?

A: When Angi returns a 403 Forbidden, Access Denied, or CAPTCHA challenge, the actor automatically attempts to load the same page from Google's web cache (webcache.googleusercontent.com). This cached version often contains the same contractor data and allows the scrape to succeed even when Angi is actively blocking direct access. The fallback is seamless and requires no configuration.

Q: What happens when the block monitor aborts my run?

A: The block detection monitor tracks every request. If it detects 5 or more consecutive blocks, or if more than 80% of requests are blocked after 10+ total requests, it automatically stops the crawl. Any data already collected up to that point is still saved to the dataset. You will see a summary in the logs showing the block rate and suggestions for next steps.

Q: Can I scrape specific contractor profiles?

A: Yes. Use scrapeType: "business_profile" with the direct Angi URL.

Q: How fresh is the data?

A: Data is scraped in real-time from Angi's current listings. Reviews and ratings reflect the live state of each profile.

Q: How does __NEXT_DATA__ extraction work?

A: Angi is built on Next.js, which embeds structured JSON data in a <script id="__NEXT_DATA__"> tag on each page. The actor checks for this tag first and extracts business data directly from the JSON, which is faster and more reliable than parsing DOM elements. If the JSON is not available (e.g., on cached pages), the actor falls back to traditional DOM selector-based extraction.

Common Problems & Solutions

"No results found"

  • Verify the service type matches Angi categories (e.g., "Plumbing" not "Plumber services")
  • Check location spelling
  • Remove filters temporarily to broaden search

"Request blocked" or empty results

  • The actor handles this automatically with Google cache fallback and block monitoring
  • If blocks persist, wait 15-30 minutes and try again
  • Reduce maxResults to 10-25 for better success rates
  • Check the run logs for the block monitor summary (success rate, block count)

"Run aborted early"

  • The block detection monitor stopped the run to save credits
  • Check the logs for the block rate percentage
  • Try again later when Angi's rate limiting has reset
  • Use demoMode: true to verify your configuration works

"Demo data showing"

  • Set demoMode: false
  • Make sure you changed searchTerm or location from the prefilled defaults ("plumber" / "Miami, FL")
  • No API key or login required for real scraping

"Reviews not loading"

  • Some businesses have few reviews
  • Ensure includeReviews: true
  • Check maxReviewsPerBusiness setting

Changelog

v2.0.0 - Anti-Detection Overhaul (2026-02-22)

  • User-Agent rotation: 8 real Firefox UAs (Windows, macOS, Linux) rotated per request
  • Google cache fallback: Automatic fallback to webcache.googleusercontent.com when Angi returns 403/Access Denied/CAPTCHA
  • Resource blocking: Blocks images, fonts, stylesheets, and 17+ tracking/analytics domains to reduce fingerprint and speed up loads
  • Block detection monitor: Tracks block rate in real time; auto-aborts on 5+ consecutive blocks or >80% block rate after 10 requests
  • Enhanced Camoufox config: Randomized viewport (6 resolutions), timezone (5 US zones), and locale per session
  • __NEXT_DATA__ JSON extraction: Primary data extraction via Next.js embedded JSON instead of DOM scraping, with DOM fallback
  • Anti-fingerprint scripts: Canvas noise injection, webdriver flag removal, plugin/language/platform spoofing, realistic HTTP headers
  • Browser retirement: Browsers retired after 3 pages for fresh fingerprints
  • Improved demo mode: Auto-triggers on empty input or unchanged prefilled defaults; better QA testing flow
  • "Near me" fallback URL: Adds /nearme/ URL as a secondary entry point when the primary /companylist/ URL fails

v1.0.0 - Initial Release

  • Business profile scraping with search and direct URL modes
  • Review and photo extraction
  • Pay-per-event pricing
  • Camoufox stealth browser support
  • Residential proxy support
  • Demo mode

Support


Built by John Rippy | Actor Arsenal