canonical: https://jentic.com/apis/hairdora.com/hairdora

# HairDora API

The HairDora API manages the clients, appointments, and services behind a hair salon across one or more salon locations. It lets a backend list and create clients, book and reschedule appointments, maintain the salon's service menu, read salon details, and manage the API keys and webhook subscriptions that connect HairDora to other tools. Webhook subscriptions let a system react when a client books, reschedules, or cancels, so the salon's own tooling stays current.

## For AI agents

Manage salon clients, appointments, and services across salon locations, list API keys, and subscribe to webhooks so an agent reacts when a booking changes.

## Scope

Does not handle marketing campaigns, inventory, or accounting. Use for salon client, appointment, and service management only.

## Capabilities

- Book, reschedule, and cancel client appointments for a salon
- Manage client records and their contact details
- Maintain the salon's service menu and pricing
- Read salon location details
- Subscribe to webhooks for appointment and client changes

## Use cases

### Automated Salon Booking

An agent books and reschedules salon appointments for clients. It looks up the client, confirms the chosen service exists on the salon's menu, creates the appointment, and updates it to reschedule when the client asks. Because clients, salons, and services are separate resources, the agent validates each before writing the booking.

Example prompt: Create an appointment for a client at a salon for a selected service and confirm the appointment was created

### Client Record Sync

A salon keeps its own CRM aligned with HairDora. The agent lists clients for a salon, creates new client records as they walk in, and updates contact details. Keeping client records consistent lets the salon run follow-ups and retention outreach from accurate data.

Example prompt: List clients for a salon, create a new client with contact details, and confirm the record was stored

### Event-Driven Salon Tools

An agent reacts to salon activity using webhook subscriptions. It subscribes to appointment and client events, then sends a reminder when an appointment is booked or flags a cancellation for the front desk. Subscriptions are created, updated, and deleted through the API, so the agent manages them as the salon's needs change.

Example prompt: Create a webhook subscription for appointment events and confirm the subscription is active

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/api/clients` | List clients |
| POST | `/api/clients` | Create a client |
| GET | `/api/appointments` | List appointments |
| POST | `/api/appointments` | Create an appointment |
| GET | `/api/services` | List services |
| GET | `/api/salons` | List salons |

## Key resources

- **Clients** — List, create, read, update, and delete salon clients
- **Appointments** — List, create, read, update, and delete client appointments
- **Services** — Maintain the salon's bookable service menu
- **Salons** — List and read salon location details
- **Keys** — List the salon's API keys
- **Webhook subscriptions** — Subscribe to appointment and client change events

## AI readiness

This API is usable in Jentic One now. Its AI-readiness score against Jentic's framework shows where it stands today and where improvements would make it even easier for agents to use.

- **Score:** 57 / 100
- **Maturity:** Foundational
- **Dimensions:**
  - Foundational Compliance: 74 / 100
  - Developer Experience & Jentic Compatibility: 67 / 100
  - AI-Readiness & Agent Experience: 45 / 100
  - Agent Usability: 94 / 100
  - Security: 30 / 100
  - AI Discoverability: 79 / 100
- **View full report:** https://jentic.com/apis/hairdora.com/hairdora/scorecard
- **How the score is calculated:** https://docs.jentic.com/reference/api-readiness-framework/overview/
- **More about the dimensions:** https://docs.jentic.com/reference/api-readiness-framework/specification/#dimensional-model-overview

### Score it yourself

Every API in the directory is allowlisted, so you can re-score it with no key required.

- **Score your own API:** https://jentic.com/scorecard.md
- **Scoring CLI agent skill:** https://github.com/jentic/jentic-api-scorecard/blob/main/skills/jentic-api-scorecard/SKILL.md

```sh
npx @jentic/api-scorecard-cli score <openapi-url>
```

## Why Jentic

- **Setup:** Wiring HairDora by hand means handling two auth styles, HTTP basic and an Authorization-header token, and tracking separate client, salon, service, and appointment resources. Through Jentic you install once, import HairDora from the API Directory, store the credential once, and your agent calls it.
- **Permission scoping:** HairDora puts resource ids in the URL path, such as a salon id or client id, so a rule can pin your agent to the client and appointment operations for one salon. You choose the operations it may call, so destructive ones like client or appointment deletion are not included unless you add them.
- **Credential handling:** Your HairDora credential is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'book a salon appointment' or 'add a new client', and Jentic returns the matching HairDora operation with its input schema so the agent calls the right endpoint without reading the reference docs.

## Related APIs

- **Mindbody** — Mindbody is a broader salon, spa, and wellness business platform covering booking, clients, and sales.
- **Acuity Scheduling** — Acuity Scheduling adds public self-booking pages and availability rules alongside salon operations.
- **Square** — Square handles in-person and online card payments that pair with salon bookings.

## FAQ

### What authentication does the HairDora API use?

Per its OpenAPI spec, the HairDora API accepts HTTP basic authentication and an access token sent in the Authorization header. Through Jentic the credential is stored by your own self-hosted instance and injected when the agent calls an operation, so it never appears in the agent's prompt or logs.

### Can I book and reschedule appointments with the HairDora API?

Yes. The API exposes list, create, read, update, and delete operations on appointments, so an agent can find a client's existing bookings, create a new appointment for a service, update it to reschedule, and delete it to cancel. Clients, salons, and services are separate resources the agent can confirm before writing a booking.

### What are the rate limits for the HairDora API?

The OpenAPI spec does not state a numeric rate limit. Add retry and backoff around 429 responses and poll on a reasonable cadence, and check the HairDora documentation at https://www.hairdora.com for any published limits before running high-volume jobs.

### Can I limit what my agent is allowed to do with the HairDora API?

Yes. Write a rule that allows the appointment and client read and create operations for one salon id, so the agent can book and look clients up while the service-menu and delete operations stay out of reach, and every call it makes is logged. HairDora carries salon and client ids in the URL path, which is what makes that per-salon boundary possible.

### Is there a HairDora MCP server?

You do not need an MCP server to give your agent the HairDora API. Jentic connects it directly from the Jentic API Directory: import HairDora, store your credential once, and your agent calls the client, appointment, and service operations on demand without loading another server's tool definitions into its context.

### How do I book a salon appointment with the HairDora API through Jentic?

Search Jentic by intent such as 'book a salon appointment', and Jentic returns the HairDora appointment create operation with its input schema so the agent sends the right fields. To run it on your own infrastructure, install Jentic One from its GitHub repo with `curl -fsSL https://raw.githubusercontent.com/jentic/jentic-one/main/tools/install.sh | sh`, then add HairDora from the directory.
