# Booksy Business Scraper (`piotrv1001/booksy-business-scraper`) Actor

The Booksy Business Scraper extracts business listings and rich profiles from Booksy's marketplace, capturing names, categories, ratings, reviews, services with prices, staff, opening hours, location coordinates, and social links — ideal for lead generation, price benchmarking, and market research.

- **URL**: https://apify.com/piotrv1001/booksy-business-scraper.md
- **Developed by:** [FalconScrape](https://apify.com/piotrv1001) (community)
- **Categories:** Lead generation, Automation, Developer tools
- **Stats:** 10 total users, 2 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.00 / 1,000 businesses

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 web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — 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

### 💈 Booksy Business Scraper

Extract **business profiles from [Booksy](https://booksy.com)** — the beauty & wellness booking marketplace for barbers, hair salons, nail & spa studios, and more. The **Booksy Business Scraper** turns any Booksy search-results page or business profile into clean, structured data: **services with prices, ratings, reviews, staff, opening hours, location, and social links.**

Use it for lead generation, competitor and price benchmarking, market research, or building a beauty-services directory. Run it on the Apify platform with API access, scheduling, integrations (Make, Zapier, Google Sheets), and automatic monitoring.

### ✨ What you get

- 🏷️ **Full business details** — name, category, description, ratings & review counts, price level, and the Booksy profile URL.
- 💲 **Services & prices** — every service with its name, description, price, displayed price (e.g. `$85.00+`), and duration.
- ⭐ **Customer reviews** *(optional)* — review text, rating, author, date, and the services/staff mentioned.
- 👤 **Staff & opening hours** — team members and weekly working hours.
- 📍 **Location** — full address, city, latitude and longitude.
- 🔗 **Social & web links** — website, Instagram, Facebook, and online store where available.
- 🖼️ **Media** — logo, cover photo, and gallery image URLs.

### 🛠️ How to use the Booksy Business Scraper

1. **Find your businesses on Booksy.** Open [booksy.com](https://booksy.com), search for a category in a city (e.g. *barber shop in Los Angeles*), and copy the URL of the results page. You can also copy individual business profile URLs.
2. **Paste the URLs** into the **Start URLs** field.
3. **Set Max items** to control how many businesses to collect (default `50`). Search pages are paginated automatically.
4. *(Optional)* Toggle **Scrape reviews** to also collect customer reviews for each business.
5. **Run the Actor** and download your data as JSON, CSV, Excel, or HTML — or pull it via the Apify API.

### 🔧 Input

| Field                   | Type    | Description                                                                    |
| ----------------------- | ------- | ------------------------------------------------------------------------------ |
| `startUrls`             | array   | Booksy **search-results pages** and/or **business profile pages** to scrape.   |
| `maxItems`              | integer | Maximum number of business profiles to collect (`0` = no limit). Default `50`. |
| `includeReviews`        | boolean | Also scrape customer reviews for each business. Default `false`.               |
| `maxReviewsPerBusiness` | integer | Cap on reviews collected per business (newest first). Default `100`.           |
| `proxyConfiguration`    | object  | Proxy settings. Apify Proxy is enabled by default.                             |

#### Example input

```json
{
    "startUrls": [{ "url": "https://booksy.com/en-us/s/barber-shop/134655_los-angeles" }],
    "maxItems": 50,
    "includeReviews": false
}
```

### 📊 Sample output data

Each business is saved as one structured record:

```json
{
    "url": "https://booksy.com/en-us/1687674_barbering-by-shad_barber-shop_134655_los-angeles",
    "businessId": 1687674,
    "name": "Barbering by Shad",
    "primaryCategory": "Barbershop",
    "reviewsCount": 19,
    "reviewsAverage": 5,
    "address": "8913 S Western Ave, Los Angeles, 90047",
    "city": "Los Angeles",
    "latitude": 33.95587,
    "longitude": -118.30921,
    "website": null,
    "instagram": "https://www.instagram.com/rashadtheebarber/",
    "serviceCount": 17,
    "services": [
        {
            "category": "Haircuts",
            "name": "Full Service",
            "description": "Precision haircut with detailing, razor lineup, beard touch-up...",
            "price": 100,
            "priceDisplay": "$100.00",
            "durationMinutes": 110
        }
    ],
    "staff": [{ "name": "RaShad", "position": "Barber" }],
    "openHours": [{ "dayOfWeek": 1, "openFrom": "10:00", "openTill": "18:30" }],
    "logo": "https://...booksy.jpeg",
    "bestOfBooksy": false,
    "scrapedAt": "2026-06-08T16:52:00.000Z"
}
```

You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.

#### Main data fields

| Field                                             | Description                                       |
| ------------------------------------------------- | ------------------------------------------------- |
| `name`, `slug`, `description`                     | Business identity                                 |
| `primaryCategory`, `categories`                   | Business categories                               |
| `reviewsCount`, `reviewsAverage`, `reviewsStars`  | Ratings summary                                   |
| `address`, `city`, `latitude`, `longitude`        | Location & geo coordinates                        |
| `website`, `instagram`, `facebook`, `onlineStore` | Web & social links                                |
| `services`                                        | Services with name, description, price & duration |
| `staff`                                           | Team members                                      |
| `openHours`                                       | Weekly opening hours                              |
| `logo`, `coverPhoto`, `images`                    | Media URLs                                        |
| `reviews`                                         | Customer reviews *(when enabled)*                 |

### 💰 How much does it cost to scrape Booksy?

This Actor uses a **pay-per-event** pricing model, so you only pay for the businesses you extract. Each business is charged **one** event, depending on whether you also collect reviews:

| Event                                       | When it applies              | Price (USD) |
| ------------------------------------------- | ---------------------------- | ----------- |
| Business profile scraped                    | "Scrape reviews" is **off**  | $0.004      |
| Business profile scraped (with reviews)     | "Scrape reviews" is **on**   | $0.007      |

You're never charged both for the same business.

**Examples:**

- **50 businesses, no reviews:** 50 × $0.004 = **$0.20** per run.
- **50 businesses with reviews:** 50 × $0.007 = **$0.35** per run.

That's roughly **$4 per 1,000 business profiles** (or **$7 per 1,000** with full review history). New Apify accounts include free monthly usage credits, so you can try it at no cost.

### 💡 Tips

- **Collect more results:** raise **Max items** — the Actor paginates search pages automatically.
- **Keep costs down:** leave **Scrape reviews** off unless you need review history; it's the most data-heavy option.
- **Target a niche:** filter by category and city directly on booksy.com, then paste that results URL.
- **Other countries:** Booksy works across multiple countries — paste a localized URL (e.g. `en-gb`) and the Actor adapts automatically.

### ❓ FAQ

**Can I scrape a whole city or category?**
Yes — paste a Booksy search-results URL for that category and city, and set **Max items** as high as you need.

**Are phone numbers and emails included?**
No. Booksy does not expose contact phone numbers or emails to visitors, so they are not available. The Actor does return **website, Instagram, and Facebook** links where listed, which often lead to direct contact details.

**Is scraping Booksy legal?**
This Actor collects only publicly available business information. You are responsible for how you use the data and for complying with applicable laws (including data-protection regulations) and Booksy's Terms of Service. Do not use it to collect personal data without a lawful basis.

**Something not working?**
Report it in the **Issues** tab of this Actor and we'll take a look. Custom data needs? Reach out — tailored solutions are available.

Start extracting Booksy business data today! 💈

# Actor input Schema

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

Booksy URLs to scrape. You can paste **search-results pages** (e.g. the page you get after searching for a category in a city on booksy.com) and/or individual **business profile pages**. Search pages are paginated automatically up to the Max items limit.

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

Maximum number of business profiles to scrape across all start URLs. Use 0 for no limit.

## `includeReviews` (type: `boolean`):

Also scrape customer reviews for each business. This makes runs slower and more expensive, so it is off by default.

## `maxReviewsPerBusiness` (type: `integer`):

When "Scrape reviews" is enabled, the maximum number of reviews to collect per business (newest first).

## `proxyConfiguration` (type: `object`):

Proxy settings. Apify Proxy is enabled by default as a safety margin; the scraper works without a proxy too.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://booksy.com/en-us/s/barber-shop/134655_los-angeles"
    }
  ],
  "maxItems": 50,
  "includeReviews": false,
  "maxReviewsPerBusiness": 100,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `results` (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": [
        {
            "url": "https://booksy.com/en-us/s/barber-shop/134655_los-angeles"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("piotrv1001/booksy-business-scraper").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": [{ "url": "https://booksy.com/en-us/s/barber-shop/134655_los-angeles" }] }

# Run the Actor and wait for it to finish
run = client.actor("piotrv1001/booksy-business-scraper").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": [
    {
      "url": "https://booksy.com/en-us/s/barber-shop/134655_los-angeles"
    }
  ]
}' |
apify call piotrv1001/booksy-business-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/rGqZcGn1XpWMTJ7nE/builds/233fA7Ov40Adpt4Fd/openapi.json
