Angi Scraper - Home Service Pro Leads, Reviews & Contacts avatar

Angi Scraper - Home Service Pro Leads, Reviews & Contacts

Pricing

from $8.00 / 1,000 pro lead scrapeds

Go to Apify Store
Angi Scraper - Home Service Pro Leads, Reviews & Contacts

Angi Scraper - Home Service Pro Leads, Reviews & Contacts

Scrape Angi (Angie's List) home-service pros by category & city: business name, phone, address, rating, reviews, paid-pro / Super Service Award badges, services, payment methods + lead score & monitoring. No login, no browser.

Pricing

from $8.00 / 1,000 pro lead scrapeds

Rating

0.0

(0)

Developer

Scrape Sage

Scrape Sage

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

Angi Scraper — Home Service Pro Leads, Reviews & Contacts

Extract complete home-service-pro data from Angi (formerly Angie's List / HomeAdvisor) by service category and city — business name, phone number, full address, star rating, review count, paid-pro / Super Service Award / verified badges, services offered, payment methods, business facts and every customer review. Each pro comes with a 0–100 lead score so your best prospects float to the top.

No login, no API key, no browser — fast, reliable extraction of the richest Angi dataset on the market, built for B2B lead generation across plumbers, electricians, HVAC, roofers, landscapers, cleaners, painters, remodelers and 60+ more trades.

Why this Angi scraper?

Most "Angi scrapers" grab a name and a rating and stop there. This actor reads Angi's category-listing and profile pages directly, merges the public JSON-LD with the page's embedded data, and ships the fields that actually generate revenue — starting with the phone number and the buying-intent badges (active advertiser / paid pro).

DataGeneric scrapersThis actor
Business name, category, city/state
Phone number✅ when listed
Full street address + ZIPpartial✅ when listed
Overall rating + review countpartial✅ authoritative
Super Service Award winner
Paid pro / active advertiser (buying-intent)
Verified-business badge
Services offered✅ when listed
Payment methods
Business facts (emergency service, free estimates, warranties)
Years in business✅ when listed
Full customer reviews (rating, text, author, date)partial
0–100 lead score
Monitoring (only-new pros)
One clean dataset per entity (no empty columns)

Use cases

  • Lead generation for B2B sellers — home-service pros buy software, insurance, financing, marketing, fleet, uniforms, equipment and SaaS. Export them with phone, address, rating and lead score and feed your CRM or outreach sequence. Paid-pro / advertiser flags surface the businesses already spending on growth.
  • Franchise & acquisition prospecting — find high-rated, established pros (Super Service Award, 10+ years, 100+ reviews) by trade and metro for roll-ups, partnerships and franchising.
  • Competitive & market research — map who serves a city in any trade, at what rating, with what services and how many reviews.
  • Reputation & review mining — pull every customer review for sentiment analysis, testimonials, or competitor monitoring.
  • Local SEO & directory building — build category × city business directories with names, ratings and review counts.

How to use

  1. Sign up for Apify — the free plan is enough to try this actor.
  2. Open the Angi Scraper, set the categories (e.g. plumbing, roofing, hvac) and locations (Austin, TX, Denver, CO), and a max pros cap.
  3. Click Start and watch results stream into the dataset table.
  4. Export as JSON, CSV, Excel, XML, or RSS — or pull results programmatically via the Apify API.

Input

{
"categories": ["plumbing", "hvac"],
"locations": ["Austin, TX", "Denver, CO"],
"maxResults": 100,
"includeProfileDetails": true,
"includeReviews": false,
"withPhoneOnly": false,
"monitorMode": false
}
  • categories — home-service categories (friendly names or Angi slugs): plumbing, electrical, hvac, roofing, landscaping, house cleaning, pest control, painting, flooring, handyman, garage doors, tree service, windows, fencing, appliance repair, foundation repair, remodeling, and 60+ more.
  • locations — US cities as City, ST (a state is required — Angi lists pros by city).
  • startUrls (optional) — paste Angi category-listing URLs (…/companylist/us/tx/austin/plumbing.htm) or individual profile URLs (…-reviews-158736564.htm) to scrape directly.
  • maxResults (default 100) — cap on pro records emitted (reviews don't count toward it).
  • maxPagesPerListing (default 3) — how many result pages to page through per category+city (duplicates removed automatically).
  • includeProfileDetails (default true) — open each pro's profile for the phone number, badges, services, payment methods and business facts. Turn off for a faster name + city + review-snippet scan.
  • includeReviews (default false) — also emit each pro's reviews as separate rows.
  • minRating / minReviews / withPhoneOnly / paidProOnly / superServiceAwardOnly — quality filters.
  • monitorMode (default false) — remember pros from previous runs and emit only new ones (see below).
  • maxConcurrency (default 8) and proxyConfiguration — performance & proxy (US residential by default).

Output

By default you get one dense table of pros. A pro record (type: "pro"):

{
"type": "pro",
"businessName": "We Plumb",
"category": "plumbing",
"phone": "(737) 297-5863",
"street": null,
"city": "Austin",
"state": "TX",
"zipCode": "78702",
"areaServed": "Austin, TX",
"rating": 5,
"reviewCount": 8,
"isPaidPro": true,
"isAdvertiser": true,
"isSuperServiceAward": false,
"isVerified": true,
"isCorporateAccount": false,
"profileType": "PAID_PROFILE",
"yearsInBusiness": null,
"services": ["Drain Cleaning", "Water Heater Installation"],
"paymentMethods": ["Credit Card"],
"businessFacts": { "Emergency Services": "Yes", "Free Estimates": "Yes", "Warranties": "Yes" },
"description": "We Plumb provides a wide variety of plumbing services…",
"logoUrl": "https://cdn.homeadvisor.com/…/original.jpg",
"angiProviderId": "158736564",
"profileUrl": "https://www.angi.com/companylist/us/tx/austin/we-plumb-reviews-10565886.htm",
"leadScore": 51,
"scrapedAt": "2026-06-23T12:00:00.000Z"
}

A review record (type: "review") carries businessName, rating, text, author, datePublished and profileUrl. Use the Pros, Leads and Reviews dataset views to switch between them.

What to expect (field coverage)

Angi mixes pro-entered and platform data, so some fields are present only when the pro filled them in. Verified across multiple metros and trades:

FieldCoverage
Business name, category, city/state, rating, review count, profile URL, badges✅ ~100%
Phone number✅ on paid/advertiser pros; absent on some free profiles
Business facts (emergency / free estimates / warranties), payment methods✅ usually present
Full street address + ZIP✅ when the pro lists a physical address (many are service-area only → city/ZIP)
Services offered, years in business, description✅ when the pro published them
Customer reviews✅ the reviews shown on the public profile

A blank field means Angi didn't publish it for that pro — not that scraping failed. Nothing is dropped, so you always get the richest dataset available.

Monitoring — only get new pros

Turn on monitorMode and the actor remembers every pro it has emitted (in a named key-value store) and returns only new pros on each subsequent run. Pair it with a Schedule to track a metro/trade as new pros join Angi — perfect for a steady drip of fresh leads. Monitor mode is fully orthogonal to Apify Schedules: the schedule decides when a run starts; monitor mode decides which records are new, so the two compose cleanly without conflict.

Automate & schedule

  • Apify API — start runs, fetch datasets, manage schedules over REST.
  • apify-client for JavaScript and Python — official SDKs.
  • Schedules — run it daily/weekly with monitor mode to capture newly listed pros.
  • Webhooks — trigger CRM import, Slack alert or an email sequence the moment a run finishes.
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'MY_APIFY_TOKEN' });
const run = await client.actor('scrapesage/angi-leads-scraper').call({
categories: ['plumbing', 'hvac'],
locations: ['Austin, TX'],
maxResults: 100,
includeProfileDetails: true,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Got ${items.length} Angi pros`);

Integrate with any app

Connect the dataset to 5,000+ apps — no code required:

  • Make — multi-step automation scenarios.
  • Zapier — push new pro leads straight into your CRM.
  • Slack — get notified when a monitored city/trade adds pros.
  • Google Drive / Sheets — auto-export every run to a spreadsheet.
  • Airbyte — pipe results into your data warehouse.
  • GitHub — trigger runs from commits or releases.

Use with AI assistants (MCP)

The output is clean, LLM-ready JSON. Call this actor from Claude, ChatGPT, or any agent framework through the Apify MCP server — ask your assistant to "find the top-rated plumbers in Austin with a phone number and a Super Service Award" and let it run the scraper for you.

More scrapers from scrapesage

Build a complete home-services & local lead-gen stack:

Tips

  • Keep includeProfileDetails on — it's the difference between a name and a contactable lead (phone, badges, services). It adds one fast page per pro.
  • Stack categories × cities for breadth — Angi pins the same sponsored pros at the top of every page, so running more trades and metros yields far more unique pros than paging alone (the actor already pages and dedupes for you).
  • Use paidProOnly / superServiceAwardOnly to target the highest-intent or highest-quality pros only.
  • Recurring leads: combine a Schedule with monitorMode to receive only newly listed pros each run.
  • Proxy: Angi serves clean pages only to US residential IPs — the default proxy is already set correctly; keep it.

FAQ

Which trades can I scrape? 60+ categories including plumbing, electrical, HVAC, roofing, siding, landscaping, lawn care, tree service, house cleaning, carpet/window cleaning, pressure washing, pest control, painting, flooring, handyman, garage doors, windows, doors, fencing, drywall, insulation, concrete, foundation repair, appliance repair, moving, remodeling, home builders, septic and more. Pass a friendly name or an Angi slug.

Does it return phone numbers? Yes — when a pro lists one. Angi exposes the phone on active advertiser / paid-pro profiles, which the actor extracts. Use withPhoneOnly to keep only pros with a phone.

Does it need the Angi API or a key? No. There's no public Angi API; this actor reads the same data the website serves to visitors — no key or login needed.

How do I monitor a city for new pros? Turn on monitorMode and create a Schedule. Each run emits only pros not seen before; add a webhook or Zapier zap to push them into your CRM automatically.

A field is empty — why? Some pros are service-area businesses (no street address), some leave services or years-in-business blank, and free profiles may not list a phone. Fields are blank only when Angi didn't publish that data — never because the scraper skipped it.

Can I export to Google Sheets, CSV, or Excel? Yes — one click in the dataset view, or automatically on every run via the Google Drive integration.

Is scraping Angi legal? This actor collects publicly available data only. You're responsible for using the data in compliance with applicable laws (e.g. GDPR/CCPA for personal data) and Angi's terms.

Need help?

Open an issue on the actor's Issues tab, or visit the Apify help center. Feature requests are welcome — this actor is actively maintained.