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. Independent tool, not affiliated with Angi.

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

1

Total users

0

Monthly active users

5 days ago

Last modified

Share

Angi Scraper — Home Service Pro Leads, Reviews & Contacts

Disclaimer: This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Angi Inc. or any of its subsidiaries. All trademarks mentioned are the property of their respective owners. "Angi" is referenced only to describe the publicly available website this Actor collects data from.

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.

How much does it cost to scrape Angi?

This Actor uses Apify's pay-per-event pricing: you are charged only for the results it delivers, with no monthly rental and no start fee. The events it can charge are:

  • Pro lead scraped - One Angi pro: name, phone, full address, category, rating, review count, paid-pro/advertiser/Super Service Award/verified badges, services, payment methods, business facts, years in business, description & 0–100 lead score
  • Review scraped - One customer review: rating, text, author, date

The current price of each event is shown on the Pricing tab of this page. Set a maximum total charge on the run if you want a hard cap on spend, and use the input limits to control how much the Actor fetches.

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.

Agent-ready: autonomous payments (x402 & Skyfire)

This actor is agent-ready — AI agents can discover it, run it, and pay for it autonomously, with no Apify account and no human in the loop. It uses pay-per-event pricing and limited permissions, so it qualifies for Apify's agentic-payment standards:

  • x402 — an open, HTTP-native payment protocol. Agents pay per run in USDC on the Base network directly through the Apify MCP server — no account, no API key.
  • Skyfire — agent-to-service payments for fully autonomous AI-agent workflows.

Building an AI agent, MCP tool, or autonomous data pipeline? This scraper is ready to plug in and pay as it goes.

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.

Data & lawful use

This Actor reads business and professional listings that the professionals themselves published to be found: names, roles, firms, ratings and the contact details shown on the public listing. Because those details belong to identifiable people, treat the output as personal data. If you are in the EU or UK you are the data controller for what you do with it: have a lawful basis (usually legitimate interest for B2B prospecting or market research), keep any outreach relevant to the professional's line of work, honour opt-outs and deletion requests, and do not use the output for spam.

Under Apify's Standard Actor Contract, which governs your use of this Actor, you are the controller of any personal data in your input and output and scrapesage acts only as your processor: that data is processed solely to run your job, written only to your own Apify storage, never used for any other purpose and never shared onward. If you need help with a data-subject request that involves this Actor's output, open an issue on the Issues tab.

Disclaimer

This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Angi Inc. or any of its subsidiaries. All trademarks mentioned are the property of their respective owners.

"Angi" and any related marks are the property of their respective owners and are used here only in a descriptive, nominative sense - to identify the publicly accessible website from which this Actor collects data. This Actor is not an official Angi product, is not authorised or certified by Angi Inc., and does not distribute Angi software. It collects only publicly available information; you are responsible for ensuring your use of that data complies with applicable laws, regulations and the terms of the source website.

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.