Skip to content
Keptslot
Start free

Keptslot API

REST over HTTPS. JSON in, JSON out, ordinary status codes, and one API key on every call. Nothing here is generated from a description of the API. The description is generated from this API.

Ask what is free. The response is grouped by calendar, in the workspace’s own timezone, because the appointment happens at the business.

Terminal window
curl -G https://api.keptslot.com/v1/availability \
-H "Authorization: Bearer sk_4bT1nQ7xLd9sVzK0pR2eYw8hC6jM3gF5uA1oS7iN0dE" \
--data-urlencode "service_id=4aef5183-5995-44a7-846e-cae58ff60369" \
--data-urlencode "from=2026-09-16T00:00:00-06:00" \
--data-urlencode "to=2026-09-17T00:00:00-06:00"
{
"data": [
{
"staff_id": "4211e9e1-4df0-4859-956d-95d45faae1c9",
"slots": [
{ "start": "2026-09-16T09:00:00-06:00", "end": "2026-09-16T09:45:00-06:00" },
{ "start": "2026-09-16T09:15:00-06:00", "end": "2026-09-16T10:00:00-06:00" }
]
}
]
}

Those two starts are 15 minutes apart and each one runs 45 minutes, so they overlap. The list is every start time a customer can choose, not a row of separate appointments.

Post one of those start values back to /v1/bookings and the appointment exists. The first-call guide walks the whole thing in seven steps, from an empty workspace to a confirmed booking, including the 6-digit code some workspaces ask a customer for.

  • Build with AI: paste the booking page guide into your AI coding tool, or point it at llms.txt.
  • Get a key and make your first call: seven steps, from an empty workspace to a confirmed booking.
  • Glossary: eight nouns, one meaning each. Read this one first: staff means a bookable calendar, not a person with a login.
  • Keys: account against workspace, publishable against secret, and what the origin check does not do.
  • Availability and booking, end to end: the browser path and the server path, the pending hold, and moving a booking that already exists.
  • Build a booking page: a booking form on a site you build, from setup to taking a deposit.
  • Receive and verify a webhook: the Booking-Signature header in full, and how to answer without processing an event twice.
  • Errors: every error type, and the one whose body changes shape with the key you used.
  • Rate limits and quotas: a token bucket that refills continuously, the two headers a 429 carries, and why a refused request costs you nothing.

59 endpoints, in nine groups.

The whole API as one OpenAPI 3.1 file. Import it into Postman or Insomnia, or generate a client from it.

Download openapi.yaml