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=3a7b1e90-2c4d-4f81-9b02-7e5c1a6d8f44" \
--data-urlencode "from=2026-09-01T00:00:00+01:00" \
--data-urlencode "to=2026-09-02T00:00:00+01:00"
{
"data": [
{
"staff_id": "6f1c0b52-9a3e-4f77-8d21-0b5a2c9e4d10",
"slots": [
{ "start": "2026-09-01T09:00:00+01:00", "end": "2026-09-01T09:30:00+01:00" },
{ "start": "2026-09-01T09:30:00+01:00", "end": "2026-09-01T10:00:00+01:00" }
]
}
]
}

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

  • Get a key and make your first call — six steps, from creating the key 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.
  • 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 fixed window, no headers to read, and why a refused request still costs you.

41 endpoints, in eight 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