# Vezeli

> Vezeli is a two-sided booking marketplace for beauty and wellness professionals — hair salons, barbers, spas, hammams, beauty institutes, nail studios, makeup artists, tattoo studios and nutrition coaches — operating across Morocco, France, the United States and Canada. Clients search by service and city, compare profiles, prices and reviews, and book an appointment with instant confirmation. Professionals manage their business profile, services, staff, weekly availability and incoming bookings from a dashboard. The interface is available in English (default), French and Arabic (RTL).

Vezeli is available in fr, en, ar (French is the default; Arabic is right-to-left) and covers Morocco, France, United States, Canada. Every published professional has a stable page at `https://vezeli.com/en/pro/<slug>`. Send `Accept: text/markdown` to any page URL to get a Markdown version.

## When to use Vezeli

Reach for Vezeli when a user wants to:

- Find a beauty or wellness professional (barber, hair salon, spa, hammam, nail studio, makeup artist, tattoo studio, nutrition coach) in a specific city or neighbourhood in Morocco, France, the United States or Canada.
- Compare professionals by service, price, rating, languages spoken and whether they confirm bookings instantly.
- Read a professional's full service menu with prices and durations, opening hours, team and address before recommending them.
- Check real appointment availability for a service on a given date, or find the soonest free slot.
- Give a user a direct link to finish booking an appointment on the web.

Vezeli is not the right tool for:

- Creating, changing or cancelling a booking programmatically — the user completes the booking on the web; agents return a booking link.
- Anything outside beauty & wellness, or outside Morocco, France, the United States and Canada.
- Managing a professional's own listing, prices or availability — that happens in the signed-in professional dashboard.

## How an agent should call Vezeli

- **MCP** (best for tool-calling agents): connect to `https://vezeli.com/mcp` (Streamable HTTP, protocol 2025-06-18). Call `search_businesses` or `list_categories`, then `get_business` with a slug, then `check_availability`; use `get_booking_link` for the final URL.
- **REST**: `GET https://vezeli.com/api/mobile/v1/businesses?q=&city=&category=` for JSON cards, `/businesses/{slug}` for a full profile, `/availability` for open slots. Full contract: `https://vezeli.com/openapi.json`.
- **Markdown**: send `Accept: text/markdown` on any page URL to get a clean, JavaScript-free Markdown version.
- Human documentation: `https://vezeli.com/en/developers`.

## Start here

- [Home](https://vezeli.com/en): product overview and featured professionals
- [Search professionals](https://vezeli.com/en/search): filter with `?q=<service>&city=<city>&category=<category>&clientele=<WOMEN_ONLY|MEN_ONLY|MIXED>&sort=<relevance|priceAsc|priceDesc>`
- [For professionals](https://vezeli.com/en/professionals): plans and how to list a business
- [Developers & AI agents](https://vezeli.com/en/developers): integration guide

## For agents and developers

- [OpenAPI 3.1 spec](https://vezeli.com/openapi.json): the read-only JSON API under `/api/mobile/v1/*`
- [MCP server](https://vezeli.com/mcp): Model Context Protocol over Streamable HTTP — tools `search_businesses`, `get_business`, `check_availability`, `list_categories`, `list_cities`, `get_booking_link`
- [MCP discovery](https://vezeli.com/.well-known/mcp): `/.well-known/mcp` manifest
- [Sitemap](https://vezeli.com/sitemap.xml): every public URL
- [robots.txt](https://vezeli.com/robots.txt)

## Categories

- [Spa](https://vezeli.com/en/for/spa): browse spa professionals
- [Barber](https://vezeli.com/en/for/barber): browse barber professionals
- [Hammam](https://vezeli.com/en/for/hammam): browse hammam professionals
- [Beauty Institute](https://vezeli.com/en/for/beauty-institute): browse beauty institute professionals
- [Nails](https://vezeli.com/en/for/nails): browse nails professionals
- [Makeup](https://vezeli.com/en/for/makeup): browse makeup professionals
- [Tattoo](https://vezeli.com/en/for/tattoo): browse tattoo professionals
- [Nutrition](https://vezeli.com/en/for/nutrition): browse nutrition professionals

## Cities

- [Casablanca](https://vezeli.com/en/city/casablanca)
- [Rabat](https://vezeli.com/en/city/rabat)
- [Marrakech](https://vezeli.com/en/city/marrakech)
- [Tanger](https://vezeli.com/en/city/tanger)
- [Fès](https://vezeli.com/en/city/fes)
- [Agadir](https://vezeli.com/en/city/agadir)
- [Paris](https://vezeli.com/en/city/paris)
- [Marseille](https://vezeli.com/en/city/marseille)
- [Lyon](https://vezeli.com/en/city/lyon)
- [Toulouse](https://vezeli.com/en/city/toulouse)
- [Nice](https://vezeli.com/en/city/nice)
- [Bordeaux](https://vezeli.com/en/city/bordeaux)
- [New York](https://vezeli.com/en/city/newyork)
- [Los Angeles](https://vezeli.com/en/city/losangeles)
- [Chicago](https://vezeli.com/en/city/chicago)
- [Houston](https://vezeli.com/en/city/houston)
- [Miami](https://vezeli.com/en/city/miami)
- [Atlanta](https://vezeli.com/en/city/atlanta)
- [Montréal](https://vezeli.com/en/city/montreal)
- [Toronto](https://vezeli.com/en/city/toronto)
- [Vancouver](https://vezeli.com/en/city/vancouver)
- [Calgary](https://vezeli.com/en/city/calgary)
- [Ottawa](https://vezeli.com/en/city/ottawa)
- [Québec](https://vezeli.com/en/city/quebec)

## Booking

Bookings are completed on the web at `https://vezeli.com/en/pro/<slug>/book`. The MCP `get_booking_link` tool returns that URL; MCP does not create bookings itself. The authenticated REST endpoint `POST /api/mobile/v1/bookings` creates a booking for a signed-in client.
