Angi.com [Only $0.8πŸ’°] Scraper (Resilient Leads & Profiles) avatar

Angi.com [Only $0.8πŸ’°] Scraper (Resilient Leads & Profiles)

Pricing

from $0.90 / 1,000 results

Go to Apify Store
Angi.com [Only $0.8πŸ’°] Scraper (Resilient Leads & Profiles)

Angi.com [Only $0.8πŸ’°] Scraper (Resilient Leads & Profiles)

[Only $0.8πŸ’°] Extract high-quality contractor leads from Angi.com (Angie's List). Scrape business names, phone numbers, full addresses, ratings, review counts, and service categories. Just input a ZIP code or category link to instantly get structured local business data in JSON or CSV.

Pricing

from $0.90 / 1,000 results

Rating

0.0

(0)

Developer

Muhamed Didovic

Muhamed Didovic

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

2 days ago

Last modified

Share

Angi.com Scraper (Leads & Profiles)

How it works

How Angi Scraper works

Unlock the Full Power of Angi Home Services Data - The most resilient scraper for extracting high-quality leads, professional profiles, and business details from Angi.com (formerly Angie's List). Whether you're conducting market research, performing competitor analysis, or building a local service database, our scraper delivers precise, structured data at scale.

"From garage builders and plumbers to roofers and electricians, turn Angi's massive directory into your strategic advantage."

Why Use This Scraper?

  • Multiple Starting Points: Start from the entire US directory, a specific state, a city, a service category, or directly input professional profile URLs.
  • Enterprise-Grade Resilience: Implements parallel TLS fingerprint racing (impit) and intelligent proxy rotation to bypass aggressive Cloudflare and anti-bot blocks.
  • Deep Directory Discovery: Automatically discovers nested states β†’ cities β†’ categories β†’ professional profiles without manual pagination.
  • Structured Output: Extract clean, verified business names, addresses, phone numbers, and service categories.
  • Export Ready: Supports deeply nested JSON for developers or flattened CSV formats for CRM imports.

Overview

The Angi.com Scraper is designed to seamlessly navigate Angi's Next.js infrastructure. By relying on a custom internal handler rather than standard browser automation, it maintains high throughput and bypasses limitations that block standard crawlers. The output focuses primarily on business profile rows, regardless of where the scrape starts.

Supported Inputs

You can mix and match different types of Angi URLs in the startUrls input:

  • US Directory Root: https://www.angi.com/companylist/us/ (Scrapes the entire US)
  • Near Me Root: https://www.angi.com/nearme/
  • State Hubs: https://www.angi.com/companylist/us/tx/ (Scrapes all cities in Texas)
  • City Hubs: https://www.angi.com/companylist/us/al/adamsville/
  • Category Lists: https://www.angi.com/nearme/garage-builders/
  • Direct Profiles: https://www.angi.com/companylist/us/al/cullman/access-garage-doors-of-birmingham-reviews-1.htm
  • ZIP Codes: Just input a 5-digit ZIP code like 90210 and the scraper will automatically resolve it to the corresponding city hub!

Use Cases

AudienceExample Use Case
Sales & Lead GenBuild targeted contact lists of local contractors (e.g., all plumbers in Texas) with verified phone numbers.
Market ResearchersAnalyze service density and categorize businesses by specific niches across different ZIP codes.
Marketing AgenciesOffer specialized marketing or SEO services to home service professionals found on Angi.
Competitor AnalysisTrack local competitors, their listed services, operating hours, and service areas.

How It Works

flowchart LR
A[Start URLs] --> B{URL Type?}
B -->|Directory/Hub| C[Discover States & Cities]
B -->|Category| D[Discover Businesses]
B -->|Profile| E[Direct Extraction]
C --> D
D --> E
E --> F[Next.js JSON Payload]
F --> G[(Apify Dataset)]
style A fill:#2e86de,stroke:#000,color:#fff
style B fill:#feca57,stroke:#000,color:#000
style E fill:#10ac84,stroke:#000,color:#fff
style G fill:#ff6b6b,stroke:#000,color:#fff
  1. You provide URLs: Input one or more Angi directory, category, or profile URLs.
  2. Actor categorizes inputs: The scraper detects the URL type (hub, state, city, category, or profile).
  3. Deep fan-out: For directory URLs, the scraper automatically navigates the hierarchy to discover individual business profiles.
  4. Data extraction: The actor fetches the Next.js build data for each profile, extracting robust business information.
  5. Dataset export: The extracted profiles are saved to your Apify dataset, ready for JSON or CSV download.

Input Configuration

Here is a typical configuration. The useInternalHandler flag is enabled by default to ensure maximum anti-bot resilience.

{
"startUrls": [
{ "url": "https://www.angi.com/nearme/garage-builders/" }
],
"maxItems": 500,
"flattenDatasetOutput": true,
"proxy": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}

Output Overview

The scraper's primary dataset items are business profile rows.

  • Nested JSON: Keeps objects intact (e.g., contactInfo.address.city).
  • Flattened (CSV-friendly): If you enable flattenDatasetOutput, nested objects are flattened into dot-separated keys (e.g., contactInfo_address_city), ensuring no columns are dropped in Excel.

Sample JSON Output

{
"url": "https://www.angi.com/companylist/us/al/cullman/access-garage-doors-of-birmingham-reviews-1.htm",
"category": {
"text": "Garage Builders",
"title": "Garage Builders",
"link": "/companylist/us/al/garage-builders.htm"
},
"state": {
"text": "AL",
"title": "AL Home Services",
"href": "https://www.angi.com/companylist/us/al/"
},
"city": {
"text": "Adamsville",
"title": "Adamsville",
"link": "/companylist/us/al/adamsville/"
},
"companyProfile": {
"businessInfo": {
"businessName": "Access Garage Doors of Birmingham",
"amenities": {},
"hoursInfo": {
"hoursInfoDetail": [],
"acceptsAppointments": false
}
},
"contactInfo": {
"emails": [],
"phoneNumbers": ["205-555-0123"],
"address": {
"street1": "123 Business Way",
"city": "Cullman",
"state": "AL",
"country": "United States",
"postalCode": "35055"
}
},
"logoUrl": "https://example.com/logo.png"
}
}

Key Output Fields

Top-Level Group

  • url (String): The direct URL to the professional's profile on Angi.
  • category (Object): Details about the specific service niche.
  • state (Object): Geographic state container.
  • city (Object): Local city container.

Company Data

  • companyProfile (Object): The core data container extracted from the profile page.
    • businessInfo (Object): Contains the official businessName, amenities, and hoursInfo.
    • contactInfo (Object): Contains arrays for emails, phoneNumbers, and the physical address object.
    • slug (Object): Canonical URL and aliases.
    • logoUrl (String): Full URL to the business logo.
    • images (Array): Gallery of business-provided images or project photos.

Note: For ease of use in flat exports like CSV, key profile fields are also mirrored at the top level.

FAQ

Can I scrape a specific category nationwide? Yes! Input a nationwide category URL like https://www.angi.com/nearme/garage-builders/, and the scraper will automatically navigate through all states and cities for that category.

Does it extract emails? The scraper extracts emails only when they are publicly available on the business profile. Many businesses do not expose their email publicly.

What is the "flattenDatasetOutput" option? Angi's data is deeply nested. If you want to download a CSV for Excel or Google Sheets, enable this option. It unpacks nested objects so that every data point gets its own column.

Support

Additional Services

  • Request Customization: Need specific filters or custom fields? muhamed.didovic@gmail.com
  • Dataset Purchases: Looking for a pre-scraped dataset of all Angi pros? Reach out for pricing.
  • API Access: High-volume API services available for enterprise integrations.