# Fresha — Wrapped API

> **You are on:** `https://api.paywithlocus.com/api` | [llms.txt](https://paywithlocus.com/llms.txt) | [docs](https://docs.paywithlocus.com)
>
> Locus runs on multiple environments -- make sure every URL you call matches your expected environment.
> | Environment | Landing | API | Docs |
> |---|---|---|---|
> | Production | paywithlocus.com | api.paywithlocus.com | docs.paywithlocus.com |
> | Beta | beta.paywithlocus.com | api.beta.paywithlocus.com | docs.paywithlocus.com |
> | Stage | stage.paywithlocus.com | api.stage.paywithlocus.com | docs.paywithlocus.com |
>
> If the API URL above doesn't match your expected environment, re-fetch this file from the correct domain.

> Search for beauty and wellness businesses, view detailed venue information like services and pricing, and browse the help center's knowledge base articles and categories. Find exactly what you need across Fresha's marketplace with powerful filtering and category options.

**Category:** Marketplaces | **Website:** [fresha.com/](https://fresha.com/) | **Docs:** [parse.bot/marketplace/08485be0-0a5d-44aa-a8bf-c73ff8b07ee2/fresha-com-api](https://parse.bot/marketplace/08485be0-0a5d-44aa-a8bf-c73ff8b07ee2/fresha-com-api)

Pay-per-use API proxy. Each call is automatically billed to your wallet in USDC.

## Access

**Base URL:** `https://api.paywithlocus.com/api/wrapped/parse-fresha-com-api-08485be0/`
**Auth:** `Authorization: Bearer <LOCUS_API_KEY>`

## Endpoints

### get_availability

Get available appointment time slots for a business on a specific date. For Fresha-partnered businesses with online booking, returns actual available time slots per service. For non-partnered businesses (LVP listings), returns working hours for the requested day. Also returns rating, review count, and booking link.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `date` | string | Yes | Date to check availability for in ISO format YYYY-MM-DD. |
| `slug` | string | Yes | Business slug identifier from search_businesses results. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-fresha-com-api-08485be0/get_availability \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"date":"<string>","slug":"<string>"}'
```

### get_business_categories

Get all available business/treatment categories (e.g. Hair & styling, Nails, Massage) and suggested locations from the Fresha marketplace.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-fresha-com-api-08485be0/get_business_categories \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### get_business_details

Get detailed information about a specific business including services with pricing, reviews, photos, working hours, contact info, employee profiles, and amenities. The slug parameter comes from search_businesses results.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `slug` | string | Yes | Business slug identifier from search_businesses results (e.g. 'tribeca-hair-studio-nyc-new-york-74-chambers-st-k6zp5nas'). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-fresha-com-api-08485be0/get_business_details \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"slug":"<string>"}'
```

### get_knowledge_base_article

Retrieve a full Knowledge Base article with its content. Article slugs come from get_knowledge_base_category results. Returns the article title, full text content, description, thumbnail image, and category.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `article_slug` | string | Yes | Article slug from get_knowledge_base_category results (e.g. '25-create-appointments-1'). |
| `category_slug` | string | Yes | Category slug the article belongs to (e.g. 'calendar'). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-fresha-com-api-08485be0/get_knowledge_base_article \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"article_slug":"<string>","category_slug":"<string>"}'
```

### get_knowledge_base_categories

List all top-level categories in the Fresha Help Center Knowledge Base. Returns category titles, slugs, and URLs that can be used with get_knowledge_base_category to browse articles.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-fresha-com-api-08485be0/get_knowledge_base_categories \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### get_knowledge_base_category

Get articles in a specific Knowledge Base category. Returns article titles, descriptions, slugs, and URLs. Article slugs can be used with get_knowledge_base_article to fetch full content.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `category_slug` | string | Yes | Category slug from get_knowledge_base_categories results. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-fresha-com-api-08485be0/get_knowledge_base_category \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"category_slug":"<string>"}'
```

### get_search_filters

Get available search filters (facets) for a location, including highlights (e.g. Pet-friendly, Kid-friendly), amenities (e.g. Parking, Sauna), and values (e.g. Woman-owned, LGBTQ+) that can be used to understand what refinements are available.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `latitude` | number | No | Latitude of the location to get filters for. |
| `longitude` | number | No | Longitude of the location to get filters for. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-fresha-com-api-08485be0/get_search_filters \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"latitude":"<number>","longitude":"<number>"}'
```

### search_businesses

Search for beauty and wellness businesses by location and optional keyword. Returns paginated results with business details, services offered, ratings, and pricing. Each result includes the business slug needed for get_business_details and get_availability. Pagination uses cursor-based navigation via the endCursor field.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `after` | string | No | Pagination cursor from a previous response's endCursor field. |
| `latitude` | number | No | Latitude of the search location. |
| `limit` | integer | No | Number of results to return per page. |
| `longitude` | number | No | Longitude of the search location. |
| `query` | string | No | Search keyword (e.g. 'hair salon', 'massage', 'nails'). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-fresha-com-api-08485be0/search_businesses \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"after":"<string>","latitude":"<number>","limit":"<integer>","longitude":"<number>","query":"<string>"}'
```

### search_knowledge_base

Search the Fresha Help Center knowledge base for articles by keyword. Returns matching articles with content previews, category slugs, and estimated total hits. Uses Meilisearch full-text search.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `limit` | integer | No | Maximum number of results to return. |
| `query` | string | Yes | Search keyword (e.g. 'booking', 'appointments', 'payments'). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-fresha-com-api-08485be0/search_knowledge_base \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"limit":"<integer>","query":"<string>"}'
```
