Entwickler

API-Referenz

Basis-URL https://bookbaseapi.com/api/v1. Authentifizierung per Authorization: Bearer bb_live_…. Die vollständige Spezifikation gibt es als OpenAPI 3.1.

Workspace

get/workspace

Get the workspace of the API key

Antworten

  • 200 Workspace
  • 401 Missing or invalid API key
  • 402 Plan does not include this feature or a limit is reached
  • 403 The API key lacks the required scope
  • 422 Validation failed
  • 429 Rate limit exceeded (600 requests per minute per key)

Services

get/servicesservices:read

List services

Parameter

activequerybooleanOnly return services that are bookable online

Antworten

  • 200 Services
  • 401 Missing or invalid API key
  • 402 Plan does not include this feature or a limit is reached
  • 403 The API key lacks the required scope
  • 422 Validation failed
  • 429 Rate limit exceeded (600 requests per minute per key)
post/servicesservices:write

Create a service

Request-Body

name*string
descriptionstring | null
durationMinutes*integer
priceobject | null
locationobject
colorstring
bufferBeforeMinutesinteger
bufferAfterMinutesinteger
minimumNoticeMinutesinteger
maximumAdvanceDaysinteger
slotIntervalMinutesinteger | null
capacityinteger
requiresConfirmationboolean
isActiveboolean
questionsobject[]

Antworten

  • 201 Created service
  • 401 Missing or invalid API key
  • 402 Plan does not include this feature or a limit is reached
  • 403 The API key lacks the required scope
  • 422 Validation failed
  • 429 Rate limit exceeded (600 requests per minute per key)
get/services/{id}services:read

Get a service

Parameter

id*pathstring (uuid)

Antworten

  • 200 Service
  • 401 Missing or invalid API key
  • 402 Plan does not include this feature or a limit is reached
  • 403 The API key lacks the required scope
  • 422 Validation failed
  • 429 Rate limit exceeded (600 requests per minute per key)
patch/services/{id}services:write

Update a service

Parameter

id*pathstring (uuid)

Request-Body

name*string
descriptionstring | null
durationMinutes*integer
priceobject | null
locationobject
colorstring
bufferBeforeMinutesinteger
bufferAfterMinutesinteger
minimumNoticeMinutesinteger
maximumAdvanceDaysinteger
slotIntervalMinutesinteger | null
capacityinteger
requiresConfirmationboolean
isActiveboolean
questionsobject[]

Antworten

  • 200 Updated service
  • 401 Missing or invalid API key
  • 402 Plan does not include this feature or a limit is reached
  • 403 The API key lacks the required scope
  • 422 Validation failed
  • 429 Rate limit exceeded (600 requests per minute per key)
delete/services/{id}services:write

Delete a service

Services with existing bookings are archived instead of being removed.

Parameter

id*pathstring (uuid)

Antworten

  • 200 Deleted
  • 401 Missing or invalid API key
  • 402 Plan does not include this feature or a limit is reached
  • 403 The API key lacks the required scope
  • 422 Validation failed
  • 429 Rate limit exceeded (600 requests per minute per key)

Availability

get/availabilityavailability:read

Get weekly hours and upcoming date overrides

Antworten

  • 200 Availability
  • 401 Missing or invalid API key
  • 402 Plan does not include this feature or a limit is reached
  • 403 The API key lacks the required scope
  • 422 Validation failed
  • 429 Rate limit exceeded (600 requests per minute per key)
put/availabilityavailability:write

Replace the weekly hours

Request-Body

timeZone*string
weeklyRules*WeeklyRule[]

Antworten

  • 200 Saved
  • 401 Missing or invalid API key
  • 402 Plan does not include this feature or a limit is reached
  • 403 The API key lacks the required scope
  • 422 Validation failed
  • 429 Rate limit exceeded (600 requests per minute per key)
get/slotsavailability:read

List bookable slots

Returns free slots grouped by date in the requested time zone. The range may span up to 62 days.

Parameter

serviceId*querystring (uuid)
from*querystring (date)Beispiel: 2026-10-05
to*querystring (date)Beispiel: 2026-10-11
timeZonequerystringBeispiel: Europe/Berlin

Antworten

  • 200 Slots
  • 401 Missing or invalid API key
  • 402 Plan does not include this feature or a limit is reached
  • 403 The API key lacks the required scope
  • 422 Validation failed
  • 429 Rate limit exceeded (600 requests per minute per key)

Bookings

get/bookingsbookings:read

List bookings

Parameter

viewquery"upcoming" | "past" | "pending" | "cancelled" | "all"
fromquerystring (date-time)
toquerystring (date-time)
serviceIdquerystring (uuid)
searchquerystring
pagequeryinteger
limitqueryinteger

Antworten

  • 200 Bookings
  • 401 Missing or invalid API key
  • 402 Plan does not include this feature or a limit is reached
  • 403 The API key lacks the required scope
  • 422 Validation failed
  • 429 Rate limit exceeded (600 requests per minute per key)
post/bookingsbookings:write

Create a booking

The slot must be free according to availability, buffers and existing bookings. Returns 409 if it is taken.

Request-Body

serviceId*string (uuid)
startAt*string (date-time)Beispiel: "2026-10-05T07:00:00.000Z"
timeZone*stringBeispiel: "Europe/Berlin"
name*string
email*string (email)
phonestring | null
messagestring | null
answersobject
locale"de" | "en"Standard: "de"
status"pending" | "confirmed"Standard: "confirmed"
sendNotificationsbooleanStandard: true

