Angi Scraper - US Home Service Pros & Contractors
Pricing
from $3.00 / 1,000 results
Angi Scraper - US Home Service Pros & Contractors
Angi (Angie's List) scraper & data API: find US home-service pros & contractors by category and city โ export business name, category, phone, full address, rating, review count, reviews, years in business & verification. Home-services lead generation & local market research โ fast.
Pricing
from $3.00 / 1,000 results
Rating
0.0
(0)
Developer
Actor stats
0
Bookmarked
3
Total users
1
Monthly active users
7 days ago
Last modified
Categories
Share
Angi Scraper โ US Home-Service Pros, Contractors & Reviews
Extract US home-service professionals and contractors from Angi (formerly Angie's List) at scale. Search by service category and city โ plumbers, electricians, roofers, HVAC, cleaners, landscapers, and more โ and export clean, structured data: business name, category, phone, full address, rating, review count, verification status, and description.
No login. Just give it a category and a location, and get back a ready-to-use dataset in JSON, CSV, Excel, or via API.
Built for home-services lead generation, contractor outreach, and local market research. Pairs perfectly with contractor-license data for full verification + reputation coverage.
๐งญ Table of contents
- What this scraper does
- Why use it
- Who it's for
- What data you get
- Input options
- Input examples
- Output example
- How to use (step by step)
- Tips for best results
- Use cases
- Integrations & export
- Pricing
- FAQ
What this scraper does
Angi is one of the largest US directories of home-service professionals. This actor turns its listings into structured data you can act on.
Give it one or more service categories (e.g. plumbing, electrician, roofing) and locations (e.g. ny/new-york, ca/los-angeles), and it collects the matching pros โ each with contact details, rating, review count, and verification status. You can also paste Angi listing or company URLs directly.
Why use it
- โก Reliable at scale โ built to handle Angi's protections and page reliably through results.
- ๐ Contact-ready โ business name, phone, and full address for outreach and CRM import.
- โญ Reputation data โ rating, review count, and verification status per pro.
- ๐งฑ Flexible inputs โ search by category + location, or paste Angi URLs directly.
- ๐๏ธ Pairs with license data โ combine reputation (Angi) with licensing (state boards) for full vetting.
- ๐ฆ Export anywhere โ JSON, CSV, Excel, HTML table, or RSS, plus a full REST API and integrations.
Who it's for
- Home-services lead-gen building contractor and pro contact lists by trade and city.
- SaaS & marketplaces onboarding or enriching service-provider data.
- Sales teams targeting contractors with tools, insurance, materials, or financing.
- Market researchers analyzing pro density, ratings, and competition by metro.
- Agencies auditing local listings and reputation for clients.
What data you get
Each pro includes (when available):
| Field | Description |
|---|---|
businessName | Company / pro name |
url | Angi profile URL |
category | Service category |
phone | Phone number |
address | Street address |
city | City |
state | State |
zip | ZIP / postal code |
country | Country |
rating | Average star rating |
reviewCount | Number of reviews |
bestRating | Maximum rating scale |
yearsInBusiness | Years in business (when listed) |
isVerified | Whether the pro is verified |
description | Business description |
image | Profile / logo image |
scrapedAt | When the record was scraped |
Input options
| Option | Type | Description |
|---|---|---|
categories | array | Service category slugs (e.g. plumbing, electrician, roofing). |
locations | array | state/city slugs (e.g. ny/new-york, ca/los-angeles). |
startUrls | array | Angi listing or company URLs to scrape directly. |
maxPagesPerList | integer | Result pages to paginate per category+location (default: 3). |
maxItems | integer | Maximum pros to save (0 = no limit). |
maxConcurrency | integer | Parallel profile requests (default: 5). |
proxyConfiguration | object | US residential proxy required (default provided). |
Input examples
1. Plumbers in a city
{"categories":["plumbing"],"locations":["ny/new-york"],"maxItems":100,"proxyConfiguration":{"useApifyProxy":true,"apifyProxyGroups":["RESIDENTIAL"],"apifyProxyCountry":"US"}}
2. Multiple trades across multiple cities
{"categories":["plumbing","electrician","roofing"],"locations":["ca/los-angeles","tx/houston","il/chicago"],"maxPagesPerList":5,"maxItems":1000,"proxyConfiguration":{"useApifyProxy":true,"apifyProxyGroups":["RESIDENTIAL"],"apifyProxyCountry":"US"}}
3. From Angi URLs
{"startUrls":["https://www.angi.com/companylist/us/ny/new-york/plumbing.htm"]}
Output example
{"businessName":"Trejos Plumbing & Rooter","url":"https://www.angi.com/companylist/us/ca/canoga-park/trejos-plumbing-rooter-reviews-1.htm","category":"plumbing","phone":"8183210915","city":"Canoga Park","state":"CA","zip":"91303","country":"United States","rating":5,"reviewCount":4,"bestRating":5,"isVerified":true,"description":"All American Plumbing is committed to excellence ...","scrapedAt":"2026-06-09T10:00:00.000Z"}
How to use (step by step)
- Open the actor and click Try for free.
- Add categories (e.g.
plumbing) and locations (e.g.ny/new-york). - Set Max pages per listing and Max items to control how many pros you collect.
- Keep the US residential proxy (required).
- Click Save & Start.
- When the run finishes, open the Dataset tab and export to JSON, CSV, or Excel, or pull it via API.
Tips for best results
- Location format is
state/city. Use the two-letter state abbreviation and a hyphenated city, e.g.ny/new-york,ca/los-angeles,tx/houston. - Category slugs are hyphenated. Examples:
plumbing,electrician,roofing,hvac,house-cleaning,landscaping,pest-control. - Keep the US residential proxy โ it's required for reliable access.
- Moderate concurrency keeps runs stable; raise it gradually if needed.
- Combine with contractor-license data for full vetting (reputation + licensing).
Use cases
- ๐งฒ Lead generation โ build contractor contact lists (name, phone, city) by trade and metro.
- ๐ค Sales prospecting โ target pros for tools, insurance, materials, software, or financing.
- ๐ Market research โ analyze pro density, ratings, and competition across cities.
- โ Vetting & verification โ combine Angi reputation with license data for due diligence.
- ๐ค AI & data products โ feed structured home-services data into apps and assistants.
Integrations & export
Export as JSON, CSV, Excel, HTML table, or RSS, or fetch results through the API. Connect to Make, Zapier, n8n, Google Sheets, Slack, GitHub, and more, or schedule runs to keep your dataset fresh.
Pricing
This actor runs on a simple pay-per-result model โ you only pay for the pros you collect. Start small with the free tier and scale up as needed.
FAQ
How do I specify a location?
As state/city, using the two-letter state code and a hyphenated city name, e.g. ny/new-york.
Which categories can I use?
Any Angi home-service category slug โ plumbing, electrician, roofing, hvac, house-cleaning, landscaping, pest-control, and many more. Browse angi.com to discover available categories in your target city.
Do I get phone numbers?
Yes โ phone numbers are included when listed on Angi profiles, making this ideal for lead generation. Note: Angi hides phone numbers on approximately 50% of profiles. When hidden, the phone field will be null โ this is a platform limitation, not a scraper issue.
Do I need an account? No login is required. A US residential proxy is required and provided by default.
How many pros can I scrape?
As many as your categories and locations return โ increase maxPagesPerList and maxItems to collect more. Each category+location combination typically returns 100-500 pros. Use multiple categories and cities for larger datasets.
Can I scrape specific companies?
Yes โ paste their Angi URLs into startUrls. Profile URLs follow the pattern /companylist/us/{state}/{city}/{business-name}-reviews-{id}.htm.
Why is a US residential proxy required? Angi uses Cloudflare protection that blocks non-US and datacenter IPs. A US residential proxy ensures reliable access by making requests appear as real US household visitors. The default is preconfigured.
What's the difference between rating, reviewCount, and bestRating?
rating is the average star rating (1-5), reviewCount is the total number of reviews, and bestRating is the maximum possible rating (typically 5). These come from Angi's schema.org LocalBusiness structured data.
Can I combine this with contractor license data? Yes โ this is a powerful pattern. Scrape Angi for reputation data (rating, reviews, verification), then cross-reference with state contractor license databases for compliance data (license status, insurance, bond). Together they give you a complete pro-vetting picture.
How many profiles return phone numbers? Approximately 44% of Angi profiles publicly display phone numbers in the schema.org LocalBusiness JSON. The rest show phone only after user interaction (click-to-reveal). This is an Angi platform design choice โ no scraper can access those hidden numbers.
Is there rate limiting?
Yes โ Angi rate-limits burst requests. We handle this automatically with exponential backoff (0.8sโ8s) and up to 6 retries per request. Keep maxConcurrency at 3-4 for best results.
Need another home-services data source or a custom field? Open an issue on the actor's Issues tab โ feedback and feature requests are welcome.
Anti-Bot Strategy
Angi is protected by Cloudflare which challenges non-browser requests. Our approach:
- Browser-fingerprinted HTTP โ
got-scrapingwith Chrome TLS fingerprint mimics real browser connections - US residential proxy โ each request gets a fresh US residential IP, making it appear as a real US household visitor
- Exponential backoff on 429/403 โ Angi rate-limits bursts; we back off from 0.8s to 8s across up to 6 retry attempts
- Low concurrency โ 3 parallel requests by default to stay under rate-limit thresholds
- Session rotation โ new proxy session per attempt to clear stale Cloudflare challenges
Performance & Memory
| Setting | Value | Notes |
|---|---|---|
| Memory | 512โ1024 MB | Pure HTTP, no browser needed |
| Speed | ~10-15 pros/minute | With moderate concurrency (3-5) |
| Proxy | US Residential (required) | Included in run cost |
| Retries | Up to 6 attempts | Exponential backoff on blocks |
Typical run: 50 pros in ~5-8 minutes. Keep maxConcurrency: 3-4 for stability โ higher values trigger Angi's burst rate-limiting.
Category & Location Format
Category slugs (hyphenated):
plumbing, electrician, roofing, hvac, house-cleaning, landscaping, pest-control, handyman, painting, carpentry, flooring, fencing, tree-service, moving, windows, gutters, siding, masonry, paving, excavating, concrete, drywall, insulation, appliance-repair, garage-doors, home-inspection, pressure-washing, water-damage, mold-remediation, asbestos, radon, chimney, fireplace
Location format (state/city):
ny/new-york, ca/los-angeles, tx/houston, il/chicago, az/phoenix, pa/philadelphia, fl/miami, ga/atlanta, ma/boston, wa/seattle, co/denver, or/portland, nv/las-vegas, dc/washington, nc/charlotte, mi/detroit, mn/minneapolis, oh/columbus, mo/kansas-city, tn/nashville
Use two-letter state abbreviation + hyphenated city name from the Angi URL pattern.
Integration
JavaScript / TypeScript
import{ ApifyClient }from'apify-client';const client =newApifyClient({token:'YOUR_TOKEN'});const run =await client.actor('haketa/angi-scraper').call({categories:['plumbing','electrician'],locations:['ny/new-york'],maxItems:100,});const{ items }=await client.dataset(run.defaultDatasetId).listItems();
Python
from apify_client import ApifyClientclient = ApifyClient(token='YOUR_TOKEN')run = client.actor('haketa/angi-scraper').call(run_input={'categories':['plumbing','electrician'],'locations':['ny/new-york'],'maxItems':100,})items = client.dataset(run['defaultDatasetId']).list_items().items
CLI
apify call haketa/angi-scraper \--input'{"categories":["plumbing"],"locations":["ny/new-york"],"maxItems":100}'
Use Case: Contractor License + Reputation Cross-Reference
One of the most powerful applications is cross-referencing Angi reputation data with state contractor license databases:
- Scrape Angi for pros in a category + city โ get business name, phone, rating, reviews, years in business
- Cross-reference with license data (e.g. state license board scrapers) โ verify license status, insurance, bond
- Score each pro on both reputation (Angi) and compliance (license)
- Target the best โ verified, licensed, highly-rated, and established
This gives you a complete picture no single data source can provide: who is trustworthy AND who is legal.
Common Search Patterns
Find all plumbers across a metro
{"categories":["plumbing"],"locations":["ny/new-york","ny/brooklyn","ny/queens","ny/bronx"],"maxPagesPerList":5,"maxItems":500}
Compare ratings across trades in a city
{"categories":["plumbing","electrician","hvac","roofing","landscaping"],"locations":["ca/los-angeles"],"maxPagesPerList":3,"maxItems":300}
Deep-dive: full detail on top-rated pros
{"categories":["plumbing"],"locations":["fl/miami"],"maxPagesPerList":10,"maxItems":1000}
Legal & Responsible Use
This actor extracts publicly available business listings from Angi.com. Users are responsible for:
- Complying with Angi's Terms of Service
- Respecting data usage rights and copyright
- Adhering to TCPA and CAN-SPAM regulations for any outreach
- Using the data for legitimate business intelligence, market research, and B2B lead generation
The most reliable Angi scraper on Apify โ US home-service pros with phone, ratings, and verification at scale.
