Discover/Booksy API
live

Booksy APIbooksy.com

Fetch Booksy business profiles (rating, services, staff, hours) and real-time available appointment time slots via two simple API endpoints.

This API takes change requests — .
Endpoint health
verified 6d ago
get_business_info
get_time_slots
2/2 passing latest checkself-healing
Endpoints
2
Updated
21h ago

What is the Booksy API?

The Booksy API exposes two endpoints that together cover a full booking workflow: get_business_info returns 10+ fields per business including name, address, rating, services with pricing and duration, staff members, and weekly opening hours, while get_time_slots returns available HH:MM appointment windows for a specific date, service, and optional staff member. Both endpoints accept a numeric business_id to target any listed Booksy business.

Try it
Numeric Booksy business ID.
api.parse.bot/scraper/f0902cfa-08ee-43d3-a91b-f350352983ff/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/f0902cfa-08ee-43d3-a91b-f350352983ff/get_business_info?business_id=81004' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace booksy-com-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

from parse_apis.booksy_business_api import Booksy, Business, Service, TimeSlotResult

booksy = Booksy()

# Fetch a business by ID
business = booksy.businesses.get(business_id="81004")
print(business.name, business.rating, business.reviews_count)
print(business.address, business.city)
print(business.booking_link)

# Explore staff members
for member in business.staff:
    print(member.name, member.position)

# Browse services with pricing and duration
for service in business.services:
    print(service.name, service.service_price, service.duration)

# Check available appointment time slots for a specific service
slots = business.time_slots.check(
    date="2026-06-12",
    service_variant_id="9911968",
    staffer_id="-1",
)
print(slots.date, slots.slot_count)
for time in slots.available_slots:
    print(time)
All endpoints · 2 totalmissing one? ·

Fetch full business profile from Booksy including name, rating, review count, booking link, services offered (with pricing and duration), staff members, and weekly opening hours. Each service includes a variant_id needed for time-slot lookups. Returns one business per call; no pagination.

Input
ParamTypeDescription
business_idstringNumeric Booksy business ID.
Response
{
  "type": "object",
  "fields": {
    "id": "integer business ID",
    "city": "string city name",
    "name": "string business name",
    "staff": "array of staff objects with id, name, position",
    "rating": "number average rating out of 5",
    "address": "string full street address",
    "website": "string business website URL or null",
    "services": "array of service objects with id, name, price, service_price, duration, variant_id",
    "instagram": "string Instagram profile URL or null",
    "open_hours": "array of objects with open_from, open_till, day_of_week",
    "description": "string business description",
    "booking_link": "string URL to book on Booksy",
    "reviews_count": "integer total review count"
  },
  "sample": {
    "data": {
      "id": 81004,
      "city": "Los Angeles",
      "name": "Paul the Barber In Westwood",
      "staff": [
        {
          "id": 97021,
          "name": "John Doe",
          "position": ""
        },
        {
          "id": 1645530,
          "name": "Jane Doe",
          "position": "Barber"
        }
      ],
      "rating": 4.85,
      "address": "123 Main St, Los Angeles, 90024",
      "website": "https://paulthebarbershop.com",
      "services": [
        {
          "id": 3520068,
          "name": "Regular Student Haircut",
          "price": 40,
          "duration": 35,
          "variant_id": 9911968,
          "service_price": "$40.00"
        }
      ],
      "instagram": "https://www.instagram.com/1paulthebarber/",
      "open_hours": [
        {
          "open_from": "08:00",
          "open_till": "19:00",
          "day_of_week": 2
        }
      ],
      "description": "World Class Service every time...",
      "booking_link": "https://booksy.com/en-us/81004_paul-the-barber-in-westwood_barber-shop_134655_los-angeles",
      "reviews_count": 551
    },
    "status": "success"
  }
}

About the Booksy API

Business Profile Data

get_business_info takes a business_id and returns a structured profile. The services array includes each service's id, name, price, service_price, duration, and — critically — a variant_id required for availability lookups. The staff array provides each team member's id, name, and position. Contact fields include address, website, and instagram. The open_hours array lists each day's open_from and open_till times alongside day_of_week, giving a full picture of when the business operates.

