Yelp Business Data Extractor - Contacts & Details avatar

Yelp Business Data Extractor - Contacts & Details

Pricing

Pay per usage

Go to Apify Store
Yelp Business Data Extractor - Contacts & Details

Yelp Business Data Extractor - Contacts & Details

Extract complete Yelp business profiles: name, address, phone, website, hours, amenities, photos, owner info, claimed status, and more. Perfect for lead generation, local SEO audits, and competitive analysis. Complements review scrapers.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Ricardo Akiyoshi

Ricardo Akiyoshi

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

Yelp Business Data Extractor

Extract detailed business profile data from Yelp — contacts, hours, amenities, photos, owner info, and more. This actor focuses on business information, not reviews, making it the perfect complement to review scrapers.

What Data Do You Get?

For every business found, you get:

FieldDescriptionExample
nameBusiness nameJoe's Pizza
addressFull street address7 Carmine St, New York, NY 10014
phonePhone number(212) 366-1182
websiteBusiness website URLhttps://joespizzanyc.com
ratingYelp star rating (1-5)4.5
reviewCountTotal number of reviews3,847
hoursOperating hoursMon: 10:00 AM-4:00 AM; Tue: 10:00 AM-4:00 AM; ...
priceRangePrice level ($-$$$$)$
categoriesBusiness categoriesPizza, Italian
photosNumber of photos1,245
amenitiesBusiness featuresTakeout, Delivery, Outdoor Seating, Wi-Fi
ownerBusiness owner nameJoe Pozzuoli
claimedStatusWhether business is claimedClaimed
urlYelp business page URLhttps://www.yelp.com/biz/joes-pizza-new-york

Plus metadata: searchTerm, searchLocation, dataCompleteness, scrapedAt.

Use Cases

  • Lead Generation — Build contact lists of local businesses with phone numbers and websites
  • Local SEO Audits — Analyze business listings, claimed status, and completeness across competitors
  • Competitive Analysis — Compare ratings, review counts, price ranges, and amenities
  • Market Research — Study business density, categories, and trends in specific areas
  • Data Enrichment — Add Yelp data to your existing business databases
  • Sales Prospecting — Find unclaimed businesses that need marketing help

How It Works

  1. Search Phase — The actor searches Yelp for your terms + locations, discovering business URLs
  2. Detail Phase — Each business page is visited to extract the full profile
  3. Smart Extraction — Uses 3 layered strategies (JSON-LD, embedded state, DOM parsing) for maximum data coverage
  4. Deduplication — Automatically removes duplicate businesses across searches

Input Configuration

Required Fields

  • Search Terms (searchTerms): List of business types to search for

    • Examples: ["restaurants"], ["plumbers", "electricians", "roofers"], ["coffee shops"]
  • Locations (locations): List of locations to search in

    • Examples: ["New York, NY"], ["San Francisco, CA", "Los Angeles, CA", "Seattle, WA"]
    • Tip: Use "City, State" format for best results

Optional Fields

  • Category (category): Yelp category filter code

    • Examples: restaurants, homeservices, health, auto, beautysvc, shopping
  • Max Results (maxResults): Maximum businesses to scrape (default: 500)

    • Budget: 100 businesses = $0.50, 500 = $2.50, 1000 = $5.00
  • Proxy (proxyConfiguration): Proxy settings

    • Residential proxies strongly recommended for Yelp

Example Input

{
"searchTerms": ["italian restaurants", "pizza"],
"locations": ["New York, NY", "Brooklyn, NY"],
"category": "restaurants",
"maxResults": 200,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}

Example Output

{
"name": "Joe's Pizza",
"address": "7 Carmine St, New York, NY 10014",
"phone": "(212) 366-1182",
"website": "https://joespizzanyc.com",
"rating": 4.5,
"reviewCount": 3847,
"hours": "Mon: 10:00 AM-4:00 AM; Tue: 10:00 AM-4:00 AM; Wed: 10:00 AM-4:00 AM; Thu: 10:00 AM-4:00 AM; Fri: 10:00 AM-5:00 AM; Sat: 10:00 AM-5:00 AM; Sun: 10:00 AM-4:00 AM",
"priceRange": "$",
"categories": "Pizza, Italian",
"photos": 1245,
"amenities": "Takeout, Delivery, Outdoor Seating, Accepts Credit Cards, Street Parking",
"owner": "Joe Pozzuoli",
"claimedStatus": "Claimed",
"url": "https://www.yelp.com/biz/joes-pizza-new-york",
"searchTerm": "pizza",
"searchLocation": "New York, NY",
"dataCompleteness": "100%",
"scrapedAt": "2026-03-02T12:00:00.000Z"
}

Searching Multiple Areas at Once

Combine multiple search terms with multiple locations for broad coverage:

{
"searchTerms": ["plumbers", "electricians", "HVAC", "roofers"],
"locations": [
"Austin, TX",
"Dallas, TX",
"Houston, TX",
"San Antonio, TX"
],
"category": "homeservices",
"maxResults": 1000
}

This creates 16 search combinations (4 terms x 4 locations) and scrapes up to 1,000 unique businesses.

Tips for Best Results

  1. Use Residential Proxies — Yelp aggressively blocks datacenter IPs. Residential proxies provide 10x better success rates.

  2. Be Specific with Locations — "New York, NY" works better than just "New York". Include state abbreviations.

  3. Use Category Filters — Adding a category (restaurants, homeservices, etc.) returns more relevant results and fewer false positives.

  4. Start Small — Test with maxResults: 50 first, then scale up once you've confirmed the data looks good.

  5. Combine with Review Scraper — Use this actor for business data and our Yelp Reviews Scraper for detailed review text. Together they give you the complete picture.

Pricing

Pay Per Event — You only pay for successfully scraped businesses.

EventPrice
business-scraped$0.005 per business

Budget Examples:

  • 100 businesses = $0.50
  • 500 businesses = $2.50
  • 1,000 businesses = $5.00
  • 5,000 businesses = $25.00

No monthly fees. No minimum. Pay only for what you scrape.

Data Completeness

The actor reports a data completeness score for each business (0-100%), measuring how many of the 13 data fields were successfully extracted. Average completeness is typically 60-80% depending on how much information businesses have on their Yelp pages.

Rate Limits & Anti-Detection

The actor includes built-in protections:

  • Rotating user agents (Chrome, Firefox, Safari, Edge)
  • Browser-like request headers
  • Random delays between requests
  • Low concurrency (3 parallel requests max)
  • CAPTCHA detection with graceful degradation
  • Automatic retry on failures (up to 4 retries)

Technical Details

  • Runtime: Node.js 18 + CheerioCrawler (lightweight, no browser needed)
  • Speed: ~15-30 businesses per minute (depends on proxy quality)
  • Extraction: 3-layer strategy (JSON-LD > Embedded State > DOM parsing)
  • Deduplication: Automatic URL-based dedup across search pages

Changelog

v1.0.0 (2026-03-02)

  • Initial release
  • Multi-term, multi-location search
  • 3-layer extraction (JSON-LD, embedded state, DOM)
  • Full business profiles with 13+ data fields
  • Pay-per-event pricing ($0.005/business)
  • CAPTCHA detection and graceful degradation
  • Data completeness scoring
  • Detailed run statistics

Integration — Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("sovereigntaylor/yelp-business-scraper").call(run_input={
"searchTerm": "yelp business",
"maxResults": 50
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(f"{item.get('title', item.get('name', 'N/A'))}")

Integration — JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('sovereigntaylor/yelp-business-scraper').call({
searchTerm: 'yelp business',
maxResults: 50
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach(item => console.log(item.title || item.name || 'N/A'));