+Fresha API
Search Fresha salons, barbers and spas by city and read venue profiles as clean JSON.
The API.SH Fresha API turns public Fresha marketplace pages into structured JSON. Search venues for a business type in a city or country, with rating, review count, price range and coordinates. Open a venue for its services with duration and price, opening hours, amenities, team members, payment methods, photos and the latest reviews with replies.
- 2 endpoints
- from $1 / 1,000 calls
- 1,000 free credits / month
- failed calls free
GET https://api.api.sh/fresha/v1/ venue
{ "success": true } What you can build with the Fresha API
Beauty market research
List salons, barbers and spas in a city with ratings, review counts and price range to map local competition.
Service menu and price benchmarking
Read each venue's services by group with duration, price, discounts and variants.
Lead lists for suppliers
Collect venue names, addresses, business phone and website-ready details for salon suppliers.
Review monitoring
Read a venue's star histogram and latest reviews with author, date and the venue's reply.
Fresha data you get
Field names from real responses. Numbers come parsed, URLs absolute, dates in ISO 8601.
Fresha API endpoints and prices
Every Fresha endpoint costs 1 credit per call: credits are $1 per 1,000 on a monthly plan, $2 pay-as-you-go. Pricing
| Fresha venues for a category in a city /fresha/ | $1 · $2 PAYG 1 credit |
| Fresha venue profile /fresha/ | $1 · $2 PAYG 1 credit |
Call the Fresha API
Fresha venue profile: GET https://api.api.sh/fresha/
curl "https://api.api.sh/fresha/v1/venue?url=https%3A%2F%2Fwww.fresha.com%2Fa%2Fmarhaba-beauty-aesthetics-london-5-kensington-high-street-greater-i4qe5uo4" \
-H "x-api-key: $APISH_KEY" import os, requests
res = requests.get(
"https://api.api.sh/fresha/v1/venue",
params={"url": "https://www.fresha.com/a/marhaba-beauty-aesthetics-london-5-kensington-high-street-greater-i4qe5uo4"},
headers={"x-api-key": os.environ["APISH_KEY"]},
timeout=120,
)
res.raise_for_status()
data = res.json() const url = new URL("https://api.api.sh/fresha/v1/venue");
url.searchParams.set("url", "https://www.fresha.com/a/marhaba-beauty-aesthetics-london-5-kensington-high-street-greater-i4qe5uo4");
const res = await fetch(url, { headers: { "x-api-key": process.env.APISH_KEY } });
if (!res.ok) throw new Error(`${res.status} ${await res.text()}`);
const data = await res.json(); # Google Sheets (API.SH add-on)
=APISH("/fresha/v1/venue", "url", "https://www.fresha.com/a/marhaba-beauty-aesthetics-london-5-kensington-high-street-greater-i4qe5uo4")
# Zapier, Make, n8n (verified node): pick the API.SH app,
# choose "Fresha" and "Fresha venue profile".
# AI agents (Claude, ChatGPT, Cursor): add the
# API.SH MCP server https://api.sh/mcp - Create a free accountConfirm your email and get 1,000 free credits every month. No card needed.
- Create an API keyOne key works for all 483 platforms.
- Send the requestJSON back in one call. Add
output=csvoroutput=ndjsonfor files.
Why API.SH for Fresha data
- Public data only: no Fresha login, cookies or account needed
- One key and one response shape for Fresha and 482 other platforms
- Built and maintained by API.SH, not third-party publishers
- Pay per call; errors on our side cost nothing
- Live status for every endpoint
API.SH vs the official Fresha API
Fresha has no public self-serve REST API for managing bookings, clients or payments, according to Google's AI overview and SERP evidence; its business customers can use a data connector that syncs their own data to Snowflake. API.SH covers a different need: public marketplace venue and service data, with no Fresha business account.
Skip building your own Fresha scraper or hunting for Apify actors and RapidAPI listings: API.SH gives you one key and a fixed price per call.
Fresha API questions
What Fresha data can I get?+
Venue search by business type and city (/fresha/v1/search) and one venue's profile with services, prices, hours, team and reviews (/fresha/v1/venue).
How much does the Fresha API cost?+
Every Fresha endpoint costs 1 credit per call. On a monthly plan 1,000 credits cost $1 (Starter is $50/month for 50,000 credits). Pay-as-you-go is $2 per 1,000 credits, with top-ups from $15 that never expire.
Is there a free trial?+
Yes. Every account gets 1,000 free credits every month. That is 1,000 calls to /fresha/v1/search at 1 credit each.
Is there an official Fresha API?+
Not a public one for general data. Fresha does not offer a self-serve REST API for managing bookings, clients or payments; business accounts get a Snowflake data connector for their own data. API.SH reads public marketplace pages instead.
Do I need a Fresha account or login?+
No. API.SH reads public Fresha pages only. No endpoint uses a business login, cookies or anyone's account, and it cannot create or change bookings.
How do I get started?+
1. Sign up at api.sh. 2. Copy your API key from the dashboard. 3. Call /fresha/v1/search with a category and location with your key. Request examples and every parameter are in the docs at https://api.sh/docs. You can also use the JS or Python SDK, Google Sheets, Zapier, Make, n8n or the MCP server at https://api.sh/mcp.
Can I use the API to manage bookings or appointments?+
No. API.SH is read-only on public marketplace pages. It returns venues, services, prices, opening hours and reviews, and the venue's bookable flag, but it cannot book, cancel or edit appointments.
How does pagination work?+
Search takes a limit and returns next_page; pass it back as page, and it is null on the last page. The search endpoint returns up to 130 venues per city.