Appointment Availability

get_time_slots checks real-time availability for a given business_id, service_variant_id (from get_business_info), and date in YYYY-MM-DD format. The staffer_id parameter lets you target a specific staff member or pass -1 to accept any available staffer. The response echoes back all input parameters alongside available_slots — an array of 24-hour HH:MM strings — and a slot_count integer. An empty available_slots array indicates the business is either closed or fully booked on that date.

Workflow

A typical integration calls get_business_info first to collect the variant_id for the desired service and the id of the preferred staff member, then passes those directly into get_time_slots to retrieve bookable windows. The date parameter defaults to three days from the current date if omitted, making quick spot-checks easy without constructing a date string.

Reliability & maintenanceVerified

The Booksy API is a managed, monitored endpoint for booksy.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when booksy.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official booksy.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
6d ago
Latest check
2/2 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Display a barber shop's full service menu with prices and durations in a booking UI
  • Check staff-specific appointment availability before surfacing booking options to a user
  • Aggregate Booksy business ratings and review counts across multiple locations for comparison
  • Pull weekly opening hours to warn users when a business is closed on their preferred day
  • Sync Booksy service variant_id values into a scheduling tool to automate slot lookups
  • Monitor available slot counts over time to analyze booking demand patterns
  • Enrich a local business directory with Booksy contact fields including Instagram and website URLs
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min

One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does Booksy have an official developer API?+
Booksy does not publish a public developer API or developer documentation for third-party access as of mid-2025. This Parse API provides structured access to the same business and availability data visible on the Booksy website.
What does `get_time_slots` return when a business has no openings?+
It returns an empty available_slots array and a slot_count of 0. This happens when the business is closed on the requested date or all slots are already booked. The response still echoes business_id, service_variant_id, staffer_id, and date so you can log or retry without re-constructing the request context.
Does the API return customer reviews or review text?+
Currently it returns the aggregate rating (a number out of 5) from get_business_info, but individual review text, reviewer names, and per-review dates are not included. You can fork the API on Parse and revise it to add an endpoint that returns individual review records.
Is there a way to search for businesses by location or category rather than by a known `business_id`?+
The current endpoints both require a known business_id. Discovery — searching by city, service type, or coordinates to find business IDs — is not covered. You can fork the API on Parse and revise it to add a search endpoint that returns matching business IDs.
How current is the availability data returned by `get_time_slots`?+
Availability reflects the state of the business's calendar at the time of the API call. Because bookings can be made by other users in real time, a slot present in one response may be gone seconds later. For time-sensitive use cases, call get_time_slots as close to the actual booking action as possible.
Page content last updated . Spec covers 2 endpoints from booksy.com.
Related APIs in OtherSee all →
yelp.com API
Search for businesses on Yelp and access their detailed information including reviews, photos, and ratings all from one interface. Get comprehensive business data like hours, contact details, and customer feedback without visiting Yelp directly.
hipages.com.au API
Search for local service businesses on hipages.com.au, view detailed business profiles and customer reviews, and explore available service categories all in one place. Find the right tradesperson or service provider by browsing ratings, contact information, and customer feedback.
clockwisemd.com API
Book urgent care appointments at Clockwise MD locations by checking real-time availability, viewing hospital information, and reserving your preferred time slot. Get instant access to open appointment times and facility details across all participating urgent care centers.
zocdoc.com API
Search for doctors and medical practices on Zocdoc by specialty and location. Retrieve provider profiles, accepted insurance, office locations, patient reviews, and appointment availability.
fresha.com API
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.
serviceseeking.com.au API
Search and browse job postings and local service providers across Australia on ServiceSeeking.com.au. View detailed business profiles, ratings, pricing, and explore hundreds of service categories — from tradespeople to home services and beyond.
yellowpages.com API
Search and retrieve business listings, contact info, hours, categories, and customer reviews from YellowPages.com. Browse by category or location across the US.
resy.com API
Search for restaurants across cities and check real-time availability to find open reservation slots on Resy. Discover trending and top-rated venues with detailed information about dining options, menus, and available time slots across selected dates.