
Fresha Scraper
hipersoft/fresha-scraper
Scrape Fresha venues (hair and nail salons, barbers, spas, massage, beauty, fitness) in any city: name, address, coordinates, rating, reviews, phone, opening hours, full service menu with prices and durations, amenities and payment methods. Export CSV/JSON.
Total users
1Monthly users
0Total runs
28Per venue
$0.003Last rebuilt
Oct 26, 2026Overview
Fresha Scraper extracts venue data from Fresha (fresha.com), the world's largest booking platform for hair salons, nail salons, barbershops, beauty salons, spas, massage, waxing, lashes and brows, aesthetics, fitness and more. For any city and category you get each venue's name, address, coordinates, rating, number of reviews and price range, and with details enabled also the phone number, opening hours, full service menu with prices and durations, amenities, payment methods, team size and latest review date. Export to CSV, Excel or JSON.
What does Fresha Scraper do?
- 💇 All venues in a city and category: hair, nails, barbers, beauty, spa, massage, waxing, brows & lashes, aesthetics, tanning, tattoo, therapy, fitness, pet grooming.
- ⭐ Ratings and review counts.
- 📞 Contact: phone number and address with GPS coordinates.
- 🕒 Opening hours for every day.
- 💷 Service menu: every service with price or "from" price, currency and duration.
- ✨ Amenities (instant confirmation, wheelchair accessible, pet-friendly…) and payment methods.
- 👥 Team size and latest review date.
- 🌍 Worldwide: UK, US, Australia, UAE, Ireland, Canada and more.
What data can you scrape from Fresha?
| Field | Description |
|---|---|
| Name, link, types | Venue and business types |
| Address | Street, city, region, postal code, country |
| Coordinates | Latitude, longitude |
| Rating, reviews | Average rating and review count |
| Price range | E.g. "From £27" |
| Phone | Venue phone number |
| Opening hours | Days and times |
| Services | Name, category, price, from-price, currency, duration |
| Amenities | Instant confirmation, accessibility, kid/pet-friendly… |
| Payments | Cash, card, Apple Pay, Google Pay… |
| Team size | Number of team members |
Use cases for Fresha data
- B2B lead generation: build lists of salons, spas and barbers with phone numbers for beauty-product, software or marketing sales.
- Pricing research: compare service prices (gel nails, haircuts, massages…) across cities and venues.
- Competitor analysis: benchmark ratings, review volumes and service menus in your area.
- Market sizing: count venues by category and city.
- Local SEO and directories: seed listings of top-rated venues.
How to scrape Fresha
- Click Try for free to open Fresha Scraper in Apify Console.
- Pick categories and enter cities (country code + city, e.g. gb-london, us-new-york).
- Keep Include phone, hours and services on for full details.
- Click Start and download the venues as CSV, Excel or JSON.
Input
Example input
{
"categories": ["nail-salons", "hair-salons"],
"cities": ["gb-manchester", "gb-london"],
"includeDetails": true,
"minRating": 4,
"maxItems": 500
}
| Field | Description |
|---|---|
| Categories | Venue categories. |
| Cities | Country code + city, e.g. gb-london. |
| Fresha links | City/category or venue pages. |
| Include phone, hours and services | Full venue details. |
| Minimum rating | 0–5. |
| Max venues per city/category | Up to ~130. |
| Max venues in total | 0 = no limit. |
Output
Venue example
{
"name": "Marina Salon by FKZ Hair and Beauty",
"url": "https://www.fresha.com/a/marina-salon-by-fkz-hair-and-beauty-manchester-3-5-keepers-quay-ukvxpg8p",
"types": ["HairSalon"],
"street": "3-5 Keepers Quay, Unit 1 Mansion House",
"city": "Manchester",
"postalCode": "M4 6GL",
"country": "GB",
"latitude": 53.4832549,
"longitude": -2.2234576,
"rating": 4.9,
"reviewCount": 2809,
"priceRange": "From £27",
"phone": "+44 7586 463145",
"openingHours": ["Mon, Tue, Wed, Thu, Fri, Sat, Sun 10:00–19:00"],
"amenities": ["Instant confirmation", "Pay by app"],
"paymentMethods": ["Cash", "Credit Card", "Debit Card", "Apple Pay", "Google Pay"],
"teamSize": 11,
"serviceCount": 96,
"services": [
{ "name": "Biab - (The Gel Bottle)", "category": "Featured", "price": null, "priceFrom": 42, "currency": "GBP", "durationMinutes": 60 },
{ "name": "Nail Art", "category": "Featured", "price": null, "priceFrom": 6, "currency": "GBP", "durationMinutes": 15 }
],
"latestReviewDate": "2026-10-05T15:11:33.403Z"
}
How much does it cost to scrape Fresha?
Fresha Scraper uses pay-per-venue pricing: a small fixed price per venue, with automatic discounts on higher Apify plans. See the Pricing tab for the exact price.
More local business data
- Google Maps Scraper: businesses from Google Maps worldwide.
- Google Maps Reviews Scraper: reviews of local businesses.
FAQ
How do I write a city? Use the 2-letter country code and the city, like gb-london, us-los-angeles or au-melbourne — the same as in Fresha's city page links.
Why about 130 venues per city? Fresha shows its top venues per city and category. Add more categories or nearby cities for more venues.
What formats can I export? CSV, Excel, JSON, XML, HTML and RSS, or read the results through the Apify API.
Can I integrate Fresha Scraper with other apps? Fresha Scraper can be connected with almost any cloud service or web app thanks to integrations on the Apify platform. It works with Make, Zapier, Slack, Airbyte, GitHub, Google Drive and many more, plus the Apify API, JS/Python clients and MCP. Or use webhooks to trigger an action whenever a run finishes.
Is it legal to scrape Fresha? The scraper only collects publicly listed business information and does not collect staff names or reviewer identities. You are responsible for using the data in line with Fresha's terms and privacy laws.
Notes
Original clean-room implementation. Returns only public data. Not affiliated with Fresha.
Input
| Field | Type | Description |
|---|---|---|
categoriesCategories | array | Venue categories. Default: ["hair-salons"] |
citiesCities | array | Cities as Fresha writes them: 2-letter country code + city, e.g. gb-london, gb-manchester, us-new-york, au-sydney, ae-dubai, ie-dublin. Each category is searched in each city. |
startUrlsFresha links | array | Optional. Fresha city/category pages or venue pages. When set, categories and cities are ignored. |
includeDetailsInclude phone, hours and services | boolean | Open each venue to add phone, opening hours, full service menu with prices, amenities and payment methods. Default: true |
minRatingMinimum rating (0–5) | integer | Only venues rated at least this. Default: 0 |
maxVenuesPerPageMax venues per city/category | integer | Fresha lists up to about 130 venues per city and category. Default: 130 |
maxItemsMax venues in total | integer | 0 means no limit. Default: 0 |
proxyConfigurationProxy configuration | object | Not required for normal use. Default: {"useApifyProxy": false} |
API
curl -X POST "https://api.apify.com/v2/acts/hipersoft~fresha-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"cities": [
"gb-london"
]
}'from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("hipersoft/fresha-scraper").call(run_input={
"cities": [
"gb-london"
]
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('hipersoft/fresha-scraper').call({
"cities": [
"gb-london"
]
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);Pricing
| Event | Price | Paid plans from |
|---|---|---|
| Venue One Fresha venue with details | $0.003 | $0.0015 |
You pay only for what the run returns. Set a maximum cost per run and it stops cleanly at that limit.
Related scrapers
Carousell Scraper
Scrape Carousell search listings: title, price, condition, location, seller, photo and URL. Requires your own Carousell app token.
242 runs · 2 users · $0.003 / listing scrapedGoogle Flights Scraper
Scrape flight options from Google Flights by route and date: airline, flight number, departure and arrival times, duration, stops, layovers and price. One-way or round-trip, any cabin and currency. For travel and price monitoring.
216 runs · 4 users · $0.004 / flight scrapedPinterest Scraper
Search Pinterest and scrape pins (title, description, destination link, image, pinner, board, saves), boards and users. Fast. For visual research, e-commerce, trend and marketing analysis.
151 runs · 2 users · $0.0034 / item scrapedGoogle Trends Scraper
Scrape Google Trends for any keyword: interest over time, related and rising queries, and interest by region. Per country and timeframe. For SEO, market and trend research. No setup.
139 runs · 6 users · $0.001 / keyword scrapedAliExpress Product Search Scraper
Search AliExpress by keyword and export one clean row per product — title, sale price, original price, image and product URL. Export to JSON, CSV or Excel.
135 runs · 3 users · $0.003 / product scrapedGoogle Maps Scraper
Search Google Maps and scrape places: name, category, full address, city, coordinates, rating, phone, website, Place ID and map link. Fast browser-free via Google's internal endpoint, no setup. For local lead generation and market research.
130 runs · 2 users · $0.005 / place scrapedSend the site and the fields. We build it and you get it first.