# Fast Yelp Business Scraper API | Ratings, Contact & Amenities (`agents/yelp-business`) Actor

Extract Yelp business profiles, ratings, operating hours, amenities, and contact details. 30+ fields per business. No Yelp API key needed. Pay per result.

- **URL**: https://apify.com/agents/yelp-business.md
- **Developed by:** [Agents](https://apify.com/agents) (community)
- **Categories:** Developer tools, Automation, Lead generation
- **Stats:** 181 total users, 17 monthly users, 99.1% runs succeeded, 9 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

Pay per event

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## 🏪 Fast Yelp Business Scraper API: Extract Business Data, Ratings & Contact Details at Scale

The **Yelp Business Scraper** is an Apify Actor that extracts structured business data from any Yelp listing—including ratings, operating hours, amenities, coordinates, and contact details—without requiring a Yelp API key. This **yelp scraper api** collects 30+ data fields from business profiles, search results, and location-based queries.

Use this **yelp data extractor** for lead generation, competitor analysis, market research, or local SEO auditing. **No API key required**—extract business names, star ratings, price ranges, phone numbers, addresses, and operating hours at scale. First 40 results FREE with every search query.

**💰 Event-Based Pricing:** $0.02/search query (first 40 items FREE) | $0.0005/business detail | **🔓 No Yelp API key required**

---

### 📋 Table of Contents

1. [What Does the Yelp Business Scraper Do?](#-what-does-the-yelp-business-scraper-do)
2. [Features & Capabilities](#-features--capabilities)
3. [Pricing](#-pricing)
4. [Input Parameters](#-input-parameters)
5. [Yelp Business Scraper Strategy Guide](#-yelp-business-scraper-strategy-guide)
6. [Output Format](#-output-format)
7. [Custom Map Function](#-custom-map-function)
8. [Related Scrapers](#-related-scrapers)
9. [Demo Mode & Free Testing](#-demo-mode--free-testing)
10. [Troubleshooting](#-troubleshooting)
11. [Use Cases & Industries](#-use-cases--industries)
12. [Quick Start Guide](#-quick-start-guide)
13. [FAQ](#-frequently-asked-questions)
14. [Contact](#-contact)

---

### 🧭 What Does the Yelp Business Scraper Do?

**Yelp business scraper** is a tool that automates the extraction of business profiles, ratings, reviews, and contact information from Yelp listings. This **yelp data extractor** enables lead generation, competitor analysis, and market research by collecting business IDs, star ratings, review counts, price ranges, operating hours, and amenities from any Yelp search or business page.

The **Yelp Scraper API** retrieves comprehensive business data—including business names, categories, addresses, phone numbers, website URLs, coordinates, Q&A sections, and 30+ amenity fields—by search term, location, or direct URL. This tool operates without requiring Yelp Fusion API keys, OAuth authentication, or complex setup.

This **yelp business data** extractor serves as a practical alternative to the official Yelp Fusion API for bulk data collection. No API quotas, no rate limit headaches—just straightforward data access through Apify's infrastructure. **Scrape Yelp businesses** by location, category, or direct URL in minutes.

#### Why Choose This Yelp Business Scraper?

| Feature              | This Scraper      | Yelp Fusion API | Other Scrapers  |
| -------------------- | ----------------- | --------------- | --------------- |
| **API Key Required** | ❌ No              | ✅ Yes           | Varies          |
| **Free Tier**        | 40 items FREE     | 500 calls/day   | Limited         |
| **Rate Limits**      | No hard limits    | 5,000 calls/day | Varies          |
| **Data Fields**      | 30+ fields        | Limited fields  | 10-15 fields    |
| **Amenities Data**   | ✅ Full extraction | ⚠️ Partial       | ❌ Not available |
| **Q&A Section**      | ✅ Supported       | ❌ Not available | ❌ Not available |
| **Export Formats**   | JSON, CSV, Excel  | JSON only       | Varies          |

#### What Data Can You Extract?

##### Business-Level Data
- **Business ID** — Unique Yelp business identifier
- **Business name** — Official business name
- **Business URL** — Direct Yelp listing URL
- **Star rating (1-5)** — Average rating with decimal precision
- **Review count** — Total number of reviews
- **Price range** — $ to $$$$ pricing indicator
- **Business categories** — Cuisine type, service type, industry
- **Is claimed** — Whether business owner has claimed the listing
- **Is permanently closed** — Business closure status
- **Year established** — When the business was founded
- **Business history** — Historical information if available
- **Primary photo URL** — Main business image
- **Media count** — Total photos and videos

##### Location & Contact Data
- **Full address** — Street address, city, state, zip code
- **City, state, region code** — Geographic identifiers
- **Postal code** — ZIP code
- **Latitude & longitude** — GPS coordinates for mapping
- **Phone number** — Business phone
- **Website URL** — Official business website
- **Reservation URL** — Online booking link if available

##### Operational Data
- **Operating hours (Mon-Sun)** — Full weekly schedule
- **Amenities** — 25+ amenity fields including:
  - Delivery, takeout, outdoor seating
  - Parking options (valet, street, lot)
  - Wi-Fi availability
  - Accessibility features (ADA compliance)
  - Payment methods (credit cards, Apple Pay, Android Pay)
  - Ambience, noise level
  - Good for groups, good for kids
  - Alcohol options, happy hour
  - Catering availability

##### Engagement Data
- **Q&A section** — Questions, answers, users, dates
- **Highlights** — Featured business attributes
- **Reviews** — When enabled via related scraper

---

### ⚡ Features & Capabilities

#### 3 Input Methods Supported

| Input Type       | Example                                           | Best For                    |
| ---------------- | ------------------------------------------------- | --------------------------- |
| **Direct URL**   | `https://www.yelp.com/biz/restaurant-name`        | Single business extraction  |
| **Place Slug**   | `maxs-restaurant-glendale-glendale-3`             | Batch business lookup       |
| **Search Query** | `searchTerms: ["pizza"]` + `location: "New York"` | **Scrape Yelp by location** |

#### Core Features

- **🚀 High-Speed Extraction** — Extract hundreds of businesses efficiently
- **🆓 Free Tier** — First 40 items FREE with every search query
- **🔓 No API Key** — No Yelp Fusion API key or OAuth required
- **📍 Location Search** — **Scrape Yelp by location** with search terms
- **🔄 Sort Options** — Sort by rating, recommended, or review count
- **📁 Multiple Export Formats** — JSON, CSV, Excel direct download
- **⚙️ Custom Transformations** — Shape output with custom map functions
- **🔗 API Integration** — RESTful API for Python, Node.js, or any HTTP client

#### Agents Review Intelligence Suite

This **yelp business scraper** is part of the [Agents](https://apify.com/agents?fpr=yhdrb) cross-platform review intelligence suite on Apify—built by ex-Big Tech engineers and data specialists for precision at scale:

| Tool                                                                                        | What It Extracts                               | Best For                         |
| ------------------------------------------------------------------------------------------- | ---------------------------------------------- | -------------------------------- |
| 🏪 **Yelp Business Scraper**                                                                 | Business profiles, ratings, amenities, contact | Business data **(You are here)** |
| ⭐ **[Yelp Reviews Scraper](https://apify.com/agents/yelp-reviews?fpr=yhdrb)**               | Reviews, ratings, reviewer profiles            | Sentiment analysis               |
| ⭐ **[Trustpilot Reviews Scraper](https://apify.com/agents/trustpilot-reviews?fpr=yhdrb)**   | Reviews, TrustScores, company replies          | SaaS/B2B analysis                |
| ⭐ **[TripAdvisor Reviews Scraper](https://apify.com/agents/tripadvisor-reviews?fpr=yhdrb)** | Hotel/restaurant reviews, ratings              | Hospitality intelligence         |

---

### 💰 Pricing

#### Event-Based Cost Structure

Pay only for what you scrape—no subscriptions, no hidden fees. This **yelp lead generation scraper** uses transparent pay-per-event pricing:

| Event Type       | Price            | What's Included                |
| ---------------- | ---------------- | ------------------------------ |
| **List Query**   | $0.02/search     | First 2 pages (~40 items) FREE |
| **Detail Query** | $0.0005/business | Individual business profile    |
| **Dataset Item** | $0.0005/item     | Each business in results       |

#### Cost Examples

| Scenario                         | What You Pay         |
| -------------------------------- | -------------------- |
| 1 search, 40 businesses          | **$0.02** (all free) |
| 1 search, 100 businesses         | **$0.05**            |
| 5 searches, 200 businesses total | **$0.18**            |
| 10 direct business URLs          | **$0.005**           |
| 50 businesses with full details  | **$0.025**           |

#### Why This Pricing Works

- **No monthly fees** — Pay only for data extracted
- **First 40 items FREE** — Generous free tier with every search
- **Predictable costs** — Calculate exact spend before running
- **Scales linearly** — Same rate whether extracting 100 or 10,000 businesses

---

### 🍚 Input Parameters

Configure your **yelp business scraper** extraction with these parameters. Whether you want to **scrape Yelp businesses** by URL, slug, or search query, these settings control what data you collect.

| Field               | Type   | Description                                                 | Default |
| ------------------- | ------ | ----------------------------------------------------------- | ------- |
| `startUrls`         | array  | Direct Yelp business URLs to extract.                       | `[]`    |
| `placeSlugs`        | array  | Yelp place slugs (alternative to URLs).                     | `[]`    |
| `searchTerms`       | array  | Keywords to search on Yelp.                                 | `[]`    |
| `location`          | string | Location for search queries (city, state, zip).             | `null`  |
| `sortBy`            | string | Sort order: `rating`, `recommended`, `reviewCount`.         | `null`  |
| `maxItems`          | number | Maximum businesses to extract.                              | `30`    |
| `customMapFunction` | string | JavaScript function to transform output. Not for filtering. | `null`  |

#### Parameter Examples

**Extract Single Business by URL:**
```json
{
  "startUrls": ["https://www.yelp.com/biz/maxs-restaurant-glendale-glendale-3"],
  "maxItems": 1
}
````

**Scrape Yelp by Location (Search):**

```json
{
  "searchTerms": ["pizza", "italian restaurant"],
  "location": "Los Angeles, CA",
  "maxItems": 100
}
```

**Extract by Place Slug:**

```json
{
  "placeSlugs": ["maxs-restaurant-glendale-glendale-3", "another-business-slug"],
  "maxItems": 10
}
```

**Sort by Rating:**

```json
{
  "searchTerms": ["coffee shop"],
  "location": "San Francisco, CA",
  "sortBy": "rating",
  "maxItems": 50
}
```

***

### 📖 Yelp Business Scraper Strategy Guide

Master the art of **yelp business data** extraction with these proven strategies. Whether you're building lead lists, analyzing competitors, or researching markets, this guide covers the optimal approach for each use case.

***

#### 🎯 Strategy 1: Lead Generation by Location

**Goal:** Build targeted business lists for sales outreach

**Best Input:**

```json
{
  "searchTerms": ["dentist", "dental clinic"],
  "location": "Chicago, IL",
  "maxItems": 200
}
```

**Why This Works:**

- Extract phone numbers, websites, and addresses for **lead generation**
- Filter by category to target specific industries
- **Export Yelp businesses to CSV** for CRM import
- Build **B2B prospecting** lists at scale

**Pro Tips:**

- Use specific search terms for better targeting
- Combine multiple related terms in one run
- Sort by `reviewCount` to find established businesses

***

#### 🎯 Strategy 2: Competitor Analysis

**Goal:** Analyze competitor ratings, reviews, and amenities

**Best Input:**

```json
{
  "startUrls": [
    "https://www.yelp.com/biz/competitor-1",
    "https://www.yelp.com/biz/competitor-2",
    "https://www.yelp.com/biz/competitor-3"
  ],
  "maxItems": 10
}
```

**Why This Works:**

- Compare ratings and review counts across competitors
- Analyze amenities and services offered
- Track **competitive intelligence** data
- Identify gaps in competitor offerings

**Pro Tips:**

- Extract Q\&A sections for customer pain points
- Compare operating hours and availability
- Analyze price ranges across competitors

***

#### 🎯 Strategy 3: Market Research by Category

**Goal:** Understand market density and business landscape

**Best Input:**

```json
{
  "searchTerms": ["restaurant"],
  "location": "Austin, TX",
  "sortBy": "recommended",
  "maxItems": 500
}
```

**Why This Works:**

- Map business density in target markets
- Analyze category distribution and trends
- Support **real estate market research** decisions
- Identify underserved areas for **franchise location research**

**Pro Tips:**

- Use broad search terms for market overview
- Sort by different criteria for varied perspectives
- Extract coordinates for geographic mapping

***

#### 🎯 Strategy 4: Reputation Monitoring

**Goal:** Track business ratings and review trends

**Best Input:**

```json
{
  "startUrls": ["https://www.yelp.com/biz/your-business-name"],
  "maxItems": 1
}
```

**Why This Works:**

- Monitor your own business ratings
- Track review count changes over time
- Support **reputation management** workflows
- Combine with Yelp Reviews Scraper for full analysis

**Pro Tips:**

- Schedule regular runs for trend tracking
- Compare against competitor ratings
- Use webhooks for automated alerts

***

### 📊 Output Format

Clean, structured JSON output with comprehensive business data. Each business object contains 30+ fields covering ratings, contact info, location, amenities, and engagement data—everything you need to **extract Yelp business details** at scale.

#### Business Output Example

The following output shows the key fields extracted from each Yelp business listing:

```json
{
  "businessId": "znEKghXteVgPyaUboU1Dsg",
  "type": "business",
  "url": "https://www.yelp.com/biz/maxs-restaurant-glendale-glendale-3",
  "title": "Max's Restaurant - Glendale",
  "rating": 3.3,
  "reviewCount": 1346,
  "priceRange": "$$",
  "categories": ["Filipino", "Seafood", "Breakfast & Brunch"],
  "isClaimed": true,
  "isBusinessClosed": false,
  "yearEstablished": null,
  "address": {
    "city": "Glendale",
    "regionCode": "CA",
    "addressLine1": "313 W Broadway",
    "postalCode": "91204",
    "formatted": "313 W Broadway\nGlendale, CA 91204"
  },
  "coordinates": [{ "latitude": 34.147119, "longitude": -118.258638 }],
  "primaryPhoto": "https://s3-media0.fl.yelpcdn.com/bphoto/.../o.jpg",
  "operationHours": {
    "Mon": "11:00 AM - 8:30 PM",
    "Tue": "11:00 AM - 8:30 PM",
    "Wed": "11:00 AM - 8:30 PM",
    "Thu": "11:00 AM - 8:30 PM",
    "Fri": "11:00 AM - 8:30 PM",
    "Sat": "11:00 AM - 8:30 PM",
    "Sun": "10:00 AM - 8:30 PM"
  },
  "amenities": [
    { "RestaurantsReservations": "Takes Reservations", "isEnabled": true },
    { "RestaurantsDelivery": "Offers Delivery", "isEnabled": true },
    { "RestaurantsTakeOut": "Offers Takeout", "isEnabled": true },
    { "accessible_parking": "Accessible parking near entrance", "isEnabled": true },
    { "ada_compliant_entrance": "ADA-compliant main entrance", "isEnabled": true },
    { "accepts_credit_cards": "Accepts Credit Cards", "isEnabled": true },
    { "has_outdoor_seating": "Outdoor Seating", "isEnabled": true },
    { "Ambience": ["Casual", "Classy"], "isEnabled": true },
    { "NoiseLevel": "Moderate Noise", "isEnabled": true },
    { "good_for_groups": "Good for Groups", "isEnabled": true },
    { "good_for_kids": "Good For Kids", "isEnabled": true },
    { "BusinessParking": ["Parking", "Valet Parking"], "isEnabled": true },
    { "wifi_options": "Free Wi-Fi", "isEnabled": true },
    { "alcohol_options": "Full Bar", "isEnabled": true }
  ],
  "questions": [
    {
      "question": "Do they have free parking?",
      "answer": "They have valet parking, it's not free. I think it was $4.",
      "user": "Katherine N.",
      "answerDate": "2024-10-27T04:43:36Z"
    }
  ],
  "website": "https://www.maxsrestaurantna.com/glendale",
  "phoneNumber": "(818) 862-3793",
  "reservationUrl": "https://www.yelp.com/reservations/maxs-restaurant-glendale-glendale-3",
  "mediaCount": 2336
}
```

#### Field Availability Guarantees

| Field            | Availability | Data Type | Notes                   |
| ---------------- | ------------ | --------- | ----------------------- |
| `businessId`     | ✅ Always     | string    | Unique Yelp business ID |
| `title`          | ✅ Always     | string    | Business name           |
| `url`            | ✅ Always     | string    | Yelp listing URL        |
| `rating`         | ✅ Always     | number    | 1-5 star rating         |
| `reviewCount`    | ✅ Always     | number    | Total reviews           |
| `priceRange`     | ⚠️ Sometimes  | string    | $ to $$$$ if set        |
| `categories`     | ✅ Always     | array     | Business categories     |
| `address`        | ✅ Always     | object    | Full address details    |
| `coordinates`    | ✅ Always     | array     | Lat/long for mapping    |
| `phoneNumber`    | ⚠️ Sometimes  | string    | If listed               |
| `website`        | ⚠️ Sometimes  | string    | If listed               |
| `operationHours` | ⚠️ Sometimes  | object    | Mon-Sun schedule        |
| `amenities`      | ⚠️ Sometimes  | array     | 25+ amenity fields      |
| `questions`      | ⚠️ Sometimes  | array     | Q\&A if available        |

#### Export Options

- **JSON:** Complete datasets with nested objects—ideal for analysis pipelines
- **CSV:** Direct download from Apify Console—perfect for **export Yelp businesses to CSV**
- **Excel:** Spreadsheet-compatible format for business users

***

### 🧩 Custom Map Function

Transform output using the `customMapFunction` parameter. This JavaScript function receives each business object and returns your desired format—flatten nested data, extract specific fields, or restructure for your pipeline.

**Important:** Custom map function is for data transformation—**not for filtering**. Filtering items may result in automatic restrictions.

#### Example: Lead Generation Output

```javascript
(object) => ({
  businessName: object.title,
  phone: object.phoneNumber,
  website: object.website,
  address: object.address?.formatted,
  city: object.address?.city,
  state: object.address?.regionCode,
  zip: object.address?.postalCode,
  rating: object.rating,
  reviewCount: object.reviewCount,
  priceRange: object.priceRange,
  categories: object.categories?.join(", "),
  latitude: object.coordinates?.[0]?.latitude,
  longitude: object.coordinates?.[0]?.longitude
})
```

#### Common Transformations

| Use Case                | What to Extract                                            |
| ----------------------- | ---------------------------------------------------------- |
| **Lead Generation**     | `title`, `phoneNumber`, `website`, `address`, `categories` |
| **Competitor Analysis** | `rating`, `reviewCount`, `priceRange`, `amenities`         |
| **Market Research**     | `categories`, `coordinates`, `address.city`, `priceRange`  |
| **Local SEO**           | `title`, `url`, `rating`, `reviewCount`, `address`         |

***

### 🌴 Related Scrapers

Expand your Yelp data extraction capabilities with our complete suite of **yelp data extractor** tools. Each focuses on specific data types for comprehensive business intelligence.

#### 📦 Agents Review Intelligence Suite

All tools below are built and maintained by [Agents](https://apify.com/agents?fpr=yhdrb)—a team of ex-Big Tech engineers, former ad agency strategists, and data specialists delivering intelligence, precision, and impact at scale.

| Tool                                                                                        | What It Extracts                               | Best For                         |
| ------------------------------------------------------------------------------------------- | ---------------------------------------------- | -------------------------------- |
| 🏪 **Yelp Business Scraper**                                                                 | Business profiles, ratings, amenities, contact | Business data **(You are here)** |
| ⭐ **[Yelp Reviews Scraper](https://apify.com/agents/yelp-reviews?fpr=yhdrb)**               | Reviews, ratings, reviewer profiles            | Sentiment analysis               |
| ⭐ **[Trustpilot Reviews Scraper](https://apify.com/agents/trustpilot-reviews?fpr=yhdrb)**   | Reviews, TrustScores, company replies          | SaaS/B2B analysis                |
| ⭐ **[TripAdvisor Reviews Scraper](https://apify.com/agents/tripadvisor-reviews?fpr=yhdrb)** | Hotel/restaurant reviews, ratings              | Hospitality intelligence         |

***

### 🆓 Demo Mode & Free Testing

If you run on Apify's Free plan, you can still use this **yelp business scraper** with limited results. For unrestricted usage and to unlock the full power of this **yelp scraper api** at scale, subscribe to a paid Apify plan.

**Free Plan Benefits:**

- ✅ First 40 items FREE with every search query
- ✅ Test the API before committing to larger runs
- ✅ Perfect for validating output format and data quality
- ✅ No credit card required to start

**Upgrade for Full Access:**

- 🚀 Unlimited business extraction from Yelp
- 🚀 High-speed extraction for thousands of businesses
- 🚀 API access for automated workflows and integrations
- 🚀 Scheduled runs with webhooks and cron jobs

For unrestricted usage, [subscribe to a paid Apify plan](https://apify.com/pricing?fpr=yhdrb).

***

### 🔧 Troubleshooting

Having trouble with your extraction? Here are solutions to common issues when you **scrape Yelp businesses** and extract business data.

***

#### ❓ Getting Fewer Results Than Expected?

**Problem:** Extraction returns fewer businesses than anticipated

**Solutions:**

✅ **Check `maxItems` setting**—increase the limit if you need more businesses\
✅ **Try different `sortBy` options**—`rating`, `recommended`, or `reviewCount`\
✅ **Broaden search terms**—use more general keywords\
✅ **Verify location format**—use "City, State" format (e.g., "Los Angeles, CA")

***

#### ❓ No Results Returned?

**Problem:** Extraction completes but returns empty dataset

**Solutions:**

✅ **Verify input format**—provide at least one URL, slug, or search term\
✅ **Check URL validity**—must be valid Yelp business URLs\
✅ **Confirm search terms exist**—test the search on Yelp.com first\
✅ **Check location spelling**—ensure location is correctly formatted

***

#### 💰 Unexpected Costs?

**Problem:** Your run cost more than anticipated

**Key pricing to remember:**

| Scenario                 | What You Pay     |
| ------------------------ | ---------------- |
| 1 search, 40 businesses  | $0.02 (all free) |
| 1 search, 100 businesses | $0.05            |
| 10 direct URLs           | $0.005           |

**Cost control tips:**

✅ **Use `maxItems` to cap spending**—set hard limits on total extraction\
✅ **Start with smaller batches**—test with 40-50 businesses first\
✅ **First 40 items are FREE**—included with every search query

***

#### ❓ Missing Data Fields?

**Problem:** Some expected fields are missing from output

**Solutions:**

✅ **Open Storage tab**—full datasets available in Apify Console\
✅ **Check field availability**—some fields (website, phone) may not be listed\
✅ **Verify business has data**—not all businesses have complete profiles

***

### 🎯 Use Cases & Industries

This **yelp business scraper** serves professionals who need fast, structured business intelligence—from **lead generation** to **competitor analysis** and **market research**. Use it to **extract Yelp business details** for any business intelligence need.

***

#### 🎯 Lead Generation & B2B Prospecting

Build targeted prospect lists from Yelp business data.

- Extract phone numbers, websites, and addresses for **lead generation**
- Build **B2B prospecting** databases by industry and location
- Collect business categories for qualification
- **Export Yelp businesses to CSV** for CRM import

**Example:** Extract 500 dentists in Chicago for **sales prospecting** outreach.

***

#### 🔍 Competitor Analysis & Intelligence

Analyze competitor ratings, reviews, and offerings.

- Track **competitor analysis** data across multiple businesses
- Compare ratings, review counts, and price ranges
- Analyze amenities and services offered
- Identify gaps in competitor offerings

**Example:** Monitor 10 competitor restaurants for **competitive intelligence**.

***

#### 📊 Market Research & Consumer Analysis

Understand market density and business landscape.

- Map business density for **market research**
- Analyze **consumer behavior** through review patterns
- Support **real estate market research** decisions
- Identify underserved areas and opportunities

**Example:** Research restaurant density in Austin for **franchise location research**.

***

#### 🏨 Restaurant & Hospitality Intelligence

Gather insights for hospitality industry analysis.

- Track **restaurant research** trends and ratings
- Analyze **hospitality intelligence** data
- Monitor service quality across locations
- Research cuisine trends and pricing

**Example:** Analyze 200 restaurants for **hospitality consulting** recommendations.

***

#### 📍 Local SEO Auditing

Audit local business presence and optimization.

- Track **local SEO auditing** metrics
- Monitor business listing completeness
- Analyze competitor local search presence
- Identify optimization opportunities

**Example:** Audit local business listings for **local SEO** improvements.

***

#### 🏢 Investment Due Diligence

Research local market health for investment decisions.

- Assess **investment due diligence** data
- Analyze local business density and health
- Research market saturation levels
- Evaluate business success indicators

**Example:** Research local market for **investment due diligence** analysis.

***

#### 📚 Academic Research & Urban Studies

Collect data for research and analysis.

- Build datasets for **academic research**
- Support **urban studies** with business data
- Analyze business distribution patterns
- Research economic indicators

**Example:** Extract business data for **academic research** on urban development.

***

#### 📋 Business Directory Building

Create comprehensive business directories.

- Build **business directory** databases
- Compile industry-specific listings
- Create location-based business guides
- Support directory website development

**Example:** Build a restaurant directory for **business directory** website.

***

### 💡 Quick Start Guide

Simple setup—whether extracting a single business or building a database of thousands. This **yelp business scraper apify** tool makes it easy to **scrape Yelp businesses** in minutes.

#### Copy-Paste Examples by Persona

**For Sales Teams (Leads → CSV):**

```json
{
  "searchTerms": ["plumber"],
  "location": "Miami, FL",
  "maxItems": 200
}
```

→ Run, then **export Yelp businesses to CSV** from Storage tab.

**For Developers (API → JSON):**

```python
from apify_client import ApifyClient
client = ApifyClient("YOUR_TOKEN")
run = client.actor("agents/yelp-business").call(run_input={
    "searchTerms": ["restaurant"],
    "location": "New York, NY",
    "maxItems": 100
})
items = client.dataset(run["defaultDatasetId"]).list_items().items
```

**For Researchers (Multiple Locations):**

```json
{
  "searchTerms": ["coffee shop"],
  "location": "Seattle, WA",
  "sortBy": "rating",
  "maxItems": 300
}
```

#### 3 Steps to Get Started

1. **Add input:** Paste business URL, slug, or search terms + location
2. **Configure:** Set `maxItems` limit and `sortBy` preference
3. **Run & Export:** Click Start, then download JSON/CSV from Storage tab

***

#### 📋 Method 1: Extract by Direct URL

**Best for:** Single business extraction, competitor monitoring

```json
{
  "startUrls": ["https://www.yelp.com/biz/business-name-city"],
  "maxItems": 1
}
```

***

#### 📋 Method 2: Scrape Yelp by Location

**Best for:** Lead generation, market research

```json
{
  "searchTerms": ["dentist", "dental clinic"],
  "location": "Chicago, IL",
  "maxItems": 200
}
```

***

#### 📋 Method 3: Extract by Place Slug

**Best for:** Batch extraction, known businesses

```json
{
  "placeSlugs": ["business-slug-1", "business-slug-2"],
  "maxItems": 10
}
```

***

#### 🔧 Best Practices for Yelp Business Scraping

##### ✅ DO:

- **Start with 40-50 businesses**—test before scaling
- **Use specific search terms**—better targeting, better results
- **Set `maxItems`**—control costs by limiting total extraction
- **Use free tier first**—40 items FREE with every search

##### ❌ DON'T:

- **Use customMapFunction for filtering**—this causes automatic blocking
- **Use overly broad searches**—may return irrelevant results
- **Forget location format**—use "City, State" format

***

### ❓ Frequently Asked Questions

#### What is a Yelp Business Scraper API?

A **yelp business scraper api** is a tool that programmatically extracts business profiles, ratings, contact information, and amenities from Yelp listings. This **yelp data extractor** serves as an alternative to the Yelp Fusion API without requiring API keys or OAuth authentication.

#### Do I need a Yelp API key?

**No!** This **yelp business scraper** requires **no Yelp API key**, no Yelp Fusion API access, and no OAuth authentication. Start extracting business data immediately without any Yelp developer account.

#### How much does it cost to scrape Yelp businesses?

**$0.02 per search query** (first 40 items FREE), **$0.0005 per additional business**. Extract 100 businesses for about **$0.05**—significantly cheaper than building custom scrapers or paying for Yelp API access.

#### What Yelp business data can I extract?

Extract **business names**, **star ratings**, **review counts**, **price ranges**, **categories**, **addresses**, **phone numbers**, **website URLs**, **coordinates**, **operating hours**, **25+ amenities**, **Q\&A sections**, and **media counts**—all in structured JSON or CSV format.

#### Can I export Yelp businesses to CSV?

Yes. Download data directly from Apify Console in JSON, CSV, or Excel format. Perfect for **export Yelp businesses to CSV** workflows and CRM import.

#### Can I scrape Yelp by location?

Yes! Use `searchTerms` combined with `location` parameter to **scrape Yelp by location**. Example: `"searchTerms": ["pizza"], "location": "New York, NY"`.

#### Can I use Python to scrape Yelp businesses?

Yes! Full Python support via the Apify Client library. See the [Quick Start Guide](#-quick-start-guide) above for **yelp business scraper apify** Python integration.

#### Is this faster than the Yelp Fusion API?

Yes. No rate limits, no daily quotas, no API key management. The Yelp Fusion API has strict rate limits (5,000 calls/day) and requires OAuth setup.

#### Can I scrape Yelp reviews?

For reviews, use our **[Yelp Reviews Scraper](https://apify.com/agents/yelp-reviews?fpr=yhdrb)**. This business scraper focuses on business profiles, ratings, and contact data.

#### Can I use this for lead generation?

Yes. Perfect for **lead generation**, **B2B prospecting**, and **sales prospecting**. Extract phone numbers, websites, and addresses to build targeted outreach lists.

#### Can I use this for competitor analysis?

Yes. Ideal for **competitor analysis**, **competitive intelligence**, and **market research**. Compare ratings, reviews, amenities, and pricing across competitors.

#### Is this legal to use?

This tool extracts publicly available data from Yelp. Always ensure your use case complies with Yelp's Terms of Service and applicable data protection regulations.

#### What's the difference between this and Yelp Fusion API?

| Feature          | This Scraper   | Yelp Fusion API |
| ---------------- | -------------- | --------------- |
| API Key Required | ❌ No           | ✅ Yes           |
| Rate Limits      | No hard limits | 5,000 calls/day |
| Free Tier        | 40 items FREE  | 500 calls/day   |
| Amenities Data   | ✅ Full         | ⚠️ Partial       |
| Q\&A Section      | ✅ Yes          | ❌ No            |

***

### 📞 Contact

**Built by [Agents](https://apify.com/agents?fpr=yhdrb)** — Where others search, we uncover. Our team of ex-Big Tech engineers, growth hackers, and data specialists builds high-performance scraping tools engineered for speed, precision, and reliability.

For questions or further assistance:

- **Email:** Reach out at **whoaretheagents@gmail.com**
- **Discord:** Join our community to connect with our support team

***

**Ready to start extracting Yelp business data?** With transparent event-based pricing, first 40 items FREE, and no API key required, this **Yelp Business Scraper API** by [Agents](https://apify.com/agents?fpr=yhdrb) is the ultimate tool for **lead generation**, **competitor analysis**, **market research**, and **local SEO auditing**. Start scraping today! 🏪

# Actor input Schema

## `startUrls` (type: `array`):

URLs to start with. It should be list or detail URL

## `placeSlugs` (type: `array`):

The place slugs that you can search on Yelp

## `searchTerms` (type: `array`):

The search terms that you can search on Yelp

## `sortBy` (type: `string`):

The sort that you can search on Yelp

## `location` (type: `string`):

The location that you can search on Yelp

## `maxItems` (type: `integer`):

Maximum number of items that you want as output.

## `customMapFunction` (type: `string`):

Function that takes each of the objects as argument and returns data that will be mapped by the function itself.

## Actor input object example

```json
{
  "startUrls": [
    "https://www.yelp.com/biz/rise-over-run-san-francisco-2?hrid=wTWNPTAfcLTbWsIx1UT4bw"
  ],
  "sortBy": "rating",
  "location": "San Francisco, CA",
  "maxItems": 1000,
  "customMapFunction": "(object) => { return {...object} }"
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "startUrls": [
        "https://www.yelp.com/biz/rise-over-run-san-francisco-2?hrid=wTWNPTAfcLTbWsIx1UT4bw"
    ],
    "sortBy": "rating",
    "location": "San Francisco, CA",
    "maxItems": 1000,
    "customMapFunction": (object) => { return {...object} }
};

// Run the Actor and wait for it to finish
const run = await client.actor("agents/yelp-business").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "startUrls": ["https://www.yelp.com/biz/rise-over-run-san-francisco-2?hrid=wTWNPTAfcLTbWsIx1UT4bw"],
    "sortBy": "rating",
    "location": "San Francisco, CA",
    "maxItems": 1000,
    "customMapFunction": "(object) => { return {...object} }",
}

# Run the Actor and wait for it to finish
run = client.actor("agents/yelp-business").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "startUrls": [
    "https://www.yelp.com/biz/rise-over-run-san-francisco-2?hrid=wTWNPTAfcLTbWsIx1UT4bw"
  ],
  "sortBy": "rating",
  "location": "San Francisco, CA",
  "maxItems": 1000,
  "customMapFunction": "(object) => { return {...object} }"
}' |
apify call agents/yelp-business --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=agents/yelp-business",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Fast Yelp Business Scraper API | Ratings, Contact & Amenities",
        "description": "Extract Yelp business profiles, ratings, operating hours, amenities, and contact details. 30+ fields per business. No Yelp API key needed. Pay per result.",
        "version": "0.0",
        "x-build-id": "HjXk3IqqRzfxyxqNx"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/agents~yelp-business/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-agents-yelp-business",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/agents~yelp-business/runs": {
            "post": {
                "operationId": "runs-sync-agents-yelp-business",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/agents~yelp-business/run-sync": {
            "post": {
                "operationId": "run-sync-agents-yelp-business",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "startUrls": {
                        "title": "Start URLs",
                        "type": "array",
                        "description": "URLs to start with. It should be list or detail URL",
                        "items": {
                            "type": "string"
                        }
                    },
                    "placeSlugs": {
                        "title": "Place Slugs",
                        "type": "array",
                        "description": "The place slugs that you can search on Yelp",
                        "items": {
                            "type": "string"
                        }
                    },
                    "searchTerms": {
                        "title": "Search Terms",
                        "type": "array",
                        "description": "The search terms that you can search on Yelp",
                        "items": {
                            "type": "string"
                        }
                    },
                    "sortBy": {
                        "title": "Sort",
                        "enum": [
                            "rating",
                            "reviewCount",
                            "recommended"
                        ],
                        "type": "string",
                        "description": "The sort that you can search on Yelp"
                    },
                    "location": {
                        "title": "Location",
                        "type": "string",
                        "description": "The location that you can search on Yelp"
                    },
                    "maxItems": {
                        "title": "Maximum number of items on output",
                        "type": "integer",
                        "description": "Maximum number of items that you want as output."
                    },
                    "customMapFunction": {
                        "title": "Custom map function",
                        "type": "string",
                        "description": "Function that takes each of the objects as argument and returns data that will be mapped by the function itself."
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