Antworten

  • 201 Created booking
  • 401 Missing or invalid API key
  • 402 Plan does not include this feature or a limit is reached
  • 403 The API key lacks the required scope
  • 409 The slot is no longer available
  • 422 Validation failed
  • 429 Rate limit exceeded (600 requests per minute per key)
get/bookings/{id}bookings:read

Get a booking

Parameter

id*pathstring (uuid)

Antworten

  • 200 Booking
  • 401 Missing or invalid API key
  • 402 Plan does not include this feature or a limit is reached
  • 403 The API key lacks the required scope
  • 422 Validation failed
  • 429 Rate limit exceeded (600 requests per minute per key)
post/bookings/{id}/cancelbookings:write

Cancel a booking

Parameter

id*pathstring (uuid)

Request-Body

reasonstring
notifyCustomerbooleanStandard: true

Antworten

  • 200 Cancelled booking
  • 401 Missing or invalid API key
  • 402 Plan does not include this feature or a limit is reached
  • 403 The API key lacks the required scope
  • 422 Validation failed
  • 429 Rate limit exceeded (600 requests per minute per key)
post/bookings/{id}/reschedulebookings:write

Move a booking to a new start time

Parameter

id*pathstring (uuid)

Request-Body

startAt*string (date-time)
notifyCustomerbooleanStandard: true

Antworten

  • 200 Rescheduled booking
  • 401 Missing or invalid API key
  • 402 Plan does not include this feature or a limit is reached
  • 403 The API key lacks the required scope
  • 422 Validation failed
  • 429 Rate limit exceeded (600 requests per minute per key)
post/bookings/{id}/confirmbookings:write

Confirm a pending booking request

Parameter

id*pathstring (uuid)

Antworten

  • 200 Confirmed booking
  • 401 Missing or invalid API key
  • 402 Plan does not include this feature or a limit is reached
  • 403 The API key lacks the required scope
  • 422 Validation failed
  • 429 Rate limit exceeded (600 requests per minute per key)

Customers

get/customerscustomers:read

List customers

Parameter

searchquerystring
pagequeryinteger
limitqueryinteger

Antworten

  • 200 Customers
  • 401 Missing or invalid API key
  • 402 Plan does not include this feature or a limit is reached
  • 403 The API key lacks the required scope
  • 422 Validation failed
  • 429 Rate limit exceeded (600 requests per minute per key)

Webhooks

get/webhookswebhooks:write

List webhook endpoints

Antworten

  • 200 Endpoints
  • 401 Missing or invalid API key
  • 402 Plan does not include this feature or a limit is reached
  • 403 The API key lacks the required scope
  • 422 Validation failed
  • 429 Rate limit exceeded (600 requests per minute per key)
post/webhookswebhooks:write

Create a webhook endpoint

The response contains the signing secret once. Store it securely.

Request-Body

url*string (uri)Beispiel: "https://example.com/hooks/bookbase"
descriptionstring | null
events*"booking.created" | "booking.confirmed" | "booking.cancelled" | "booking.rescheduled" | "booking.completed" | "booking.no_show"[]

Antworten

  • 201 Created endpoint
  • 401 Missing or invalid API key
  • 402 Plan does not include this feature or a limit is reached
  • 403 The API key lacks the required scope
  • 422 Validation failed
  • 429 Rate limit exceeded (600 requests per minute per key)
delete/webhooks/{id}webhooks:write

Delete a webhook endpoint

Parameter

id*pathstring (uuid)

Antworten

  • 200 Deleted
  • 401 Missing or invalid API key
  • 402 Plan does not include this feature or a limit is reached
  • 403 The API key lacks the required scope
  • 422 Validation failed
  • 429 Rate limit exceeded (600 requests per minute per key)

Objekte

Booking

idstring (uuid)
referencestringBeispiel: "BB-7K3D9Q"
status"pending" | "confirmed" | "cancelled" | "completed" | "no_show"
serviceobject
startAtstring (date-time)
endAtstring (date-time)
durationMinutesinteger
timeZonestringBeispiel: "Europe/Berlin"
locale"de" | "en"
customerobject
messagestring | null
answersobject
priceobject | null
locationobject
source"page" | "widget" | "api" | "dashboard"
cancellationobject | null
createdAtstring (date-time)
updatedAtstring (date-time)

Service

idstring (uuid)
namestringBeispiel: "Erstberatung"
descriptionstring | null
durationMinutesintegerBeispiel: 30
priceobject | null
locationobject
colorstringBeispiel: "#476e66"
bufferBeforeMinutesinteger
bufferAfterMinutesinteger
minimumNoticeMinutesinteger
maximumAdvanceDaysinteger
slotIntervalMinutesinteger | null
capacityinteger
requiresConfirmationboolean
isActiveboolean
positioninteger
questionsobject[]
createdAtstring (date-time)
updatedAtstring (date-time)

Slot

startAtstring (date-time)
endAtstring (date-time)
remainingCapacityinteger

Availability

timeZonestring
weeklyRulesWeeklyRule[]
overridesobject[]

Customer

idstring (uuid)
namestring
emailstring (email)
phonestring | null
bookingsCountinteger
lastBookingAtstring | null (date-time)
createdAtstring (date-time)

WebhookEndpoint

idstring (uuid)
urlstring
descriptionstring | null
events"booking.created" | "booking.confirmed" | "booking.cancelled" | "booking.rescheduled" | "booking.completed" | "booking.no_show"[]
isActiveboolean
disabledAtstring | null (date-time)
createdAtstring (date-time)

Error

error*object