Angi (formerly Angie's List) Scraper
Pricing
from $0.01 / 1,000 results
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
Actor stats
1
Bookmarked
13
Total users
2
Monthly active users
4 days ago
Last modified
Categories
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)
- User-Agent Rotation - 8 real Firefox user-agent strings rotated per request across Windows, macOS, and Linux
- Randomized Browser Fingerprint - Each session gets a randomized viewport (6 resolutions from 1280x720 to 1920x1080), timezone (5 US zones), and locale
- Resource Blocking - Images, fonts, stylesheets, and 17+ tracking domains are blocked before they load, reducing the fingerprint surface and speeding up page loads
- Camoufox Stealth Browser - When available, uses Camoufox with humanize mode and GeoIP-aware configuration
- Browser Retirement - Browsers are retired after 3 pages and replaced with fresh fingerprints
- Anti-Fingerprint Scripts - Removes
navigator.webdriverflag, spoofs plugins/languages/platform, injects canvas noise, and sets realistic HTTP headers (Sec-Fetch-*, DNT, Accept-Language) - 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 - 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
- Human-Like Delays - Random 2-5 second delays before page interaction, plus 1.5-4 second delays between page navigations
- Sequential Crawling - Single-concurrency mode to avoid tripping rate limiters
Best Practices (recommended)
- Start small - Begin with
maxResults: 10and increase gradually - Space your runs - Wait 15-30 minutes between runs
- Avoid peak hours - Run during off-peak hours for best results
- 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
| Parameter | Type | Default | Description |
|---|---|---|---|
scrapeType | string | search | Type: business_profile, search, reviews |
businessUrl | string | - | Direct Angi listing URL |
searchTerm | string | - | Service type to search (plumber, electrician, etc.) |
location | string | - | City, state or ZIP code |
serviceType | string | - | Filter: plumbing, electrical, hvac, roofing, etc. |
minRating | number | - | Minimum star rating (1.0-5.0) |
includeReviews | boolean | true | Scrape reviews |
maxReviewsPerBusiness | number | 20 | Max reviews per listing |
includePhotos | boolean | false | Extract project photos |
maxResults | number | 50 | Maximum listings to scrape |
sortBy | string | relevance | Sort: relevance, rating, review_count, years_in_business |
proxyConfiguration | object | Residential | Proxy settings |
demoMode | boolean | true | Return sample data for testing |
webhookUrl | string | - | 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)
| Event | Description | Price |
|---|---|---|
listing_scraped | Per business scraped | $0.04 |
review_scraped | Per review extracted | $0.004 |
photo_scraped | Per 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
- Create a Zapier Webhook trigger (Catch Hook)
- Copy the webhook URL to
webhookUrl - Route results to Google Sheets, CRM, Slack, etc.
Make.com (Integromat)
- Create a Webhooks module (Custom webhook)
- Add webhook URL to configuration
- Process results with Make.com scenarios
n8n Integration
- Add a Webhook node
- Configure with webhook URL
- 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
maxResultsto 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: trueto verify your configuration works
"Demo data showing"
- Set
demoMode: false - Make sure you changed
searchTermorlocationfrom 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
maxReviewsPerBusinesssetting
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.comwhen 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
- Actor Arsenal: Full Actor Catalog
- Developer: John Rippy
Built by John Rippy | Actor Arsenal