Fresha Scraper: Salons, Spas & Clinics with Prices
Pricing
from $4.00 / 1,000 venues
Fresha Scraper: Salons, Spas & Clinics with Prices
Scrape Fresha salons, barbers, spas, nail and aesthetics clinics by country and city: address, geo, phone, rating, review count, opening hours and services with prices and durations. Only what the venue publishes. No login. $4 per 1,000 venues.
Pricing
from $4.00 / 1,000 venues
Rating
0.0
(0)
Developer
Connor Prussin
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
6 days ago
Last modified
Categories
Security
Limited permissionsShare
Fresha Scraper exports hair salons, barbershops, nail salons, spas, massage studios and aesthetics clinics from Fresha as clean JSON, CSV or Excel. It reads Fresha's public venue sitemaps and venue pages, with no login, no API key and no browser:
- ✅ Any Fresha country: UK, US, Australia, Canada, Ireland, UAE, Netherlands, Germany, South Africa and 190 more, optionally filtered to one city.
- ✅ Contact and location: venue name, business type, phone, street, city, region, postal code, country, latitude/longitude.
- ✅ Reputation: average rating and review count.
- ✅ Services and prices: every service with category, price (or from/to prices), currency and duration in minutes, plus the venue's price range.
- ✅ Opening hours, website, Instagram and Facebook, amenities, neighbourhoods served and a photo.
- ✅ GDPR-friendly: only what the venue publishes on its own Fresha page. No reviewer names, no review texts, no staff.
- ✅ Light and polite: plain HTTP, sitemaps streamed (not downloaded whole), respects robots.txt and never touches Fresha search.
Start in one minute
Click Start with the prefilled input:
{"countryCode": "gb","cityFilter": "London","maxItems": 10}
You get: 10 London venues with name, businessTypes, phone, address, postalCode, rating, reviewCount, openingHours and services (name, price, duration).
Cost: $0.04: 10 venues × $0.004, plus the $0.00005 actor-start fee.
Use with an AI assistant
Connect the Apify MCP server to Claude, ChatGPT, Cursor or any MCP client (https://mcp.apify.com?tools=cprussin/fresha-venues loads only this actor), then paste:
Use the Apify actor cprussin/fresha-venues to get 20 Fresha venues in Dubai (countryCode ae, cityFilter Dubai) and list name, type, phone, rating and the cheapest service price.
Recipes
Salon lead list for one city
{"countryCode": "au","cityFilter": "Sydney","maxItems": 500}
A whole country
{"countryCode": "ie","maxItems": 2000}
Specific venues (price monitoring)
Schedule it daily or weekly to track service prices and ratings.
{"venueUrls": ["https://www.fresha.com/a/the-floating-spa-birmingham-23-24-hall-street-sn4l8c7f","https://www.fresha.com/a/rockabelles-northampton-4-dychurch-lane-dc2jts1o"]}
Who uses Fresha data?
- B2B sales teams: build lead lists of salons, spas and clinics (products, software, payments, insurance) with phone, address and rating.
- Salon and spa owners: compare service menus, prices and ratings of competitors in your area.
- Beauty brands and distributors: find well-rated venues by type and city.
- Market researchers: map the beauty and wellness market and price levels across cities and countries.
- AI agents: give an LLM live salon data and prices through the Apify API or MCP server.
How does the Fresha scraper work?
- It reads Fresha's venue sitemap index (
sitemaps.fresha.com/www/sitemap-salons.xml) and streams the sitemap of your country, URL by URL. - With a city, it keeps venue URLs that name the city, then checks the venue's address; venues elsewhere are skipped and not billed.
- It opens each venue page (
fresha.com/a/<venue>) and reads the venue's own structured data (schema.org JSON-LD and page data). - It stops as soon as it has
maxItemsvenues.
How do I choose which Fresha venues to scrape?
| Field | Description | Example |
|---|---|---|
countryCode | Two-letter ISO country code | "gb" |
cityFilter | City name (matched on the venue URL, then the address) | "Manchester" |
venueUrls | Fresha venue pages | ["https://www.fresha.com/a/some-venue-id"] |
maxItems | Max venues in total | 1000 |
- Sitemap order isn't a ranking: a city's venues come in the order Fresha lists them.
- Cities are matched on the venue's locality:
Londondoesn't match "London Road, Brighton".
What data do you get for each Fresha venue?
{"venueId": "998","name": "The Floating Spa","url": "https://www.fresha.com/a/the-floating-spa-birmingham-23-24-hall-street-sn4l8c7f","businessTypes": ["DaySpa"],"description": "From the moment you arrive, The Floating Spa creates a sense of serenity...","phone": "+44 121 448 7977","address": "23-24 Hall Street","city": "Birmingham","region": "England","postalCode": "B18 6BS","country": "GB","latitude": 52.4877,"longitude": -1.9086,"rating": 5,"reviewCount": 637,"priceRange": "GBP 75-400","currency": "GBP","openingHours": [{ "day": "Monday", "open": "10:00", "close": "19:00" }],"services": [{"name": "Float 1 hour - Room 1","category": "Float","price": 75,"priceFrom": null,"priceTo": null,"currency": "GBP","durationMinutes": 60,"description": "Full induction will be provided for your first visit"}],"serviceCount": 5,"website": "http://www.thefloatingspa.com/","instagramUrl": "https://www.instagram.com/thefloatingspa/","facebookUrl": "https://www.facebook.com/thefloatingspa/","otherLinks": [],"imageUrl": "https://images.fresha.com/locations/location-profile-images/901/112004/623776c2-27ad-4015-81ba-15439ad3138f.jpg?class=venue-gallery-small","amenities": ["Instant confirmation"],"neighborhoods": ["Jewellery Quarter", "Hockley"],"isBookable": true,"scrapedAt": "2026-10-29T15:30:00.000Z"}
How much does it cost to scrape Fresha?
Pay-per-event, only for venues written to your dataset:
| Event | Price |
|---|---|
| Venue | $0.004 |
That's $4 per 1,000 venues, services and hours included. Venues skipped by the city filter are free. If you set a maximum cost per run, the actor stops cleanly when it reaches it.
Fresha scraper FAQ
Is this an official Fresha API? No. It reads Fresha's public sitemaps and venue pages, within its robots.txt (Fresha search is never used).
Is the data GDPR-compliant? The actor returns only business information each venue publishes on its own Fresha page (name, business phone, address, services, hours). It never returns reviewer names, review texts or staff. Many venues are sole traders, so their business details can still be personal data under GDPR: you are responsible for a lawful basis and for honoring opt-outs when you use them (e.g. for marketing).
Why is a field null? Venues fill in what they want: new venues have no rating yet, some don't list a phone or website.
How long does a whole country take? Large countries (UK, US) have tens of thousands of venues: about one second per venue page, a few in parallel. Use maxItems or a city to keep runs short.
Disclaimer: This actor is not affiliated with, endorsed by or sponsored by Fresha. Fresha is a trademark of its owner. You are responsible for complying with Fresha's terms and applicable laws when using the data.
Related actors
- Impressum Extractor: company data from DACH legal notices.
- New Business Registrations: newly registered LLCs and corporations from official state registries.
- Eventbrite Events Scraper: Eventbrite events by city, category and date, with venues and prices.