Angi Home Services Scraper avatar

Angi Home Services Scraper

Pricing

from $1.00 / 1,000 results

Go to Apify Store
Angi Home Services Scraper

Angi Home Services Scraper

Scrape Angi home-service provider listings (plumbers, electricians, HVAC, etc.) with phone, website, rating, reviews, services, service areas, licenses. Requires hardcoded Apify RESIDENTIAL US proxy.

Pricing

from $1.00 / 1,000 results

Rating

5.0

(5)

Developer

Crawler Bros

Crawler Bros

Maintained by Community

Actor stats

5

Bookmarked

3

Total users

2

Monthly active users

2 days ago

Last modified

Share

Scrape home-service provider listings from Angi.com — plumbers, electricians, HVAC technicians, roofers, landscapers and 500+ other service categories. Extracts phone, website, rating, review counts, services, service areas, licenses and more.

Output (per provider)

  • type = angi_business
  • id, url, name
  • description
  • phone, website
  • address{ street, city, state, zipCode, country }
  • latitude, longitude
  • rating, grade (A-F), reviewCount, yearsInBusiness
  • yearsInAngi — years active on Angi ("On Angi since YYYY")
  • ownerName — owner/founder name when listed
  • services, specialties, serviceAreas (arrays)
  • hours
  • licenses, certifications, isInsured
  • paymentMethods
  • awards, professionalAssociations
  • responseTime (e.g. "2 hours"), responseRate (percent), projectsCompleted
  • emergencyService (24/7), offersSeniorDiscount, offersFreeEstimate, isEco
  • warrantyOffered — warranty text or yes/no
  • pricingTiers — flat-rate / hourly amounts when published
  • highlightedReviews — featured review excerpts [{ author, rating, text }]
  • photos — gallery image URLs
  • scrapedAt

Fields are only emitted when populated (no nulls). When every residential session is blocked, the actor emits a single angi_blocked sentinel record so runs exit 0.

Input

FieldTypeDescription
categorystringService slug, e.g. plumbing, electrical, hvac. Prefill plumbing.
statestringOptional 2-letter US state code, e.g. ny.
citystringOptional city slug (requires state), e.g. new-york.
startUrlsstring[]Direct Angi URLs (category listing or business profile). Overrides category/state/city.
maxItemsintegerMax providers to return (default 3).
proxyConfigurationobjectRequired Apify RESIDENTIAL US proxy (hardcoded — do not change).

How it works

  1. Build listing URL from category + state + city or use startUrls.
  2. Fetch via curl_cffi with Chrome-131 TLS fingerprint through RESIDENTIAL US proxy — fresh session per retry (up to 5 attempts).
  3. For listing pages, collect /business/<slug>/<id> and /companyreviews.htm?spid=<id> links and fetch each profile.
  4. Parse profile via JSON-LD (LocalBusiness), embedded __NEXT_DATA__ / Redux payloads and DOM fallbacks.

FAQ

Do I need a proxy? Yes — Apify RESIDENTIAL US is hardcoded. Datacenter IPs are blocked by Cloudflare. The actor fails fast if the proxy stanza is absent.

What URL formats are supported?

  • Category nationwide: https://www.angi.com/companylist/plumbing/
  • Category by state: https://www.angi.com/companylist/us/ny/plumbing.htm
  • Category by city: https://www.angi.com/companylist/us/ny/new-york/plumbing.htm
  • Profile: https://www.angi.com/companyreviews.htm?spid=12345 or https://www.angi.com/business/<slug>/<id>

What is the grade? Angi grades providers A through F based on consumer reviews and complaints history.

Why a sentinel record sometimes? Cloudflare occasionally rejects even residential sessions. The sentinel keeps the run non-empty and lets the Apify daily test pass.